1000000
2642555533737889337627882319275658632592762274451765488512216529688759278582434724832951622764565177446548922897318977959318782361369744579198133222741883875178892914565978751692914776332612751495325331685639391686229934881531752733328397594161994193958824429232282628891774736883393544525785332234979526793794517187881879958297856385376484754462237273918886393741438281169629712456869446941429356115317762892711395584313689373619876485632731342275571593724523354535754865392939175614467931295798672828863252421886686611753856959567558767368791239931388697128786914198655632883447472964576221692873518584458664238185454779562718942261311197572737481188425548146546251313199129999599355963846345178126413297158433489981662153874815336795298851715275993379953273897597665316144878653345523862331754866871898187475877751656772329219679154812797344547846939238545253167112236435778656381728897443945436964175426918325118834532272147744376222634531435251344696572575463744955512517968751584963438516932387355627341375186557381243246474397338732997768958266129785259531853665769544998694641963247535486471623574257881516492141392882336616153877495594286855775145819752623355441225924441672614434287673514947287556884465456277328971792919155979166254487724812175332345963943224211693664921468745597596643489151916969299269949632885683869543479929182679621578812672612553396556328997216951177743952325518342917626498335691955158684749246338649476438131913226142636378464834712826768613973646566677984928813644938241931492453337326492812536174495286233826913645524256315587454653776741266878829182297579756815731478549164456857255986392253442133478731578674654665321451266578582743447122635616286568675672597547583159652249161933427251326232797915559338298227656293752475984352331613993918199389627625195438125496686115565888837493176448781681897786753514874986361671744177649137421324737862245814662663761849497389134325173111781149651198614255188549736235932344653417353296338751627899154653117998851329887325599838222813845253671243468653721915539749297324683397314281995193828312834293663344138812322125498959936194493634729356186797114495644413265497445128755378732868159285491849937258161564322573137675531781151373445655494525746722241262488515927393229719726826924995411647128585954984837396487835372456337494173939251817479421886733213239613355711689585332888753327497514593672373547251728472285852425846815438995257813277725535581636948777319433518757781126117761146359413841626331943234419973443335338445855116754172457534719341974431794658144832147963159347117883174813231343752151883456594562316866829835427964123384995359457619993778165751145381456234332924311715591741228939662925349319775979532213359531797238464121736128833853849834844176685998285685934352489389355489176933682699912448696198188958885733963528428652378698519965495976375547914654719924198194595729528826367513517465766642555435144536914497483786848939796694912167223621145714519675134174257267178325642114581145995226629958743647318546789487248263673679577416669922919748259925624148547865473985836764717486792616327738959964674258928776954239911665674759649194819886428729168372529138541941275674765545237741399324215245162166111839819587125169318556694419386738448544282511135579963682184267844267815914292559262625617766115965329528159733649245817578687667441369315123596184156892199828629134475237843167977986722292117994362138456918425178759267648383143217655942626649651555224943947739842155939612437359485366439691551899224685224462888751834482975815997567619243475233648254195743831644523322626221189857413655619195485222298579832228552755942179115744883733693532271623688259582773348573819656688164844842654623988376849513269394853751865925562419938725667637659461218181452712383727116452563147935469678497839373716454298763664284574987465398754628821196713885967828415947262779273842353467367451769795622975536135818849146388119576373446311788281343428697891711585815635514879886982389736369324189177666779679786718649461692333578431822722752315593339673695222197318392117537484446962658563815919452697851865541262217222195945533865493844112782899768367445421779978173972447467395541223148453987518644679733385431717269492573756813784667923414826193511812688978754385125817641192352279917439472676328429445574144775559689129893786614684998763211396637196669123885898226543747188245522315636231144668286479571567255776347412214411245368523967226575779136987264699364382144684166532383361161422591154271312762856881279468722795559749691257561728864845275592351348154877727974976759232123991797591123178546996824818142958314663994151524453212798713647412458165267189458218957554668972762443543871732244259159238996829773834885718228238786152742614991855759944941647118411718274499839433985935922375155121842675974621885843476989423342582345171135698111627185847645314957278743935963492911184772623433536577224834312373287753613391566948665614254486783425626145131813979411149864955181713382762494447841847871595942812983163679668867133782254557844189861358182358625323965575879241845378735278441817338872168992345634425187569976422689819226665163667125188119474267374742911327226912549351232288958421786844997974339781829129377925461946727582885711738183496621399699432744514847246796688499652529855247667678579241917688766377783538919576741467772319163247537196279714549159369726617118448194782951234198294289117172777417319482773623143286155175435252398991462135287257444422131583622346816823133573378656545492937457424791178342127251782336923677987218328278339325313128467221585398174973125272837528658391267939144696819643522971186575343469688648119576968921528934874827436567271986857913394899166156929932319683611691372632673594774372316297553857996475582618913826443389333785178577446775369391834239766722424778258152761197851223339955829535376744559637528111759731566123772887924415351699256218192498623413629492462385826592732272897394312246375752256222417292396361275596418714522991588332891968168666821627329236727747357718556945525718475138892664316825396985254866397197758838953675393835595899811473853528185788155462598396362728123435654474496884961763433251782313112247735896819136166293785797991395483651125112411334143836636788431755964529728964888181992369334259896546149596138777271383538529458762182895735565486119115754983543242374637552168913372322541488366921983795261359575939774827883713553528818622686753742734161351137185894838148952256919321859633726254373192438289218927535281628766736445843145669774972743814993342864521445698175289691811367986553673377886415219736276598326185916423531996525146427616994526353524898424142978344166915178683468632812494228967354624218432673438378422965482597822923223517189496817981326339489834846937566416253591466524327663974677235162253469862855271198174543297841444794676217742573582148229647123697546369927376491472335437824233576842241414487929656574973437611896256979443694583446526597153631478478396147888142243135751547176211484368314145815529438455518747437469378397965817496428351345136424559263468336679177839133397877556365778375331295545376398586694957989795354257623683184653495847499344753951217196577891859217476884743354599692759295961686295764661914874413665749451449428291931413841289361764148181467998267466914358127545156699637572764814314351895717143683733918132642383413258461728975151682288326949714221186783386894377417616987546198563874461991777853271364922219394631491394182273946653651192279244418682657144427415682482641284313691575623257884435935173469865562459114892725349169744661475886665784374216539357222184979977843233796646518561429437893423861522294371623363799597392751118216582983142552632764936265529589427471517729824594872376611134185274314898574798268384438429192636249825568424865593467437575273181754129278136581543526875614912691327558268617997812574778944215512137981649763443387623597994996657585361287863314255848593448225517318191682329797838955565549959859585182638854917222912332756511728966246837194121136846417233455627519551733868373112931388875472969215564443858721812758663742959423658679418818824723623476196186591915546828628937421133472679837149554838968164982323876528655141969738815526964359846238574846194439371334394651371192536194943681275463157819312671955283527947122483338787433649145931373531766311657971415911311537524283947786288455754445555876359987873444727249645438351882413661469235348547251487161521413614477837993135378783834725138492946931166366157375611565418216323155698816443751194786469676689372221474252515884722325314311426442183928843244111344623759393971625411891114629871971246594631732944335998969769239378635471859723644573731735766952225638257446741469352769588794417465449868682685616399194273776955531694661454715277381717699958516774625115386288227845919457178844241247357184111953149297154489136794332232193311225122769399137953921122645458636429783723545892986499645212389469654818333463931219886329679321476178248984893217936436636242166316431258344213441994361661774993991292326748875442981728244647553582423421327449684759886459854777836529685477938747743551175296784124377232639375275651211647975943859316142263216585191486869216892561292375697518182926153612257113488999437269498998258678738443762261738622495929588976211291784298954886325832649527357649467247488912251136652941188287799416112531364192983757393358693993954483966493816768147691966179983773551882656716749476425483752285279673395423774778581862627298964767391455718131831825136915563753939817185573111162716345627662329559673759554379469426137426597981867317378528542129815712154688788843679467794139799344759286724682764163827162952341651954431326213816255765873752962128498678452199438571853883111134478446582573936296147858961858866324868144475526869492436356165545243169412483484521114814339455995325218132585839774887423974988432772341669896239565393625217811482727525857565148788228432671643124162477676959688112189646131896984845517868696171254928543283652836869462445414666288565397817719928494325915424111488261136575278793665795482969422362822162685916466498533872713365917869583599936966933483647595672942643469138384849978254265349651436819451611763288355325291784939942234412887674827774143215528687656781746239979766239456291465751286939647317654244836885667853965476859317172223691559632537856363452333738264713922916359766871221665467188975831248665536132889534974689217337758818545462559541191978278388841727416127624393348459485329577914724445352483874164939685323958965215896841953921966314976127652936652653523366997411793427293659582257681233266319128532259797737713622245187463389976193345227612343935962318964244127464865166416442861487271644318132486739144212268179469331263525338495341569139487626969276651358912154454171336165849372471493336159277346843735976143453931124411829389796326226411187441755925795591974714631229645264377854513947953368893636946393246857535818113721796441517137785256532214859634463777622814436376597894214944772775242197481433486562284821498589468135259635512521885463574395559874454894137494144198881854659335157428811745412854362675145828829711945462929947928656198279673135215243721321769951379363887149421398327554861461413623467769554522638338524156252226365766797199777589833242835952654369158836724185219923139475541635246387678165856799979752483973464486978979947693892732748349913252271919679994819643736652968321633942426181339867829753264258726645869674673232638186813921516287312793261271569529964893555468348851541862152512832859365784173159687493178382133249399128357416858956932817497195293992881438264188151957715767597681859125624736153436938244393662241837852142621796133357985438556851934559525387616698867331863462491838463946899816862814418549932696934147382165418529518837753814596521695123841599699938197497176843897876675913426374668742835821717781647921251247533453881763563693324912752982262594818164913717958493346896268568291469945294949821537553413723114316519994367393399942926918662115314197426224355215239333671662698579551143997894549334792743233774384528364668763715886781852219156265462111474628777292377168345277298238299853166295867697443383259441695423765822881879181972558179673747825219413715362787934699111262428174293894424756326656226126725961922437131191148245361726655911927769724256297921679927237956874538885794959874947177466924984349453659472992465252817972616151764167617575338688224729463246712275469518154758545267472763583374158119539671859593658674589636981786466193548771431931211817395945677687724293697279194747536133272692419918975612878197839126989269137272488448813852528871658582154412921677591238753743688716487214541483911241643688192713943829337991231867712687469852466152571542787875494576518438766495559415183177891111176636962594677316783564868183965538932121897853918326196874637513251528363269326277753232453946629166662521361312497949455639277281322272454329428784287684577153934318725157132287684821772269373895662817478794323989565727658865284542713122876752441315698436238572455848835668256672378359456234865563282568147565832837153762163123794791625891256258135628629193289597465881674954736355689561899279594593929128299743713111457391469515325523227523464111157117117451129855562128451675161554732577678239499462846347189431698384341575572911536213953729578981366189454136172354361813617925859255342836969227189989663793924626999869416583482643851112775412682541517474144765445726331274669894788719816752489736569688823651523628668787534685423972982567191833812599956465937929472413392845166927876423164247912691695362394785963195348953165784527997781399676998339595377178388381318658696211988753489177977693354944835939128288492626959262997886342121256229133344265228234338129718391756979616762475541453944189679459714742451863178936322541526295685917738557515666435267747985119487578417569794819461316248642536254622612646282531174347191623533524244312744259261749263551754389434888889536158311664267246324782495674855826373169762257927658998881523283282298854277464727562291434922352428525989918275851164586454589596177812689835572698389745779894637562113331265669887118822567995961739749968246649365919495562755596367111584563112676189451953265929414964792572654756999357395672115866666883452353144625237627875978224357446853416252715819957842153774148373961358341199585255428797515256682588886569871688469335598296899177697431551997733748292131296723651461443715446761194885364237621661262457179253417331465536382821988346167713916556216397279832531813856266934165449827991471965385915614867279322929586686526171168376594813113532576532771266121219696898191397866288662766344193421731489228882493223318896262141814341699413636435224218585929959651887622255356559976978972668596942533149341789282776151232626775317331271439611376279996148742863227183731124525244873844891711348376296819945997996576495948989741953539613516377669693823725751147416697177176663218676937396877738443546572558371393736822695299961153598859828168138927439848856236582589685789268716755786754785236729733821147834436823918549314442476388261226436262811992439421761529919738726853213958393816279527752744986689422176943515457845142346946578738371588938698121144869234162761412193583689914582257751879666937334491232837292683444348312261629468992681615685941323519818125231355574487942965856981597775353646317226738626689389819389692184218426695263744365296586716757533676492999561138831547997122237833344455448515125166218595634674198397255464919988635547985771919862214614214449799876451772622464762346797263682786313384711389587341451416935712889198233933316237418261899451931379654692339427516336725714286798634813335765136172714779996836444169617161811681971648195981115189915844729571393696537146386541793658544885969546649747568978924874466991748885851333968215541548995423615296118834577152248616457131398936282763166764716282939353918828343959767389631527216543572697853493283243878562421374594226228663318793697397111146621695862182384614628995148192811725657299487145785284388751297424932187223944539334992344323282358969143174626254831849652836413727945124758928912674733912822537148153122442498258162283233138197852283155342551932843286947619888291884161375655686133183335211964416464455925668818923435595621838534151374371547816722169669824177232918581971251631929218219947513719328884316167382991288296615937361248267664451499637197391814711449996285535317334369498367392398313991563842235222542685635693382858816349253999422548724766519729877229845474178311386193986328392864399361728717662988482291975359962878379687168688817844753666433368384483852999168531215681748577943323219762664849276461483523851498845614581945116848497175784766944795953832426921241851526384576717914757335499679562482629648449422591134424398781253563711197343592952226513364644533973996194235747948866346519524194893889763244742852991499111828516393165514724515165483826926119325772597744316225713578542227431167271271847469543769179787572388528531691665641221252944132541449435246342567223536613379242683532464364924343827348461472965831275321252658635955625424628958422651225855891715253315372782136622341284776658957766623861926177554592515589226434556642346611446847254394262452117297333484218137355784796891514913364512497737433377558621661539475843262965414444683586993899373626819679236621219978949169874777326877498329492272697581591656281288975977989449673737688582856785634213935435895519426272332366833356762759929222547534224192354226478288729266125246618965668343861934491264595996333226196157254135185683894246663129449522869928458153774343949568226757815797629129866157491199541486799473525259943355497291984184161518424663652472298393399299249844359267953359463676995332462781552642547714641455636275625637678522535572787368953339573685223147989131266792325836578523154693522635545715523553975222734961824448796463472114367294788677579616724553363671471547946752157694493568595277968822794132298176852523377523316565671772814123865915489324818114554221386433227988741216939345339539471596876143647368173712872641637178137357367714633846465159316135651293845481713341374742736544799572473721195893359984963494544814969793316425347751239317746643892993322547136459212774877635684441762757966626848769924652235588595637568459967129199889213275822748632587128269915568289313187179567497743662864486738288412964245676744364948639937534917189318395654962185983734537585414344714554866146299714445867156128854543738128314519881295544167729794312796485474317794251945813863177569863796744859379478962695367931656364342169781471573531685268659953477522834149194725783619236482299321514736178127147455839791545482381431285191218285437284357621589224525184822915419694685742967896337719445538767933117482222255295578447269679358962998738982892244885641599963982148439346595948822918187516129888476259719882293245127942389849556659912561348499339383174628317488354594678811837879577442113418642316982427447621475836767961726516511332118551686731487322678234618778455283996252695581832152958422418899272369762773457285366363925959691526546181483484876567179614127687294987897582888165257281799481728575963745873283215136569975196294498741656458832252859371673639375585941169735576595793724634385311928183788118766753739359178126924139574878864357448991686433281283414446282687864262442823456328751195166535446691821657727729412138564865355431768542874795498799431388353276687636239619455391422745484768142343443913815424942558737859421817921683872666577758717283747841143251785412361312579186145334376183784245652413682132773875813527879974346332586273886382788131557165251316862249577223594242485495717113384496537191227333472776922746494777422422471517587163526833958663368288255949911311292843283146851872946812219833178639874223943436173633324723372123343744465559964712631652682885856169241958875457889919674555688545363754279749328946628476979616283541267546627179183634899476614711882445514454292847923292962545586543895644571476818827151565755691788488667349414281371229896978951578563429251249687141985385335234699962188968226657562759174825811745973148941951869741971568849253462152743953734177657847132152115179346486545617194275664793718169196351745718695699965135294682469837445556446735723867695656242578238338822121165645585915281585177714392156211613133929285497478336557797553838616853927357626237298575617778913769638538714763343921824864134442883535776196398678832764445892832183959139654447429512242567144361961441558197993269157826426451597696155873344679677941898884986275797868652772491658492845765954719523188184669871895917477625268458233959147314184299743237584934576727113611313791783799172395715682645946115375539755181278522338986213365483879181822713852199843393722416452422352245131441444849682717238446116887139213242292255855416618842791747573813394645659179298675876581542114986749786348838294746156856453419443673578111495673418832635498918347976228759576264576246737582794831335734367992147744336536141162446524659533487388511479629437531872566671197486831146526829554687717931225967195816676572838388651611713361156993983534226872254231584768375418115323524714943843927128938376754952259184672978897952624896679955186694162231279582215973844586985369925998998314859119848354292385715745472151493371516373199563651137281211921244378938246375325664529848896426395589545466639396154684648986696775214815645575644875888574238442442933318579775797855877621336834598494339965731476629331895134177291331626797992232922638179533929736812845511799189829747299192851327932517178186557636859453424277415393475376191358545785922727384924765918852482571967282196238998515815641411857898731193426577943937638877838916674951543479893595934267885694184876322967977157583738177745274777514448577865254361322524995173117831695533421776476289846189574378698795653297835751312135873435975525351111974318762591538129639777628644925663396397555244775459135162948969521178378626561568444559867918637548586287849888556898565672176178964153116772711293177469125257558153527431976719431691559165926357393388887414719776296674828268891763234678463663341869541959388454221722774269857891842678798521761794185919396223928614679816896283891717593816787243681118732169568869778384882389155525611958659988935262135614134491422391124668631568679755291238496881291249825734225186229439556272877612622429925573224353495192295587424867846218633717328672636327941497634933429218426247845513343154625568356824522415593971626814176436419368896995139154127759333668669787869747543793785661729578755729336611582231586447817555946895329244345241136241465254765343375563568714146367569149935565227848865859347175935441555219128682198179916869738446578137327333393432511525563478746559886435751232475361263462642768231128411239971928579129561745874692555445356345656933194142917351572352213369333921711737158416847761689291548356749312291156779475237517324463522171423361918411154847164116659182484649226173834216916393379534291594444863217168398163777666454952587397365755612643485531294453314679414757352188283957327765778397918164726926682622738743351659146344666321811473753842763144891266328496617843183574712167767659253569775874734181989615316123822213379591543852866967167313215312856923694213215558542281121483358618724534324254353894438223746169274132865294718468751759278222415361882176754371895682586823189797651315751112733811925379555219382192245776221831958547413774357434711558874586388165378113167337597691678157368375478393655554446939849977857184723954173778217987296657472395855674969185389974521176334581244475131657324477613823513341138871267153573288532573291731412369185744687794132864369152491635662494249184938646424132483818849128529935882839638991484579447993322394469368419651193187336142336357492181929822135356295845253895563231941675824928772827737361184252323833299698766895687327266484173951481398865285937794867897719593163456561333767572973699822931958398237984524638973878317625479377352172163688162931898745123489799748376153778764322443728119353926519343296748238324313331411697786873917882751122281365139449775149672449926631979667753383229846947821692966968798555223973461474569188557333398583261695982972583735627142934625356265272279429911769496712824324857517261589589341886966831569341984961579134921312315321685935364545954161147939542675436961839795161669181922589613749623346725997366669344534512889279142453643878464956969315675975139488522136476911336113292627539811924789161277587883648359931835779864133695612265784668375625479958268378178732421867444775491747751647732833521167535264591863299552683365751995299956971176121978358411291941455569662589535139715298487992133192243842388585182934713847413716159474692639318356617281428443748241281816288348579551344684659118968195126474912853495248876434512234278788779794933232596516224722354739697519296155354592834425162462171945569797335419469812292827339971789322142842178473242584785446116197556684366332166946259265349215617894875859457874271767586714798824218683255589413285556834542693714467828128495492115283841232232765412299665967716639493496371244536612232973487168572696925681442331781112284289682713795359721838722569915417376481371924899677177922978862594534379222554477145284684422999799948868778468726128529466275644262179837441943493181248512826768746754681249934941863962426258455415219395282726867444916676224332147152996741685153368494717562925547838795939648911764987586155199721597227396359841825789845145271675424199599614373619155464388756939437655771356662199642363488689331235584949562177984729434777421841959955861963855873837723349392394347951949869518958524342714615637543126423511825671187916134584975985637286975747221316932757316335339415951553791131212786467541437512316669434223471399934989217818442339827573832937161575516573147747792455828363489847688574665429258464327774226335751918539898783783231641917275199567574736376595464921489488111511767442368349146739422386514382189748256788279717699287113465892688629732999423656162944575238294244785348725978973864934658575153796681765712718729826841622633971329153568598598718799428877157686733775732983762252854354168398765479126455528136669466754215931991626557816522859123774854593441658228296634726861277389459932537412657926386716299143315698686898396364218235717666994539853198567254818451983232525513733237469151141537829629365419316433883847442316612669225651659229889751546199531456716579583488933176492959256169952327189297338577232652487948448579754519666782393363611489864453159492897168892874417381145258638189666298259296256541853473264474876754195761162339966739177136335897657127112722523742733573867355322757799335935629849569295197168232249685777665684623759315619192133278434914429164236217127419589624629871913234741844717757857812115546414939322951544359248751995746195961686769917249577474144394215324772826959114567485292962889444988517352113754565565961881562766995798962558771774949987213254211317972122831266852395835352351463693476297669399314183344211415426491924533361578274535982437672994186661638717523533517279311449175748351828486967675313961941729361323388631723466888775457528697418996321167838632644171987131737771542396282256313316915637786319289236733572215872444652551289829371633285562497467882379187571938268242713675654745615371481997559839897994553721491279456437768315521312214526165876785795454731585359942439422576876969261764626871893777412416739684556766258221625299971632183464775932444336616599569396633489713428684984441616873788467644363468621418546584949826385359188653642922785336889135912311393918384984779688118416556935242689327658636764856556424827726353552511686227417212858435572638676259381187715467227853682964331479941738627448321247338867646327268694879294342275533693631441654684274943888271482221746221999855785533436356668995118339133572396414777994471689518844734454848193743934543196821676677762286366555649746225282477741877554819879771495154191755934532195196293585235353968131647185467233862415722269691415918925425594423358383744853387524441419782442822958363213956769926776536155871328228186926375399724136541767122298636389828419923524438386368874821378889131689376953925116821662145657598479645273174957248566159565183687742567912456653586847865778385561274953989467274279418111388172172678911723251672272211477438438446588355826592848468333163619255385639231832778333425159823919126349319233119138936791777746686554946436832591159769925423632434356816359945167719685296512386497444134439315766153531289472697249398926112939334277949324661522226161587776749558699482994579172347433499911435635944477989396983891216139573314559487325891433167379493737394548696794312835155635993163967963495576585794631839146884969938292552177788555284244734141656567756571755456117599834532913372367251778943859759611545683693462481917358345768653229614724831695398188923395276389187432429875281312452329421678823953743634377781369621386148777195356878172538293821946181559425417238496191932668375471963771527582191341658631518862162412814527361297564435845974619319835462187914669229281419555321159899422529699228963187645821563913148741681665176513354665926273868526825382262129757849198374176771952254215646251387391657529297628358819896836521973937989116282864426194784167615948626489127215714212858815533434156767687331725835785812184231812678617144528534952844319118113519938135277638746739332616147932792184479189353792226465252714682798793936295457525196876623981169475941658633476622473813172352399444987116115162797751875329325959518125318486351126945568394487322355422342839724483295875132262954542265826661414717792597372249229696398134841133735723717981618329314835111655186936127948571224468839327331815917718643387153283547352411929326416928727794531492348715498733816196556774121651382112683199682582733124931611818435175133497199734125496975278925272972281195677355489579499192515394941547381911149783424916364165176278123691788871729783776141118481622985321974166315244948597116367916414698522889513238423744967448511661535298694675517927994114985994746828523824223578495716117665131957675367912685197726275924377529862143596582455667479525361771978296336298221347933727751225282371968611383155573686363555423242376713669932927631292826112675965918286974841485475624318784953758499685984621162411314339111955858283717174487411612329964426631144368152966542868428981659665563752658871564627299411714986375973418325767689729291748481171752974173287386953323152828359933286831128567244443838476914982661345719389727992818954393872988746131849779245585676471438237875196197274872786562271711889481436872444596549461983913815133288475863657835797551386594717812762926334483612573224617593556341337693371923496646862388253839824136252674664131735821714162798397328117388748691981996736432971989984319684354532137817379724671415157122281852694266838464898474782922426718767634456741876773983982859129245791145836836268958961326193975273922534755921168422987591494276919741473564957191458438949848762168332765375257321879995963666138117592189294279829732151394981629125647361146555793181661873519558725133432961454823768819767794475725634133924975274628935346494349746922452225211617992992959197436532881817377889516683858793135846687563927929661568985122791341377352415862229318993411961881919738411124848728452562457514385441166317895838272211662916442968836198852258984337887185656376438893222383497856597841515556383591592189666621134473333117515219926514244992217783467323824124361655864689518893221779862242649327814854413194963328578834242349569426412177811655375929624842662765212325633246735487244827219476622432457346638763436359157498859634226373549721534375585432387816982156552658255549321243287244264794773596456231244113865739427853195389517674533147798652674715485122316947719491878472661751429687961585391922282672989152648963943273592975943386136989321914227441766487818189873535126873168528398593834351799987962818427126268959913163364483697642117865861523816157965329674335494735913987455692646413295951979689269148937295384497252549443235594747987715592553238895344226279136792111517335378963662678342771545418135998749919775272974131438873512376492133999222766933657931641551111311495498379372623577976457742174932886857642463473291748939994632594453921943593767662585961339921118491725389175451367573626747261757178638226473476214751256193559295185313168364894884799652962747194728959865811593646597425945362211128578116875782818245912821445843657271624721267735528221527185821265741788838458296347846137814894221122696534377218636274347166821598844318159226257694692549986416484864762156926363771275322785167631488475939311365369127134317831943895984796834895756113837189241245736991145864551592268257176565786625886968211231245547684816154877515916129452977623162843252244722354225837918558234271737156629612717771282423332525472378228664122433566244581182816975496519525467467467382299772363795515682626776261959967518125727358564238635663945513247922948319774358255314822641531542346867145314826257325839217867916885872497646452713376379984581658669415178136114293736446628221546779447616772413868438192677682395455177488326996885785758577924798963476888443823224686937684543943295268268399393314654827378963981164894854622147173836276438474363824582315697779786671129679866326928371166544739643699437721286217271562944879678511348622922533791891387517793693654867217851694859271597523742828461431592182891721162495217418698626427395759157259227168675976952589392528747386854865934223768588253223823852582976455684795494686536864118754127286357521855171243884825379765115941183186845839417261953972794557619675461716432352143179698257741317713682334538932427782542178315482949461521299869268242771278874496569576512323813917413929919276468646986935342758336215857472126212662671178537579328876159168371722973171491534595423338433447837791685388473527342539655372234913759848934764286458863512446896636993769535986632793898524683529483113475163499352423641815974328341528842758618479991565995818943328994674197324614469838579419713122998924747147489889846374312581899947234493821948659694174128842768139547376338869354795791987497917711676481495568847574272289866784676181576977356285452438811523239885691981669165266251352895374255552682599626571929468855211829368361617962771846584699179666136427361582138457682198748943677469957424738475965579928445334258975135557496862883567917891477544896834466165796545318474487428747184613266361771789828599871144393961974874889624454876161823982566371144596226287888117365991878775796256981492313228845212415867368717348332915268749937668264548662661842196954715359624843584378871432144546456512322373121377813318514416383755191142272995543646151936229248857271968453492184818986361479467765134791244686898534375883219348342338714963853427664463697762455251833413935727671945565761122391388121719963251217914437594572842283116188698472952236695954498874596257827173978545652351388816966821183521367734289885751878762522965479458159139145863616549822862614957872499389897637521254336157342575161898218952452242162389245284594384326739591182147896542254694747662548578879815193675511936118284724197766461586325419997122374431657698999457198727947321717758759773464457145446625888688761365594215955942774293822486812146141651782427253326134464773156966975555896786985513848674719115115993921968832729737629293819361844372671289252353645172221768391659674795983214833811661363852494851818248145223215287452627512298952555634195826427772629266728265659876419171227832223135292586999816831848361757838427464934711336711261343239361969294351364641256853162764812399612596952285586354214946676183171755812833374446481421181483387232611961739344362574577985197942399741325983515851774638327791993752971434385557182792862811937694199518273311414862642848961658268765419436573397435479556532436217851947132186269972132398361952698126312124237417677257777867488118475454153547711195247262127515951621641684483677781873132611418656329298623354259793458597712113487436423511751191256713715174343665328373881525719442662726587126358872463363433955199284837662651979829612994481415795715244512464728649857899959391535877548381272671544512187383213112998588266689553448413955885864168827771683139515128494435452551398569786232196342688988899193949277367324261255847281781833136143636118396483965398698112371233842117711722864973491855891289978495968839835962551715612739427195611111448361238148573526935966542747579751745472883284483966621169924125621142712427352512398563112735289824886879973368347598737881914415886268652132549113478862757348997214745338361241126733611232724741351254428843951253471641212145777863171156713112652379661682688733885792839646684883927926185275517129872167523446926599163987189687968435742868454656297545262244778154335253414283558914126175993377247817999429198163825718717977627718172824583658223468545526632492971972323383548321218225768223646518714386957844988739169574235581282549935565587427398449725268498193334718221333413341254163626782653514946732536152768982897146795319373362741879418679353991565837691461131425616983913233867599113335662377441582283974536751312712126245536629943722767745331693227783723461295931554596583784773385555233487446575748297724619453241892424358911348467564962378585315473919631114277184955679951548711539321754143143884644896725824196354533859367422128129399576134247452927734183516383737473637854146924855266597252392877649316666235554148553419874536455934954619469684324192646482642191694948687628382662747574179646753779949726862714329473453797436422354815792175877648445995468186887154118942819991646711975713174228543995686942767654726599749416211961456341186963495617375673826855874432767288449449293822681338352532381931994356355644171918712827978936159394264771236554118275456538959696751172288993635666763372494321943438657154984821286679773761247627273487911526723774769372658873173461415429935243216744532466514349863867367355761983522675959117363922452431689766518651164779411128694369887639633267912494265825235542194269769982664849427778515451334425685538522331789311172337884469971114324345666385641711925349838476141735842979222967782859689352941885439912821856112427437538295921783575272175542672827264627941182149795286387189452257284672888272327737921161133643893998962743388287864887296186315253344335519976545582936392163675829334984453585243664521262152515242398881888191692639748611514552587827731442113489228158435758466276843962195469939411492792673549531449373781452345951196394611336134365627699179632944293132347684439672359957322643362775384886271947925632681649349993851974828728334643643984963858443751528926987719214748156974757535418341156975328122474581575312951547499295478367228619189874388745614484671636493638947128423433183153685296483554189891894215611817455372125198168616186971272437629456596491125122287413196751466291893551776137272752521847174218258651649465895751651562869564381448527698347499743768945335411345555351626269714241491745682949738299933779335976687842812286528121618773916955382554276492669165338976883631373543537345776591148661315561839163322519819962822665486793243864214855949898249692382179799418243193741437465248842419354689313817471239345823244924251516489583982365811279847117811711118316475195691559969527434433414582934124987576474316942155892142256689585932928528475237871266751375734214795598841231774546599713755223741959396987375643172232151322177961897628857285969434855289618742834992283636883134492296549899895563877376517662894347457696881368153471179695441724145672215483531563819764259311469715111491671682598538499878256652772377837976723379139573528454452862383199228544559829394549314852698975711214647254826583734144243867311841965948494914166422636599258964991256482975129657982535858347418369256882951627589316711673949548282149749224968873225839398516285329686585916524611418958133796634523223993449588419337363352877776456785274989291465982137983222573438855687538888792832627194194476465479278719714176657515517832182438444951416162811476445353917919456467389569599729722474136896764688536512218868733881612292394432769831899822186946419914187465729541758513923415811393168434359227662486218496214321585244395815836378656761282581563596981873779118338665744494538556941123759434859479414689599159772254279478886885242939925574245276145615677745726968562227222794578855718619119356417774837392135269486556595588529327572775698397275792992849524366123117492727417825884212656831818175665438837882223621865893778966331545887688214883684248258637811134198159184526618217578388446676944847131198394567892774134989474863997186116139428347818842836213546651397761832516418676191497754846116219675158687557679463227246821678651513244822914477165836953139531966834269876197462723564187111614649855496995287466883845541734385124279314927471682755443821916422234486886315627947752637297932886147925974328724823865955355552822812533999693972741598594484563875683768679561184257718931459954533533684891568894828344724576451535196154938512588254431685335717262961665487851359765648354965764484812467921325998771531432838761618842659552621122484383163466857916139823384438199744549264978335284441914724773469871134721521799492859394742726136834569252679358151199964811613363217543176511852215466555674566773652225262474444989391887773759393894717626285464635144939946788658692629766843726589611795644457875196589552921116331583124521531818564561871672112662939428952474133122361741828556452662953249224897885394617749532879576515357326629732126699119554536389535818425771222167357123973765754561238417523478131292555181196268625558994471986472836448488282962839898283811151218369341289272456759446364177467132187349241183329893583626267862184638462713413263826644864632178394255545466543837568692848577881552596694862317778889924229735187441356452798129714297597229623553659571911529682591263886444435851448784151897291114438382219451882641414111538576985261121647741955986141388835467931657355789747538251894852319276235785139371517685349884324529293829622136226259766747755159132197786422367491315695698761976655628283256224721164145326878144154445111669251328661192873977147537469749411973832258359174258238766112151236269897334178691432238482236547952449227496465875854415654889577448569734493426857118592459185451491323631513917735337179131143465867338916569348322479833399743727393151414971787585941835131762857439884477772984697471814912851483188861571116462276214365692939728127325938869833139217312136261766182985341489398625149423732182673737569775328253249924677292417332767389561176973554115696571865795135871814494213768438478614246564543381324923869272679955729873771673137488875417317313654149673771419926935351573324489834384392359311462812511457714846471229835537983834697616927552538683989387242522557856165939558684195272418157882717737272382985594637661365113858662737177782616329366911792315375323228852513366684282731364295393248757327258196216947547491756115133846693962596625371631821363522717967242283794536867923426617448622738679127512672413414975553582569243856244415594764558226877846471187494562744985315673585328117741888491684654776573837829545591483242821185327312421287166865358646683381412335728619383484319263847286289773697971628519968213333934369588172112549342248569194372498937651498542642441795355729234528758159691759577224169579414663357748458248172592179976657365514493231771923497119465247884737729991819329456534897193957846526822517488825238572867181873785553977254743545733428861537496691629779136171938944639348216186219662874993878773242233841417555411858699144961432325973783441777434637291586232682856411741292573226616572255254325351447539556242363377782639787368642825636844194722262387141189499567388371629944274492387663875873875386667461668629154412472117524945296334891293948113848685624368116638353593649846474667171525666756793154517969365425441766975433868488235342358333683749493773856955955897855162742747171556351488761221417987294127421492551148218516426485896741495475928585389692895214262247593483525385764562998799512555726146662112827412815379338177192142517362516749367829698756973771312243829836286575252898711653463922476111728814263346512867716699583694938918648455477325941491669724947963637212936745223742612922893844455228742355447845973392573482828132652219265259556343618694129131874995137388866689753551584325982133948377112187843382246459791617779388191957654373384848141578174998375895322834562689498732989653531947168515682248721343928652771846958735844989734683249298878393378889387484337366786257791292454359224555552949599182165165184696129884786448489531655645779563222653969257452586415859241461577784524548638846149912895238221849787392252325315445298871952114849954926984532831943595197234989161594649342185646733922498235385965915139614917472365768573782248249491896836634534443317124492466279879443799364696714973684631146366271118887933939235725681699769593314527733612192216673836845337827219671343428781514987734875693141173914477685233859446118252627421589982248111923744176714776336487824666385779635531825691321238879935854745534965739187913655172215723866448696293999827982265987881275254682544486658138464886985779713373659614482283115653581637443689195968786626913624878135126123252927826712187678599666332111782329927199836137825683611934186335347954851692387892363825776865819463829265657633992826233116543615295336551548547416593912467599968653167842247238122244863269228356565186929236753262789789366871212653144235394875594868485599712799389278999137317349676899774557435972479539297982463229714559516469394276781756441495471465219912676732646773367227885488321172719532417582224288153562495137128999385622697271435944786185326133715649311414733534612457644698758312277618623458585948143622153719944875726884381921839563436467288497469191461899866274192813977232187266779245659438323117765197955674849121965576328577752917755911627811633373391883269292144862814973478943755593191338976792338971395568529175261351155754552339974985748947226976616455782122964714288166971383111133639996351374359496472828299363917253783591233227725176626541124346555468411288843332618173489218372736553981622735288848187156226395549863564973284993923642713292247197377267156115633568124646276743289464756245161171136756918386684973871167819579362512189669419789141841588281515679184357729475579959359962299918498477433485331313623933148596767557772535566643682345789118284879337445285282158379776279683311624553614645741665962788266182512419341767263468992647724432156435487233581318443533981962981377541297728191577419944144749975795894683839548241847585227521778289387924693779898566158844734342412367342166162997539122116312549995742658725751761262361256916577748382689166956632486178183712424924256397539469586552312527661524246929723888864277259362415786291182194862384349642758956467817289156771491167813124147392296987218612196485514616234192164669634561683994183788378954934321352525672591841711559334179397735167734831143952882259519552343855687724717194486141893982711174377672797554943816754555613632124661428888688728739188122298922149987364227871227636266429173243319785252883914396697188154915863896225984192829867851967424134999376645561615528513441513926429158973378678136139847244465133731692112179692629439115316936711187498178398852519866575197221783713456937154589172461452143647218179716292679859655659194815376382167773744957973793139161941951438354521828358171243617865233349314187558334237171871286782657837729822418271322887811831527965475434518354596972914539827433237561547111618334651936123396969574272893863153855799159321598682292765862482397124918985654946297385113522155298492576124748237715812335197664176749215259994343815447515972871184449363592441499774565487433335978382732354711566317397349653351758688547496813446255729479625936563211774351373249926343571122394797243643182556767819187798421159918475596994182691451896261744263824228563126465372172819393349655521419544678631929849429616559153854123974883778754694782546475284218662459247583517419768271192379999979967739931192145749124766614787312873858928327945129316451345343827933836313366884918318318685491561895596568657832567994693592538379135686773886412474459725389757512718788278616119124183667871819874367313138499648625123731554858684647895322419191639976171549136787262389515296259914164823344539358731622763911897457519254979272922619176653483698435579663414625266124879324543488443171814644774541114326861881753875467673874838561391865124631386344611773648983416539536481152832913767323694456251329377672771516176362763313885581447288535781923697997395261986595146599396872225979114845697755577255935111761329518752692414346151733716327611385579551853318926622913993811166717343491715234923776834386578587561348965412732939621456346566721319826933249945793253342152629257651215978231763647464515578837526733844878818878379354869619416332256685377415313742653744728543376961173661533917383273889676426349975389935578173845332864968773742984131593217413624588877693516741993764745553634767987637447968499231163553266183942518341973598779144561374437278438698211895831898835855435472733363567491411335952291588138217718251614742282426392557834934431332782378599323672781869915486835595892183694967565257573289162431936124267583557912925311164888837429757545784559915521225471246841719186228877246231564428237796877294847557258833577872313553398813559614453328969648592748881746847574259529448593289217449856168915215321451116867984192841691538132435336275767737466592133675955987192157827679915373851128598929296358684274762221949432959689846654934596635222195336477581889744742768762736773352336271698218349843214799844164262115754641136842836736516938945483538142736234666588321432235242357362897924752443184565673836241164491388817464355249658484586555771926322156454523611877773929982688489634899942866435792818736595637597838337717836395513135699558228588729793923582298861515372755269286357253389191955113879454738994996223868488753322318952974976265732272972288864117442515894429282851253764515839742545314143123435547878999725485674849862952637898572615622343234735144189764321863321479899635579264724656479354529349665228558448769145361197518369729312389485148443942174616748136226251691192689373921774977111385894388198686413292698817737854454165573697331662138654516894733352781442243589721384272813756669524995185744332226978184489534665655937153445668522175741147839769553994714294468623831924538331239831856554124498365111113912419766313984435843745968234226187964932553236169742887117611722722755614938465666656448295661443556177196953729519141436875122543196596152858779918291557298946457769658728356387171896513955558667858453721596574474697812491555853745545366752277939698541444173849774938516996598144843624459918294529756712857474224693961825353929828627863253825588483967567775728624613197696371868358861425315965476447986459849631955778849742167643337413632749564916838742228642586779825388572313824875458755586998298275456823827315998795241699645563783571438317116638465893386994939321663958357433777144915873154137879942747316834258867695116326341875336382599495395738773495139118381514422157847111462545118264365793441665879616781563394751116253413369843741867351839297818483261248416191575823559864376297197773195119184933758527573439419171485439651744348358756636338332943574366556817143118753485998226264888193811434871469854126457954234484891445516423967728463574663728467323586112626926359314343665822215195315579559824311919854352375959293326384669267779818162272521473776511344923948457836391885529747172892893833877398364575486696992987763357696443362269325577531943512826525669742455737798251646414386781677477461421989827492341663435653971827393292351125772661367464184417563827839468633896321129329684568445593463749447224298362552744189883664755262498124856884654238773437194221584357717921717579796599662687856977351392466813321639641317786285438872237518527476865418844271282711245799866248232375874748393742852771367917338433559645839634268741192383829639248277841175988815523345291617295698341533899163394531397383871197224625159878989716516488725845512697831372299389135962913914934129754236744458475375119895762122764234288959127573251721127866452729647833694511328586944791299498596874333489152323265454848228134358977298142228612263838925648999285478548637117472123295142166321169884689516133965452825222872914262262449635436685498746577283325657489796133431382727976416565258178884433364444512782953414258419919146718767735761273722114196916899957839676621837376614932535174159264252659447637525467117658138944524179511834755433734956146677971844619523181471994946743211855312222462416833283126343885277889333659782841911553768657311227361855863571823692357778996186789556992333986536436111495598744355337192289766629658887421184384829758435918498927737271681225263453592153971519866349749859523813869722191711524845327997794771243177888977484251844845581869486542427915783156913992227832471144186232142668261541844218793819918759525414449857926587293562261235312596715779746578312415331255669473553441788557643182297272387796128368668798511193875821431715248474591397813634814671429993821777179428531238964756785489914639817453955496287321167338233832761997736322644772413427728471971949944963419957934712494195931652824966124674811411185415819969834364972619315746599131389284617678125144978495912851255527661315839466767332211153339972342116761344213637748485985452766289128829467592225624976159653175552144522359838782422445644393911183983924123511531327177244491456925433856697947426222822973682132662979174193577183324438666981315214926128241567842773162348236755563772438493771346116614444949326324246656851328754416731599579564314276492689629614248234324941555327593883193656789223697469679956448255339191483251837952155539345644225698735624243198739873153386165233175412681759454245353918363158444524654629767488995739931372611297396238913484673552638258423594589938823328143179976367365241326892286618911191412136192439331531982944289667212433711528967556493642555277924897712595661399167512766825448573726232856134638859887742219524439465713751212545243335533133789957511241465429336283118631941338759836421596481342316485525313483567429694137796813841424175464457547772472421527972968442265435561356743786768436293118889336233664244472234213767948634173641348376517433867118881717316262523484839655616517631562344123537795948258794391466837573454781291314816516231835891147659989467422651112251248474722472915931524348424613498754529277981894249731215217952663417364542534439187692924446526195677945318771132956125851384387845629478912285981672651897422537391454645434586666963751633455679357939347526591143241974211678633437154541366186258268743545539515175798654551684856212145572994624868296915921928899583487696224264593549778349971114981387812543175454745548877597872174536728778381939442183192896914873683168574759157249919855595891346166565565986172526316152315743416863289736877556755292312794225148165379616879112164614466954111488596883772279883595494286344494557173882523151463558866836122696489634768817783113693894135387498967664153177755722733734789944669435742614945887548511259686819665982732451276151356395486661727119243361198957755584934696981771498949774597265541445655546888436863557212961748655271875715383751722186938684292671395479737723437413178841821973588118566688664719346837757412856874435267248227141464517821981117373119361253558163197345466584824711913745174146358421732418899232528357461561526898158838375166945382933962575624326823576745278729225147728882751318298473198354567166149212665622726831184535773558753628516768686584376389564677913325555982731315117663397392468867674691335563266858766659384623487764755567783675842411716835856912347864542114198652785435914496839652623177356599811489853719989248217543577753221179442382549524816247564516461393318346433427561755614665447773384836134371779983658688739721314756985826233149489322453922247955931237262129556818232675857479742863388216618848316353185991191345321796541469978218562897223821947954422117892755276558528771554615584614263772816647464731545449919935657574749397734119434625612968816996949675249536127414533876253357947111487153286593266923359472459928352849552439159219787849637557511565778226533191963953331566719592429548144182122296588468714335197468981368842158863997558291863933769912985763692656186437495856174761649933477715827671744195756479748742531413465655923891531752661795512443497242634549574374884894788325576388928664671185395433391844194899431875565854567878626414469881373887371415456848184899728669797714148444761921157255551439486323929499831681555631821184265867625657288498368888112488396416189154751935663684627276645229655356816141678254116463939348929956868212224898716488153177491312336952781544459392922561993431362471379619119345825121336654695189942725872248546934271125918914711599844136529276339139596413797626627751297924334198435832811369665521269436776692232534965396931452954577296279184658871755132434279937817798199621976449911766312854278922889389895533718793573763932175434378489565562577334336369411557753724644762175214339536951455876868569971699849689281236651356152326354161422125475669725115338918598449695324197166222541629332438998578225745274221557861255674172823622875266583674953434222165411234614948534998818956727315926891699833423966951484253917934792236184911713284794998762141583215156586471681858423995339485218524152319596992447594511986655883756515679941588278774614257527952818157819557964938796593851928547429232762385678969381399665565539273143511734253818554749558579218197812848554744886238326842752718178765352949281594912821224486223384523165482537332162321413464619449771393292433767684984642869571956392756995383989136672169429452166381199377137339186828571438915266314711657468934256528488622775959436871681858719378356497275891653725497534291899719362169582189592174451829286576662955526726323287328656819389726571928947334238576853666419114314354664525679799589233688671395737864348177952487387227122715111386111222445588789458353549443493128969125672153982676826126516894793178162836435257926795453937635929147251652917129251699116617544173383312725393275882396626279568971264942758515954447866892771669289338618287879714224829478571252731184961925823562653588613398348624744661994216942896242457372526557568361717471649692866483115541279357873921796294462739345274975464317499266779432768388423965916622887348459627466419552124592696544965161586863161773514778661367568133529629186362387112239161574157593469841357471678115272676779416316836799363943973536585699989321292719665286758548481298132539264757167464813574246766959438843688446715892393394535454483935486584661343924897532262272781338641693634545777864726787719989928593822458491727914322699266349193918786436555483989254651286983163416233361513449555762737641294295747335152247316588356792837177998498482462919942535689671663753298868935986661871711814843218263769851274341169362674129732868938788632597462769841816622231478842169786731423732367372653199355964533357821645765258255533482923745315889169159784164771213682929757719762844273338964694112229229298746396659887269919266556634573131992329644789799833423798873374322277412277768691813487673958923795373826624226141725987658141291239869321617554736935427399628344413397413656254418994829939218858477842695328856638478431249124238691656815341168578596834516788846745565729123542532189559688415942278543395824252434455237158789354992611682977885363619953883566532374642422984185561344429785736375194112147771255449394462481953973998898343175293737896691461397563528528881555756753112225316522472864347189677416268284762938883444772293666788999785855736424178863263874988571939787186387447137997898331342622358798296872985514347775519389791992367159398365262479436744249384535795827942273699415937392317596891331114293654113188612162895528963186833651175965164684746997821212956778187451935221762369561579975512568748491552541858475598548919178664532511295772838315822642566481649353884651977837784927598559458378518553973544939719782658776855511282769141616649979811224457122611869155123337267787112991139388951437248687823766529814371139442457297283315244946248322183242755746851129128355516493348263746968924635749842318717431393564678797389141659163635343741152557678144858256862982478361738749627448981177165646352179177226714944434545932168481282958336263167175671294278977352187996989748857141453132875269375395875428476715887431593351861431557932717573436243737542622398735691866299567877887834415195797835457562516329713264266965337948145419251923493596183815679488551528273722714937943627782499636924835368972353859627637677843937771544733149558873147724715356676938854485761749591719913817385522729535576797274351796972594843617786591522272476753698167779379533845343423249615459494132448145316293265942117364629811482226744681389888774136859529751266257513849489232789271846586215657571615938943515547459224558571925722958387864817335651997591655552644265233664425869577438364169843294974454515693343446249381285816945443126784834637139616325672625654734838442389822774819974126875761533911985812958221566814132367184451725436257642723689838738983358727277281937549277562494715636359858326214783582784499421583954312535834114154961952578543885357645259854244672832123536259257639789563365988879969885567737287694257397837899973569866779845346985163765724432155158661938199922553336172985937175265468334879172357622564843389141933553491233766728934431697879777266321731784351335711968998463447695894444514536834862994284447573551342517744581193416852645146136785715842912571669379259199999596794979738857567795738898786517832487134249891194137471493647587187396327126449513186563156331358623944772175716353233597337715427464734377673112251813631441835429665444597924387738857637568753711679668468775574161317563647536193689282915821945297377568971732261567367786477242144274726212758945674285583355458899587693464755661774717875324817249451755436145435711646939813542876155325151679275145622445134888426613449875717783135223896961913332651789982714235113244375381794153462673192361982885924279651625968732741886432473683491492216672238869875321756995437337431812682876923746949265458179586281262576834495531184323949529555453626185388863625863264635867912817333851942527947423711165223597779612138817221779427523317857519472435196425999483751569713169647672296881279789618549515557399128919958133167741651442755462867172184337958527697141155393673628364875698889984845425475169311738729743128459627193434971359876747231664854626943495659451851882484625481298759899983221552299574837881668219682337216867196486755143362847848768514376389183252234215357641174665932523874345151528572288577941114548869283232917572236947278556741861527917152597274547917934879632778477565211492373867652779926382881642416555366114262255881496359847841229864443436981557548434151128734437419252896331128772546649713349325345755181229736231371939624884675887224542326358963735463547781759933243563116619334461333694157518948352686381416232572983437527979638212832456321613642493421637666661177589992543643676291867329489169838719489383579796871124838962639677836447198573127699817594895435172475754588817616748922611971271473185987466322298933929545382378417745583739644957777219785885475632344269988164523722392821733669982713143163865122149769227845884312467158388218995154732417774949389319119747839819699746982176342993515521185413651451429383918285129345823767338114367619776526822225222341979521226883848921745432167489447292134749773863515571849286941874313114141416244254844975843662458745543217232484516965746396531511733735538773596281916558962174972355598666878448452726745423314481499849772978865266718964535157181191358894331366531515521232841119935143572118872373579516896726677457319119242623163115173649852724352541685666869351281723652174853947342373252242919688732436211641221677288514894614898553386935258226423622513678989191962377761669235952225542341355491384525672548617718441464922838699781844455792992164622162313298483187268962944951137286255184596129177666866635174913464663531226136621631189967246216627866167629497873698966775747363754732848426538185696489751259524741816975437852621958324393152536964338484976214534243916137494821769988825837951576517746631779336144846624593777774783997328438741896832859667692582957474958712425196696436634992477538214946417649853168918639952718598478882437233251683755511296586324822796461823532771348426992972244346168839387388357144855649224713583922695736633781646255346275927321141323517516127236772778511148491937324356952929711517451823954673921842778313424558678575947665533859312937871398322641969321848882192876178529519419318269922769837577525941169971877632935328764165544615695287124366263991832455337517365129298593676377223899236518128652375595255624198917376285653188765343125119252698144611882227335886127786155766944173766741849436955353825458131427397253648363334371425769384912342981461962381625829316933136215988386863288772493371375939773916948458876543427415695645924557325326799199643639277876813846694964395972491564771284635255315773256576338788565352468871279512591819752386138163993476334122566677429912368425896741278353861264386612545997522336175833182471649375181473114766613655449897137398241648263724753752374349422145442899689176698927611546329825593112633166215287357339159119257324259924114294858524855922187645951663497341517441421839548397196261683638662879664858973571799544973294746234924352637314483393289642357952536253111351588338324123223364619168468678452818252784853271168725526333593444162675612867144228774948315251862781147383237911365231439173227916496191757778461298137127156369318745342312878226249932913295734694941369359134691337459939229566259226358124724549362692359482119548783456528152918679165818873847246589476763496777752335697152534943677949842969178217347571554752478726346652693631922235967483872424628385573551113683231441638498956862117383195244296341248759594469824958245138738417895916679362218593625849345237249431512313161344792384441375962895569779687757476764628634335191596156753989638613939569264673772727775982724249872586619756475721576865852361184921647294541861543644568537694123955281754923235535588672299458347275864347433517139725742713288191242291234664967656966849416648944171596241833542237541296262616796584819933616942229733149667191477339333859623762272875821328772581284532718439779111724728281192677165459134877259625595173538639242834642332934871736581249844662163553988569987284589253554769871191344645162176298171929126135274745936878948674463433141443295741469517794525326336564294698918897172878883237796864642296293973714161724191892131153394253467253719718546126415825586971628535793381374659811797742649277254536653455138595914963271252489434511546777734221274176879371919852449821697124333568161958495675655142784268752919726942898284898693183738215113936773218696785775879898479564216862131551921787325369779231163914581138156833753398159114312277974271577411359812649781847766461733573629715387299474134772967966387363765619429673294753622826783499566565454849316484867456838799748131271619413376883124724893638672437542475688711765364427968391624679336427133222118172921179587291282764123942936353336681742911854648374161328742796447272552535843992664279364579269473584148486126899787388379593423627419188179762316855271365296891466677978386796835338845796619698165463279915686578982198199426456921738954548477338997133997731882437762436294351628443186463382539779973887237398597373876472928841567156512132361444526515119811161327775966231998668338463244617623881173824739845679555482475189136913383943284236833222695335493217143369697152538147659748665885857299955518391248789865414563374963451349618644526826872868192988185281567364212449345676424832285469359727179812917974544517276124669335946845885116529776697293318958593484913575628298972494442837446734551525884218588724394813133445882738873753995245824914153549817528568523958241736721715363512893745663667631993566752728113314326934842719337742216633981998374255788868436538794255543127651764422272879476275378164386226579778271884615347213797592415355743818927793538845525667337696562286546464743282198254573269525972273628267176133657758722815237843875841745955764128324645348959472737844935733171789551488634356168355395577323594455518325966294557446861754428619916613956498394291199316145387798566333976678558524511775434642895534154351539655999771798594831111839436218815324613585464177729646326282428244378556487826614715669142185411131566616832365694931186299218956673514519415691386451289927316891175769111768919846138791362629962536844297651687994689886412163825542327282647628625614816438715943654529992518769217799299837998521789213538874669828216161799634988519889177464394145976453988289944829543368189153471723822988346729982611298962243851531827687689147139744159471339583292617831583655999122966417514241117547219312326922139665893276471364636513131619722333176551177319888218612553637849173686866432365579953658647126834971635513179933239615325151491619786619567956666692233153831195648197145928981953984346811639355315844881293171297139472963526927997743785744925455976469193331331937964383597227261421452543423895538474657678793148155393216323274387165179459667278885731773663388742979991418481234625313293292519794832852618157779816177635819294179381765551227695341173272852631638492389517354776951474752499379438221636181832199182291113368219983886998724997673588522244344691566376757378636484618913412431877882265435578637359232428316957721653893677263138537899228391192939344748183296959727888124659445984587955832947539795591542685362497235162497498897716178564739614918246361326236652372675233194683144265452191741452745636285218482498457163898645499867365714527318575881674635336994832375745365795277798225892629736939919445375664132969749655147257195215424713676414883866956711648822549222574837837679913888866721942592525325471575214144122855181334518198313649596653593514982172912714668425636775269768946592822639424472616927464443113486495334385382451321592375539443293369336888953239277854237775472331615132356195471271546144288697379365188596134459464447238742473954987552328425664585335435326474167412746576914376877355654744175161544925793518515216157331512726886625277328617811516469352765119843585582272981218537276288223995449916837348551862927487783678399913239687861462722239232465939163833313436691955934526921122297883267197774593231253366686136311729583671218889513474271954853173995613392133848414195688443858155258875682243936724868536311666967241132511347175614338469361467325761879248964425237588144779562881591823579343478245533478266122171323975153936765376851495165248516318274566919825355399589517863816439569213782472593535969931665888526373335829167191871352862673713713412992978521147249749925358432759495552245696513445876815912448728179494239743146863335755632116764242584223913566833948132533645787237984334155577157474786631612762656218595813579673896637795522617532811638338572691688653823135584328948624533842637219757991866112548165749588295472346283415574654725286123446137324689247659832151437698574413154516329836621467954671993142742366967112635597819979892472166953936459697772941985462547373348287884855871284314552679716193316669919829939274419864921238794264158314713191655733618537357137855852774893583667997952697314485837552725344914341195495841241271189849453219636479266588117981572656619126551718931612627948533244484472284142642168699579869279862774853992537831918741996635897395186287297939674793528295874341886711485377116289216661524253486976355621177153197865869975511549317768721365498641828161611444395989334463175545332925631554516976422341923879869898731557195364548599798594297177522663224915479544542827292858849886196614421699143753134779257692234957863771876741314949813159656348318792899643871294613755548351491656771215394242447743432294494779681162322766793939674325382727255969613767164641662318876981665679476788227171218785183454663425343866739684422473255959267141971161951667518773954392421612196755382952841835717228955843233998342848866637413428619629235761376397291485843337159376244359725154177344224884733448872929892366272346498319365928132959133396589137181366214217776131987647637446817472288671779423873529146778942155515672596545288119733893188842885184212631625723149714225995772653196266998758758672325536321222958945356596754881174548627452647626347534946412579458985842111542491189459714511144738519933513319736731858436897771574712534436793474586384712178358541695276147737224386177334258137389257359992362151626282757421429273752493134773646355345947548178172841156276768173254497261921325275516985118672277877567884482365685129199915946329281783559963497541138899236731654162297266526288542721159751932437596737879548137451542895536871929246145286292524917224996179141926382757427457872729428198146415671389864983411647192472469677433669711493326759549587239786155361166151267826513455437625864157661595873254961726764854487462475582559256951868618232359823916253534244781554631411768191119625334774152317429738183372889394878767781683676928717729944211385977989534238525486538884594384932958323991871279189414839211437355948865461395291493378146191468858683978279191773716948936282875191466168699511645836143534698421115453622222885691229279518549318163115881936771246314341376433146761732186157296924921446598732236122711344717191725694337386324767236783833344799793976158347978737575752853987635336589418812162856949456761336845838613451222539382221513572248563892569267746768159666641668666719314778311576312284338148891522929618143928333494196611245454391886787665889234512316132395378214992658531816553261753834636279814173195562526968889197964498145393375811232561425164627472964737111513762385383923474595492288829211617965452681137895798737753475898116233674799695226752236498193529381335945765551976563647699438489753319722877915998982468123843635285237472834766351375317996643611875245448985462163352187242811368849896937634274873314761535877453416478285514115376557682563917731378394185296397245292834734291969446619457798968736641365882542366164433729341458866742692212545977739744431914866847682474496115498785199927944838418134556544691153981643955921515378166392328971479456132492948451517391292529626171721654784935194556586699259244828641367683425938397562645195623421626768427326899876977259115774279737793772738235748878284888932225417989222618213444318813572257913952475639547578798496553172944389817372369432767671943898355751214841283515948252787753734592271323599654425699639525849552265335162816393269732522267617283964423825456257377952868963268776859164642874231319448252446963598773741676794681696356694853354298632171427532317473194763416234434362251596746361469558172169757479429915461751163317413714884989123818621284719475584125382196224781879716838672819649928988278891498213234224556124793937681423731618125511675448613556631396525374895772893956456643978729793934288682743113677162786763979819493753612887392325894825376485296418592787322497695881934866275351522558397276754339886777763829216926284262626216154787767958977646164314321213186984689913225813553691638169178889991566473293488153677219197657966182855152773812146837666749227169898199897488818583238159365783249353379293184193529887713768751222927646685655841485671314989324617423481715224851766921827832868416458424298223862177288879733343591994616487193973967128181338525446468138448224244629432431812778773861366519188536659925855426634587512855412267658442814736311242322484929258878913845673185461212266541319195213589241768715289755145757826485819126414689914252648335289547787451724362245275692765268229564152757451772788484519239172476317788747219522376475957335987754939222245949358949112155866636474711781592323143359514161127325154286211767253175946627652624218913551535865122785174875928875527964763745168769923638978946888497619255423548777471564386142626582461287812238919869572537267581319625399395686865666227288535182332816198816341145416548631132458436877713348266376779548994233525374243716343766914954774754864265315526373482936625789343288948536552132377254853256754186919799466826487598474188969243755564113665443135445358376481165277719926185395546937645683367212657125636417421128173263814345511473145778942456641771946522888584945569466432589735951687348516996423426267484944446456296514957454146168489317317527157794393664797467533131363413389281416787996541689973658474794219527348936884172683942992866657845342248216488674947694264794185566682488126145886917236541998187235738433678761189457335468312372994384784329797678693322141788557885894663263318711789971583888876438671245286356793621295956117966114738991972986489926713799926387376541294257197715986289286445292619441749913972844963552583194386763553423573532953875847356866145289546637868785119895219895282672758619636841313549654566376395578951744736667657474984386934912712677569519668891592155591678364564788893384551561629638475112649674325278576469694647369645117484844444543972766941981826679596242319983755161688788826581561283735938781492667753479446521542718198279527734269593965389577312566727768219816383478839119612943862111947385341535144264275974273698878572464614269912211867446152834292636439939771274892834895662376341299555942556964887876668426238676474438916271752217678175721873395223287682286196237523185113383974645789286498862951327891221328296894249493463153678867267861984432955576594833177346379399648343389291729779731555933684341119425493811751597883733944332588114828996167872354923428837688254967693154348223718729249174999358378956673123557956319695598326587296313568715194263531843145249168616895959115187862747798578457689727363531922422349199294954394348928743428296458471698619526796936819514839967887881767896162717791975547434234391191951531844675441365442549454588677396362526321945676624811438783247277712694455725347719761285239375727518638352935526653391378199314154225714765124225884579224494539942298783371323586594539883394317216816512165917156536223346743245372245644256584866961151483429986968523721314253679885575266698554668117545337112744272422125625975717233748598191229766321225843649754692292237763398347299572353874749912498973963818576226593669134374677755435655357992196576977597551935189666387818243861287546786512771856928819129789751757417811911649944567537112688593992178279275449342211223669232254425441583922948895474111581348844222326372386257543259313377178661494272268337281213173114988721948447695637278588212955115862853361256816617721281895369616561278692788114927618429171253795932868686167271371146975695444617831947198562254418774888825132959288614285389742185727315576783951396195276369665854261418419648814973626149495149427475211728511372747443122624224556763299469274775152325452867361546664448164441369125181615685666565894812693859214362552141528929798458151289265644445823939996469432832871939235132759731152119797537956547653594229561444249136589114848765421566456615948682962685378429781289674182855132712935982333311467121421698687639653956898284885427252743943244282125575121657457992449579838848433525719336496721178856784485985549771312641585137395654851688196496694521568619317919462761214138736413297783655258411264434595557798894785599519818886853157874734824833785565877559764982577184193137496863382195986818551658442724292681968278852315448429555877385955857341335958284387321822297679466127278582954517524691756662536324195761359165325656428754719629685461989376747614887891659166311141215755588172658933136211213764492239584565236724933152914681125959287745144467995177152574327483612944222262854632681927153646266811333383411915875679764676975543217841123173652515125145917291327881657119994421456518531274767327528887857619938628853169786264375111653779664768789497948116945732443262576457589143276968728391889798534596152983988346156921733815842694275756485922872838931369636174127928496871531735579267681876368324515697516866222242731354253585367836961129736943351976715517521432886913486543887559887729967752911591761182599613874285437156535585776748979576426393892411143322424697285262159851368392356728545946864224679288513432657685744356858433715723924984225789323779166112148134417263465645557241519753923179217232368648499587716327424183584734473975121893241321419548654457983392188137815594289268235793932757629945769259749392993244896975165817442394697499149283399761475562388127512645346984364396685631397493443793299778167467512991118145154666463363242355134852461725249785686378393648576468116211534812857923344475873385262448456598728537117289122799864436935858123142716946637424361214276181611494362361181178591965752484194918281411622258687395965139867529751428582976311718126776794123638334355327798169157961724276786244323447243972618887442999532366636799619634523437547162644256914799539551647467369264464386881295968256793356448184891872489923949188437234251647714414323546113475528365628217465858662473738773262847825344999315479439827682447189498149249994867894382119774277497213889969444999655653883557774633348939527953939328171158437321761886981131232469658998919931835698283251887129766263998163664264264793616912259422317129532136456988323785284855583843917635865722648666856525693656818119861371956491763998777324974418887233395598259443798835121839329911459632234774879437649181794516853973857184428551844862214459299313756533749166739949741641333436558941834337167783347388319796539794274581341237915529983972612441686313276161391961656126454684128213918482571946773237688961683988546446195686197787438781542654711938536392499615744887766276144562838818383162253175184668677988541974921779727949167335779269918164532454675537165212587892715183932774182284982517545672362411599626378773511562161756837861692379319747659532714854578952467275378226811529992382817159577978349247281515884979154682887664317776646627335977491636869139998648137486512136757545953635223681964946789811625971977679518492589858691818663121591371322291555725842568132997714639577821388233695716616235715978174338522728851659612944179316251612671384866427297221528318172725192453114756467686592634758854425666362125448659156879681816861968941846961592216475453851458221831249628345491351497673142344247457499367658692554888471227198442259355957398839724688841645535274254915518477878842437858793455862864592847315628137619817247557614388938184686412951169659417154722221736238865486114194612879585712667544856527483883481569596933921334263588946438347922963342468422674588938882252375391491953919534146944895721872464589358528662148226791583994987393426217297856634984981796667971316119557311382644313677811152476442487994385923453364392794849657382329663127646848118733518168118632639486426466889484165831471831885225611758677399987787259716378799129244142596718563212935731518967634647333638285239481161761922432761579845522437671287374843337423528699311868635752764599724356454949682778646525545488574816746957692672229558859486484626182125868867497914473222312866588723154652797766527881469342371129145837251383365375898127658364743668875418523697815551336442361951816492675886618514172543721843127397433468153895616666562355438731297795341956676877722775866642598114287878737913793681386481599126728427356864997682294395642665653176449599665384878796367612489685623115979772723416691466738171857392729894278263743288327569597323149444443567586587216775373588633237894254259927465241589793221624276412292327559532952993178744544265145499331896194237814862942584759362727368316748742936596572328331867284732662449764681512726476783573589267594468592688521617259947334356816392815469234272142623235916232432863531378686135668596427757942312242257474722874418259935752333246547625291837754358269736139528613429979955883784658353219913449649821467576172154285276469981624962381455274882448411928543786399437476141975929759412898259792729474695841936425433424482398622849624771537678948248757612261716484836148385367446982925713239194523172623394312151955557531497177722836772234177413752357149163232369573967938667186598844442545491458616731797199116583671893265719656974415714598924334772219634378197938741488393394491497114953392941185877698115982381122938824367834184161225951396787331345253476633252774127528346699968581199939759292649672288819994115987823579885636144116355229461717553525546877532938293198522652342729844268835345984449426472828992365123966716853771211646811676235161833325289793152755728889847162293875293768424831241711243883443593833612931586325338781181821599766119831518696967392136591815368593696256436463992947468378462821414129823133731896664987922951273678812721938752418993993586959257674574393675321628125359559894864264888789468662359922212262574527258272576862118454493945145413738652672147361918763583288724558772222483234286188622468732318536955235373396971997691752376941799411766698633641833466646441198659813754132334939737195877591998698117753913257699966555673229411814366824459396266627224933796624973126943166612336489869436938351776646912754127587169579324389953915184919435337943691738468882494994546838296793195579778571145784574149882893955375839597674585467159514917526662411928332174446192379213679978347619767932451574413341515872678814561612164764748185141796673591819395512556812748421552174792353121984938726326696385639213918217545741824122726119165339197558674236739339129558127759938371936381441333414818379299299592354193784879693117436712775418154522955694122382262896959696436232645366286634517618998176724972788916567829933514277542592826685131344575137527278512547285763785287755858556682857545314636271585867678346852568653361234128152621348965587865268493674858425511363133475831969946952242564183573819169856638827836795838414162337628417768465252424652816192369116855975873973385162749476553988142929433618673834969439278383195986465352739678693258162386764954557469655892237285182386188586886219927915643513953981124524353581474648151337492222142325217128712393511941364194773376644256955427279957142429228686125347977569671785215772853995687417626112634998315871587573292213197239832555952644735482499169155464423622136889461138174441225865159148933946568211643981882238711321998163713399411559644679915232375429544292843379361816314272434681786474733845112857353545684584185223335858224114324374772317575816523186686778257139219425366594952539887383398587859271887338793472457529919125597659335971272661556532759999631168957181557414553926511743383228617668283646494969427491481439174552186351116954139765928882779636324772316211351674954513129183768442731161387869111117469552119314193383273979684411963233235441854394946169749921193688976395921548141479217261417898146195857289689378528568779781688463917254355878812177911282344217771698649867439842922363789319149727471841972366793826625988322579879233533913658788822457824292519956246235721152417399725863461831792592624943472243673341359835523722555415451691832911748429216266675225879568145953928864138778641881343684166511221845298483581233947977822466153146874728293644932522717988429785975476952139955748177628476961974944414545692445465373157748867975242951929724966998944644277834656941234146257575234947945937196692992737781446956334221379681293192371817361679352535728224498589647911539369515127917352727918238127821624671228748523794134173777979859571566898311963533732593864625881838891784561685415838596615419256641116152681127746322831691117395361273649868566739656876775975213779236899289123555242323525534742763384848962784662969239576118296577333731167668728485127677565412768818837834237329691685426425722944511386193469748365774559572956278921549898153134524735491138298429356725882547933883769423293884595894739689877684927465163761251957677698679985639294112386552816292991988965371575337343562885866765631732449493956888658618227246225854253116696637888183179814983395475497373254847813491938545415783228881644758725939259771918758646199859375845591988661421895968965722797119288951663623851416289343535395444921838337163821428844982855388519987384243575923169877684638733728992817253272167791923123434695633884848688751419822195355834382413565791167744126355241947741754783688198878511791924696651287655364933393129138619767857781737387961147774678866524539437275956718438553884773987581281398453349723528827361783562815463548424833184511849946222464644871476378292713197731592688569891221821743563454133191766354781715597466522811551457546168377579969533696313932397278888274964855956369347992715236171842835238388397661369529543377887755293777478861687757966533915397441881958974231834328579356141515715986144552471964127135439727741132455548462378149218793176984754249549889897313651458135126384113467364334421113546559437494747384341289817325459763681567221881976729458989753426457323671274842395946991321584737915321376169684615885558924573611448354999974526942438444142632629796627352555466698998169424479517732656336982692793894111677788539313511347912527471949238472428169693651188771348556544338341785817157481849634584577987171414863889493273278792515783616937849222621518289167897364267939814699494865546691916147851359835556677945422569481285476867148465486559191965511524246674388673766755856598381651754321568364542711884398455319224855196134881693468689481378961115984123576611463622415665877865923946267563234895457647394611554787889614995875517295641973235733822276174768549831836745381454655396383764988438168415259418412547144279248359515464538694442749871665469129858651555422252377892744153331588181447862974469623938836695867858874777598628492985235734463494741129963442578865657427951547429492117755461814382861572264958885368355368943591447819576721396979149395498362582727258151343951263291429889877772414257978437457226476315743519332922377677291747773859287439692313649837878271898973765596849739633986463297642686662193381361998197344499936799234551967999267143159968815488667177387689528679522736652665967683454846694874187632925318489548973534287379299781489337832785795321293368487154341459436972636316383982519311147394796536477897153896143226756591732886836935483669553493256862228532273499347552265889678663693135169173611324156775711359123774536423637715571795395268727363151589224745366456423889778536754168234226318168344446294458412652361362853377721633531287451883894325838735742242782419744126217196685444963329232169856774172291557846963321114187227618587669882439691859912961613917159511889853271117975916468615195564454566935435193292172388153612863557444841174766391949365621874249968458224384129314541824482444521693626999959132123575196376321354133915598411639934949816752749632889494573572834462314868342637373347757975617485882787338537384983718739722268335911946585856711474157751227769447617731651488559111889435846645277479786126564727156933956414798582127639749127467563769154115181644115654854571321861943716267111543248499964118257297565365993577625941897292812936994797268351387274453958774642233324142673494841149986916573369228492581535675123815831261551323495299232438713254323543765513431238977422751751181135858446616666642667164543738585536713715512841941446935431799185173445798348173815744194872564739326515832481334382158284263717456222968757427421244111613725748397776882527186554167126881468762325563258889521299759463678269386139318273514448966619995188973895765367152596868494155258668592384375472413398227224328184635595427668155423174785125567989923174529117778938377962662542585212487876347798379961879322415583161692474311861463714829476699622674813432969886854542578211998621466557821949752614317647975431491187833543251956446827198334972543372859733657192815731757331742366225788497219744938148771829145225176814686979221336374394525379221917447396588175898723622236791547329328295551774827234669768231235296584155327133653863246733738982877435915714998875346375632836669984876471179473484966426519538248721119225392349192977634111519276785332986614716436128843312198729425769548174837235181324176739482968499868245758469676171667612352697389315964168794539752952175517269435864344611729773721352144628852688286155617714116319369291679257443519138877851535535225839582139634614188157633548137746225734683349759687538786762539977531776921415163618739825762713183786645623864487268825939293375514869794653776496728294597474688232712118618642542833277691453584174954333427182453678492661987387323196571686758254148824573718281398393167486441283418795119456558389218262391557321441577579383622165513517339294878358391352741789653148117157141114418378897844235411598958698213992213668769783962193237415349833919379926714756915619649979841397425357759184552821118864966473713215979166444573142552581924962869844736569297845945181128776847146338981281512347199216126136488496624986386811722226154896553268448466761373776699576154552241767316566419366788942722569574836778651926839472969873889665387334686619882393398483969292595759189366764169646747818621612445923869792333348729349982321422362253518578997295634349767897574384313811971481135472372571962978164622627665212425597729499832226922381942981774883221333526874485838922978211818988574474266333114461923365922777568593525145218264417926491197527139577322529618974842726295988397421217353689177682723725341347839972351654859249359764471841377728185652526342177473571619236786469818714337161635652429262243925969127441165326568643863422519537877228356241615548285465788912149977287765177998546649665911545682228162781653823533236173763792665283546699437321892398887694578327745257154761185247716479469225395745536583755928242153841294465167623425681669673315514689984844235764842151478453499172521597978672536335576626698815627873556286157711519398497856983184515875763194411338675519136987821942193682646912839373993519343136311516189945198388593629955157636525864367955617427146964369783727375939721444941878473889399183226111315843768793192583611328881351823583914749112424258973699446376945581243263976275819838366382714661895964451923312217417526967551867529219459625925788162496518874894543758984926591841564459256425139179687393391774445297462331162242384342139614773826293698766111649188892316882474868186154714453824524222148693496256114332884557589711657972339435957818789497843153377714596711718652372177911617475733228755178679254369762126347223525723573358591378117382825256863965122928257647535687673748819819157734997338912827248286339547723191192847374637624913918868384487484194129824648877769657819831175453912146266457293692553469833913345678977338141391411979717174786925589322675347364128647267856357572668413629714444286474465823214917673291762825142414998596238372754982522536828766979427242512944597823669514582349793442731835168871381675662646692923561245889473572239813263959657415459872716667796133525152597614368896765291247885828225158691673484258163516647366667712542837212767872663268313116512623988558987334999832334669299876998773685731276259295495731397787155413244414878649367463351469932547565988282815761322431887351512442142815696517225838847819666935578586595224829985896197751622233171853937375484593953873127518235448415844399191535524237853168335511698383739348831356162467213827458918618882433332435128481434511515986247825982672878614288852121831521151323857247427693753777231159299959989656254787123712284963264112765187658388754861878857484552871364155257467839686418245919497179419499572385149491279931235581421466259252354415455792419796168996163754944447864294759163393582625469454526735927439187558822973161591142414676485476427825722791699897743376227937177574667978864179122851922664364125655591633548111122488958444884271849391291866194432635561699178679254956646362812887164718966817971496742395889487851741371498171262536847935331773536439751245715961813981268871931875994345817245827985918376275943442322287135959839287995274243679238325569459747486361566998754468226935494375347625872868551687458414553852772875242296113796594972617257681684693245724759259932787424993742872134475695284937155996363233714366485224337968988685599221631593241277232323231352765318921898728939858248692739332348349188418494123742379325911398952892878125532442544614395421312253528238485916589967913565385672989841448841877145676369997922559231824286772355121998155684666172687636815939442313869161188376843959467113299511443126939166715338616411456664244622342227612243899187321637513681216314939122931344678785942876436139866868148719341646938132269796812248768853726167933665611831582636421532551879686811436786338395398912135342472415553415424231854965518717479821423422391633428777249182359364392136316779351259549363411687926184394799123419589711699532548794972969967572144895838184325899296756795125371986939963544217295852461414847657362725971145568581538793191983773177277275597482717484166911492365976493658869657442361982862128345331544624882887487239338624752618733943664916389114612426579865327826266314116566797993169132378142737248743244968465574432456481628152339877196949529117762113373357214816965561359182214532119888169344198443241533556837539335784421366288981345982966677349978834125361454371824862611316977492494617875221725172719878934313771814797527281329254716284427385497776936493892976264488882653998894632344128239929139993663959157469317842926567386543668179756572113261946248213271153349962252295432519731474846321978915283517174789923735415161235128138881939717712534261197133914949139489859885966856479556555386247541175616669679751436579578381959583653326165737495836238387263521851197436687552691116649488297876757835814795435935995593539667796155861674853191565435269573129892434952545323345892387278828124449446464514476849896228399465181488585226173831368659847929162941885132535483783332592354774912211447564898869417863231853868795773258359123733642394185318651389841576588325565362944246716616678434341431354135463452514416595568566791153169377187866761642648136142498548731819335573389616146224945614588782432957289796921439128527879865917288725122835693772528333267611328363891554318546795129625267379958512544275233735784383578374636877448793877773243927766275229721186293484251287569372797234272614551777191771829972552473576922277947518984287586169349357496568951648255161195499823595266953779824987669485418172257563249392553954831869316951556623246625594586873218389649188986417756643979587415945338156341929162732573347418553742163374533116183979845142665111499378657919863361436334641574562977967643632261249432535175726953865252259214118288223131987648583251823867282462442575316448258955511676316757586788778148313143457165188529348588631811852641192439221798838557775669782385343128857784664574747989864726748145835878777453223739177765361558796223663173379768265826642516695812691624138338848244363663491997649181234254176728172758983995861846633816699392738266836946662366445121345545215784179449552885779419391152124281777542872938446595355861143783175464585752188977858643586849851258691617741118398286738742487514299326354457856438226865147191679415648694872923799479182578866746482792131349499241164872493714796493553611424228771186959926698231523436849718997818883254568321862841186248621592926524338692684442684941791942667152275126194574424152234735649398816697683337351428462476157193279627417224771656426227822198323282347247433793855933888956257735159181687635852683132341193655727826341774738633488765771696361711222636593912349397551689928243772543769834921844339186812275451421624533485838729256849311297861733856164233147858925796194171712786829449859431285422478739233995672918724331712489381347622635568538212181256772715615975737229625345282675958425767863474669336678442599733561544551697143775773219979515559659552259534628813745837817457237926144743948986813998387558746879727348293386313318786713758874622762351251835753884137584545217832151819853289119358793816116697233125797598577762343386452911733211142191263680
