0693147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481020570685733685520235758130557032670751635075961930727570828371435190307038623891673471123350115364497955239120475172681574932065155524734139525882950453007095326366642654104239157814952043740430385500801944170641671518644712839968171784546957026271631064546150257207402481637773389638550695260668341137273873722928956493547025762652098859693201965058554764703306793654432547632744951250406069438147104689946506220167720424524529612687946546193165174681392672504103802546259656869144192871608293803172714367782654877566485085674077648451464439940461422603193096735402574446070308096085047486638523138181676751438667476647890881437141985494231519973548803751658612753529166100071053558249879414729509293113897155998205654392871700072180857610252368892132449713893203784393530887748259701715591070882368362758984258918535302436342143670611892367891923723146723217205340164925687274778234453534764811494186423867767744060695626573796008670762571991847340226514628379048830620330611446300737194890027436439650025809365194430411911506080948793067865158870900605203468429736193841289652556539686022194122924207574321757489097706752687115817051137009158942665478595964890653058460258668382940022833005382074005677053046787001841624044188332327983863490015631218895606505531512721993983320307514084260914790012651682434438935724727882054862715527418772430024897945401961872339808608316648114909306675193393128904316413706813977764981769748689038877899912965036192707108892641052309247839173735012298424204995689359922066022046549415106139187885744245577510206837030866619480896412186807790208181588580001688115973056186676199187395200766719214592236720602539595436541655311295175989940056000366513567569051245926825743946483168332624901803824240824231452306140963805700702551387702681785163069025513703234053802145019015374029509942262995779647427138157363801729873940704242179972266962979939312706935747240493386530879758721699645129446491883771156701678598804981838896784134938314014073166472765327635919233511233389338709513209059272185471328975470797891384445466676192702885533423429899321803769154973340267546758873236778342916191810430116091695265547859732891763545556742863877463987101912431754255888301206779210280341206879759143081283307230300883494705792496591005860012341561757413272465943068435465211135021544341539955381856522750221424566440006276183303206472725721975152908278568421320795988638967277119552218819046603957009774706512619505278932296088931405625433442552392062030343941777357945592125901992559114844024239012554259003129537051922061506434583787873002035414421785758013236451660709914383145004985896688577222148652882169418127048860758972203216663128378329156763074987298574638928269373509840778049395004933998762647550703162216139034845299424917248373406136622638349368111684167056925214751383930638455371862687797328895558871634429756244755392366369488877823890174981027356552405051854773061944052423221255902483308277888889059629119729954574415624512485926831126074679728163809025000565599914612833254358111404848206064082422479240385576476235031100324259709142501114615584830670012583182191534720747411194009835573272826144273821397070477956259670579023033848061713455553685537581065749734447922511196546161827896010068512965395479658663783522473624546093585036050678414391144523145778033591792112795570505555451438788818815351948593446724642949864050626518424475395663783373482207533294481306493360354610101774649326787716719861207396832012359607729024683045940313056377631324010804202854359026945094030740014933950767316028502869730318718239984335257435499560850256608978339556421149480733936260751023818331411004708903950134330297413474840540615877539688838154076980177673036999107492469784784312843036411289202801227256346839162335478772734006395865717981906935812738703433531318905038384561644444292796906383796909244130396560098766358462776607605348697490859381193930925179119885552776535666076243935687719423316664283820074481630786522923565982658627591874752087509144760901697356935723182424991947549443163146339227074324459030248254441249035940990071137732631099807772393757909266778722629956777375912526875469176039550147363373746164507645777159814661075839930304323134949658648228467849524754029796890015109842434081672264105346517531889570934146265891398017312367624887458550269961924667805242588237899590714418575355951901931382627559350018482608107690649406792443588583150352601704500934671408738472789516784541525226702369690546869844607210982177473660654752324208906381768833565330834542905202366217368168902181009185927011641625633710921091919381108840837199549413952808743847659331516464524483714349554707176747864466777777326240059944280388300505206396025448722194010048245683558491411637202165014829048895410548598858213914673928012796078376579803019019789583129844584235055162804713845709836714317959849798338493664305135743977846408028394499649283617720121752971960111518923347566466448721470400595270020824797119629125957079132287525024225275228566313043051121949377154294071049224714797815453298506882289269488223421814177347791228970593038516786441235127732137994705131308656152609176742141289789979427710841049555905492995846031292895641072337934722198262960246577885985564915354252627693645781715768750562769595194061476951336213589662110367239018618344910084705602324088574073649806491335049772722985412155992256490590320416580077713036548444879098580291680677229873848480539143712688284515899628929046495360697649132264972901758104649039660124902680914422669630653224053279318052013899030250670164594614509327899187497505884595089281231314653584115645478628887671179275944418910322703397269941078262094906693919323364952884039841053417413103028429829838459727450968915350522980623244092313811057843565473409867519383860728240789752379906522153682844964151952043614300234064117767172081947074281247061607867913971425756102687732567256651877939886954356124725250382411053283794249496242507538598556613018763256646372669528189918244702833606445833764694631343231391442353011806085264453177417782916531986887710748380021596407193754688536272412072273614121001398409439077271839347179202289574189656209567797703954759527223382789190943695895614158188376085603483406338490640117359928489718961165535088120722916741671690288281106170437298078875517486927574003575530600731535192433495073405019379393181058876745283523641652769037165174922445962524406132602153314802427296962267777134506420535515102483106108876726629451191094581700171713511729989002590464476306635972419905184702491108868012469419154965444117599593375386786153288510505548595751905282992674597480577669500349660023924891175760577638982565055972857097146238213646128157569963142474337595314709506808920446151687031940548311378504976842184577809636035835677681422980401513058803221388700614366646619515456264282679790058090702331294425627292449298306949592915813177571423046824694868577263140819266749297725397437563652031075562027651175474076728453283199975064855371567852134047920526615350261511503564062518917498983525295760711861189703198758379508658212447144855480989097132278411043616321505445618925641568648009768752717279363166235676934305070540096078529757697334781633978650356344759608311305891874108877547649896614076709354009928967903300519712922929465590881315509379231165267624820097425532050135108830403411501866862817278444851832099989311381048011484736433826155047482700010272787155537960762697772623306142859732203701771648801393590673165159313120722566001005730678781587596823732743266486315255163253906952205515246041547367266471582971975910017632924675539194792441259685598691843126671687606611477421249313154757711102990527569884947921828542920077199113811064020131085029670222372637192743252050860588393994581414353594660095551370368515143953442513225162327448176928474833516018143148377577291026597705021637551331761632090696210236385270662733736269015369625507361088424157630815154905861896045022386485172371030570090206682645851496003782813483122885470859777556219575228696991467195454031081669626969029689622271555266812300333654992842792461225039557099961469297169433935154450855751614286696335182639390119255198771270766940920041084299738298507256299034585043358447819361749768796368848151701460384149318945856731095588979938416661669743184215108867818274727477192206243977806608466463097788819531559610359556752045585957203659163552258295953673403778211240989398807307354183621312108837517038036823616360448183264453177108673935775104191422090696691782264747624872691980261286108374486523304418580743740679992465935914643068192455855577183631404179724592583726587693087276662991080450434859149599696250194105269190482762996890300360235763642425439767056458254099641404145099467034538774312570265529219960842821107067203911052625056198091492642944319130836290202615837217220747990416690350059407281416049396536557273412233933280610337003702100821153419222729353491676207988562585167980647915858694239114617872635785929135772664965603307153062328490606153489340341508371871335261587028642465182729043556845655210616172517713662500525479944598546766181778602587780380603098444544523176430057337855879045513611316254413885113695809483584958491493442125110535613174899303742732284311722167011878158525352536703801085203529836628261634712978968330653152100024743219392167059907313340302283790531537483332588602596867173300673026261295525563793397681730048523940679554914144946588153329325395052929823814667629225411706314234266934485649336863253141874713964341590528373380575999077665816938171897175745861747239109738419699764619958967939185445109805958578724971642184824496417440965775110690879319351721637622116870390640381121843343389718354200607881735682569788674893046558524458837592126484177992083637592780521588288659444434707177212046746637174033070760918913739695614347774183944099180354811765333587813083351070564602992569561591340185660135965556062442100491182169952609225692905066800788047219010427576939972885713494332280776984986892279892609197886399741349018957494577609900324077800638564514186182834900379540582252023557555183510644297434319228820312471209261667291005984242558468841073746125245548044681093415676628902446328182428166775118446666838782339270957508143219406641190159654067418281160176187892436188689426325709244590878215476914225596062301087859342302197566257365794476301548551330107592845095114870483384303953090470160720448746843618056556013159490067470002896012281658076395702593856702850085784291301799325534600302689712400821537202329523951056161293021801108611780601870525802317479966331197315916422739484145714600609772102817593499795762657283072692431806490043109335297747193029256955928949591897522928250493673470007220187007485251709812953322899035564348928262824223205776590090676826452045519300865600926848763494167217257624549839240748217681649795065101649672343532127136147735810005470385972771752253347404424918135507883178622892082340784087757951097743711665910585076453951280888541802237971792194559578499204197542407823057021017692723428201061440141372779899655087957079435895924749635256029274194032834173078536218808848488479985836858533765386469594588267206406825483871394028832500345191916145726017137571297747943519687667936831924420788890641942984441567232584137431763725802512260402376934317940575646573303769614022813115445823271794613293423240566054173835155640391435075976568312754878087933723427577396498029905386807018472049723349875473934005053334134201890560521211830017122737359192325520396669262944041969246186480655965863528870074050985741616981441472298561957865046776949933946842945986910611800100904226841715436815088748824099236466820808962323278465277221116840828796142224552596047052462843733284041397539100848871778700811213999050157120828023916347682557319677672831349168459880397757594819967864271011015627229274873259488944267155383872222751480296494256555605188483332134365862493115192136391535941564241325475358203341607083377973091872639825650818528672024598889316424921253040715342669707287757017580489461305240337808881297210885260437167227496733235343464246712045190364579054692409523559403825878145476300923659937789441243865864031633382251547876627260808304211349213116301465665632007450832143138196521084137016898697263580097099004485149589630344841957598141285401231002593375929763428131533279191904791121165115379322439627298431755131179358997985369326956521209419153732579238649615081065616715762983304699208836331242488975852595368809025114509443275659187508199254465441178447774028802590634607563231085842635952345741701271589222058705889963763770020149355399025340062319101156252872349069703166303864340609191204161688915264970243814529921740406906433864055910493119805365334219500831149906758654444054552676557618076474337373406481523578127947878095649423701928107162332441663091164716579820852223904106310421569803258280496425339946661667274604025435548086831536205692340010042398602569846725002112413868022808789333298564675717211156727064069354422872533108444639710497457405969774362020244023327361213661062508516669180844536200808943181685247935927700604253825141663025993387718654009529034869198492236226786046182652330550653366272424244159904000626442924502711774975105880090110236930845255008021154436442728015803466274176697757016534186112494900701830614376567978347241945388702773252790074867286595786802101797387137736298815846633492896278351368834561158332702053402343830022306691312418430589118338919733974577927073953470712661795286155913310059369529687812247347157918157654374024646162433569985907675380551713664689310814354377428392556210597737217281072674289810427380415258008177313378485942923596060458359648723230393141791948061533308407525842122560776747976564492488229435082822614766384186709404827880150946976531526301518726643787903830184753122532542091931788096609956818257352524055380897793694331180258881405697601020232421640409637404646437691830463089147506688934389408470256593526380682550981146996041162341463401840883832194754560461810442296085783309230685149027239372376195413629209392017511822805153069240508182554263094400726741695469802902307890086045346082658121414844647879752561374765405397873419814686021696556175549725002350599327524895740795423231753075009260347661997276807003204753337047346732843980403940571691352985876286670103611671550689894283363714114041821692304018868917873755054516891673747068600698000028244978227366343255280579770112020110788371516275051324106446698389991668637715453962299088395127152292603059392000395582312107510229006815863078286397477916403690570836974312956956694016498501030693640684662410103439176974370507606823129822600432597131708429535227680822102470393941625360603754403502606022911208208102502358182112998773601593478206578127674362262782683572419683073660275197216295188953439591712674428180259368527286747848493675515610158195474396000644985999218627361878581772612763133630132781513288187341287164237306469999504116351409620523716591193527025030869035416008508269193070727685672145653322813016893943181856679703393834585129032204161816312574003890635750576965910209126734054530114304944461410485884656191205455211160639284310058338728519476687297590279092027841231445725215566469160498908219911013975762470604207113063437000815515999555125345692024765833282405185602543341718897551022480201499516164541150793819712318146396370245288560135304167295762587164124705632416675916015264214562248874700354009259110000586586731824923336071831235763705021401812238927188784412213628857516865219370314687359111712704407839061853117491546295968981744639055760662144942032917092621737678488304488321165478591242463215926424264551719188213659191990037720824285669645347176805100009974945816339282089941784595168512000161950677757471995759374620445108818598656221576641259820022657019846005256508432493918004666349982529655467078924780301839809747475958488354336655442145282419275012408099888467281861858616406562779257135390952526463190537991319837624731306894752408313183408916384027276727326709831593796592816827114342738082618001978788460004955267794194509833646727501524294370296803674333755349648576693452087977114576533467756670963831528213303320988952250898140745937894457734515825944751568836852225628400776132750362178103081233306881858339134716447321674938108866669159784471544352911016454846357460909148924861281646653790454559150791314776189213993049539323974933087604842313083462390265146156741470358078255324656648643487491130785456382869899186507604525583809277224536715283953063341356335654231097971645996096000761935156407975420026468786650431575010838539228175927490092980405078760488760462897329389940752921839593722816549249494450001953470076127880319869203809397399119410776752534692650093942897510284341474982515187294642191848766515896737277127429734199801994601943869683825526300508735691224764119239307998802285818494019780629746409495461247828796682956192869033962791257496788678565504210931939736694138054781058301104701043523046276416789303191020735984633624328730399315470959017282048871033320448192511290565596416131178837863429969790999427494135138573715843315189523459126227373510907502813415221830268872890777536675115229412146833030951815288443922452499855301604720580352246099892956899325723564648797306408022002485670729222177372491197621046864162952154324414205164615548446861379247895922665085477300266436418707472685794228293575185007337093675258988627595841571775578413904071931080692204731222667719062016531885539301957005466187471165291213875516998802743001593432344609800067640062384331176028418439112810430393747951093187544690380077195068614790186450336305638783173118499087756504486345872462593159048267451330715404662304244612427243990460021520996419506803779462618999206595187379805840726494793982758908061089866532639366494158279918675693541461836326023310877032698713969812040765385995737941388278734563928560940227725821667233668657669588603624623512292861541205150904538079226692545869189639623207203447685517935235128877238824350933700075494466409338963403475505166140630269945304783561103519934094610464246102582411182037939463957895712166849088855973246003117743796943590977161639621611775518804426063433823901803152695523811886776585072549146328073781416932313146910944441393766484647037900484083180578839345486958931118078626867609670406876630502341541831056660847185754375742626598363513907376718570900697869884229439812028176492595635401784703883465412191224530996127403794296706021309143202206861436147789747367442756769325833985709002084453695020172246098073677509120169648207414420690058858171903643589043056440600365346859006723345388035872037272409747677817461896482086042836891006967732253771717216029978014720804863657750966534854454959826201463596157271638934501444149258954083557432700732897002679685186580204338809801947220446053589680857502785911296294589598670752948755487223583893501590842299754579701852717795678944679353481573747101586486997291369157209025941647575638913251223370825958683831329899928122889276060607847812771089114535283961011621263616168843125310921070918628349791225507663516599959316970497771197740697128872224512522322380910682292966634691416905512820211071577956916756082215636939878419651890579850434330370275434461968637233094280581523393022280844350685527413080937903759821365864750376268493951682353292241116892043426186485003103455308086796369222865672306823048507618691991441089802333727795672090364014451111103095740633446277141111400613076303228902151579152905016316557383188456223367127360218160639449126110435812254977797719855281994805845783818254997544086069758792733832938426298125061463999481794099724007286986891195939122525787007218444064737502426958978763496899466873732525464453906577585386115877288065684711834537538362038766543165813798890594468487482191850608894937405798419639769775854166902063221552549856999326722302237899171930847462976901250623552136202014303778635396556517647134467582991925571924559429729168822946970918286746387358969902814413771917561468780763360512596111078069830011064656295103684285643274778994120633183056048327831898359386222539220332505131957316610600189076106877756097200328918478879288632460205010050247294710702938663906579066533172166486658156830418090743238095799737259134026604417000117330980048180165653257043115755958526448496869745669285562248869926916608280129701186303042526248351341075135236365217865094578561299160941666105171496689088536466935977686115372986429704334674052996908073073103101241090694913848621756650497148792962914703778815847941863613839159992955868023857669543835849988822345285525147402546137995367709116011800350042852120583562491984613370621662974052034590889306433526561930179631544733735868513245555242065848977351537770541490689059531714475880829102097276016267976358226588129757476874394827297307347229590034172283553493340622329544033557221748053416437230331230391452566246041446382231398060357093627703074890944781480625981272666060085204057659876357570494252358822057787743848169776465496663412721232535985942295358472635887107464936216231072067055109121791787017333760699972553829986651941180950654196336656990042331683157969023622335700471920543935511814310251069067384711343518253964325073995664982793853982369527039225363324056063645440039653675465402375291212767512883429762465052704912373644923133049146836635193371148967171614390306938862014162855531997923657340373998274534100611608434814398648053135560086707340009467782067771353870818809847423491560483507132313215621651867272131005486929748712128968814874420028166576013208949426658105234027070559532245786024621091948381057229367601287529783945833576918944987271803522977103815519888178750292967321735164235912551067949503543377938532123319188113111582784268446519833431091625981310669693643120322419702714684907289847705176597520352662267399903596357513742737551074686555264856632965591491409330308860022481306886429977191126357383616176472452336221474016774403537900460615507672875718918646138540576584456989367362622404421779353024319409496860186554361804916814299897924531904888874292960245979958266630403106631128479285835734997562314644791198190553445530145342210905136018372580177639501154292206336993135565950475409369661473353301812653180632566983744232268918715512893388885762429640418846828506668446070782031706153076982124170060902057059708786022437325574230376758390671833147217310267331274337230866177306760200277994466410227186690936796033505852572246373124974615471883421575795127768589923650374454011368587206260060004567515982178706498547963171863857700120834501606496089470645551605640809003273511105888294992315446985205020779976954519675313357609022261194895551016146107796258269483812530632689641952193400460605856245551793540530446491876301490671021103260106097212294465570331421103534575440841625513754132434988008749644292698119948339859567391838821460619349803075116230883256767746411418345325473754516689459578923442279169544323879864140403458567628416720849988159901961518819855548357616277077903642278665509001698175603461323099891574299207985016861715364827966500782805456828514276740432779800542282479667756851760279549028547344090961440606018362655833573275010862175851668266003699547841825271044772993451972438570972853890979975232156649474218303964686244317860550121480600944426759953103098176981685877656499589152091914765555397413627174244415732326139456599965321782555050157818420774819795401997041824540660970334929303636240537292027218201065401568627333616628155707747686632485897101140240394766506327518676114402219480044048516047680936839943182155657139820092283534797579798136288143793901236699770111794353813548317458795170911158363898163655080456513894013253186122600332512000308931487319685131094979552954574387552181942882469455290858945250119648511880339639495919792543585408347196076414970456048894526754562311129452438271410070775279527945960287266596492579278489197943923037193419951550675557571578580727130475785468892978117489898783272753053239598733529896667742400852190422697952111881331116231193979721992537196052813985042805129616720965080849532416683031411744646397735438859899516025135110239625674055397691326201278198005849285947462249731914072845621667311772866009986673461745431002056853875337340859857135405791584645105655850345504839873800943886738628339837634093920624525389937109614425505258754553270520870983410458201798152150415072534303309063094117678647859319159306048678561098132555070054430164360505737750716699139999955470134233030743375024818974831146417113651487825381306453679956511763401410505849258107126613620499550703989624491441727499062250782334663784601138847601403907023632450145160899707831438403268973284567729372119797708819056952960511774817780074351628578061837844020112094934927265033610523652803675096972662432227549496821890836469796630329188667445211356998483044944934064223355989537863472906193935147977460953283076688594331848148747259287609199220181178188405987020439071307449788738868648000351431358850771254164688491908573227740990006758917990844906852663293751602950220744973461055797060549837860174267415028037686335249762096352995145500328032048577888204513249125110603744991784361465958471371507432248285962423415165779809422060783818269458777835953178726612494134922829586076522011887043568892461878543292664052418985944575029787673815332231872041245669041123306410821099369865882943527673173335094834553813664483818330282846837926827932812893799596434170479217325131832352652722145030291692071665038293100480789260800049825321085057262443500747690282869556944537419839321562425419252870943065530324905379720634073547792083517136718626988827646438369055818002895382400018614157068775779158890662999975542200529575896192719550291073789611968507206857741648711809998781140061784751272524780464373503745295863513006870689890402672671853619273924683665076789231926965894657182420040473964836466557900204131182078878232077165359566673452103914324640025768870568443540821611924607697142517519225855476839473748408180933914883242976112020956363404374373780735838527265523840376093954199469422694061098858326000160569101505272958931447239999315748453926398297403287187654737409714242931339487237023351448310564908919174595990845671477121481077419521108369478175873393910250458352910869087906932072911310528138715495162911942366067389806335182201838206101974683662404499914708970086004857500239857472543390982304001244265450385756929082085667133852093547917362907338330876431173189345648104710574323354914923882487248683957986716250674999303201649200601001733994945486615701160666373978567203815704717556292079594965580054138229956917463948989609113353190321338013071731378449823397611301262156653366819705094233149648473404813331871792283273705181555757445979310840106302490344337649099257269273139955747226635688678026290805884349126398597290271833688596408615602011365530629935042466561570581393527210641647694773001485514029298051928093546865308050345258203906153639692831823559612600268386353009155680959773923422353358280580012799049288975037242668174177083770475167927364471316417756511984589905172731183858988186826448620783613294141782351515361944162686289366478882467678071203365190910723026105439513222643825902742077453733895356357259522275970419161499423566215956152986802367576495478363522944891872441302095981775752281880612978364117797680827439353176731124848159362459472427606554413330720469577877663575718690472489724450026169291468680301830439886777750064249805438392652117767461967667135869492312905890190078861116518092326177386793208416539432196576532009117441192347545569459273405720207068412713342651447381996136451710035273496203336726313268103131936580849663687545208063432634878049373808469146050426732565115497742257342997630907443108875821885211631693174965472941323645581510151607305802677508526554210555821767598080619665622909710190374673372652918437802964533967214722359080473405967157401958163058138519008836727947353361997672081972572309084988748227096610500478497622789480912855533183218554692359352720250890818247992726435586638684311910575833325937026392126974327313155827895146713188059148227007438638467394120281618301146928217875213273979670931910353780621599289739376367196412407017742240589205006870335582923457082390707412030376069235574145482567715148024185272248965881368642953807607277951445277562414076463920903859045483157221340492692238702079743645621751130275958655932968989932626378437254053744839107675694232827489179721967360635710246098250721761643629603920358467156011649403177464799801105456691603182836631880798774515449111737499244550167803589777381255323501139282279313159052077345754895900849284923511282546253622991240227300826073367012484719786595940466256150423179977345350739933562158660680713613587968409007067685082536867201553454674693818222828998990658189303853364641678124708631872983135051021192216758924048456205011642106334168502133981866889624951010761216713885096873473761456423779562821286842749474464660961711322765539352132072431090455026667331535763416946494163459621680207817106398247371933608480671628135362429970742460670514362935342565716849147757336825105447669430896645780128287174263851006877736546905693871127101222580025267016767992628473207154698396375670716298776598699912573083125513712605248420436833978655891469081264998809200221675577314286956573630851930642344073743072438834198133704418668195430632670695233874926725362967164962529785351246322906490022780836601011988567983289258082049449104788539169988624536373973224399126066768450131329147811312438802265355286930266521463093026927362335930176896480723091739587857205188115242110231436950455370317424488920655338912712147482608693410786323675386581940226344312044094505619403003835306387526550960509252551295811225912678780821772195305807561985805214745466775716162405162136092124462817616934497056208623361035812345164215867191840182438953297742501520538951318380886363871128237758825427143888566611332386307019595973935355967550099644213605471546362754511963016036734294222151800989194712174049016487215748040475990055048515919817031305402469489831311190806083147641763037407515625096254468796229961723196342985471650338474538297121998190576214737989814072896530516600841187799446403226330383116916348851130667360136774993325795863140205126054551352563696422155854539761557777608308300664491771810868386022855259743095400062706251559321309114043397538056002678623470162013078615890344130008987442152518024254554522380794970812240019201669551881700512148746779692823709131561053651717892121243476973635566342461510552168420667149545656181136795212923505844770680474895044178474152745824309679942077953569096277881993727614644280268860921915600639138090570973920807025894949241888570397357281590607972310635250819854692196392820212748046552484608629736625366181635153708601632492706886226183487099902210348595581405224344540049245827912228643812623301167181463893965626141258523402343665657631463824480056696901526644734090183008210067052029004378657970314336564850654738725973944079988082319901581541123840499299034348373414313300415291533806132851609615964870413454630351292244444299681782701682918268013570584116690291417587238640495915681535919611975877253284088996099882812130265068420566181370748338055939919065857616051520379522909669081233274070064564687709049971987393391823410728103475664459882981163595266655319595331973541743122237417313193457051572326083553112933510554322205488280438484467044050623549605033878834192127198154879107650639148206212833032202067043954507701445171540824610203143786124978212563956767853127803296705081840585111364220739183432488736006187094827342491180943234498537145239017385750361259081083551312917441024695059517156155794335369279024895215222261287913107966623401804769281864845017540141942450455123961033777024044428000355386607378608255766173122480988305900553675515439661458745745660651983767523888979931446267291769544899870859399495060175427336411154639979820614986911326297736320660548818542599617747767764672206194138436365206952933095237068355262612069245175786977891819139243383189599951219772916231382313208942310658936988113164924854709531428368893035892973612777579682012581824982227792768669842827021668160527486357680714713475913485973422741966933145602278991424257635859921402756302818203043172421292593063828167472682163792458979761613318479292688597414493193745111957854288241181398929225574079347835304180689345611834500274886274331128285988687070126934009581411018315766954307822847913782207494786557188331488760931328507647080002419488707911890485388071504525847848354963410337527571721043724620292804247363338276565608903441406980393474981151781969554319528666667740539290744976458683226828646915035401181089388410610173890669690737242463025860443164534321564264260240591585752260905110745540676603889870041336267833701222908458638394497831594353917601572165957503420752631439135599999005738778724848122581876727404477746359097126254193800622028959061056906502344287919880427542283995247808131865682305935554611764208745021951995894385682707937875672603257888494912021337097793715898402531709307447976858046740431472423396369769047200107242016101993493773936400598723286405124463013217670431825831214969906657369186003534040496722264523700432255358709750419956612601226873523304480357100006663312318190868503099001767517921298043282820652285896910257134729499699396812142991936679409737806913819415083577497848577576327745918251701231001888051762777872150763773176588103719231792083842539650374865766633244955585778106709996255613334568472612775976252107681294319866631736846069517515916612188931524126151934635805561144143902613991581568898997957296445353717623040736476726108775527506293940425057119472467709666312064880970767643863978702554209799846655980156029229674222142479450254401175960860327050567813753978005518923894363725965814079519368776229010679518180677999341047517446277670800594789380006610884621996147107307154788019561311344214471235501930041212922748039327504112477617781238276807484270183665620914919619224019851327664983782404729731178479187178847023791361770095947059024460891956934584277765847975005937278782509335531132913938575353352126021839401866282127479406265756057681424224262956747514776834820055459915645430400253946509416751498465639814527854439170387072388031933086256983978573849304288978707452112967770458308181012232534960964373181995153175791796670732573005615439335679097680964767163566510991787638520344096758647978355165358328751212482469401808976878183273284446267235743057543674241938018637970847636801453681486542901209637650826809061457988439538154284767482667263128402019306000191265030113791096726366385876224100762708367851532903750260811938121846173751863501294842744780033923341403617315731356696576351315403061938596113265151540129071857297767152086463953256558857852644999796554548943509730065038397994951079553357531782795630276951539572294658332765135134197084764330375590625565191050056987929403690072725396003350401358531649633103914565772141814497267699360846510955488446092149290404930703133740811275784421185555274312468225297106325858857854634767332709993077936362296165854209326661940753879558932854050043633159763184421432099537786286210864674431351864749081763972755885341429101890862709644926458496185044315763031138417141420193495481571368415785578802385925487651716881832424093454192427589354075680666201872050970613445096285769584940509345041297763332798986194255994925981209913616984856500786909978850481769664519518092440315402562240016101894056149369445242515970719951546533627376962711602806680553151334972681519501512156799114690753513955663867682054690865609851930547948848426483367635223488407398859390270659938920782680746919593026631191318444411059170982726961866925318707836581689952885710332130261538559563638954530526687074815506814475968147934891948368524966228181075849970683803112037939408625360777340393870340709495868420992404241669696814626884284375229731087044540470660966834307778422494151195786231331946515401864034310317787936536718541659172943564315605896565625046972735504867271954593553444601436518937762681718392280083076099738355307539162784602508508923887929139958721284073765483285949103333244963649349835669021722425794322673327960347885616123555448641108188848476933333739242284564746611941726086244028089560634187341004963652047535478479328052892975685566458471579664793940769633912518533027750103869661692947793315227832007430265716069042885471228098770435276761157853613667954598011539435432414037994320851007366476461404578300579260899755827737652664262703193766459090764800850217008948595756737253409806886910724965048893870912538995851242397457047420260895164870506093224296449951182493635371673319052552019862956819653685248030273867896399615605975906216435495897163402886730772069696518539194264155815361083440513832276986744393013993055010671676375426172040665168036079369036176873807192946744771079123176006378547400652039343177941352562884930814453388370830035667893141557486097506031339371952647164428489775024037419981170684585886550249522686963214845706574648863136239331765774075721182392940944419645525861286801355470316327430367249494053851387801073891022163093570896256425777758239335309327463941536166577191087400741392252935739753836539717317288832964582916707193140507151871578538891061099892654164040734313428642577039349806214371879978201813943625487339488939768697816491963380117940494016782631912980032862937138768556828355873787419244138424470885651207551346600131572323394341985506736429481354236576614540560723270108543173207131264022742012967999118282542579352502143147884077240280666229007273213198366831257536503260720407860817953781922308612417246743753380793031245116476573620451032247914314465368179692394369793658887928457199046030007882610292115938931560015117324318947702360563145279515450100293071534145007736268950896545546963819128866582448407277876403533906720120941951796198955646772811014282606970993780746528535368469551855954519367771028268317905940902257541149744186842926187839221574893268270649992310573566963944576088475335322694943598446444117550461333086198848630163223487294316719992732195528411122703451895291179612820429431610840828592689996895161675484952170406846977836795928360174630212538224571128104469456360299316134857709173457754045755694875481912546499497183813916976286702994755707770589262037014159949821470368697745555566826601989017575874729152726760230072367235897080855876874880696377355018773098690483672890973546332379175129533182976862973810848130017831521621750970566200069158249689808691746616362870230412303855057952482058371221402973194136358183797566556097498003558665323389610557201743341594995481738047154374895060508092527647802052762305057907823066175975693472807700268485136664587449458781505937674765394317755038382683946329703878957415140501258162657891837815551651755915960442095853526209969035566142386337281885463263950023601923052304899078666921239896328293743268083471376660499903119780247370067201650065853285351387237436630087376574150691134151570797592157167893841535593175783216993794184071258559181055240430936591272485724544519150130772103218508140356941241934644297994887759440324230965596650121924615236665967600290298543546226791902969174270384468374181494722128959627586859443997653372206207323498079446008077341982209360723167619730060966908927457648630655400871121038352807535587500939800233383691910439060691319881421503500595005552513303653249852716673736134943524164194014413227169004433096729393060906773831136932286844387588072846229124477648578019247232350013146975207279346734781712835811975521057542328626206804961290809882475113390498843889621847097732626288374514297583730924597288910220448969381016643797697100646771070275076176162243970236405463216316265669808840360019337594543111936940578632261052348917084346984346706739225890213390486229047112969623640045476859030077848095470731888774838076342320020048999287180541291389486547291372782963488205198982697679673952808296506606954516969187993507360335148824760459525033888124327120075930158017527033905992016932118071739564669222308994665878337716716852905328317173452599479428732743824938767507372925252143055242199283923132125081094179360286003517140825793440005431004299040628634686628107660238458274515698751828746768146038875415309172111450088292197710754900196905871408287460455436696157686473078278382269904193713985851110828102370084090574320328874884648159742949370421879749236188189602897213812234784210073719622635555811601054174188003451254479818936302991595985554146649331613629708723754887317029432710523230283928947641721984750303901272494068027576442708195078617638912610881634760800412910779680485401414477445766033921363137887503592892763984371605960452238101066533249385283095376417539094222888233786088425793452453392539551330844250064251444975265838733847626947904769544709005143806535659667771170566425536021874202491669793173819310628569228776057562119195784586415335167353289252311471538387178322579979014771618638444828915538436124243881156191115605995112396709759909642036713272170014627457520196390501561609248966098088262378853851757793900768652923604680321142322981260814675373343405696081106213946069099307263678315742537628601357806382472095603426333895626568517379404070782134770811943926881099734289412604328674166545958376270836020262619199476381924698747760558194098202681114534087449138705948808321616428729576625799174262880935774241576173127758455778793170845758103001470509833576661810481996600558954027764205095100966069961178968060752990961189058115692540855754837698043814836854619174431327965230232107525973976280016830387609630735054943156281243967216621755912374808727518363486590968301845955685443238325892172999639674642908418861897197119301085681261736037894072546641284189462801679144024414505792267896964592033916767184777955033107014369531766970560099587812464960139517943049501257598506613292494388983300471153114630939086459919955547912979343857795383676234035645772570669022033985381598307266751393411087489927574612536861706537347373584681690904823698156341170797032301689320151185925241322724304371297221660622331504168471348119555758643992774427636994295528527854433038569317641442983938664339711989597532421812997288552590018369253804261787216802240711158346826015785353814396433865143675022806443644323093603356686680951614849749999822733771529166165111839014784776887624980914120276826838331695373840336258976307615887128744995582870041342238670304960880582941116449688974015448714537105582976751661528019523280501573414930227687460105782498926291823062488965159098724889158327038029958802997401033308663684074416060002892574535352366168926753228457700491111118597358950263709468644735161866632265134842035717813655544387535614000690985713500790681018824727226046745843422068586175271519898287728506466122984628409007417022901548307609537682546575078474716445619676135513230337060181459476966976055736604246017303031944677089810235539814138546710156302519949594511023105181043074451270130592580324108894486375575138004271570911694862999214836047533124018479557010843736934394044623658629153665547327103093695824894970366826183350117974945835985727380067427920068834842979675894764688578647063759240391893892549401326038925027506668181201566181510264278075566876691141695792284681023427743524812439158303612182186896845273637495604350795484671775034005218262416188888335802994434418864847281478983813346633311676699216036267590687894235163253750195501159153868307940631958379953184219102119389488410767398037038250904656965662062843347489957061665448836734434514844524363158756798494657607944309882692860453722903911133246218067639765744111415737823526859542459784611479147336496839061100739042465454707297237448203009799569031671892014396647469935404577573957480381645367615369775448819694784853251443691063455745865411793718349255388452602655383955871246499424758870038528890301487134626397390493833809386704985902366619264126572000895143317520745379553678237628103371285932008224485777316384601251125885908978031117899216130826637400042065865922243072424812856041881226834559970138971855642595747275094539109528873833908877710401516476928390087134491493776692199020103687180072611298404101353392257181542071115023204894997972533675677151837804304742123428909026126950117084548191131736807994909115982762495735979360138245195043111121552964699850672853059292808961517100045151935313738887731504886926202439551442279440469961739650403872828258013237921838970086732233842808496253663452042961412772477203636515221476720819260305839088660753569101448863126837279404594743059556971351060479679997722442187792396296899811896183598369324256100932608598875461283633587684658360005398038072125002874154940596583779818896648256988739332453306840497878243363123096688226663723009515371481242933429924968469258992345049918478594736904818092014534750132039109802065410899831275903051976918225620355770989927510550477431112096163763639212260530316272704899697065705749189359836441048174976965671378013983065228994887239965189770382049803613696141321108388307102441223519458139239695297140200072319016076143098921415813675611704304140234678322403570671744844136430701107625769853489357995554426981115117651004318408178373718784390902913505521280085676895244442819714128317607615067250971802445965199674094401050945714005475828760330985526414392752061404944674475519615675152425019042467124732891087335360765222345760279480823577001812786317338583099298363701169990543750473527433906384025101276698438861757788668675375897722074815224269103132128941835469531754665935527618565968948225488087390948146812759110277673331466332365683105617292199177017888390197701665357627262488826061644861233843091023094938976188487169979484405177953661950254918704111028250122962093985248783820057354947313455841379232509067839077524435755425027961730021164640058559723452055496352839868858340711961527480680460580799264384131191661010205597795115839273742139822403757744123989402643062109091639421056561116471896918384294991779941975647414799436514204897172240109582631637825904538337150720521365439278803000638879205556134442761288437803377021530248878220305009581908860686557253084500332777016516331288088551093481042594959788304466598985058705484608598383769525578112285543054192189904415542491752278856834156249717500226276287646794729617579865477390391819164947173212103593286929683701409763715321810406261237915820869622256340683913005143811622613557162502301264993151775243133468213712665601569758862347506832884215713047541574144516382741340097838566896094038717241913011475936703461568994859156192053047243278093297045518742073288125429887545329174505223364970235423450676099108962246313227161050638538790478519372514159462385995188588803524631890941915690853626740425095828141188793838970989330664291557278938373057434732081581806254684470874770273583342342751050578849537301293052688117546779564127086398152551603015130579801741163725804049758383901915920349944565127755989744419733245763966764657695943124793391310056149783575303644190345287512978125557802075510564616207851028096423204674132262678133375469801244490596794533389282139769187474678635047833903817383910608497916466438376384212619447220084010177443405583790148067644831943730081519509353898200632040588011809393834155890543061594999810254358086527274715481168723501466762826400749164156403924816940258936632007754661653809909193187205853412465041049345102284666699873346171887321899690634663534402604309467342997301279848965127642277291843515262231933268420099599438675717565860853595025291644256881198378067407905946425416755165598433493306397560381450895689436073708161542854949669103801244032047704626388976481747988722204060990298202197868309458201862260654322534883624733550907783540600234085803423378052001691376302919914347008869379394765094425104507655708065717861453965439717947257361070009217910928110082381180617540833935909759305421616050962534034035861469176163432716433350864375788476333552641990400823715864156553293321495299541052861664550852671585258593820879034205680648158709417734176372008675400369828613600653411499469686963543268784149780075978466032324443907303290049389277278809878882840034642449523763761117930471327137303924856446901648519056117288373792038423750378373219849835731594236564971709307828822182181586362135555213902478710449176740623913569579275649260354715543019652877586848934856349492724668686998866215205005232035693482884300701828484842249600322174315764947114778238079315949475203316820958689539439498368034703884949589842870783240429438488544297192822732125147620912078770807508314758646427208283962880781732308073457075626385336294774218003106543483199619819966222678636221597727491477909194855716222171551148366170109318780235947219492320671539411226918097378187793035753502807249884297323384779942647158244045187517278924502259639598474349522920339496335949374703139435911187432319094896769245212185469643809459174995828493801128253095652799922228920310131371418894436290981228186035590677718378847181619055736317261858067862964535371638720421781878286998072611918924686740203936975179217441600774256955454201694174235455023971409029196610996019602447342514163826462882659592374273955530392578681862768287399940104649636325568003131338268968108486169634206443959493016384371173224601490545303022295697480055578987185218673309421532179468680871742953585829275824145613162340001783384787252728584285891432730164442916518418207572484057639287969697622341624808988626719416632892703382249140376344501346597682601387052348149029746786682638409917576006771528329560244587593998662543609805008245955566961440381732139068307242003598570883750862466951723513530376381951624510652403139679827269680872778786181834167439332658375606819732808600006908945381276906615394274081649039057139533865436690392827623585008489319201184926307252990660680650296363450417223736014798402737050907684985929474251729116623361421398835947235843358781244834927360411438200633394549691445247656328836475322235631400110278639481801841677542136284805072413064697548459415390151593227820699215715987026527993632718594022160285968716198079481391344842769085081741740737284247235838359320418068144448823155161177724142437984842324891451427644415407951109849024218846578049637948878784887175479189622847260404623806603141898412742577638832043342300020849403408757157575347235926201623397495355982217701082687521945616946200582359415560942697419243579409203228465619476721588114010218700756028688344412135078974496173231983265067801019927471399871198409038319467211404698762725785779608734530011590740618999612926530303924489663605429529301943038079585620874876732942812979656989196733778952716615059378955286455605782947638885390511161114758072828689946377692929640460336356392495456395246081596807447854180279242807295816247333444613959389858577501312935817977243232473528701327592952765473193863239929051860551877727574914130857118749330686222994031369858059017436451164185446287845754161446668052812456107869281506550565268747915401139761737897633004560710287408554647444926506496284538674284792457699939391874651597105847023262434687735099488553406773181966672210273693497231349864367639400327158451755975890628469428680348318897103278618275087293184607045295877803794437803253920692384293958962071107916851548926541016827542658332581264432956760768333853964654295725251173548468123829596189220625594941298945169050082728941271540281581295093318567104003390135326345989649195425825279025617994959416821037424270835286998869226842427218664933641506055924975591140796072457516443592119489757751408888675272819265868921609461994393554779082921641896725714569698959105621497266638672208629800379358125352587059189444945213547659456571818867009319434298853650869818970603300424868081421943913979806138718441287936084583921332885860920249836174915237256188805704563363884180267752669596446888853761555099669881785234440770681079882621851505936327909302515936113083560715841884027434991415946975589801990338182225135946142213425174538266332843373543594905685416404877652135907576039736682856350750121970784689330857479149862877379152500514136732133234071555784777171959141120363676566969031960030337088132582190756356468641789848996444560021906039968185072232139730260022327373149097445483002063534012679246002322382345898844235600022648366509844817150978491367356346457883544781323304035702373285635485114410589311826871181760287676510218621420222975368616681449919331944540222675263840635892170858322124306059483733830731500812989570489400986676687101503784959888135317863037553733803881860721139501727727477525129341181870857572971772660565571018831998306256171922260838527525498666789656629992511679638031094273542888703942502187848277791360709500115606263668704233430084849039790033418970760283151928177985978380753365681765048710287187617703258352639438612678825669263432206096818723360020706795162232383386487212889095104279419350988345344135861389442475211930907218355339005695491172712031639801750681335259733055385198782844854216604344427417090700531275491787787723632713977744544700439914477661417585172017388282035769212527438015177233260415017443175593946817668578146226083505640273185572325455400503227256581774238980033744087206213739507242395702987156424967583050328442497534116304205052190542711194088920073256377423207919461091391674913154918250905993141003486227368563834688511198268681026846437986164231409745764779256933093535111878333625798679390950101367770334213689202952711999775146710870452330609134632450754650365059581223592472640122697248908281080774126312539749665436277546098029217759571938164740949759788881154809510217364188194099409362080619080368205270364866769713188366673374881671748701991324720570229729007779530759821710082076484977671506634877379954338126464408751482476625167952451731337077712970389307765309422129675371864142461290477705168194051885423652819551544284515424429877372745299456058798869677924988420618231822839842783394957068485380282910982768177511956574884272390432385641846521364880280726446100860211792725074336454454211002769209304155271048430236794392331374450978768903831794905969917009695045844813509963886815629930544488625907223735674688843635023536903918998158666758560557313690714754390645079054559293617570779526916628773341062930843527583959207098253733557902996156172452797533247373023125169308355184350797931646937185768448090275265783747017858047057336345031386098543455785941777274517159271128303373567909952587021715536830057989702877010697788467784053720462649795631192416762085631025320389912297820553581909855923900669346629616444462534739584477513672454186446486858494976251019309207411211905648720202209059993987444341324443461811604641177461655345032031382329379248224813258449288704464189079055949835177531454547892724074155087871090423209730082595279952510986565962932964402268092592774366948159488606966962517417580288292584453712564550750932705594634685243323998148911818027136568988196723653546069190682119701166314996866331353246560642521241170095603371504030630441268933011387659197284146727515692469959881889180042069167915964716502272751562213302085109649379435217287210006138248485699103219104430184338860099270091210823882995919151013695551945317227725116497162124622693058378886576228211057773597581096574125778714580957047881760257817051731996360521514009975989423769711346970998425819187379555934033351826549153379500756377739388059513108373437939130409789233088151212407358909801074126243181150865311979677438281522751353760259717567488058706263515464770139697028999927613874427636230555358600858260914046849967454594156348948338422491812655537254707415918542802212454508213495662156636052840500636849923672802528615321396169420825626806334920301171559086218317802530432220203715418466395361562185910023492411035186480521392606849295591233515235667198468999310686038947116867881808706394870365658481332099839907671469118500770614137165245181108292838036320837840984059410980929438196187396500911701064556471701258839409597422209717425464095543701509942608880788028957704039750104419720794989644870177481471236430323351502329447652313992814121108856727697791358871557779673430165889246816494606014292458310149421721599312248730803597951047399290857592754325581302367444202230737545703497206541169282358151778276414898879505195967219014081273518085216829003206208188640576182866232827289145851148524379211912882706147368698424601147521447083911073047434898599942531682158140560801369126186631129130317331272487708265120134271421930372829544291173069205687287263101965725303392863384241213330244083842297801406284682351110750413869576862503971166106128260641251615483549308259305428380463155734926144199948338303915510813730716448155722520242220213151038458630135438617394780815160879733162203401761571087699221757901361709638642316257707195794594274128523412906819757952262272768971783750727209668482023210420417813931598790837182760387035164895603618163771605139693623450457738359769203537341092174643820189469057513290434936185768409264903023965130362134797131634025013490426881541938722956297483181149547962415407085191319587582807094750313860428319988447820973344641013492482816960933692934904606539820502560785390512431639195360580270365929013006438445210784996848498663122659634659758153080221236334146548157745976356258796072550863514717018557552452255239684248168344998027979162947225781112692074109093105786222277685518280887852087364833584316126288264757673939547069685234229858192022724638984349946028349579476764645627209242579801472519346680672358297068912901308115126500505381489902700962791209762929247519517123877710451916453264181565812489563113521941281597915405721540330210357649129350332801106679387643500420588679617523589593925534606471979137268752448212619182243150242448013168945088220144037799109884688659370607621188616759978822000075818642503713367857834848852738323442052071269121431061722530092192144919411821751885301636712984419056391027413471111915003587288191440682100824438416470210488286608464015699682464993782195775135261457865036654443046504641427287351639506590181921584800667291708440381845834574521820321196179302726553507604972908541728854473055292481234772029030546285541007051618160208419997819157816596238642550447967986308016721233501653650133830456020907928539315546821083653745925118357796061862445865690269944979773496985569820053927749431648145589155897493246749564157565082137813889419448305635003765593923982273240409255254780538391553605031193766928812651059943756419452718899557695002094562083673839226776863906876456104579876932230173875648490017210354988612644177968673936801196750292760414059732566174128256752257054339726868223925497082210138689847361890283626115925198022323707911354134510759321647847571212266295981090266146450338436479685957793913854501466079278678014707634806860574757449941995136717721197621898315856993429029167650218344471247271143217539701161274194678202677613585734571197086860020411730369052453561548719498431339845531271334807480281587320157259915466228654730394438883472205842642329594434878248698700575805403259511010009415020860882407235591649535076161902830403668158823758028940676354426969194568304661093557899461130873684535238059344637128973083819067270885242958680031402794702396959260795885513229549106572692034624939123425069139512933019955650998500900694884986616546883637942222088236684302282255938287412371339235502659356364924262710974350628105044754051352313519832063341210498948044690884499351040277891612207853513133906543489878080351307069570422347693503870249014578484111563818277151515162823039717747501803098167364978357565293517103830219730176949639391746401061268230830642099216591848536647752624195810216383538793665687559332047627816909465707821225978386961236905065451154514715534475399838072490120949616614396937102798190031794169304178361047916164940739346820016930666947978783128664451506849956238450384916805941410391747999334243743089289672323832910182483393746933821678179239601089952001680058907536829958841800568333505266269782779569661047615577120343670620182777863150153991479628688753160477413853790298414614971203541269286454799435986661988547757487466905855316665950421660809151860794236395683146953019955655732153064874640484741524008451759777253383738878874963740191448162904786207913654528934770270462441364652674861603929544523780727994149181680956878081039504322317616870985291065519398459131005412707979813719363645725871381096051192487488931335871738550195144972510285724199378074214809967137223849127832261177135972211791757416279379708626196150888054479253792779009218473455350003926483898222861996292985869600903212129663521220850239137049719002998871554787237621652188221767688658590358963969200570232852260566494731011169717055898086182497126944960351902916887226224250329334594921078179278515955857812848577028310698681047510812599997057518612822477262496474487854219321278039999498215085989688002624864075916505442824414834820920093472180721283920092787879394787952639769522101920719489480679555827667932402701381373546837205806148281084908468149804537284356555935655183356356938690617351423260916683023994814458033323354328242350217663880768271986239010500094217551450182718880596278275797573330117831046850172623237398847543765901875692688158599632779695382158288196925557128842546191420461506653184217808496425502544082905045573536245955779763047846758249777460904106748137348862400228413066187280198119380221119443840593388773678197275797285094787940984599833071272213014689621926248039724488016926396946391883001127817866057751854308440369908147127266436712901006272256390187194841682998732855434530580404046662335898518840937597289193040134454867462815478574254279089091480922854291662536991814462164917721106985492081265319626719777590186218950015470082792099486573204662514007813317336860005336138699310014441551808560393469271760409460454553942776391171258839946075825091614405042934830061180905894282039970462732492329832110237949138271784168117523185555786354096617564347578015361006369237676281593019138333415728125503410957524977841103833456833552081223946851757549492225526199676368048063015149831970133234390891120259511395164370554791106745506816376188907505069914324372283201900285473512254512694942123758970194771730874563052109016321454215496848212755519852720602064386155462196483713913126654311873340517903520614336247267318753525839611138893870334223371980743758962046636394874921418269605013897312582892841620933989777598337194102008328564341599611323112623655031383161671900781881764142084903034849612573772261396724828375609063748350992348228710329429637277026031167181312022106400945962805005008262961285129740730274723514941667472284984751486138886614744993645241615989863971430587449854247347369843926428497461124405304218823343023748783958928391808690677265578244376306749595701175039314892989153931282625886153928245772750323878350083312263968978918271548896429079695692349111530444681718167943658027194188002284547001853581473230161495228115078342322666657714961749064956762112319390165116304623555345821012875780911985195971492234479765838940548533546170180157485063721948423354303795111322442930771025271836546387317294343805848029335880073593710905781434518604340371864514114842246701055598298835067264270444391216549110973995084281955060554266360432953988083136396414713379191282182426137926954366048053865738190273935528051247654606245174019435328210101978106651783135126577610324794324404023706426582622795685513669879878700287445541671621745079624402153542926970784117613127525607526047533093238217662571589854651636394616363532501510570714819298924547502389668855990100118762745893911848098079567165706955829874462942846309813644023491601420525813057951140285036344284642741819391321310931676739203526419954216595013627477086932609762287530224210176872691426352840013715423773870202340460011686593286097712845949557096627217307142466823841739514654255593663074403085333257919044100057460407104188494363703499166331356461301753959659283269437717356035389614000035702073831116974263269788634072486113054828967882518583711601319201261295597328125047723984282975130841247629602224738587285778466639646259638398412944414710037716203036938037868300340980295576378726503200255095357728599343609185129486415749551583846540879721051997930426443909108235137064580905384887086096771863193004248430877803193486924269364736936243102185613684476963817165396199305252784047052960308471362644477827057051679083365033071374194358005768427827900272089612249416885272906610176258058131055984947577679725493800666622642326004606051829771231483611859494862703219082436859930705260761644492986790518312878354615294969299624550514614514169605902710161036470836424411504775825556147021914489706999283868165984266661015012019297909514805117063278614110476196255495566285734449887378631298915686224021778292054322452912537933100498441811617327046477716406594491243878298832784877138584655393155015279864253652142359130813570858652337361313914208588063538202430082925614140486332561926203107533101399421111433836843812479169836016812306916952953108700858718793401748566476269058540113773195178790967219819779567619324543389795360250591591359557452473709066988173026760971331448613999815551093665156657172554589997863699462960963517635349460465217773783452037390714191599524974172088614887675928905708208459012106491429256454895429752433663017546219672600208604924972858502499668383268274859663988690231629820816975036355984613376711966150323688283266334808230703235786874845417300374701799974571824925633303687311799629909022313056615844769133441989269589420341306608954105966609795793825904246332199990329503364877947961353544195534199642045114508259570644799553973105998147675295558535584494311938671748867073554155155081504711524813732493012823067467188249883457034283607068542215837233996212287013084082661060086810552459770704611013554943389793911340937046395870918888008143105842145113770282284122458175882156156750812199416339432947378880305854567175950521512197340425881837775159692021051261486430753751543193171813492143329728457037461228278458347832122382869752290531152881057525791566623635958195942757887466901367597590376292645751298903520547719757603420174162405800686728943821778124452857164762756650607179991819947353846346111881961638696115922850468953811865547207520812212106794934097721591389909024522589694020138400181704661847305916553774690692696371898655203862538410759080444646721004497886500485276314671380321940500245405614691034963396552803209644727644661979315427800194225564756002221425113907484647287186931111023230873763530641311277440091708044504422208930176835114319424518364731182790327691679999079420410507784279033660260366157154822817066501012693527739451094037294643739316406944623016330825474361094652693308012752428815056389417405913329885990017884819368435760451069264924031615420724063541777805142279969627930669155970307391449937524621315141595254008937705334953436125142589869326071670150299484119905441404220350510700579072165794265076671885092921075587047018606143198525169136103924301922177952369384394556625131993825084510118007610983260429666760819088564648801761386132214467884395929861293120221188496267733100745105806412309770073464864909340150156124852547147689898016445582705577148075269020396584887596260799871684041716797735070601537251892413416495934350082840250068015663077278030786419576652754402368347575397809507075894345533695842005080619228100881914293983026849178849876255771585616302894353481748723337039579521783075929448575588391529412065560989408533050094009497791241578580356360140045931161772918650695913401572454550939895600789717160891182078941849815949388609654166882435770786861703005657711726815302678388036788478464058067262635885207183973650781170812037737039644050324152378297715376842968123448665013570123296165343893007908466492601199447197967542379018563246937070519970950737954714839424145400607356568560565076497862276519261638410451519960936206288799761156975577932015783181627864157866334973496442150105142593420532266828662779802611423136902059407580028898115859463412997698188890708088486968557180784220485111643077141991845748270188540923821305375700164271214347220589587782722902697681276501605542139707076306986023276945594699615494827436781140142431145632056988063188078465078667548562824172275996228483662768555616983602483872576153843517446896097001174692888635840888227241050259018849878324161066363106294783758084784088319064582759956451954998773904296586943682244014652720604816409513026624077585516909212470527510999167680793211225025255381296239868046066297604504760382016768974392915348766436665698573888059049246527711754224250886997332915255487820782426727245381283585071114872717107018731141471086002488342858351291514529028113179582676351443148817738439324980247268552457071492208123926945162198687482831352287170100151744409580161918210381120136356012507978910595645790975092649772557064328180962969688166033012023059589386781970921177214861432366354891875981499854658892183010080730353445993466647083783624188871624495201533388608944497799728876351847956209223106263585185124268753232334947642148931879980418256723412104491056609386416184891634203387373904428538089002812195775071851421207541729036343569030227953942766813991431564667215047049480971837824562225061215863128340286299222090987656504971656105361065099565453967325836995303355376130363370248339722016801550294649522698849436096214344131044718768834025798788210243906277821489747972034676818139342358050505118016129759164331074609703852551397074899648489573280761487256648439763300345925697587045275471010712871823078845626920440504513645557502705694911954441676723561381832337043649853666123117776986127807532116360665570394841274433418338164433014737600673461986496130023537666970573150252246923568362137799855645532060490387814301248633523333338026936346742294282539125996601884266901546474791966787333210332395947537540644899233196212681712671590228495089445987780326223346369116084337990192249011791263880567824073151201813279611049404224145866901459260146650261306277748486263826588386832555534381132405291593818816907539744357258090206344711936465824660708868092240782916557058176214899197091481436427576639878313178167326109458285541667167015901463144294555219498336497277591216623707946151119793117841744281836035176296605126935424775914400826177783127135887703648832684257674105649849571260504455171286077020255129564884307994649320978178473062843059728991276228051800164310249937771962917754838230970045756575262404362273091914350879917060747745808553078655635135293791599820132300749467302555732144692982891104239641817328485999584784124254105151908086762247326941808483502775001529088021366213811400399666449975811790615766680488029216934110309195748356879397382402611096648639721855136303711706132756426826233404366094951106059545285288717074576007754119656803840573277513668753505252239978198283858505465194654227558950231543019135177234751514046600427823535975554125897480154662149745965458877860557549288425386805455983698219767299216257912111113080118432817065785185812442718071483816051802316742944129595929383500558202742514059755547567195031120963681054471504688951798154318316319021712964343221151395450603797819721290436625191532180656122506599324593215317709922373166803264270892081553837412537955801165128117735637228414394429066553993133328685384969609674721890196480320419738140459318907999014839410802110686967865825043319643115622552640073979744132933770282490384055338571254178553340099804919514712120869785601396899144059944491013718359583197013022958324040775263123327916929967312642663537616457680602501711750269975574297895693969298137261197627337393474182034113440505740114508083111712242864418397070122231415281392099324624815869420669553090303250303079299859181492322516028862098572446407367898926334271507981532265028637560536473172362174530092280214504127267137082305642194420442923246879613537001851869437951248932996339629028944714273267722423902830793146958612350308770935913664932681040394482562697775700998515853840119847442503404507663832046066606703203873657017159865475998274244897132420158603254954643226551004340388616263635337510384015181850016078682936417520491201399562074717181727523160739246052541145679729509732320865960744961824414724315292124900216713318694771595422363350493476987305014599261492436827671686261053847077105587981719436825152224431605425426015231076212355239660569013730593611688066324776626985324046527160062813856931434189337128346329456934868682604419709233603039239680339256994241125816053730922846167154216805098895945043503406352823003979432689602928735618304835649882116096939239400248130519069616045937324719088856133269185364864979881068582045555722741232146977804535243834911703722288540951192906313253385895683617576040691381546059639220646616326535589107728164943168321583074033779632824216624157951384788614931193484632784885756104818547494599578136010444348503810162737676194248380155055341514423225045344864639131782055640728226879735087176615112620875997002415783540537279695084463009809830502806262523572015055299478637417035303183406638455040147828712795110985495325454687676385502787774191088143673686643654600639139603582885773959954769401659903309460158516447492914988232490556342014068757400074928535668183959525822020851709030780048606741158089107766300008611151691714286477266153852660771940691787514315179077320995290009961379301222053695499766748790592604306057281802138445212409940176775054946762875752402043548115834551928952531720233852975945729025880462340954144549287771573209265014481511397072773525551390509725726271121939070806554149995741815686880975950047967758885124091022083937569487214797229060009558233930666909617867864947584423993500634379412501967292583564252047925954398528820741997925848322411501348154407777668933592696055877035081310773521167521190510892617559969358796610273943429281684301791104958545539850328268753169404821706427960959342888998039323457586274824108889989666005846625997294881609298600362633835914158152255717115719087988197708066381685998228765935877066979056289893014745845941624846928536240806279069326593962897096494088318917601212376036181715469847317017463187247461535379742803467533543040583335363135037105450118048603155629828976990251629493517947702953491329937149425030322405136465759780748524469204844333099585618652228214646867678338265134634745274803466813679992539087442829145626514593872999991615250600876042413477628499580481816385436364539585576929995211273821235029720892163003029590865716005587325831325203000981860381290054366234397183575823840441352012446036073344471520908880934075473351385429550243611621041316478834031069458692575329544641077142628857320446050640900817224502540032132823354928148893934049960216111318829239645746030452953483887661374077804115625446270005786410346357849868924291969311591410031393735648829570745612810097016246598561453707457293356036360309750729994833733051214107514794997410880172835506556186443229954299640390145909271230235137232009207038566540870886387792801652026807123595122830647569841861761017910418853845834937443807752021372079101217747953712091622668842423961462358779344055658203832513187709284329166671194572862033007427265721742653790437292553008395397229605051008089995826144976104489598909133742487598578684196659344614881662991089930849817821901956372728094581494034596167495749798641787078262850977300569924810870776392756750087550064384229229212342822715026288735233402834078762766974472629810251339458127769354120494029510998134040520692824132618735370580867422163726814051492845823144423458129614859229695107908839420675223811286412580200518446284530470052283256178364995305597751926287024806269529893350671536048775021013763236170059102331102215907421088651715493206262240411549834590498239626377381178175550837402864307016997266362304734914451497310873708246352873253742112711872617848575264238753432026233387809742757837703696226207897532838777500565336718289343694346840972494454633785288535629670793033755836092505582445802738622240545701380971432768882365974611778388353362652356692279002769733774423729937313310357280848550401793158961997662536876152221350102215777427168998342572370141775900312048129854937004239442446389126863134587360043204006651030404673813953706020236496922182316813275367256108468095125903442182556641270373216486006537515218929596555839076878724537349003201063885877857639900244324652346137288334751815030571444101692452971975101575489297756645859093662532308915191349381871545035042542107791698435339007212715403955865678858608146572570413116550304949558041934016662608829832513708912120475158657320282835386080309196041960149120279065923921897642426305755163349886509143807183926151351170389661174766940400208142462507237896512291140925624106337030528817350871525720497683730321773614398607328427360789300577383692732457532775787978749240667416449875220674996077397300416125840398493405654093793697054603493056130719524972245397739034523957775267034602420786039956101322584745628612573406997778988704300511973779457117557640947940551335471063423591956646461172440053594202459954967721798454919387277352569400205931483122807046409080091373879440185030991830176081274945075648434293811063696187014110480753372946234134425641246216724270640806224440576820542038492374768533609013363782537529020654732547314331020789515640149760627279700763111276914016116401282190343106871170237401556213124991675191099367376096713184305368487471080197119782253723808900891615722635481691873268977945869353065527745114876819006631516280058333348228966200466625207948783856217704698339614074084593898222450248563846253093489175612495348526580448937047244242166598979072983650557253456527040641787244548861343023436793679066299229676791804949050689466645135953724739769933382194965984123136312248155872187493716172010070771567832419723610607913681118034233057863865383669490620374191886931568340601130676140983577380113148745064928495667205146740776800975791602320742066558479239058814122433345201048421139436809584278228856864371175044009609556666781981168674222220323085857461299301603956556622227654370302042422723693089826190354424125662760567859514330356653189502537753056850355825425501963116658662976211626221968487362042279691161591181532713758812810762342033107282425946215149240287501564739072856595029287214028115046934855743145531717506672899218994154002829761241881176553555182082557376100581988963683428342772435197393495088671754224262879231328393908639319854214543125219240394320136948443737055279540970378973222639734972334127462123744877212328510884447200414077758210393893921772945642859159766543133132621722323724330310269766526453821836555535180812617555698106429405718131114277986472971761535227607024059501594397219540186334585795756857850344852778591973190216841946921637383432453893346552670724282829202253845379876363932071308999314224163305188353349803474141454297282393386541687363712192458655387109299076401901147499950650998179782101548253273826304409961065637793555594799012700504822221966162306098045985041193813350398731471121832502794570638785071573248597387593827096063680305915391318680093198049243792977182346475173254342231371881420793635328039539060548388550714989784720904875872127570556166264392897304991452683664151039335896578325748559594917871178511533869121356020778445850472132665087240572485970593506441079008401986146407120167621280760103567485259280080441303918102072752634294677200896379131167858891965856654146806980799538020824069268658184029336943160093965954502682566004520877344477136547309707777426361804634347875708545049408431498273819904141148104581879918731685913122251431911646602729953736067788319313793016205172505278115601427099098596960126240565414346244507955000420514268791061342676345104844462209318517729203355727424539311990272174964350602285078900922597870999658567145453803846854280142797967089054518141585054259449899488212581572234443805362935581554739408956953700686222171650355490362865466085532879711459154695162039660234518716393321648855202179359185989684049063094717095414876937803689519620682247107959263782393168813585476650334862434250570350352910685185003424260072519655009916100121822191397454388660507982290074932433536343733541257626137784714999913605226273855829852976065800615369344687286082718043099959995611322395576908133110602806418889900231301965189410593329627774965432667541598718326073934584127590564481013986700472675362379319325314045267941362247900570779917248265513419433063726174429461888266850907688226865495497994960635301338254834648277000941798530899332674162018103986809865793204536451380566983742130334541352539516534122315025234499653197011973850531233373011905622256201180701952035097782877980830471148001564424735884473709153164663110154659292508634069067274344910176241461837203318547336449096830723666353215361268944295268147330969217267962866354698583351017326521511274272233034027966165553401449553809808138295289027859066837866677595004402888713884893533455098420679563702942477957217763065124764585591688576059455293393761781639662242588304416580355851125038528943818228561339825176105956057835408612444076459022238720557007259024207691343830874722819514855533386784634995871812736090476232252913435509523023216501109414929128471928457039607476454323371995963744673494810509878256843551128413226986076041486518514149463580508412334125186242345188512837989927414400654733865451551345762130047758860867152294943459734016706781566269373119534234195559145104071900779764037171513799798907887286911206111395836600545235668127741222748835072231899480875161701722889620741945168075897026664669351099527171788649261395538624500058336011740235861059244316555043144692853402073815952596431766908677234491211865510703911150209753559467906255222305009912743032044818555617412938331543903794504420017536338001438135061601959421404109258229371816550089503200500345874018823509852538618695860470806531189988937039335678776604739602740550433338907846107888760283177906353356145735165136134602188151357297947531865031782315870786931498515234186921158513549084474154519301071864484825880544394140567593609994920720409234867509594022111269346794129730834306308471589315637539275105485188283763021761455497018195532200160622232995403947114743153137427323186135166889000910427048823366837175059985218127962886585702626515316033571470754666135462072344713615506027734182697965569148945284535558045851097623797686021958535795384185497501741911838873316583262712023896592020694125690831271910674298698480190481401824787759190895888048113406447185702018119614565630523451355912872160082103638649759868845675058020449597664578657328102472871511455248604363902547121516922656389584902425806001653800754248321685716724833601574684971814680239806808804132745756696776966577849705192317334340274384623544448551407747602246607675997979654278550510604238461959791494376933052449485652693075067076691505058316255980856887990451485297817941520356670841361616078436455486915043972290952668847510417971377132448650995513963452637148292189310933844455574818003700843099800588546138234484363093929001909036818770904734985483825391692369836443210538616889736960562589505278308633685818871438349208635152405945547179326222718001057618613190422624658084464719545526854507699978737697228542284700264652131630825981291839304221383883743285108513207142218378450347908982550157908722294449968493336684178719557979724651135819045464155574648832706995546855005747006452302275632244953764089116319307444132645951400577942464196303183317448008931586521395334279522386680852097776768119089988479117714471227110838174786180597024165654916648407371451840523113533346522907639221279450602597862568363044493907501435945694283878624792189861424766096586943531666052525306059702438248734867350173425819527860565268787521480095605892849645655461778676114663145053126044979763691663270744826726891996933238671764262754122584675316668828708715666846146918027429000163927633451832566816912303635563254579328669395482041053316383534947168555244538979127485306838411333757766753924594142871046373111452165172473338418787694993642581318340375644843678054316827436990062326375894702576528437811561808225726540321320214550455528097474383492802392297327522652064960919082300013784835450173238897650494790723348760200243103778727784000058051393889066906825850761101843315092282611831950643213528628994178034860400978575004705196910303741867514408957922661596763488698683178768200297056077320783338168167572704478574981771966499194399223755313089154686802914080721711129611244608528955054499930988082257132558287086964054078662284496670011689241363110011020659438418753939872508602244979899084499645945859335016225463607644434796243265830620311702199622681953220655593110616011120858937249550986605510891566528615639506996132726715591132995014756549206066344982383692599978949810827860449465907641577484149024462878732834544174406148775201743064225942613723298988122150415630313505611272376543656764164804530348613193511242132740570514741459320229873893156694032016295813286273127761410614536395168755253178962165945116528339884340881266203140657321456958042861523514525810111060772882623591099263083668797899017480418735546988222480281435199733556827006453101229026321839650817836131398750195430072266591610649483080879617174233611462724857148594256001231295115277052939822626810891933967958289906280930083482834026657204724579980181227304824942385276816118236050737540857874990620060173956822611716541758509535122385141770469401687625171057490419401317183224941902051255138357991635358734584593646264652326451715543364754451439733118923919952032086621180029791994200876102878616755767906428456784851750627348787219479818171780564445681695607462996676250162724236692008398541363065505314663162663175777974167497601955691913202127906926437797212793898782599341245653395232942390264469998565689202245394527111810839927275226520046088556425543514421889601334079569798701788936798893006082664037951263029774119908526840417292974377869116429670197200250101537921019037112430355298948230689642301047566962613776362394633347856496981109969511379572393637019453574147774570344618742425748839387829216493032365300257393031719579822915123805142727294115080687175987904279729111830579966929086329599621355564484459345285053604400552676815360408913721064129505711587170466722705181372796035040103508607594679374476947955315465629071396199603946533562371545974655275571042567625138051016048652327227588768705390419204909253651093370039071559795642306628700292467931892232758023877959421398473268286342713803450991545467045169529055075143368854917134540837760045827223592383224822734455012629460810876903538569332327349339808041453064276356917998569446589209738912904662754550945605951634661487210853959215287514868712515319954694392314783641909729352702519421478890480576224308844416299340782549156084101437430091008529230918756517885772645784099825790814896243722980190477801642215895811494071058127212182155410890617104002445076354932575966628312584350663218694532167731366823307926888201840703487292980172384732808508375971361465618806980044631107377401688289039896792648542912869669364348236111295175924249706300145293371683512135478807042619854878134709365814262083083694695739144221057399424854752004740530055047111619997418001577052007306256255229622625041998823169988194876121310837336208874743377649753672465699654847692313463394841549313255538698791874910694495766312550526150001535912872400262516069424294151903629200009620816857242786809297945718585640046285225466498106152721954709594931219754010616621299011215191809037481813358165187139553248890055720036958090651102326673130865362800943073676812991511567493818628820451220222088208222642662059246563537151962193177221234616211000516518579949618241658530737663772787096482067576545897128360770259003066674746838038323170778925109720471960918344638365723753452885865301712675365976709797467750515540273090036821440447975190985473179240261629647505946674345471008108344591262842822418095007386020484735164205230386975468615088135288110098598329989708834306305003801620313618070237225617185619420595719419392528096395816042656630371801517220422517144452658710632709529851846517303371014740072178479755291520043647391052518337874258597780386116760235119982690558466105008938999067740949408299894537461995033102868227736444799668766248574550378738613168052808852036933402971464030510950255500515729681148079414044553470848949580919572078944561196252489056591869494518745400891375155386892525116390913357806224689813521094451580042043415579912911669358785669957115951532698912079108146187107356315063237224811147324890313211802407116180920547894957104712849639232559141911417229406300535261849567707617255801056907266929006828380912161274333745571189505447030478342347503565530151021491195014999290556493761414997674759048595063225002136260652386563157786805472370033182253084669239747888789941153421281626259669627771742852096895017269861473094339593060571633993986085216806322418743036092121241370533237030686280285099232117263322869160957614282415162578511925106125518152598295696192053497813848300970598892413680772060418222086534623099047908163056729237702337104188753938033808906303877471924664965580849331793639636972835974801361137982109360127049673549731766563180218566860438896295960027852824032614238343458644378844704580873514476172896075482210213524242834121465544555005116729170636346985086592095375503083024671998806723754759915296302605357847297456206181410188268782888204916067268662529623297376439611005792613473512810805018375910605592026248280612022199999317162260147470742642954530100805334863466039386209132075976449254650867425283586602155080506654224231245693479494375670628690035728243263820752850062068180154462240485134563077418502304917441003899329083210583405765670482177984768858789695817568970696824361544901977439459750182036484901244958584471773867199543418730818245471598475306187531237524158838181127205926964852165370588645165483700365447804116500640800263794998665021187019773623959430873743676626826229988881674423895859462052955663015001994731229260334144216650766631607136883764191826720038178348137366127531619454344971324179563789191756751616989286699235840442258330808250005961210940760991080245123620916379505081465932116443951540728072104449917445077271330090576754231719447480050587299645060494550228588864746742411138361066930980587071762623257641412824359830791074936202317312574569970662022524431286910286208040872568249611303259137637743429067661750486991137304618869573846495735365315166819628886217058374875274278191096455248175450893521790919345912680329170221241660281121188259078281425293082209185221651140295567204056207792561829968475137995946846164299176833608055674049991498524983808834035861728441630784413204621772703318035157314632158045829383409608857560161691710086592992510153975930582925856505243165738161793924737127012672546216187550625754143379825500284984846131991758216550818368523175259316490080167602448082319372857031960543638901218573661364028020856565619600515065683761906505935930294437146782844637796784257653625822201366822931210737746395383219220322395300964400747744341826411737459736807066835616289097135537370014609643816448621001997031691134265660580338309654675704962668388376947531863218912211563847688218713279564911619443790019943309798065729802850496961955002533833830792984007620263896759989073695619004843024196663143802154916116203109490292690819189230863620604647775005083585955451625918193573236515613988046736459742487203719706890852994861608771571206557244042910052806388731211686310777309931656947567098994071344392776278286656176656289169080045039024167243712942200143245569460179349265020563216523002787128519742475643889645957920101976242642202943501961014432748084202861848035050225286123380825032663257051400437633981023541665356858268741178703570631311395400772523407888321040392265507222711677323835603483092719166831780859471126984909428234128304593738375559332606940306718668142693050582302661818229569548478382611885492235806432881765043700475821133078058756021798247205702534388656674616456394402139250529312307022049925077865553708699264944149678616983718877660042795407479742063693427231717653768310815248578631728478771278177366142692665568350889180364065397923995180090891088661933054901323810416550335852427850651199364192579344075529656744412768368415000134421946727285762832885676421200745428654575925975742345469186337405332308295703490919789806738517480313175641336163098718360920432814799589104924098260622354925838808040213161209215137053345763261057780859761559875754719658884322298443434572897506301459445164227393869481400098912182203495396661905835655353037041166885060921526318220905235509416913558991531671168273679046769244977126064007065659041112982807578457173816308157344367010894143520597399463292122925833491822673481979112942424241938116414704430241837848122313088458002511661637952957160366182780724992002605032823058412367258124025814134083318979419581286427815495185100745661431613616498997988214321192513244756349307427366423566956365058856088393788235227015817520973768383837173976010520750104094789101838127041887294227940657167755824812176968615852449406315475289800476924416537966156591002158135789925892911471973990904305534022698627011520596611710295239860739714359220619494485970954575243340688276180615156829370612741792940283340687128283834064678849249418411922062480321300637696887069094808308309441051596933148236079274201409913835923426972993483031339646222206566645604457177087175004702497116685534812822573646434836068789570742093374915398575796525549992615556583325907289308414214748295058039858708687648566251759194202728007526511440183405126024125586211469886629223763895804970485596377038646896566552898040057848141351483560754077689978659139422271897594955614358939182112829343344807425845720852501193797701188412703449480927281475508682498493354443422148468466757528051972735214120860944851630333205139856626358026459556801562485536496987242331769994637542586610145967152149614887023399954172738982660139928435069065979946729200484338579901581753898229818327454398971915285280221085297234800525879951937243245164850209348128067947718879569093404920722284440548032378927072357171113279548522153056383700733029854770170634280170655646583827988130846794061731373777251653805384332435199484720237947075771643000423500893448526291898740181006100152213004400958516414117719523254313775441428575043753718736776843934567181668143178674317447670113741275653290388837237756378438040495891782228323794058836297382476298509548171136491265610695307200125062514820990186765354597219395132612009057942195036553710849542207710469002406867801973160581693885594788784107317523949335761977990004758166281000537707110638692764821909111962869210702771587971223711924849698928949618505825721499608614438441919053249712255682228301445873075669865332767618452546852174150973572411878438039426521315475187153780409548329852045798826061508967519438201450837531960766344068393770488514705717396345147556280030950145542352088815574397742164608572461161735704245566078158123199592751282806303375497143878045330272962388246492501786790329806925907075277281116335866347260614891850301983459966121176408631865471132867158340782973941250576606903674806102682936184488033151100706416518132818247796184586689370467230517196510320838985964263053216018895087165455139102644845479743329649352934757436477681855033551306332180453105528497471712313021248479765691990039869132316025144619718458364845597887048844482148072317616569531465812475405849073595191556951900186895516487821282551004381266143422227209950595655753759677873385958722963727202934139733886095050459042703826994769762971834755792324981162580277074266877205021059239304595245620033808081827477999741995026748000870892976685124491697700267499128831001716585062526078795302532794792852686004135391749894440011305894574807786192253878476601479206890930394495104390542161076418102842604746326689239225620728909489210620378275636390871186256636807611439361557104835712322207333914508463965093554149454654551648009610327001467445339049286832419875797777060805886545579825220360974608353763761626965227197899232768855410628282688532241974950670702245625295244014145560099471128985858915720389139238641744620736834097270235477182058280535498405290978171668038792821888125534528105081526420013902004264112150099888713442332534829118742636201857689588109667790059379808079096676491603791712035858117503449275137351145451632025826456608536566579454670923422415614291921277205243448573424942980582269291322555388253101460470916564346726845886269893284088132278654913656337422567172602374433747549106073626432669588503075931372080656178376887706618783982320692788530198052720262157733370978766796922552870298258042441196330691158466090109449236162087350229656881083781598164830228798934732687561721980173339368994264678817661760822008378976726825493042056195091465020252353339614872611717931645530248466637068194158708252430558399559975839380096629549557971153250247024969778396708261667581712167058310781516969050925641504875401123347700225887847343755608617621878982453512978668085960781001268308913730531990785862249928677829004042168545123652533833114066861557348057027029033945321374895283485503712197570759822641523824118249141735805007130949092961973387771878378772560044836871672367201446031899064686633562355306625394313567571836948844100515539537735987193785013534010585491057979503607974728189364676982289271682569279603359801998330203362682318511078813748352558136076938663402128322128527390605785478930411798186084559345494947863979598479148058288421580943219189114241522532955164850733643130284549521458061285153089212805004428424222644512379750209579188778975336028291138263359672404282650434339908193636422419552369739864382062616209899274782890578982847651293051845969980290531886417744837458684236931445197829045823459300415055178205644210747301796160194151648863071596121268420474191991514003655629267224703135742613682402975862941640578609425095931606182893872166007756720421604173095664382512692978641250617019527735648057534472833204242394064071057599411564238831141414295468933860696451461453976792397353234581224510016626754745507786330856161443807050941783713492780762826247187328811155424699947200102150576407050106700503994790641120713324725306555079870816067172666343191352199578183085511409284760296660653605237795685028182280918486486570772887118424802281537522975830859034333234841732492748182820711599488928532740351734925990326203160450976465499090189222959521121450705997836059860369745431669693609989373331971398851527239011939771983473953501991453151924772712486062813565409366662961603154962081874687336019102987375699600536235963996614807941924892346426110943060672768326326596870924041466887864585616125933020989195543334985932449833242492250506426003259860989584471670696673544620135251284651911712245164038827164115502261065559733185540121229846354220849409322117344313444769084947081211211666275066920373424306611998053686109751753912792833832441808985301047130328376324253722600531766294277984285080479855751941789914437360179331863620812963702230647780097671455812701198500396940195466590173952936069016946681139638664051713941147477285096537284750155354499591190793646931882956153567920883411530441172084096280486779094675904089066604117860635717996841895340724350974179525191214927183629098001692621449399948925336616630349334289318350888287817427536220926754385277256109954443563476679962570736296589589014557359099837554360700564397049854163317108640961563430211550099146455297791668724577875688195271205157916715558701197269284355682490793259828038930422751187680738542984280575251515535406207628505384211548501996906631013055538029108435710059646550709548568419462835856346361974644142565795052216745733662806592398048593894016399682695285754894364643068480175356196235920220546948769685927