986297391116557127776565184384221579768325456937314737724297527381142127994127563172247625362868297391562375233257733386311854893429348584715242338124778272364666575772894661113626176765378473535237631783188298499598751365753531271693722262111562474627313758286422328433616266948647189371317747459749916516399638767122255216446837677937491496114333292839221822482297377428719986871314498232558477565287646743934651681774826455452773588245863336161348142434686971162229121641319635213431468754117813266928153512713747429338373918683842583351192382843251574558453252735464666492113994679462286616574119982969138655284433896374975183151648559761162273993653896531711259325451568863432124715354374551475829236662883972559572291596777995135213295619661127181328844318523525264818389247862934437531951813736121561685896722433818388236479514691242282184144275595152626537459527154231151493987472449349275243885357885887365332384276324381642392852932363331191115617725353472716528327743762148631198885629494342374846222772317923716439246428313177441611819262844395775379255332621768854765596681266188724493141564252469151795389549197759861358249284459752824424532867827527477994917192973449189335394316122133277689864948284524493481985614717636539346143328733767665756629968817711651716687532617723128978767732144126166591668788424989292658351213129664339872337934962894622564458279521838415122237512679615473878113428384371262724878616127983913324119516939749875553925112763412154169581296163279587231975362657874976976181849683768496462112246759982989858474954557517762551667424969365389251863614557875953113844163627331464231282793326131654296813465995557614649947452854841866384638938872548533979224621116494457269888223712761237125288162976369364912576335455238596236133738992518537432577952996639788683261231431483383461533677958674382972293577787591632552263457942471915366272532446762211159535551465539241512732467262128527734369571551828847116167214449532744822416554293242847776347618375728328711393483217653325242432163729246172149823732113896558311257815336541462352872248266685275982377694895737928868828829547246339193671547715234611371425839612452261181478951532441263725523114771942564812721186112379882433336855491885336779459648418472881927717972499287489224942375967411115648738799747854875933121726753627873737238628114158186563819495474936988434972214682577772736766675745771621769171436745339128282414345644831863615518665334574143998328566263755619142613873134249631721694661744497141274934228732448785181123944737421515762923948214298171911517327593825431134245557742447985162266917199283261838586979187591764851419626833563753387623878931442718235664785285185987174476162265491726976827768246542476725399459544636333558429568668215673582252673954571921879418542453821393525131753269453162986443934832143554284553256424784566388914538655335293982735333622769432495996468735527785931729732176126623897982413257616889218927375936849179866625435876997262631529223149187212952435219519526972379892171555725377754915182472353132389362999567171443433676198237825416888437433363584259226599491162971987138121852399988421283813263631138385356781249532267746712862612176666676173396265435579752324234642861836374446426358592846336675794338653839191451494423569143329587681164621765869513637194735596612969686186743873348865328546489647537793287176319832413783395312654428322361664277762333194264769981727971453329454512579777217195284195527359986342391392127915532573291883532333761412245827776886244497399256182524397968267783924584379443425599368941215541642568252122662698341369141326218556761257323666914982467466369887481198863176489974141153993835419892518387724524973216873741999339128642457343949321261951273274315737489672814954647273987518231713946289823666898773825625731382676366188998523916922146531312199568793617463889339691437614353368165338665352714834292854128455332342243946755759534661571872332292831949338774461491284667941665437163719882436284921331955166531986362793562663239581196974348358657942337691655319932419499711218897177322721616951723592513718218156973534866756265552884113987856885343423646724241246435323979172337945233612244655358555992534698596525149268234842515256624292186821412163578591914482447132974189371637549594752392772722391753138814786765148495766263861414989133733324893937222537714255586244552735471717273333732744767859285898732328315355835742959754899836183111699995391459667228979191755654871496545243266129238744155115871445172554771294658137739789169932573887223211986389715213521132364159879817796291493838562818411654786441112953837524747311719677844328979373537914484137853618667174898777195794875119619966827812558198534198849435822494335549913538165535194365756218217488592769421676686529374444341736312331689945241777751173514237237577673249424154318475923778373173856153147361944941527275796133916222427322491829816387493996121144432294569573295672613651754861374128843432486494298217824558881862645646256373945344556359999229619514244263597479889814937936815157248756398941556755384314435629797779295679427397847712175217965182598245198538181999245571471598683745252318997927118134328929184382213536148249633891899128741661327215632168233759298121467636418885466121735416454713183342444285474213398259615371985752313339752742845533112656958754123441222536783342478391236816425334215327595487647485396366948941421974118255983895299954647924669982772657821141995576952778929455141147314282664994581644639157797953366212443318698396482516531567413184364832589224173234897572934884782321324415928216857962974856644449511578428917129359798448995671971534862891519736547288634635513313911156988132162669321665484979629917551939174169437265527664422461533987519233238454216671596466163664375233954375819221657644636427592268348982539719775697175618286456688662155431625433875425526287281728774913296288353761738637711892599853935759564319522133797275786133282227973472433243598245876938999161822214562824748499698171485431514733164165425139464788624156226718536658643291719216218816815579456571991642217136932655377561593895728617926164286717693511721969838911116963349939355544334492249776924178968668827346127182875252618889756332643284814495515437893467281473676391932383367393326441655481751126891483763794818525931449595775973825597827415182625741898461178623445637362646165611976757682499523445353282348746798377878341882486795144946819629123746241342542365671596214378123331236714378196147572774385751328633663689741796511755377451282979538847272731116131253967956943217288221177481487718364925421564672171969899713115458495725411688132961253213961939519992746813415631795931534363168241955413394287984232248212762669694628572232384278574246356152437336311212497446415543214717271641137293216932216164153711489547322447223213352182926946896438674139246663687589711915629248431975511724233413282318714745564112456383539886863311982768198288742551638725936682128639386391341978792176217376133815947646686643825615966321911864367854919621189997326876517143497461379511639227527267833327573421975322753991635825459682349122311211326617576835392399539898816659223365257728845913846612665978629893131718713338538154591434888655494283528936855847398282479589494613552722131279492628315815654356299243843776519636839926543632575287745477856641421413636355727724542595332668242861539654223836665719963582122255173166325589261128161184734576844131866449514131278275851751719324129236152842727911269513296125742225321877758751296653344519656372954686377893224511415442861816292717977463136333429964111681241718995727691367399398763735637354393454483113126615248428337624698543443618577752787738671247611113161885578753391299852691673953172349123899346849286733383766915553847664422887184665478146674928487443537165126917291469718532636365238754311647338467359815533671959463816236241563264795846616359218378484376992842315159165537432138455323754174744662978765778415134689832229982264475675629614864851923947895155645434391449755646319922267277388567317436341423413474281436186277448984339546769473529882674643318923722394267511432241234752338195791432413567782445922478633958573567985265545174337778178388692892128781334877584284664534287891515362912823643527329965619293435967912497616186318761664994455216533423611442511882646294165454628899321649989131245299387874292917463142217434483146979384992273861724649948274454426582423351366381459678234673674239258199491641643255314445911773483173994377257176897622357819191227225812823444478863528425219851779536789144969835813553461432233841689624381413416281567485438737161932131593767496161639296251459933174917478975646583768237215291382391345936195729448343711513996419571187188744759114263169936152326181894381861756149225759264166286698856524235137822336518463756445491926355799814217574921935451959526491723766412428161124153687238313488292765748285983421554491253722276341741529742379592937678596441386861911252138622353462967313827952383557363911742259618365864661217488322446885159814954594484211912691926295468787716522345338142768214621358957274328316879519736256194442619839851418432974753119622263569318966494327634746693427943263229163694346122861658156499988626832545647584835539251746938314129427982194316887273921769258663437919323135769575353225428433157999782475966954195641647545987478571555272741232589219343134313191575115324951142953993626491549481382521993795183418726365411612129179982996116972188233794384172213421812783287698239513891731564321244285482751598925785713726291754232923636912166451334759721248491889213812879899417568644778229641723276298382741649424223772434842538369249891764569747987414358715351854433847798981733242416746639172759368734229611943482531426222378418338453963119354251654723189564317741267456225886589563127614847297842866631769569534997536271131919473132417392746421742698115736513914975887699851399514378415781816415652873351279259278729453455671299395176277347875311149383953192628971553273973558521719562857196577881261278656411647797173552144831626711811325773842214188623214349515261452262574486968695123984248729244853964887557985567853945364383247514866174517341274328365314189133658577335385613445756784261124715516891841814414571784533663345331166934535215563358745594561242152752214922294228145812841662277463813946249768443518316233783443176552362776554637364699646654416453913364168222535481194564613138728247572939684656591174134167174112119445731732632285397537961833498941343926544342346934739553523428789837768941426451592187984571899224816797371734242517394577792344158419598752439684967915348233661889572624482782845582115863449366141747818251832981591866142363228774513876498357177596876449169444534183641173735163722421336576324471266236222724468382243442578641383748859457325238162397436233493343198844147239417321969637994417574612334159526412577762164353482722643767892184268471322316848653959321112769932126372782265761699296335653594631112787455621643986897943882336393484819695194192937149773527525316341923649861475586439551251873891913462849528496148931523796677645716164765741846571552311453395417359521697384253155265329858659616315574124861189825131112386973261334499187215162176599565947845949574277393378251465692944681166619813224384442823319187167231912927329533942482825113271312281675522541855198669747778919511213149168251628882235184294656851384713946984218133477275118718985649875814979365499356554576733231336254891369543324859471152523135486795856997595677539338458973721961541879494392267898991257991814256798127812965725468691865862912196157925486144136256471314531219434594157698718647888944921292584316279226947971323712935988735113373247875931791976741859834138995944565883626149673467426425511954573422778273241994535721957778561334458651461862834431813513925675664122515698154712311247162925198141631282584567293849394192869327757365937841432469766325762694161429375291856398152728817552454611335322116937937871749653822365147748635324463823155666723934761124956991248836612772612611219558611965132664964924846825189219969242725213221415629813842522183432139825364922462436786224899185153119836733722141139658552468136636457523958654534141832268748521914694576855382489814295763343361565968914597797719283985621983334483641562742234564748844461617129522734923439958886113643432734214758166629781546548378413489512762195443371892748484253635764125674689953655674395577618153612776678355561685248249316863692482212781136131715847616966233937923513345154533824488326366413163835717548275858227646716943667597976445469998491312567211425667455923393384165526457823552927572181712675894984763227672397934427588757271948921378372788465586597348944889938813483796347557586474983522113429793398384596641825976451189964584791217384338187399794432112597917613294774237863983216249594967184684188532721332812362783837951321417648737244434283378473366512195858471662257687597777441842444218947818165934939756769867322334671874249927236216336564516923232575462724148932119288719847834121658533851142744731452941396127721468197845115959736667982131913728538968716348168271862957963393718117312367819948816277453597218247143452618729862786264859242981241335178851132662112542686785731868114499387574581684488574875236176545119271182232347615263722481357621552717926862658719386989295564685633611266961724416285238139741498755586468245591354618136589516183125114998919483671691587123246643821173514665674279523321826716338962212257147671451543593363683668726324851555183335991719563422259644747894723173888858937513593154156857436385118623666629391263942577816471368578621268919428973371559239289137527857344415579355739771147181961541845317632537474644996796435345948981833354162467959946832324394253313324673981769526217128321382977818318212244919979537747322663256626814666389892811547915615723918361496649342935251389743244483156552465544234579221943756311751186222431976972433475448259948566377425718588564552487152794289823351953377767876939963578653872357864112128635645769712453325953698597638922596174199267789476824238677936716963593532237288359681287129212454887787212682847285497627219495243451324216756634418434973966468423948438667828683291222298663232866484771151266768522552546324881378342255772267533572989843731355351429816599944482324292943322835598275519125693278291133537859617869279484639122282114736148643257487882769261176161778483573122461583495291197978443144452313711122815927739411677655573756182929426522991456519753597525674177381724523591118415812956478264829425978738275557423471919932259148583498542914253395969838126895756565697952395816871193548866494117229634252334171394568655674591726396224526916886213112618678411369171515937393891117916438514126243697943412176169855188294257755515674966238232999771487448524328966156126334257853836325719447721219589399678324984715346376215613492457321538645343617395873756117575512391826441485559739434472452174587589399313894731236881112295514667635837554469461288466923159243792146535347187125846133321518646152658123413421531632875336453326654672278516693536852859854589143616562423458916326325478849835382857755349783948929491718332737237594372319722887328516473516629362924995243961653335562661215273148323678714278595368288641987399272168836998964428589581216688284212425641717653789874337473244648213826673337143816829795156167294278213542448662796516766866154566824577272419394614724471269946741153656913913236524695753965355664883459162899193867938181824931486733435834987646772132636469218163226346915749285856168334284272787485794321185278581169825283165494695443566787665472113235763447292364871765364921731465665439295928421762657265632736492352697522963778124281625669779121348888124969541729562674247465333571847281344729148167221923441971759439927922181176388824321376222959249352681131663673687281674523785872815577499552329116345276571573597745734846825167945525172578392859447449535387391369135335955981487418139829499715712784337869614364154163698519423912269346982414517392513737459933891934591966329837494661928119714457889252145843761969462578156413774963594836481926378547256588728268795194868441731697187818468253817127321827877891798772764333989532746651765497294235436829437361398585322963815271786547857776124576212815894448884471248217138216735242821937455112622245572216242231487255784272273444645577427246413788728878693598863967711998351335285787668288459182143175727682875996552854869669147329139129949299926256211717462533989664196644746679362339353493292792111213351561773828912347294727631479961989593328544477837531446964791916539428414459252725733892364346469778292635837794288713447415177284486115743319224869335545519114721177445951894421572631995688529392968837216947752412573654284532856516769247612985391343428619882234324743267917255426714261967911325932731212798174658722361661534562786635329442995211594657431348817715996323932955281835826119425787725518439999116933736316455242531322963746211488946284384722191143918281798797158355896415145466743987897792827745923321446636523712298854583473561668412626439964287253835925282831923273385654448819533491418529379733457249237349581416783923928759298239141125139326437888174731169652254734159884887933944212962253574366299853716599616274887256743683721325786246525938827111714281324482621481284686233927246425192926293864262275647217764722132513356824324862527975464544169982543625912182153946897133796568262145595499121318772163572521286396287567667213235946227281419459597361338656646825883667442533288665978843268421223947377318931486791257363199419982719695752427875723127365297417535411433982443419417721913841846563164694318341492128279687811429346787969816967333266964978954763368158597615364886175335666263619377273197452447882481435747536439127751484273181381923352379712794321594953378432585563185948984876673358314725368591474586896818982824224233641623414574523454282193296629612365723143367767713756564895431911938949859628454394764578557162625665172381499232232521714436757572215133581772936116812826262522184842251558334893126817377263869231127831987731487793496663298938813793569388991374143885997167624757893224233664252478743416928569372745386122736273764372444448795568985298257677689619635796234728719982356659632515131675122319783983419714353441743538869931678546833654998628175123443649647213699893482136124223757534471553764758625376793442127552559923134841262652664994324854686143966741573637498278978138145519681527967727431852492169568767295353817142117588835736123899319549145814771498185948492817977346432349883254129146531573298576677789144877963159685714975982139296387468443984284264872151422697842815537893543516766852115517815493956439991612769555399297469791687339534494393735877191563786652244734366454199476692833215282834424266164749559715332951472287569442247188851149954179252632599495414468644524778222621792615139882832335222523312498742117691857939282385937294533451627688434485671935756153158447812727132152995254517939581271384152832243387282562377198514125585233628245577489512257324548596589633365787512172778569257163455369784136917659982425634193382833818597663267257227687331564794279432551136282268636749514797142635947736673233345615838448485832448956168162314775187731121299572475523955254575972391653324444422682524455345116283784618978979575727154789961714162414385418922817587419683913511124176164894162327985413196814653322999941459957487674259392463727629868861774139816548399226557299864948742944122785962741789737154218694715115344332812836273921827377425614441466351114419651259321153144427996253552227241332531819714431642112439424958171159599941172326485783737858492225944995655727424147759227175427744216781857242881123651875423731162411362281686655947879651462764838463854119618144738228267164283781171448146234233175727448233221527372948779872753162252354171775443863998929776799736611817349612117228915467552474636861678497279575539815153677353881142829844987831867137245589951536112162449486941554913527955158637437865174473352214677542382258619546569687519289516542176278173775476233369141754181144571419344295832483264228721588238569616829392634116293487738124957685312455745877651349734386771756656526726477479229189856486451835311216957955947347641836736149756657783923553185277313583436398944791755686496669891769146377415374812321659162835568745252218672246768636939642787619226581185365378168233885414518438811883684977391175752342321515742691759213265797741643353924991459453493627543877966668898919542983559127318477247146442233333864782572199622334668335436629454486738314832935532952117793892377352194834224123316735542268516199935528639919681564261384774794963795864597372832988363661862558997223431646352665764368763535794379761337184352711121958145623254756261231661268289593853527122372681167463344852384352215293869129789692275985936742286421699918421137442759767583948966181395476466323698274826831618362415118862573653217812566434711136723913689832119653723381515336872988295958322648586313178512369139131543991634777893857674147127513325723329379215373332168639735175898557539691911222582264619833744728248916898317744553213856871143536276254278797478116919159931374426213415139128558155567779951142817223331787748997743679775683891931277626752636856159932573229921595194478143817175266963642533335872191717512793641997142372313122528786338718667344589339353454152423365589479567762457129541614429855541753553487134598642294641488616837117446361264751164314879698961753441275647813671998855519923822947523991678524111454458886362314793562981974857825582881479575514221971481173876578591325731512598613233816161286369732121356789182979489157281799846236362792127193191554587242286224921133598949947628369351427255649334147589383195428578714815855718362171631571184137598216412926244991931971984629572651643523958895824461448541266381931866851295332248254826658429466646182359497189726344588462645595638281816844551131991533898394163466593322537259125915391854957523774174255734163943356919627416855375973874743695528932119323953159843551562544224673138255842429474731929622133197521462413158533825571843254665236669332416123856579797712215863615296785614225843772364712831779645569434726191216318812985534217574417752426465393676834467225341934736231743155455368441373491792738469783372554591618567745231741371627366137219376373975497981367513484318569678919531797938532492667535496391335453145618575782229978813238162918393811616978635428382918384655396199696952714212832315452565497362485625122951517188427724789848131516135388322269466312283181468228519447533236641394639936669189943569342713547394232175411111732976673387857813715313484864124845732534721112737411585961846856813949963177225222132356389258742835687651812256681585156517185159953966251976362438588438357359785914295111738361267121281818443818637169314217518711237664126494499245559138451156694267125772463541962915838516483962755856343352332394671926668147569842736749869442519752659129711935275394574935885673198494699923571597114252482517673523816891488924571397877152276515614933222728777793335465116521494118468239274518463227539353955119453353259772537611437234525512657793162491753987196625826518452643595163572676971473486281133252846139193637122617133591216224355181963759716827268532725143858462428732698769116515297729299178932296719869743575759362124742429159291217153555837818563125238495875241316334441874289215445672956211324931162913315421841293719571889672148769799398554497745781131513641939915455728628461956543331463465534791675151651941947211744821661243955198414858251373146577614115315927488651826655831852527196538411792585632136651324151951573149536556544176757289338637144999324242427742473243172791964836692491852899944491795817542145796664649174289677467499657228915161438252584785364426838451154322791177148531454337746647895137726384641676511296575815918125438186786821451688324529266252995741168526525842971779885285574949943441599111842463231594837756944373849377636465525922829129161616513247857223444486963877736687282145857541614519289124528357278794879146127542495716579265488128427256623824953436579821858561586914273182941432857242442368682414597781622458389543887634849488526322445729351411913754116382525317134133711944397497149183192832324224916813472476786718881239962898398394311175841824532477894141846565818641246111758115467296793525111919934692696689155541289724752867213566786857137225878426491719761864357166282834362884256689245773987386688957382164933255811287698655399527761256583265131712154461957685794463654137922655788993154357453568869169157649273532734184361498173799777766362433868227387232756915175963535927271117529914914585332964322298465689331179858633359747579696162441668113465483475122686586453299975851616473438939663642822639715862156919496343866292917234571962136856381592725121679169736322587657824636531835878165364516974928728122125331119819433683935476125229843446169125729936784451948278171764179934491435538815676141549491211774484761177982769283246752963724552851725247127793343643555412682374295991335913562329138346265535963694342835425579811892981346726121899771817992213936991538684746859935874659619447386131155652813237942742334537687756996211861894419511114577239126938725165888224241782155996235724523156165527584421698834812164712261965771435491478753123661984415521536973254584313375567639832641422552912656461724775125762958419315736527798282353554983835479748258317552176352346447477292537441167943563877498892666441432956612773711271788435531318278972954276511865732115197595583218212722483291736684164331769381514762117844339917874546886414947348631738646486946144698169535361834983955156977631291195399794993212392452861167842519452293858248483132568673292335175978588416959833438929764387917833527418754361959531195828861892819154866676492766743674566219531628224195232638851613397233174831154712392959497189736262435972853117734274553445864568249934724726639572922319445886636749681446474241117292325486429299245258345322768411236491972168894345819691396217531793387691954115491852474454852443789251166551977137247627672219865877289843636575126725341822366915582397337246759666132685696748699343822653422949946851711392924633911246852257597247294455521627173516828855113269951135667494751666264391614829626141374854617747484547355974422129764826951739452814265379599235538847817667145886737439933484792967235697685128447385497354572992245484712877324494237736771581299773937838339437492616822324279599486431178823417142811429511266915915348769227215158886962181529455233723158941842471324846472515288368942229651791794961126848925296482483353998745396465787212698482169742247981482151768273745759455925967971629456783492138418214276619116526245365195782861231915376614393992735167379381444987897618857872543474533576452742285413556192391358377922326925441984594213889317678312652191933215852322924162241253939524146433918946247895313859432125619562624551423519985382135446475727231613267935456976392295571673529344986285412161139318835765752452227695387183369787682539133595543125495432765636943642718163668311965128563339115772525793992748372432365494482688656759828127944224839887142966796628189111533331177323841723278635665733937383811447679844942665662643177142975937993321582618618631593329357939943138868238837642584894913753216534112348972246689698153265481565758951383423666578744712212213825424947218463153477924765545431842595156993814243981911134894981863492979515897414333772922243811788494413975325988761951152765292487612334271294497821456842464752785417435263736254188697953171553626811469948452916936848522898558352481585297244943212253878313468484592386736151845783722886861822616799122814947872334619729336791714113285167747231146818567869859964821875462168275269796755399198591543912663851519617318247914647499514316575354417143486947574477631287164385846525226123135993563137255755239117653626969496957139522671437855621748357548152574771241748728336463697874552521476659295514973563728783936798592267437625653677374466322532886937744812245615911369313521593278194988173918962972586518955472722653421827365149814414819722843543213262466282245225677434867178716127742172434514937555195675572783585553773213647797234481716342499824946842915621611532474518356819789476336119441841924496173137438944199224713937965113326914532666924794281954437177893321557155743974965122594538842143416327799539915437175325548457224441277546725888596867963386641119724342495837433867227984325563326842674274922544691918544741282683132917722471634634148913662123836865791979653385622682629976286992289339546378955156838815435885711467881867693765279753389164436511368571116594141241821264461641488164845396664779882112547656116826445953661169541839896722787934124416441125959917877524269781281115558931369239593313534824959621231462388638261926413427327159486898119142184629741744843862423646846989334995728577622937211436712354614548844517129981981191832781775926971315953769594626572885758282184836157235733851263788574728415695734164316578952367634227284156193736989358991841376754483944427579657324317839646148422312415685144866479537165616249325479667486997111656471342952615227218613724595813111472819965712666157167865439125269254996373286916431547453186552287925568283855778267787164289985224735647996681291255955478681775847141143588363134521889263289473625322224638849155248967841249925944586996518511615613865678619663161241481485723256392474788531756531167148619418623765462882141547845434124634216456661578658753439734557265535512679813561839245682863441687918547151292789821232698689961546137994219155593962146131273788244492267324669597352659855676918721637681942987414591714682725978975282266944255327746492422777348788396955987586326466584692886633894617436474475285453494613212143631667712377242468684579587317837682898648291518358546239779158611124463631267231187482419883441568371925712459622682963361764121398954994523547128548658713562758749482616122383763113793772931834441729832275746443825178172885851445122353648897382778114921656423817358531798288151859653623965639491867238766528618142997276858551828764279647223558467516654915742549768199454943951186436634936743876161577281387391976842216848468639684719326346612679851965681156611859687974492826591655638436961637149136858887719626498981265851349225772622764368812769833529195231452382364785246233467327815538324977182781819413393486158856974465937765341869943661915152212485835552578763929592441751153351166522141868138627987635691295289753459734627527792798463651985614167883938542663338183841165985132875771676445347466724439912473954321156634212215141997765897688678353411747438317967842363435477658224957993869347757728649611178915955715572323665968821584656116355122179115621766814137333185295833915553516497211462333867828585321541925963796335895625245197935633944839399265313336682652737318844673561744286583666179764196628415454647468657271279969549757234364634782487621625359756695247995517739371159261533522681132768337273846824545312894895627725438521762983845285414663177187363125477273911923221158616972217531584515816134944622626399742234869995127458439115129327864935964148553538215465153978567857985715677361327227484292117164162586538681376195517335648813944997527925879649131549653448446755892147352163789212682563542923894472514381441996629893883431355768161532166287652981727625213655971193137627448592896428132365621267677415645837634151371683622314325268894797979354594719483139223785389551412457476174638817427863923425924695445126528276234126341183726349263581731487896823523391679361975185134922784161155145822331915184725884281589817632623693761888269365671492351524582525446428413335622542628338832899671959355251842365831369799293465133287517923928623636294979216138341521357198393779252328275734138759111141912173447363296457926396988741423534987294574747556945211518429682586328531175546431285832424112118738952528368258724924916981822976126785134333117213962954857388671389263668944233594233552167619514375348941569974672969737285443313394542749997814136943874198995789543529214671676352395311221285825858536974452575653653242719876893364418817783122233336947692759267514182452371633246463952425733514166989488514822193561244878756757823113499133991252229343253673766532612686627846268488699834322682272991165654967531449575586473157195422184968568356561433949412356458677231941915273934458658598561336656372657155584475136349972376113659461899772313651364155386458246731462353546454249349159861543629476351564711754511884725676115115618179246522658576771942973642346917612274365171232738717385117729718988259945156472611657872597229961716163176281164285795575257954462538741774937842667168391957212217742425843619568279644418432379554237741321438596368563331687957234719726754944441413744142628483487892889761345725932325238818713554727335559555827294298738875637112533541552465991841483671559513331336184514275312993567156744929853525256319836813668159676937553135361411516145583453122137234753998171819631214727142394875586472254333854913411357431892891214517256522265938251793953632926917381135319816431224965783624568647539212631865387882963874223167168915135591451421493363144226199172764735926891814267278274378843184114586266815964635294983843214697536769521587196334255816911166966352611899645765484444844684612524469278384719121663644694342764179477634917334897372144722799694142443954311714897578665284575741353711268329963922668685795813613478472363879124818753764576147248516539164124754427122761569639387334177566381322513131449314757232184317454147466979611721156522811144495231645431911311277961341464767381175212299675852159627731889155741866637448332864769319464249537376162875141584189354711362329142786662724174197388818328728346437258599222927332615123449319411785496637841379865878748833682368674815615269542183516591142197828535534294936642273889126748937951916185627116312499396693496138146174481445954779282994783248363131136915894141551377966658112329166489938228919482683115547336667752422491264918931971416965514813121449344922778384452398338471231197634297919852248887837615833827382898313426768353612283124833751633996214419453715437781451395813795931493315557697992994321486518747388673635251498454638544633282651321895429463329858162315864646676337225185691191871616733134522947365947474254362537112114464794974733545655629925521187618347654259647149454484895234425928659458176576574792956482131161314768539543971792423779153651682173828622634511379358617253392355252153651554874572274738179339629123229452738961535355944269277661659665944979726319937742428133221912838213248819457139823373168773849628189858818484232635185254571116929394191649563727549156373941339667998348218846522788221111335393892477462929117212184156859862674237252654228292396533685345636866364359898871835425812852451355862298455391665229651417799966864261877718443576651927998942223113532175718656391733252982975357686169394592414353496723923336381837316353325911472756752764127174536142672862721755175419811792573183472272612943364396554513293737383372194882428679361817141767832241412363713854213983667198922139815588375219894731174149237649669543887333347882686853177315849782539798279874463483133116756124362754567253718596329264585118981598397264574524954213284598287997753836935115783773131489883313822577598745422217534159183621511154132891719631153792675342898417296234691496125661834174416383434278489363726438422836646455949117515394569634818697562235554862643562265419577273755617499122455284938533369594577569777996196574934144965811178931362336513876351245565173354969526443472132795645292418264431494423688341557567383639526265711514584933826849417984268554491162714853843386566991723736672346216338729551549842854579986963447832287193499924692459895146639291838843987255572848122492457396258548629436671665612372159596112399182249511749653419552874583979224887681396883332525831175812589186238379453234198249862848131249229329445266964586488573191221937463796114851358492865577233673486888179217582963374349146833518129951749566256323385286924194633324766438248874879712532371346421262331681954352428946712992544868324287448829854868732865549861756871668162249912926661934311567194684643561793443331423187579729664797446743218492848364465821254313974323311943587322681248921536321369619336537295132251285767381824383524317528653533123142686336657149264743742134687617696111199659791943312119529651532631565549736191445665717825433244342661331828896529618133551446874315773698967766923574949341631296272259329891294266312592542614152167129293899115724767141892872267711432616666843549626219782348244626435644492463673552991152588338794678642492947693614376332527234532651519463561614828343882637294722166499593655931412749633611162866613455636538827159895358613522217399323913443131766127298886486289884726869135741519988179328811999381448471727122399767233711549249851761328648154989221185775588793748714975118985598178136273979135765438652456595677199724713656697153313831577737257822247697657984916216531391677898665997231396629317582642968832889187748576781338559747436513252226222589773995417523646328694314666993715561294411188265216618185589276855841315189889274731297876949655997773424887441264894773688292322396661522699297528518881821212569393946466938966381925716155377419417679999962993271842384856683998567956455794946442432596577184963931274453498239839527915629419996158275397424891515718533174922588391497228789985356194777315749169842434238142132997737449295813535514733587654241784385146479595887921869836495667346689697536962156427951852493369469564611273649668964443289112255816441113233655746363127478616249223699849935875249321431115132153434972486562819143131889518338684718797965851219248227839412858872296834913824393831665941254663225488954923837645419187987562962618615792169196352629611939658586429137211543771719598363436558318646356793646553255775371614322866437649487158893481751553766878659693227697894912941159246939462162121328617688287311666698416975951798272233681615932331151433928377456483321781322859937548974984523712491669411143393455186314499687123799172693398565672345334874923481265317759328649833592936776541332583596892378811774345697523194361412347885948425353279254677271724964692421446536779676851449379561389275215261769611625117818393143354591846897487278126698147854622822213813937359873219512798276113722269994418564737511743663188375476164354897788126732149749278897577715779191212152873464574584373292122422381558271257445118317519425818775481822347427464388455775147917559728645141144639274983274531171351224634984692567281545668421195261255113214273282478775345585131424254523627418266685652332248569339651341815151337612531492767851969574989184711623143863111178618522134644252348297697693135161574616172932942122797223477868812981238798417846887277827764761515526589516129931129116638547922758473197456193362725794984314518657484295168139724225628544866293233434286142522924574825799376945574652325762724336873965729399272283316442168172391782984182784643636198383589698232335877891351374653422855398131331926613675725115623236294881441682997276183253286735651185446276866251651346622277624161666189147283483887313766541542535139482596658183865421771886817433982299727827269588647642499735293656476135971762576385753115253466351239396948924297498589141571894723897438221127818565415891489422615251518234866999115556167745251316618588119279314911887268315119117734882229371871467851736863591546622333142924691333749842694354392724136178614899889351621922222313597137434526385163645954361429845815134571513477398289472475799528513717363179812931231337348971223528888269756776463367838826174595455481457689973121148163831685841455688616824169884136525331337189555113339459844456134545914866263181347192222935459353239954448369657579147668684927545838675363362681743434371952148929121821133774812267268891224923136536667149898521121932732288716561371299232137562978265117654864542875598458945185954568422716181479794954876544263437663435464395244851576275652321557744941121287623394251893412565489451561724586546589762513522167459392317531369545637794661351644457379451343755272112523528863445543327551969542954326896452776421992229569257192817228357391839661552113898848893332353218864449597633946695927242993499117113516291685194254771613944816513833958576666324368141414434721962439383325844349119988613938473729477132866964844211644842343735171732134335319267318617488493415778542226628956844381529421857132427396747223522173345969853212988312528553741951252485659321624212679489857363596933328314632431396543688248134123611291356451464232149966241858113329593462876594524551494589717383337753354923916567667388821791898481713477414233359814797562474237513636897148586371451198495744622897655688249823937669434734654976443712757331188415527934899644261435178119161446938117497911379376316287872321778687436394669414115623322276923231136336935753718785173684918545932114184121215681354125951995741611165632189441315192881746753554233488916165414653189813949461439629697849439924777816237294277336151317231782436292924997462341591413285849981568739372475364799155542157639643335156474452532651771941695932728836658553936729212597199419111462883883615577453386867851144984245877896544515347983678514744325431541323933182131813223961969227714776547939431581882141722973415775284512546162944877166926271834275313435527248831482396158754533967482392219524572813679237354758439449435824593129774165726582278553542772686524898984297453957884148442431126887936347269144483217226579927134632816165546521699754265735817954542968942595911769981932411266877394129446145354538512768228742842696125434113253319248598644945837779447188794648459996941421931422759639911445481289897213754735453621883289913364579858466846346963918271131814213116619465843435746364466945249387677513338732718142294476522416811185995832387725665336419677888651124514312976168888383836845967419226863448122451789697118221481286668718292338427684474516588291519373271122511251326424679164965213167757128359663245866871372682198215718978369643832272522557156749876422351298747681435127524877662399487139814656425892436571471786842783727546949841793732497341278231827798758253823871951885551912725188333845269755746156217124233178792334953333344335652357418619184261996546862822915692234755652518386885882253557293513424263272412731975971857171192343875716556633463699997775413149397673711965845818429842291191626139326543559256958754486198879743445179159791251571466538996821958394758567281798497319791132623975585716293851525977395953163138191947663348356238656774655535945986594799765552484262529147265739587938743442522841226614342139512253447826488456214291674286142823325553236432851754477999225578114861572239415472315784826586633159819846424917647123461469944499859879294542978682537758939498676832692819627914965411123577674427243855133331973248835438876526957952254939891616696597982753294425842627642641892651356523494437727756241883716191692552474361192474934771578248716263649526689878666392694144647992592468547328828736637617465988176473419799796682267621876383324811953876844738182983677391381453585788753534782337263545151359729799993821726384925541428936429266255915873974598471745427561865746813174968442524913884663553184142661266322223161149133652464995311944646872546839411267937462823252223943629211699228513747736161147555215325651599646647667113972142374944717454812493835214366387274999574498516983412679484517452911811428218765115376121229293654648514982116745941214662381358842392498582545231885277771456458219632981987612339319247665982957572115346583515146846696363391479733473253427612617542814835538642823587683974794568999353712368513611156583711849214816287962771777873561765324635796114856965434236183825968925456986223996988283364832789269733429459595749539568762436811519924129911925716231756234623413483358765482363568513568665659392356697662615575282651163528813754647446145314374455215875238414161799914494131139716621957194759883483283148927177367418136886579355741974752956952538549392272313611349427861561872325118377423817978547893197496511931495793581744769516247714155333266925189563261875528799284227285288139597154274232472875731286547116662222156398257498776356414783729256253487915554483591186328774373763882516313887611491697454215396821114458868438166935977966217794324562663746733685552358113274979537714881636612594419647132666599464434122142945692318545666143496682298217643979121268112361864513424352454115514754714831522398462118175499654588695574928445336499632149885755844417438415842623929589546298989475442188678647393784573116581345279289147397472264499964731428461292442523712173537884453947261578573622196241539119218553745923932586242367168182119779196432628236281193186191863739322762527517174568231379457433234516468463861546572997753432495478271212167244648737966737514412817667332911296345971853884731712542737413865828873797751179445276864562244788913114441131392566265373823373824253873221762885571169997318877682595172269815171172693585882662872978386675664491186952364283211434754563635518441334743299763146536353114439148569121935844133421316159394662158838451748864297567543588166166715842215274876835866788135463694163553732338347215888289628325469193142194188214786449585811176636142288438371721868628481545515453121827891926616231553776846825245332965384986388346482682877943118118124757958241759483273391598586885665717281148618179156553849644418358394645674446968234538726387363125415769725318712945923317593324488839746473785335241733113837252968126655373214368884255315851574915863162383712317452563999322214633172474736234455399247999836375538538879318487965944153126192298687924313621365592984329133845121948276124884779341392794198312257186995412742334393164837464736582175122413797142247126763123484529552665628143125266528234268974837626751113885558383391857134977232143669237428283663815173479572361593366472176571547585256152752244443563475362136123812123578517837897645379219825925998889224473363592492124475743887792134176165388354276145335141496348727837562185344712593499611198597473113381712563597485631633494674981489217598297167192458489922693279156641782477517476771938334927332428195351471338147824928224184466949547863917393973856237647372162383375163191274622883923188982481781195684133541234764482369991144995875623264493985525586298196812753651582513523246185399116455392836781995248852762269362736912378398349235684397328952341954818692135975318852162961346241532923894493692434141753649141462919117317523217529777329747275588998192421397231738265397719529526967896582864241272367313771166595786174436184982431193541593277229872691332961892135724492459621384674967766363691575313321624969661955837224626525769277499387436193451266911271795313165838669117753629654641513232714888335184745774554551886566251211526273589368932551714982519235387933534662227392128422141763418336196512462824561544827481428198621826793685234821115613111518611982513441914872779499727513574688722285163334512148467273177692832223695189826965649129839731584395945471924639419647973498142932997619679955563148941194399619955139816872118193445287346691889142999913885225237745132734363587788647595118871917165251499655413136596418776728746299915466521658915234296449626781114734744114974193341392678688472984672928367618188194557987924191611457622531362634215864577367442794565571263719151629732451656939178276451531556231845931383259541332784671616574225329437823289912153654993616624512374643677119971568272245375524323553161312472667549785715169275526313138416867834255932655414915962273279985485327158877524595544387843546682844966328882495227918457556351151714767381523436265689178122613586927179217635385978238981236368411336271167213596743226966432643861881696374544441617762662141771858281149414916864468252796266676512184258759736832135222973169445594477897916433617237725348399972511875135698695156992169264697763134196913263849571399951581132191484693714714753423612794993129242218991629188527992667214722626942879383268297787512551776723354112619218826198446758136482512329243523379623137339671598456251786486121654122227827744239225254982313488869131743513825219452661594768182718565582613249358237481882617288118164358671258791615549212699354452923428661883553976921777446634475846521993499652571999287576416178325877313886513313261633412793513221325593512115939619164466141569952997277555267696311243475472149582131161637976757963461614199451144444685737196313453583789916139774359171953585216521219761982921519276628471954282644231148616873561138412766162834374282839432696681521391427277473181164657112989476885971351127129456254435183332389679157534133475176511626562827329383543484453245228341375293981531544349311131442775227523875194642788916797424784224935471914438888738894323363211524538157924219176717558929676849329492475127849235629898821912687875618281636667239122767331257981333566317645337853592873768313933366568824963358948553457661572355933819866338466917132779932534916562233862778684175247412426441771889334228823432263848187984287792326818563216973341436697934117691524482197258512452517447121158681554577161877453798683825927736568473453681743537551616448346215127499952318347883234126579233126142985327136371594238911128651121942926683219844788495235727574176437295417217573995765651739773359322651984334489316951184179558546354728165178412518437373539797449781219964492635583515146874421167711177272262984325523813357323922111556364795396476963618788531666816173499598255512181667317147193798681728228838227261318433221914719127699252316537955861864722338872151998223246177252363314386159928467845853651224174513343678987215154884794267149922429421522188685511553383597839158824552142612113479655269536174162463799677289193373983633295651866148467641862365817345868135386913592862841179958415243294734376488345576141149368117543223573556723837572414547645866611189946646429951563222236438332788582656732454394413232645619753845595348224736573837349554693395379964996718246318276549712946361321227261159776616668227396585164455338838369933592483345111693283335264662796854171724821851936277746955453793659651239836754469744714959667683152685175676676796471626682797718723353899713115115266931548223531947242876132111753838229796745346256638514666767451819667237155972322759191199424791813748223499181825977469182794443687623371868116351811337192835639313541897787424496282748262586427626935696112835492871479722335494125229851958836952822465882991959979116133171799324321417262159288147121881739755555816131557189711154799621445297791851426165496244695581621668523858588825769145552761825168768856477119672893413942421298777336367714441983699427269928186888967336611446692241414327233848311328953826173113671131776767251375741465848868556553867294243391441925321911395661415293443286411664395587356585291176722415122654785388657766316237591773129641136279233775666262821253153799982891578394366985556731192726545847175134458475599941853189123852653355212114817876891873356411966837227342179186772729138179248313717489813995226335662782755972191393527662456547233172646885541554824926488976956545696826642752963936386411432193555124362466845396655667147729717422847564665148358241979983989344738149276534363833654976476178729837218149137932747699492273441622213372183848225831531238354692756746245534133761798287661983676624648776543873419343669424633454647199889965422936797533664456363774359413984349541391311425852831669525157224188166177835395152458439556474258173732587555241834332421317853761718991117464546271829516548258643874646565969272632489954652244478633473516681382291652414875943423543618635759191262488549324994398861634635622994891245951723559531415414164818126734713549725162962659964785836762277817311166772756467388522862437118993392875824112235518277835943411788479729429468649381955586647165151194792273137438624492254855662936614851225891777217337645912845916632621799163116867395581246721189678587181623269383119828856562812857277578152834772978552927839652142139974861219691123732523197423554376323393879175879328836669626237464659739692592362593413485661169571128327855413914912147291231246185889787418345539285942616161933793127349417551197916151376852386525225344448579296466913624281152191356248544992242557366823224328537836731419166881399566132632661639158176951924576782162344218593133236943133624342149992533361752452898447867381928815588353976653935796278324232621653454975244835166148636654992574258937855757641135573681415466337964642322228238748986699269284985568886777838427967378185689217822643437126223513795729512124942394719741541724372112389448316233369322871642499644561514463751174375772388961997468963972864764314541471872224665429944122124887888993712276447884176752412611199623892516487415714614344612956531825911916652618157268954693338963194563673971753924454122585715137288397317284693729814973223725625525493657686414284612617182137589351917615371953116519215313128283784214185993847496562868747324898742175727768296311677235774472456483929897865249755787893142427733982485986929887168291328321533229311591687268445199443385689431185862774289514954498245181494837216531272793392628254579411935484762497222611112484268993523261566251427585674815854123214567841631112431947662246526521381245689746661732974933994592535929232724683429164897797552158833181411235126885141539531338777381546529625517197644718322512269493513997689955367654525498483654624652241599144499731641578558339187965719495536525841291253747242441824271372717253933545752944862417545675946817484537524595174728266683162162869379214947145971744539673981914624312828931922178655151517414966834879768192742857819168994156798843982941341637937924483191414596348181455613441262537831314238228515378299894589259139961721145423895458179326665167128368333446613349276543643626426486518753842169552222367927274389993994917877427323484112631666863928335648121219815132914861383935238886392653442165635489221272982484723342548516474765617772711588561149474472858247498683676866428486543448699543661415222987376891142713875288891691941278198948885245255623762722829431491989995459126138536162942424125882814872315658781399363976686797629647666822665898118878972587583544638856727657419543627641831165751121426188235539822548324965367941368772482781332411153447412194761937711138252639372658479567447779995215527465346268118244982787663319944716979261447153623661172193745959857718444915794373262683835295693399327321396954822452761735738927633239181875992132284151697411711292634762659292443958512216181634173219886456988765145499935381489442359789796425348597427661164955345332124937388328239577111133583999384719175273627315151273155144999257765199936792219671124597763644334825436742298755754616473953757871196655117733468865674761892754658313452243629346577436243714624641918295689351263125332127293339492215511488364326417567668263642794865422142668632136553953883246281159688817589722379327692797536147447371626492137655572356678731782438691723961264231433333455228128247412685147776786836754332977133839383325684446468511541697444911568321825413614428441219869612772132514291643839584769411438921199944161866844341353174227874668511149349325211136476173224633934935294488585271269386641521486626531712984682427652626592259334586775724297597849726226562288661928381616828332119526754986254893434345549221443335681138774528381919827817519166769394786156783645928213126458424144556549354143973171631468532471524528229835886599515184593976283912615893777737977476692431612756319522947836835281413129283959184831767193735219349766453886582833256978595637372261318322421485544987111677231539471934323933682328711635244133933321466621763944424879134184278196698635948943855793186835229664141715579837418537883738277578957861775134592574862716581623448832297816825852423988223434594243564545165289852429712646375615214235263556722642741949429524342165133621524593935441278494186238958748645333227792979233537522547117634899349641434681228812587353459525811726396514922633396217382314975534969239442562727777283161273711594866273578221129455895577635576725768815825655161877884171737362942349933223597364914228499158323271535385315566933179411261327368924195637118355657475923511179714782969317338695689126418818124367778618282398725855524324613437123615617666726567719929988649232743285592898694565955216317291489542856299952987912584282611937943774116481176362276112924539613716423685443725146597851836493368149538961417832551445956353734427977546255126111434485245948241767599844799226478759168665441277881668923375275555132855796969779895953996778968381837153688134695914448196169474273165379455388316951447841687871745673262477337552241124939923247266978174957258541114412342236152267226634151199544793123477784492967975262336239467731425969888154538255282239211367641953147378459388527716143722788827359514234389615752353311839373128453623341491834238115733661616226526485111831298323262589317612323589878776589394876118585776358266997742334253129576746555291527546291431576281735799771518868653158952799479347546524185667133697163283541999384525171129458223766888452842155657492233784479154333364856662871919539234283512336348532365626916594467578943991357847673165126955129886541526543592935639491727585332723577184567765816383118259142494418525979529498926188582843292729396371198479134912163313245694244316344528119558341771284893551599462815761438943283174441184561941644756427864349426682925591868983122684613268346136235831819123149143636164664259117793915621837692414959437646178131329279328848687694147611558465747292324677148344643621394441722136654247742458845463217961553735495771143264311261788866576517563244656984778193241243741366993618548625158522849256943598739829742134572963487958291867359972863891216618247313264577717269477924852917181941647672923295447743714115822319559366271841295865746282233538479995485623926356393423823792782511174231113242432376496368997544294955132774342268566947617931755421356318565416452351933492121515261823212899258946939865463896513966885117322128919469293233729968383885428558347444351242553258138956785762629418313638447985135598516894365327974434553492493932423136248668476747655116236666246394439715416197128968448781856587327684193335119327286983584921249113788442136687254851941495666141579212849856862288977477239876787968245422824563874566436985782352113738441263212816991621115417169137978974377595951694523541426871524255226751369638236559527142433927226217921697193883247235684518694113455719985611837593693894442159462711223854838223598775498455214345566238289979789279893396841835297437434292784912493814251794794142181459377213355873757415161423284932467287138764147171497141944179749726778361794151221246437814314245661176753528171318655153759228789599232517269925546696925328685892974943973923582919486291267214617696277343133859576899751879146116115669461234145451291711864983266412136136155252428164148863941923644575114676666582853743357856168542952677331265264578543744835415991142164176178551438762262353297123523143316493337964593572472288482826265535263435165224331295276462157641685274912211697616889532622359293811156535756714744385923936816323441389177119614963517135121649439641858316291994485961341492811259124257412524678158885525854518541488813913521611414716131923169348354362532729219759263192592171473752119413215444551318984133126625224291761414844385881769989818683262375675521347861658979423226713269878833667896292731368211677775394726344875272623862392397959455796578956851491866261313473512564331144298931819975634456321452176363395682214486483343373783123563382743772613468612233748496155789361635324145888175828656116564351476156696176347746264449719985519981137557298363922393323799729111443675293176446949169229656869274598784385121578225186588458226854666662786519631392723318366928981872546159387119384296768686749862795578578285153277759151742731744382541246542514859574726851116989691129799872832321243614629935588931572738325623226176252942464231393651538316771659322822264325215136387572824879899526485665487562931738437294858293391441931243554254331491173722994186737683844428821398293914552196175528556136661258895275469315351484793466293792387235575682256439563626468425319728524251435659319972872879755394293246164191393388534739313518171515351542642891936928162833387551816865871825775422842184762917377415771694645361918357834437393665111158882942152411113289345363517619958872865239195119151955531639552574346944414427147716356179636326617564184329511521234923927319189836366692442612984532491741928718343546632929237116918917284221125161826587771238812449256684659424531436643139862437694844274714217126375818782185489468631553352474748469931492354755143748245684316866597541256172163449715511319142191289753719215543954826239836837156427615813523397935979467339443375912674284668256511792523333447374321816453727792859581698131642645653155991296167612487262332376591267691336673586545962584765815272259294382361384719837129957112573596688869745496562917396339259891444158433667711515784966643726699511919312923482688891271688588594413628949286268347855573971244182565842426626682123576545478164754316813616914859936325467442752111269437112331957796367562136395544557135964231124244162595879247392264913334336177155186164259543782118286138965447336258616352265512637731395457192258323799723188362128316551331212945229647718753939524187331459879468126781454546543177317617114857548235528662875787514813528811362467232896126551388345167962925433954823687421452532428278542883482699282325457238268543329541512368834867615857633845819325923512531431315285922176282422664918987527948245569651165483535799252273467937767532248567254415156296142716121116518836461339761191795817834782633458924684511629149344354668434841584577286436681382874759358523347872525471187321618559757265134718954182588296829618846269136998223474223853147578751543584658977275124413538978964373698522524614694872833428316362756798381877212416712265558429936346954512413194287981518467181665992343475937178554945294226552119571568673692117541525628325485462751974755726173432179315459833492153889158542819259496846275117352769169126529173883284214556668476754422161891848357242222885772543167981598427475426316538735118424639835891266267866945539346993751599148365692366897795147365794359588945641594933871295192334552911973327791511325571924789241374576133671976537617745426913862465253263848293439142426841528222352373656694131749679259772675264768776795569167676218919494269328529131982123856582831457136471863949286555549658488219935952124129535557545197798594354868875769418977159131849463586226667675942993635634589114312985792268538161811139174787135433167564111117777579319745234338878427422496311445768834761976251156195823947635121219479837998717137965929698292911316761346119696177429479637178968142414211516252141892617233484663292252246643918183338453645714166221155563656778748426351242476181621713659221371273867366776936148628581411617434468652117764242818744911148936724164256288656837549166273335494431963689729657667649824521418691255329666124467226728782752767551464398175274813775472441827254438121766238192532832952164981938867847582932551111892496476234842248874525148669476985566326562265536835144559461751656911412382951351968858641372758595633162657539655583338249239347626226584719255312286859433961654835992655169733675311878673429171995367911625667816413642285499823445455414738535782394721461821126988472561166266715953417174378423287938155453822476764546614864386482115359416163813868697183271123122433718754715189835553493515224122315674312339372339739429844674892461595368355262841111782169757271919133331868796176159535897475721514936531599839375916297352256812556698558441411737274916554243627151423165392636369474511425444841844936436859159734387275533498591164372991917833562255288537165182146821236597562542511193163774563122581738612223654547684859428393126152234194938245147153618357221872853577614682112996966493452138893465514134116397412955355611149572645938318467553454721885435278232839464622284216649314863239132357819352839673419951549743699447117269196722366993234117531762816619615832562341244157166427265721628692127151632167123416257322683148852999986472958625646324718918936862183685228244151323462384942426295641633168748524272939891525956752628867137953638865921734521438514254814399779867614155425324999983424166811441638384548761157882493396197197949424341987838923935622132565145429312639136485111312223664121516256412934542783357288312779384455337155593626855432391594366838967342572259141638792646156212276658714213578721314859444339656454418617985473667847537246213662689371487689585785521158168594755225913554911982991577557723319942555171419326269841435375972872772339146418955738199465998425186383647875577763971588873531761538458115722461288153788777566494784614823367251637143144495932417697828571791277579663882278259388149788655439585863627843188526228333222477752891125444975435245189415742736238432519356155223617921239974189278273148341469489376654998512331837256189615428498824731424729537971568314799629695491344975725737954153927511541318365162147534265888194782192943418236448669531753523425794244877612497977653132955266533685641372287295146362365933473474595678815177148922163598649199697243494833432234613518673898743885989452225167213678967585424371465129299159584564748197113976282617648571364898396461272672973747649191523567522449897612482429131849144427716684231613463138545792157847796931921452638688539395352597375288544376867542413356752274463771746172417513887871244982322148642258261195987145912812477622897574695321785429223245123199184755526656863921711593277323214365854882133243772864157816733145364749642178817579242955732443278663518914377257355141899444763669796922598293653814754755836936512858727813123696749572335553374521473824751266758599256924667758783754631837556433367817815216556129251195465943947881148591886343292546144226717524478584119393481945224593265236847992127788437781248464161445447756449726131611226887629496293592578754417467142462283911725974415723429262516596565514315199348932851279636524174738386152411544391338994842552828823258378582175279725224381124618635438143877333857979423634893538576599234384924394286783892394558479133984996141789774529675217283938996645277261238349382429585381636925528828664377687669651129154498645581863949846957192764928557519478139295327133157378665492466616945971657319745237447489415723783446375252723415374154152511262468466446778984856359291436993874342142518562228187229421776321439678171462733467297635516694657769793575675665441342911225239482538913582264173742266668977615183151483547111334926672913275399451754631847421927647366896489395621891333575162115437225932582792621283795112313446313745753884228599199585236593421736751257186474814118216994898913768945811459873834894154972471755353919427783414749751457799916783632365918399429614483267323513224537538592279829775242832549252967677798225333165162386973781446584777872726265761555447843299433194149117113263138132327267199645956187218493986955847595616133528255867769586361414721511167562424232849662554892241197862461361959757919765698212442814344414671782497943245877867227294841149957769282133173694634778394571258476753457888926853874765863939126715636615497422488661248639145798597241442486224359833317237194911522443273572295949649245318657843596941713724745958513946898262216956714711271345963538263879183592164445935675971555744716338589585532525528841661862869318212694673131399246663578467813282946866299166193164353449269599659381175248777176541973312223128384433671888398999726714626543632754187721486189726823329924262956297478295681463541733691849635334475833249593261776982457654696598791789442996236216917672435839944971555378613846643828424676263577787748213577126253377651792718861561925495428458677545119331845967187625488589955913282493366488647149184616326932268848246571418233961655815994574632696162264398442891671832629543574427814867618155285263983354638244354926569937789426342973337534132955646222474455679417469752588583594854322652566385785875721634717137936461478458282689529644489272113514261928559886865464729962547537176134294954555643724836865389634368818295527221793324312631553916989396486551242721887939256341932283843742948981767263446857459968726598628637682537838153694723693424379481473853457155981454658635644188598671598243273799212512443676137286814672656124617511959397224528216844827214772824673796419153478342463342845746561457324325523698388346994169834478263474663353313574835739456113881276354299136635435815147174322913274765163131359595227569589726447842754763993992348673712672966233327467665299137866933873496281968636992162652235816558685611761166397563896185892883466681129415418423747473326465497681498198594835654459673739312197343521675152828392159223247168181727652367228121859611929914673652723559298819252165947492757842358465869387581554622124111238575768439557213949533154221514713837315345326235757425672493552295674957898623989367384178915112718555423721463621458658253855852532577713754263828635269434469386199966727616181632114364241893836429313289965624137496932276134492319967953292732357334742882451126696323133137511946353462376955399595222258667951379284133384853715634623166327346138438263186349562842936831159564117913588479243263272531633418253572849429646591492491856553422351568554785297895385618475736531921419446776343952835136181422577948539612122662821576172345668635329489281147214494195168638486585461783981743781542667124693322136694394767663966537695926321118236621515715255433176114666167271754332821858955592358537154418835992353399155134667241257798215332571242627114568149432447366144642426315318125694659754162932132383943421595827611818751675162495426989928969439231184985467568447525641421573963842417576264534825896455618876963943477365486667959241698724344635541726159626999541491496672953434218681654215161483341821322699683111538896797255165726827956186974972724743537815546229236736429354133191259783627438381345586766664238571517722871453822927485277911655456375727182731245443992213376448311641995778971831998496541853273136653543933725215192866456572829196346962686715126381387571187699276592933713454888798486754249575174786175811256722831691916586247972984418521652744619299843285658269276293463533784541631454196716471642733352575434161342638675474668818841459519233537385448132313293149837919344423418733173266634492286591451577776876725479872229727481461554477476371212522367415172343578943435833382898334426958666484761178126243722836826482189557498525245211759167214242652743361734818793339342139147673222659792591232999915613261224891981174971344536639793753368136312886911686699316943618276233652518719539629564576119543761358544176365454684651924554482294248617148755853756921238229554816671957177134444443448458584594232843834376791431796636558182458374748984819792697423818816891764788311856986896553722953755325682851981559951594353593558121417879479132726592354712266477279799272311183352961699334341586455311192576691123555219415339848785358847646133497225416183948954753561535691681723181994151146323959383791837529845444673591755224273271964834311553633448614547868534117523338711597449574532982631134993961726387494573366528624834212123826428551741574471693692185254167879144491117182196194817722613137593277183655295419344763968611541145688876553912352869491293332574574271381818665586756522712872251279759925488745862378773559584519772338181622721323727836542857881611431756515285439392279369434669353116441952442533132422767228334257515881321621364135796552542488157232118663692417216217714731876623188836329979531151183726672943391218238341362968489451144319473644544264266576317898586853125363847719853217665328838883344861938297691652437825142863524373572335888629552155165599153621892663736221638291311943449178663174259685977237717736967132937686159297984478745348492384627854234583596544527536729922313113396424857954294477789913518726585573473215753994379237546159932466326424267426534675926515133319855242613549593115865447934817741213232648828139625772931534253595364974872154587446128385918724675868825151713723453634936398334529593227483325428757352878612676717935537326351428764499245878272934597867959413895472791561133934546829952315398391178558958359317946668894339168197975532148221518893247416678217215486396628523666372713799221915457123266216887477151631393438399841354515255634579517257641486812963123674489139983167719298216678533178475421692583129927493193967393823212717221267954728721567283719775168454246646345719499318765427413462383357788415838529185168356561271745445361833188415631824568612896898742357488736962881253188947733695311916989579454457438965977182827273374213531414477892246814571852891185381466342651868794171185635359871666585693711373165336143934541586839239772459596279143124667131844112415291382365567591657493428581991541756951997755961225373428685233726119182294744223774983513632334965725977445847759912153481456789248936145931241278883966826255299495725891895518235221534116118792332436473661456822921194169925821231632636478856616819146615743632187596538844228284882893268417682529455189517289421336137436874458976128926823453648552398264464146571153944727486357515215983659416946753251279263919792978961451128751181748654941498293257433427348535531332965577446147831832229681837649891824442569753837947973252844587321479332173624674367236352325592567966267287731881859257851646865131641716616694393464424588699893642696988283313316135159655898936197423283186675171165927187176891256869922415624283623756952873982612236898256834334725616587511833728991282979183233233141775131191911319166515578342927337844262837881519345155699483973873813968618655169311962351681763147953817199851341417146183558883969358446956653694316242198611494635951943271455255482144154198485925811437996528761323791165762865269511593484845495761229447121411148764611445763486215543933698513188622388958741635718435314427349926299625223981231155329485851184739662729313353449163696454134579335488313711684837861922957633899722215918198983113535265665411639892693242871435649839452592298657597522324144968474235388634969398228324528738229118252841578316132551416491867239921915171148291641488535549995616452284529346276825299772429135128949262973611352152831796428773174129543796779963858344676388943139752764965724473255232494171681575151157733442266836123128258433189985712976895431146822159757492281844688423145177733526455334666916773458133493339734317178251811715911938693956658252224245326695117519125311139293768895426584829979481888628689857559553996195791339235364626237675946216931128245624928758514839132761644627531355438131921441416982363137162948793191533121858266312649487948292614268161346385988224253872258335437815272317324294486933124218312849285869277481867645254323161928644278768451591148567922197972445387741865326921476772585857595941642439349874452476116282494559199145561851932321938794173923297964131134353764789241134251584651325171248412466162493725439916633981355671624361243594852838844997727335647649765117442917111853951974417858838814388462397552222111692727727178289761236514943951419859325191117879524955837284651381765241299183221176616523177679356793173812633411722186532955423546189377368811394571916728154263274934947553119725216715958787715823659449316793368587244677326546833993827834671986243857319196865411419643264476722762926223338566495422983458484493276517615418723556953764624426286123181611877982225366127543834548511516821534815924417389526459768935642822746243166672845572293622937543672942998817293543777966212291376116626158419818262317232268771392834791116136346367146598759536848383945134551133754595117366419621287549987671362531949327811114767253418175696741244875959515894772759558399129513543381473313581626489853174391977783573721612383651916653988221324479337929812572769781518459212569723566413727186135691378274132576979861943172114638414253384938196381735814881444373339999433833678883933853174319216144287852834946278825536452385123455391345521714521427246541612169893163655236532615553122343587565377918249144524585438842678818194545489165313787322592615267379725575858731245366221831658933791762495352177986462223697265529968457846667732339135968678382343358447144261594871557551588556434965518294682912462999238159167671134369331342924276645994839581558199761582798861874873432373689727474268638482776246535578838861448619436385339981681568729183283648493231274438896146127337945623812377866279814653181994555689591652555381811443523552813561635349667763381552219419124332259196215831821945493893589399338119611187655165791442139774697281232812682363999441427637753825632843992537598893732681775665737899378151314115111348635726192588717775198816883845349563674749313597254975517331121556797892298222323885434453536275226763264586531397331668591152261813682481145295421357621639865835735216461484393145782436331682679719347859429941527816184572265359939553362516839977684818355196618271511517198118382929917588691481434881354458448762955681169684242572793325355689574499778575522689621391372665752666338639148981928681385142589374143315413428936284561776157391657253684864239717747612448896317261536111389344618123194439329561872473483973336984648839958933268726364311737722631565677758517575481223373556177444142846167429648837169763167249451626785971978426145832431941449913487192741643736218498316933642768137361289146223257532444511112795544975245883796374122883846872124342312864736167971322311363913635311334513127445397628844727894346989833748698451883582664728149725771365376525126711147212285524927998437869495192975334826267464667945986185184629246544771144742935746571189452759739518367222642444515297312328782436427594134579779852498279575425673458126662347289221349956997965672741539984754439965289595755162547344564665648853713672376419223649622148917943739318144453474637418795893798544496419162497832964142896154994966522346863724886325123975233696619856871823987981744873179798444383475963669967543232495822246234362743651212894268879129154118897962738183859976164238753271271128313312727754945734322113432387372998196541861173974234351947332833822437564223222746675724615122955436951441415533514857339416831681839795455567841137282212722641965926873911421852927161155555976369697593447175567553951349976243576189827935456626868741988381545189997419482945517424194661744332969691844111572916922784914518983451292979418965986731648324866668215186442973287868135115276965277589487382661458972153612126189882482262299124527454761541442415594651273444517771217146953532862599221282837218414348172363817619641793679778353347924288424424433618951887523829888656468166526341321364585631351864182459312635528398483885456378277158561645322713669227595177663616615145274958781991262116295784858343975824946751543343333735995349844664957579717527563994524486448863678786335335614358344434763138388915887642699861336235226978929123598436123845471135979446474171728894959658873397163584962886245155765759293131827898523755776511836715273672462673765744647178711822454531282764595772855231327313844917194396441113571797825163483543779837627517666436666119513788619966446159464315153747324358962451186326511667448631483636577291956814611858491657346441463432229966286984332712427267464457733788745699553834893572422429951431671734848992453267454372812912342545353118453531222875294243891534828521426721742775898665614522157327986573737597134278941775986219213712274638847711483688751835966168399462861576476891626613295528596145562743155673799511736437863893628114392523861771187993228394133969383195685238268616435672921151267177862936417993922682181235846441193392181681317132831427111659852267689254724398214162556298242589839444958193312829255128986333829965469576434812271526324555431872229184825638654323544952597913786818162541521452643993893832393273973911854252766946939912315715952958666531141465465993982511772481265495653271961749572442464627658513416781544343789585889973787142867416476617824659899325433553742448848684165915457197297615943812733381472849141419614525413677311959364812212391263832447442352522817572637677725383165155241165196166442327985893774133922715735571436613571869884659143146823146432768716279657531247365138491742392843856427614711428348675974976657486297134931582545518236184112111748896835159515663251683953282243444888472452587661533611751711733471811717419652543584517266786242617937661732485882933422217187664915192754388226355921482567343827172795741325648486825855661278417494322999652829588187229857564217233527994228561986556794939391925755937252152292623752446757735589579438898839446242662679592712593131521312145868317166263794414533296992444681515212297973498138911549191223644491546882336444865369582146697536559982537544548375993614653851863596791931835243129176964631262123582712311725117119813394549182795634755742353433377193729861249719377368267228822972443266583412378921552116511947519572835237938844539435241556423799944929522241139285398866944321371349428216713766445927387941328437341325464141418784317764528377715662919346512183455366972362146331358666762676919968379998341987639699463916597371518475353118692658466218619939112667771398122183118728539789679357872357197478134511832175939186837668265481479575125319427368126224916268742451737332194841466179621788181636156373267221735919153757944228258193983436278172477881754193811568421234855225344912275133518536777799282144132132788522813418235377332333884451725537748161977295322938168298696631226488312211264121229876777465114244648952877277123136626576572929792125275885361494262574378355344626879747643857523873471534869457537199636138847544544563294897654399773126862324361335732687352792586137219232198335341943363293588223594116978995775989652155777343154411719138318571812834343159347517186192323765924452944912414575328787197288655515613242577562469341817891256653823167123486124398513875743121193685564723987453971156347289556955852521433884367177546762141249727721823616133869574743187326891339126753657727687275947249161576631726157271477326228396576125534783557718751289653452272577662769117656866686915134587294389459337823758399122322438922117981381442493678279179267239741923411689568552264445626161551446555217352976198274318578393768335621711981791725333146711521392341965823642877323635277476428244481551974352257986299552487748281262952755727576196648325217382155417552825534339714663568782626818943687239766215347247982922981837254177247697114795198872458363443399721469466332455892273441288374827591185919629213527828941568618415659722264135678945539684671643616822385476468192829713844118964494135677463362161863151852786571461435367889423718331313793124883148315224339336664297926687392813934558366776647619216859294889941161947958692694891734625291218674853588728395548482953196731725267686477957314212913211974891165346694611419913686826553354871833634486264942314782253313592534915535911148855366712369695617842817479112469181992233683838876971783471614896477976514115782215938628335828682122654759399245744321356233875343158362269354347243643253597314965843743299583118573239869593756154283651825279746781654364477516122949532618935747182559742317164856733415354272119236414892133265869274789325496857316456285374622449983637273372744973922293626343775333745913584588215493328368687217289687835999264922779264135216328315351624989141531594922983682432452128666849346933312176264384925242244322418662326323425826924746142625792188255622653851732471353792733451547552725122268435979263976194232216332193248998311745624165348784284894168418428336952263184182743244188675918463186269311323118964932127464743319655237794777291738358249213659225277744647461727629198589864416514634212719774283139529146617936921327266317538468967818687848149729268769241249325359658242855345283816854774613191892629289774526347545753952946769555322831886181476226943165248889167335931516554688722858114763159148955112556551694353614278563743374712566372443138871843684364429126962299671516411962272681324335958795355399517175539121682324984712364239777895247831445256531722385354674687685469276261246647593665222214297475411823799134981953573625577729161741649451117521538428725632821718812963469782943913854634837579143853613424491615513826622379172148334514856714489522253427932319183829597579333153559483518296691543534526642884236755611415143319188955136496659463395523945821171123382842421782357598416532339348918733697913344791461779363783161131851369968388136261655226724666896974753263921127446371744222187998728977194168745327839418147338589647736226185831739979542993282131696799649216156241351632132236562168978574854815473676676424988662955145496832451278717588376196168644116816121666553872133644526773682455218655371171318563914278872151116288114562535251926992819461827952769851128193358764492181591423945674559644947469127562989581328488639918591523437358167844586418859546326669239623476565511557311285938358896738313346925887619423522664942754484849322794771393634369528578411848528882287924984133574422155478273126234473911217386624266749652238832345686982357934256624587826485411567484472474661325535912211752924334917857771811941778751671142941534713698642254133129191274836336488165129899642631677913253141613192827126865195612249313375119214514161967273671782123961249834693473284765359984231234351168186422816744746542615614261312614582345133336755143622255443524434964857415354665239219954875318337738776825884113926243859468982146152896747693862442321624475437719683381888262112742949787391735338712916561336691538154766616145681779227577226891721556178764196377285161637869567348131522478322735399148993426746129635711752425397222561984271336378581283972953197451252422428483322448753734251998356591142578776595722271591187651918284655724189761719125595492482428899814328318412653993251559627284632223913662352617159294119236163568419329725398343882321136569112174116641834793125263773451333618427793216849318939134131437978193533993539764747511564147129937794526555199311692423861361179515363624483579455828368482816994484291418315326612289879191782263643212463148792335531284256247313219472433684454744664577215526493252846128249171253241656513653315111834829552914471313416452433982794973991538564811481891614649426772557681336532916983371946283644435988891358514215629214562483451336393162342458458962217836441785353889929412445473329169518757212535749381829164511693123393925838316465231292763142226465942218311623398815654162726595633846415521946266278481869746362369624361147352277466116258619126757425414833287199857155581858235643341926282177764929412526752511781539983431758571158817672187837717387833269941565735554916821857788181981164179886366364551869771697172367563858116919883334712544948758594924195392344641698783261655172549441477311949533326529198141431967224614652551658861938658681232854416734447295243727348486994279766291698499115716386234552147335639195851223561641287524287725215161175145962386782497225948692946491466419997753776699545352568951516963439711358496573812277344499436622832286649985451674812889193186853866616978411184161975277961785317668273233534163512564979993667139996242968263461166477573657811212348648225611889652361342941252835543861643598826672992428771118333529563196579273163617267786733951118694676825453514915916199791185413913689554157343755139669874257118859762951318823356288839326723227237222523196128713728862999539258249583779919293439769478471422279647169329471825657926396621634715632415585952487267312769143914653536999156264513541791864241358495139789258526231289965459776266394965185192353496889434775296844768133777457377147913916667184144511117979491718584815814475387979979243964321436916237833293154825315443957691865215591777795581212675944116216726272974358326381283824268442174232298546339412516124735338655252623464234854654382347433777655715229916762569982741249676987197962853129988271137191167998929519511154954149835441181223675642123446341837943823896572146347234887617222958745262968368973249753474858369216353531271865226851612293239159561895615877636363336614194811948995911332414536384871592458945713273239624959271134756175971871396467315651723399319135835715593388835862855383376182351762718472394552598222857418786727858429144157163875913257193454653162164979598134579198737537583377228155269354938191749216548757583357191646316645476627911252226397698656687173799745382117585268644429113442591554556633544244663634659247487881264295546787554762429512977322664921141755729612525453457616134835757365983536675645392619117635331572422152987621216513291763138328812472852459343429486621792931721955461542612766524242287275995718234813827886451153976464896524846829759727653113452213297821852745542112411194273791859461684716629156543345853142153233182264183242212558984645381182334497342169872894725859426946995716423857684622262253823215778293846898147988641734956323321996772269773635955434186933577352833385237122262243488128351513942865195881553693597363569995626382549422544851318539941913528331955975576562435656217965751883974178676981871265635462261286858578146374449629525995168994331742163848249428953556162471872583916463386223535785535843399944774861322477159515986477262427113791244479436915152674232251993138346356216393994414546279385392661455446658222819842985312949139137672896541531925252127833859783685787699247666911326622918665813648343655278726785623943329683161883895569521995211685469624111151623629348481598182459741731645134483155671336477435178773283262155235514235225826478215892491415671172115353467521812331498514521735941331534164958853588869755932418553291234127526215722344697486837987142982236373394444338619153347964648388215164113586678448347935117418979422278942523795887518557198574461722846338529569614158441454481662729247195475749591311579547797624961412668896593759856461392492488534199854572951716536163425312792145842318759849843584145289765222294973986694354457234478727481753728217844946224629467178353729131366516342469283863983777666454785599872112215693644473731229267594227357599837327575117962242824138452496682758673893152697342278416365372637235142632191866273238244812681436596466495426282647372585962251733316587885646346519319999759231336392526479597893175143145175311776491157998953975547693983592339268311889345161526512855564257731669581245445838662311962534243449424428297938444782841512247235147836579565682691756531179822398582794571891529136148439214429595247463632231484391928926624596324912286834651147727135222515795887282152897178586515742927927815654777994918196322519334479414231682626954333871269668314231836181437751248552313223545936558944376986318928232374637914189196459968676937637811638745526718774634571323789289422669718358699378283719699267286353719867488317874383938246545648186733751261794512797358447815944764722891436574848115333239814418751889951563474961916255781975996254755441715732385287186882619269718254897487753548224251545321357774688111491761293668441765297124637229158124156777831821144354593621456531345723484558989877714226146271564984321941314283338456145984349419942313461821929582123415975142148224298389424434846766398576288292588789534799541467389747116275649546373899415749384197561124752252746298283499534187497445562129827527611684851722682359761462151437838953958754255932563471377262726614586716395735215257535221718438467194416981426321447338189336663122118732666637412997398537463312416564769858425166425862715921348525766542851598459227242196361138867351175359212721493123965579511523881639219131812759226744478288257113711855664392965346347752731913769741219745778492711698285718985139896381369159919218463891998726971932456555557425972228621182285176866258392565429542195586965939255415122934676554846899311596953374793176857137482663428732125569159232883491917716597112937571868973433124793414723693355238898529916638645442132352947127792133644763131486148832241688654983416262786852951222785458988417375212233352366168872165958447579165361525638354459627997737544999521169242137618577237473939668389562196961633111227973741169372332542174115668476129624621416173545665987178254251634622929182216227346424725746131562817344782289555579489878221322515857244625645721853229464373257335495786267511128984127556979251294931836994199855231272787136931623435167668356454134943591536356369433346247867731842412354556623317139389833515443826654215419733885693293797348527758168518135324569327232484768992129981686617236488987235165389188378736264638371432776117365485366945227573829449516569799396332591848452799259743332467114824769276583597383826596715895439195362867291315429988273972118726661617614863191186316458279338997155641944373935297924328363625127965447759382576136698441729349497193422545414287678273323964113663327342625462955843848846784591961841234112395471998388219631528249413322884239753611384344934661816613246721628911369979771153365213189569846327514944127182116358873469233258316917418673767199125966285261991888153685586486916944934312984178131635471734255384254526235754462122644431483954439266753529812127475482594458941638825549225872493413131585816836937415814987121146828463975583669199142397861695568864899346438184245298581934722697159172521896683622646615194995852227586364758428658693944616787372223711298414796399594633923741758526579711534116939369248253918177784492166549271452257163618568254667342981474892922714131298765385214994214176342233923226674739956921725517554848111345785667747127448347477349726881616761712195181435788125873454683621577356226264859561786544726974243752444993666135218956528239133446719655712725948892417581531813964671843517958336967621725948851991918759272554715152888999492428583867998166377318798554335182578193275148828813958642934846639832647985618678295979816345385466482993926883289677459218494328298886579199922888989646653134646952191175872653448622795957145682726996142895517343759171412767912599432959365363266919213545851348774117241355269514657852841161121791841241728271311621261123553839333123457157118794947373313179475568971216673388788871354248939459417692819342477197253714322319489233227397528922611155521439459239521251758478941178771334128926131828831716239993467734664248641432422933247415647696438288117146364416132325783186639562859316491761311665191662165413858366829844443678565798454592237117651294264777784279458963532167264398111627113594541293299183146631321917544753113195284134798298398421951637387436333913494755691521448787266751976648623221528269525154931519875858895915766631474211585888259659472559565468658339419774131539731583957113837667786174196928439254484292225646132273719252371241217348145127581339223481163544798165323558712249433414986252237975654986655757874139392551583768816294619111494783785997221426987525487612775248946121236825718311679659993698324383496738915573429756949541496128552545827313793323855293381893767262128642751446652175169272548495669239916338196988654633724168156564419198526644815662895761269535127995869627431682419282715728365694823147136875566381175843363652654596422774384133144936675644863619963449821173198375244781966213332753816321884345349414167483781538926376569193527314943327944796713776149372585561283867241315231658359323535535742241454418449423412995725774447632944529562163862175152579317628473741545512825171913942576631846945349791671541273431979362111722712945455148966749544755493342645414737119754354485237629554724792545978934732546267398577953613594988888631789433619153794892953456625282114478568427815451631642177892769118996519449949864431121647235993469426968892278394415228241276887977682778713222956765866762332819157174326143653516887251111113623593148526695234232835778482838843296575659577582936762359954447289446489955213597453235643597326574256237931325497888827589456143856179719847219685895327346425324335181173839891612763372421746376563454627338677486725949643297413973498131938344286748849912176664373887446329916627163358516296427413843327568411179913573751384148936395591157123616874163136692855227967234275341861126477765836567334233661587534888152947652912911266828729258525865366121981379818559752254183565955999854445547455967968248145746121129281615351449598332887767674817341771523631884351149341176988511117572556317652457181118453711366148452379433257861124624939772331813961698211815154229564292761443313987891828411942862649785186414756716366876724781424254561777332179667733128317883675811437283667829679598569463514926569227656858858391287789326665769487761941387627495997214319446434116181372331486716599625196952676317783264691387175958642116291556871575362992854481468963767924146534561651475672942187147891138538256764554984997252461941783428788245335521183522588695959344921433628184816331294139815167859214679435489888721824711611279771861612659116732591358891255878922476123295155947232158538143192365446923172399423534458232994971452786889463459136386568389958463922911523719984473471859349526487176294593255784121814619791998295886263967256563935599938939962922965794477558688952732568136835694623243316266222289312498878988666922697925325966239531114511956366243637395441173412454561497732132953321879878263616758539847499791373443882879384759883647394447867267132493724133241636794233447968689538993526173432492517699743444847576386491563247595537116189814185278513567611118944666328182371946358761774626454845989647334747615534525669577637656455271385552585395239678942967361749624363927766138252533647977743864616445783319691596115648651479284913563189275877652435371479687815135222923371879612788355172561547951616197394389118328284139212232532292332668115833471149834136919887184235497754686643329928214959671628932318657165946141762735599341551972151298425593524434535178379386862343219596852792138956638745784776336826721462943663271464195951536293398667752539427235466172486524553346712775856194772177717839944392616591761346111861759257362866597165322957412567734991262127414485114596384826771779669735515716768491937895812636385923454429824715347926211659532591325699182179634467197719993657142432521933281717474499669917126264337313333585198713382213385658254228161538494269564548597957551263216816247267274969923824532779977552735668138139588866171286151725885478173536726743811573138723373878914472684622731526282426315451695539826761264428595233388247832256414895748583183629141455211891156798934231236326756356315488148565662196453915624923729859646743312451985895977685688838943549149979165111254522383741185832557721425836759272216393994569759757151394536365834166152345385729147324253275933476316798962583399878261892149751181562363334279813267629179984617977776456161748373576333738483451233823736611986253973757397516322168814414814665421126911324642996848659729231349147442884785645822846136846878786856632819962528762925685384528977255943548888698132187746746443423529733793668977135424818382323693228237915214925359951385886933863474391477812431466969116653712424649321518656296118159783418161463173629335986679991532179873567578948227858112197292826443328664291772961795849752932582229176514772649469171877847943649547645299536618671918576931236367555232369665651635722433547224458175782941999761463991373185429897539537321162867142498272598935961448789352145866423845557584569838768645174274946753142139768718213239793724711574142415726291782188121953832461975742174542784425943545244632269996132163282442925342358535484537158126483669154432258843623231254199423192133992142874748825922259495952713321639926422423157627799258556135311496589881886941539294382338713927938498243199634684384395326442338988351856468132931278326881612782177412629621556255295715889213369924993879942173886321298923934715448944413677958125987654531148128352559756555639192282139466973653558947133721339586667198641841653194995137132251917937291831322676637714589875869371188225781753527241951957187945119485753433291992246233684551466993294948513855877211294938966714873257593489715283331158133757533799898373674359517562425836261269223292387559763363166525921176356186686297162916495783387715591576129974454446176344466741957641827385871316625612347688281569767245462248283322537422561281943263824118679284396393219342818496878491174356717658996632566341988989657845574743351292417835459785169189668165138238169372956163692377655423921466751217599125773823633713125531475926146614145534738765562221721223329224578238589775227279591398833686861217424183524244238984112421312621678314355991269941823155717668491639173655184674344772923454741763223476652423859181656675118779682631833112497462689515722842598791884527874426932322972158499959693976581592789277359238235573192324147628273699151813473856725685741875427918987136576431979449186534715898448625799255335882292662421114474915333491267399272451455288112747636513731799811376667936123393297587552874486681624611651567184733477179976911474374197917241185133431442816128146944313787593514222411662966695434755741713545523441228562538876641424212264758899371241429464278131272669732428125194335381396744779878526192268283382583273468923725229747783818782532772152727977982223817789639181828915523731834167495811179378853815999121412193875893824434833587877513129568816452382946252546142642489597172273774743177353198123276211778955871474841111713965955869444379216452893633491269721712159611745196315451734232768874984545382897543567827145815255951941363364263319434162697963381418427516487152214454595984527528382525363843348567643572533354125611694678329954929563479288267575439332476848716874941441694166182532568515856354329914779144717699959429871874118433643235965454923963863833626515983361779227422665486771333937461933476276183782757641284635448478966656765578274342167468467717238162771873121325228438811589538818216958526218195837742215355841493985699434571519664611485968352991571654597858352231342382972446659413345432388567599892792613723762154452982253961645151889244582146365559181781982216123891865538582222628319797222511153252868134392754525998677664382198851536326823733478529513412475381119516654668252352542446428161743817167144615848624167896762733418938735853936163594598735553778874149354232336167148361711298261882535722244429967314831254466251969591858321925196225315412631579517273231272468618443563496623167297663962726217837687929988858281366191961235658869192249463839157519693685639738737913165794115824494635599677619625274846469648439593458881749654733161963663874472171956833264325443182822159696311998141741555262731842813231191981738926151141592435428485623273935162958913723576182575763745156713635581449327246974653175983319517556735392268926982221862473977333312477475335571382696854912994439571514282546927993259143226868351976393158841471719821882723868261187852638368226263454298325797381681753822277612441824443751955261241958151756952226235991235569454772514341356275742741732476665259721853267469999198565268392237843824323937793982117567342819228245636751651468216538739325233874344248829889184475282315799779978475517369658495463875742587473339537488153439254987411896772417274568695443434473875161741771919993123137571439418581159424713357378943177146541377975347983993229893324411128142473154658364276694198529818522357791427375477731476598491535344596643675792831492618465354677353985245691945622799644482561437692655748187541716814159127538139379568927284367147957149995382796258329714521696528762214649953469264225815864238679945761476765262361968277882155432647783237586512843311326642198135181576379164887267741646773997888839338192534828348452185998929397818574936873369137652133471574955157434555461785671868613481934899338337452131454247117286628297799468615133539523774959316554431341233611817819395933122448146129341581799232273751399923385281624475942145467147585287817421849513187123898593285269425612335633714799555235311281779364536699534224545298764534685193441591873326419536947994545228231511477427123811788152541695342886674568578152525167913661659626135743973535661256724975129542841319553853127637992361543961575763122544954676519988121438911588416219242984291957134169489392216372324167981454225793966491829831793994264289382735512733269331741169111582387866792758148157938229488426178713679618211853952379826923721179629851145768571295134157453316478121274964681579661946362863287743988822278556883582343987496634227747986166787934274889114575941963543469723142928821318394369514212752341132439144741321196632167393548148433284937181354599524296378593719736834168397752356795679278527474724564159133853582224146983525419277192132544273416386355195792231365261648547456843913422144571532914795146391657129435492917796375155928512415731122241768327758613469248333472567128113731817223431621915735633343851548119597455934473154626629781365432233886493261522765492545621576882489155755898425674915484192793418159813898616814376842961739491211246162138896749231312816484557341495879359495239654992387415943896333272122651744719348749964141789133481932758993332934144743458921255131112746193529632843586917723578216515611241127437892648316937281168966226773669121533549144881485856177239221826971268511147563186679719168921351716188618316741461462983888316624471828491741795836341641528311851233391616574356776482689745266922828195694566558216971747386955256743135543114731515433176619983315279788595257768292564417363147338859975941797329263958177788525111374875276176631259511852919748725568572262632835372414441148181625325896396965556148452414742456362432377948668635818938688853419676594669413683719389218528745338281173655733261516558324275663257284691269498423786624178172186437241898833657256975378582599256369568662378679927678524113326999723625611545867859395626834768983368879241354929823551921686447412929475611328262692834979935525296532878133957283536669938536674279443365719873216244559611727914464172581161735585333273273772117227571398783519292937298173253341391476793933421177857924847187542825145848233562184477979655921141256238962571865361751371828494482183571415427886587626828114349252646491651671232994878746837728141699635155464862436689244156186245151351987781145267415762916263935865377175281898221671174224293853132623419217891445425663767788597464688477296786392317778227177784841874334533558582116284592423923552886379243335735916166175674758522422115571258563264716531382232178275671838265277137212633249418747281242292311997534871995771257337321638952862731859265656148217798133213457782736925765941565911338157539248932663745411569126557692467624511145949827782111228946758887863226982699975131862984139419764416435988688657936789147586335749164135654629168323112398571123518734912412162834213891223544567792721793284716992767957221454792449942863383637395551361235288536388981369622885187144921672255653427392966665654995439999329733442632184614136167182354286126267822711377579519142828128123411337829371344618681678839432311127284894919948355145417234177763719462462311643998761376833829328181977952121844925939919227457234667696493575169119194828524562568664912477323747265344665257845328242456237681825483819238654167698737122584413892773344833361776643739237222431189124283287426576946979379426111494753168261715247914314166694491644848296747928218888339428192799424964497735496969551114381583918996298289859842333927386781688443543264715859923356818151943922119237179795792162893721359246398252199239137359366759817311312892243969273824192575136121698138311761536721326823928567933237815314545543921656631274518162115116749781457776362227614983638596324478674137298463561598865212822539492266753318327169521464886383243279318157662341149488485284529311119514153118555677937434562335896365553791124755636931359734792533943467267519575254989416411464825286275437123242753848213146373373895539993381215853388311211719477178676588743221635658965261197155954376183672813627957264931858594753231942825439674516929234943385328721336776245134625295341214724984761856333623553386995264794418195595118181821745813237264599122786761134225987213214311216116475525427399653526881739151585518897324614539117932647953785626585615267663754412427385184773847212254668264912385622859553927274829534157243761715817783749167282291794693275938956977772697494987148742314545983141891165951915828856287456125826212314579875943983849493284561756157985132414731734918581717899911439619813435283912274741914672414743432956491317422643362562328681322634966458498694862636225718516635991644789149474379149284361263583778965712542155666415976975538931239183147252339927717725527261524526659688584669282942317942875549411912979365715252262841513644423613823426418829381812646853817311191197848769194827868934756599877828742534786112556751196916596893577521223486512125618557566356594113333299179172544366196812548778118218187931867966721522984827377279357754816378946771412583383255973595966917493286529715513395321173759883153611314271733292161635317387845218839521297878897461219622316351943697228274842723234192199964653246693294911972115637178844215887125646165488559152776282554522918988357976832446962261387867328154374935687986654677399793692243399133555425943832142433527936537369496675112349188286591155571671521396924696976575249931243893843566453134885761459818799366742328945493722225285686794321871118653129157678418931121831753631149857897139536494615486155623345539166454838671477783516414362227714681884999273268536398743276761725857358353828276295122445839277926817461851113745915957755536241241145129531546185368832899683259428612995216689356296997426611818581895516322636912492171379763659261922554282875755471766475839529328915686766143558482517958198521566161165272635715729515972283741434482867543186688251193557916194327792265546736469229292374746688958376871844514297271525821996275548162259767214328379498557969534348676736635347273557153818233325231591781753976571541688118884178212291254444128441811585993415911759957598494432184516238266752533228567996191332635681114738515471317362697821154144556631225677631766134216333916142853894992873186729268181126272217778339757548734387911883261826464462215872931848944562395221976261561221526142954759336379298752648148475787135513139317967899266491252174135699346828327118525143683586372355241716256436614269872528612576551982994949961855861683798658628791451894477472245836126379758448983487422795726273177757196364329494852221761258282723413815297562387616386144184677129692967359854775846416864362948929727527197517753611393123676718519279159494163552235944615713189128134728972963682484778584462381496349737624643828765242619987358336433669213797431553129765816293533972243766687325351611134721762659742117843959319445563114863739746764624934654754827874667734288525155138863711888543327526598113517722126613263539364754922779822468627858398893786448391163593146283826178414822255426688245739828418898651123811622694977792175631936521735556116952689453624441651422792253481552481516534147917635822865628144433221661582221259894425229875595924518993252834186528422598448673738352272893423113761426358639521846178243231542714174982275237287645819957261324662154629927712894795881325174787925538774171155776487375237841898221594528996336285924111923781835693273159381171255227874231472784459984924722471127679392218415222888417798949354262347729875731996975389722757168161744967249398453653997336468715151411558644127852388332254811994127696526579885449465177459623458259512134922512822335684195347271428979864548123946967499362489964171281138657522197215245775237772732197147573989635644946343814111185543984433843436672333358145446444798685919512674331331813164352417484717296634211354187972125342498542994348695955564831733449469345961266687711199136754433813957575227864284211757141779479219186411422852217413651923986572212121464688515967959937426366819514248729373947723627992119384376338315181757734512953874149652291572431843777564162741898122795794767214378813283131242592828474236462264393137945512295743734829172469873583276143883698167445171982252187296796846152157737124769611599334494388522823126598761286674633134129296873424558595818693444237554331741255997191324395849122811435516844369351193411693152261516568335555772539358267444163126124396968496724359257812375929194875536953562834615919168816467592123589136653957921931261763191232732747298596543899717466194793938411592169548454549294367853578311335454296814963147127425472226872715254735683242733667171543129586238785947269154437963638517588471283992158745653143412591653966953523913932979999521148264797566919323495526617833349239411429923988658611661428287111772145721513591324834422315316769349671769816891579125289238191111476544598678679547238575677164287548755559897574154771476239571164315879451457543413645878632541273762538714765825875481755134739758722733874889782261221533348945657431767739681455138228546467984163653473868216513144941724865121867747562144165637643716485292265223126535771197226834146112783246374338665954927579844332143973114422953286814656655199986298293181715229618384465368792667131238666751676415562878181212618973911311366165333788317334726295248387366457166817552948227239758715369413276896483436336646127935324263271335621899275167347413979144966251515315817975654417121294355193965644612287714588438393915242941741634197352851199967472953375177796111613818112329198369914698519257629288187187316892756971684962527112761742779521543383694855419455889871755199981139428479987733823698724227883739553672158376373973893288117223753878876791593563913224317557748135858667369392537451285487416271993178581193114185697237377918482765999932268919338279149247468914722553281655472345829884193971635366666131175241217394763296922541196538664465494236181268911741552298348122998567282222721226917494841628296362271115272461198733869826983985181283142481971399937161453268378271266395181141944869333819846218955564323352492744194769216586532824845212884468996969248884199542999552735414422361187567527649886711511183518359322176646318215991123596772245559653852915664551439288322391844347727688922513177271215523572742187611651882939961611632198848619281546323254713255249591826383273397249424992746327884993739132495935683658675291163819721211256493193749124392186337761418386352861352931732799342692989895167988218532472457322191323251989918727384836672392432547618324659567447876163146326622577582995432974953912271659412336581222218875921831723151147311815719833714639624311699742558138896739978237126973582871136536754714833423231361256181216343531133329833553293256275287721246281565336244197526157571755836758458243588632437298645696247394789997226254574655398232278226957926863545817695353994652887391124729755976563157817543787214761324477889469166185992133616628412343794615742426235341215189895838212315595448813692543419332142995758983214843915677358215326998388876144628224155322618414899515775359753459954829752153221347141293551265536717844573347219863546691422396834149921728812613799927216451184182535366167235282557229153235424911144366578766314556135192952984716534961329885493735731552969544787859325822222375783394691266771759935785113959433163473372423477364698236591449224972888946318112597727553699282247997465573453636154755486276875475834523215478889221414147697991631232945348677894577173141924784713264964951136229286879218742893285596357726315158274115297585428437576151462994318375986669519996596921662447441593167387659136471876662312645836187229996837131712143595757745115577911541428126638227279356374464194266423973561479129191765219726731254469227739242441914476631587619695572299458943436542736654723558249456553116647438811549651446895126533127298735546315724468827635848451218237444882447496595391287568641438286218184531945486177952228369593784962557619411423334968619164598577626252427121593141932595385248889273767317832643225926358686188213442478211381369268225729254365718167542969445823842215182243973477881451285692926886818515257259629549777194998579971125579468851379138264911851973245711113217992773839957788175362444848876127266812196894767148264147882854492254767773651842739898224879891598633257435233535544464252491613723155234544278779389915422465567963913573693622926813112618467844852451564862758267658625321158694522714664668298618165618411353744357351661613369677571518559346465774589753344158599436537115761962175754215281235573868932759316657761265448782421428264874627512446195819842751313587358626955717363371711575481682754917146551294312773894672821381928426375811815628673931699586251386865341348956824558899416176225172653348664299736952267915344321767876198727388256172843619242228178713962123766813583286862385597641354642531874341228994322574939564679561272529321342487212424242786856625625747541174543845221356717147615244288458167356442836519953722749749294161561988676719448643426145996748642461984967472837517888571972951176643241819424567952461199522291743116116669438361517324797845363617681868579664358127815255183125578683449372192383137228969585931629643447183661615647773227591954383149245622896397415567264713512169713948679287838156151283471269743888397343529944344689339677774238631152657987859259649744748992654525812855562121829716893973654592324656528146312114537258224216182141844338133975393159611925364416274121785711636379377821647658278289474873648382749835624425735215513931165461355739632756786235471947311592544746352532746628367675841346136843557387497454961659168215327311682297711187995572123471266419296571736346831655312594357852818256127412964154149931624243788757453358335891555299979319123873574991214132411494781122649356268193916153427933936261448128361113156112165415235268541392347974581722825636812465946818464388884797273643932218366277878163681618569148755641819768532627665699869527159898532675481689818512845892578851427692811125786759761554343847199946148717912872261335494212366645338446658438888648446418589423529239181518755741917879948427711234593773793417631245753867753715746982188487116964465795814349456134463343967654931641431781792696564494862453763412486821983264692798379378164893499563945981262794572515311832243166864946661391551763242943553121578772522132588625438516267769663289343291338496338148925948431993923369723322946181151283636116654594596148911587959336292458554195427755561919244443734946113232621323935411842363999956994319965223839343148658315115419153111593524326996658691352929978991542547487742576658335832534217747167588714639535348245647157587415284358769666712811456563392573682726753694288986392569198924183492469115358434553679125412699212385985116966643348144389678153911625937458357218157119361244541922891518987899193278622582822753838152159265988636266224522835648183788651858137692293865812472375121552853856736191958717511235721364925493229937231677347693375468465684948881868599345365754278841363675177851763929561938466953185767275511563896985367545948871872846375523963131478231819381876221834523973113231863257319929617536256758729783562926543551524199877356791126454865962123258851919546637515279147155998752295429186162435296267419427778185629439196743549711742333594871785384316818246621129214367777631585193334936284328437836394326324775299435235482133697157953286529425241592757817911622414594478525964836831148943321936538153693845231875886342776819525889345667114521243349221186383418875661445328386215781634138881622796233888963717122289445239384565634622164335638832474553476422278232372596679985118784127415645842848385944658987974576447625994644391463814873392627323579223115478579238443911992346252222553511736643961963254165823675794619476178284552844349193995964112198324581926175881399513946551731681422864436239257628696327367936332599221749452952634951171618698681489192637988263538317332248539698754148855256217966494696984768982513785894436485116633215236792917229958176189735615486216283382611666371826388723698696468823913941675864997614577321932271259728853256775243113632828288196344994972785386858567734495651448252988675964432981244325851346113199299432377924733971929565484858128187647257457195254611256477175641288162254442682385381216991141939181286259876841917287157628675417423233551453713957916343751351567966214152752932431279871219615481233746789767326614391172525881689738935996839248282369534697655929354621437592848952821349115575398984121171588836312587239955499514481431476715242486235586764986314616948317735211249366712334185553542318791693898294262688362117842695951728524568314613459974358734667281418927749427437739271762567698841163222112745434392896792412461163495917181122225368373663347241236991814888151862518898716991838596426499221762633264626334111467744465235129154824125347991394446869165198264461376668942511574429664298532745324824832282345345544273179583349216644762398177512252438188519721671444762219688281938711336982195872247686915376912131273652968122334911129519475179422278119943427685196597518388139637652163896934116813591262743614391137854963416434181313236277394967774146492762185455551762231681622334793884897567976346238965675487336332698122315352242142275385727491613424563536776333251882646151375351832488558729127983741584651868868554568342242737637476437491369128274413337794873536412525324692971612798641455428753247262443574145698522127141759235367243718241539966685717389637681881742595525233238733355915458433824565189588336451376734757489833527464288438757844842986254898611316948523439467845625874113366272318414569327536634468856834245656431492688231969458378619317344793541716272592544332185876227938854544911353746243332165184825233526127656824946744711897211533381347546193263515236772496177541758442156187685385769649169574978633411192133775552743826523529483113587273642954428859142193144765984625242533287325848312666827434165599781787326832446857479816568945517961366454651146222247432266278994113681698496516287633353562781298493341728124872328125612527855277764228358253326287481137561378297382495292845774539434733335855174628221722563265546831749771123459433536686361374547569369875368179524432857277515752358211287199687486663226576123343173173227133444681373492496726155694258629832488451772977363763862644721919319764126734541586146963381723585848821958952599593527623672273518395778785967215461147245212634214453467722379129682617352974134585437143163868188839651478627514364724666881191159369215815183858241728872298776381387353217728549694377268155754445994561129717236745833357371914747337771251657666224515392225851574463651762168683482283367249451734282229651515852737963341399421885221617674137282474612466883611574716132611381744356937185766657219222111114777257839942235311227928256217441484363338591843496223996753815715635329288763174247474111528981851828967372634538297719742927131184292742926235841265315684447351843424482111351459141522759274332665442675279724199923165956861617638612442689359329359599656598973729768139314763654951439931198271623632244688575726614317252189138241827562296712853615799483564266876595642255557961782411414796423921447322235242441793313493791442261383539183718354822419951169233215922576546896816525153929116919515134159317839962869843974276747847382412534498615551745626917993735615222864673927915171622865332425922935781772752969245699728567592361675415952781893534392224871961243374615738876349363886558322174231983715754872982894519973982348656547897226311311154349447949745742667298313746943969125148883318134328917671643556138194242892247266981736281781376329614956628714629163437717876947663524588124533196581419214511765249951364873964311721746771318132698562978974263897817245867745342516619252814526336951827932294345858329695986187129384172242348745424565555293438395111448371687373585928753424978364852328985147342932259983566919173925773536871713272971556969128246752887636498122437486267979211876589495788631461811683573571431934265239719182582815928484629975286394779677969976455127827362312145882721661356379239198291357674262596536326672976725766523773526634163277856794191324817513695977389865183925322891455127712272975173241232246541399336924617793965622398287473482662815392477365328572294258184988233122223738642987528318992476191913155631791864121911518436753745529477165251671514129491135399918141435372391689951653243645453245396412521456385829768429286434497563734914333587311119239634848844175592597396468699727782754783275665144433417196794232592374387794632393499195618952189823166668226213956247128759784744796947394482833956123522251183518731414746394363357116512636447788359586221522316925711353849427756568871766928874933498632933181624132455687861519232196113976595457253768493113287811361349264678788635715225173896987788847124747951863496271825516481987223337428993237859854537622566326691254888519221693164685786326212856279621613861177455939956534349418856515898247863324888266336996216867544471292454556822821539299141612462435199858237515163246737328982239276444669646439584467122662263534594697232279288836469318538166663446519121648733339912955897846364796937866419381719952816912182637492682784124847881427441488219823915184817489565639278524647376438758174252289683267987672468374693115324918576415441711194367425788837694395485328766122619465958212787241463416956143686533451459656656141624255246239954528752474355244646673154594326839512445427847171518873613964785142662297399513644958432518426144296793771558689633231892939585311296464135644982944384134248597734775789427341344852815492692289956722883239719858677663566117837175314826671684485668236223366772656791352315111391715436161243827139377391529223232525549111668459746417918582419212766843288546159129898836171289429948556241844525247485286732414443113434475326488193276559814528786736451916139186448146183867131959113739925711694742588298174756162316545313264232471282266196871723134297412661651163268894487262985346624163358796155171731584782538181114753785218655561112848531219614796847923492236331636354239984894128571714292614766819566788632415237434382524426322283758732464318621869728651777797613355673453617452528895675384656718333942368914481849716767518287597391645338623215779619352839678488216593155356751597312876195162767135782699817226788924831794727648877153959656396484899931834155814187171165438242161753135619944147641927477675739311524245514867383456245889432256799867669274199839446927692217759483172565996668612515974889123462738618778486482972978652213461959478583955835987582625184323964949532669625231399742231988219859313127353617663271861865318542135246741815165365482424488932435542498824478413651267433162271669281938236933328973729619163391367334741174828175353372483939221116132621875211946695137892657681542795268918755518752817659718744965221116979518532783363145513769353722765718642939985735981779381446714532227871997774446352114517957266986579226623718165283752839227414734395597785617119358837696633667926351324113581764247283667139391442635128754445836988886317381186595142425458938183919126578466742558441392871867834611465636858759454141176649355568313279859631639668283345811393372686235635993468959813958111774633448189475676875647796493838512283827635444681387724928946656678551978771967272551823379619296395179976125195356714791483922155481131531411734335872942134473383545635143828152573376794529714762235425687436957821889119359728823698155749399224961894463743352581126615466514218358642137255331242344514652756259971356366467799752682521561778552824925151349399933431932424877763943869567491212854119515535667882847454575448739492564681845528463326872538274882374728252658563228118651959571514485426563725978222215743419446778439357431924124744666555664566855456754914921846443597643492519482694444711165948675147981471373762434749751157766388133395937119681466648995747741448626438167379962749181287847654113486729383397552344431916911522419963419947825992756343915152689887698996111142672461762832622944482315148721793771442112736452358494166716863694591563218649561951538718586445549126741135351394821225418315312293712764688787889538852387349594724972522674357991234918828385118988229952227875527499933272197991436463837899824339641233811968382439241421853419294563234785955475592215115499258796377824777462944391838633729191335424939671982773423883392515412654336453339598665961522173937918672738477929618622752946965572116793681531274829931942617693164994959765623567768873271484382327893563972119349263137653758145186121362324789933572283679463727974583687729257614612696381875696177548795939596852577276528256275521188121886167237242623443467344139242543155778795163446397984519248349197498551539292674158181912324312346131875649643479795356398351992843347428836633958186886836922919664594271132258313625466648352332537754752938471825716915274617848228812626133453391267317715371414445758527358394926593614833387574852189316977378113429166311866714249756151498582697298686935672719793572652548317659162664259123629319973268199682825641178675964178427793149572521979591514126553132629869119846321196857558327392672638611165365675892744984873956254441424756717526824318179898573994466915148298551728962369279631432232827338391893117226316276897425165763844633388325452318324694914474558174697818332878579968259594915434713812564433354328682639236673842697897138647235188644147573956622776419514766853345325298556131333526751933269823365123915312222351223168528722222154184935289152112966115734942535337583748553749217435962897571449834875339858915165179468159135314922536326683252967254476974912784797154153219751183637419755983457892341193846159399282952365268247191337215189593972473631699271673144442483159545986917244189618317962159948969829345379433888383235873733814327245284734743889211592174277752614521445243678448769472737652534135225797782366426673151178717439765149199381819656763134538673511991789219446362413189138337896568119955769864481629291642572851843315283993171751844852118293923212497598394499266784959967153616478616712273688966894913667827396473667318482246451128645887729652363216737667677675657734265212177882841499188254594287435288537529734394352723749523998223686641445565723781691816185125415425879156812474474374593613825517161533558549755212132229633873133862236544635385879734939436974144634466252429285962195475212264892111294624986277735774833197913194626828297111224613785464281122226753415178783773256156121247268213341839766218769786276228825313364542462639712666931916123184427699543322231342891482476742897476243271554328491859924932914367226222318229342498663939375863977968174721317247816772493764814767738486441651276696817268862863817122821398652151419822967768381618436689737797729133666242386239112646646244277411389416571967362121772818815468227342454642464331511642468933176556749257138387165296954353431311214373466234368944515994892619849315978785599314216622848116639699742681958469267853372821367814278694658579289427124652238976746429944897912668313625677747532963423884184329627791566412634354417591392311163747737134379767712186944991841482954143455673985443865577589573737632515256343773234821197134131711982391571472191685828124174751649537579322336339458348755153364725479664433236172577428483211827554295375498813532619551722877296954852649328514362488553327955917377414289297776311637714388455993652646972478688996137152619373746675913937725284643454584183943455788633192128683558433998172625118375599595213152282465726165387211849953162575929268583542431487536244265412432636921133658694999692343491412262176564818211875744767124979112955496368827475658882756165752827319145919143866778655985123556992968176889342929515999851583288729571786313634745854317494395174334171799723129848733479547686538695114775468384325453236688959817211527299749164674871948789775412756378613658481551274977124978928425249344625951799711693256183718133827518999847812385574354497621728327993372354184651266246191687423165841752412973424838922446133518612688429599567423828513737273545289263595148998625262658228772244884182947662544984614955182236381264466241137349977961722622578333295415875272171193774155242379346456536944376626983525222243813186788867287375337728792811518376433354127782429673992482348428273728513415667851997598329511846866636865659797344363376119688919451195128238961751548793722322817222275619413139357152532947578393387746452542348664867273879468416643932898883211351798669813719513219859638262511438124821194392933791491418854583283222641394287475391889211733621745234786238584854264162453672868744416985275317353884866267935679882143184925313315647721751552614275438348931163663731121673941689468458611565957827286694447448531354668938929443952842285982933168918456272613266218934355126613473329748122192179631854199649963564446549167741777997135598259215755963143936249687374341849466326423557836453869211768296665832634124354847511728998623653761869994992539296211472938242171512991176979297769495731281727648688388231525516755873257122549783984851516782373556614442277789756458523313278566136191738875646346894981376359732317328278557342779658645352365451459954321929142145753987372849272848343818317267584545855853227571783978447842234798753318443262814243192133864836562437797527257414648227556889835341275635945887391582311467961461622523677716142311758368719594443994258334259313899875475955415276157315563113277826971454652554729475322931952842884491625399341638528328478637389392529815671364549818826615542526592131359781748639732252933925612962976137273874471362187233579483851624297718474213863934345673342874647264632451983559394489626628663724198955281323936418721817648554933452785157114528732484656384572988615655612137375263983798328227223742195229339131472599441955378155386175473879982872274633646785722612526117122832689641542133351332994379237613677642185478473415119948434525479351319791163427494335461357767121398519833664556196484619238419431562175755229443831371323154435269511397421523591441199217535258647245878423631786472314429737681484238543826996587278317691867188955338212444413268858919393817342645695223929298211317713995257328162585852464841594341249389144891418283326532289461242857528218415844219327811528111915984483962435733267121422442714447697592246346334586323137626283994487332464759986667663947983414394825173771514955522873228266889891617398698853431427147823926594271331823995172611532841749491457466694941749145119195625473572591687761196879773246975528266538591871376651356117895515437485777162578831714811131663357128613396345419171131977789739487334226615979191923858873961136576979186381998441694875885338343827162361952552359622985683531791171312283782246534653457159633328157173546573413396223419133369171575586548744563626496951447291435473546278789464443321448226272616582119969765122126527722731588492986213262631275623956851558152182835855462151341222133355255392648632278611559122797194372649295813155474734315493927993421587518849281147928395319911776844135471418286644538592823745889496643785456957816243117624538245215145836472866359156279666123942711671572388156467483376589377397283978882597818282529949861436699424663134246847256212399699929813348688546312495176668388241265236862971349941771521493135175322797611744527281213143117563512527754295482885316249963882491574746477597593376466689828448943296436212439443126622981828546454357339123157931354172636457219948891793337883248289655565377148757259725634188558148429187118193642444124145613759595447971642232399297917563913763281755746789686345489198759166949521457644816351915239899714889119914593229231455739331139264259233534396326452152238774967861599349382873325219631874449635978714484641617549969157723184618671553198136477334515267372738225345343986812726119554955524155416977959569747885727915747929551625891544585584658666282777739462285811281351689177412622913995897436968132368799844115132163865375346678981734166781712413685212285121896165271155991453255946399361131469921989322367476349247677929385748516448289654117257362149842361777562736793823631812494481594539642526366416348981698647813483567441953221538647437591913127911427791782543777686933257278852826613166933924253487513479658847781584517363172251136177535368673923356682265459237836329714522161396361317979811714843653327634115659544178955748422636376535729769294641919868346618653266611153252493478188521856749311377166148368156642946347961654389162191294979977811542919722351187646736315271315625375153579711424666159647774827535611738178499782824534295221314585868895523124188599654832148913674877867595378313435261436865615247513615867527322784286715675166495633754914936754411395266541277815252672782718689628368189651676214734958381266432893897482574929635267763239129336237982291291336692278567935813148813893933479169659633893573342555398952851749755983668253228524762432434738943887484151628234216246117635565569182837515138815639725262996317721168371299127869773432216452822757993853353142963453411618342786112786129552446771918146665454989761119698715138922137748633661316299784554414669648154172712571946796323196565218287859546556795266849446471441251349329934964653764413615484422295379177145253233432893496425422213543952664342696339123328673941298125776751333896626333268968458751189449195673139984534261513596154322565176713922536632442832591491642173594852411551936268229642281322237894145169941419353359716471677329392414672563952946958242173561915797619522475336256163714234366972253157554269926458695995327577123546634533317684827575762772618623613583551147138618234372213273535227177862522782196111427856455974184716996355427189149421413241266351318127363321671418261517888127415934414369754574286139229562791578244339963145773929126418153148322991757172571645547339712694154896282294686784453647623326665828624894584327591454566826425815362282364152378477667937378772843332437692799674784514541483362556134657896459396577272456363478924841478232693347927461851622651551716516779434919433312628627355342886283228751649364224237116794272482733333271762128678675434381237782233435295126428349236276638292779161341388138214188918686957511174336254796875231643599438919982341253821389321339758628546189517418962586578498964895725929593738298167924138484387783382418979378178552646963373818329719811388891257369293791932831659817564513194412341673428156846129488323191114182845166216335887526439293434327495119464959138285926684717844742692291393219533271895723522754138829581496295231758287763744116837163442235659119471174484164445357366635148326448121641645865466323563916567187824123216554753781857762323322896263643748477765299342992178635721429773151716579517597173157318452219545614299973691678624519378743665484126386897774273365647347321144176342561464982659984244436429483752385215614774772443889487926242355877311512858611553311276338755143461359848821926941167232572614137526527485246179579429735636317932225223865956762629536646992519245692684378678593623355928641693466257731768147162724582183972351536995136466379284466343179168796814936332987641991154398392565663583397956622798263749111792451674921758373695916224112251313746722429361726585273452574178861182148647298541957896339931649236872321524132323528289141217313277938127548357897695616573753456195815344168614721221413427263362253656931491881928493756618648189268759182365226278889321176795461584865151331189464387374938295191557738293854713329991122886415575812477623296853754142862653442412679151162681596936223543198625335322977957698279799742973159356962167587221186978695115563949373721913279865376971918431299385746327572416763349723125996267913471251588494578663953281611438863814759794437487294254445619184591455234972647593956545884363851765375959944363422765349867949713583835568544824339229799287717865166474551736373947234175637723772694357483149714521333811374583374772363139249735746951847354314297596241441138254293782712427659458944383748843134822466692349126652415466685357167646249347157276955533252446572421484548254985447977718354212713947194665411397315567167857399918623621485966818683845241517355753692572322725236236188961129315534512955574247215323425595144446872159323245878157251276756766284873764757447154664492697662571377616914663333516255397247857175519173199918952525928325939564327948731497918735685564682252478645933633281158451218939851572567985122499922467175225471698291115693911514753685957258414376992262132496488274474959616186428721585356869233638933356945259183181675285654227659322999252288299733458936787414416563394984665724943144265667378461814215443446775533857765435112568664714875251557434458966828896843492494955335187857237737311897938517947324668554221384898912872232649793298977956765735477543362884378469963791351415264375379719463364344841768231826316832727485324512597921686841361489498144599269761122776884854947542839641744135279431673893495729285394874818726672296559621972795415513729327318817443423839832979758263292374985656699347645326314956945586355516343147556993875731252558924849323521562493623335124666826625774561718593726911183167617269153825123161633124429225627727118667821645393643524612775816345742279512217744856449376835939894419345444891722527898965426166664265981799958571554445874651672153232823424821894218982729766443252452643154241912431713694779598178614228874136175714658333591768351326664835276111461791284539658723873787272367332546245152982568632538279532623329519648725239919284923444293274152122128376357226176245842947682763935728789956438835926143332917852772758856529356384115198697271522422682967228274474644284192653554664194316446115895591697421294478132847732537836149771287548564295515593214179212821519922214614442516724142788179785164514461287825241379232295416666146985634698228276642455677414814137944685826885166659784512118112281934649298668446324376383355175732632695825837745613365413553135238511413521444367559136135473913582134769945563683923384853399453538426258445732231636995362444525962134329354656797395997311393952454421183193951441119151654844375662642918669732475283554684293246756425792447953191896597337652182881215821225713964113337115368464682955672753559683517822661412189592155322381614862448613331698347486387938785328143919278166413812113112345875115391549915135136924751961893182617121834364446581348829227834181411934726374729376471326585115849264977224979887841219731272119944822411951228775434258848973453759643825778657754569651439472915511148631496691728298292625416232493717333659722584887824958841466961144166918345595766872294222112872365461591224432767165364535244394132576183862262522935397465171469723944498996527996211744549822791488698328244911494586235874676216334292785833414238836966362881635621158495592555883214854725984685931593534713712489824783634741963837449768212895371534353862315111295143513131261262252677572334445298111125252116883823152857689621662943618814319573463187913194191782795154145319493443671571982864546831799271961564835442172697338628694427198152286144189678874425226362739523757588442786834269445878464352172663373118174687363919428296425956491699784695596413352599164241745148418214444527634334887372892221795377471833711531988532392675493841123669115448979336795373697615684562787921176318865677918868144721712432824385156663947857864985978499556878344391729595228223884855887847821355892652955399189291432547358755636371977414427685658449571651211721914278941456555867258542388992153159115554514836548932359434251135775928373282114883695172358587124151165335497244225371587737817761475113799364486843615832398928666744723964636671529411513679513995683523415813681299381649991836417271554899938455656234238399761115347377719981343332425129865178868443366264711322539749175737349183811725148426578224824123321383314131474293921832195466796271197352875854845239641269349394228176225939397663898517528127272626376266757571211252169473458995668947552723214717285837661363931241524873199182241758487498646549766171541225492691481663158829579654832466668619214632213318215473259518486799235132746978942969457417527867549917923851424354614698665851956221328614188894164271953237822575367266239921352645173917479593476889574965258478654715913158981938314881195168977151296791529319441472956463159659322935848598272941689114264478323553438116652718239732443337671412353587916353174271211454971629565269756644416996324434142318423871728178671518983317835187152434194393243951986515598189424432958655258455623451189652376344434876678589324571739861516638285728734194816235853234521647887573766696232128696481782736569411913468762844812371512623371194555775526997223612755991479241554267757195756122418762414827651537923621285544763929573929875345181148311559191881163894318186598657696329229962184297638715153324241266476289324235995139848273871278477374243785371957855946698499431362564769696225244848911791922162114773263993791911854838449343751278359748339692529158911131439223779645772572486119774933671152132615328311472162178923779282464694778658196133576845294239918621696566739874223443893835271822751266245758565355963846653565232799141163798959235388774267578638758626331275122651223214226191565133344825935411865487773786583449728156339113392232878169251321187639556926634497963155317197284382742982139527847759333525962258586453998929328947139983548164732217736579839512368594631812442977747961941233347431942192347126521337169341556973925471543296384144461381873428786222319651462478762684885634424539151123446484275877578466661785732724499829192611551487499652524499812482433487394795181359212634373152571159195351436734791713985562455227383387491832228151388841765358394311133221144179787217398237126339833937287353557759371387936194812645759734849447737659142662734782212132574666634114747726135856592364773579843435863637996474174415936241935529581347138632827859366251936785292453739663252355375647171136767685917516166942648461895441855765394642622783732423195688593361824877426271724827271266454158578788465964623645911862477591178477518449837368615557257778995924574113499889688539968668566538931193827779717948286624155225763182896871553141194162323965139112527731541732537328289158229492248375639389751162165395152432224827255379698853491135976225754914133128245796716967817212895648112196413278378887492736985442123255343636562626618644186213652373926347528344481335217332976344449565377424186997299857297339319978991331195559542625666919414364763884174547451222996543555261222117992561221646482365717973542726475574632426776761748498519537376824366186474679185541791516461938374443121915132436331741415144242636933254868227126535234652815196149682422536381169892142819418767439773382571187138349748759613977477948132144383643552576146673851589715273158881231131923163931138961213672251284132975968426695861544318769533958179261168982681759665565943725158816184188153284112416617333327631492553185198888547148615575589233336712468197269552361582592563365181134841655114321945588667471621328435992478528762629878878288454986336766811194128344494399272979821334655544734383239243121292523542631834544244876218221228874374535694982256215738378142713966197282728915217222122957532994519939344293424649431418472518114745479722272447356542725895391869654548375945934362284343386246671571963943266545563827274565335774466724555548912278457845765842663959488494918395136935711567555999113586912469993121421762585959568531786617148835273525919468399922647143887986437439348777723413152381837462772158787255472224825691134659555626422393671447144415233862611261236788646132843897513628624528366845153435274543292744271246467679665279555817552372897848476247752225611922747465413865446291162665168747191468788341482799653364719919975285134814529729765676299121419643657445639618435199415232198415248381736199733131859997663292774987292167683683246596492922417726857789743674312131199128549645513554831285792193426489376784662474914872496944771127657186634339459239713238866671976728142131662112435977381177437666746281673789577945281684988785671617721846541137696618998464276623632877568187225952675177376632757965782928426929112912193533518593517529665469791855658619656958815365442927956334317342862452476271198476451554557553212397973123938754495484263266134272393557524638678111575874767221289533798912346367734943714471319265563337476444393114144526917337265685944786223127182637889643116856248224639115379268922632339124948421628538127634976823217285693812739943791587862687571613953146148732691513455591558615296619838484161772939174365738115811387585312386114886268317433532756127835412144965945511468317693795511876525428899396148582738663162771735957368848433415858432366991581155692215283847225588934619254751668462331341514892672743531199414651697146422679234846214781786176675316641148247664189758541815621836154131844794219281343969151771777991257599443635393224742422785412354692471227487697467381228258186234273794117851639532883658888772496856258766844497775747712653937926433365818184255422135832754615215141266687433956257748538232515563955652735493584672744642145297239397254174825828719558993428198644262824388986853732413197272795387731723958891238783371221212568842955946322266827913934634311819145421841757869354521757661789542881542362285521386449612182216613431375589872769575542352461381187849989336163874981342821825293757368973525951622584539486547194225512899278388551633121682375231997842854115482186244866747163914272918744857489272322932887235128451311924537547889254522669395866536663448579633918436993842467471329728548812861599782335892162744997276795367589669688358965449595664342915125288935883451222524746792797828718819375565949537244522154572646243225792156633351342732664778686451576816662744495819422134117756199315219387722989927713133552491363179752875663951641538356358774997531862116483746265135741568789461462445675439547751873486536975389284278477437228413321557123957728847465636799567395764695267575977662579721331756632826235612824413771237413243284482237667638164894834796382279984833514374651428134329645111973336881751455488564572211238437714781429251422576119984949314495424623236191414255485932783958744385749518959917795154979994638845764117194536644125812533792526978216932131952862245257367872341165327536216839975795947379267627949375257473573595573732253635992661172714619194172693341478548834295463413285753661151123628313864626428596551919227429371836727565932887471531666914525613913844923541525218421782266391334398183473645338486941313975451946268155187332816283349561696132391969919914844285728248961953125785761737113467825332844282599741818115762345525183269975669819175826149743949124229397311555969535956979381215667611392894428445543145395825625899168968568762623969968364774919517782894455815424891534773773981674329757431442518458183283641636947677456141482842484771867646472274255996735226483653894434577295827828448581292387836181435184664792985799932899149341183114658233861259371842642131422595619733744174633317795619936576152438727725724117983125858948935423263785939978182298156822617584512837731288239919689839675939483867652341218216816626757495773936346194771883654151632998621346458758637771697341221134829337689616196756244541356497316335772131893664651255118811762387414363787557982515597637112923513189272356847586424712552565831627954679376333772399699566559933738978336218129513119261667544645833951583235563863745136524521664348992887297776465128296165185248619883728153634833682555434862925843577857569398934735767542569721654985588843172171924944564732141381316631256656772652817525451146497686762214855175441341553665177779323656783896714962248719777947951646991844539215738467698366663244425472695479724371779159656941466427739882761738924696125697938862491683418382381384611376677162727637447556473178341361836464281232487943163251143826979221296447562444627719914573451353561332868379491676281348415951394112239899332575935982262423149281965347511653961361565595543465834771921989718445792311194358461863424787971424478398668529196565496942185191555337739382226171798861959849849875899723215651634343664563987421328681766523762747997684798818932264436562913973921143325738268632262941836859117651618658593383595896616925553767273882912682992846443339621822624767674791644895427854684548774656483498638225833272539766512722234288212218548251845988852478626937525253178678215221232262761694575296437911923669517536179233933221728179259978293555725471285196376952738153333369883551816641684237143135655215343653468863985555877424725556881182594753122471552787972117292311175961938988873329685598959298342491285286113334173411498321389126318829189576523776899293868634559694334215685258346221554428622995693584587932675226287344335542492847672373221651345812319835198334643147879885723538628793432292883317972763877211842796121223787292877791919587497512468345368463969269283586536723228699641447742162199423752882331321729566214251332172251979844699851854126871827313858825124658281864858999699217712922739815222972375639153118757533964855566745539694991417713149149552625249139323146235742639532286997145862212814466493347121245245767283711872132717299351178857867559134315511994641916139511845633611231284748991181193357157774199687569466421743443934612463753628661498635577452756976844176297583365649435362422638856223719128231744171198534974733991594615188536318848181522251666444547343326641181624612794597184338731648751158656622397394251187523553424433444629892656956813474923438822585324449652776152536811954581155148231833516468291245748439987989638548642824297579252327927442645556382934663286913657263311735978465571216914753847349626491222725582131177346947363356148751336626764377953163627418851197232617253373611822332479956258234713224856369916165928578761222598825251591679733967192151171546263223923465198494778494359771873466963881311392125355847947799297543992425125333255653315195761416378414999352267772827325426447989522179361654342223677614149373935412266493762352945526174313692538367568741345512662216319554578923216251775511639649654691116613839237756473446363381867394466244954169594368876696818118128556975875332177894324738332227243225378531732323575699499934257679282454992111824568544381533284594888283754351536219563918439448569724951645454829432189978418521152365932647319457826671526177995995377187455638332945161646223237926236695549736815251693363625412975985171141963285898691979373764382989864411276148131593977342311856949815679278221241592435219343986545927813296176938243283329414481132321672624511887177322524866159286943397741132387336461626822957737669128866264611267592651774441386413327776961221143181446788771864875543975576399634229225945157196154333654976546115357127692635135151929276342151174596935967478859334191899761159667151519691935889511622437224646934267312489824867267631176459199218975149727365983286257613132548396226679357362388552436162641378762656792361551531557716444131159554945366772344285482554665935181489729121112948464582737983544641586978372444572499294649561767569269729431725243788142346373945762744892154222555471862917463133191232369235444733326416757534459686858364534338897393262424286157519915188114122954263133116213227912359984314757668663455925917125712429319285852916763654888741169387679337779152666322386678945498218695427264884844754395283762257168126416815919896184256356448386564353353373148521986353761416282696841318551584882581387861273461444222724782917463924246432316986774859753733498586272924176865433515533215941848833155421967174583923326945866642965239191511999929394429631255981229196669917772451134145341761967792779157125549698625755459711918673615579269185738576518674738851727924255442884555763159571651549527144677531881771552321541336476271266597144714483557939991276845145669132243957528575468221465324921658125231995628652897533866219581149113251514318214455146421382148294136226755498155152835269232213668251936664813471738363463122694921741535113148765323431913775715227112338716399778352971721192113515255896344651449599195894657938884183754888848418743724646897391267898152412865346655892465585316942183843255853726184391189747128141754762262817551331168351551531326134123839325332143384962519242816835798248924476794418693761641386332444167168365712256953699685568625387784971318334956799177738179212526872182824271312795213682176671128639691537852318113168169883556996418193471667628853539815949775373231282571141449914632491126882344458883682947434436321912854527618631779397362125582437181315537315395281777419183828943616979851776755284844739174639974453298291194418653843364511685546781483968914385384957692978315546179818337995499625218789525373132252363654686863779517965642818259569181353932236139976689713378811434867983633496783171122742547587363895416864461612376971163383341832181595639419586474766519332757193171291377549968178793474921951737614759495547533943896775779579641712641166324799518622492841489946296869925648252195792951778785284325136552422114419676318314491524133885674524728827927776314995989146915377113732213139552176945329222784891966416252957556478421388497789973247661145133671233222299831666137562536931271348146117348487258967947976314156161329312125861416962265324243744511237942132113341145845232797954942418813681235247723914448878234174894186598216314311423152162756371928285394413871866881151884337324174527138534981199842477273335165364667181813257665491269783384521469632275975947717474191612331471395521199257382484882454417575947977417774185645922563321658317558485322946167261496822175541198444313529368351696119797715566126945334861834482147473674186374911416939298231142548415475457362953842186496463669924255388224691319127735755499574347749791569758314893331661258996917767834963532334121413887718142594352362834218453112678866799135191612732961922536278376428311315684969199774941672541894478786626778887763173626269343311552555117822617645246627256136674915844476797284777125195742559259288395196871541443185933961928261321494235992149786279223146592612287173977244252244327564328276941387122198653751311585628167883333218157293117111125452555371538554837279852329545445821639165353318182562287718141314512731114987482127779881437443876691432164682698829651434742481449527882857892662137538128258829211243789717946733484752282553474919417875634526797398132326386231233818129723631561491631932765533737659384933325177847916143592416586717292399547342721741686239148755322786689915711794221435529896283627824645297128123388436685774521257194265136634351254415867233865481789255783623931435281332272467675312372666542984628137116735858169324485944257267651172281935215234414495835415868996844141184715315737336182818424946878943323643838923683539192524827223561481549452224356467335452592112134446846366925142682385433574158987381783157543772475553469535471749944515327965172154236335799265433861733575237153875395945443484371734379937613114391347991457693915858316378312765451139592573561712856151645827972581293616248985911788659933786574855666338677784645292741911434415277362846581145646883692527599395439868135271298562841791861294796954258226641345932792883381742192116494376968865492762827777827774426795182482511812681358792577191635226744689965771715458461413516932736565358241879591349274223426918394648382867834463464776328125889342767794165355885276466138924859812312268316743286612636497324413891896254831632919171525452532366845555281916888997216166678551348575546495642199943657976362529114453827766139737112269488738169969929173513973423322749386233562345641181257671182963929812853861171855422762419553961413581638565175632959612272982859113159945731443657419976986584676444372673882583931853563968291582221674114978655851812129135182525179156889219128758549198841657176462488883814871911131638843367573818441755759226583548573311123194575388912126583693331562824564212522182149675628772633175428569672313946265756917143782574333214219927634296725332158642678371396324828567785492943312562299562994748259369315652131189356669468415992669221262561959373925958136229176312473112448559348211651727912561236127788833561552938465351795114364396544377877664426441757136376766371974625641118878337266194937466533598129279815917313529877984195292617658772372895239322989998947822669148419896666727547929859415248775172517496844952525533243353871232168913915554785673579255121191255365822944745799441938647161261918311165341442954133947261918323158397947474185947627992731852277749558847874443723939142733175768869943859584117685673238722158671196372643246921331385959795737849483514716256347358867178799642331993934822378749463528375341348922825287274377377254432975647484997725266759365463616613292847493879118571253667466569597817791523637166921778375296123156349393633382754222295786742244988912597338384677329695453589215552235171415198188255658739123771354128646278257129955528489945117891763768914882227136119547232368214369297549169765642796182658151426953585216118788321992426899111952147451498164454934445339143194786633998713313951945133433228999792639374829947493833116317826942487242722821211797556476393953773946281476163775914727534497568235114229479163789155145727622637237517355187321484754271311852961543449514816791273118523292898182348378724424795278816561511935357958314834969576815464753869382733734777617217354915971916874652456274898757566911427339694957873581512226265341118179614155457135123663792188288894915235152139253681225124698686956273621761764635994921288131588897241522596175336327126584339548919631313353131335252861276141442778294216733445334514825285771345464841744677111961323645575424759677386522515853638388278146586768543743754849677221333546898111719484993564623433456252532955274217613682964188631988859416824869387395884451538693694217771724553452967895865896928428198441426494135485549187877641377624647228572237272289856463315137455135231752925914594176416692772346711298719347343719235511244154187849635784823356722878734271995795996715921411349862554827324712653473655166629449579836412171675686375151523718261131277811819326879989824259867194827489854542282892123552513377532949753446263681823361694227823216516951385697682193471219115577171951866234397845112195488343168364124499212145851962255279642162645175382331244862885331146221855512988687527122882656434757848552961791663511629577949444217835683617261948269682945559223582321958178282825393128618328899683576125516845654174261938634719137851858118127528752622463772157798613185181981419661517293273958928165841956848481811356123972299921686429151849536857931646657466613935568775824888394381753828661535421113838638921519531214565212449232362252788474344793136279465358561581374185261715463383934263638387588365227833221928587329675185481917829323586721764437741297949784328536687469322156935219948732418347732219419539173992821988626979189333315846592295265512564589363358653471164526674673869854469635515952272112187759945514296397972529443632553942366436892592561298334372777937715916283247759122662515557713587311594725928925426364628699345225422633375368931669469858987785444891269287515469181697311839649899137469495718957625833324413575425936638935113578914329558386181552321483577825866668763628631816952727697742428864971851864396299925599992352249879888795374173182933738882934261976132754131348339586645416412381383368656259852717155919498941525857363382161367927466327694293945543119254864733488383972213865335423774182481884778332522151897616152326321534496877937292467573443858197142245467431316261474113613693168216151392319724957358738425835633592695774738162427139241692665638111469111858782865658398784935617546437824118252989233115324267368748297275347855356722384559851999581942148817713475159261942493746413587923696466629195618643651796372571995163684978318724184611955474165164473227564686479551845168169635595363664522954695317277817452746223519877245957519234537421454271396195897741711428558543113928958141382267138431693814429133421497235652125566949798742423823586931557113839392938256358325266232888411645776784721815185577654592333389194424897172152162961952123248493838893995985122442239267698735747329533454118444493494641252568926721965483324141921143754148863523444246156355914623611878977519157776234891514354137513691919358496834327736953527139422869283479495884253517718289899787572515243633771319481133268143328875375677852157456387857366498133393377375948861741422794953214854789769359124776819622943167214923786871599731441123422751591472346419762886142712237692441916597712694861395381856924616589275143655111451192139895183338612687766283565639246679141648138138888119183951737973181534284657735553545983451758422782283566722357429368393393296166124581711613538362649396218673689366747535112482773597729141872756831383354743422292511821894449434581559992173683135584828771878737914583978132271599259365142433345391182217731253757762723219727155426563738971181595158571849395933229973686943226196665552589164823694495723184419659296381444977612486896363351644981282966353678237124733619723131957724875732283773277759611736442968415788122955462891163747746337745721534265297119874485325562365763973241527669576412963847625913578185743167859857612186365628119552847632615264174267929618871554872573927335323925638284367785479638891411583683483187345872619314422768277453351729928718441482199552656799487228462842276886197745952754973295671934883799314572657873668359549241999667826453829111195362221331975785399149157274181335691933279126314844128957169736934415711929424417557297599136178436158163621363155167847178975619862615131858335716895462437947411412884488815131977221419997882274918533943531442392538959881932433223443757985541594118273998497681719576853273999675394216894873625317825842811623394174329947879823146684734796414919235555875338876547533212554461369724644268788113866322142894572372499838374441147297854186323512466331984153241235582949587882156988199597897849243231158855557328116744286467119327562851241218489721854972286475455552421744512614474687438519729917452794528143776463754133433427844976783163532385939891336535963448132925871454336565455423254415435494484738837827724664582759793119418441358253656649467924752723133549888591841815195651387945388153314462631458112187745573113962185321436218879324723456359428139346658157538259274633317177124889721928964465697268482825152314423526918584244613329927445375116976665721458387846664946394375736413173676329582993154784329679976797256889354298362434414889542256499885191371816828997393595493675576721765184791175196869923764171427572761459679812272693884983616765731787191893391583957726347128513589542123614675952422664446646643921291812629171225356474443636213823364113591424236252219781116759297856258133465154951697859192287566946493718447758258191617643391757113725315323893864148178741683764279462497515342242536868712587243931731576738886728594578129884931355157449839364622423895511724311791286773657285531357437132443291383662617348253627693559451385477556955963951468196865189232232387637986132529481541592369118531962312448825725559414165634487615417578485873376133493853563127944888986973162116348332763989313715998199956912126725386884497313366437663769835397697562947328117945867943961538381261118141527832734156512876538446357916353462262521416696681754592341615297323291435967682851269245386735913155547413539553211573125372792618455724157543356656157341413759981224519365354748142162859827766634192731458885599172145148494224462394463997967616862664658292457373377659551216833761739711913481139746167485925168599841351377873291965332945595482553511724454161342477831878642524461467824328175968527812724624241963618456132718515267147779413537748495173726528891149316769257389333325652644262854438525948897134923369146267543555348397993528852245918336438591156637517678548347225578361284824686699749115332326884937411793532121345561575624529116512425742126254561873619293982552584774559695426965757738827497973715192513491395378825254945236132491646474789535927482991686947924434883972576257258188575281911528373597727345324434452472862492582835486111938239629834765131212811118527435255766899743996873493814213935862126753159918815784366271541614418444218819376472589885626433113213669862394588147436621591755267224194618511691443133858734637421186747378576617611785126199334434358918723339268525595495337742544334969876558723875933189884435981388885769992734875215621728198713828945572474761495598779827214634739661844345686682722584863314738168179866458857358813963157439719936553963193669289646256967588613359745448936819591357487825771317225824125612775956563128162177467684144653353392852537238113742249321386367596432556231511571168557715474838967153736345854963283454292663634587923142493221687518622363153348613435688194154449233746229692715117252834413144773482594532747763596338662823746441274415696985542755612791425892988264186883317223225744563875354957485766818694832568821162377546377421191313545497643138532424764914177137936674434622584452471643546872692718113711338151484281865354454752223825471226519143829342575374574294886239644114666341459712957116629482124983781453724472188441329438748978751192677744468575111623263596453599181923414383625988529459246333922264154143439232476571355978376216477336647687833129228519214616656314193178337816236165752255731114371473883275755825541751474233285787243773637797543937113497815697954577758529536457294757532118795232756863973526735543717225362156462935872126796627534171428591879215982459424958372183143159951682677861557682733855163244273343625241253436482586521498285263556146344887214141967788416648311298235791257817681862522643811533227224698685475212293749324462641323282256164644721857655447464521166842349612373891388592552715361131138342265529935487354392353255942296356434126928424859439717485946741847449735196838864221354392284848421958261692787465579282949156832641739624875616114915711335199482154576917548911714273374621411197387117937261336962525196629911421515569828611224933836844875938598791739931915784445834159546373245575285947292285879694621944278639539784391443987558193968669141422761927483961151713549418365293489946135161955147891793363492256623175259231946971128583281427863652923745594617743213453641967269526298775564413498911236292414431218366486386888734742527524245941352531755221822316181576164274145419281878997971495871355275414841811243533725425239672685417641213418454311121896184377254472132122514893622124417685281287514832637789581989622873456626518767539936467293863221773192126181135669462841348526683345893841785399655429199112721827933145259466933932943848253844399133978154612234475936316296242591371492222344845415955888128824783735117237868119371254915441386424443428694834853622937386359591187699858829321837336987866422469141247173959854583999575571118491693376693319664133348832212244371799449317814747888563237148998666844343726916773335448333163593158575555134215969961399999764485457148512672142136783132499573683529662629189924466634979564875383688962385326299241774361521895475458256286179263786466942385883341121975912174272939532492493476913613265413864234897655754935939781321486462946659466124938394299637968695425973824379426556184381253151358452124395128475872131734828497254718567768988933531495187773574686865293987914946213566382327125371639145236622331746877423946593366492121531449419617716649788985882612762664296685694565719571688835278437161416138642537716476175438148499945485544388919224118414448927689977871441352974741726112349363931533327449327143484399953779137313238163272882968684269111735211212464113568472644432391467846251266167115445963731286273271979739918218311359256439127457656151916986247766311644797649274325223261236231239474842784592823846644367759684523271485393985452138315293172413145819854138628916951227565288937511524622694919455669878931353456354913115223591326136299958413796664828525719524283511917257239575748587575926859949722788582267582755218266844876646627663638612486185413392856183249238751699477624544764981242178456212722222264815663986117871843314239413944738353379445127255548795389555244326289554828835413585942373611343874343819663757341221257851359471435147972818645693125122113582717384713935172651385279177189461168151621322954126187792456289637994313332554545458386161263363683197687277715261427129313213553826271615395749739839814841154892831843566132128694763493788121643852525546746554184288912116211794427281355656216927836482432947666352223325341917679388189343347791778524325227395359251893416625711791144511514351192332941547536292481554244519521846256357596112477724851319636838814695435382131328581483653744327248243482146963474357185859245436156178295979896376153738171621279227926778966968618983229832995626861247228345569423838565118917113143663911485757515716172694415666857986765856695783883888551394166159697495443421779784621454428451322153644547869359297412893695383734899876257411287357441338343558531441628526894189535729349921146863123158861328873515494325836594776548934612279949525612443381354114629643784515744552461993631596993982736375526197661587348376511484248748782818331928726227748648422237412396396584137941957562144623232844911137634132329526111484516251377988531253421559734874782482748114483532517567265894814248415371857335426123345911357267813895946363937637659316242971214524792349469228599477413571991223221825457123968778796125281484164128573648256478427676918931763539685227997465539216741998964324246468573842615823392235957343413274364827827132193843141621622571497195437227891246644119378299674448725149395448364291693649551648125351822451621434745539526855927677937132135583796222691346229458134589343814628418473549482597335111595592495256755955921526164973541413376762267823397845662527999573193128763621813194491985924989737236122678833232183583235829341725657819248663319285143568958585548871716716664187591217739352786112889283314497144763951984713542838442622751241426364116944311598525276359943917546129178553879163155226725321922541312688871525313272249457652964222843352577268333358411258215527712857948779951437896693164385212773485274832511937866521192662634873334422154241368111293933213788791621794149421158194832513536981995287615231569869583478528891711878135577414614935481922993156161587724215617578425386712593358663617928175484296544198713882562291599334328269749424158172841891698649246552771142284749871715362714391162959679632923279657539226863798683127357862626465167428855893161279525791596126285935183548117744747399572588248577269187893269671552872762721612732757873631615369786821776355311755357634941316814228538546964716889714136319234671187886864554657732228668583712386327998496371462896218626192144656415675336251438279214962269225871283413959757464181319799418955917813679851124591799137323654113435374764937776555112483343222643273851926619815454457699426725776212834798358451298369952222192672395685475627545555821187922443575265618244796168147618159866289268371452293583284826755962599457732333365186786858159178282466355582882281146697681199277933664872534248375774471638756439772958738542995337764587511284476764661664213245373646351329313995128452316232216417846268638517277372853372297132466416486319846292195216122238894972688667274583557937779213525123859515815465353229865138656341649155336784775353818723273411899736741244772532753297296733759932178262715477395715723358152157134794825153918634831826192814744931321725513166914724184454627248366442936539162433223654823771441667815511998481133937833815934414398548413742823138827613326644287691121989457371599589679139444799737962299779941145113769435489774785193376825658245495375435149921687328248591963933446375132815795955765935314843278558915279516532979556546123476395465915166512374741112488572653234696539112131251264313349942239647649799281688916142261416179251224113265444826661427211656559218537923842451535155984281393998551559788693933677113899596629198872564292461641789824969917124227682796254517725469639775228818914349818173119888211813864598625314485848423614786163676148484911131882447487137619827142761165131446273677237749431936419419452251565686253416367248356878468264917346427537668931672295863136256339551123595465612193178136512431464757714312947249499398772447596944859869639193241499652917319868815435686365253295664435395857414414665646396123637918412333814154434218593991126518811524423411315115228562152838893542313713136467471192983668115916547581199141716996451171492722437787415554543518956323867321185533745322279734274823998682329376954384357382147381234841779286531973634271821268658886826338645127133193693922512366694826132795784583227198252549544375674592843321768476681236963176974147216948551978153116918375634425353255727734121969676823855152978397431934733976344195733596477283259568732389149473693447552939337193561936713272813822644855657463596757997156622273865212114582422121637821698857819494393276522144562315567263156849773925174845486226583424266137629583641213464936724359177124137932687765528917634422962272927922367335555649437732955461658636459624548564523217559661785764927536535317621196419426844923845924133634633923789577676949111233679986519339136174568485711487338463572555313931345115512434311815786685931489951777699289345211126774436682114777268214744764789424468444844585433858938285653379831687277775511557245884861593625144215691214281528736253352945342385453787864871496596144145937524614357157924343539471622922824257735597544421151753598852763412651974396754239776892226513456823818242179155527126964225826221212368419141573538612289694932929618721473667284561526931258815693345574312212554725385286735682698345938939144271377544482823319958593697728662996297978911752844718785175819788384881968842686363632175153324781277191539182695211829399521185941349453163377133452538731624849168196247558987526561254792551658617249487175353212525934122952684473877957148726939572566121617438422214754376937691874188414596688246677226461668924217525794157873186475791172758322698311422448531641815338623879755345532345265255979743654474461841511131234166195534911933482714817858696847782188278988363122173373914582575461376259517576236512621151129743214541198396833698911991844559161962314167895862924595111155212641676165393525138616548424254258125251242813719836474529331895284187532536787244241695613255697764636712623257136662492939221916433977121548125682612352127866411566933959611663672733421192636237268482693582387824233172974244972792214731336478798361133563291181893632852854274549137957763186159852636853262711319318756394152531712942237991724886277291472148226942255311261844432543896838781581593757651823638236723313565693621263157581365953574839222532972513555372642656231511983537746568189597923475448826675638566397917733293976143414822571653621259253641414317248571579951495264221227659714323465445333482531691527319584438683518551252448373523211314672148231572188478639141453814886661412548353653257381331395617227794819145829491885781438456863148175253517737714168816968426945343521917198661425212133467311624596679223561156176451824774511414264915296282489518887522856986218442951781553313334347834738418966519733179132188137716266193747916495342491459484836395692892498775614475443676244339212151275635536868759858355163542652419463829192685893438398449568859697627256872752211943656554147335217873146568668742713437222593746311499119495523735439323211815719163382956592792538976298537743252624523965899281745422864213686987361257662971946473878519469591345419362145199467711872575221185872615389547356852956467948477525645486161748823942676826156439312334346244455356743281774923265583434266483471316578279141938282625632315771534984764827673244568878298543844935915153527559155153633674117417251963862213987228553142367983457763632955763521349148912441789671132967453149182213112769831915847242156334121285643127995282673618325778854749976356382349421736621377325442592767585258759399516588953412274988741693324699991118736844297622897484783358175129296716692477649228973763633888597872948644143355864916724219376845836485267344364644189792957985469483571223173863698363884835995914766742797597326163415426412127465996674264512531173592749945271316434678555112622147751512623422742375383277615878516224163479268687138371374799783643777876728111541949219475127284236384569574574427348458831379128297253875169942469215258349564884368237531514787344224134367612942531849379941323971278898314411445973211975683468279948292672776393465293148581615111131663586721155975681461926122652198196814757386825133914225933294636289762957981141199284793341544817253454647999357826179629259766545845533811797199638326179662976481157538629363517988546169294769973592428183778463393941282311194159428388613547242216687915486728853734884452486447584626657787646577413224493869374196964392492998484859812936461199138886723244157165417438741869417652235421662563868251556422528728918888478521834851681634529426885294264819567181212925432248391461353428767225178844949189455933117645843792648441214585419646989247366125931629322691164386769151712447431481372933275445326698266818446937815516443734768268388762746429697483384766573215125444332132913356612263449434378623142694378442813431862223891561478476354931381426116492923744917388441511894118113582193455933861673327435121814142158146918889491641173718231423686376857141636131611443614357824672291945783737372223882716934741115611767377492958676574552644966181383921828794342396916915682769946799694643339743861963166247817692918339759476516254668895181257943866378351825255654852341153151211417332137117916825231467732822342244467564714898413371119335689214396144838337534616798821345791366853314466699762814313546921866363436247539282929232679671976962796228145263446319338817633939753497391286174586418693771873714415188424495662164594148285331338116322833315316735241673332269575671114125443857991237171219176482133939287372736152267914624468482619253664367919266771565945899446345914452743793165926933515292548642324493913832321966879538382795246944731973936265657755257315735196622367153546562895822159211724938986423519899482952854618396328732312652898896179444113677996344592936585433525987611332772597541531767213184832961796994667948394745536236756416597827421147561253436139866447873376864619754798373297643845738129165139433172838683132524464836817225572274723781833257344242355671422714196412786888928218798472415434313375111335215553412981488383747967769945723133449344893132373314917224595141735456242312243981775597521256769958875772619679545473519216636344825932135273233449158662587746725251253729482448429211845317635317162564751315756923184316714673541596862615325219814626113322497567547957142818266857317765128263285521126771396696129576521393132724784196434497298715543323936795414266516844962627563583397499111161732341275518833789916848885275698455817113665561347324816261947585118146737596766643363339177678574834247634897614759314163536621626676921481211751739286496727167419312564688924672233313325133745927156673839128834929776731978832145131843675583445343871274266268859429865764213914247129213448882341751915329964473729411761148359147585687521691537117739521731546496928337588379775589474193721275723146464532247139771699547358542239529724524427998329694733588464711316538233882916471424772147171972723688395536229392422575941174182712175881315852233659813922559576473541672228731217962177199185444583618759159888919645967664896854958834888497566221492676833573959672263237531336931435693846542526983954691924463736554162731758557391732437616152483495441125816155927638963875931194192452689113727793218874527645999391254715963915966764843537951937661711728371745582676526772717891316288385948945144585459264217196534425312985275824725153897292822616465153573131486557812574169557645124424377259721415193298453395458893993846495993546177873688786321312182277449217959777436463185524793265663828236382195562299347789962146427162753977211273893445111523455162584397595771293778918159676723525213974232963234164262964436413799122519785575712652845837724314458381395414496851891562446277832659315863868581312779292688839381759518792695249436432342921319535354751912774166899516467888883913138156572243145697839431715342676487968818157382159628292862548598719789455756661885925884829914445453324713159682762434515949721763349149812945351265434655222373585334143622792548575338762178799675859479762454596961225971561216135319614821532368582394764887812475784816484464339675793162412264713546128765283965914467378156148883499144329682332472444148689683154463432239556542596665676318833444592573312193769774798785772295916454663594144625698896524697461942925426348985398326933317221868719348191757953627671612891139938346181473841779922663786644653953312863498463438791291297822432739773324519311216378447678226381328223542421764158275972161426724899575486914356676487484289632293487181342585475219813629759582476225736916572777656673419843777797753324955454267152158823434228417219968579683544483621932541713913352531159214573335545713465653262559316834712943964625215128582783367376867892374437137779133226776515668993557246223487873711174748291954957965884549535751729738414447812686929515535383579188317154368872517934545425158521185882566185878314293347848444395571522169786169124164463174565712172755359665552656456333654767831381697394838519361547424859265351495473195876853439882892364131547651291167151722835278843341276886373513852175514523484491936846458196276982591892316681274114438383928216766152689254659583917116929418367545221656449944489662669724521759878245967545473529155411275891885588955332851831962255672986516158717922721752694298847567215116392295887811558943472993495591485645283137238478312878968131436847878791955589558219213614793734243234799357563133313786141969583219483771253428923544427768716643236953882346737281747789613316658687228254231641644883755933918575389519131526481794214151937726957635998971574397121788268945685853836668144375418925349825435223383628792252756277431828388188197675532626328353173925586832868424162221246623181562817893451463398187364517553316444863319418869782912619973174922796852665222326176292339691336622255122637819841999225614258784795451116437146487682624811156793132855586895862291259795474341915162226195716984614357828684177262291124362288441263363559733714681698192327456271282881518867215544344131485768319863451897364892618393948859497617566172248642296661122518682912729443512995863325434946854946843264544143331614131747732247242571574731317288156338736969481213995335211848486318271455599343376918299437335622127899841445696456933468457623648261148244254433864988825663571532351535114321977339362884494344868912327121781293134426227212153844688496445314191616814546548842316741219614624133292926545433213441375626586553731355111665335435461611161892456722123963421761223673461814924159136745579265184257464845984124589273924113769425684535317578926351116941756276259312884946933555742655481146322234572641111185367358367216582354844375579719172191183631369626667767349362279557227394929244144352228565891684398715175517265955259817629255726249732454972682446651866434245622847798527925593762754543434257114883683721185617931698953747883324284919745863429224815176649647376934626396885658952889355644973118336355999341213893968545764173417575436365179483383398152557453249443678143815178794853712743133134826387725717618652586228513128267879413195381272426625132436142282463472144981336795441312258453674882155246333798937367335151891967752811848274551257311146832142583163274484449896581456523352667362593384551696988966917869128317956264352992997522694852276843889973883142943564219256599296999556544333695215796152155971986192344751416217261826719448229133974697359411597474657537191549124893335546711529236796978432417673794769999655198724386591916372621147628243619734219832982889132576247823477425543131212193222515493678581134125471261838399573993369911825839132179626334839559477228555279134961923151229244472974984394375485489818886651478757778246426896944913835943363672778342529977166836173354925773177686727136142961217185555214566221243598977556265986194647522138785871447318285463614194878615899354571452672638352642191753886222129597621394326581523966916726836434962863244333212956758685162791354288186998675951565341273623567865138351821895967354724214297889948965856628289371982811554782932298578945246477786132323564377189838289944975771673691586353939364769319256381389164139667998657249247987852131616513381341594963151357839445446733935159574125191876544171461963381385364912656653616161744425988259411271194538357252221897572532521755261614574535178121121539466349352119126187924714567892779645261563949323895549899737625117955721825951768344328876664135873226613469597673369392234441765984593175583162748686226361469728131944215173233531752953615841121658184375447835489647423148611438651291623266158686156873846864821168129265554169883621524146387984548568757213364362643578363159393919293686911691587129916927927252772671787337375434754297273797418251433341144742468971953128178622665911214824193569967385756133197454153294723783737728122111647841553599642934562838755793896467941834398387551986241531284351279277829721141662159172731588644755755728332724799363147866586651422343214638713635844987446881195271526593835348587453294968514828678471111736331677389743524123917894755768747636834849956245313113383355724841912159647158972723563896992913823531597791249663952751979975313474511199442562137275746572796235298164753756744716866351125122444489532814425215453379914816681224953615269657221945191597811692817971121436475154212185233613187984261875163678928585372446414696978333758586234628988184511559617311411923428279373417375937219526295368123926386631478146449162338196543819173324666935685742551269327438611239158225891577845565626235399646661545679951319753475382917379119798882368934137538287495661736465784936377643113126721546863955746318116991697827567164866334543885281381792556169934741158123653444955196381988525351123367324298136964458312444164325158163157275249891436369915962586291563252334654412413129955151127756432445896781589285536429713439888163826179762892597655112977579484487153532581889248187868247931864242942498544883168759348187611976951663794844877321124181427244299646257228854722321851422195315654346128856945472322458241895733217954723533815561161544138292583679963324412945656446628123655898416838743795776642761241933178546871218186219318237165666731772668962591299722148678459511862964163389957178215679634158965578536577772761741213493491322245734417629691247761383123587114967816776447525123715498753421222659425513984456913943181229662168784372541857446771978699958443419958655412326751869547364976379226714243694767853452627143777445851793793868279212734919738749754998626551335752678963116659622531349835622345372363738232676767493269365839721363247472881649581353369221348343512554185578923326348167386848743829331453973941421646277322614275646256471417785522722482379934654761665283971614219629318225977725422474166531772945554512396182597718358761782473942356536454955428713418612285623133448148175994692452946522964166421543282444797322538279674118199698425737956198122322824152837462339929978681138699713428582915187315215148521614338646538946299964945389994767261248384311766444936884593464584884672228756465825618591318235115794651772886513388268543436629822631751458176421272165512787117139334276592272565948323411447312162916944471897284772268816752242669198735122211558222396635624246528632145294381337661579363763373661385473926927842569991684492361596995334736768364146179586529486622463474183317117774166513647562259522647423321438851222688815965444117643926652216967427592514351799537281623216147394667324729217935116966893416445493221363519896393579783144482396184698442538513174882311672617361569791327433372464325125453171983436795184988835431135999793138562632378252856659969723433226488564498571184464712698265111179757769783418877173725779328681743125553281368926851775238174313464395298542444423498512657833421733251231281693353522132853126165597346528311284124146154694264755432351936971482135465423423456236551758841734746764267547798629313878587916949681727737125111431575219167759473926929331611345622292958576283534411973479541852126996554396793413279149143374872448812563544365862711649427372579262257849741233421741739556267478554873783965647495941231973712346997396162536988964521121932912455425361621169533235173274849112855167279499169411681928346122314475514533955954129158718146353878493818925811533976698265499883462534623316146213963164725655436859231452359669371225264788726428999193769141862326179271875629554611218378624716395783511421665556232356494755931815661119814527613137942264889357614473731251466271343274871284853173685672236821418663551327429432642989593758887351154632352287615519272852589572614468878435168598455218916329382682491191986751795367643441356175987222926528337137845185481897335512445416164652618111748469985855276168241522723852317291719152219437562543229859617893385233125236249576311775623223221425973483759214126693552284499556816726226632564479689272162694558234499292317652247548389949765729793133786133983916235697689799647714234752583625547143353942453621717288473812624998226732778587162151167925434548593159794589622753724198415878561219416425348922352789366426471116742391735145559558982895857321615122155241337132236234468646775128945123496283795585591226124568691473333395792268698358647561839583513366914869674649179952821339358272271598533963489414629853573839511554687756213166185783433498441412272954633381975233624691172781737134815243934977644196564535429659379767531331238582385983922459981824329327349346155843841337126985869647971395691586149226993794221484544291534449627635666925283749662272982884366965189833383281433991571348848699391799253896752859136834378637197117765987342734271153626128636537482611524793847132511444142113362292585993243344881192412862951832449148578219225682996421148573249927428722748789545191914249227429791435537989583143369812597793335474113182549884599441362612393252962627872251851321461653918237355429211458878866477293594622378592274728554537788569717934456126181833235849685192882541914543278249635938825636585786224473138642673324415937733968813584177454421365882163753282178592849711749321948952922535113223276219338552594758544333886415396137544339629623416199171934979855499746595711899161932435833973392366866285185711973456292272956171697422786687634622848659232525428873625691366939244123181883387614963219151585868233279754471764532475874844273456741931115217669861251335137516366172186765259875871965371845948446832114879593259422543477337499833886541579629314648428877681369953462374137854113249469234924488631572358672563431171664912729935845822521154834312422932713353765557781268545265889178544325338842382832397632716513316421637631571388832562628453385655179155474272282556449462529251487458852561513863473326493912838193133624921859366585574685635198241133297957453624388921852542417712274373873931126456788655443616765683183399881499272197825248545233454495313356582817123465961151232217935761515125345628892395147129166397987956546552855251125518829728494736431192997765735641356997926963948454524413735839635336528489136369346124341532123844427478874426326476138748652468894517492263178745866533292652995836393459641667228182117413873558452689476257624157512299218156626917186136536363572132528818118512734791892221995221855383635427471334421797344862684693182523649115816782134352583933128517783868279246853112866248277438348155251849927311196955518363912122937752312462423565738552935915296599519579153472122953325355443847138417255245493676542274415237344148849586311835929977887499926963342596648419277935719612289875613138312286168283153832151243591321549636919394154179832787672968944771375134342134119663799892961996239273374724131651125351636283989345628224199791343454332282684563354774752217163127695522641964378319439429237174268816759842985545919393385781799235912773828249458923786276172347234795492866456623268621814411713824654837712416141551947652793645613171784266198615413156239745622339731173114251472959292959733167296932675613838157885252615298235334724153861141489631323511327869435851898218594227652119275371528339623762954193732641326914539324922449373197652638795926164794924532833733791586581913531946187982214664714934975458727274917788673743928922362887644297134441322383977312471793295427899274193468424281889728191946272517262913353328766128944528114611428948991751997346137759669116768762459411253152354944991573886786715712929251339573686734232694554824291597456185172538614498474526716265437139392969794149943746425434567851753982288285212317945349981595394916719488976862592158869789153785281163337658413299447467269393331622122413542915247793172846553352316121168559963415612733536268849327892388674496492347367698149566357365859286315849665621747656627483922776949786815172456136236195971163151947798782343915413324854157186539515561797631723932276416585118581825437397743369661364438564226139447454563356244737326538534778467653765852927227341663488819546351739181488172343831989399288824861514992855214123433552486998221794421934117433392623875621934281289573784137116319718692322726465323881934814159166158468944465542748312742834465566483137219774351137911787779517346518975418546434653628373534232493383363162139269261756934453167873514375312782366284354835248679317391558738375869415374544618365996394329941834882366552287794791454622561582992517572561787524842295264654825698912267442419364375344483538376631421247341736417314189394386161876482264136567559124947367476553384981855615189483523285557645292979753124273866221921656741851372298978231536262648323423478768345141148758132673586627911476869964875661918284916951532229688688343378674151924579435586287564618647398326911149494268836455344549656483559934416428952122953533757361131781891215595557573443251492762532961819629754648236913359596913543572766652547789461135726132497355184143426318479196659294939626198698233114732227858884539631225286243378376939253922827759157222622435772868512522599714223772284789596617451312491131641654818628997536293461778757133534944199981743623238836313834798256935778555635559972282884584428753471641922263852961195691258896119121547812246926571548765937385955514229759417676194958338428112961193839327621226697832987314349361619337265423462229193423813791889529867412682557763361325724883726272618866475118791156114772793161944357664418743714272569255624583762742543919399438235373351792596518582652454958771671114436323622234124617312678987737446816129768921838519231462985145716351893856378739235891311574574129159511577133756534595196591237784424398697146144397785412612272638411573366316719712257393331285993912135819456899485866538941336197687793881218577414192851222387529864525782912789583154162865541235174125486521323332346173247764473161612836641453452144539535674519486127426721951254598163461278228332867921123488372638368826975274384158721743113492929977266247391174681641612278516871271737721484762136838589214349921182548572594416848288724482688233319152269777586778334275632443569386997467959985417846935114637139595852469656354331229915452847599213611516417867136426175315892416499441236814436124886556879751453225874942398133394512878593142871212324296616627254519847654858879483328381436672919563875779742333551481361552126444557936572751116249789792883989485942136651468641342322537859131345444236574963195529541461363733415641952346748641517519231232217422859441681147768175212995536567248354127251113361225655947947132928183299898455815484148436424379555527912399572815294992489581547141316773176136556191185375385884656259225352974196546464513266246539876614343461265856574954933225139615996924752746556814327943614631882735347966746271233363223258629992996226116766372774346464586246618116646326552854673154571567623921121325967763942982373631115797579618573559958532583173159311766997541495332434991389225334281693347372132132532244594419515935462285576919666299676353818642366493331515818492957443964662684293246298126825962314789381149733174421111146796933834233178587163228426659351315326863288742247876514362251839748415141555961933144214188832271346969766451116936252832777882155962574461766113111334447813865355928281728726734515439862265943397116147572741181
641697252768998676348224611573593913869976425739644311697182631366664174165668197336741738681416117177456271175668888476235681369243244955271532348547516723325656817444348738623716551519637791115362357733627556535386179196256641947628193748256596142475533114359561529569244572141456745175431136256158283461158155721514137951274489138841578338231568178132247682692731548312876456265644452134987441234678882985937653131582652163423926333293535834777359446516581765436484775333545269412136584324874672516656327763815634531946318311641835618545165379813589764927276649738424145895721891284921914273837662573728644917655285581373549478735921467494229374659614742167944716442383754679131944446794661146354418561417182746776166632288683976759153975222785335834117889947599412573743457626969132648418717399946498136222227915774137926458994682449944927671129236122224761874839152899758935615577487923582558915366124681941183942371878141673173954746859615185734844714557222314828782867183931712853462289416844663479686274771162114777442633583622611215252726121645543337723691361577366139475871144347329498329717732314364763334346355248815947569914574497676319272411768466256973649519623254445417383768649692212771748125315979412164353869642175249552548812827642426932147135625825258842523779961269169463354162323297318198997836995958587845292999341178581843341548217289942548117356662281984473868354122635527431639551691378991118635961275725454755567296776313124627124247151938421819994875781973389169921662566327663345483861448913589442137335375451958385428769488263733166922415551425722421954753554254913279213988721962435314256691449226457934484725328927377832253178285653513276191246327971542695584336643119823924859984411237196671623986413214238284825398253171342782212317685396537367233949481587153587384512827184692493893348659586128286861749885118546163238953113747151697829782757719519132713374253612824498471346293635746891742268643416576333626445383111234841624498512428998629473141969926126874474291368869879238792965774676172324658915813853525275764971386921934339393271695499384652596174324625934773724195914929498464588545954256133753456181574526733775517315723489545725117351544367981268414816563714846846596139318521128795861792457554373837433417581436224118714487973224567688214228825546824199216158511697458816519319667558422369811842546527157769386344473282298194595839169171423443727374687726131799849713728884657186782748926263989517621348991624591782835329179139538261625644969684266269741991213996887682432646731325715863691959789325111213171368457388841411356694648413618337355526175791185795137222953768926732492489119585374849694928555752819412123494719798487245511177875153965291521665177498238872768857597928872568635532388821783574264521691731743471629175284431319762782738454325655193866198777143199258433334512241832732384522838442544327344193268834756285391555818956332839693475416974397574814622478719341518139949251521313693381328235491335125657915648653996669833243368252413725427193472973166177824167481476613975484681328911348751435199166431351865742239556419664694928732124467283985784233174189895425724378743154294976968976312653488338941555739681175166596912844356898622417431712566624713928497324455922316436596496385296591636448125241616627837124618759157861359143754853323665961287396723854286959342737164297123388177561785753575912963242526714247484684663646632525487692273458346125275448121548976248755385663565176932154664173255926917355138139111583716681469468941132144341561417635884454977482532544821297431132394849414712436635393244527972278383519788425366425318376591856962546392967199266551269554692486662714172714561946326418316572231387375465578156473659177868234374832315424133738416456167373929664981151211141718532548653352977888494421892764163985182712879851791629991838946638614978215392412583888777672674376312663819427333838542917251593734987991553262796169217349612249431825357231275897854491228725482112359176578147953471941749279154835221844996878254317252619312484164834324947748876983985967887663446589875396275344924264153925172241334435478924543787315546531692178234398118479892425539124442584954299766796472372633872682962187931754615993912379198923327668737934146564975336698413373927459723816679487614763116481233167786917639543713863475681348812429432161681522824313412934146438848921694123961173448741791142314831112328581827199222421486332648795797683568444934291392729197281474798823261449272979595697425988428731351331552512143776838387589779663223233426429216563454928114691695363199668388377525579953143488624168812415795326891298526842153371627641441452848779553226926253955215643427195832748135989174361446735376361564437963751291912774778335385419373599492125534576296969242314682118243832478231533243358318511989114642786298354637173833295366414468273454533718699851115335389873374632148475237533845531136743931697489247412121923167328561377643861646799852782655318552866882336668333283466834135849855472671252332594899421837385857476111418289374185595358582223179559121323151287566197522681968166987147349464167151399521867211581571342632916372635273211143479319326956781379115354787247652644946815436829121876538341271175692745168416484886719219111118123436657746621995813585225279977568223762982644487986114889823974576933185226331116823557892811289139532853684528355367629162412784648879347159992841996575152963518876352388978689724515666164752643446372619812935356332972339172358518144973339967835582842926451931574319491335842971632577232499987885617634987536951619353982671939927216536636625477462737532497344455365439977965957957465416659955339266379277476188327777617554114464493713184577396156636226551571425142689649527526243749487323366934599554147751161949414474995812585286223613818515292721835661126117896951567438681446153263239952975874715254943766121673551384517542245645671328114492535737786162768927121889379321713321296277178334679268495425699783628493383825432898624654691521243684373259418486886194584555387545843915669392581355548385149327126325954541882986327185246517755472913371227164361434616349178956962673917715127728973345779447695794679371448379521592118338973858275158127934444248122178659861128562134924874671182683988742551984335755597587143599846298897286614778628577437885163898141361568369154543999254976867561295786941739296612814341718185659419317367692416864578541576746929816478151778834236427894871187747835272548756778513719795298311475199229741971527915545929585238177836721751923229518372125776641112531226335862139887361265267418665985134451433354931596611518546539744169289122164749741122652185961328278154111928957656324941893657966613799968731178415916445495445532572117269337172883336294136744891629632142135842562133671725697636542132399148286884623783287852548245797351396392575626779119192163996956815182266733169878895461236174744252945315743536679291886894937738722734452856499964336372687884546253726393376567812686778799553112498467846834942586525275884996547799848799558613535335328442989764434195844535298621575373945614339262438714915269924444335812567444216571542571746736935338182558347785598396235311321438236583898838335181192388536582418542526148439523612126763291427199148459299962172155329651615183976831666816238957262539815643662138913847164937648184813352325851922196647471367631326657574518117964772363395197715125512843651328517138132285371457799698913715922666566277851287226524765717957657867547665841327287696137228432511322455278626576464863898332454442731179128615959146112926916615997961349356159344692612857817194134446969719315577353679947934143539392464755235746637637156832927671164869927856153612771974224272195696673131132549565974829635456147191312853848432111455746732543296742313442613786745481854484458541144328782678895522469687536436994972772934224638583541193915428714845469992682463676589611875348313994524321674871393242555414873221986729153945868513813545941638671986424267233394688111671987729463818885463158245192329138673915215626565134222531183537523664994523433474575459738831885936786197876192224258567596127261913294252942262148667938659455877151128351569183275311224195412712663234125578224599666714183188347425553117765264395966286495583162541253749912243433485761492674752916127256523192766812262226329422362247596914269941524216833762917519129911329428949926134637589499792987612934191795211398214612411677812248813856416976667337895228184429582334239252868947432286123353686842214233415441569519827224689183568496353598913413364449435523831519148839799455131253366686136184549982492274753198547466656394813621152471552946883499912319641763824737632223672166571716417564281281619517653621283871793468945777459254891989344433254241884815242373331574113426512569561792363534682658217633923172231654172168497764267166743614282452116743763985843175629291336282539444448338263756146457533272793526124161163936546572759537643517837335355128581182484264969424138434991857733349922895731163367166321652255311183499976533649762683814314557418617612622342337499586674345273248866617319796197652332339514891319618783234218949244581338989949896244721152158152198947939238995914184638681379723613276146362374126953189615464122224512916762946451859414491798252534811373655227653824272247884541359575115335124447768398584777992358512317646374327774829963242187431639911569623165927874713465213841444285345443729312311674818534999152434519154966571769725412942548348291933883175619554195442776599483937864626612289495278921758548274352441473759464174545461546563586993678972164794936323527741753985731556359875223615246479261441537599335123987246887539691198385936343632148278441829596749923246243567575736114696982662533995826975467888144526985469358563351919811447384695865561869783838843616219563131973928364368373311849148893587481636664859453253473857153675579383484112557561167723318454978137421722815594331863771731491813779418576578854295423721411228579291283446872426553274145685752572988911189541878916424541224794348496721164131432653795447969454748534612512691312689157111948543168125529233359271416229489275736588266997167477836256114975971654573318879243294534871818341923342345223875787236682742116153715737527896465917482463543894864483622864731368344351564962346393821942861271341533554654391684114676418822342719385918225767452595954431691425412315547333672446747671725493142313767623688845194157879235864175537432497213537712698771144353962857885575198898397914325739449772964567355695281774454266326271955116996935526949578421951121179155865113717741881451177856467897216747538171346626677531698589582395196151487772359756186426495821217338642233629351776866911943332182272142771218438423793141113742676148546419885472451143816363113146186922732191869821532924375239244653312124851154464538869436922984572471677236366736989196682814346449157619789924254731239637235447981253522681529585216626911328524341751612349251477136692667693924448136371237836177777714591669859245638691851799768345738983898223765121252328462526799583318833343386529312988782524779437963611338738766335872912685913713192276964625779371827127646697565562539761296877119247454533199116434433338594445546662154857359934365644987836746861725575255576641161424193764818669535312412142196595436869214532864934423122222245911921336876254436294177281485423429383275171452883544352348654625651597646777978712641912516413911596518891462129331762751341122274242146588226785114963986216432736418776163538343823718731131561248248824454851872371515455372993967245126633772571135581557271157458724459975725424211457153789592577271385297319737692722638319948619793231516485276139585485339365625127727848169189891792753572354515178995633452947266395223968564218753181724578682111949978417213488751677935256215119832387116122518555922156241152212128377943422148414362226787514793412381316957982947639549829874861486536692867418545171861781145622855661959943731851656192923299583519639316772445231133384484533559284463734878946834389275715311454688711842526787794924245945532756311423543949232897268414932153369632528819744284629321731239767988236133526572254915434922639515632965173122751359379617966149367385977127587432343775946514447376132425589515353423683289613674653559171512231466384441853353921896679794833872599274867336946293849172223557669252764492764774155498556773784458569488292452583192217662418529393841114212643769295752654498518654241513291157225662356388444384825656171123417733997633266773351138658431483725653912719612798692825574799215681483338515834931714813892372435172272228245799566761197977876893445612912615251251635855231667193142697827567921971254614897671435576638281968687523858399739152614945595168284897562137882646424875179154458916843911747643377393292841678372237727172879563218316285775312582674951317214642953142272371844547539763584515723834691721821917224361391215295758798189835568211956334111548123848115499935259437611945786766197219438176352566317179949525225677622479334753724226422187663799169648845122873219523524952277136841978935119527997581288772418861855981716562363681969687149147993588646161585172539136459114782638222321827436253338414134655327541771936423261123298726721391496572344546478371425412773996262659925821573591452657913678976553528319553517144818697498721833535946465554567834511614561328991637971111738634328543155443736347448949166922666147655922269289118826556422425918348819551699767646662128746763347233626674127459878628144641493824518571216684642229416733125557774228458225291312998669769715498679274373423936522814131394753935165274772924497142832745347435918419497963128982976454689745397757223497396681213874731564292217683593239246786947737455717579275247324513156194751358923421161154579673466378851718465669756242371978383964493478121666485146936337187866795161473687644946694743823164779128319732119974712582576427559482733324457854338137161717689461213731216396796414433868855419343186674932228849549823426131824464148839126788595997154916511671635477751932667972335834763336289528667276931182455444129444763358958238159631752493983194634217742377983379179344687199149298233449291274284936425634738143987222491496155716825265223652525621296219212553366375696911427995269235412966617814367472396312643559564761481497195446162835791323944685548164666674924491721118962538831888148922156557822219513822983921824182665915639315831477384463387249374939349429797916838131776534538542686626324481664862383668547768461818573166675492718858962389962612311122129872842175925578462323667169334186115833832649581621316264975712472558439783873762532581151781991189593546877535438417692194934642683952565864414823416792647929822999187469746596422346171818876918878542348849764425338924566322249513874945384368233618824857295546222823295934651176429641758591928771653223565426632137965657575325564548911493477723787121966235661451323416561166985177833168567455346993824131113637144619777142413872294289791182219152772641453424424374729495346136559499711422635733971646164953134798456618155955415433892787591261958551534643847739942221762591339718815256752919336959441218119459869695268645667241122439661286847611342761274766114649316579697836585986236519385572429325496758455541361413125699325127963669856519516525659296567642465943861178188173633737648973454779827224419216114957689339223376978539692427196287933189983322816122189791113892624748294764789157929191516942912384329629844211699821452711287887393873411821571437336477757461439423518593683326126879898112544224765871556342419587513164599114568273667912921734146716561975153923548839593561597422342134686943993524664376869223881117713292983534333335597742768618343927276626586954233311643881343661145964561718263452835274939342628669554431514945534496285141664292841413548943563616148611842179166268495223356539151113646232652553742948878142645623154458842322463856122831929942426929748712656285136294511729942555189694617279942325336328938385627112764546924622853112673612763424687981115522663154822497368963571315732695294276476341195923651574126271676484369177316717464392117791952516173415549536443271816234137959117394481736961228698479335354329379451557646235428185188255148734361763312524739617899391537446994132715725638559541538378796213652327869281217762878638284219547949222911912782667257442326747363753884961953291235933712911235944876111582293268926362461655831266326988715175878737395883187491562591962333443528764174835463875454523792156596959831856744927373677128922989222747848494279388349183982616464486751555197715719518379298496763467446519983184251947443342182493566576633936814859985529632383327141536131714283239773445684333757779318256975612743146695791844717113695993621912221861579847142244435566761224267192652964913238963957227134495935844315882889125496649978758822346532623329787359953329264846264494231329465265558571534776279227297947121319852871883121913524915653137748542134386143933913882268363171854954334625233137663988837668735581969635755335583816269775832342612569677783358627798159572142421433636631661891673957355637745587457698712965522418331811593966634366873335531191679552213561297449115856675246628723992697392479373962594559726989435754914142566832344422972839424921264917433894769764648152449128493378193943554853362331364132659355278348155844963224192326819463123754397866419851679183892554546268287161342445926575469198238688241713751239658316845526131719349818883387734264937661271363314863596229687174566569538262223224283861393713692713349226716285284533893131926752721944397538338353226367554369474335534939611946678348822353449734345912641894375276572221262295315638219921677793198688849569353662256954482921356374956853761674566418759213117442168557142251393512851311695335495483586154337767938293254761611355277731123148629796127459671656224486163778646867636915884778676758727392559142421883172764653256958869258316743391542241225949112152935179415168741482965592234255582912293851398884544947315922288681887529637551247353858771266128183125956934686885447687279698714946775599551162571327984825681488537895572834412863512378355953697128332668419675317627681982314124693183784275833942279756592614173871431125235712743527616197465378963595616155269138795618716139396411593553779347625315363944961965199964116147337567222484941361241178238515652293394742977477142225529682333627431348412914735596192761431224144235535188852395165958486482925235593627881313827951789251697363598321682411437452857991122953961351355879385367863216531319751736124486644283263763112363175829843683583842179399897947544285232315514848875664712471936994985425625784412731468598291672167356246643769697712378336536412226755832994411475574689928935884994299827111927155872891216231873974461328564845728178773895727311313974399992499663613279749454289299398978712359149437339972336535825917333618166857593641646362923723423969219378543426212488746316695844885193561589697345789615283114991832321293551513415741611422786461557881467728852164653323744866834145471217839116962141444259769157712197332187282171827815232426485926982276742696751881581211514773161574399514732921136425915469152895142127614437864265617439256913533128531384466954188242579723248263287736184295561675676432216147852779993772242934492261358286141982863293415217557132728525374271593538498862734582541436264283739513486894469131836953231771953182992337615959723132799479636728933421118755337234262454448824645264525689421188665324249931369693199498349365199721628224193827364764687786121163622739414821974767455538732917464734646222573926336343351285238831163793162574597353515117689538311916441712998862943231762174247616961458355124416868758614497921279592466997935838113775892195894929274887429959446212695651243572524139741897921617632717713269166221735141898279375846675629288328744142132619684487183385286295688123483138539129974213895298398864252256173948996912388912537656723251126446399723557215585692521527742537683475429643129261187883484242437783236516295553771282229787577365596279254744598462448672267281131317252214119596789786838921191915697413412237927926562951949252736619448495757498472131132638147563575743675963371179148298665453959236652188611288464392379685662932947767755412848927487618941296439151648371541311141465261865342653731644781831685792295731823461847814171464483299379415229367917243199221366724559651666967577735357374867267416531879952836262325913767776457921683344565715911831483272492245118811336211154451438929798217537288361939571816462372219477465345336884145675914222833839842238223333617965711315164339959487941251979812642873295552752669811386545214668754173733985132618272325213884616434211493167256321633795479712797626294762325594229823524146714221958545765457549812628121736711548673532295297626284762649372733463112262521411532225737916381678893263149679331471931596286735771334173576321458124174126118187276256717299621161758714573399137248455192932353963997914142722171349591172581695548498657159556323828329139817565636564767912527529813921954484923922264177425725511222416522767532697246594353858623824719555144495159471676571146718892655924947198764941151472312356419328986121156463783183348332453437454126481146288664512222633315459631198578621492471498873235182294377916431868734854936475731739559571128362399517859271857667558455998748454314157283415231662871738186998754478213916328351417125196635366425586195997741138757542131325264695686651386992943761623536182247663575292122968313845876563542977588723794829472596993716166674759249394249472823561572848444595685623456952366893387374242455852347814982298361817327731311244226973338979133619427987575326528453431452665931539999253538342733481997617181934562452897216626863372235429313338544657959893781178476683367681429384549947858771626414771443135687934584542572866954756581828323743127335946124841287895373562917142182978641879154171611212658124881566441727462656166131371329599235455487121747745455364136389139585522417742317727223982782939177151231529127321113414336483875818763489732675823813781945716652782479949113947195439393536344234573271915918232686193594998674291674772237412327966639697751833623674525872187589669829679921665832544723833124437785947976952857949974919361621762328233821361636182486487998238574473417964136472239953347392489841712922364791517136944163377562685925352195321151911876732429581278557879628935224924937166446197786433568397216287527842839871181139875933382125392593334188142553795511959347876867487544342335442331334213585485525377557126718184125164862453288197448518152473642563886197419157156494455476427235388471379643635592842217138259558544299974587813535756865453491341538976227177524156767269688677517645525585354124149724982672935257139883955158434981651875515992829782994676544855265944759511595431368779875656542916812545929753618664616415968118112696293139469697552516517197532592214227135143937415422312138463274436246199116314554138353654383936727452447325881128574198639116773397421716263933864767531695629894482668393234471868874696437447413791995825463968523514331552324446982759486189224819452762423279931865743357979348516729146145161844453251452919928956122426975851546911236416481156552761231396973512886367636339589581632843736994376712712584271316299499348775535528337882633174185981381762461958162151229732542683332224585937767166366842996212787381545733174415523951419317549844474365641744638842395763975449957697546558235416952616496199128399517612929151952671441912286931373923621211331597767938729157912375464291536588677637984949447927977384149684792648151991594128936132648977225131846728785731699399126661772222659851815796338113365168249445361783311566982312737597539661473577896861442653824761546947928228768585737149651191731232414671724213889346321144312628173249287716485621645497153134693621313677998324295977475351611332624521496394232693378234452214488468365699946892337425567689445266368192146775496951486267195437481772915829558636991427187416524614891217988593722196655825229376511644552762936472739988985451926534984174249966774124516325634538412835632841826647181495138791632648352931133637354735257549988953599246543522949515959149351611488844849494849995726445559292413823879182144538421351842816368347611643143374984792943773383611738535811262589916846922441865369576574144319141661761462418795925767858976663663516539552716854221652632216753146656519186861232826789283168984132728136836389424224648327942334659616281666129644343959477627939614874882573383312652593394281345984385478225143295814925971793442983236928741899673583638288134769673164343625634384273624357781458323866728556116537319223582214616262726846613181756338659399562451611116538379679157151623124517448295741251471459567924297442395359663495861225124217256298937733845452992255796943428958758164193134557269395157984629576568794918762731192119722465363265845496979814137961788553564321637752977445656132264977129413114712193543222988383826362192418114929198446777916482128778491613889182522542423578593697446611641152475749427572969393513967273921853494485513939899342219896158389295593541551748298184892884918929925646946566124649514695237965215524635426917942573426748459661725568492145843711539771614471893296292636832245622462654432632268146392635251673181462474625873164477319293135538397161981823112147457468434966525353578312227611459468112856781892713248737141582259457119661366335435566547555759439654886683361152416938283547536512835175799486571474117293914657319945885141628398128537119956196583399969362449922296261381376221527731762313588373742591342613643634675465927585733133266541559727327891655329549218645222861541347569513181598358352781512881272483373867765175584386975551375745912515417779627415639789666414521153872768342743483843458517645877442579125414529231557232944562648139669523899222382734715485568812763324973199133591656729413468355129771781988439762198867954723321147981322884137287725227615529716175275982459391561527183667417958179156955797749355787865998479525975857249777213658926512642239289534192272854623219146189444195926546196453112111314645386116187595278852983682585192119115215528346338139185322535628818521531841149135284234931616625513417537757482643294217828839529739447555314214115241188729832113698975577931841366411459144564565535163394484969811315916827678337656858132579773176532913525297155428316546685237931139234257344474999739837193669982854996363458883147691628644932887421166211538531332992825247326512347486369135655241316382797485517594468191537676334636511561158691871444596649245148239456786724478962697551619524497567299497424792394527681472485189454761534798371741847675171972153921722641326338126612461413415132181896974832715726691254264759439462148425329842699312831269992112162985114718838171721297437869143451619227241914243576668873944747166423176669156389387859531714112327938653762121251623558771924421823824557859982283967772358957623566719368225188314792492229335243415366187525958714319991197895272477732256792353436269242324519411133531311937819447511943982497923138672662484739874746585238964523743392251761971248824892669935741874461711217123151269484571388433155228498954533352433269631194466442981253657453893321468696871253347342446534673624245426959877557692899862823265292678836288896112982757448184517678447832755661815184222263563672229295729569275797969683786593456313134211614675222431239943783939381716721412784934458536161646828512664857583333811447321822473549922379494513714128372956333933846391792164198316485243526115851179481579625163573791822418448398381141426234725233982212418591543511949656467128128496531891451243835547533397965283423994419837484787233922466992233631993691795545766371516358843319418727632433524774247631635465995285728817153193726314349659487146748483951613254228759335364879529432341222692758129941345961256781141138589491332836634493466422395528849241563971319131719871419356865715996113541529962143565172235485718835419933447354976388392823791483366669785665947861421437759774444691619618517274871592484728286517138186725376959625833281973467762555739487715835883354121581757192852532734636919972481276393536563554999635125667839357748475125745953452295271596773777936369671321951542828863118688225336517849549274175844669152464346198144419448518717579715881962489385675757384433871688699213557466372358159113284987265455358137726794122348115323895695244166254434652526811773341192125287197212992361366733128134231517743619435249466761333349145282399986966237484783244674479759988775679649689328191445924228836189243915629987455244979936782669141519443337228249482655268412537729532822569145428782559154258545943427175891772938214127976887666443638951783524752634579143371943983761497441521389187813838122971382217127838413827994678517253771951842584755718678523585145217741967139175516857516317417923764919743697633867522725639735592222782444289512596129878787968929656424254933297638318225549262283497923811449268695321262434854232218178184862641364525121132981871627276712894713397794723474356317741723457171619482997246377125734397665723788516726546778975577445628337114153286743276949241442441989323864211283161263841585826568928664119274839834624422173787178729746937855366898458387539447966238272351574772369621749373715155472572671566561365797771913518945114938689828997987579594115315625531471172639298954634666613259145922714829748421192467812477465266594177612979155216582912688585613562611772793942758551611122678555136797791793812217292344221437762499883851727948143399439335318828889712121417782479573143877447686211368513687161916733742713548518447356226483362264492823563352686579459661646337539691776342755272211471714424881944524945623435897619893126929442276641246324795228592391231561199366784827399319589216491434558732344613486253836119654147526457624129887752458794868832369233871217666715147817153497664699332218233986378122977493192575898825537236421722651433874347144298546373792479392821928624792634274445456744269823519449366417969671851112654374493621945591724588494238644839117462658457126118241688528213828235924888847915156813716938319658983169267368516174427419239657721283412129211856457872271475328186776775739817697398816696822863638188563429126977843589725642292738237671247266127827521186384784264343128465697941391729664478796791435273831532516186242537385641895554837537835778734717446158325827257459228838618267183623492125511383567859525575645682847746178832966356823253257159665723597741158578692741774287639757869498637742196912786996189857127385864215736688319215596654721126391441736866971516953687332282412343427347161775464574582146492844974248272482848469767494728553245358511744673359534115579133663125722544312659993648791146395469628225226141573641357341698667213251967916475289487713912232324568468461499955547397171136668578169271978245269479223969947214431685254649568114556235933618146153247554499483299735395293497531456729466163628823836362955544883774823459749586277642623276736872532164963864323143477732323981128441472952348882828929154127988961583383542359188413227922345882256567595149912268243832626714634362474951788594443921738367722989572272627946721818564495285767861518444271789712969537671569221356735839968196262666146371424944538222219816577351219484481333436583737577578285771392582536811299882611639752272942964175279721375744865875195589242198443635539272196415646915418167543133793182758382161154464825926214619123118913892616511194372729599717125154455391162534849652661136473491143648435229539622893824542879998997219216972533433897961254647846948473692662751245524996872372913445981816511445711646856156442832244817516847668982494195224114425596497546695848254838839978613838562125772867263555568884784614664345621828591283938952723426572549598746738312226518339219466931622663427233467338735836876115875191782448276622619952716455997971284221815166855258144728748623613263944919329812633895122313256178585539644333496445511867965828451768862519443178773847794252858852457414458234526826358476637865925972313833163523273364531582137741838625927379674336593618798228545187312925779249827128594112968871964329644671836112825534225791252736431137983621912961551775275477135754241128384444319461377371857315745352912983426885989524856564442343111139319718885191869864976457273335612768532664219779675695798725612486181112911478288263749339121894122963462222431159369328415862481997986385824573266819169617362729255398747786262186457985882241631451456242578613428574698139815623551415329929225567328364763129374681315159847136859295937327473943252131755711275772343299312145968257126877118468189677433351594856889866977282499365712688999626788349961116326624674226751142718859929186183636714122995678864293984912292275612383137887785156457167535391296432171637974874112143671854745891283436154583924152512932223386436515472798183318892475228224644192756189676239222868173852119477983877421525317144124354775779327577213663821155135877468752396827177115689237813423677726814531311228452487348775725229714125722921499448163983753668768772745454351932751272435313215958948561972485433285185242169828846472352783493459733439189687566334421518956199837497741599143441793393969138522553811229188132473188142581275349452834441531641863671675958295775826541597135466748294248356243761112937222593532865938327118844888152624523215731544729838918199121437114188987218413933136222894959953731241836715155714548272953248738645577261363684643234393828533926378222612484553724971426963842286957287764315565931281258421134252533275289388756141542556641812256364145779425253743396475597664633719259336289648391337249472125873953412889116529613681739768374444218515813987835896137715938624596338912734489231212434463129559858594879273757534373833937273746371379785956484318677554133838969955496243138459214866759758615845567497737891542613656148344412362124381284742932339369278567719351843218747457932225889582134261563528868987122324766574538275971227519781566434412396462611176146257614535238962179284265378845371729853633825583423525529255112961919627393588956641984933547128491242748547377264571738517829864594417475346165212588368932392548126121885592881397188332264244359221338152583526876314934744897164749469641541864897545898877359721254641557456783468664218844164517372286616658622249661784712266335813141712413318797228493161884271385686894153789861853831122677593491249854219327478948132655142644491342572232448879181245424159332175739973235839933759141279574618976874783116762573897787118587522425692332564693361788818526264422227943559927188842414682988877668764833322592934345381932353646543916513488147772696566141334812736783464538532127924733121983946947989384576729626268334358372374478795614163466946333521261358596216571335578619618666632699315569293434888813229727567545734258779269478412669712947737492724371188899325759647325739355372992416873821173141439111818328277284996114182162713979418611872711346883661487342178911223475971563832785141313522443968447646334162143314653681221126494173692918518174414562752776424834251726759437363411178369297233433531825821157145342223364466853533762372843853863713612617169517359411882318256156246526297228216364922268326878456234995417698232511614572266531136114186813321166266589573899656676136815357372812383145291663498593796219491626894199727393496979637793998842843353738977529634843999814736573645772593651222473348187728464341518581773413928481746976544176411844519252189232475394157552842823944671213618832186543984736169251574966641176164468991544199698372678912695675695383135334686974795541593213563653444141962123994865799171876126619616421755113477992916988891235888881341149522671169382515445488375158758411399325835531979839783285985788714246427393926767467699784899527374897372956193446697442559733134683768599644956863582577254277333461217644519194225273272998795228179985453348553146511291197482596784131148557362852168173759221917172748919189596221191552556726397575452283192369159157267955643323749353352519142217751913986823392597293827234683118393253475271563167986486163826142594641229631299268826816284914349692221652925814715962253382525827342149257553159824542518198338968832772844527931781786824263645751966822116931184162929183535991141354569388698299748517648744186445825793927592233568759227362374465436537347213334218772264337346831359889468442769898374522228866267749317962657598383972376947113625449589814357176895673351453248575533841297112361654477268875762749972734772671145385954429529761261247151645199261796318682552482181481873298395613396666331657493177265496994241378484154511293614566622861616119329771189957633726939918945538717752323383218965723987534285224741714947319578679344477946538392215591827572948176569435986671394349686911534821766224292654426157476372335937696422531435619831198565359174124876451186437836369454469879238971728419513342387349882319866764744453947326561879232731774448316418241378771996333531227858625843283766514341416272288887384222271121648752933521482867289277895192631219917711231972615933463875196541953133133283895755437659763498694632159796493941256118785815376929545536984999763137298837354678599226141697919665347888589425814712662267117362656437474869564197416345182329989931133369463873972159366461396692921555631336294862716453224518349535245852778114261114542514242171473545928948622447561154644738819658257522922917379763759993973813484157751212216373699965786448848277816894741459339563532772553524473366347189357722424683175692961618323119577836818247571743344352177916679827122421678677161281839919863861116994699186331834421986934266549268268884657243168523892753721531889819573149242584194381377723459129789139791642848425843794991949836763253379924151424287739583664977571375996477249244284566662766469111712978379217224622326178942438773548578481482834251195472479522841448662425865167585665788963844517211712614625421147613483885518797172224292165134387565152523568328367771463272231693786691734227226932546842456188594825933627257612625492573211966445749437885141731814876456423588233475331444267815754142389885729762674285977247649838692322572384375868928197418775629563929359113252221533991522972231996771448631566576279799917286394267864846468155595664818959225772498933592726628824877711532246891422741834823517372913883294283593595282451434512917216718924533828365171313213286293761317656988369535661418988175274517215471367863778474145457445884246461713719935189931565594232921915656668218517454444842954611844737925218155593381313371764667528814429862421878596333146472454818163618487525957519738315341643463446551323347648122297257963224879258115523531359636115163575198411814519298364362338987713535516888283256748982498324586729511938825263272716313227115977382574746713717355346345634585123443648636296697738182311783862743365212798721549383174876455623442263385221921774522367491378619279924123551936631132879379761711132859564277829183112211332447696325961612945797485988246617931623552989651523463462717863636287626173222993372528597939581451335366123477175726829551751416643633683574352923789131693369541299852347722355651581517854122147681654634946927397946313177491935263234978617822244955221242939221352719134682974158734471569224129779356867667623353623418993841864729568461761827211156171193385717534871386538492923119299532276411787325264799413414292132525675377625192632854777699365225298228236229378592437628329835812928455219415146277458543859667374191855523986438442822853239296711493424764211695729833624641156941446832743477963999537591553746766124257595683557497754344559362226192997971862229839716237575899282636871916196717251355812462743981315583264757691898148545325649266746455356358779161161238874841768191475411796641769554157543894641238718116227545717381131266925952446437556738579497275295444584497471881887613371625875182841145342428814597296356684528741832284282864756757283282534517934146634725138946676291357725365425998218838327552487525118861541167484439927383552314134262771469158161247239119843344517235429317421272914129483611977551467975926291631164221395539316633122228188293863497334131935519932172447492619325354591745119978134865945189463336396997151733961846987211744116385334824218658974599686758677792322337631726437839631959788227459889628868455982315515295769494178763442615283288811567232671127582959645154395789612123298865313639214612712281543262139516591265328167731955283448188424222219334944227234183225137457535448183516589728837526464593178143673744639739456311792618721943719271344398215634558811314995369864824221719894987896937513133596725482926961883239577888131274622318771281399555724997777521369259992892296213193832676729398255953454653956925375133597397252387673418587434679859743155253459367388626681963366335754719464298142396298991436744861726812314188349832927888473582911384135232888123695824585511372995181918411885945489481773364792513551771936984947222179613149612722879355625166986298632874558176865825443162447693648431572864296688528724924829891272788638526186817956473473543884279359154726453542992412986178984859138833224778216734886418383928663923591637593457942219274581544133978233464614277375943541945576574544855339955456433277715678715994113926565972471694784152314744951477786653643177813255372892445885684797662549937475941971891122826282193686193839781791547276263759355166895341616928451691654165128978644966887156344955819858356314813345431435773633221586176114297439847986836252687833246421443646819275982342442798469652485217137791935132286524791814535961631916233927153266288542898274321324219656654162425746884442611452298734564242287629795288663637885354661552222487832731849953375287213936673117434729572312562534345134398168369743949449547348769844624295318461463897196186378233491418326962639584263144377219343465884837436331497471276296541458649637553972449871919992852876617674278285293434124683527171318827567872651529414666972477789485597828728146283753146848342963437197733387114414736617471931531876355265519767426593248556283851134489511345884769314247985867322227743532886945649588388193562849964242198157337797215781628658996238635199729297263319989895512865659468721426891153827164653896147884297118929798135197376628824632921383683254367112418143847945121768594918812318239921316922475767132962954675674742233121811353592395163584167665989269116653229994323873663722686521575362395438745538799614326242327399684286284511581171723713285156778882664643689759743286562846442563985734921723648948187539531721744993818939889492541668136983231166752639764784715448414448245651396642919352849675275324869343198371596121865987567645421542117181574892247453674779531222291775256592668947565188578793192486948915636358438361594875418475951376891126518758673798258248729582812977339211118372154376343426591762739696751426742838137726348263999425274133882335699243417977157738593698971958175791266494656384765311594318141166252123457733232316544531773739678126771755328585455118343123351849122622786635915953827895541322146519432412925131665416622349754886333636751622594663763192396182271325255853245814318941486916581386411857727932492993457774338652215231263421943418738765819461979387844185629863495355948571181112436952179692497232565664472588771338558867561446965219326925834953236884996434777458929551211769213127146192462671676412482717538227194978335726534141175394856196377357682862616812419359777629654438293673846721343533749328115932621171392785365313645888738768294244414166362565963691622717142547996711478117931977538147452616196648581533993833451892981345943932563268225364913774327512796684387387182846458996615733189355156578669729995273225165666988677272845576917885358591721853913372599761911819333797419368935928432875674978412158833623938597398352492591396648816879981371992197465849236844455673537771418329941884959196432314312934942331862249126625443254224345655326763399912985257415633223259363131573735333377847866367187265466448232195194848368782298453589578869137994687321535681479698445871444445996281381991269491329137288445171297322726533178198992773627658432621886966968344744625169113695516971711562921476487294618969133696956325334728234135156471838372883463244821211743963918316477363968341337976141125797599341397543157581198384825889116759286266446881136194725498472684453214865462678512692412559635671864573853929238645988427659566348435454556752817441624438934237771845751737659854199537551197118167982119583379272715387739565434644329914983859558282985815881346549937292716741122993126188314182321728588344425714685455371113178731326211162817493751231652149269515213959123124725251639894667232846621736784393566838938134444826519814431765694397215375354694242627573941254141534453561448445936769737743256657477439778523295111686428554164162289275794594729385437483865731322672643972219176977949519682734536435796199143848878253193137115281476893271456618458216471229549229949251642314375143118386978231392773343286334644535931819858173783348849592364423268641574392174554156639259984674583698268391511313761147411649366873365371294276617756523664288499213948619395344221432713294369964443598794982451284446459784411552585882964968154335324949642716316542586476472498573333778491694159851194246252661771334358478439743978685939215674161296616292238484498253293315371688528334944573579895277521432955464176854743162959911486838453911876618943656327269199418515628332519394834911636197836954146738326916369811489277486261443533779827797813927221828156276669245349247525648221794349432965658657556998581382218317116767526961134885172119477511429294336561143156231623564385891661871779295161982373334967317715251273972232915679742933439179316212213649258559518948821533915736345369253292391532691322995356678545658617588548112595936295428512471138616996284185724317983275527621732187639411529227212785926464854736462361618911744895745795623673295165171357127179613762633516823948398313994381785828511541556755289215491717511873221355521566777453127814267117252591424522814311668725552529887394438927935456439222714849355465347551564917487652916146165332769798531355343468932311664165833388442632655837472129736737669925367564989579291415913234964877116393292148496528454322434986262592726482134354811163288171284989217111248656126772125286461244611779161456737877528142198272581785153683773176854526729571173632476883282247896557339772734493145359634274295151535828352871123853253462987994869765913931258722177176881154321686513693991982662881812316867646792197219392543868679828351931831319578592359377345334153816873753127483616524648247517539646211254181855985663875969721223422122194345757591362934499869956851384582431383287343471284264793981751612359536296847863752937462745323829951351134434313137262734179315422186384613563181989595754376278287352789654312416218282311248213557161475497326172252173723563418864613833244344154177772794322252255343277149469254432246141812638616238369948824452526355239221834524847792158635277169935945616295348767268154669933593352714316438125145158335187539654598261235163428533651747464143834732189568272189798919297439879428787265214563354836253919426286761347794247477899496712221388548773478157686441425243717832411423254496759224873875262989346361917922541515237938946627233736414449323712972914694533519415757961891499611792674564748227133996793721332729739617562128125139227349112418844998279517149299756658664729815566557272476755616473999489397122591857362626637676821239526522789657315811729988442537589193411791152795112359373619185525988926198662582721529661553412658243793789511236962362347952834236343985179162182167692992414259269394846133154227157648447771958922349151397177771533981285439696963551829936755521619481541996188738731888666114537874736785413592755427951962972686386237663214114921175258227375698744542293923719713848773421674337136845215668187427564136168457328278671139115298771886365233669763731511266377871197447895548181314993851638693412756885531821296361876596179398882622712466273135312145393853523522361199556851272913195285983219816178444572177834341813953325663542719321519398924368865712938398783394446383774832957652959761242181457323625919445916715234977534131557192149895932144536364935673615197789152484853537257199227762884687175933639557413524453483232363638257634698265973993742856241472911675674748523137335621596255757343489216334894237815141255169285129767659314136545851649596221634336933932442232397476227374271764695529283856196423725391312613294146972728394733172292188546983483534282688842859958317372362381949326335574423627233952473786831937595614244968575673951993765267298873439539885471812451345588154324626697472988133969241164353671977163246253882617386626557297221175661148293812557351344228541792274432375382461379516221111246482449153255941715536659123734291469218797585887976729624568274654738475583952533176722411943658954929497363619529211696629177927456451211269474789237783451198465161184288843354642873423519668192522854352319625781842915216361683827222266173584947225328187953458958484799912288969538526381232171483722485381273667535116323293244542746212519336572233372252559934951768135432949293693435834221171123837261536716396871727763772663495127553519438195557799895248696991894551769799467724416912619314348942633141363194818694228675423529411593758452428674544596856345336638423323844251389763398592447717834157171498353421714556918429698932674265378277554583372232239298645986241258166491611737726335418295259265944912519443916521254598662922589318318748924368863553926891174175473967925776148463327415416264521946737646534364596475955867517686911721847495615397147129586146233775459156666952154355336624591566581174219182959863857432111517922231278262663132393519315582792518929515759765693679261945926465371834726518539179545159329921739738845464231144128788583819484846427722937757467447857714789281789239145568686576129154492238243393991314969364879226415369167156735863591616491447595821378661423241468843225885523226461312313197196978542314893125466137546725438983438645738742616815712678386847364719899549933452239149333394938643672521725115139153135346495415157318749134764832453852172514122147581678892469796547926373244824418166163893565414343112389436187553547861784921511567229249443755268989845171311956663497993521451928828574237425747523623835155676571657897736147993675142667519191656522981329139139975788324343729628419282542218225359972473944644454515735932873459172669343178235582463858156342949991261486962884977534117244266265244926562191195152857643784236472835693672341751332323378937675677214462314431373237916139412654621774763746631184743453382637882348216724131548833954237666748477164648586614851616426422151897298895833959517136461911111529597242463956423185855848511867195298286285456958946124656876862549441875359894586245626387378876452551826276418351852637134339811553234577222462669162487495983892421885778172274576328311214761245833192552615432562822286233749292449796683977389212964949631647963972973978953146152289222419639195586383282653178176241398188669811865557363764672484482859367575315649516921365517685842814886715147338458224182517714373473354963175641613567812731226162686919275897363938868171791212348793643266852791332522313421262452833234271641941134934481527191474644328678838724852393559442856398332516399529744624616436751745621285682458122286425344859393792353312251389265797977124564362664871652344423832832294946632917755573355571985491249331188422864315946634814278384679667269363514297566899183724682213226577264128686477329344361441325146214164611615144658115742126827865318417628438276224331811431897954145728621618938643544764835742285224251831147552371981954521272172185226899728622224317344988473245346136851144421558667624712274424617413237349878861942633948546121311922538363563747925139772861622498455471318823531896152833257738633664121679455683592125372127946112413771537881782932984792231543285414545596573967729199927863833583836366826261484441312472869625685524987337694839346126732278393176584342964829738798679651781262715536511184211967253646112252671871715567962364894442584538933578555493838252347555319225715682425359723227196218936238289192723754527633883364618464119434551685483947282444844376311629865231319953493512132446177678586755134616421541148123811694678572369667937286884493942644647824167452138549413382645815154911157863271554912715161519655394815769291544129213244561714632711315939327995182239729887239757256349623671133711823433869464957619434617323398488951172167139565979192611854655488724786422862358842391392282359345318769852214325614488367676114876499174679199147128131679123346273311423577656853925783788925981546447778859126367388666451671949237621176792599774122533142859615775287699268793781112974392327553273332723617136755893385954192188217592547512347499263683887915733994747516564916375119772458469614161144512489346535369141262914964822291256927882154988141918315353989838475441963115826165125635572246769846151134241963454368939286928669281828796269749521288976787765259598796535257512622574833642732539336752457866776748987923558829478938891421865171295267869769575983264263156684762285297373965849411838397947398356466336837811358142451799391963213296465689736521148413953771722155212855422244683711261159789383775584957887261825854379177248825921376343871313664842487246419862529843626329359723372156534484663154475147138418543138915293557754522228242449139844958343562348145933966565835245794184673717427412358238359735595828387524918481156533116528339623787993718131184161891254578666554952189525182629465514384558224127824387638947875158348492361788769477984928152653938437595585654215624538245337123952777871936895479418938125739526829887754531321644651991498548219484944833315868472335494572523234837266257392617387986331524567627689455283741765519821452496672866716127662771525645893539622668677163191391738464817533819312718179443568855913239844566848316745176893336119692984143316877631397152182448451272557293283964715564216348718965825655312632989712668818461365932474969272183473451456789885434587272247832948243173279225413732712647629399575784358751135695541214247699632339132927936418791223816562413888469751431696292258355617531677495437498376498823439658927171778664572375845432747949415672732842742256672623631835612241595163447159296917136651745353942886435562743585892159791432316523287847898223844549898887427286342922843292762295353351723263186428344379843877764436261579116654467919238593661163834421961986895542423138471325655622772536926966782819854133263241414854634491591231338615192692175878183372555254329434742988348278266337624778139846186987485929944989669334534155517654817191345952121469366399445639347666898553669443635216835337641978536652488248737611951289919982528666515956895842844143111712217827362439943782374639998824917429983989952483448411176215589334185114964274897258412675528953543212798149718689998966174853971747371765374797985291837836513247525121244929292362518536564662351117756465292285548915994215679351214639422225711659196554622425919455545333518459816753595573117448231826689315773161628839533182539254211226979455725689725349711762493815411764275845296881182573848182553375268564736968211984379253512154378232838152235377613552687347389591596542553848222777667663572799934943958448516377125994327292835343834742615755264215641942598271151429932284511518353439314122882582521967571836558978534277482854128196458923551463117122111488311462878396422776798847633798382261918868812494254339486181257711672195767656478534145168765789138837484255673652296339161117641464922316384471789355279814233775633468535164486471281982573198583537557585625118726247136983376749343245526228767845345199545522753357194739531955211518999429589118681144137972591962938997341118938515689833773911734238394947866419769492227263271245515834713539643983691137287631997612187159421394666343117879786366184261618371232577699983875124932813291484292216797317741189635944424153942188936555424153241315741615542741124471355847558296235145565758625739515918228225724262716113582327834843831684759852794396336619925971861644616691628873196812242211641578121891821118752346251659346149545585739199879639519176266159263343119751464735248278946454199297737827517554164987573718126966423697215268382773935816786618152238543111292592544179741142789197283374442247511851892593219194515412496913311278215345329145664937968577981841892145486612797882378332952831127228391552416692333881943135977113247833172287778968956324523362689312724521926934888525864363488756976446755311238614375496193177529578717798474515246713357548974348474615224642577959874529459926756336292346556766979673292129116419639223419393187472253534561441118889877399555676266355124952463882988622793499324683384315827679842412994676166142348284914849829451789264656773251359184239129812276356777594737141132378124254184239941526818952636267626151272198162134479338787435278845518952234642843291761198897146174338775911337385723317423561639562843278565826913753638845629837257917153278631482296465646733221992562338283325365267935961198294991256218265261724484641218715264642162535343953341613664499173194231527649291129511862162541128975284744644593955963882363464644672437124952184253315862219541217951535627785874946869148456257517744151781136297194942128955869718314428468522776517293964245964312418192913485584993627744825414111923136411832239527599114971442365826439577772637252286153579641289313949879123545224782661192336842353974492233129842884268653611693648799342767699228118536383729868693645848769973137236566489324727635297754721477214277594979291758926237253435315791314926695792377116114431782566722618959754143886381954447453533232965195383352319382313649978842146598126535162223468219884541735751726566689439738926538522235844222153558431999992755971348918411114923692452718382968874636155523677175852989489825636491315531993912426821666743417257315662229662985986217569461873315146114334948621929924152342238248832314399272713992564138575232559213891791662173342863867897629335215268637124668389717932982634336648925493446824129664554569262543491228384695121727147551285223144647414119241879647686941459426319633769141862882865326414774971984645275869437949245998357834939228922192287438167771757826642112878856648683819894163443623589174724577541368332459157267579513268951342927643499668636591445169652147819281588384743682867151793227246523661899556537277919877222529648363618918229931322216534369324325777975589439822424246625238845734811843252416536934678297422455711659928288839465548128985163983423414196251628866492483199251641686773912817358157711877262298362932148112286186748752512412919513554323167485287494841531896265681358795244514322111461823862663194371918263247287899153171878416846321427144824812136491539388161253161372597554268232683932626531522141962567822364996533827756873736217244774442691661685444317522511227293786631335474431285619997436534851858458227972572482373561172148741863312552632942144166671332233689575717786745222616812774428181637497961273731946348787681633125481555496639129815355478746426182845756236438216437783843966333621991997448985176182752972422634313533669528713925679536751451133422483444335793471917552938959799673215972326531283184157241996881591477843818395524377173797265564465992119962626884186148149412385656773237375912823456175572362113945684747664333892231284931518437853312486244584681422296431556156879817382188533646817954159839612451518457585322134418638482897873371572413483325524581752462472249732519971131956117683111839923531423174638992744173142849482194449349164693195372461824469763458196652132144584613312656763216343934641211358332128791693554915474462977438999649918554916885169368931186587156241567693888724721495781653987794882183822981857222371353459462579697427825214479789413945961384252173683552246427744627919377976457561574589718572926112345531771454717333957247922248861352998388648671343324455632926885162161154276948756834412638221127177636429213449222233262751674482928333722992582971199635746558175157789142194489671998937323355836224235326621152113687766883221921636431984171327216833635294273595935278519288268427763294131627177692224952125432654972623868137932874968218661361625122274451451419144831471217995423798334392943431373549655495415566163743376612622755184741842646214164223326687493521689324445564522533511124152513235168451249355938951753697789877154371386834664788435493632759683338477393874644884941371224929341367962718647452625551533644935175192932224955648945286417145148929424112488582149151989158624354557785578927816845147698726764831442752655422283321977214927744429751939252473427456357286962526913476393644337351769553638785112723756153493592547177912657737521823114636298964221942854146916893941613291128537584593994317861949491541287592137463694729541698729836569328711799345424849759786656952622865996661316381694871529474212756992575949414197416814167761741618847548829381594267291211199845277929873332826647134555992115516645118796695272464153938271914869377658977398998445386562383255687447471638762918812311224252282567389285988694424213756114391211868654549693313793792374551349671364875462498947651984692417781296552918121137417735777113128356129485831595947134257548738966972249261657949356379352219349171799748416346481971314432747714973968169238642983417283496411429163981373471535353926288339579595582718732634794748457927583684612126646552564224543459528117695775371637127521655354723152323725349312153764419497513398637224559498453621497294662681132926724693311496117345977939919723546942984477896291196334349777644646323621113136748731536221378463188584683488422152923783277313881863428929944921338419421974966937916745847956861645625521377727519478243539678985798143318127996343767985142212818446288924848722695634257158287845311286481238277931897636627712576927752854868453279893928172998858379433741412895731918721385755548823565774137853381268739274471375356188286456355131836918467365921732869997351329636348173761875935656244767176598155263321369527362694143768857218859549152174542619393199347629679398117199256171137336627239279527432844498779974421759371197985725441153632986384923494333919971389455383231253189347589961219535868967548468692356715246779777971632464636729677981151227716654854255644336979553211322974657649556782883386193294465189687828882661299331532826459744381653583668686126154316177655326963799474285989859217989543239877637154739328822471535241728821554789639139519358763517857573125937421946619252994268452669288447955223164526138776464662735189144525416867176724969191423897794579969437632493424714815893791663672673963723298764261181821397252948266938293437444221858527454518926587577914153943626861567219467989126653128599134972773984682619439865457515422157853428974871365412521251866342492262447949177276677857737258649819774426142491548158819352299555192247411852313416331944235985712347587436294754591767717229622722379292361587532666632796151131395146449386276662983772959792471536629938135265368389238264572832426474945427681262121146184226439287328617257678373569836767652291337247331886766573494428698841142883924726129236346342213619565344681951871252242176667483713149121812122891918883357342478384385816832329519224239919335444856189959418755912413262714947282599811283531973862877381319684474416636279521166739159686456673963617484141776521572483969528577289952357627843539629574119256598472366236163834116863777575265624841432172868223857449593231249166312954429987146271674293531688755361847884424593623229253178581631145583147166422818772421572111219643374231519141834447148292158869839723441413423119469814441952669912338247674462746354138221758482573258462738574815257189278937341994879453262149642355478653479331961313646911879311583837813614744835534234963216354876775191396979919896338447978236928872212972917317474441258187452683348749281666275399636389337461885853551231448761633649731938551724446291197817383618656652926145385694743521147178319685733891173649123895182612631958276611438169929852293178873312813275894677331594339721222158113528949163774648869142534566186582729242476364173173569181387662632622232124276127168826898364215672947395646262176326294464142337437733252764967669699967144219864387879157933188631364612294677111562397958929728233767743187411332595514153428531928135929356964753269528845834734664856149374221814217359954964391977514919334672181313512372254437319168168364431946483972234329545222594862456464896393245776863714915573212531462349675661897887754221559731155791471619561563314615712397633927344893886172417224565984513463323823116412862552624623535693554954452848176188573398724916634584213655772348575288146558773298699363319213662861827418726886641387128118544927553942679832481621422697375351994416698196335763274819195155186273714511927384167478934741655916713654939171418641424462636784375187636586145336163685495583681335743122434511673228733135496975797989619342784186743794331132245963992149695621345458786418874191152128759741645171483141858376814958337724345176597991783738665241633275312718811368918453354184699862258415995453326279938877843353917234971513447392528124616713344222655929721819715375579442966348481663838343221888115417625639138536582854443455281632414814152862931197526358989789165317981851139189939627794615456313145473449657753396142616311534136745359574178569874623283665258422949819947293165683311924319277659612337258115185694883783453991573723188982344641213895326939348366138242676768226314177782323744283289194551534671282489816735826381958255217896975484652377318444952149521131615667135477353645248435855365232112661275292462585333244431114162862158596527396159584219926152483726758261838924965271144547276525354842389672654996341111131464664196792954531741657863528271862776574798284565391556699541393294221453256589765562751816963984361527881368626115946187529327156946367619589429483247582983356368711169614342396551929434869147315326339457142414375494556365538377123846521866871482479893773693984632677165725448745245562255148191798184757799718275145437882837675457641553435251611547311298121856921226614717125966328525266858588914539643354834241178971431626712394625299446915275649921664521529311485926473664669348657833559631334631963222836679213147459561957465155132899287444873415927783477877274579447961172922918925989797446367678185131845115857786488218342749727351499662874732271281873251464574665334945939197188189841944444671549522635575253573785324252366132546118371475864267931853357348514133253379878695169731765995795592994986424296242994244287745217422433325977145874424429666644692781987762366643626614787836691759833931223962818547143459371656916564431883356866367397381956379369251721741442537627494172422246192431748578983335248419546439641485136234141476984863933445322761952695815161267144326224239776661582546243186531546986123698342864431893641122471878678274183341536391723444838188623214625416196488519579941931617444877768991351761399423426997863975819727132493683412329589694262221885112741721479286715656453954194665427229887324261549458771115521259742315158439271872366437232564386732128723359378623711859736418142474866477582219344172656163677659438649724636968117569972224962373912787179146635768451592681926238641877481716954254121713422556132833327481152712326622229723294462127597528668831662765121362889781653694649677153894733798522595537983337362549218456759938396655228116282743819334491133918969368971196526492948725782918538416163111482124243893554232152922422629766158626955796338733381977689677584248442913652577647496863176418724537839961725438127363622479392576286499889681659192919912633435933637224797933365642821359319242537951413751683767831139691578862427673851822875567917848292582924851743919819825421931271854287356232675252373577533322893897345215681187614756121138443242164433223794991973362953416691714161594292171826766444133798266295217626637395877215746463294694271921197811487383976339633999917638263916785527384776138666681953427497388898497315873687146164435937345319765373348336329719664575865858495841457295445381383475395686722814439498881964419648336333982853236587273471838131562836956172711859327938263394681768929715251292342963417457285466962476721599793257698483637537565833385942847356659395236263223323875918515472119134479219222364628887446714861312556388563425791496219267375661749811527141164557634954489588733948786911219998563874711599278634462484827124562967735546726561184228658729988271361628813725145315385478423329494252133956448563882383919874985587977642795334357724833437711411422598979965249187972464369426518654131515217142466512858295443288175953596548827731465632291148827789611344992218772928684449678219735968941364246137997419525231912412587716565539325974487528231298214819818534292887771631388941419845119374322285145912545824923967187662953348194482688932695422754862565814154632113721396538354126434625234116449755991318365414795682986512186528749637177251685487967611444715722967652388495499434524289692887211884441899962678125218494471918259481323593252882751836599251644926713736233332176131154898973472627483996272832583144546518496861929167125961486417762881222118672983715376474227223917181828394168421892212229299484847114758898367191127231446873824813958951456511783834615469988594925389713521781773166621214298431382517186662857387643442816936637799262414159276681483669922239865665819678889276641223152498932975227291694429228739892956355636653641879893951837557624359336611868783799733314575517717845418584616144192764157463616946646947915311267185446964596238531766741174451237422296329311499991352148739238872217484381192516222718585211233996466368924329385988584396428728434537927585798445719224772349282454277512788238742593485124483114786588929223226833461224791183378456789314326969633644567197492757468635322945287443392876845136144726927783275363785741821759913934339923153311998696551113788257698952385115487595646962952519436415546565722633693891752156188692594615118513875296463252572977795445837112427669478971611735849642124297828116683636272975557943684751295997823559273149257792135942775635325358596724881149541428452175463582176913356217513256986314299781775891861282164648452654828482611875345486465272125469148827478959932348293137956899466264846786476164442833783667346718153667532135121872323945856378354419231224367322483642671412959723139872583832186399541113821411483239568632246773845153723511839698152322161572221433623723735134125539224369639738949154744629881926935263811551485774231897141285768523352851143949531113119539346798915484873119121966383339574199637185468498521352679378397891643849377293894787325491164442431937195238395483536174419998444982959213737928124613845586384812724713278651499249425989894752558778422359382415976332759954327159375673892342278185455619667119181812393513664289977145177997421831256652494338338542525639442297314246919613664142681923261141432599762391762352382949284627191567855726121718818557357921383629474432193692331983789474916455121792662199574756128137522945273978815277713384833589816518245822274141579125452637229198283292363588153994724814613411839253454338166163877635185917523653124174177769633749211788572451748492294353521739462215638985419939812368416919122165787863168258469562336571193344744898919613581916214517269596953855384589149139546942121741251225755134393324649294881281794261781256837475722988936164212226116333788921214641937998533361782116383795279324887767244191124825434446423599319115156535161948131624718662112448891948965549247563863821459468434879566724269466669238739832417235225224949714471472682226142441611298364962271242565968741332666885721782313264245528872726214134216634523999341846778214465748359751882435932513137653169516222142565854773823568231829917775742998251324961618864371523775615275161587445541778894336762487577385179625421394752284677521368131542444474532521144571645553738178167999272612531297751351262867574944124286735329926812611843991711628263413379247478552625259361576992793571234464985514739753714579791181948476482682811995393169444925636683357958667416542488679113943397295514117527812522739333697174334264895494384721178889622515762639945388765579369798667351418433951311134759917117889479998448543594892786932451192274153823755237912467592357289883344654484696683529745782165694949124937394855858954844877677611945938842773845367165758872942374272681624261483116636968295691212174829966564697361512131861415485833715536656399297956985782122563515212714493142413412742431512398616418181542127667858813951354199582428333633792134284385413959578514236732175195175264366716582882187547247819122256882711194443469588958133845375798361998213373513592555928873274825142188971149633794273631862129645781415371648873223669449916643917567522931262721622583218717419685566272912174732557612976619265899711473257356858284153677363638915763451536323733381946945179355883372153852322191578451663197994981418693216634951415966514386224325545293556652297537938755167474747141152243913395121183366576113989189924248175529647211533472526341643466214561677622642463899727679661278373717396674926174413915492973463147887148561315577759122525847329735273446168316249338219286289666324342882197832817374914779331748926812291822669883939991516367784722919969266622291783694487724213277842492553813231936477742377211431344485487881939762446287731714973241428415737137934834556467467872215853711414698576756545282662744685881827758719128277828467876282267239613311458955767814988612867627568986284618621559237318835424163851239459699834476299261988217823984219427946582867325822951881557373511315481589444281149126971451398352915345692116772115919313918357297429345723971561488162251633174433738293143624352895591355654121378226647326741858928191671169712627538919485852993962141618923949596375668536499116623324586665517923568361818263474687312691432845131248333212596568518136693683264542332751815973119216231882814991493142327433173631431953623545398273199527825493715899456144997227523131161999514135953343231862794972357747132334327234744864451437131495766965932295618273942393147297122813446173625845277744758878587244586773648564388148583192346675989349344674942172517196812634785947166692451474979348887766997223426148991657983279123476916673729797578958558355893992596371113532879352198549127213548142984589144676913758213747763758744125794873183851885254463576287771423192317361595232941718694683461688682335982321392678786416665586338567529771296681777396433782454598147636297562552526371459755462376699324592492586819542419121647855586722258583947552429537559955621812289144639539231477447257936674799288123371251862175288761193547611529734225736276543291118835457447786241493661698394462792272464157891592366822217523158131943836874973257667985171314719543898725693699765828365913518225339535241691321194927123492765573226514268358191392977647997137676489257128582614296514336758357327484813197356242457416167494617958235343973471238318131956273417686148825673635464421999267918161837885534198227395329217262683571655382253912847483115931896213424269986811154937889755725531437888372115181664183268811418178596821725165745635212348961816863596712891861525819954116963518144161119598654141651341439912321718872128725891467589891161916153599676443233913752211536425459221577568537171163128333759592689386534849155712777743715712188412228636928691469717325589173599147572597433592672399399212846221833319263858724849633892773898431553932285589829556725383651255345526354591941337343742786136118143927131989928247291563611545263695265468573938792654426546744912552367363646237369182227113212485692456156263827246356533431432376319347492644467416777116682947921927248835167554589142647655846392598876746578313534343618752559151836683131584596195968185638892972224185976385253732866951381772116529758369687932686484735388864462964941453869294225859324246812635349994189582442979972274735564674187546591657639273389334844857586559532532545242873348129751757678333525966482118531945326539153989953814129558591959919841828755816535829162538527712421138116516627383313916198566351281189195739732412722897982315798661925475769918381722125111313744371755354158964558488146279971255723243774877332896192581987581825943626757134264198197939392898542138781228135473555344359456324649631125164835633649735768296386772881629629141987636312294416112963416561765934153455428539483943544655747361163816394667677853121919777577587131855634479644252514664336413761519138375897695639716389676159166233978522812718221214681555692435216784223372649786184656715973293666699252918997938325955526114317142556322974424638511497917587268894163588562294213984152877493643428272845188127321521119756465544161384572689833599939934619645667864451529863749131114732534963877969673954277624927566738378438163346272831359775948535997789975624312999675612861484941831217235448377395965638692959137459116497123369822754179263545357554853413268411524258271123265661351759623166938471118461464278963351662654219668314154346787872547514396597762733398911644141618649481811642956981768471247949239291319339746641467662684383687839182838583589127833593659119456344941375377421332795356186779136353869995522556529179311219544317657372728899615691464715765522615448839954596522694561823712577756911147178993247894198113477975342982911888341845495587222121112796223984117162349871737839385616861444281425168283646999311466279456186145339919336911539966393231611333328184812854998399125634553663348342422159296414175644684439931711861973611686122442388333735252313317366555139576565238173144918536944925348348972533857541323679547371866748673685741597826839655156251749546532123752341145552868421557431243346535229249598211186123358952539252969771472254353955237565743274644688266112162777891647126716637757166532716898413831717137394838192473289112346318722531427979747693121129422531937892685523254111555858615165614921758424992263418375913166588889661186551947385791484784392836529839592791565781524718471297149677436919766863377798174881611727672293323663311287525657697646936736582121367956414654351181884922639361198715579145796613668671133135688748425642958713517192196618377115664595544156163321629518348611227918469359781698246338839418923987368498685358648534954246812842782551735291137367244427252127232462729881128919528723523324665331617414734521711253333877292232686581155611875166758166931293369167624928298435713512761955816725117625888186156393314755445371327244735737797249628896157791163362461914632496484837428495126523866649149913628414396234848663138239521786722897721558312245677287762262454317549863396133637119481732683271744158723679573323394172423658837559793932938263659383834187766968574248291719692963923151442924417121237225136579334649459514732436151217885668961457363588661237837992825491441724276129182146848732133724515169176113988176181183375844723431386178631636155614767561445987896529364312462893246579846243433531984712893388945636443433492247526347491142118634248678519393749787532632585636143135496528167711486731577939162871134747223557915389561247492383919113131566765624187546676631271968539153482245424866959134879723966953429328156638888215666458342124874459738438812791922288493661233733295462616783154588451497158715281361416615218352482674174237562491594265685891397767937762114365692294826597738794885253588148535354492157926464311652447636712199184785784527645539899433189751194471319862159228391183451442953844989798437355113137461745454145893461989515722552845665568764946538852455656178713495558978268337342439592797718516418263123253381628948226987148671715688352834562541319217793715177658276924347152596553411438459362438957566436361225263513475553318165732827846321341655283986383243131643921116237742343632192757189879123234459345636721547232196475982831849613374151569228982823215725852692566624542447855516639811174417352838397896197625294848574427116435455418718681364728349988263383434991436817382374711611139473519984453132688569941316451644912199822681961985614211248849948422774988219196227438183335243491264248897494556586335835111274439994916529937237964429533445967238419449639452285933294813192154484311333861831534132611642362948173453837389243453115793558425855976268438493486947524789242229838949723415153445153741943446561256132211234485945614353641334786112481875511356828134772982759424738912277692926948861718966149196512235255352161677296867811911277928373625358279768391193178244395473884167292353856431986724915242558721835552392247415768958968651753434157991187395162622911541331833577573137629344776385488736469544534435965222824711125752995336373241822345639387769751548953864163541521275395338198113882895311711136971417615223831295126482856436711613933385782382259131945984762748765417512155582814531382789869799641354331481216532942714672312911472778272692994815344452222194919358265946984924863325959537817936278964853294254162667464577658333241172231962478751928169175291154515719571574656349258994912185992896942473156868855857742371566595622315242388681541965881373623894314731693739339681489662429448716158174522791334515982438231979414257638191798316422368274529175434842456187591989327275132731725861321239284315277775193285655176926229914319835998924835411737177712835481614311278568259432626225715296694787265337563626917159256526995399723122667768764259641325758653362261768368473461979293728256592527932491874162761344355872162788544791736775285726259452768899843917286877722836416278846392356634835356117278329726541715486232169822265927288332581399368217864418543481783431868325259331686557857494529539399855433932415351147446863731529713496128789982344897334982657559512227996669959263177146214381854537163576815225518349351314529467947253613487237128132122138582911881253438646525634253493132367483947141835627978255647242355255229232198876754141922278778833468322433621615164324925139786521365437891624519519855318772214766649966843715128917756967731856217143863625896814678523214958552495441439125831358989539423715346612793676295591464325142524741696442854681944428159727252894485777124842611311225317564289681132882533378197434654428782843936491369464318977314169764446224623611359325318448212728762626461191162799767125777389514434398197146923369522436344379229991983219148131319325317245369299245731615415535996194612526999469879891433422498368371443429328457536742241883848495582895144276213332314929676231886411848149585968844119253329463379252326294647287574963833188149417272948114435372334829318634649147964673141513568746658539697525956222143575829916668616465644929283433523993115172472532776357914875232929214834955499443921742824228432562494491891571671122244341933239231355863678365348146285312123586697199622436824968797468938314459496716226561245553139468735143235478429689462873831158995752745784855147886955461598787866952638943827922318687926276286131763234433468497727486952517734246192144141521444986133628298136947957532963576586588998472241797589262168742961656913227193239427446297877611855541263862789682569663321328251233513357721185766638318395458291117759744499836772762318497972418332241593133225611174653542799264887486339327897394391133182562513256622613367841355422935895297791697872528471179685237738288164656422284379372885361511722341956833141158896312421158766999233717659892932293783922897357371497531762266636379848317594643225567157282687916176181686889372831853626966446853235144387224827224921743242327633178871523777366141381344841753589633611694634871724456812445729854977287794362723872571319235544876595565282331438347847211152182714273173472112921424542474545979125473984392549267386614622867541931675247515333931296293527439789247264866656233498632489695254578145871588981399838319316924151237327211824467279967891622289522998433164679284717824475812395431438814338644388778526552151177847993775281266675337167947187377931119477588797453661245631927111213717383952654782548913421664599252216874231374576163994538157413971521546686799475217756892454761667971654382444536434341918253344259779435312923765673775453762622419818175958415876324232678412368459258554953937497284333995754293851748992267472629342245787758322167497474256291121382734582559216257763197744959361383998426283722138675331992547165943684476451268836786233464991515237251343514552999731753525137184695295294521343957845147525583321119227568423712268396213313553788575954266854926495837157579615175783915733579325274141832136791985121731225143494313978299278459551741635388243358592647989839554386687296724386871595291295961384187618126533491363529974724171665824562769569656811268758321819247883478714869216877849953588424579121283989623755245339644289165161211166341321349541444638428345656711585142181512992737483936355331684981127793428542165574272842374883363162636124914153777868549981374642655179812845448448337543748859638811622291212961465963212633311458311536731213919563147797651323199645263346456871235371716453238443238721753873513596511161484263647463521328122436486629417771713346865976225282984391813297126593998926596644147354333494687245775356342523451779268498678922921794639262841445234861387391867516773398662863324736983379624341361847987629776921931529679811229127491631472193451232783279852619971594515426476915314159938237786731493168955626418415311524274188162144171237619749621328573994858612882184656671277558676725227171545882515245353241342869642271298781438141767167213764694584345973339517424551855724192858647536633624987655676136491118645992433448592275195322999699961649279753693689278554199531277168372381417377841682595435332367326119195949131246921171879892431232584955515152676356376479724154547665535913117281924748341683649789631347837136234214651141227636865516519431149687775215927888679527996926184841944782484939629128268571468247995522551112872399821273764846282633125719573582142822746835177314948549559827218421833267333131651368265383977882364295293354578445449522761131865795673595473811681352511178334327714222136183455871141724278328771184384374482744751313534899419832142764969939338726819415533327341699871156572358683886913282141511474773338812146461165221421252618963937293375959995723522874877394178385961235412513442373753776911466639822665676898251838136519128741696881362244389444397526147871748211817267583513945971446595627773285515324382794316458891491673163958931819357541234842577464641636594542473726862672857546412626431792957868944979396218572985526831978533538871799237736234736584992136732914174472917655637287723813618823714621962173195381692425985247649717192677287326612327376123977221147543515184725381631894236557615963421574985524442887651231176182722595126262863129128931166592935211225336118242681665974213117343149977181243793622458175499736147629761684679941346747818734621665584252656766196226447431446941696395998684537226683984352172353687338794837437785748348719526885337273584513673295146124178149469295929126782176598416969521782673942393271219219244676718911142848996662196571348562956591143186234573828372929614731182732881369378816915188183415533744855238961647119479426549718935319866443469711958117723838446358966124856274586235327341493552173676159551842325469446844978718421733448139778121521945739733883516863825227594983891512911192618163571425347539487412863918598472945684896961857152573645943515382491863586669383853361259619686449844353327215699924123934326612528756699823852411943785931428462734485959681957261879267457574388646574615524746628647215382386438926781721916214338257486245241399136639826877448213212398664628786834916936991241928162458562611512889637597546437638825592195328499378218215645351116886542625921288741266391265486338422916627896145326227725771239254185187123238834811345355362124821188632294697245261421492924725295351486154824692245528643985319381533811769131947286464617668549722723975297122961393848391526447281798497462543692664558489993588278797312373199182282153535852523645896993261422861253277222416481198686929636853571864676936827435164958194259668297388511197535655251726649841786462784842584599329246315938832636841288224742916971925641667772317271972189936236757163582472372322178354876541197132823936585584614194473171927257429216221374435682887336614536122439495389925374583143828932861781699252823429586217275768972496787344567622562272295737566373413687482431133316723872973513336645464367175815887411271646511962357621662233323189251853199225879382723835441223426159188786739736511934165975331237211118181382114174624517578676591279359657584217951382941954589436828683687533866283181544153845774856373457537347371269329463196193549499357717481685729791412684661158386246126848314668142898197632863316215316686388188792324897961318137478312726717359941283641144747754611181286639814237579253249196951613152824952328192555387446344962366555188351364442743454495945833683827483351663724745497371329894331585173784621826447136513528397723933323754461314327431392178237391731318641376776169273332933347172176665913581772967968731233952959819822176121662333452132626748836285251933621178159334724545263423985411831752557655384886644212566793961482628345282543853384399579273434978761469191792331614771434265986927878752753527727399647158365998693311348688836898955188917277851217443726323493583363349662981953488539722775922773689263624446125762529828296746944269315348545398939158616673162371324315972531595429694839128472338136318356355793724585469676426635586355892898234226297436268523713234838883292653736217426634786223652324184461341871763831191941843384792932174295837554263248865712828715653195748493983256875166861742452482579536353228586664495561638748213651144367443487985727371775446533347211979252793566248753986542113624668572421216587363652558475465913548261736111479412438468296334599219851574288914767515561389573244579267233616557417859556612876442452323383594137323375169652313242667359419649133167499678388745515543222146873675361229334296591563466888975286255923888497891378637271444995818227971854781469953559486161335767158179464378844958215184985634827861578854866629386333646617631489187646599419825397391668328716183941343554814684251993628535377174932922394298654961485539187134443253662812261552964657444361671535761416119495596362828415912229551173833668611315417452621985151483458454324244661245759979597822587122736697411762368463423632726422356499393985816521551532298718792391922798412361335556662546523664726123385193434714237311963995448283318716164471863949341196293748366472115686737629346129331622394189695957391151712768931273444875515852977137384252733284649267657931236264927571672223233231561891279337889141252712499796431513753538681268856287697791921528421857288137577444386824637144246755463775236913421676953391146216979486344773294252471212811775472668551543298156994683124824197981815227158799155948914828927949848693153711957518749547224143299484188825346536971484476223411286527294673132465728568624488894597733427833271858726196483499124116453437734438694729154764256526983935826363412433537749131358258231651619279199579971882213512914616343149284935886181642137654821444792469293278656253934755185576284934252791678296354759973743929671434665662326491568683682482126643714212498913447254783719649138841632979966645656851136991867235842277116222254672361126677315334414154349959399745512769966122188573756779558181923438523845887149914345332472622458965947179346545755358947713537258525166697594574333622766227224437225977153968427554125116565124499225541192966397856827561657912131744965533411115541566463279185851348956161424332489527995151623368439715271591245911152413595282385737869928457954213564514536959791553438777699692337196541239256176339479546421121993694251771727964373522114358141643655547838424413544481833471554855379514394457529266221827126215313154357236493226332653395232239273769172332722653214386116695911845351336544626954233179982688731434279134131739112752724798732874747842784524943399667975989251671246274473391315198119946384833677728451919921799786522971264942311932698768281963177629995367628521269391224652568113318827334916349553494938348765731161235599387674894623848263567834916266264487984161861717336395256753228744425329634396987422686295592963518556117229466139321685944642369213317173518382579584933162926241453765714289464942343496159845969568149884172454296164831441542365898165197355481125743916845234328477852582911145714566183684197697296115972621878226254934159544619537357444551294169159574165136868753817142666194733187852131272659436658944874937264366322288335338224155595482399666778745525592587151881358627473439476526275924216796133986516357156399135988525469487134915952172144863787819565329448128154479574675625822173562918126939482987541864739532232895765484784457612231547654975577621255725668249752575325222868245192918539325911165533242664511126241126443462854476684143617282184487898365968226866996416123297238645486996697594665491512773284568688885462742225356367216571135811332472828947852724246275553892922233219137263614163339482131563554772732534745476378419239447312277327269128332752476384553127346766998267132976759485717941655377369171318224839651451458758477792467448363485882538454755579826927263173877943249782775585373583369676173768189742322772443613518146926461678477999635189712254631355622111518789477248653429833973378687256721623546856541963928842429461186113457954664256617189825287726782259782323558542654752125198727633943828268883313633946769294216414849227371255489781268632261674464248163554329116669496567427465397483444238893218128337968597116921428722421611832755646361111439669887811421765151859663669141244771815158121327181435642569935275265122722144241215813828453786371867939932462216644948754729134615121596926455512146965154781812936665747984943423436157715265121384152675255556675915235216442673718825765637923994258731733391936711526188833383217832251577235273416871998159225893794998824215786974457849124762157435565536355123643379163254785593894893232427323844647655166597737377639411298354324844546431955517347917232292144489551448298212914923274455474494351449496133792127151342879136181652823543646678295195283183476914318885392419314967341227964743216625658113151594885635866558946413549242737733356547933972477282467992648327347552979992697745784254514665111584337145548363259192366358622749625719974371424373311978446122572185192579691522934713888375312224451748478195757134972157733796295461417263245781276751264259529858637535558859311124811948989124366834627255532339795813315421332774453466482363851588227397292812535788713415918888286973785233515457243992613539973378872368674131192398654866979928119354737551485277588137798276163554269222763833625458772631849321471282871571844923137562882668738394784384865867672135235354615889185778329367637476476525751243498785521685371777276967726496973421396196171131125692125784383283421254169752719711634175576973811898331699664961696293286279935345785573277988175358749529456518417929436869456676691474986712974541823736587968525652679622271353256254842799514265922139162799352892345945688133318365464373318573649943572391598191122611819181364547674436783679215158172662482732488142526182831714681395793997515325624344549614518439488934496627938584142348344349216646271335619784239267186539358951782978674762732385484945759753373133331442641834812634511246455185474648775196217867227571161675224495685292834928734624365737464717127826981413226511678983691927116563498484288734134827192951652626224323223655278663292234742371226568818165764313656215444526344929155526483864228984144589213844881157483722333814571589112641534553424361951151621887923112767871727296851825623662139437347624977833929187474992557959819477452778677737782588875759773721315664135271172747161283754233962933264965449235611749821589454756934139629414459163396997652955865887483746594673356771649346691229972288968514942138399497778624735671878278173592176866135633776375439754915377751539589529484543466758645817626143841825746538219813694594288878557551913233426773443659289292751935876952172638915614722466746211656196815858939419721215842226656659227269493419678274245962855815283993994417965735265721786288424664829365554366983515423552539854994445786966688475429637391495142464312634272399276971957325662172132458671861526317653974421414341139274744196832867757815263793734196457773519492251254572196552987926234241222323235727574354193984122441344656187272531559243678873439788583186173226712351243999891131992893736914959561575591462574127984117867214215725492671652935156145131669189735612771926868663556392195697863373869685566258622563439824194332396751887149775994183553747787224992821289445346484261848462553983234396721775269326214611711249367488632555183485837875621316636316121672273624973699612299913899865577143415458726312449635636837856424664544655241252614979316682578775877375557367267347296664658114432887977419923775737286416292142824961417953964641195984563211651969988532673968962861171925243941394792426776882735789535614943691887468267312141797336863278914586122696924449132141284344975182916931266657195255912666964148861747325756378393621291571529576423684734178721243353244184288554338956328924833559242754733521591456855761563842288957489442132647174227357256323413618273445916931736434646548139754576118241816652856289438338566421634414146158472121167183826221246645159425667181344155613678633675335411766336618482772386724846866173817285199745113813157141794213418324817834733754957545121956188981147999694716296141121778342863228371164619722972774915719556724997224225488261998449335998754695436763881748134217644762641472578118538167852473286113531427947673225562117293962114211912466254978142283897734493397621383953251134988511228927643468247382251921148145685622711469424674784117819348778299672359354197393733474966114876371153477372354432768482858634524221121234677275868691323242411483523957824392329397256494738814276124753831924868634752361132593269498986399912237867574122899417488625625451942542582812366988827383481727968876134252622247854147143551923751137653111386759711834171735931621666761312525291695436811459781247115284294217318685432661336717826796125289685841284176162428121822242217653989456968177293578173353416866391877462835379823867681324186313337672467998697284624882334781171874552518724763913975826746452836461962916372839722328422259758441172718465749457562444633369621863927765251599111767274361216456939423566421362497679148379119195882974182657719135329327271195421493282664953458472636737645964386612988574661233835486697156477949344653821657237811615185782422817281374561139417445391832237422419749293292662347879947666847457829122851232792281165688997516185322128542462893366593352422484514183728735422792175259249986773133373213383422148877214483437993873419557848968795155192653877567843795427271813647757516799853283582654369562662812333566331638386435834628127973988428187238592544412512147346171946323369695419284139878964489991454953986725342534267224717728754926581463277963894722848526946462856357254528347985121123257522937689815443757444613171714212148321283775952745778192785843456947833246458715845311711221817822593983861191713633827464974528362323765952954329347165226722178922711228232314195624416553911312883497497685593759161773437347715873352415542168345822633959162469325889119296448756574648974939332867126314845223393766967661214919614984238918326383131733833963166531413828133283785345529979591847485212543483985411792324247891371575168149488327436448655624276353947188687529337616251955689418897229374664336565627891521264578198866778842942928425135671265715539936758986933589892292974685325885648175846346955416171941142889998119571457871911527798321461594455395765882972967894793416627264281629689474245541643516444321324243654724226828982279188214924449396122539815332192242748823861168156122324294122731139189573957265664441413414927646537928197496414972723168216919474727924928716563726451499662195327346711952989181291541288879227522141412129934729387421752312155573965438711446384755289647134183335423755714694244718186631718439457342758371415573177825134248149298547941541465292282763926939995886135279296743813228132248444316861749657568312488414647811873814457886219381622269681243286848323592694416821779142572538594674341246929384513744695729816383933997683299176631514519595184251239238523387522521818462989825314939286181767399492256616215431416345513771291329728773165274647266169574693213458211684856553532968214521621171718593147171943458174485356633191452254366815343124333287274413833353744775573813247249931454382253135166813939419395188834869372766586434986177246198515733741565137313545227128888392986141887131138854322415119944916297121184526738422522734786265828464255857282325584318796246482256646548521423775765718722263427598818651679735981266291157997234289777564214123826251544369257695464316675542287412748516545758799541416664947975215928452823114246926124715513119987724842461145888554135215898986945823266752428932762994913571822977218667244112724516861543649212775757985765196928664667895544684217833528244531228154339112821599239326811286363115355828571474787166865457495346542634617893337978136555715712299575434436793229249588531839265878546659858669234392882961249611825935593298397555713178781176153595772564321797631899745749246146973379496428122375172816362171196817395455912571916943443565512682539857628374152956512517897154537248961834594647992365357794377114211896231716577521562734486982664329675286368564848855273157431786983358312193366787949811376956525522228191297916123743383998233382839687123964552553621938132169187668669588454719368288953933118352239929721626387361342611153823544931693525539426544229982463927178152339538887796842418151428853748754511468183514446739519337389823782693292479675261567582934854953217433484283966228277536313331197236262551525859231424273566354238484835198219156174437293755144428688294612238484221195715755387741152893465263442835748512611582558334365149664583554342366619419132675366212231581914782532367248896455371217469778794342781319351784676382961478693644966555578143888232978885279341814235919174763556546354114143478626187247921142824444561694462583818413155213855717114554185982277874615897522939349763273296838758363781778465552592392369612422966932496631658719392445142457872871456178224782377855444251742444228979939747477271767343833461848981993259928693317917313735945635251231129688833983322177769785136432227522792642218943857675257611312418331833545592115635692554881822929238677748256566757526113469317171134476871978756296238277633328159137793443433643256395623269316213158998439725199931323254883254783369818139472636372929241371175515116511475314397386984726748512743332243631993666495353527953164355656442925172691766529927241228914753343477974341335651891595538635226996626924242826995171955239761575149415395775675939424634979212782679634456784395179399711921836271682144485412271877973515391768793293568481468452616431734694339444346461175689477289538689444297834518518353857415844541615838196766791445756825994613399887361974732122358473895558161677826124416288111713765771961254651964196117354336493197112378631151357925259535992448544129413677445511662655242574562489493699424612653759942886531114837959424193149371135158738389214381483623273884657314671514293686135636668742182158212292297735595146923212463614934469898146327127265482248546443485947155784697223641993372452484955313238886386141227476446735546897694822227167959264724352192112946299754156381521345622671968866334625776592161968871134456743474945585682681518314565364193286975867135436432486198134441123585612724116773484819861377838147748368589294942867842774432712526224357471547546561148358755467318364296395665376653798918234123269925519996232746939223388195777364115238733593928922957999144241992394685261281177131745783159334785715218474525896658881362139749158144819757965341139288263246239661972666612125452765264113297834471216523637165521435115257499519959382955119998615595147166581541513642811581112384358451231166998214459536968838914564684251768273685643911365641331331734835876423314233137625327561224219316553138862321123674299585319539161561146855755661562129388155786753599386655931237151652366918121789718457422268123544455951353598226618362563414878633771866591285177332239231439911331854654282412256437322535553368247429143873858782331126312939723831148179714531378527992265223622952381412249579533337722967973592237596411426561635357127656579239878229942211978635364814311759733649292754194268882695479285453179845636115193744322544275913411354311974118169887283237283245986216831643745583462754857848737852932983834313247254596788838897267857824755176649985631584812258326824172911668265497356315373123137295534339348131553221877844554987913412734579652149864819524389522523611588264417644999124846446993755294337662675322282916184652741585731553482632618241446752369931264435382933868334447938715163458179249873269298473522469434167416534778548348183494175812319421463426233386469219515323639145257387593588914234948541624796593856546713937657793488129761611225249531913337721516516863684755942636167445156312117414341159317967776341978324742475844721825471184839554971115392475885741943192363954733552986916745933148469652797253962226475444215528592417374668773685819529895489549437961859759153965931264443251223342473296158853692653493153721216324454483482967149593764636171458141112293996415791682412336939853328693984179155287825254842767511377191551331433438911726986993199657344312422692532328591237218522958199561984998714243378367999133174987681518822983942651797658784412374882193683297587656413768557343388346378358779831238743812125596887226471239847324955614677257578425251377991295861625342443861593476744221433875343142711285131916119245169125787378659524867462933768754378585917747568221591437199495543861632311143867841119716666958125836637875212474796341374391625652764589955935559261691984188428829357669486822871466681398391483423225671376611736732675418957157628384878485764728921219211333863192282189759361715634164428955725857324813257199324721195316517293394655459157271536553397541936433739121549952412864575583324661775476469326793412558567922886824925717239467422492972764847166213391832114529325474662448998195712422371615519199357645416522782777586885484149358494872291833273352658566174281266428821396415447442853219963815586256533952997651453771464468217169365123617323545127114712383686569872232299468192749377376345421482865547178929627478222693673575662923494349313271317962193861319599883351976484818445499549771217596536778767756363358263853737245472395418285517832179363872633433222865255987669394199247426515771387661255152121314527848792273982579354921646626894321872162265339337419813141633936438593283924138195165813464991441636565619721458732816484177992429422961918831168254932726719657441165372296497869975441444326862813284389587151335156461272332966113422651735713291324281648178211385325452971227754831579919789484896361417211383131636639517224194995282377236427599372438788926277951754692344587521629185368526538524122478696458694891365824432655341413192758813243327134797454946195779795332268228771267519178834431254378833326189457417418988562121823921821349691545355461642356667415355543549725354811851781931499792636519557558532585859813946493154168311412463995932848596754928266238994579984616667617293549891761717528311631442716637666215735694761623891649785627126663485285889139584898251868928443731783941741361697115826269255966863331544182751942331396327983946878127416587399876822455563167382662857996581964952562368927925344855687781895717296191111791161676636477381773494248323718688184682359375828489551983467192134483111926133823528681788623338333445562794512362181348654455633888555143594448382416993486991516872517242846891328646211133836693773721115977576352852776246519862132416818426849474615712446272999548338414743234239495985817988239281972233299961468121387698773497757921128923939861912647293833727353226343868691684686798492952915633156615735695552439563225835787545334212361833492784332969414625523328737914668199941681425379456154613496167144266512912834617854539259172276399296858211254447199976172567194593561182964552354515342351891712695927982597329436345438681334433146366412951589728819468696515372528148637647489674274915726582837694348946624333896851988592238429342743574938554146595892346359226721871594536723359421674927873665938474435336123775252519582295364129784263491144529588446126866711442522351564371795717878174589722244752231827433125919968656215496685686718628649477718962479932169827191831936646957933478566778337261933468141823511546248361694928723451441895947845687258364112121473165997567563815376929718684537717531911128359574198527163383741578323434576766664512455312526826136582993569815113411797358253215753989762151636425464217773462947822893317173762844647472239219427853845357569556435499498194162221513685199245555731494445539461736359781135784234462848131352695366713442534136385944275682161125326965273621516726646916565224144821224782866171157812472371144219996471872245397435851632549559324637321326263641911763349213431844663687747239968196293588333189424152386793882991536334349266419135314879189229867236716498473636765448536161594592748432117564263894966644214194879185492872344936932123977116723711637836943821986187464654492494555297442721617459183196651384873515661527292689681731114581542212987331835634225452568143928111777653197641653731246721683785836746293779439955893837254681436989747754343973152449927737523333163596268947241571823432128755311896779357387444324616822191424138772222429797621299687132259533357859782893793142273687484625914352457314217623376699115728464131939321474194363647126346189719416385853463348121274524986628169138355964312833692826982949681142649121836648946837617473435146345552416187363397313666113656723176649677451372374253581776932784349855372354412936151931121597973871147994175685471973715285766421581433158862266658683626615488379858629911457211919951213248376972532963677523591621923241753883566812229183865796439677934983465819654711467365398436235982756865677374937781766639954377411832311723281253945779127836215145838149575834999239697955543456651842678668912369161551687846523736775521423334462557887762772867748461773927555167662529142354683721495298628951839364466488829317931885344536635112519393216585446827115683285663588169972964493227334935796936944464371269475231743185246578394229249338265961386718791148417761219849611624837877747247282353956939921963383565464355255688296157478176742729318269163774784121712445961113667116854411425262792872928331838374422717167294698512676264542534882572575867649938384882857675277723112986816469219613741152626659717361961882699825626998811735559857349311526928844154386619273412797837891285581486926411265869743821284174271481118547341671493491796925154932533682573499178532944844616267914577473856322373367829454373153369146689964369321548368249886238612391718993526442369571924262412545668372617216328394557889716299334833528523866637584659919167625568363426785853647455442123753441546526648327189613212292118516662149692572326996417168662255638765643386577658232769424338417263113187654523816114283271566875132585119449859245657967899881324962983811722814193651633265511731668326345427733433148774931691166336478521932872814329656638788741381117627885662615595238132274275413256386464241274896319264243176898398519516623463373255435717781535277349944659699164271166515581636258497998728975944798452138533712232661913363115673575934296572891344723944545258768727358218363677372852613411663289154438958739226229853769169516793318924915827698749853594515296837455312395424763428111924587581986992631245537723639176142921868234465543411979739298513729442788847615195638481769495516279234645352496278777436914824614252234991486153941972956643969882672439243951993288393763234634969352968472742289999285691642873232174419885163131961854296612144251678848587991927571642858615273771396418554941414397363495423627521587912684917572359758799719874659952358671867224948913773247119485839324498666635649135775358318414391123882685921274418217518258128847292563812497688818975961326638475398269394866928783732492649737588199426584739983837785886522745489583233984334187979751945421341432811447212135892184119132616724498362687248417989266772649367864733155955734428995638515149918421463778319185334471782694543328714254149919236295862561371925833256924325898466623741916978676484314529734272737239722718143723434156286134225825537853821729183443922342746739283328757337416811211447671752331374379385836573521623339752941523218387573679836313537738698924859976195169172448179288152583433583895179837465855883524646823848544927194451321691585239642864558834967312154248315396985218121656775412622785247952931478418495474279489994644243141711425241932112711696131662351548916174241952868284111297512238788217357584823195321655459548749486714719694361462695366236357269588718965189117341297229556932315449558418454121798482417269618392553367113277158794311148542331976455396839142761268448114548119468416342156289423916193922227213987568593636491781215199838451895725349464765161524348234765449433231685471751623587139811175645898145827668442741161613223223484232396184699261244312145732128352469893197737949926219145856662296111267843127154766875722627222962128775662825914814697669996641629958438134348342881915385837111782585111779589955678698631763421862553441159987418413393856451865924274866811493264546941713641151589745842519731243381644751163222627235941257799817654841964831196517891795719677596192775546192492581731192959155652371499996576294977129195973733957631492227635694652727891567242156155974474547523836864365164554592319186826366189383125925143935875825416587382895486527959568415746284373889345599657687218273764198753234465634479837122648542325958293373296479332123627877261195439491321237498595487643796995313874818911649574319214198659429569264349681643228784116775411622331319558865231542578779625945571774268623118145357563963624734732152253825369633838623349325493448871744434332995581642683412176228167515845224227182365877125725286455661893159125456746761452974873554483922558689724811264796365439567388184251535253264623439372551956582171347375873286987265826468468287478239452359655453566697275793838268777149585664755178834432726644452887819733124921368429443294695664823133486657516855811268871333147534763326219561789139772225763731912925289122445216986615243732785492342728394853241881226973478194113886111227237936613969528193695355322663569365116183468549413399947329387712955782815155238463713934199633132129646621872831265946517155181552299411415524133843862211451747586465459154144678563626312782131698495121412352693796163971431219434549166362525477129713623999243929461789165559853212269863557516179667177435971421517693657657128328352316731852463761648372675987134764186946637111913479492111174139992679232595263159411339924959366342965522886811125948293539353753366129962313323994629549837924128891449583948758393577764434619914316999964495247484332842388378939784296299492573842957761236749595426725233144744574769563596583164528459661485963944429776774615779738272111543457122645583222723964764511612188916163231285533912416663357453532551728944348575522645231817617884369347513251733451838178945162535315992679838649648754776514871468769491413732835422724153358189632749563423992374262156632317112464789572353253775385413413821227232931266632141521415141343648416124547162444381929273299282172215122985614625437371147536548112123545665546612214755634685467932172876915759829334684342644115146823776665794123664752337569158146822546332311277588175864986172976746747891571469439311216961223754224739278893174596354688186751276748819529214351511527279733394396999288396638997932319738314846126687369644471569643338194353332561659565829427835778488357226683611747132965784245983314876564623977958991339361778613346575945721664225213125582631539693912742829368842898226235718932331645472427424259894931336812346936318921426371832794368362881563623923373665573452686322253459976393944966266912932373874135746168529757482279513966857437229691416244834821322123896533849824411445871823734344263776747871471653752388742253515174392329273482664618875723188361377826338338315198876424447616552359191577278136936112715426471439818717786811145179595265464697869763723161265198249561779863531855751532441584228446215227887129825195788957234533497768944678417457181815413176156257972942898618362791132285443935563511237459286379583992581894959981443692481364278491344715825843139816673153311493353215799135167692185551221244547988562258291411191782838422716862616191453644879297195231235695975979842678253441671932886199656667259278882129499263278776515134726244711765847515341168184197425786743223159612696541159372858214913518377379338561977851522124647861439146148343318992866814818674511286817731883433669748447575199812862427639664925811271115561344561667179144854211248416124661797385473799965247227856214815443598529761788456166676292685276132695428667867117472895785425352963182876622963536883733859351199989791391464225981826281599554828525854714766589954722929224255743544559383879187557261863862848753965219391718147342368852746168378269874756544118688792357965785835894432513275871819632861748727827445424244545261514337793435978191264692788615858467425273746156518455775186785215198131394575282649464769552396455325886777912716587139495816339752653264346432355478836347666358954931136278179575742516322774589235371513348583173871526673413642284989255978242616655893553174568791591513426176585973346414264652481828226543793372748432572749811231155127647881995484516812466693163352158643163199225553691986542496624772581149739127834336276261111923636151873517719553977393222374134397954123369942453714862694163626282613421514332972255676641818129762688135143191159266865931845517291815314792842882919278161912832526813248124214444976282328589641424964273439137985469762684836532412511355257731844532474271227567327315924535284344478918695181956115581928959693164855616279768488591433773419249768375577885322372248387847443885328294689492682246488646764935811543473712428129393123831434892645732354128875476453684325326994215354518741121393152242674672595726294278979982285826739172241868818448244278928229895737587615751562656384635855715262729992482713718646912796365275934916399332468642553715429677689812577283731919352561878926488318145497197915759223521873894371343167428966374115864762954396463484314768771251716675598241814546442219536147491195959377265393317536412361491347546195176196578474731663611984349468241574689515976193375474561843592895782454226255125652511151483854862854681762326931249232619563463222447581136695643671885995788464876116176841152774377164193966216273517155133723273314418472637511917968276346616312691452468229156925541295157662568122235354842833731827321278547719725129486929489169259311741927279795993667832676353419122172524549638595227851921635177916916624157284468619624576585313137568558133536581652643116167434497999511554971975327398922535527569492683966821344225415469872176228627267222395562526381921562821592154938876981988734481817823152825322929233277466337623766195573771253375534951113433214693725711591369824579914563796542613674894334341718561329516564661479862929892726653729555767569446771484834928583484719985451373127897394887913898594414548393633672558426362254538648778875312662822273672724266761292988218554617242446359176681318173727354948535412787314117547676295947145899855174138272112941832551916113937296551533867617416164971489553954671234916933315195535792327832979444664639675582659426521831948299353843832351959538871219375241999714273798964297112364394843933934528297924828774731999337364747361769362436181748861467347846631987889245461886948552341537163943523911871762464283395475987288256942723742548644844473556762793886573815388872163642355847284683812815916462585228194793523323742998456127956544233454215559422456295675471475417515849625972599827618341826931519233648464198441272361316566313168476162624111416774535967334983658587122137429847772136134185546758165324422196772932847883692229913472716846627211185943686974194281893629576278124777192435681287344328454435194517796849565749543897827249931648572351583371646353953633817838191292994621414555133356629635459693871618666319886524459869538747165726185518545384983559344287857535721224999824345467644273626793434664144546871433267935896146724768916418767959531117771391519181514891939469683671211692344555542497987156975488293171664557847218611972228593333385224559825342743291493794465465438218984359494676839616545867669324864275941773615985416991827288723317122191161616435621879534166635612755521432392211215613254428151485416372267252296566575249499327929467345358523346774916962741146225512468766758968337653955867571736477348336585353568626895233811947513956516958118469849433844487341312223152692386664791736298568159375514122471683587425737153929488274568332458456954311425781951246454896823179667169136168957248158796324368966183941324813344723877983713664646871133916852548474122665345522372135818176191897919919171274665392967938895231697414632618792629183861376864496392686478829142927497245517384378114584799392382596899375148743841712951946969652624558513811992557977347133253162848425144734439688497439364542526828631487339291799187189567475941515111481517956826155873179621235539421368426999725332926349858944772418511633994641729126163768212881416447871885558424419384411186331542328285264847377362125256864897887845161313276769625817282782832674649659533478465368848522995134368589965596865225288322952242774872799922977735317697599158759161882912829568838372573416487348543835574213218125843131284294724324769779241162871923467117631453527296956723959395567871657713727989537144415723396195815821552353895673497336473446388222796294522828693327693719699751627912681679198618177114715967359618335563695623112987392798172985887427259916448348533615513951385824247396998377361119865944612533634378114643392549593372261959775881569936168934511212383482745143356548778419778145274874551945256376245154857823918327292267574223867185976123753616236245651755352715472471345852358334923252313284475262414657685556184954945571915547486923342944924789956982294325117333386775216282742549131877145643447772584824625239474483976172526617518458542949569712381279549975332527939475635874481891859994315321866752741162998411117842392717527722833512496981117349939489816674364479478147814467414653887964888988178162197192898621746692568387227854767461521619328833964226815626245976614832838938683487544143253726474264373745394188541525787784514946734616568936724456151525196351616696132144457953818337716283923666477442357213213116854992754316348324216975798153457984692573945211614256998367842652732298373364153541136677174395733312424135613732692182453542987652144921277783457371114285735282616966391193813431199668619218616651318844537329552188528416629473378523412744661716312753162293113191726869342653818841981425871285723966767564545224554446833896831459173174248788725565478795335865292585996637912176985147558771317752141787136632153292978387279655772789581365834462928261475318456853699943944549288832687196422185846887324976314379532853644788452353376384339585698476437183518534178241131737251546748185127268663431271871211177356582535412278846368187919628414814497538528935926429867576935347944444361798996787637419929224562266161424636874379941827964752636247787159919147994737688679392648174144458487477144193334648464931553371945414189618597894496322271423272941975429613745471121281466715221762435619886348334898685629759678795431475242215618282924554391241832618437476531472447329971429467144192143517913637586564886575479292665377427393829624855591232119525974734166383162888278765761939398912488751483988272934619721824836931337293997335677945366142556559951412222197918414624193296322537287345672924658317814227139185954539199665958593291714237886222173756413635446819211658533286235787379414963642419263793317914295259917135656775742551367227113223114915685294676457791497126574696235564127495745182877541995978557654549238421871926185851473572555848454881213576674399623625271939872165769988834478257528843714989314715846749183926345833867181734273794984553643728518483696961815415921592755224751229412523668188517312445915939531352588881757835624244581829868453833351255867881414825454914177256215428361359865313952889738551869252933487784575293962633984697664538919224783937551236561832274176969472365246777515325643146347167166994938378268277358663553913499126329389846841414585246564437813524516421132546527944267915187431577341417212947395155168684334289447241223911961434524723869917328861518652787527359616739278532995147258753319289283766754321435186156244767526332189318525848753673771914132364439121227192639171813641225592717716882436592522481455139958964991377283977121524432696243171248721579177315964658594157621627475765331238454865569572314761274288976931782465368854536556124449116441523248941583228531256157251962577289139138214547313843221632899233269772745236368467128562395762311184176356934397898135419921266211225746695873525997642864881717392615581281738123729227192146791364369481283236691413288131114218244536729493526843881797591512461977596182677862859453211653766169848556345212285126716284916469468437158486315311786551153125246942833832676599588881676748556174479319391913649674679813934221692856448892618146144216393999632732797281434743156569215291342494563457396435467857259738327342396235512658142944932925574487931347271265629546314534157399363974619472696942994674425621579392388833797458853629242332294733378452937193436247812677534449911896768153694584154925635289849952729411186211512838339671918145995544676247698855933931739232496111752843852585942226528375852937891944712165721552419288279332599499849825135722326513963822758262689648362754262554283995136587133259855477656133343646341894335851648527517436687744223966895669251641344184614214484526541311737793146984462311648326211942493255395653957572957187244952741412515232341884783643571372552251548657365477417436963737668335618733531122184779374583952224637124461732988166136898142588132672423924957252953611387254477135432599349267171835333828213352247351533934738928178615545675887618542937155326436646891875281974559911673937533625173362571351856166655147452264613523261785185215668149749687538113592884722383345647341585233942589529296542479457956236428221445451462969214111917549911829377386179452548365873455866871114546831351992581642651359994837819411569765313451932281776338523558535234153362549728252714977191892496239281112196635644182946625491948912247115497662698115591257541193282381834495519898824938383315228232137742728812544871556489218814424141381766656639892912421154723332328538637293173491996736134669756331323667271914995429979192289491173767511239137264967797352584722324324754674996239163867878672453631729565653333362225446631515525681325268881558157972854363132394851165256622666221664444338641516259362549854772187265477913265162677593532163694942881583983545465342167668977812697579528872117936143152417716826238117872196751816117541477174614671551967468853495515138185562731139534389581162267712555826125211448653512837277544356715937143327796643411471797894947476643638983664492919655943215321449159653478169415296964464644749598776334267687254523781321833517633415232512258146972217587398141292825964252313741329721367856249812441527931436878531699814974245168272431456891719432815846676164732112144696314925891142567449769713255467442369674783152283577882444912882452884763799867248653845975941122582949126234792756525619625439292566454241599983612648543419526438933985549484668115559376914545726411391795247828983282513354643431963241665344516815477512711941279696972112591947168568169729184636984318174946241476788337981166442274916143884414955332353469572522115913183242654177455211798424113585981157454442738151462328322265295965236635823781955446733791326286813719214952796266168863153384772335111612175292111765669691735936719466624979731412597941471276773686896993886977215377912828974823164722986678413681919695728712368923245515846572122223295717521996924759785875464722395174274998628852742898825925734422271632224752625166529568591927128122265997636685721436239826716558232383254822739853194293444252776766553345372976244215586978627688877168168399645748165586512457538935261923298644646626121796136756226315514135629745213765213536821128867267146365768266885341391844843151112221154161519428461451395249527367231147672929967351647792719686221962761699652686515458668377992242672291424924374915573184456214173765329549397631965719926915837237135275416321967589159613543523281945283248791565882747813144753617286424466813468696225633547435791924971139381184781579133968983662712665661859366849844349534924465232964936557226428548355586324647953525648931223335839512958631588642155152228822552143863971862724262626664654778583319194713927775312341563513364346983824139257115122545943932362958111444584698458682227698219843625327323752437286897222517435783259648965179445127862196892862263157669411769215537118483712764658215638278956148473563469237766897915113345257623326967337316483944371873912958126248333921641151774491267129389799753196119896322719742592699537682519826771974736183386523846535565472576137412695567556228595741935586161914938428782541219843726686214148231229355341298497781663562264678172687885544234659926462599512142435867314981276587455562333643697971532525769724442144179153273115424797734684621252598322374736383957918176565417255124457734529994516328299567947988181634442127851838243255513293455921977771869873324174299127282424675654144149929468468385519979668469122417996953849661586849882958242344945312678127598383267188229878567755484772499197222175231585337284618861227232431855996467676823941919847521266435588624399951774329621359951134465759467718687912187215842626687518823981438159597194378845443924582992259183719333489437688126571661424956361634361799237531623912266662585187112272247247747871528822241519975725812954721546828395962311941376434996858186813435639792266742989376884594176882523958334271831758753293739282887241211239274639691982136487123395367111186546459373335425223816782285991531142255811824225846397561248476947729215765683129958775972469453723424492353851535912347582588259181375814174394872991759688821362957761827231814472119847521944766658537952975969357561439329227219378693774476348572248894986937267342933977522191265933246527145857237532822186221764556911375649655137856749112639572816263695199778873151573812791612661924754331436743976439418623666577526125439142333378785226495119788352368681235193565212692419876153165383743983138758953311771623851913435343282398286398992586743697471488838224332841421163338311531256138995493195146779662964437677927236957936117457298437144189434136311461285615688528489133139968161943649987899267511471673875742668434576542287343917552712926493629974748242286818784834729496135434536813554477859869834171152568296318271645148513781412712812426812635692651293152468145818245478928254975842515995419473961378926238798868575967362393453826655421129925613467318222319753768188284183213657533275359274481424183231217812853461518359317257481314262129179935737471958238646675927319343339129751466772732873416645368922352367854586816958243437236127885348142511711371173469531295863948483922279778233146128496319334676331254443191646121661589778866537429151521731418999311962181984396282666398714974211893416764845984723644647973319834671448632668266378191121398445331424155521311388468891228185622788842769473873891951345717877284988799961184214915115992242548244156312899812515282479893277778711433577114967977719167617672739471726242883728631852753213593583871626716596673416364239531683878442881195228535347246133662275984628711772953554117851172511462612347165481349862181545831586757573486815812357928165636869922823515718996987943253372443492716272453336711879624472256782975231341588847723334537252746856384577555433256322669791279293388823231227825434857445949725942155945977485563976146958511881321472232977386619387592141973513835874999987879621514343775538592619167829983784863728715231465269632227813239631356474585886178174913451741265924319183279432287429453736964791245193446797166283235148468365521152578242859188117719631134153512392547984348971439153461739621426363193831335816318664543498844919878734328841493191675745668656364193772412989353332627322397541443344383717445795656668322583221445738452529225541192327745342792846524332533511647237626117533484428633431892399542437828893697495488278927336217189819938292373298949353422326429969774744494783669825271219224358366883317536196816753348466189987336427355334835571432727892999698993236818489979119433234217269448739312191778725271685389863511421812581713914541742248464455171552793668671535523719483246949824966361293459436394196316298924791355363382816513274263342667765514776347833126447948179566111558357921891986186595783259717742871113949219623537372132533881712618593217811281435927746657743948197159628228692159224319315435851555292518486681985277758943144286143341825833449619231844238481834754142437316771433475568433458443932964638715856814164587363428352333619121228739175668176374851142411732621491714665781694238343787171144169973859739683775319618638834541355177433579573433186825349273446582467286519486751471259869818761775185152474337121262643849322829568725662566359457454352396142164671693984496861136585134177583269726433994973612365611593113885513891534685276277872149365779925625697212277492972563134148195167228754996734255748491546238712392778558349474213252814988518148378595919835125967386761524991147352283294841929948335132616322641369228253454481294152147282351926393721833495627484389433761473143236533354144489519453698448616964918295468716752789951632216621696247337114114592653265271193745735241735572928256319168463119671947543434433913922929928651862646157164224841984796597341113188599589321847329886541537488413745256984292413977399933727584293553538894282241452145198181138991982722639214228239172792627711712538485698389299545127671773522884295173199244927483746951618115745843961223532312147575695626115451343147848391691546728815893667685635441668888655514593478589432336383157976337259329957936352313124213696381378642518547164891334968343742291135139327822549411272187483315713952671197614998348212567948516552491764576885625446186242184351534226515254572619836335533851559216362649928339298796675332338191254493926423327299839298939954771141383134532484674143539854859166179929854869546546691773329224991967115435841991865228685733541322837736618743146327574642868255538197523697553413449943642969129553452464161535941581655999283339866388659237476312776311532585946344469395137364576817943913685289939298835343117428726682892664832116148873221852556189746938946273134598145132851949748394111159918327751241267274882277169742517174333826973771768797224947833625517256259231733916293475883925865584571754323534494153324293319665916513466121626533453211664818112882845352373947312564739434617769624822276572354547341274336485332358497944995123122134719476942137315125874577529467787531619264677183867423527598974283672437627862849569268544311313764841435316768623348244825813447619839983255515129115273119164461731193967762132331774844145126231374643227545358123485275885939124527749632193367361718654188497627986447997266451363157946122725143233365252519598761569263938667642222222277219588982453399393615671419689564524196128143929183584211434341311384393173385367856352581842458724572516561967288871235731894518666539934599286649414524997298185719578925997844942767976685186721277529755346696926719522393327846849962223264233843994661739751333457636347885789642447673453871532175443433134841176178613239888486725115887324355668559112247449758161814182752858748167873632344314283543724346643465893186826165891372973222947592998585798592941577829342835687693335317769736355651223728849552315825324864781966367156832779439589487252439272429236186222713751717876644199524926847688615214694349795552495341892912167352778894626564119226335239966863195548446536554315514351357121991338479762323982936582796381155962634291755193261781739463492793139777633587459326326231375271792185179766689598935537165389124923341153323332349696989652739624265781496531132248239996757218165849423854544571763366474596797143925491195175463135527423179634982874973315797813972149481577918843871758864679881638631221117733751282624856212823726636299584182428974558477868635691713364849581873862286785336312859682481112693965954288753471639795374293371192768321126843751129655565589995193287744919146191267282185722556849463888558562824142921744497938798993197264299517611953729613123653878551674434433421834123825181848653834996125274232875195392589251475897529293781592674137168651287612986132143418477298814728238725654781436626884461977747859849349936446948492872726551134836192946378898173534935877676595421269994291648331736547576482729912391428768525789324911461148345959213668116438442326415329392194246486537686357925676159989522633143335985361726472531745984963575288367249491346118829699744457339562468247993948939983571429775127496462848159338383829424555937797611692861862474812237654964958189328952317258312391344722561424253412232481462558157162854113787167559197233196713496743246928595972155628153655565137661418816846655988394284364454413771324126388816721719968997269119848618125693528225992161874265911232436976946745562741271972151922735416863445785319241316814349222111497557465455543221214677575912231474465419992833979252616467852259985679193366927694444533127164272582574651893538336157532418136724255949555256325427866437973383561479911284869583158172584317336533277675217889461962832283768433821241185523674697241553631675658457585459112855683618143484215248543711515139371894756885922964459942823233694443542388696199453224677551125843837671752883847921468652352478857435712756126848689452829857868912592152551425962118127323143635883684895593682681762145467375761445448361113949817652153816412739418643418485654736286842529717999819356811755941832819242955695914654356534462673919911842676256512546429927612238789369262373651466431199459713893685946676814713224869295846292178494354271499682389581181311763871411291574951882619921987434167794718151279876121327171298769969177623677689564123479763264386962429824113394574413357685454892144837445632892236298463751215757311945754312186661163695559832676319471124372757784567829664224934596532588569361564661478213481772338137587325939495113136695333646784118446829871536996636674476211814337682647793444362698514675553873922195174481414126933996322511944848696276915319456181453934626488553596816226421245475911825697711581995794558142329116648676132658373964233915133184235545627657726878578537261595229234322461143341129967796421171233461253737225831841752449611455219861582234582251832963875944675448735779166918145179814183723848361359279851521389216224444451656963113723428958178628121899881818124826325211477174532856321924671166329625331919378749837741693633379797132366816877214361152593262491227451344163491516335497297597583399125375963143649437219781913369949841129716774834266454463543223195192975296437885428456593426311591286886959366151533314634812511267881428648399243716844246826367461855322167917735499493662612369465472853116618123283398878932475371589643877692378289383225564312794353147142525918859559937135343311323193974763724753255974272452346692362496998666438519258997613732471261643513617627276488357736982962373973776677573791441579881683734717291489142816151739488342948745926926125889654782927991967975129779713664881313156354556724441624313387269636168345822631512945496723474549585715641317879397173899451864495362191479845661155981569772569651442295421957618217368562695663376798761627655658546979423868231553917424491815182943653651364996983524924853821582969335342984736451924447136615177719817633534175838697746581574691526413543544144823278172645547363327858561859424991559251648765562682682322915364329712614374516115652419119936645571658822735467482424158962385346389278686134939914682135199244147414372737735488125447756882171778462638348321521634841767245847959187211257193335728148191369461348772651139421473657472629721437875325577124383472531176479829818137954918462447226222824999791851176632445765123136282125672575612565341542641913973528938811548543468585458314914424956789393747615982677268715723822651556665664253772395484155843447185434925272712867722364892332932578149751816758995364325225872841977614973618144731569565686861318167698642841441757363531424779284247426241958511765155823189519928193145343897922422481631911596947678523397411811588328918262867926131568173651435465952147323465794275394426628318276579563419579235142327828132975325745112269822225319239344252261261616548186545784447938125362336713667356232558474261639184942555274149792622194579159845983674736885997143386541846182287686122835831961339593453958684918186432143926359264114697654291983983767263542113466723311112352779616184361824976722936228862295576235661241761318936825548454791995589242462937251447431451162172246112914299992426259859276253412688214329343267876943713594966617479121694162236437222729898255539479659493596223432478643326175253596731962195616347511473198853157132283675143363486427663879214332933231313329875136326825563491656696576238462289989245814143895756317915618225324866394522228286399661548238116623984155211834313565843157235379631323526217274516241744665426434836738116882995393363414752541833585122978134316437447711242636477664468284242537321462144461531136861464853718485331476782229667648862958351631329156617845613939235982911491644255819468386674959433147118679813796594289393691933863527442933678647525831414317543579669583743269577656664724765751272681235332226418177781573527958874859479434614717186886463861818417392375563786617886754822566818747544158637668221589394992637483275519712188514824246392366555578156727839117435423516926197226212724953975728552763769244689436317429373559221531683196687543172567718697227716941716819449381269572143815142393632542349112859251144329672721358923247324342778124436175227777132425216756384332399247619374764348546422149412128566841152574139283856919786282349198944615555347666569267168878696228122122898551788964991256289464633983373842323867781123664938124349799673484564962192751311397221438554397439431551448125999122786123828195818573682493558175611837183143522311899144634447189843215485528443718343937788219842659778586813266262592376255199338228792361984482423261424652613526216362876633733897656941767552383519539632344493532377273219542396259182244329245417243964765116687945257147766165431435277555513174623348426755389548439176617547228766292764397763385385224777536734755717343682836471118329918989896912945153499691779676148819456966521191626144862289845464463292194251591248441597968486229835879785936823524967351755191646552163172449922136294197291221543341944566394652897494556513924267562597463815396349943943445777698471932737236932919143778787492251579824669229913938592547573656987142171286353473631382451427231888739396125583628337562895254124138859338356533896273371299284756512286762393618227625432995194324414639925188568663473569138449252349914574878674376216451253683384449173227158848847227592214819113831374335469561222356714198787648647751266114796582867539514228481764345114786193454283451734971682373293319524629144674326643283919294353452299661574744669244186385111467758766968491926623749564724185769322436936149237692653121354687743568331678421326626531165132731122221926219797577162638665156929985487938319641926916281526214314664513352484959136733579318637246133315698342166494319736592715491635214583723853851131369217741718944315273418486257214558551863624234229774922646627466869892772129968865867429357139751495549434873833496922918588187494122625231765563519989185557654285433746719217414244237959339251431836492665688181296653742756583275589722182814664438983882863812428195655881825446483564525269288695115619993624933824323484936878231239881562272182988921918886329332813244723541254646257544832611646115133296722496642952666654514547844522295395272641284714663354554723249683835824353126681295146674693522164111628847329329467698652617216636918645922971199134538569514363211256674417493847624417591725219672557728166673862318991341833255299894424811329392182114665176333687149216164663623468617597724551126472883233236388377636914152553165166745314526165581967288536832643698699425221586284497248619373279836491949322543283747471221336566896332782348741764393853197622516258694156549719779225389226697123394378322317211765514917172182248451531577778226356812242751189687299324379932111129422696797272224129644729184815935991493156379186233258434148141294968234335634434682273234721268517749775246528358364273215994839127281568412423349376343172452768594714793198847425839816434873893169962712986815579825859845829478534696376385428392717578556539716878512776532426321368542153971853725273337592182164918766431876615955145845189799853387886428462951868412863297592479165189156775647173838544297198923693569367639522675448247626671369133765487728156668558718737384369237864115471331868645813453987344636216169148184253525528812473543851868134463473622874235939524654588314658491244944565753894582161154427557576251979165536995175337751179144161677242122237516227823142743491357323745533867816482297225566945811939659512455173861168776145598793119224659155914362843368213971191412685586726535799537639932912259744979519962473446157936261928618974899466334667739891758991297561661192581515682481413245237398851231594253489548467365136738579276854151192571595954798632772769539863151986145753422582298693666125922145745593355746591974148515447862726637492592546362167983139915625366965662455285524879521956452453333766821817239177941341565235514134961233444965636152535239275169575243482773716673744114482938865729929498169191119656568855911967236371828311514521861784331522138128242717431219234516772634797666244265235119147367227782461443572787523346829732673911868854455451877485367512582767716662482548445964737179296551228711714162699671543812217329197399761737139236536653811987348946634176636411994783561313515564728776774372815512766315977713293873188854175578686653623862466478673638212156657266715661499632234649154634655551827786197956694654819246771318222572327549684969422531287134717459458444161312892856118222591112214982152124783978979346694141442247213618741979169492691189944986222332643194273544697162347648648325128399274369593921976317463159911917293138919698297454143725964639843818577846694823712851158789487571291938274223189924634786957635257632223822741824426853322888147566245586356768532146911826883412412661271714372871567468285253953724641662921183512681174366276963489696492469611571251593785714973814652837365848222333225514881821268698392842999428312196444734191655388513854177722331264883655451544118136565119966166564413242919541961163872224923198586954776711128811746327745659569845644861983419472391659242273187375335324256581912119595672533423221787728286763147846914862673622445134749697511514344265433161251486179672832728941798554824857759491324522569632173366523185768628174684422759179859823843744783919694428295449791425713842435913753175774529316142734353414872984338761926132217275678116117775566342588514677625158251465152689164941581151784249242583515515132681514544969617144318226374219558276732946374543426295412211622914576598574252392496667194629879918435653212565848848746753216469921823265353381886257415366541313618427146626752333947651743633349196431978277452342142493146181278586247155673182463656962618966474993767533663757932128178221195742833431733629344927637514127642199888268367491316152465167269647995627127934292256535834347586172737528832478535342885895828755127311369986542884168846666255644467977757933593929549559581689463524526523624233376171232125341773562974571257642992918749381891512554392614578562426423718867569278186988537572673977652213926449919525718383297435698135926644382248622197989432113249298215466639413584516919981729336287224391357889895167225887671457983435398461898251723149281186981414393997837715982375534825438919183481577689265121426629157321842632894742635497473594331285983779655864863447481697678453128351228217159669676427195772211295193759851825656613722229361959547482923449435145548179553778232568618447664434961653452657124953314721447645313822583759546364611921614275894998259625869778423416952435629381246982641667474566782999963136985848725631494975239931119426217116436591953572217798759339797674191155616415877529677343191428555784842628216169134261631443212547648685398118842854356262945752589798691452942438342322535914523215225319329421996571946152375662265122594616378121429459626253342659985151526585911131442659216823284615997453662569664423562535247664851815518918592317517192475569643448962411753137396263325398715522765216231824682694668866353836891892523811366746795214896447371776724353789777152879582845496713426556247648638498622364658653552754611355248619168722399393769236383745747119253831378328311843342796571988141929298891846723222481253438312516932113579238439385197517635892667493731247179335246812152951544667731949211579988863395761674149921157568774889342166611962332896786532235547698578965324195323748221628132249641694927133217525229683568113847524749911932766539425921672557778725992511969354196352562682564127417323316136954128561982372229158476429977245954395538586611681547772787512561789522135592328713373128788876139187341642797297928217891111434126624228737139564644486421896522698644213678742269981279123425946881117121336335174873252139225217268773216159653217391178771319496824534462322891416645676482819388856263256971246787343681661629289329291989472251273131671432562964131299838729991184685162417355729432842794511293412148587845955511961211525243465896195164587379355233578128353132445332497323485682384534715942224217852498124731645794587661144399495951311739517641849721351152998362357726435677861139682891228943931448242221128542873694756145852926629686146639516336416766448918678499848747248757536454461127541272135321945688182228375629128237848864784643883189824161517789982117635729441141745453636937128295729613587193451785317576619989128127249861133541295233725758386135843563723362962258295423436483958718513471464141765666213873593321632832121223897386376511681319172431992145391433934827839161655727613418439214875475928352137558684262147223815831416473313752273123122251154954686498754557923955778169637293181685163652827935276256624182729473118289639154123453815942216291721831898645197633337264973292923725883186371867321231127288735216982362845925729729714185775622313269866861776873381687265922869492977734714916641164349713429319898753635887517844824345715255621393819694311899141429524652425228157193348212127222234232416415454251473215671322624579513187474561427797823991115147669244743349578184341949624975917318286348261917344893191172449266246751168663747865592441942225791731142951232297186169412823712741845791122616428115348655827285387369312424491163217754274913467188844989326816232687245671421772796943749756312533367855381243341913968948761627171859387396613118555313281234313376476941347766225425793469246978227683663326655273435197863477788385111581992539171363936232685316956896834983624991544753648918843436327532827675966356745875692834546338845532265463325594911982971727636133212721936894253663352148344557626699972737714457916392251327573134716897228664261429829125553775947351743859215746779786256485821767223654259144322759377728328393456626734441755857835527553741465763546693816586322233546924246222164751722521112326699959781918838413363713528836916577845986332774577656496146189212422831315875949369693629439991555698522176782489789477436514576414626884839829752761153159353597368877355189392142732938448341229174718611621752651335757669612891818197394891912586142193371793245958434953142185949758221228696282416476862668334975155292527728959966947246336412879485456434433526376412688156468495225928848332642341843541818331631615353865972391381217637599223772112442713534634751476921727551711556754277959764741119759298253814534831364489989957195312457879876452695595369855111647173883193845984863819924692868722289185247592818727694346665937893233729577276596242297234682637296374785462357523317823131282527142127615254384771183684141365427355359418489799783578639669831869184519535169633621522587738756217745689851927217991914154669242378524369694313991236454989222194432217655424457571514489114679265373361159787684827348922444454744143942795644424358315121645775574665782187591872143886352741665652623732137115331372576355611334458237198799749186313999923577147732619721974513853476143652496357431742614725734882228799612542777183174657111434148885223249761779152453425412146245614883247389992523257989298385653889641676939991433782564219741139517817487557196842249194746581593375211542999214334855379425693598518233989935171792889534846186182675986713933241592644891555468268193541912887274279199896973847423468367874877121266799422113126888192951928182972965562219777686611237865892428363556945626693477145873233229126618261222145716224471364219126447583554723393641621476578348838887757292554371956137522283196278528317156862534441384177174337139649361236857999871473217729487864444584262117187681538946837347877279618874591218148731338675181174152385331358327138437958931669143247314952193773435815397928815724391465724551596484373588498465846842433444426412686445812397434932464551646211952256438911422117167136247718595137919724858773724381553722765681994826967984888889171377136914519222188237283156789463668464422517432796131129227642569695247237478792651212543731621861278131223733441185939177437515536639247219746742515821948116473895254625518135552861677175825831895957829342545812728696147735557374949288223882981267537795441446221296656574639451586585728166196976455391852763599714399941146845235177776936217672593225127774667567571514715935237579563819717715711334134378577962861444945642551228413832866176431379787738483342923321391214271716836756512843636223182258545963346558564886315869674997957718682566413525912947282888954958527967399584694971432359167441388961145351111315612434837256872274177817853814317365787188276787784237941578167182824152649151543835421585441323589384491169645635736651741213499825288448848853257673834362265674995722611283595711554829428737342245149311464423479213443692466765381258267133621422348491572758711988135766549478981955523315281315867161424114311758738691485284173575841944848247272425458569261236231343438985794394493722651484115559282389992976161619674755263179628437757688166269326592577427431358164151585337179178865642977592381182125777313451242612255529932474799184252571678998513936175884911161463346265259123764711784312446238571977925524449383675199591397553213712134138674623758571135967247953237354997953833774716597223268374794335784721677469196463147664227156844423415976142635636516952931235688359332273898356315414188858167753261838941995111943868556266585952994146426556161391648147185412794225296731461638619291746462121598535651885879227112689626589596393223561932341925137794312986532341145923462294926169289658346444632825417319891426326554733263937232529678482768276567892648896924331197868223976854215323635344818937444264854965424479138571111227155423514523376476147237584186112197663644116954885498837681135231915485127218433829346792344396933753436785826153254336469711492166272442432555296515228163674264654161746977336976448144559964561181951189417314428947981945434944372832169242523862583554272196649195313131295418121335259781224412597486318723395283342324132749763352186423439219639232161743271221681786915656386711643794951289189318863793265324236415217544547661616446848531129485532942131219187581246426251612979983161748951432919244338768167166661398483687952358525312735624911652855379388368859635569844393861265629288535287689449335296383676939222923363612732436454962248318825527256325966559545642431119283787791665262496289367721811242759116569721849429128291911257475436626592434289211242241178681915778646967884737551213135514264146251887238533451555199228368669681192245352373828133517242322331833998265257294223194134811536529987857557251822456434531274919544673511232795972174221222932736479674269195552852911557473536223757352542243315787497155147363391927131935491962816691822228535166775283393212718724762917741194371218413586185992376174323868364825611894477185919623913119256994658829972934542698195363314535112725245239891438412364351218699448547474629853513876181935326884237894156771824529635633622817561635322124672988332875237529625956921646725192263664818822823421484544935897965887842325776798489668411312363256759537235322559129463283457338373571313641465143442284591585591954267767963264846219658849941423821532238793924661543636442184235442338871967892378157285427499558654399777442546886531852478846872185951991277127254317561392432248464296425863197843394178568771116662432329732569563453653165321927119336276762824571812531129738119171614238661883489614872546647324166714427917572159845164265583657912557523534619446336385122781328534325471379983477324349254417354896125437247339698724932753564945724194444545286996723572117319471242185747362545999333766887262897414754192753136491281793153181293872724159912474649212819354613191566624915647345944955921865574327734392679684668874751724859875643347251557324418741211266753215994889359176414492173346187971361285485832537736551539785415323258888967464814344183926785728215859667164763631131783913884952552892952794267168961487886397544366623425471418244743424913537448793977735923247261242482424928225935568314818946921283127397221121969126813319479393851355281728291681722336495117267381737189886397533338934151464235925982248278735188911186679311315629877665612834549716197494994461961239936888968976992925196325181264479371259413134112487753952725755487936374762199443334498298413568175332529997128786351228599382352254163462927545256621858262971731862167113283893386391611335511126788653983981672475467774621633437739157932631346218496133292612562678861136326582554115915443696728444955363795126312153952885676594721291452276164965383577328994122534212917227771565239753137162554528976917677655598517444125195883914438642871374683333943587998938319222125365113323213188289682112526287317177191351265528732323712828962257737962228723126966592718243556261231939835617671822232337183494356638372474392317823995173873342145311112721571826987456712921379778156296392967742295712435125811861435328458127231944632247392957148654931839178199145371767574753869438268833349919693799168241326438236119511615567857171534941933618892851814279961512835584133417363721332332863462492422738248476567875962129767336192439361773321865549286428365335413764653332576453257922367758524182516465986216279412583478485181964737834358859335526717593343795296577712426933241213296872232415715386332726129457121191499191415861938152662442668713981351765523216459229677127336715838768896352185236127689792372778236555623144744494378865312838397757746371417118529458183686194158993341165224259468263654762915178862856117968974381637124157344332898444657896395544776773675733243778756437299379495371752659732272784645549913812422338753161613935177484351551876512645184133429845633518355129154873949642521311954864436556947798851441783568345178879696127692739857865342911872336511142136134863866854835321849119442869231456148185237579792664953946162773436265491236484148926724788358439768948338423883363211937964138427186328424499236482956625885427532224523143348364981943792183772761955568157898294534893558517538195892485894266453697147359123366845982871323571911996645235611116783312896574431591676758167165666481555969515423757598382527953495623289456923218326912749324435473622217343226657211649972731157896531952979576223557793571579318371642128541354643883149876425924935484593331152586355287456633343611577565927162769824347676161265817319843175161771548165618298462223651278331832478233132296145385966873778742863475441477348459512373146582118663377639164314248337613873942236863313255322446155616624558733116119994253372115793882889449268212788329198423486236489976398459579274226633123239189222697261537168513662917247173357561178633942522533311426365384435953513116178631245712851741465751277646861229641876254117536326465853551238351176975819415834756445871967874744983299556359619751311496928877367695652865229513434648452199639951354634127746653464742273154434889523781662475483962119515374291733743693949674513525618672281579216677518894487842363182862816285265618759243312957349954679773896432156673965172567731651731638746566656482462366516434118396349881134282533851521565379245313791734556424428943395943724146942519368772833414787941221363662383794759558561819652442822734856727723892413811271114449534277655594723394755543932471538847928637355468428346845193918619774156699968376727359297292485649911511162286983716926734121142392716889197551182133664113761311926731832655979316358873288669686187889849466144229858137811194111375311977491449327854418784396917911452215498642599316651271514794695455568447713611194943185269698793946248178955396915142556676783251415188157162893278261638641781316534716314324719493151527237428381156553195575242533929171711589636312874166278285438261473884858747965863574249753252373796973326621484118295943696477112665546561545439481198728184537567871139357886126244111342527567814583282412925825923723238453883265547411547563889384857333915658396942487184311162581114331291884123715419174978872438379795686668713515736392636719457423346974176872355434961227675515373691126532939451731239466981261392385882142513494738233638456619262134255428915357357227462162673855411274134947787616122129245324444925834437992966398659585312121746311527536235289542555172121389123584677837772822732628669491359738821195528884583526296491386218343727666633492734189491623436513761471271592682929351229976481157621777823173422625838251435861929741564548573659216828839644489435537749261659314826818173663359976943734198491486541989952824164336868883332935162544952512462439666396757991135632984434619524667313148241634218651851374382279225137178377562753375671139847851579851742975335951632731197225143163123533271516335879121521653735411523348134473751423333378193528114953245883733988956821529248524744718211326184418512466333614353754181412194617776661713758331153551878322389991152261214659548568611174314735913837163862785275538632567698191434596349566723713377397459842729513489115217534823416499577481629451652152915743185227498465786227976892294814887721226856752651289542527482323549316181378548372884182729719925736823685813499861651258835371556545337827458953375733377715768434612561249186184651883876265515252287439855516489955349151126571239848639463869164565316313194933792589857194299732722766748529847446591248713396727158967916225157129849112487483486177936993798118125497171955625755637937549311552452888357839249426589147137697187158817237942293218153236115234645167251618795874734722354198923612749888391376492597125446878692149446821794796213152983529812952371211931836878562877862678659933135594632853631644198875336838516972446262661517197289427469592663659754736877423393937137948943467683947771299513683365712282819683264427942483544958833983139672577263738821425731632658173857363232196583429363527239792661731583411726618263894783921965945743863617291198786164228432635481395656135111754985332794942111983415822121117693335253322416232819544163363245723272921374892724131844581634347943386862532479917754991537478724623251681459335417994878329666126857695193264639649415548742151569656961218469684115746465747985411181179662123865259969118545287447648832322772914986815951772684166879927513675825718929944216673826373292557743986837767871159671341862368783426218911711844138915843269861692529566538557254614355762741431421795191299433233688322448951479212112543378659964928328376563566198482272672964162821463732296377962928417161232139943111714131211484921724276223432714832216633382847339379962692222212664723541447984717833756947757718387138822941194298485341486554125981868135472431562211751217471171871295188624253323377581354888128574891539727783715315298793235896725586597442858856865797581841673616973143353576731625442726613793491989521412484151386276695259335589561837748211771631294994618325927629292927836468779659389947126483595464861874317639315935145555488821233786513816828849132511712878634951614586321758863135863632324213772259949966691491485513354116715533369488412648243862946337396677556724876166711758354281564381127967261459896843955189253639278431659924954917913989742141929958346683113732386947327145427784764246942217872966947911679957536652395683453277495324254614348952717828861435222468575925946825479627738563191661568655487799765917555518351236321814868964686784777158717343124337189622818388485961942483915831572133417382238125925363239861761995149124975778938917532193542152124728412835364841136278647471762246262728261335747951713963831951435873536313117294777181848553449521222154675924767648567729995194714443795895872177135234942571113246157616522987924948763232952974532729572897686679415569186591655493341548549381974892985843153879295645245132845186645454576893974424979978366962877921199845219532683281543478195115491875432842431769253436559173114237423453365797193843613646639329837352498678788165646776953582482274719173692539315692453923821195317265317953715449149261125727222215884622634997629151425166462484265231778278148743522721364875329392292697536398313646853471564479644958252299875815117583337121872112256845623871442758193896522341972135713448575857691114193497278435617911217244168257468548281519789844834589885388394844161549133769761429442761585481975194798769642967314882795536694362454284627624623917824778416845441424189295244899374714633394661939244434821128924486857242954518154732346149535992853815676457115931748622489579948924198551315864539787131146321971929678546774438916341339494115285833844424935773123525117836361391664252575478111968999185321387585835731771391474422986721445653913766885299764737383331869837646191385993383726271799796691495551153539451541836553268964144215171151485469425443745236785587566299785255424758898135183513839913468639186376483581415191252529466653229442371812193279129692855526731317378771597895614784165553299869687846632132884526855375791483235138927531265723683859798848955262564997849786664725311363135782656932675416726551776936141873937575879913786659416922146815663746468963796978683924356778542756322189995796589642127146353356994322847126216968511443871335478283231971248997959873468171369163396246333284334965896646191538416916594114266118699233313367773731131965591626196723778743647444391151762234564137916432823173751532952886463825653712977597249563371413661752146521658414756563911196682344627431643784651319543595752244752762511972854296314967235985392975541583349397783348245194777431767773131181136364391897621856318159974272727279538912674764561145237698471113658486636455916183482541982391246218358994139267394642151318322791919938621277613184463818322594249398116349568112138134218839595571282474312189291614569135581249659533295622641886695622794758582221198629441144983456287171952299247764611538598626496281654692743822479251689848662938671716799814352654331389363428213688554365922126389242828317977584923139173747285686512154621583292436329933515158851544957913876473177318896539766428185215456774913265959774936177279193192784226224956478838293883548459219172397234951642919728436388852451147129114568338931748667979438557726436933838573326625775859892216111873682581662713325763133369828656359912747486124746374455197199113654339636597463731918573268563446369375412193652773584416589571736639613968538191385464657823252427393298613886357452481216979679782181196934619295427152494341662545768794171322537367444219176424985114368465165125988814522128451281145937177749356771147669484121955559621414344856175814994842442463121992338225159268819695716624568637798875954282729845896369245616292269327935371146228614213836971946177722597443799886467955756343655558633331359195768131121663243654414791762681144375175266272132663821917245732678729693547312851897629259781716165391282159151289389145663843389388585141761266471973283349818932584492196389657254866157514192565661332229145191236814354157316373869256843523939165363485326641642311867177845831295643654846819521265442759918327238189959256923446185366916332918496453675318681914848317155355262699956212544734362931575612232224863649492268581212349632574545525615111413163155211441222979696381998471554389736136833529797647571547733183848686624267661985543135158524466217648152268899936396592366983518456878646624487986731322926875836819839491855852612645645694316996264125998886141915198477265272852498381434196752927319483496459941197241988991782626196535843972631655541382372121339641157953211776465451311644919877322369293521281615545456685268343183424315586758426593186739742874687165624116231169663117851454323522647424921317791452359933659333212132378472314558761247985867965263655353484921226863195643491476636726159416464785211657477437471647952584133579475629485313321556441518442122138355114479953524252196993899374929783553127521787274759351319277737638666329687474689515966342499855249824184243455825881535532392818827456963637122943939369813127966846299221631874247275993933688948877235312812638279274374355983694569196751256447292296842991641374671597791221165491599711937555682532171342189467181141961492454299431411255556552463872293589597684574686421377573694372974513392863541963693844264261453477462383938783624217735181179323158214642943999746691262245546547169453781456716269956255379617524423226216493841652162538515535389474925488645588467755511593323242875191626275345595539236543266962865451973556163376858518953318924618219163233386277248224239233623353582938259364825824917129327322763335775868323461994498397889797579253463619817741518179116319514329518236882989143568514443523942371688283288721446852251529567626683599716341455348183935143558724365224311546782741938668243552412861454692566152523443563646313652573593625733753216174832982786217653324955581532819497247173697428725526661417338733311351666354577365457817283488873275956388315912122391194472181444271232648812692968856383885851525335957573821732333622831382128237559397721611454276627562253145533947439172132946425816947631961315569195674382246313576335272955124634464763477136237932695744279257295156714235339525925815671528194863658442749131856996829121724483339596324463843676947442242663874831473655553376861552163272487363639445499734245328597324376235321147555472392394874184925172635736483355882681887569266653732638995515981227149374179315395597181995481874682456927536644584211121435118393684166998299742973313128269544212118626521262919851682746241519557834664164519238477341589783452619774591595735215158876191542625583926437574724483187266513337298529698794117242563853789549636579221543858523558674839867616914249599343943415772719157725753919841184195266854469411121441748657789972862762484938547143518174877223275335511841969113218818515642289859299147222966341872743659318668854152996224581468241245348697947947139739618612816715178381912199146613789284388727951715468647145258233242265117541973698644173397719898546848724719631264794329855124779261271416351617951538923264833819429454175427123636392366391952574427165419238659644291184783619552724442824628487978482549549314414765874589278313677529481845341469259771322161262965868934742778551186669428716411217698121728413755347545625312273485666543726845186935129544798552556427995333961582117966446217944352527386171655934291245512571467718472854762451232249535369211787452638928427146881151731941257733949538834744198448731642928132334558483315951451568983523373541811575139811383116414851165644571783932826248473862469124358524535628256736812342966492275597745917578865165853533182121887846315495636158245849524351563339864681882674332765149211172659971389419657619819749668518268612962557941944175718147743961521162135222975822295864378236969948173638572235346361799861169965595392192256974263165245654492395777849833384462997436292168857255836716553328911917324555452182896448339682884939154892149212248964394432948925241153896817885995198578834191442353137329583833784298719953173351845989954878243134481332896962243947951488566354439161151282252295772521499146756135426283632432522285737617812526154921416179443187242746882283641985288891596973731886133529965449962347976375353632461522272517361287164446772365598461951774269333875662958484394928187941339779948957128488973731714364538416518915896689465612972528719944643752443462486489772144371395829876145531818367192959354396263686196446116176724173891741913247473121751781647291897314337791124527191115558815241174516891595884467288572174583922613313243311422168625271474288279165453862986316152818416789813119372123815864481999488332398148825629934289235761721491842132379132462545869162559648546214415231927146431563136728495934399284518718655134855271938837599467899781739153212751631367364444116517736928342695319795715617991169564662225866482327621433397789791146763412243413637179543157416274621839174666352994314876943682943883996836693969919352478496661766625686739677288434466653497374284382776695842937852497195163977349145786187854747856584311479736891994351776323843825752651861294682262156111963393836983722847171426851635111247554681313477293248112542217642337298395343852581611678412536432154777734412461786755652274927792848554532344119181279848915783163271792882635351477141275576337989968543633882643927661259255824517513232194563373318985112718191371767918772267864266617119998363355955536695763741749224512185295185594787856974287157151122313586138282448994426419956979917945458291752627412948492676433673481941172511667899338731431224998575293157892359654661233599452717472116848527585219915592253335929351343614289522478258622276132635333343495495394762232633737444137878188653111213428971924824945621466631575921711748199482446954132816653494781787994588847558965456298918246211652158166564222451228624951974589145426781799474319313233556291292411835722356124537411952236445453394312537328934865684669413789759776228336447323136523167699344813441843613963523889934363419612625258999192763187551843558284165167439342453498132914897431486115599237535941484735917544267355165838649992131638421479457781139294264362779939541423345582284188646744215688941485686935329428936392866999168421582771738575753388318828941636177371532832681992912982973876851171994224443239844618149644445556751683542442298469253297577152733499172865115715321211721181829395859842774648358618318461184311283273482256134589226133332364151613932328948366972996495143248348862973553529251126133563223667554256342796585688312476937168452667565923147443651982172181981112185112691662592644881676628644891691482341366447875243631655525926963856411125962744114516212121467867938279341341463716313339121619296861132543561654191727344672316342122242545564942721291118444357181738716356518899521526963225386666547434564743148949792268884781885145312753896219948961949861135693514863319228716848271849691883557346395628723454799533151928645295541362796939135491248365736186347653323149614428656158899476869256333723685547383214117295147824312878328118819423217128172315334358574953427722339288759186624498328799574616797994524952725578578699862956112696788193918312877625686986156664537119796516711978341435131281852358937326953223847197233626333895245981743315444974298227898961833366237261158679839444635865649452331883624355154655157491818371813137492192111879591188574119721926822744446726822632456798172164364213571377417355262232117731911169365721795367742141972746181744515393897522897346441211644246135264417226571485823395531296249646586266678664195659939746133824395341195423519163149935924699786859192519353856436183615449172147848184433769796573198153436643361164413584542535569981434123755665645742649343388484679151169963733547452935354956324656831577622629755412154321694272623751398979849867264948639249377915165881879927653382121494337123418132862162888973133957415352741494472623461319445264247958358525261773389561763989243256737137351477427138791897524237535542373535138152872937537762241372216857485291268646463635191954537618676195323118395217583319682795259311133536546395892762243525899526687333334119352793512729431555293754261538447869214856633123244897565618551524493467984427958331936654266515973982289115595838351418488415469221427963935653696669858172827283372261894791291666288987893717258521374119191325619634768863224754217132336838329463966484165232967124457132131118519523531976298836548584779277669978544623346734559814223324958239679242274764564267594397626487444325511423678954458312133553285525954317828745856853683359348787876721189192526781175324732341932217419276515678754733331841486871915771243567599354672444967323319776984624946317317548232361782539498914646558787357494563449341531715391479342597189718212234116783711718332635818337114967567263982848398214755751251497558639452642684896321187551743411377212431241219724839426126191743345799177588847212645731447371115647167577973885797737597183253644138483574973663321899385511926653234114583264389341132636919118473439417619994479269146758811387599384587174277863953218714386459226745486154934251523647386612299983764438657449662697274712173765639751144523446873787911889535853652172996465725862771779372848565571353185938963323774291212144442759915898833589575429969273862424818632221763357233571538995742816432613947434955554624566342761374381286734791651281435285383331546482512811256268372888565361764355981774793984846396528789135419418998788675716622843825171762958627694124586223754251348854148322813368563233383624678612662526943376425473923981685577278239191195368628987188374296325644196993711715664586847383123255634385197996668644979547558562298824321512658918968671912126292398754325231619542473564315636485217232613821484723114951541273418242436711192169221891389487789846269221457922419956631783454751854341432263698567237149588973428139544863916798792468685738789715832438997529946268861614142626461681173827916791935842415468719943228426433638889842311768866188112465438671274511352957319844129765744989992572913915974962243383387481778535716841478294276221375371483228645339596967121355128294618521794165453142292137994555484851612989625399235915877312517421187313254295664179228531425788877932273916433755658145229916566825118226634731418493426769795192519791835583468351956488896143274715774171372949783569336252982126944112347225889638664712341125283193567213478788347925391461615176114414997873636132486715274356364388819612227266576616761619998916264136157766614795511766949124493283519871289843216929448428845388191658698292182366749598445138612731994572855923386228654841836794156176268472753389623168172352866227938158889746899637769195473841525379475212918958218411466583613722983393986661182494451969234511145466856376541397323551593989365422472444823529114651916548522429487859239821387761858278126318319584369272457655362275944785955843123548517246143274296264837632828348733997667152641779427673746115684126592127742784471413116957463362152719945865564113519173841675822169212979122625774586222998847637572585589934553491429148337113951324781199279141249966158935812553259927197778326353232536654671533881329753821214179187532131815114122119847519525313528457396335637597629271834536314478952874762654798186339631925426389669943695243135558685616861431673645256488449845878487125876932755752768151624767185672333337944595144722858675338321922242557393484172638717786737354527933422386275719564526356742563928817127185586771266249471763387345862948214957782933733525637522422293725424839158213761689773419381791626187541763737599466336439931344138374716211922378482775125478614884793194554434174854465677754776756618133244591864175769253813394966718581685457519549592428458638983359489197922629931154537129859616787494745368611131639453355975787294378125648463486938558233797789662567859949346311836931666826347552436571188258878732681958346575148319136747438881399585342582447569212947792563997512341297876758796193165135813514141778252766529126142281912316111146186832875694667868112323132898756761673876187923732124862449372212791157733297345592727195928893759755883123895517367817532697672228645915883721177254245229775274785783193977356725922141542272192822841892812188472169525444636219837544176722168462119953966851399536993751285478223299494911468712532988453254677575431337382832196564577325799643958444815748185436647366573534844748195972841876674515876895812637568136451214113781845125637213247686295261413851841374143522668434529291863977882425288258437123345286525875691147494612359292918232632851337128527547926321361219514248829528838435152874359683946444647792763596741112745392322246355973595864915839684412655985683188942846117263155213414342116223469454943248683593576228317796336871346134547546156238928541653643819153781655114565482231166118261463875693455649617584751232261876293912726128181519517749175784271678513818743329336432876748592232248984645516318133343593271598492852897939198262721741352938998892325517694951752296468665258469852746927923936363251957949473832739133382664846776519566695493555443239921966434863863681895185454594653467586169255512826994617261634311825731229644429646494155854862426217864258626665417369358448548841828944277315371123233352526319783156764523137432739354256289797714213992351752143412761942562912163998788421561596684274352992772648171999848174824265997689986216622858335849491649847245831431863429332187192726945337483835987267278159312779229749388943988457328665623847746426617234345739742721336938426342696246164259471748821253828279342972576992983949358298974986142844527598124754111534549411697817377545168258831253147158176699457792936169995727144542525481355563666169361493594446622352425518273464167815967699676355562625753331433189419993227497548913214337692359459133673692916812586912374273288528398866673956148888751979444778929498232356378191788954394373464694763992734437893263574744158984563513783252369312219811314332218947559599372781426347968542323597554859242139758941522351143419832447895123554433512211554149488774348815652748135818122368683345691871476221257393831146117391325221977466398868375325836152764342951951226218617927444627913698762462893292434351883834328279254749973563291458214341139324787112375799562361166892441877441169535961132241744468959318889891766149388227524189465524192741368736589448254999117328814163195771876468955983123957479212455318691236446168124768634617696747349529726552688636237814428956813414587824612444545566376493843982444912461787425927282733876645156136125622545442249888264278733419619484928244182616961549632215535212473115152795988117184634969169462341236873626373621569158661858823123162615812793229679566736355452193684235487772338424937597646454993293437897859591244951923456844743899567853222594312366356514512918731952455383486256817965138144599379622141891498259223323978223857169646937243348221825223246786164316114299298112831241618783122364655565395438623559645991329389285932353194142647884616631255522452825861837931476561753714818154935273512937619995136978334288925922699129847969297918446223518316999164554531184782828935325745826579214375358274581846389995839192986311861816584635549636278324793759922999978485192218383192539374485199772423637282229296488821543757724114819771266623286142587519657424426631597145866413984376864747914119382377752547629466533887546246464675233392437773458758871218183979653736964276783568834422388385369657362149674136987694739644789491368331435114117416294661629493571135266846466917197523286751894321937991164135445989778921628415924253394691781679362569727684737499183598598927425532356142326887259735272873865848985612584956793791441387943329941128968348423724479147964582155529523792852172158425525252393483745959482681764492327134835115423186386172695687555378787258378931176857176267364747792817367451964735461451857789832678195343889562889636737131629763124594622524813683397213186913687252195887452784631281831575183548184891627188533713983284246539523763328844116958687285594683433395325937529382589344556697733963359581869474638958461372192755881867154287749831616778569493489742667742914288585221633921533123999529298523497426164197698175575755823463241627652287858218177826232711844371891135823447849833855634782249251374871629421282868895572715244968986542483279422177745388837567674983372351778955951247649761417251543211362164162868883322856499454416952781961193485326265318633884489221712124644669672299164982351854345328869899275533667937922436876449626264161845621774534882552493553611486526841829426981745846329521344193766851342193527662769651389353152169693884633195939714767289429717534385643213881455156874652453339734345434568331677221562924645794641567585398129233896773485295825524498391355215686821895173339939238565312359518119938983162124923717535997242681581251262885941651646171746795732248216854366764391339178636537162915984337272977937666384864745976754599186955347234993495111491453833886136626227229199868551217627658781583922369935669994495725775563182496461932112224314145872754597229624656971877944267844475815927193538527373664882192131338443418967114654423234118419878474775417548753776819986771862297349251134518238934768447727436912918934876351871446953822195623322568227796652234955799945716586917681154145178143436234122312832324986762147876477288521782125672375517659968598973583528831638884268875734596456453882992212629932317189778844919441728932238842485536299523734342167347314544853551783446517248583525944843294168128499457352244238952979153726692723926296832839389628924588231281468769744722382847425371256936638931244891958791353774187185441328753449283924938669719728222491397839574965848782145217752272161644272445756273411873942634377252566241135911137165868133545992155473534834126179958997726562262314479256236459742322113986482383193217363885755168118624558324262945624431711915772479712459235888212689783513273792432459484764793813937766712326311363969171942249479217286356314144489169778818473462725561422549892452462385633887186243522892335856873255524639298644699584521264656112723625212149676319944742431469486121925533976732947156831734748753715886469344323478894423411249757854121791984241663876827477861287834873828581552629516773191333552826928419865422186332663642635283423357356637459279561471221436149522431973697553547967737788461265491446364698914247221228398572274195394844684596576898912262553239544954514193971975212446521225667144151184764684314893219613922734188612313131214773696169588194113781732274729369824399185272266689323334834887667656274873523513984774959572895383897886323629676648263469832755238972144631573415266123135154934197234553312642829272372825611856153427868974783964265854793531336337364561222585417198958781344475376342371443151772689654567432155411849245579384921897295847418464488185314284974721156482862515686925183167228923984152477854412132631796768131242242471667426421513282336865624318251181226863796195961451639357166455421329523889165334945116664393797179114398437794535851747714495498262819232546222289511499519266627277523338258271127232638971789596677446358431823864214264721553331166391864996979552196693481913428668412318997246413516213644555812539317124325478187726464199329682434771575498372857153415135768561846297637923628849516117227867498233431334558424932767798418444433452242522491163543918532286784154153616443452974777575392897969582517713953196329117576552687996128375642416216525888549935621766314126898989551951797162296251682714915148858665432994775757218988826617444646437944473528248827275911515816252137728263648989683559915154245236325429854236893328623463663573981466143323214432737253368222741263358222619789726325988613248318766164922383819416474467292869753218446123435973451886374165997545379843777995995615518163433245565767314927366937279273673146698536296145447284987623644666663746587236913833286452243641231181984614458563325322738694486139666421734163885445674598663249328874651232221211158528675644575358816417638562821679816316653492353815939272551639512585974854229178271219796489492679145935937255314455741675752221831983929473841133831797318734455229228553756478827616214479565127192483261455635937672881337532134717985222141636191511223431184861551643684737174438744196352426798161834694698354418548174352492826166583185868741261869677181275795671728964293533262924219797292931294834214768213124976913953442793799341556615865835864652648277942582633923488635946953521443336341534888119162583957653553326588549839328712695413874242769944316243685791981215784267251425522881224944467699568133344738145891615515985848829111551197569259982213866369379837689251258289347466227263228273354273243421466211446441426365954521379429951116746936832428773433641526128594244673491995747535785543453476655727442186636552421987278513294217667637178816857478399928315481244334481713953171472483551189749555743812192794941217794335878322965564188574645362597643253175714792751829251935535786583556714119152344151824856522738893256823677319193658712387654869952541227883796161935785522911841513476392286792877687848747157413343914346541644213668597165176859722162312116988788951474932266958382115648972827337174325688451863333428132181339712565137532665617431161367949138281178488434493644277986359723362113385184562495793441787468472427879587559351621156872271166463755227712587789949268622568327546618168387139126479796664743525191877872968117156295989771214194821818324671678177591469235877781226295331416214146757794473452565297453387941181162122227417787131819196289517763572765758115222878524298151229478147418261326154783672727935274124469153683659184493524652119669484629684818385837828444611881288758589778595373673793678698289283297381787447816591429921893536953263665437789235151192141122834498449948992343216365792836312575565334782258427646196249414325631814336562598824522433231544457469612753983235755478853275323915457733669588846936995548858635993132145764571862163668257133315329787211515699472755974872451121113757587676545447681856226536842439443378972439117543235915525551462251913513184418228486463254549652522942336392162285493368389268927244572248529214861456231659227514348314846279316892789174748498893823517729568933583199711998353272735396293712958155365767981479443183584169721722871321597579844528737526436379831317342746282793717867973949411958239191544257415162792378116756236916416245192282124557379321421673522212686696793113181798632481833575982483127727426687296412444145878523132682184838388679187888485574645896674988866129719431779177126213729562556858487437116179292466435619235189654743112692391556332886412213739934527825153431553675696434533782576112357752211159267599989326716211429668733924117229561673611427354291228459437753566888415619837531556196546327899144362225382322756136283185849437427979122421932217294458194931767681513276352822574174785975917326582567687996471712176347851583398169456329996975799967131399614712313589157425584242516192466652512961877438654391924556584538812963164946676799333153814316924687123297221873953422481445393763171641847751939434666422853321869672132317656433928689732235881165531962911191828749241347326499917433987153117212937629964629927941211564251975361954279277696762927145761464731536119491364347571976452678422578722361523471894191773627243263831412355524525212332318615332518171459324629231841882967439464647648412475786824632728155677392621767371461518381827143926681684287349577482469888689186494459357984232992714759939939345484685382868694175418849868612585135511534235449151655331558613312283943169635666772871816265818123791474769576458964785933691141412237153452198718439265159516364583355157243779432691154518222263466114589931228589264177597427393217428292944148572891715331636433739992433759369253675224994692111168142919394467694331191326991758492981876855595289847454398627183945362273421175833768971773741216167325313588637629365924558724546732172481593582549795334563235567551917287911154318434369792616446813162619684277477749459185314938939987214225433749627477722795618812478529168351992283226159237677363221434218398716761442581542115412223475321134522325422792953823842398175791328921345611688858724231381616535123174882471367722814637185897742644977898947643313324264772437293638624162531515227524586475278899323843715821654554826625288848945747933127217625665983171776673926966144381248598362299131492782561478742363365132484661641885751213273125491137422923869433341946724742374871323434214936447839741197517317195673132615851567447836977449131136377739373638222143459675494335312858315344635852442846448632524454918469842869393648677387697615694169787329387253274232117876945314443353429956273511622362654875198788412539411727835157754123315892236494456918763726282289653214291583697424673686426895342272194258566786856172575857883882792322195859233122437212479145385172426964963534185283154257915258734897815869296683467342946983251948996946177961729619518348893452455664391245788189453553427539423573297654213925721549153811131662143113575877321983184753771645393538867272873215465439296145463774735164783662256332472443375762535172428393777644174114993837354485174149157523135962168982316871361555374963271371759213284638676857251678724563674662414476266326971791149639737333512843352735168689476321427714255336881776592672534598521336641682238137174524818149186331723555529971952949532455897721867329322126748726712283493183458116527442373121393823386497219354144934439638962469175826749213638471351274679626348142147121581672229766482277653259366177964577653461583661581172984552332545299443659532581287262781361469124516683224196746149181352776382791868586971757563562963914521769721135362146976283783536795582696872249985635511284329454154423865363311431462911323557611842499794859456454354428847517849733218446718865583249256248372354237577372157253465469168878372577542718629825832372888336511642535653817928256633231836381426825348261768832843692655279839666884311989687974547931874524437273736193439411329918112735964365755347763725285628485728133742741446518164361821746373989591712398472419683517858414965398317273199464176398546621468352745327696344157931633979431263596754941753722162838565221175233553583615211522316929114261126391212315148439531487847551936964413573734838893583577554695176816798362795448465544271426341546467576197351444153415734875161614212619586727811639349628133257118834499228888143366794572682828858375992757466172112269622522451742137953351758667827854291389696155873849123134533211229715535859178731588518919659199487947647144571374958942216157564534392179953916569527681228852116451588383477752266182713312212346866198242431512984224317149175117163992494195479587788643639329747253863869231527599727892392821717776124941674688631682546596712434786232138764319564751327166716435995719948744155314843525579322351749481885529433676394942447514626536539294454936545362429685712195153813249978317784472722345795855253563537364122921912991169353426394881257942584216622152534625946988816498129655262586948379982961843569425823612223425927762181671818518162289273931564158297273247716275611472283392718553685582644516139171469479941249823141297927182245223224862561128695362152859675756176759224755941417884291832968334787528141399616873928432554556991216184817498379493834674726218552435628252398414681632429619142943385282479441611246366927229449344165678381354579289744778658857164799313855387481457249871248259572195448396482253335423442939577293639575453235532914448586216714336222795771572372372588967684491357831617288219821455539943732844875575925117336333615733344811955254618581384568798762616642426431779743768558478895237496249565549849274816951729351774631153647247437587269769783463729936566873212773674821671741757117794545317965247365453934225372335432251118352543434445412775528722793553964128278912128269546958255971824918568247155952681749462925378658796168497386115525319537124153149578676552353199832328444171461311541787215251381937238641691515274739229815535895758314448472376163461346149411854527394858847744168375775391935818749656366264714128597837973559119437876455386634128388652437169658421656482283375217852461633174121244634274359233552625721211517147563387118979397929819337145397157664134866346976312156797648238341884637241458925126482395991199828435618675342954117614295912824836968318873488878969531351822934714633878586258123217866479129729778681636827541326423992418298984571889883613878566869261746768232882297144547154944863994477384169387189421342627728828411999427754421819713164139366237999811285999434513749422115826534633583124675488217236756418243111532938997348321412153715927578756243719711861817926568613348498368348231133915913814384525638866289245581497272289947476238382682124736532259245175911319322323172885482382921828564867224712525373382454262498753471718649372396264846489638663121712428862517437539511492716921572284471226567521639864663121255875173727893537963327635668578139257157716282862171693437239872143472542666791359426221354441536383351245527446117349167635785494162296697914636666674145988421154994989144636779635919152382335659169949766544117917897447393372932155488898767448579832833451364597778494849469278431819669319477429488475767135748493749874252545997854557282887786242665794835886956549481772383816464618427514723413629158819354242133296381896684582418647526782618356779237915422555218382363133564112252391532479249513767944631426683189469712183172351693396261358595952159138242829483525729542216173995299323219814944628322776844825696526727985299174254891273358291144928141277574218559938519497478399519564464447449442466941621332455533451429857494859483437755566657655577319539768813264253812255167248295128972836198898517194219541756753442528676726727155275174983663113859366566493452529865592517723316161428166455769432469117114369266474335389938261567415246313334922383931928634153345575426324494597458613225874852538799765476338757833124867944422296143181774192362497511322348593751373854863277461762842333244453874446276694325661618795161775136567597577546592132273838483256942674639519221365137892325768319198928877433854367462138152661895834622196592147447631446997932436721496817534686166745662811618552548285796812335294217399827179951159611231313744682448951221412229337691888747682911479746992933664683666649646558626418781865958231834384178179544566933475141688274847548127269529826351254728713763646783288319336677778574745526371191532837529126947316968385766489565227362366791819314259214333417746875315216475226943615356133317733212255281225283617384122216596433716347261526378879529331254888618954562373626586622193241121446761825377689846195752458947933491463971452552832933854452998478357781189553856397142731871541149769967114223526696993375884728452622199521958275231345187616632178727219885786324643339641258414992522366894664225347516513249843674586516785536741967317124115323734855712415552684585613292333634713892319915833234542513452589249868418439869487126882643128631915441884266875971342421342733147411823423924378628769338156985666911174161165131417215473279838388742644829161868165916395292138336428396453783651844122528344486144235359413698383154842585222744657615114233393357814956722551446454914146323232553887524635195754556416888697596112292712454982569827529766143492538238686652142289181695192553611921257641316181559
637895543885445794124899795968725592528391972766958149422389158648816392159796661419988353944384315478928656419826621763657546252672693549997775677762384996789313392126142499737443637374916264641599988526715755934985821562919282128312825911478168526193857963546984958992851748189193934447858874716998199977557784589737392268611317815778969735445892471962469514184929825731586343136958841477546828799965439629972314822256579529975699921539399261938697588941168647699614896985854895735577942178981486882575471385628381961385692329235777291996357762766841349575739992474888711288935795863483291999412772565698773672849628487658415652986669916265482647643367638699766965777734313443573168261148935798729248797179965718335648934785461972895467271831446452915436733365123937747652837864831166176959769212672529697818123647117946214785364296141297119865364512627376498311288779954999187118454869373822733168141472576838459274656144476955815356598882979427825969331373585886645211185836793851484551175135249915843532597453489137484971979912935888756863635484589838113193856793298134984231478735514518222723859397567734814139725895346675819927154858946429233697944625283783451644427725237984596718162965715355958428989363264936557734755267882986182885955145485284698993765684743979494349466594977993592333839165341535355488595783473466147951251664297256183113875241152747171772714842712823888981582734314242814418665129662262381359749982843447678981315293342963593677263274792844974164467987146558757253538829975538322369943387596347839599557521211941375376143342721241838574172986485188711215516269712888232326833895599767879587874132643688598681548783912925446892116737517465143485875255853181238463661374326317382118872634949867919748175576291598648747875588636681379449451423299145994665427343584793275977783159615186776354871237544792578734943462896148795891126561689532612285964289256372343863919714178464649994188661997874418577627224967494271843513598651866585557815167621141477259589687392844192185694752187523664945397947496429597798749645966321724185228291257576792645153843666969928578451929511762691682914834567745793672116492961477464837516414238185947698883685912996998832985669148833823326547659836125628929565273912913132541152195963855719361225463936412698948429358292979894863957524283678975259279247451176789357557396663571445484651932991183747821217798974766966231696745827195164597546114461461828131138174429588949397357582598563751619677567988356492988932952374788893446248521339663311926925432729325478623869775153237478463973738649419385183885875882766842481849195266156223417883183881479956966719823945417497343999735429847693972542433693262231358158494984562222786554948318466927597592935635881258584156957563518891184962857489999248846874375695314492598683736984141166218969117694119365753542612985242813717997779665617299762437477197879521327838592557526628897442377792869615625195158151423198611514892967967397358976637457263873148943661268233487398444862893183872885678687871939798797985643528892454588173573948967117774944228588429194868765255768187282631666999872248953255322516529165873813454927489883956918182917895422352314667551285646185663427342858742742679319119882478374832776465327551198364824673948879643111291735949136682197933658811759957414715873481823731863771958688919387931874583566737535724761374554945761172365647194696999795259654271243579746359831419975719651451154286327578595893633117654555851669769193436928597966475373931549829339923743816587193615286718929399748961774727419742936749325468416676975568893217366927988277962596659635867634978839751574972179624924513886429769424569144933358328768975547965225718496456218927694397755361592338329145813877729216587224254576385316912732294556956743628638335298659949246585843286543677267346427595446662458891877474717542148469369838283671822765391813579114397937635478992574779148762745772379958176239134499917445694888821484572624656397579949368345676886666147559423896351673238493372794346685712583647558541493999359683651743721786752548393186925395456698871344666297127992396648856767744381497317969235771818339299769429448963677722855293143762965447321767392144999419726928991427674496886438389764161256212614279952861914866559638454928513896721159434813187217926219526419264955468549146453329479911871458511773834421394315847727251744471961784435165246958442881722175533896172681497227223256415577356228392393595634766689134939582842397316251575454478142845818223862727654733574846232877624166815961587415329568722155716313752437549834734337222838738358547195163826963882615297145822599957917279638723373253873958461979421836486794937364789872513499532294391537623345699131299269383465895662277399673785347314782873441944577964148334752955898638764991279638628386719967946575938264862666976725291436581214856183619511823833297132916982555914352696334824891918845618254756363854528662847984883143534365455352897134573325474297544724157784151985352376534975168731347797871585112845527696888943798751546999192649718987169298122431163649471936847162979916571881532142388648452567664647212879237616586959819726679871713816617117745719736224572644953718488259683717322935868583964786552913665756183932493918478327649133175831787747627918993788572137349627778567723152932537161231259858972867193263626218788628438987165687671233144825923974322975855271782964488749279125417832455358789947997136171864869157588923336659275658946419564588277286875713286798123587487631283149565974696982289796282774485892917787828459513299981326753829364831717121333524544247674993254433234743584597352229482971918823874383558337764496953147487183827121776115724665713963381931575261353626875753998952641615846568123355217849187893153817161858956254543723892592978843446881548659198719241599522139262937457262153394465778581386114378522771459786641648939257989377641556299838666336216258832859782875221273449689762611853971444799953957128572964312527896131978969843281964269322725693711838216526369642383455745859991529268759971516919532639726528299981296938441137333644761366462432898186888735982414668749798667267253234366333242679376529536187567985451732797535159124615941519397427286396631686521376319819697857911934992514312476529549312474659964352318953916718123881814684254237959914187197531423396963817512383926235383957972969182879728766923464419496467568368979963794933342818841712955699112315349854624361798864957812771145146928617339199477537229353983991833136435125844296367324746813766964663258828919532332517391781791251654524923844658357688829196731678444489696156473953726458785495278892478446342969518684957676328873194816399933257788147868831363387129982327921134864654481135365499259693718217291277745732569456152911541583896329966954354533398987687885543879387789326515171493958786594676499871693921574759484492672665558876292142529593672977659789127327347757998977765127723557372244313333287576624695146444624697243178934325619573935845932652869153665571875761499532373884571638239441881841328569563116643578334615223655328497918822667223147937949192631889942812683314146768161659379795494816566637782979189323671227727712357254435811652582139267441172295563817955984233197259821957796127582218278117419291137373936437632678552667778972473746463468469981722883314452773758429182875743863718669214372659829272592353519274837194455869253917186359835312928528934471935576435873574681295458775643586951772748282766797332627376328595799627568766972996874728693145199965741415558254558776146375238661526242852111725685766496519284767637368878532299778327729296677121686968499446943442786411672867652333682561498823847858978352452876156493467626124517578494619841341342212845385267582152895423749427666592599538486224112199688728945848512747197144416835339798452213637538413945984672593918686186982287229172792233637184672653195933456627696477178751696243255627462326228234556682478891323516287553318183956911677219474327699531582679323456762361829743149597779364831396751681486865681628793679493768984229334237994843422889858529879946188468714979551753898712161422795269716768867868577491228422438534736493286914576862639192978335934674373938716134885891181787358847571893646612281559832974523215919848782299452296472548418416815178572615621437868453783899381948235988811428548983446785838762933145884891179724569424637572751158765428398293721857489277845924983849956996926375666936948152897965194494672264122798326336662469992314688682735971895114361887298996736769846591481582249182877637325817418481329797976876941899669287393378299392798535368785614798929987774164263815781944665932994493465755753645148958117522686173779585948742116617969166834819922619847582537646713373179626592317465464358546343545749468797414277936231323277722336879576747328826858549133538283543771745518849127928613998681622865668832867483142294712511334898485713865353653597136567586145448223382468786948788562416759722913591157486896439262933615933469245276222563861798463815147277885289389426279818571261521186854716465855195648832729268142893829624323368522968374481968619577918485633328546619516668931671828345939438651659173432757322813559454453325727561165442357862741617612671955698896217623379224932273453177332396667961196751391298297898738521126235629137161838148423172845685794975484335681798359965291445583469378325566412287912873662397545898359272862491879977299331976289571547793686248348179211961892957339528795236843236429377294898995494938655321389277688459781867516255569886172266488427443754826422216241399873277227187586655829778385182485653345913722885942327113741654532884249125993554452366969756569733279248759456659771739168951347276791812389135783899634848694456183942548318978631443522734392353651295188832537158412781726982689473875557639856529384958347245695884775899917563592491983221619692914524357951271652486725484493331395192872139815955256677893346232329765737273122429873747555587146153796121687825747574648888492611524745468531222194666846227247313723126262984648172688588271747892586619664477676889239736357682791171569446937285434526867771425288168439678882817745139112443364424555723119961954925822714978821336948811823636318712886155137616338532578872452113522395287962947986962232412366858297877124678498156977295897393989566128221192887482184923934565555749972547596966348786395256756625777678286768738737875777977775191191961946146383235231857155777936855224236288622593363583323119471171879128987832948328466182292626218731173784552286673848713217584899937627718183819959799744944665977942491161618846793968379682811188585134978462323169242474256137934776311534546947823254175678775879564294339392389945297359186551595562333268722153316651856786928279565616929669591272286211231297583511645273564242849447527453168964925337214885466853871538492261582286483637936396769426338771315725465783157859724686332821151492868316346831594493981627269625921324865798966638933859971484673973372272388759929968429282221783799975868949865223336135556756198411937144283678941923185826362449649787744713559448354784329772948771195889696997619956459759379351553913527729759788564938847417936223767245476277385959725785926626725869863879117214988524358469716731529833588357537149427821577492784716675159533869919322889785718599736255126737437539418846957482863876852852655174628836135517188436112827718136683193267151295693675933713514967546851746792393538363436587997735546498871736519347869216586621616621521796713211467122368855356769866586899829687674729619675738626148778576382427583844822384859764151865137483535596738824619469236873927415215838648611368372539834628733642799838538162286879336128596598737263719979592318712422311688437152716684283563149577784273321367927829762358881721289849118247686289616335432265543628151759218923573524713827549678593858978966949369435171827716434634975197234569652434141875656435695876974251731332832419256522136314388124237174861843555953575997156428248196459669218646645535815726676344553284894955759532381184518827558934613557324937949367445837547554398399315233893666597988985497568796157987478483174878573953943448657136252414263469592342268596952369578715529185749352375798324252419811748854593696881334522652639364612524467528132853987817978429549287936641289642668147879321425451915434187836572468321938397521344636585456468927872511271334872995297127989423312118347229332827973967714225689545599564267914657586879337327458259318328793186362495236977736671223942537693791799249564335298969138358114389327461686365997161718545534191125959339647534923129668197732581648657581399348971642271629657367878187865433899296839777548173174714663328322379768936582591795593379289142486338617524559659331475989444997178197593974319552981245119714366629946988698857757391349562662619838482166435469699611156359279258751439782683925786359288281198958192646249455438736162594927338185628438783142434862198546749488136172445457764179328997379226721526666232379478474429111711796843978396498786147282419967762442914196986368986399799246226696818357457693957994878167476194921868394929222237349455789124987368597423863847575192219837394587316275351693134978891746548717934731445499874315755491471966843475289337936886775243364524995682523169794886123163112384536263284746131619219157476698823459788157635851757168781867399954119374641452819113363854824717289247951613893843835254929567773897932581834816295768387374284244439443315222715566915197519825933797233688819276784321943861654453381455411181986292312945477111845999252479543267398318893665947922757451966746554593898286538212987926181688662567689962668831994173187349619658217715913649688317382192364526694878882824515568913975946943655879755154858439911861774261581634251242925223238268968229552611395765845555418882998149369521335772787187635259886792176737397191293123478699593713771361441265499282852219467831525275778762667371354556836969574112857378568926185381984572469776784744618299739272953693717412797779895263497771327691527715964286328425696992618568575717888879535858595487687427695788269626925877257689763115282612224595379992936885945123225384621162444325595861599447267857656379936434796851659787428646251731481473551312296367855589665353823152245817953494982545429851146848277285417722772736858985166613154664856225449418592836848524362762779284647146638861999164959544617315396153671468748856781436931551431796936729169577449153798499577917638163857861362845423734611885995381375139958349774592644154992341427966414629698988431465622285255215373646567254446844724248288754132494832382749536998519634648314842682741869899753527736735854499512999567399146748744386996464749426492832624911728186976864347134529198414143198871546848785391672354165834616352424814212679659364378289541671622419734426683629124578616989234599724533788221594683482275494395797984926276634499548385963453346445947253659559363357779783346279578287764217895941811444813193753445569384996731553654665586189329297266442826676926425682295515766449276391978883745918952369295893291857968972811196583398275642444518377378368847975435553837724275216216812453432478174611455929851431728276477352276777686958385152542913994441289152931489528675849947133693589992968832943214556947911131853356135754888167964638789784181839977811485151211744818799784585295521161954434177856472386158378356536134654255698754955438783262767377293898234848685381555247722331995612638856658267359548225576273184761754672875998753548976633757457123527215686633442287332674611774394375658571492816257943428571963898912535571863398992227562192794444772498784486355668352244117913727886496169219327234383169358262895555469359481285888536132234254623572479721279553754197155917391445845279863248449733458593279451122883584843686787714272497959187818962241492723968765682554517174116274691842475865754782537545164556398218745676948661814796234424336187427711794629145275584565298599934339629686654898342187784338838863428153968268477843481954742615998316723747168114127827576321361492467587728786362934111893384868545569439899882791931249623539785233796189599684689784841739556747414921177686827971364114726489677241931553821728163723856128812489359178692825786288793517137497872475524126127868843689137266118314178922923942325111975717292617137689544731237176236573447138549774185756656259986592458753675564833949237779879687899954615994272116738464519387457598653181399999211162862525226338466829617751174492734166286587926353228245477859895297388433221255592994494713728313717777294499723591569322975692352552191341786972499552444453499393498198759815356288579358791725217844274141429148942954973761597853728392367839289196454398834918165846825945151698416958822799187166994277581421222858867773146795511544267534526691841154537774358282197979335889452635419571782576686943618487814644636649116633492414895394562193313554949261529562642593913669526165765881252991987923429997864874639396948134848294825177194459841873552436367643716142159846618674719413386386397462455626619272212381936724988926454133632261166191987818466457465485176463722471928879954246825485155364234615868254285551744841657991714259365184889621183286416836959711958285761711425898797373469169657583181826434594512398921337891721695417278986725726122366927142396174748384633757585264264326236384246962824379241199888279182243464647693731776335157911436344156998225781691631781136227491666376679772543995777317453551834643498561884439774322812252743659928378512953488876856572619835853894691169784786355387892516765454732684781222721469348648133894259718572198771984294273945881775856369749928525928469894318254635474473554172959618747242981324174876719686989952176146251192474615995144581716128147274192593741451747224717223728639639339776818811722817955632477918556122128684793787833266968699185394367321915146884536669754576428431591548954634935656971637854684852413689143182492117329777136939249766997998887897671274833849297574635537945551478885179437283872598946851933155284531862911215683549113594587657853854279928979894779167295529749344226716738871892697264959791883566198334934354298498795147695823515378883213222116369186676393876491688621569893818193625858516162917818326458438211696685785152986928268564852419476126972165883924254262752384735878863582853544849288867153196395479391447672637844475814327667881976426264163497294896167956681875647934489181176945718655717556375976829965778493122579464883442696794569213694567727513381716879822746694632897554449958139735418117913119478264894619384281521638547618797538584452142278433541145764532558964751859151766983896289116832725333429944589117584819982294983653627861157651979977564822172881284453883455445329789844585674225615822943392274332373758388467815566391788591184282669519799256689267195952118964547247971719679185532873372429255528156223426656737462739554886241672586548164696238388488936415898557417838132624591127429878994725449563752152614765949634987588533286791814475956526891978141333861558476513367959714771953654338654848357711499497319133559816155998154126618858316454241558384163495336537325345656725779661451271929948567794452534916142111676627229273765586218493896675849733188173716379483474692418616397716754722515659372632228437191992824825712178864192725212927643417744739847992225693891182354617557457416833269432645297747838999172587174731657965212417367447551736231398978356243998995826377629346636244382177268167132788387718556996284389141833362677613724918412746912541265132487464551995214714466588559558148231293587974794469913931972583468493892566496445665687852891145971252283374825858166883723348599487888181581484491944494116416168957769892978735965522961497814115657158858985574464684399119162586182751247248354929111213616796355566925747779453915949831322627898251598113233987894679361886737251852451487424486918822979628512171818795916767977473659981533156965148459548933294168572393128993999595925919771692869391267911479831496264417392758396922938649611882848573664357596515524343657898718223624995556781914724881529723419839929757643642849958484922286881721158118737978651597778756396775963551315254451156452594656719347361767793433516964431936733326115392433866845431951313977533648693534993176226892783522334945267815281779859914752889334219691733154984442656388947366988888127199194175918446142656247277943725622441478692491724221994291696848395511939577165825753596417893513493195581319645287951838569222646684864665376345691237796442754759196435686886331763432243495767942959555689145155911982323425851414154939837481468356831337796832692573326478918879914416939475563891679143684265791892743782423583113197516444241557657596884934792371856826361263769514872627953989475169481138174298921754793575784743383669174181985856141681588399414487856753825536795634175339242784857162937389457438398553952242125361695584944688984977178111368696972762483839372516456968338462156371343694614773117982768164175378572623274523219345575656292662653366327675585671876453448864858995352271914791358262879262486439312124387462555142949743379382666661366813698252826889949314542249946946846991982915929415224188924421472249147156617632735285414981546141662712364832328254917254555882696573265818535589693242279716879741879366519795443231382184775223783962985217628145141164557126123571994668168714883886419695663335644959372289574773822823381992421556715351257965144335888654784499515425616421823793256682715569649462224736983359553116282853186497683179817172721249938196685259339473299693924739953397373183544748226993253135637365828328116816639114197741827928351927282357845153138167677697313777959775757859756676833828997759767862133169244819858559789499265492451548334355419597833599744465787766362955665546935945574859468259484595396255664491741596947568988979895448286986696944398183446238657721588329866853912997865152831936526424466586536417124351271638952796485665118569836239424113575321233577528574548367495918511971392796316835292761869552136434787686488764546149628731629712777734658323143272675757667866295911224274885136948639369711456749661468918764795257766831898268224237693613242293948858778268363866717378437481655745736419579528555349918897844843189595266558555949548231178863193885663342385378764323378393559263976254395865743574181584789484288784537598295193417738322724469317638872222578756631656186762273123276524973369353477786445994838723235728568396658992234345814999738236799159723253556429724981584187868922532825863319162818784429292884326193832361229863571161948441817159944839582699486758897918729696799211618477885636554432863974295489598677419618985465766734932114716856681393146859115463994467414939986449149247449314661669277176658975771448561188948365475383619752998637994188755659524463558565448432459372857338952183999975471617961681662247922122178988735961837421127694533188968955116372974996495813174933726838197536392886739276637934934967366854197797176756549698186471443917516478488348241644846237291192543469657859719379213531596569188197185324737226758758937719573725381299819547956936384653376989782655726988541497512228825438263393792525135149138274785153123686195951295756313661131662444449239961996333394636173599495944381174798787435541514825588467615534118861332999518296367395978559484269743827463742337862946463127994845313891495762381463198581352796969618787923647319114361131165777458959922621625638944345671332826628967639641836673763997739342432425635646934719626772985296513122511218548496168922587621258822473458789919799189199751799851351136939658968173897675651136897315486399675691354748929825238264729389935986669671898945482649881153919253977374513747853383152629497544431573442817223299283914145493952348653364217631389982818237487213262651474741539985726994648335785735615636483549419171568529238844569743877929178321998493557713721792631533244678449391271996172336615399925423481825429788633724113157758168918173173915528179193153587753575244296141625226957681819684186435884727999657176746761731134371832362137672922878486355933461897554278943453119745926885986936999768592776116413345616615673634162391535888869256998643864594438318668953185346532126346874256128888362276885579216175683728125993226782287986479292967328821765119279567297874493883361384937728836368599443655551285477134442685471745455188771472842137875225935952542635645966792564813671728258864979556595983485293839213846872333766628819775275645929912548746873551151456742345765627151967578646497735771989855451615716925943319292399491842551543551485233599632355914617661266957517548133839191949571873745641962491275917969486829379246446881166773554462486883545697328543333491264818827917819729289522123644485829649396537511714971622347689381531363864857664314157793575438736835368488331581768867295764347413923118681499781927417946259859161191985933739736867496587374522961568199338455192921396151781741357293841911178284825688832477425797479389999897671265135289743946617371786456968962886878349177641193459257651972218263158663835765631363272294954599872315821169279327883834663577394629415238786833298574475614226564665699752736156423685613127689486858952461762448143323915268187883486263878996694875254655147546717484126853441697766559952484661391667652921713879515214539795335987278358227538611683754181612147946813851588693157797157461533418416669326187997871938792952741881969441552883242898893572849946287189197347983833863684614942425222358532546889259794594916818844346482198383976862282377138946139147354987896677432855189689188512136864774912658351967121287344777818179831175249882768368272724591681627895151548893242953732939368996797586464975643349238898916134319199495241111981576591964777169276897849484868257487492267682726869193336747669769813684479257559178797678338323433688532968611537875899872257339716856338851257858793327372477281933885286197544269981291199337872334541949824489565724158577489951777444492559179431872452269126647643296384583183847927852834139489695184254726597347583142283577659353443814858914869737347263833358954433311273247112126885987111257825957634369486278195726811958552821675752634965232325174362671397579481498649133373277965613414454715277487717861861328838684232931869269794144677729863864568188663427836973884677853269158552454389479785667927238175782887237695749769845742425694658788327857926713698346128177724436188385251214778248686668899553273543769876623968431513628346189894797481957153364353372828976664281738177956974425888787439139484718921785382175331522256271669892983129821115829754587764915953219783314255727757451611892659415898613794582349985381789464749668316687268791372963514737677949396533924225812755419429158225496365754429398672662847124533533667116525988769354212773979633719489885996217163871167148877594289498129839763489935148578774661795937472183162175378826465988849876118552165274335577991333153691784491696218854287491849468781553692572314738734135937992744516975425313184839311193948693175188586484129726976619595752946316252483944751938343826738311535541713563252289327587936553771674672313939311698422455664585658729979396163499137133898126351285615777815157928865369188351965918166562465919172937467498222774717277668464569589566416753876169935283983445443289473139586136327723646554424584734876645155637321546986385735368971353469287182622521734844865799726697775397554829399532339786381212486816274575349565839937539898776921291542319268339953441258544555749746791889458487435644155378731247854969298437559589899479667792811437817849595477615438284225452164819784727286737462183745728346712726781936159479141535913728195351775976447519425265675194966824545877781313313187163866134312913559492663393966641284189243842838132891486519228162837352994429761524385878259714129592815217595777671318498683553148845529347546719832985862772383463154588771974978288482625819184991138682552256176881511955982187766347998622216165694295862114642728616515111688597222571919782556431511412378819726649348463597488852722955528785979485694882822611387969489176257662784717674253845454168143562274759138765654457236352932972226373386892741293124271756931429473792746736263257436469177445836564692369292344849836843235288929228682649151839794334719516898939736144951793192797426455593867817397966233836692358349729845235195264199615198699395568736432885482199796556291636972692918834886785637259411649387146627713619857518156819654713639462998948382853394248424333349679785872537196313237918433538488583572234182531249848777741573412549489539196255339995198627158852334777635394195291577129518863313819911658615788376398394729967362781597141562189668367859852366742595689425897365559474399117896435526658786761511425241443255427534927936396475324434912835117863687269253145719268127718831915279449957379148398359936584581649878323897575951357454768928793169251341355864943854695484787941732134699314659948753188468752666917851316988236144588434437191336893183521977675819259476337165655877836468486453764516545552684645791745541342967169166382175488124743121943521393577488624827835651969611934458362289368624632881954396523139993429887791835269119458675465775586724225736127576673329116633943295194192383416192877859427578972888143319879518157238649233878769169484497966269521644981428897553439547644556597134532313194913231228573557884344349425188782122135456273937398374438338251848254635555783996659165942895229934873475578245442266459213895515793429452144118382936474784861879168715372342393856954452775116892225835724836155184939977199295878175178731289317252299717165545411566266694459739199666662397716249422296696996728263883673364492382934978612615265917318125595759429816477992248422321784184656431665382986334311534196352696188847783221134789288456443361476819992423692938372669117761591411189886838382346189768173923672573515558379827887666951386713932213196642865919734285749337798497577786476525779916219699465179396376767571551742239754895495295428277961395967673396616396252564445765128388358458219199793596782832839342668746675921451192854589768116318856657218569537941864444981185359145418395937733556389572381723187136282521323944149128172364575749939876789173571858989518239783385689334647462656269917828187371343165742888124238947337861751614657227225437414523311712473784769876198984123849481495412888865652553816162365871589292352394977977415495688211376919972654336324181537588552288422189427449682972731868874391654563665498367733167231126181121395669395585264766153586359875543915419997431423734981412411924617789849748118578319198819637339642189182819632954818396438598996496475362443492292549456913585744187663678387663923472489682274899639635688932867648828468918637759719242777184158328895639771615159115146938379527148121916565992653316463117118726293339536127432462489363951361162663646862977782283293148635239857613574768783944927772153818364772547928785941966679924823723376883492687593532855617863971415577268693882143731951677986241766383544777381617898524148155662954832923618942279825377637433598362683697319289575252444175198343963999619784566253681325596486915275136169696738943986885857243419653458785889961817879797215436276776342399628893279798653755985475875326231631879217196577188346787891734494271429798391945811757872713959713973237772323848647798775215932996459841937946133258849195737657629461963961133861575988235354131464976136285924234187828655756226124982446163653556755456355627165451268527297231964651875254731287521999721628392897511395261681395978287524437875621492431859547867269384475338825419531523387796579648175884292768625941222548831977227376253757493646329848237325115516496441199874527614211427238678425269525195153824995872958417936229152962767368153651941872327114834634248561262754273365689885827957922139211295683252175591156557991958561548223811729637159445933145825383625471545985751149218744578953867753747865538613136183941848251371127449977858959663239388249465573611451375251433291546931778751388473677726314167165888819475295161336845914861366774446844263678359377277588984751953785876175572497936162428174416426897681919691897693545863841976816485956996893891718726677835134877638652751961154763221373251327433227764764211191461112943453749833223539972297914656988729898744618936858774563931224662238176967637859768991614181719277924637357759371238838814166862172543813637356697344695431583573492652633582551594393442724212592864356482761741359756366152952667595168674711447617997577355556913875678899727591369431135415356634884496919913182826873856295481738629163375735819885664654382716611528936859159946952686279963891665181573855934689838584873886575131826953341467374184849122519934174639353511689955474677226291995844262236197998655692396641228591523759879619227438751176918943534666782684678137755593827745792697355584584937449637194718912542281946684144663682114536577885654894955538129138972783691867187123368489943811819542475813914958768155611665433295242911643351931146418943831522717889762763421649843951861654327945867754339738539197772985634957682784671391196395666954986844143243362274935194862498984443366686131347856635861939842865226274924535237187522672183192986254734965889792835471886199355825118369193567388489634377696327467117918371968391328432721213571721422994565656634744892214896322273749742993983814169275993319769559718396928555128818679646311143178618141238133895987226381582612159783388894684214431511793711552788573775248982483125353851492652783463292284655611226848831418366627659647973695881127879612117947247723589999388439693557676993988624357649757794976254787533734191549989425474727939449329458413929991873549867442755779189764673995965579498458453133562719623917197754286545963755678824189312649427343466338711793955439819388433888496115324363357789515374228992574248199735866298997355472796523727831822288646556835582718561222755592474628716933546617335919269356277388476171749765291693721638596449438826172642517712165749655835565559953816729937978972532157694558388894224832185148547279989727657692765933468668278546756523959229591741827472228553957739687825358677871924277281199677859483483617397516156326747342557491661177485832848742822888429278495846557962483946272575284433977395756479328345857244589639357621644575762959972528588195717641147691935711516252957525919292872621746891595236978399839537433797397321988276887933119777678988127648692227922247833283996947325262875694872168957663659789265171572865698996486759381868896235516472856754764212748993114966477933332938999667573141891658819913672138628556211646834278527216531356529394921166892895596418728132832515941411843775589353986448166545517988956894546447395387888614197358942265538217339887391218343373133461496868565745726726957129826489515493695576412553486451512267478216248518163919778778369299986874415645216817363512512675892866319592479932619473713931539736879727856165322877662131478548929964188319693315125743761568693872262315576832533661524215948991958917889692383738193941969872697579345276126229338625338422635719344134793322141348657736661425587862795486168176989639975878889919392196936261488289723894998215938877338429877998655224949146878515112314941566259461631492116952211297638298812274465786739566397975366411941896952527196444727254252966568494895816179184561654256619121593284295926534216977117984197615373387261577831371585874763818747375775657735212612856436347459576262686591559146437731688873968772389292459361496687376671263127713255355144957528392377935295237564272765484952165837643143617587445864171254923439138282942189725698324511663857411468853369775844387949286556992579829857721269566396914286473622967976256572363562782967169579642885863582866549177539896487537396359834326524259258415352613263377819496439666233793446264971675788482673876548372337883142927966781498549495723116349287618524397592634622745228916441649478514347335215244396846621144919538371322969438587934118164415387779791757476283249531897938984361855815381275636588165986274611749266179764455925238668635591698681496839762825258458959465289791329575538725771612637535114744646529744554777727148723994566143878453156975984172997542266181777692522115172297848126639173476879837154726832582692354433799219314754923272346977294844346887345299852159198917149829957918182836665547483489687662454996513568687538767528499278857563754338445472778656867427963546964392962688284289268859756557543173638216961787127786269759655588482691965642964611175226833584182998949746429791963459659984255423247129689247213167286925456735697616664572768226165473753651197745813833682587273127187444912964172573148752212717121466428798138463231166591833813687145557614515591933644259935781428663114444177599879378345517348889583158735995524729684943518378252672964461255886966861967885465863989893484217895912283946676995271161943725965388286867429452173181493461739179677476233516857813817292761832918874864746317999148242148598988362617355533688375324222559348186748373723338498682761298348264857337591866842614659383419482583435867964573231599956762811324976572691951268365683477789152424653812875627626326852757235139554432681726779478566739968829639599849689416587229852898131415192375754142415467426412247435979733595768433242899282762859463772668545722573673363913992145413481969768977854631423898251434962213962527353143296495383394837217753355921811627777756738569784693254543254938855712654537666884912396992173828169139978379929934659841362417912119575822327838633295865114942568365359876241833957814197947556991141833289329375672696124664241795256268963647454251954921792155323445541599839432245544395856566241564574267433484279868195655671921611417678158272948213798746268538453674387622294991949947896759919738833496921893726488245943934786796251796472897331568418756439799342489979726527187747384919123193371646739841833395555167348922349786369341757697488472123988421548666945626893673149889564571832268817638562316136892912238767335187137643518768777485788525323374393981729765583424213884673262891522964581829787457831415992888918951118716426674845923894359665341337444824836459894616435523298195759576229314789984978665962714389683323975595582498754649776493618991651147535575148722367646568719799648318349746625928471689257516211118848212851585921458686196456482798299981314421282223493352821132491883286536785621714752128768179471563667336368955996882592159536596848322978288613499369821293454674468718766941162159629726619852388134775163568581349884331625939579191272462921282297797972883339193627757187938873978298448335846199874299987719682236382761294444236934387556657994738186418222398411387925673871642912113636231949397339544987265584999928197618394635432517347474456485382648439736965529999446822242656782161793773944627621881328378858381889589954883495796693511431944773574845688996552738975937644662365547894665473274297699967476386479866671477415954256719767695986833993281874244886499944776318344586955926141996857684312869119273598758449384972918867236399955253768675289154638752859268235222389971714497621869726732765565785947664341341282579142218865174914125458162748752437388513488997558777248258897112774868788425295769968611912335394142842926262163584258656933944734294722618736853787678194283589238761827848525398619395223496321677661924329425984699496617577875216946523476223829257542612785325866771314596359254381536489839765737781263551661588755471644828836885453737527763663473795686585295392664244676493186451438499631114727849529815529382998716183781714119616652984753955962296835937575512964666562895946753139972396979124839195546277715182511168288354161537713242441167767575758285285784338731356723774679267645645485979527815871985992778185658389748951332392175755941818188366571825243482896346774173275542665923546821613738824316927814172426729114394183422375626543685464714999239548342471593115143864478963435375234558565625363495471615879418681973571595742588512397677529856734121732162641372455339519729269963753272559628366362286214246431894988679426956456775193948868749364472334331256346596468731496645898834787757245433429333592183882835428813582118856313626693964411689548399384779792744185617478415728563444826119396574936672285518918924568537635784578644335221811688415372455694615842912633986951291747673895117699636843887639653324945494465751667287543846294366262984861951463279569912992585733634656286933888459789663687467761798335634489634367128125459479957186678929681848973813677213317778249696126966147432979963673764136625364225569899927119777286729569222821818992364176298889438879926568863629367573428836846147445915967919957685899462695574737841224476853371115928567821389979428664636873772492487973761157373545359247445166215339399467717568892421573661166997919316422267915354228986591399959134145327523436138696992779514949132674219712887851221179845231797418235468341557532767783627193323254338694858491617512774524757397496171466758472491554911277592361623128558355196982563976639123858485165533421269127573322873597878785644178929838653258662635658573383653728445192632658398122535667637366861938519361617489717733663897555651813579619765531967815977179842278698793136937777362285424568379542366842884316898581799577767992684543938163854444335894615938939517344315651876995839973969792294997753649642696487734214187281485339818975829597619411937842853213436417324996759414264163839679546368745277542249653589869839675568184552822834659316977141624644919136922823514871238232976179833433371158519243842476138634753928478323229288832976875527158188759866953921564614973334869821496229288146786269756826769797494358625427266946927144828212899316254577814963158699798723415689791472469584392175479146444566817427882234189569378791517267973898589839978195683347147615233897123653594634653619135968499411631842548341436187671179438996747598454537757914788786119985536464583184291359882394219846726389678872698214275384329626775151599267729354696892187744434284467782262863753162337292217755256318821856961846898632167942735822658931334378968646451891481637814198163376489853661696739215736736899272165253514977853868169261629659197746552278476628832775231767477623681131618156981835498312292991482719846954793778947952448339721346935397363156666574434451931529896791948696619624518737486947982174236383716378392742721178798574465779895862481853633225569618375328724952496185811276396761827182653155821537596662876676778221924349197187853466187286465256789255752572293352936885716979576235697657539326241972417467525852722358953953887849974393371531467487964467987379356758746776667187793987432554242417764962415286825647852964582746885599575231192687783325561691369387454797795648451613188464916696137633971198774633327424391478285395321594224659369966935231984888771874866139327183439268469296784776947886649834686152127222146624337174639988497941615931792896831265578565312651672998342584671671336289976554789223143737515868999817557656283494686651674651633985487361984129533742115893896495669684587533187558791877611884419522795988888168845384912486455431972167854321167731691832155572361915183447871647559194567865373588397362576212333368188488393248514627693149877724724789657811884467886234189353971953584875579993855848372956369315643118994976836894415912683153456595273192625598342896385572493992445647789236648214652258999731818345668688311899382391164282959497139199364988123717352749284825396589471897659742258942317372185234654877781221244124837999635654856762989568973656771281913622123277454315829516125839865139561367848167286939835984277668968491828862579289284264937749358453333551262129458881443636455547199238791654227481228931129843496757813577983328868784297542347343918736387167694854527167666411267973744582962158833641166181987692345428675494134651687477388571658172134513978218867487628832855258575521924414697549552267385193232729487332239396336936869989217749346613278689453177416799341756796528884689696291278682857353639334885927117946184616778254624212175281798622365973823986781566935788529934811974646399457983776515832491725741315389936843925858794839857819323651433362981492333517574139992695991897345836859943244459391422511717881448524887162828365345359893991587235778243973499416474843919597883146897583734935933733283444346695765718536838671499153722846659739838748126697998131278399254588779152482677252891657535554251429265295653515529925932212375822932451349816574414834568582619519127638847831239319845279699921296823498464471886631631629242443633946497452894213985829852318691745628651333518598471335317547641736167656871774846195974782453519495165998189441157939542977737641968277929747244936795862481115587952828616784273693859189429526977779676387816716876651412968789676989649892665198715968542153676472527686722383829716259745655517675437129499636395787945883445513857628194217358992412456584167276644976239489717998212829389674681218732413664421451496641314557443987613498482979111191923516769734845949598649567137766293768715244632487365346617965674687279129225676925889671384726968387295777765155222932475139583323212246657185998886372959897648622961544428395779228985513429498417515785459195524368597957512411175732176647628581547775641957966377446523827696358874282876821598682919896834899147634247654923458545187792987783538611326621418318183694574984161688561549964893535767161631262229239459446419648725328728587176573653216679844374165679268335849448531575799286432922731741782761428133797366245763433618692616465383125883817649968483978464997445734683944591753195462544578842359229998924433328646924682435125484579448429245754626824277314573589745413967764345725798199981934996615449913888823882196373376954517624176831176338917168193675444855441276777112896394999345561716344917317154994564945137798195441322688414557694649367243732265644712599686959984713849855847768819454265125778631157345785718424184944693858279982171433541638872427466888595923486238686989913739241362522144474411932675456681948268192686377523615519844775867379365358298391348281447886352448597699259367937834856696286149829895844694126982618498164633784352794626114932259639699361753364415353669975478896931962676332911972956754833191818532639775344354562935827419989786382899952134894975697644797644187757715552172116379294831272284612235348868523841777261381865913499865597372781385782356995715622525883466194185996538775146289681765943122224245454667752478253554324385263936963537396385741546546162138828433436755156551917617994194956555565875763938981232463224968167627628535328191936269193755766648449442568799758511357527554594918467383336456158377518841744654932153649238235944142422993699962821911773269533966385987444422338682585786739777247819927758277298498979549753529778498385763982523245319212525644482586486757759743919386914747877456682565645657253351769589165198796332978389399457939257344436655791853486968836762758656319147182795787859926884715849156719114493913877558921811894645386762515125829967889663155842469836443227159377845548122779249812547258984138822594498675643734791278693626621225564757981459125753758357743976397366129244148739983596489433687867866999971353528737283829929659733766141858538553526378761952676992222474932538488457881546831359882631232882618796484337495144394848132299481351926171984677736519832494332991243111811319252986161471372533715539627699674196825752927251892121586245768673359591426734275738854296357589963371679117669116833433689637699636158296223654452329446429513546563573722437222476532896927684493426817547136338493314645688821527924289813738489831347576756749816156338636446899395663691272551858834766442385129298568962443962133836467738823598938523349178949252216475447144173838155236463765348894581347897661416996548725642729857997337877529828388776262771388186972661653419945138817735478456945395138535673383243655495886255647926846399998552549989445556957637964149425864546215342445121289518971355566654541482342511529485588195498869259455452584739479795228788854617877719858286745385573464183647833926482874383961524993496696977743239437216692915683565614922221586977992485367761766529891517769655334995646856819379437975884445254434665613746783261675936436817979887438159396435292266362244581168157289494588615877596712971416588652653995914664119873388716789441284661325971692348147785598314791228211527778756371123869989766599189656928586558384137367453466552888266643879894498212271753973791965125981827465899956847122785467396463172266138597277194921898698528933193987865152955797636577622244356752636846975291549332465952768854147129447264768736919581257994345121837198245854373979992987623967779629121211436894819168846519454197633744823387545796513785815875728343565359883798196547789317141698477536763245194154916186319498347489313191914883678623289962447253159394163519524486428647434745635385235729767599747744676754475511844481683591614986487693627213991995193612755823991685366475823714357247472269885961265186977697832672789529765636312983959989773956597491421915617744216869578558654397938795928245558743767776854687396314924856572272111153946792579479912881995281841825184855321779954952644434788984784626193791181146843986788886758526714981393555241745887671395323867188955956347169958732773538749644915422181541442778845182559236746737277576799758913534139123868439873648319358784339859488164885831345959695624497882894231624813975165474357243412336928341955359825532737994952489157328944174451792565514848639129946657686663257987287353322643178632647615581973679984913351365644494128183543339277742249916918755695228649752831788583916811164763766594864141534165126638259652891428537756317347798976766944184473743842552382782795775573255869462859931534565679129144589915763886468928214842511799164536696746514139982166829847311857357276399549312414917421784583127488623715812758336673496236922786899956361574565343775916811281835569476587886168537179286125757856557589749878673985433181221167273798676999265929636794844796978676292468479613373793895935198729189597626558364432572288439961233351644496688626781457619356468555638275799958446157439239929919468914528134321415589645847196558697841746986688625275869287648799872156578384488786969565326553255376271682217239716517786252628779952389666259871844671592822798471532832569871586247118167266325799964865897557312144375646531511378877219422671463529857553216754179876859171891513114554836616687143896936814481841787564895664856486512118797482567152115175667624665735689984895378492244982886418341919128438768893778863652888231164113125257468951819373468296785542766826631377825374841383795887275594983592886389251383652635788263857813588829563647943646148635967362967326415914715489636158838727594532321967476594168252996194576511593589594118755994968571863331942568886873464898589439643774372111485244425575895299597966989417732276523532585281917365417568736462469668769799458896312683356646841444884924399835522919733878697363363357494187281493267949563566727921484638753528827499685732961218156871525771736885156873983877962515773916558298919141354473451399734544879556634581968868852934245942938369919425225453845898543475663832532226267348969425794349979734179685864644962983233417368299194952544972925672333254647929995358786685918484726288741593696824165522376629143655793987975373796465876872525531189846639468627768626411935663863229474554998433964311639939687395994998646785888118748588992429471669657771946293249833985398552827168681433826987219131986583776697474451925575999678368885184632563918638617933141928284843589643957454724469199496435679849915417518566933623276891274816924995619845887521967497397352743277578625747444927673248953749957211519676523873752635498217843545254649424899764792798323784358731213366687458348283262279346429394798977182351414592494371495254493513816397214696848468639464621179962274256184686957138649342437357974418516377923569241435723778157281551515957236247167944653854942689168467662186947583985298338358683687417589272898171212938697456493224361737559614568777456288623418445537151697675631972421928847368679149854435235458542984111965121685751964477785719728143133599139354258488492346485687193195999321682848922857971367218612248949567555231473639449383699345866289529271585765495711846576776663498626965682962597845888796718427116873246984432919999919453829798681529652674764992325756951749887623387267635792921578836979863289916696672582493253757521852559997264585737131987993946767582661481891145585984858199388231742496647999372423375353968941119476225321892447329414287674344329785516328382552363889438816377797767776435757179229539453992182685776525647368549159497688487479666643381842156361787373622896349315776119962666969782411135476811996554763319638267925781563646417849814695998374836563982715817132958285737345953213651473597825218296268987977177598667532261729991149575774522925874553691627375747316963436296818825238677662746563231667556527515864299787848752677839351542772379767479625191668299934958699887485493493148718361851276862916935784465111323228412466183675598464615936995727856655489513697382277448235699956718643358664699741341668773321997531472564244272821315471984311149135278496231814552433735373969535162722357533859156355897291692849154216661527839312159777775898898684256732943949698164771253889657644274592694799814174787985531411938854213987479584218141625352865747388542283138279744479268982465785617924998266494542435576534628852714785311346634293179622692115949168846928989938362313915127839286233723935266533351727559314952358392488368178192328362945691666477319326428674649773768783878916236495872298966243677675987458415297797671497473879912754757118249453939765418535555374868197988963974868537636621687733556722414896494913896564447629557829311178989242832314983693543985916856852488643668191224412318642443731535959254112237252758264696712959963135569545539796451798546957383178554819895544347153467885285952895396719585986119573928721861743989825717745753896233958754187331914759782184532195662174296988436693774251873178371926349645945455991394142573265977632666836773287529838461756284172499387459841259858162651526752617968314453323566483431179366368916482973298287197537796456222361275283226983715295458743333958933315936283117264149666318582691872713886838964699924511442398569536642727547819313185474888685765789659338122725896557863914597298694649627384147532413983153219898649464419226377575738691239471594714314234432969311699579499666116341272666787992617689526385736739675986711721893255118944424827313213148854411285115559937485573821446367995634121927158829137631622469968255873182653314569757935884415293877726561664298351379517849225335258588387618722871743976928727359478737428557772866492423299757776685642838749436394336848537385826513866635615386151558164623325489823538881478466828389634776194683121672278829763446677176159747784639922751471259787838378519818834241598914133681642646914927657753599581116116339159281611389696341867567824391226287825888939747731382783193755781617141852864329844826812612458678899449167717265889217669645816342157172113578662228397154848433548439779167369979171989652774298713449543668124482152174497173168999722785463375831162599979112788894543432625145345387174796988666974688945991917268255214927753344748751394457222858876975723823777666899737258156265235476912356631533897627338496383226777776313797697485836812472841214595965238596116596773375627949873823724452726229476588133711263849922968331455439684979238262717412979818337593268338381579551813591779815744449181951576228337685649841887868736424391917476779422879869611639647488468841369983274882515274478156423324736892157261788345931615161742983126722872957715786931517981357162553137112451787494932614122232149354728942918427163311859151576995818639129998175533737293754514153834167474416355562133185968997536158679622538264851921487166699792269388781974343388692327672963422843372834854469342875323334571136811972743135395764835253975589581662646932731694687347449198948315748199796529111376322524335193556859145175483966888819917653945965129514973364656857892925256332957575554141814726659863541462613228979865432437265264414263898584542434584875279756918563571458545887589157976537217868468843136541568231145125714142235256659394822923749898337693264932827427295584157675133371777536145857478557976568162816821114924626323192142229573742764531174491842268175736261623584412497279719999145875589369625792174774431447219495973175733352244372397279656452346569271152462149868634711617997889361226569468229777814534491145245155453817144914611619244276878361483759344448699719376561944989774991334772639889878555815572749684636833377897324375829782718991411128283241453478489835889699891465292222662876746723969223637851677474368933176134684811264634339633372849881879785333656834299255989643115261638384819668817987134665516799798692569467927642841523898959576648144238949634682686193598722912879959368498641543856942192284748156944383876599474459642942938564667514759423696323796851338236245822123993424362589592996138487329975197479443411449849199457676369868944439788589675881171798376194693695436913979746944992537823597654515846733128989555692144794799342923621737423934376429266383826549684113589777284189975584756842459761751879812769819377217961293821297732891822775859798526594341998189671292553555393437644962667529654775913444349178918349617745791993799828285863473585549979222467677129261952993464468949163825267343899134287753716866798911537451678447893872283385815995867345468754589282938581849574176736819574112785219392261433995552873294358388787893945988918553912156737752932567941842993163397987418353513746193369227314919815155434653151875295216817136478993521137231676426355923267894956553898758163168893383265371466885151747532116282563439369575793991627649469462271338314661568937568446714464176895217461847845689942225677597376457161218885899876994635736815781368889814599451838322267883383566723633937568846281756718817619111759299348974528863555536669428187179269978869883737643346575314857876285836679451616237841442388798673862518254439549291799558471519233925765396248939896946113852132267684628625617839858594137856776916397142289166245656213928492817389329259552837436784998958881288975978921599799545439469222941542782573939466786111286668471649376594996646465798995642176927632377195364187864395779358768767257292291848338373487577698996676518621645913941176995278496727243684879885895181893724333966367912239273861819473668745717654156875685735422431555664617484596856238425598779312547981913596259724716668246742718229112938885774638998791589825878843635156433855897294218927278238892865751658599744656584883875962887363977245861479623457521861181769681495277522391284185523739813766577217967246623439199257312412759426175228236253825386991847951477256239999947474623182954396324412438816127961528379944229745251148449773966668799254588649961527811276779169218416926615822443563668178568955958238157798678283916343562827426257783957732916459896456168737988885418166871576791679356745694445942657318368862788541472197127955666877451589191747954142897725662712441584384619518429814591213999636363475387528259743347925186322823674954387184383154939683669271242796788732189512864769284563254727849837342448498785249753157438239618626698364958379139868786115328634151549349493667696646534221276418346547938739662617768278198298611716317834885479349867883939935944676315824596982855298782362328879647927298333822413977999571277847242748794699537325299287495751182144747616523926635756774893596828436394313657783727841179757937652578715558821755858818393762677979292626726647412214297973956219144392658634452652676716938368616125784745269537866199693617792594993258514543666636592498275575594154168647754413713338738381973679729738793386645136853789966619538828986195879327698197717354789961576866198758344386119797122327175468665671471247545424528263924893515917413773334713623348852351626176416622611978675956546526818419767747571184753378297221183863477259262911572272311389796997617859284883846737453899658595828981739914191534986884944339931284431926331594166197377219426318714769125413483785538628822347877418362534693836862297349615965767659355228769133142199988841736685195813854712493262353538492223796159195511788598342253455262769174735733474718658775889758427826437452342283355155356138569549476886238515212517173439769529385728159428523913845328689478144748645629423637757469159167769612671965635984315815388338933598671915868829276144131281953477732497193844174332226481482684466999785978488117983237762197122624661975295649759927648852912623972896398861742211419545285758174397744831539299149737958733661776416165273587659439976638482885761542587772475647989396718194661495813186933443494141271379539839789189567682549895398397352521437986132212966655822855739254666379797533646285447917829288466224297147473969826931982438311385722666371389281973398852196129357585798997884162587257579799679883666666434123483369544742466355846678237674467838655674625745427513879721784638253986395998778661946974547115564143717759121313392393131999376495866992493254591693821588762889688473432212778297575768499234689517486981331917378991977534749863766391872971951245666258633841958579679585846348816787295576524826919218826393988897997917347796445915672899357249963312363989951612316823652519957937341474378577815984236775616762447941134749536149454714572248942764475346588596525224545375567192497491334583344594244295528754648655994648779815969169123318772334192793322361858855321697625736157981767674887671754815418556713166966764479825896667345393371227163177646969567565144497429571177198421131779447573997557671426385274128111265136822865686427523756941937299989649126366319795867329562338992199835476177179516644663518311973288836999948993454588179176287889112196124929748347845869469736456771415446882176998171696468592736178918215994638277864189531233676675385345799192317979779457758445563793976995541894113519459442835988512727621787996863778774968314672386975335824799378336956885898452676337123576323526339618715459754981512754762297889537385422142711314832359651481692824435219414535441991989525514792315667681382137564638198442468419325596535592227834872712549685651226938973752883527111621263348493573171889879676872948299779962256654655989283828154496147963839687557719128695942791438193172891279194188741215543358873262231763175865293235611971639483195172488992653643176521517327195357677533355489972679374162771719478289929287986549533472435459997731987382965258465659929478578944778263849785993249137138743878267651544724264526263426351561529777494382681743191398624898189922351796215571658731611147263552715875617681728294526652944148229356123274243558886557395595655968935637456873993557688919387978447452967278463585627554359462438888362267927832598958273248231953147625435483695878389338956583117678821811379836443224855766946255444891146691765236366713392518219921498856397954836867816797299851132521618445299591564612742375837895314643876326451561125445863351197626678289989478524234662733368565667123652478479485649839683847763685196161865347899591448834234311315169147494517486778252946498943266639326579317685348419546883793858991482337174234129956666527996386392363973367737484891682173815533516586319968976162853294468839813184822219368612616578887888711741499883378129154392699417681397333621815772964764387883856651295824411835496618339896854176588894951582526565944975172585779798649182742961672949552485255828643278533116898394774165238397699241949912113857822778993116382638382814326722923912462736185888318785677377156885417168292128589344381689277137922996314779362188139924534887783775656876618732831569346541263445216317612522788783176555255177769447424559547167288695486989917726555364632575542292963382984423233239665636738784872253823391399332183821477833341622494484699693255328219919494948689957965113491539767838994754588986968583754358269776993823435919132378224451919752188578591467878942178838766354521322783388823263465631462717395583917849849242835574365573753912464837892462573383122451113774959954897414395151132453169414852354977467175955142298519888772877284231928943965673936227838478394618697441628849231524434986419465395377268986934149976522757189885513935314375342917478334774729782826897583582618721993525498764897524182465831572383487265548155357559789589167552972892268757715396485593151418586696261716129777477987794137489627337593264599776626836219622667947764195951428316766493828976448361958113776553424713377441557636469681316485916512275542173371699586829581768724723351948937777897678437393683325186982674877411996586438625891969554313311734223515786749638715778686882762214897273998176454214963661947883654113357662894134177928472672958389899363766866588879392381275788661914291316369681915731513276152745819887257278256281939722362767811233126774795987951379634796892158657358567994471396513132663566919454519227556791563977768784688263357134561318545956258341563142912814977815819254851572616233789785143713612279279882677458246664331425353711721957299318851832963987377929454181916652716297242266553592521933475983573987661831826519993883247574782919886526992377563734176881251998893584514247578794979578784428121757827844524771516782298298913816975685912855952974933494277157794758314724822221933691219948637594949344768498149276571139174887422114618755533264856772851568327785959489163653231726721156843168396556769418495627738898646284926527773925224513775617433972854378476734123539254996781985148555147644329257217964558226958351878927499534344218658284873571519874926757726314531722724175258672759352855495161639993842846462848479146988521672718618471732984367554467757418639343792519989421737187554979497651669494241662296754176996475595373416189349871559771158135317199347554261213533563668472479257344581784759722292859172589718565149352667472284927791946777774422861491881219735413825436851499928975619928945344123358321899818251715141449183713662713757698498986166953917476755873428476516662899911983486518272759812796669855871431567741534241685241747748817923127495924355279952984396351775454861456581553518468212385694856415611325383666182599916958487883996466677892768981775583138689943576982947549929235266921595154913548892335261949739753299291839656364329115147349782531699758887783354143538944843793767192358618965791541681787611981317614634774126449443669854418559844484563948958168267772784841556784648636871242199424964389426824581621557318212331846911158576599751857441583233173725343913855356469185597377372879955378367646925777349444394391345371897955447615281893132851117747351423574966977655792943928975252931298247789856854518913343782654646793714766856668753922857681993223352132271988733873598788887128539987725984762413296566651745858334826165414355959991259321371457539166335498372575973134776525998395239171647273159915744973581432449816481586757323456812927846936163183614358486845779815533131438773126558242672467419476665664628118873365132138817921928644714329361898185967979837888733461938716568769329816319178282337552118987495518762579798848516317628364267553288526352674297525833396373374528185913757964536455245638592374335233765297156483498554951284137694261733399323236771469436983676721523795633598988328795388975643415539816838543755725451242679614349483897988588628323779656195487535154733686912319617579891635411195997918865478637913284715826132584727427256395747568893556845719521763724536365997126181811137998749638566874511245686179127991527654474577387263543741541929382749448275495246129922872429845121522274161751639331233245395473524939686415386214957754828881827984898719995539594199884479692384351218745967999167738994977474482496216531338854352223648542536892561147586793877993169441534221916584796261882521281726162648891236577574128458725643983325866564317161996686231365368535976863875382148134148772493654568615831728614141156413348118751539132227268337576259312197298914738418884954923355694279813859249466322275159652732982479968872361676831696891571739196849179669969365854312164732852252873581375711314548462595583593693235428217876774398586458626468582766665158765975845324928588949692132241313659599751687241398996716216689648863852212927811558612229674447818839891427332521873537429618928617341332954398895177398434162237829938846285999153559267713962196543194119182237786221853823336247292828776463261522393323649285925924369775827441643939381362492798674576216274854823467966547745516561521351416521931452944252557143888646144165399227455182964942166727333388337539254724692385897558112282267328277494163455728865266158914279551972599613715231435768239914751355844543661937495246325775433649813684267156618924958529244973945761351347328433614213253658673348532816167415581333457128614851236888844351248111245396493596756649584721268336349385519723692895597982786366397379338882844963445912686797352922417935184782613893297657481264795919769785291531488627713444889883935571975922766684856433262417191964624793845932528238911221614365286256798993654166318354892766386548617632546881446968465719181878892844356976151784816991918247345881796864241575232485929519151356255292998437847189881964154928981837239236932542498254727277923552444242896591643944628268219671474826866646723931836455788856998694886246532626572235438859555348317475144766295499443315927113134944413336572924876542896797416298531328224326334655394622186252676679461193541259643244837779917951434994314818897748124211691246161977769998764176637971265847464769639646514836934737215385842868886253389437747756935746832563863374828381428319822242725543345595497579769258115526534177565731363284562388339738171419569585527133336732339445436237438393927854143252474582955395687111142815575492997629879437717377881198991344497687932716963993387927686378569858574493822199536525783446484653592987238387227989821633525639815254711797827182729465697977913998671764696894627257378274941752268125531191997155828875587534257923567212878284242937778484229629693928747497695852176462438769435393761886248591756128781351915465675719489948899127365475962937771737499287777639841929311796588941151838812219518257942374546967228571933316938717196996735369949738142522363794398392632293714158541485861361923258561717728531759184482966197771764487788855667979673588874692121593369152271156876633159798528466896553361678958419935957245298277316755145328727292386479133674578332928316562629187155853943769346514426883314459833179629735585963928782419967354511529419389364737138468661818841887886162976934657275779291941698242286662666125573631495267685463244745714992893698411421537382439771148662555798868679575936927885972135984657788473912115789236816372478513949797277865646451615532756322991738123366572899538281883924642341328166918556483242995958851716212612211467279151557845299179185588942962992567153918714275746899668647623683757642548136574292112753532396837747478468883168349818355242518661392771763234478849392991692219984368674956889849159912886949434999785923663865563327168146583116753226753275588277881723893145124483817577742757695468297158474425767637832863395498949845711667697179436984155379645937519573246668888379525937254156447657665641356576317715155266648695163997617655761865332627434291554623762228692598783874585911712817948411775985325928797569324662699961359586496852564683256725589949489168355815998358764784986544747955253575912139797195221218439812166474764223921149467837612546498286781897373833911777987737439144517542642592912842863571479128891362965964593862315622928457229557582429349273499887468876174569189959582113357967422536778441889835292172687319815694569252296462666352331516583932491911193956312292376336385196327886487187445662932411611293721879394287549296911381751177156925972855678131112777669894578156156423925225358574218849633522577152564186233876129118427219839545373819221299932422958947411247188177265648855626821185334825837241751588926127995674397885328328367723498495225674238851387698818328728688298194444168416359474749479556773597539441919443298856273481747722696867384273346147378752783773957496188257731164431297518535478188239999412531373473729798761251114227618565853746919823875915372547563574872416541535429832775438358589299142275396792461762829358154235526771449994119892534684932775898435366656947789729973974756449581546929722153493521267316256332475996589545784533834883854388522342219233694764134688493844415214998491675936919321443395239815941861859393553263885366756435651516698972554643932641264956265183159573224817174343245955236679295355889432739697333956857584523593299517418999884953284681997931698586338378386682438689984782792621293797287793736245837147647719249881322741784999324716564187888746391349352316873537456129729611285912553661285237252788336162386845493796993826642557186581651346334294683628521565547138617815753846647548784895883439344774644369948826851961689467967757683945432447531119598182426934593218472568534675328585198365996597818455659895967422348824163368529726755685459898357186618551679267328541584534924334959332727147527863567667832523775319127332878423995457858719395775513285263774261717391345844557516938981377443958517987671966624988883684839336996566797378634815691442849867534871998188683138668213721552497574617482355634558997752385542461456796519938831891134977745352965544919969819243621341399981764262325285441192593774159971525815725124985618235675365359499894469869848937448249338358443232815129533281247461461258431196437364758322542799625357618546563757972121993557474451136354448242158424637935495756362545775848264576569365888333945219353795553634389313495447117114313348719865731971972764159836119356892914971557711371269482854879155458449835542569377325378969651131857154694884277534369831858976491236291445677591471893422355145967123454686342569666246437918158487175671986662398575198395341818579743782923146933334714389489344231726418667879978384815364214658871223574396564582588679649448547837768195591411832453561648132453671375521369423611354698977975832633748176716538619355219127271728834531566625983384256867914764518737737453938358562352969738978555683989764258411838936568586836724952983419794238392446838588376671697931926136219884378462877598162667176211322283947868557219465999284837288326235438794355548158436649757381776468391869984319773148766615512487966892681737558492784758858857315872942686556388711357648414833332434688917595342343574266491967512755473419486112487476328595989851258994459326585824817778419314174268997748434734765833662321756979876795278448966713911717837157926925657314938647696731578292165175715171521884947457357337412155581225825474369362568713229781834455995324849111586429494331493578872129622319929562394343896512776158129857811576569283689781248926457665662298363234449598658688561542468875865927594956372247713982957928897745682154769659712137468179387122832967973536573452695123633557425899843928481541787394389652136983364562951389162485342866346384729924874416343664657981916249243877667628787396686821229915584967276569939581845533939463745124516285959747423445767648995138868619675355392636196835314236813265644488613872469714662375449153824275627998825857926913388159742757926459456154722788818865137911569253415226715615918157942154971734699582121384663782342984548753328761458513883469996586334268936197765416896821568475921953178229459825868847914661739785813371252668185729747989946766944812887855473964731677197319932771992545738455668444364927733327144938837169692139587371742449715584851529281558113822714127524534172325622531342686592561976155589543542295122287853395257983819475668977456413548379153266685558511519145531218527428453695222194933547156677479774183759914934785727145952653723561741788842793862717759745726984473257684849165345598965157351733186173387164617895532996158954217449699213836773818659265379986948262345219848911283643328983224137643396354975827997384915426139237299982973815771781942477388498535881728682727251691186441148524269864163648657884681283762495549379937823965438187462434251183547222512231682383738516332737737549114292178571569226543693886118225581741425712982119611218156316527377178992854115966449761947838882279712799198968188392988598743882494217199158744873784724723373138155535362995117411745384213526733762661166841135744277717642581963288714167319796847225818566188838812445487451643939398493198931713331577738281794566694676822683961978385368995765814417558894137859739947828284658119483786724919898879917511236828547347997745132382589216468198331254351273962977588132897817165963764552973995631553358147331992372282794713428496423248637591854599126849368126787892437423331518125956947925131135788776868674942175285128447697776669253952893399789934875749241838447968662168886814422591438896571433869166561188933871645128866872434478775597976542173132257255932285615898982418655144258183324564463676749678427669631721944121619862827712453531781162847391918657315878157617565764958734171562771692265639943352716934899783544384695918658441263755211196696869569652562359461175972296817724566569924183768827825372923984569933499586686929665895843799122454575439325216749316329796928982399488991663697679855767314746787993346989478751914876629399454798878762121763942373251971686333399276748665152379989336168611111326828347133892443948741125692148419752163369315386975465145819441154852943911326757468445988929298624661547448751697451124792791787242218651875935482813913362692423728836239441184372618985927557268467348856928283652797536224356495762677729144427171154381512587295945884971347315588993191352677665971236738788836488886927383246818597159788638314938372757867165759135261867386482867277399972747669456791965651547834831662299353216485833382676428534226532537435191112427364828877192819211889858355399352974283867371668778976176126694632919575685346514391538638816578686257895128627661678689678869627767264533656118993413151567274219994829915758567348973191782346987916679434837291625526531266483938379192681739128216296277134722429418862335687381821844396989554642185973452569488428992464427153239866984813995661479183396868566939157229726838864398885735273186392734114193546399994567911487459589168214881469547519491161663917272765696127574552568528447638655983145513568469924728236994446754858937726154554899282593594537826379159457319984937393567868689761856775246275956685542454318767725274487633456373384445559121892637154587433889691682997122619435928282571971519569134689457376441413183793195869777661746229158298959691368418978981416478899636467163786289116789723195614652211276852435346659488479927621675378265678389692689981373342976366867477792473212274837316835778839499542571688597992913746379483698556914478389611465635598743481788247585173611311381637316197656892999863998138899627249636634415167434628645889495836334919297455723297574328231757877912853741794791182666522169556597591358536848322492857842412261742377598467212941555671934188456968568337161191692778658216933556198624453743686259637344789935619732598369394419377466437285387661291551882897228549793514333558385827421914967743396492649349863698157368143191134793813151168457716428775384599111119737673231695745577972762537693397946439558968867712514163368994955291566858866557486637943952632182116898776624732365179264368996316968765915335299397957479476969655827997549714878527991777885974859348392373997421799769548719477823834353914594976328734717277965299234391811915127516771594991337963775772667536412498586524953681692296568736498421399691657648118437356229442122794952571855221779132369286839929812184556878839385347362549112312953131182765216268854513585746466263454395489242817991996335912766999346789711982415236575327744331183397194955739939393665857674599654255547555242867325656238892941874188257787348688749724158616215965129181148455879536861751457787651785925499172525731983233219145559665655358232897561149647333448353529343493922361848329651135675514398462589785835595839861287255165887566285674815922341299281146911169672494159167337881318138771858695511875367711976216355997688889153853327969845478764212182549989317916622467282881981519715927338894368111565358732465392249456924466458393412999973992895478564825674572657196487734593229483413551661551944187697752934945617928383274539274477793537641146728676418263671528271972384652393425897827649891977116646583627223563842475457947719923692736861386744191111681895567225466997582654983811558541189689975418661166824616189287467968587525982274737991195884638191538499184192593391148417759611966535514285693281266627998111364624846785624536393647267847997679913481979923659173753433231922421352354386422698184856336645863996577193798458487154365231587196886755671554191576588314266543783111727479819685456434687866899592641736244739315919165396869173351157779472393169499758373894641933816516626225755186482168879183262852123137415817651258973388274141467679589931615962385325651159275958362875961734187415185883634825688418376328165588682313481266566638464715771863264764535665873224155928349671714944369781556818147583538562249318664191768899875666895139498282744338218921556733984542797695861842463614373859149465223938199727452724784335612274211741375781837291918855979974643967368899528151537726511552748854267844396763471334582952699846344473488646665996331967448783271693666579649635959719599984227953537863951129356133838142177337944886596166777324116452841427853946188383218276985654424874643675184444957968429871226725741335255827853375185387411682444446848835974778647921591792379696435571512686212637752238844598771397661845571518785784942511494856195722951784477635427893148542957985462812547897246445961715362695351214174111727756825549513284942885728652366687459943727571586714432156749677927778768115764742787974869425729825699842567457153139563731839459758127862759689273583994236993759212269771786239793468589752499353932585786126112542922169941497197994162153341428797572834775327778351986137565354457225391925417389355466638718779829298419565382966584543681661185562169243465527485657838134312185786483517488437858915839936249635968678957372595874537432663428887627642483174755928145972658576978363386148874121759718148375697258327582387142398558477815488131929589827397298861931153397716113477313527895799557626917951563435937368177149922779458783862595841182372115957881176563835196134135586536181664511199736883119976257963918426178734668734468985771644976429668976492535482696446285743491551339915427139423762728986525448457474483639927224454647977971616631431247998739741335469617748896751394187873594839187318238291997834635655885599874754744573327952487199591714394816536139516746124936765125785933976994369687439643755489336971569273487778236619395285555591227826392172669381457742897596861642882526497138622876663535825832597717381217688812487386234874271412927733958745199322433369299187882966516168818287895458359918955978561799582789427813577655898463922146492687521369877188347716925564836615667943819832482686756989473129191172448152163573257275433235233728276563133871512576867347224189365939334193113929795637471313974497692533485631727968885885513994271845976888551479164728845419999275744678525911894151738626692399512669865169143797877325594618519787131521828221199539555878198599397691874945636726282217386569896373587634114466432762551539866876197459554133221651684131269734292554721967594965367611449769397788648497375816355758331673441482922849999836268975934637353978733771874564778888241456154739312513722658162831912269617585166152227655177856159123942836133682226193118294321565331889198475213233148175698649551935168739463656812135413618588231581665848145658983695457643968831994111227534587327314277674478294175898399364958647748114825732743216193819991118256175489563913341337436936925214693374127376835192531941695152828418431363719854173873135924246936179656351632211614584316773285993195661826572439498667811889942177568249633434899193454881955234113417662568823928871238656713894461452572946649925529927679754158913991235337434217366149483218288993694575576556244759796325738527612431496971352561862959238398937699493788134856492972596658758622121916946575917968293453432768176691161912141243938992813161846123268293556672313583115892992973518128288943917515996231475457491543658278827943932485322458136569348469467914329199242656194391774657159563837111632144422636251151539952838991114372592612448875429418538654244164787387361889638367958998733728467414841551364953626742255699379874143971715464574333949157165978137444198582773617668436944544618274937639881675385462887292431678656476279823879467663544672262248897139819783438523679325512763515462999115828122519367414787147395852549871547579161963936138118988172974297127531634979127784631461335953143893658886212526284431157696927466585583987715112547731736997663148694186766312298198388148368172184758792528644718947493527262188421987631611476243511135459248863253469625272827599562455972619991228731999251514339938759994198393722641153954718625491558777846465717582182954326421215957577994362621434379132184795437737425198376574936565967258488276969596392439815545737462317877274128888366791343731168591652813642386482122852569784544463994199563883292545455815361867335745437878826374493373461691358372396678298921384377946519581282349315555154258841363284753644574215842649347811727341598963128753535558757562253479338159874964356893587151757256969929936643351764334183632929141439687778248484946195568652344847716398651456855237973721316277391339893675967717648113658355423862679934428271878642353947731494764558629461666374714148472453221265738316147367168779111333324758668812923911525664391272175339691826989741983564778329298681225431549846434653829155534418833899223429417978915845297176531294194441954328478429212867798812683677645547317612125523472118628894625144667214152867454226861514756346681365587264328917119663738857781392415247694822937244489998588818298684359614979666889443931971689593247454917351739466639684273113744184726597373536286365765965563563218844131279347988745191533262821428396173742551988966731129984419573284846613193278897764952175764393425413857237696725254615138238528447951385695592775697439178161749818753496458599485685117669153283383485473496632545665228345767458778568974799575898458634424856388641411578864478245782868644392513897589291927758438451652991366794388563676479651839236721243845459274119851285713378233783113483757432961168215956798133119874741773274991158946417764767297637959148942884129435986296166629864343934665958932933458821352615733292113167319152123719368779655238583795261977781848227459295916422144379978268271796871339257199943161287379246926661426529945337824256934935359457215644785484867218784617354391612971919855819514891554535787747375146892615232689458137146426173814984355381311347884167258899593353658838753836399511644533865444792893366816284353985922582266391972262562493944854584252441617257318396436433772416768623671178786296491149178578524874417338696615728963769449444319823866252815931569597221138649972723596843633621187772925283396944951319664529627771245562553311275749958937755396336493942143248878836819663437876386192815824819735466236258434775624698635668264267888527472987211592477667365717793368959926313116519496261814865657637266357819989618611993413374799827918731819613298584714824216829427165686183774511118322395543631311836534982635747499456823995869884835611534253267135146185614283133574192587526739471136479664859529241717273296791898356833268744843714739595836724914758546369431372124446548228488219514699785146914386566813539637462756981977749492159482133675893947912632631492613375498994737597987244795352383969661242937665584618778447527859458788866987561561982434647989263786314472664298719628881193437546654984268171444467917681381876645521975799265879422432772185792282967165516745833651796886422486616283175558595558141363215682331691779121568978689221319641965482174437169118879716469466545633287161443119363398261787785181567954523298911723474147276832898998187894616197117769856633613679269864539816815384861193966865447431371828492947469647471235658414145336487132977799729622464685442173497537246829668775741946282221522426376782235626723249646268462941427833778935671643822958162388978788232147538589128263976444399539239617441994695731313345946231692385617417813963358684658788724864665268787795884783653846568346521883347956941659823276981474329297416167656821952724919998491357514732174633219186654693568388776683662439238796954564783995135295266436111568493883144893764316655439819486875515824117987586253231442233895977129351419719441581319543725831576838483823568798329967425827868741185886733875265258966423447229599168877219699918559371274141199599737426117897595912233254622833884168723192983719161961154389968137315431327875132278283112993582832851344898191716849598648787749749275719918947198635457456391894688167793471779373846778485577542828252671752812541525192769848976641738779255531752333969719285315816915488895957652226897678136939895455946515595959966146524488139419547773979671318777712649936482317499753596751939744347119195457178177322672985697299628969445339488228269965814767889222693794766255598127445693226868671272923118729296564464387566987789652552236934784527643446837489241575126798587874177767736495171824231583892876934646936663127987832746195149861196555744634883353852818334224576749696798218351894124182349919924165783145276959756744211155997426764753358561558616989217498217457149688433282114116796438149889877476174878348394632228443318888712823599343664741623438979712791341946495312651748574725493564694785767213698385456672928414571991991393238752367694888465972428117629698449555134361427445686838744816822775848617589833979448373444239981176616527897416876945537151873821764654447678723794984828987379294912693878219787457628648691778591164135954763374722593554158732431274794456119585967938757158665787951934714119914396273486472545234969623352487669818253122622784332346193225856297582829384412884592335128823211894616751897614489196858168692771557129743236278362469242258424863531914843299197428291543183749683734868294761115816634749381289787391854894375252632913654527997922959414133724447488969521422125936189344357767187375824576425311265957587278127432934845158653135116537682251615779127417589489635676877939884238979757444634371671248929224894888785896767354393344219362182949641335881384957897215465859478599746696533666588989825959851526219517345942859655993619522244867281778452272873163824873868981878982774797618519584293449921741387818928549254975782976615479447619946569892578795664939539754544836893825584684546628267654311569368678142693355488558874744278648157792882691239755148446417472113376814567263779886721289263621555946497396719667253757726931575617286474337294584623665651617278874698215624616675396325765384459187879866348869737873719796656496582735818899583673977228948668996749299929166298652781687793827836171174779584782874828442138787534782667798553599362528973685381775867449926517952899752374289166393369792351516449422163943759865226989363137286243935549471598993749153761232615458456367945595317655393539725263882775911823527267874343572426645335124371989997454467369645751736265162675496958624997573313431222362219989583831498815378181433916498338298855322124737799582458291918548249882718598955553914623796319971161367483352857197197271561158433765485831887894175434281382769788933414799433965959816211114975972534187176574385158142755548928857853331683943185175721138287674191732788945742375493558864298278448617719285799695363129655348839275285238595587254849553869253153779372642896933938793636518948714278365999837258795867174366177842953564852817558173755511831372768645942867877555716964582714353734471489665692654414695111194717276935958748591529212177229417818833149856777974735455587583357276895395559597128479796286292855578896422147259427619222429511739852924915299722767348427983193859673861971589229454125419527829262481532749199624437319618153542522727946521816272344937551186553685765688662651797559562238221873931526365654658382646971861436849422375364651998177757643997648852923589129851713967148581829276744396438469775839457846946684892771129679753955749212179844326642189691175221619452375828831193686964943737291792451492262189993258394972955212545891375726867352624852865752393475555369855239369618521994675731851983213867241922821624474941795547475885711379596741997594337622524256122998966539623281981755742426179941995785661916638145591683131758636861991962881297639146423858149913311324957974733127738417898536583719168192135246883716977897441937881426577481324477224282956937348531788796487168179444648177635513883171356854463548615913724884335771965417289294388379345863539818664894912298855178665663633612632756181116198388827641575642468577464636261355579192561621684498335891416771855845613745287417736227697734647225744658756666449992155369839669718672273947577759621977176242181389833858698537383599689424893793388725984292293874778675262797471165172689933439539313868748759294488234843472186637242747886689939687264682474754595871549466464674943756163881423631959422285421834592188919327989387419952978881169716959716852725252978463696638294736833885421987342679814119124919683754528983793429129925833419995552153479124815977683513949824112889846439221795218374382944393646678336885977517325711255986773817668574926779847587431734755965489446262147189778477683959199129412558946864723446144353665571437769887517316178592256157824795757957541872885612267191323877298511437981763579613153185688493884625297455578935297243551986865947989718571488498723412552499836996829916456622966587143258958161843742469511659887471727544793166825529831539972661642957517422384488669777137227547313481812671869851576933897789612715948768782968733895737952676558118584967268822129812689724458162595763354593567445172418538187568368577817718671749248994286563923794415455816987729836537941565658985259783223473719981417379191829592197534979551214985354451935573215865817869146431153233217284516717796621872113893135283852277423658737625487414344769397413719117976678767446771159129892793247983484979163147864947435736512458931497466713371498212367934412886972329155278434979121347293511617834643369979523191858342776376472979792752342392988413398721954877987295174925515753624661863688673579297695977344655199237862661227976574845561994189447989332198657868713728461638823565588632681243412168861778266626926931597373172148753122887162979859256654269846591234995384618674275747691714986772413679758823557821514653541639149982952799373413869926554784636312815917722844391176347191841479429278459732413842545637449877437566661666597659786526718244559822224147439413643977594233911772218129631346751492648498523515641968247559871746659584665223449745837961687354745722883679996894372467931739854786999258357977599374278621865117314971678593537146118989573471582197219418259583811325641799184563493832299518848518643921943382153857551689758764999932897835895887976116142391178797346111897352221757929578425473283376943289968269739272212192551594114789161953646979564264273249999546767367515632713942388349415177738739894719758816484868138711254576763987867519367865133115777233937359144577119877949442918939783642893625919739242498584829455772449248515756484142649948866225958835222479642388945688784471787617714623716453941371337958669238685665151448718491323255534746733875365636296619468456162534328244314666991682767872593262967147881297336829156124619639862942245618217268925148465696193886194783466847468762448716585139554154625537872556354179936462275114289313783474662789562289394822328795676487785964678573419249641285869269228889898199358939132627552197293717833669789173255943968376371175197269745549749429678436338654765945763587314747345162612993868468362113737498513343785826253325796693944554714464367588971729587272437468191239811497336418759859285476179173828859266416814696681613521468268656648946575144881637237448284773129845736863834155464526786295188298366231713276412552261234322939671986713455328571692876279339613843613329421196317748279491184189697569264414914945862347882792751956792841577613412393662355966124822313371189366189962338762273635599513474279119423394976237465693945728427527126542337372664611133241238279859837852632587513755868897591843188145135553175475541121723275935591554742541528671314791227577827847345276735492963127149191697717518747447934589882964849562162511871649119438338894677186246899849498914378736128414214435117353794933799384279844887351756346165374338528196593258564493937669353885857526549799252162411834993642689812339716377842468297265551238789545657484383225899979829822956578853757554281279485231177583952413344711232151873345585388223927595136729913157785464185441528669838169555379638778161443336847155256827684622561689327385528761582296611369343114923146253761922255877398882894515451871874828251446777453849475496987499519731127881972469939947153249615696183147698591498919979917181625227472927732154447845256598599688694546349935522934643273863663832886118228289729258884127417676775334419894254325766475753924421657334521668998163179988356757125885174618869572162388967972945541827319445788599659214821641957655481142186623211611796336254795341215697995948187164476426293314657837976487591455886518278817893812216264442669847468685386875174799545291117748683711596772828743165556671695325784195342192276486529545859562123786946615163175632913388991546639882616362794978159768214225697419194354886558221267376119282997153828282629277914931935681369196798767356222758824469887584455772678618459219893535778391836596672524364393934897677959627425813676494387774949145754443819642654452487911818965292299615199478746454477864772869113957664935668394316729388754765891447662279596596331739982317297883559418861175447673916153688527833526585454576646626151499782392373292149116383542439218464789443888644788538371186846748395595969138322725527196927569578971896788977846762244596968431627187469414715239168937198729459788396335982579621699799451469412311683563386969229444618128723745798175868322649752849739452781332226122389753454672624251694971647159916298691987623519982562638665529135963334881946484326651949237969426578498697448656125351627797718559765726895543918867612395894814635789773332127463128467879993521582269333828217879292753492291555577792425645195534473773192431239811144974591899373245865459583715158213851742115354483892153453683828749997197858485445475448162244722886165556687479212142194175259551148278389361781426973922692857559744277265713946267246253222999261551194865239455744367566644937452836871421139615655835642362568794235268732987122218731464383735316992883892791723449175137478424518749848195987966177627618235232981168596344687198612614114828183842548269285496967224641994685589769712997814264942127675924886828893997985365692686893227925443834982646889726251632239548316273614859762431596266211578251567392481419127644282237389654455349683424831891811356447558256313477474265222781361937845417281113813987173389778191984969635466557441155638553398697283659432188411644634867861443945644979941831414553859737686313828324375387724123634991797545862689141694986924693441962874535898832574317863776495825652769364882683895946334651532299739485412599884399822613133395953993988757167722594533899998969985811425358787593639795263551463289758823676973418129931133827117336456379336476347343898627598143462261381234327467388481784383717922338326174298281962971339883231534612845488865477137467787145597361436568775631773939645335975863577573812952713238386185278411464347678879161278617231332921343788896181118714412174671247674769865194678821773997652467797239618492639356187738583828582173681945857668738993514788583884297329179673189926225529278987888864375354759271575726273383436923886859262474257453492863772187377574159489424324973973469996518993744169445422458527118745531678658941367936683855162159327951754778944684751998393562954451385599398958781778273911813534933862192354178111641664151449414341274564491883557198317899887198651942142242189337289394998897198576954974489871473856726973685837914236934518289467777994394526329532358679353318414583657412358494143192761981326992973279929631648866455475998512215724478117898642988589935842425679274941771773862798783579325789783612797398485798259821362533211593648446977536184517875675723271894774648679646987821756824887983683155326163914929951537475389665554935277166288469184249435443647174972163782711577538117154474212232244469676157679638682293634845648445124963531899696759664313784629137941223783915677776852193893859211846945773638579786135935793781826726696593341928864436965956589769835612786599738521815731671537948447719411586962874137851157346925289445616643852365978198464684677635786134733951631991787935414916665886654387268434965891197676119527699872963922749921798492485455924646122279192117842387313959432753891294253143866685352467468283516956457583889536942198679788139169643811669529146829595787399814926589215467125366587639967244463777793848514838957677681899246587156791764836519986562387491931418387739384998472355559597528894244539274263778978565229316167181541347396762316511231838415684825825736297797475714888896858248926825611622655956131632557187864757271449234371211565399417526576869751289272683694413483213176884158255111262674333374467829236513149392913473333587728859938121884333326297249993515888728726878839274378342821419811726547749626246542494685318942571769416268978436785487813772964475162249997195865116234363983569999982193593368622448758254337945932367612487677518894836998796427737917538567776991464343335372895382978985941486992151892269843699197166583226918511792163337927896752117955699493984929569755916111538353735671997288884145217353122121374747421585717243216729687577889996148548493289477856597446288857379862194274578175456623351329924937293116835898172277987294946589351977544537144739384721196625837348769612622787718816355629299614445458499277164596366666442943673955454752821541143789194336798915546646954581767293631474179722173431461955155144548562275776935431697237885726463798834513975969213466248529465382879321125589877215152594828523931653477174164887683353947344566554281383378311621317856381261561451421999688426116199983783376887296783321863779866991231333337981511544376181377449316849117864767317139948234799188711474472457721384185935198423867433557726864382557881717656744945718958874927399144687441793491721428941874819732982942656954314868796232782753114182964485576462419157876664192244944826759427661897487872874619531167817199411267483789226323786114761299171597379664188398476937952778763493993292448499816222434367469923789648612721579427439169471344211279285978851138979669659332365126981565512391853786579977429745223797155114136711366248758927811817385447457535159769952169151999118678715923599521417257957535678638193379919331844993488378128512163695714297895223168419163683481263595223889489441152682462636983593852752866219128326985696875938364548622851692685631649754493446177638867986236244648543233346254936163293766956627754954385559927377247338578643931287518784326296849292825146182182658629895853768985941276627161615674581875495731523238585233226383922591115215287846542198224652453489528229569549551727212664849993398634284584596699944483597978843771956488699818297529449819372487829318946175888194369685863292235118381669299658416439716589869224199761385283668277268879478976129276218536836575287543426531778723866945275472152444995515669972296398664972514217614711882691889951422457876651671558691818748845248751474599267868147142932288844669123678877218651623334163787777369465295443846568188928813166916226932113548832843334237392211444193431388419686584999627484128432369797522585184254435528281436333986682293829375875811471334618332141863676598926785754857777545555836933497726828439326979342459586466881742329382266869487469418536358164348412494993942317148524619283147761732756478985663685396247458684219593743951419994525177939294484556191537339888739723487882438325417341715576954648591522724772475762842869677998962349168278762591988397996663183174299681659454185392447626856267884113487891964333992378277382777691212253139816646128774488286385917343823998951335711544834569546426176551622518255637495999366467873755864437647785597454457494668437422366323656997672397262145753885814437867615461598512971623665933216547462214942241891364841586452331846814435476586364748222875457477847916983471826222534163132796137338224619665916129566375816791797165561177145447297993354956619393785366543385367952841719274877693165592868977775972946623591359311819291995765359357836661247914994717754877938719865414814732578578887694419876993589558968633679154385369838529393593296748547714737925496496294695855315978885779168392935239554487393327773972914141569196337989549165841338416888867594648845691265319366157562663274236513587897849451622231934686523928536153171887966854374757679277665517391167479638684483417574747866822668754545994881476381358422618399723199332476682455162765174678351522547916511645643628793712186362811573359331111711571744249985251169496515215376868392978419756563299991746525744145457784644253428436433553536516973318199461888159128997857941528899473733647353987486276311336541168284643662976398126288599542511422185913643287188373558861623676865469763167667664282455585347712267486452469321886188869446573252937995264769439193864477151378736766236826483217592894696179762779877428833325789575847359949422786627138589562883343467818947913928585248146666323577862791878313771847781872166329543751328919751536256118759559826977127739494467975338318942114616755799541191954319165897375368876165543312498962667575517889512179864274665245569219121934448669668574362171621374371692831643771629145211916936716617325311372866356999759819865992489728994146392151973823769155256342176112855861356985575452699894164497632554846685957488398479112639459493658576546887225778443317496767176617533761362634948555792588568134281749549386661223119585647579459592862924445373881893123623425943376654221853788747334847718553123124537231657788756854581491753726665195129199149149236145656325691495914289629179677486289839974426165457377438666718135846162559246916242458768427895746415693739533693387411511276717478184871848429289938851668368657465596882761775919557434934131813958165649553444531892878139991921633252889526683946596766814264191216532238949546235664855129729875264661947976592895774864147333755421234463688647616627534148238182623478176192316498645923666879215693147119489581982449852765145327429147898348685881972681833138167417531598644941956625851931615248417434964566871964775686615917259417575563195431666333262766654817472677541751886873112689399726933129331298332194277819438918397152481288477386241418718982339927934222974146386775881319669596457699471122888967171686761824936648976633971175476922563726475553646914382319834147256194154968676487113727356473496635961154145623967326446397913935824263976659766916912894569567847199633556724296842913996894684469241917442599191869718668359412897773857747195879989131774498337871462858483352236323151853196742891791488867536356621418996991347681299428178439619931297887931687768984752814394189267833446533513269878935936995522258176788811441284274317111874566452516197844565158113868375873587485451262655423393628715224575779536449574563349972885759115879418947451741871312995322972711632718747317484819776199728181698712586227222918389766747798941486466163274777778551339553886299913916768449991718566454978638538847631896725832261863257252524596641666216214174886595487979699266387915529762457544763138978558384873118718793623941866674465442894262536165395927161932595595387388748717371889427448389121149821961213975969542351289556861266798491288658457889496626519155785272293943342117222738165742945728667776986958398299593223952984259338548366786788798486737868299968721287946997867116379261829454666379497312799986168238322786376175632316238869928423589189671749284443228847654261711564165368748787619557226322694223473817167584413686453882244921396951143927383727348966518755484754573266453518467824461458832618839129847478832841171187956863988451678374486798979631826398862187447372476114463499274367615445847797842349487244389399834776824129349713182276357196933454191983969254882716349759385387265368893418332387939755788861448241528471471338411399697152299434823648887792143498234549598122922432298494546669316429567316845185155845646763516764414876241694184768147343397578552384653771869194433823127156993488133415467437665699154853769676896399731669644279979634664637298554258768912377857599237192312925891926336819749961577758188967642579556141975689638993651594289888721942744757312199943354581169661767894975697629173679211968234612734186121888845592486198495725773429792151235677225261814153357483898153294296653336189588475854798521816343555386845529347114534773721533343383783867114887387283382778451165531151534492355434881499959184681855234441618921479194927496365392921742125678559731181742877243413992742711563987617774463711796482169965523533958918336651813895599288651724324759874454789491579386862581344732883382918291548574113491798166228839343534779791435429245573457526822797128554885849793879153265158315184549799976573838429775926836425569252764169964476449759262379131833789137283733862279199631549137666693459816428139497674812857398923629641861694321573475675336935623716541639132175569617593593878334972366119376815868932437918919827414156412592349356364287682627891433243149937944669481887665667827619762542697314672888933179433299348992798851777378778143768546876939957567888154943947632977264465262565957966349363545735345866932697512593487624994411782552154287817873349293688244983521389271628318288461753414994358186464754186544577655444937712693514641972234818693391471274291591259524749941952695493218934333614666478384244397812786245385473567734352969893226164658776327499923778989557289253848974127899322134957776471282492988415811267294181488936265789274241733421189872949888593789688784159688494165213883685389424997354122658463252735677714494482336325393859694613775862774352114883148943517457198815271456963359169657528674777727738684656171568461426879546861131531973929587925588299641193244876136686929142326199881551259379613558744297854363435562973255358191978672826979311785263818289282837884998873138238728418675637476285927261115416563224662226943918754672446421977125832116417212462895719926639896883772538792143637359158938717865593292723962299251315356456528827749349733298397744956771981579776229852146219913296814498399722439524521762317952697889353668693687519361526732745644453379658587926393139698874566544584812735966526749723293449691314345417214879355431115123559984555422761548782333732253731318562242313939276568447236393641316662573418912713141445991529234986717836268974842363981891325536621595548357448683848751125859817182347291569535451926529183327964836215854929163521866633916768148283284288278292238957912977743485157134125911861795335396197784448625481581144138985964887695824951368848858785641313964264494221874226994521948931817145662624794448192586478733677934188736995442666486243798759812822946565977683739797189939483664168246828644877621214563956964784378968595982899981481894921524314595958279849689434111261931481151595683634148445559339973891139915753684555535794535762738653355917244153661781758542728899582374391434672475636665743971497331474133757752577995113749785251246684567623815338818687512234127792955951591424898557288999387587968981766446672145753846732562581853645635399998972663834972141874944849418838347778774731386523372921387612664214177796676514459945548922721371641371577353236528886589672982611636758485568587824766741152379871457372121567448725634348527767394351899854427665794642941371368379871742527612422771739261455212827666969676957599894845744717678664876668354156463757979155757229434458765617129244171344939639725594859284649337577137484653687625472825734217132524471551948745761493672587528775211944887856978742164688738697385427827244715336591844338463765937959835383658984289768939654451326828134533224552914632767784946551648176783871582215483978986583299217557267274311552593254424593116687154729337888556185641629618769517813726934846547743844772391887587115646636939622975786371695786986387663199588742454636295336364756656916984186952572973449744553777741356425226166835177257589221158899915131151657494243757697256928855225256569852434563597613515982258628172517243159363299381741189534321539672672166739853797865778882757597618479854619117689986668425978865429257764948947565916462784522839656663118334761657874396797553259714285474492157371665695587577343784642692769721137971796252512247275849411126812712735816397539292897825811155413478814377354484746451259831558788751352467452884941449583582344598434798419462653319842979942176726324987364597333724759683476782654331542659988496357878761913883429916641161878342585993148695967917942283989594266877323785488737841281398467497539382337131758341571554721923589149349234393881882359938142658548276252912336334568782999781419725635762597358699547788225179121537251361699572326376575689489343481583638472378637115842752396218679721497442788878283875765322186916452439569355248312732774972113681591367276975875879316726371576342314889273561628687889447495346875854499614949814397868419176848523564423291866196771362495482868231357152327612484582617985579215396323173455953193951815745366537528492248776346722631172271893795453869888881158327315868262941616133279666674365744488153462858857816855526399648344945723991643831951595586713681544258448954559934467994644339161849956695338481668553243839212559594951686968966892319978653759898556268154497381286657272468168712816444267459416578412548763723641584699119815126553243889933942885626368859464877482892968498252133226546279726953417929686283173278317119385316857224444659736164754898215963696997138243223254436875633873696127591498428134941965479946493765219416189333544264421775516329997519962762518794925235364354217179931234131187285982625215212256292714724993444659982336645964833914275757376554263165646951841479154427346234779937397535675356922671762445471793897642978688817319732155131774767987327969468316915461563551429873893373528786846937433858755642283428543184532961361226325735953391388167414144592532328875921567718858444597874429391379341318754639817411995312824484816344351514566174936238358999661239715119928299476176996964944855373559795699298725453958736997143755884347123962939226636844982894741752569673288578259732792151385954441116272145355122686738573262893965988976967688972491489498463972719237553456465743655526682319216823872583671676248114763448362695596439263492246972166949345792457362292568911763791949662423936633166633836986312276554323138134936576638587963878972937771549959973881989122761695733231915453655357352779487814456996783765493361813254274441948145676547976688681335113976719717477368232889424577175972782239365592692766662289387554896157582521696716947388875874854662197662928577231364184236451758498674322484291528122766512657988763119764837591683648759854793865393548417499263846351276133978649925165226699129733964749162348767661852796441524879488918179188438892954455499889349777774613799727198211824218973769949993384195791342734741181921313771479415166882124927212757363747659588875677149142393427165742755319959954711269976886228464773117163668384769247353756999147493961824765976734973867485836215399775235543176283114595688742739763554437297954937388864141435433792498785959597478739154766619676659946883533922982452758998987611749255384885553882855135772139853218722243728624942876618173965884825363174976924762296112442749857972922421913347997344833485668795892589198997693229372956971682315281524777243688768922419364596857668648948629585257271136539189594819883697475181445333319725779982593578369428684681553845131619298616482276763517271547655953717286774547572488186132192496796742987311561234794847252592716236451935648976876461815646712947919715442265246692997988819864575172981831248258774679443391575669431418756959834848624126981163373118663435695413156178366988693266115713844679665456659816486259521753595387879158827843253731692754618927949317527669898938745495592692681921981312245937771624583859488396949959498589521831961242251277256792222585458613831358355331717129437867496597763674828856388254636894629949379596851695361187621756537689886499984787365352896648482217624368232852395166413767863433966977949189541517741317816492652334573545362236679958816495134175988259477716186482653398672599222327844194593673264479751841345994934119814953694458918373271323829783171178439698661715444928716894936978353749776143699468357718471145667476885323817984361318787924438948533768789664418984916168642966372268938129424238168898167646262587678431485923675417992746742493775876466115893795938126148815639661473616653752599236719476428712336917849254696784349234888385266589517743374136792176274835695532491793312219657951393526443571549353291876895323145791379474399382984669761527419291867256989194421351294231868173637418678723418239172241985223539941259728497699193112797128473115477896744351431227329889683377916416952221897349941264829654997442679339856497451686746517947613588763149151598682695672954997789159639565658393631429864329271929258564489819512131127227849867783558973966784588952681319334335111384741345589593337633246386976359638413566261239313669274581268792933768979398353594284519575384985437936463997496217323938752256912131156753553988832135558721886975361619464818392266595244583754252121218942143655555139952738551798779458623359917426743846522586292522172643952467844397927638738938878452531548325226197388618289986934737419977814961272247999456473928669797489124311841987188224658689873873782247751513643315455141184742261761498966677187971294897778272383443145482687227871584984183983284962556185973455891323942651163882833473713792461683896481359815534152651848326566465929479159549464416546988869837132455342148819973987629754258987256353235715844583967594941711788848838646182992137245948438122836365848837577226196467593517942314469854317414484422364977325186957686421572716659738737613416685122671123476833958822793762179747398693214918779356642962619883634936612821796157187733536668242995147736832367623646148684751778346389678467451596799498195268699984261358828717344223495481333987611246347489472517612813497873693797886439787725416972471386923448286889493451214569445797168137129871296152297145135942746737845995751226236442273272878798879843939834536963248142847743698177212438449446917868911337997515562355952268875398892845721693461978142496357697389759892336536487268629314858888439425568395172678585924283184389854848436612433957586797822744373127433462712285334292172178324169718858546283467339968755868322328448629554285431595697473842214585112668998369662243823462732659634481687414959769645619132747198129993688196854651645328753514732841481259469858286949871398837693181399925841224484765887878942711187529547733313682848387347838925797765591888173277447298196918848898716389591942217814115757957665175989769359218938979843935542823117543341936226774122684986579391486872323393837989756175753523315669214627456879485346596717272377793898743212646748369498458429875983867131218621711112853621834684733678714777586347798619677844853579981556824821853338338215949832616334397592712433622785986987843968459969963882997958458939124845384197134198149499531975344674296129676777968329478973336949575522398432315262418398841911966251881531731833767182799868768824144837193451819632255143473477282946156826254875961917166457833599524986739798564851186347758736416816729794986477162719644719265564487976357838255526923123514135399833597313417723414966866149312682194238429631415683748898442885348512724875735433218695491985115951966716194255288553129469429251712589536484155657377151963444739682376477766612858171815278573269139974215143723796464279981222629355876745159579254933622683817391985731124618376464891187554223686914588314441666188828113259296663145559133576542899877935998376531778244616498896998834814673296817411667694765716567999786985346926333365842894192177155457525122677123389372529925656643796555855572725226394276989453134148954651916774384693162253661488141577445539522584645819319784689133435169262273189312974218313591711916148834295769875795279677571843283513542154169835134984252897849173818466199895271434411736395464572994631398739217448169918917585177631677621291741378455486583264825889318952682491517419969381165517796526757838818779644884556899513829545781419272897961613919888937655666423946267827919312386534293196927792679446819781661651811282212379597517433613936473172359987535854969644213113984588625227537657711883753167529977915145361218256737837127614129383446566851664136877915256943528143711317969566449442648754928173491414646236842863894321817785482111779871753163868778567657119418245467452597518225484761626649213629274493528976292144975694151584838257448924277567464593679858759491855786446295772719162829648555851825792916943979574843877867137556934229363769998936675639649819174846914674549418523435997312755487648919312864796434686549166443543379521646298449757359191686695276434512589345616796646576149481221895262959836337155262728312814631987675327423912479167137244935868817226391222829116242558418478478873989374873111642949988831149431741352392532452129899469399129479283488925359839385761692571798583884991569674244938821953774585277919197746646493738996749967495857297257735884671799884433478478871597553241122242559573164794798483216722267385999366219336273448663913524413544991671697969896946971612893154997358479496891718617714311465554436864932367861711542984868793415517193718991135857834546934317499762365916975648884698522342516591922342279954954819895384139444196736723485264115984954731478828885999414247482913328696753894492778917149788796465994889814787194395238693959267859558492419972987841688471814137654125518441414147117696896811859473566896376263787479177879375159879858295841966398391815645835272561149818976285151629831517676251929656733594942781334455349746696215769652249915831775364376659468829791799355921326858119871633844158539695568193486991887513938323854139557913458918198915312988746464746565275893561787695627386635263816785122343741519485422233816531731551778542183264971296473252654791911993275623549323839161392831827913174631925792815651696121171624457468839319774647279461595921245146587884923866666243422978442791677293555312549355611838496118748547149762157866413315888937896672895462453742767155928158364836945945737173238946282265791144692511696819632188796915597284197875741983877833422187495921849933598755846518389588991952372262936668644376151916684854264435643859827791187328788765956645538682147547959856611286381738751924489227482968978255219574733716372178837473781896385146572662977967167383924853597972957451564363989161291944662173463542718285189795368531772837531929146879933622366526724839932137753149415789795429345568424969225628765644379544646549485352263147747122234255115423276462864744339167322777734559436148476397921319663695265697792839652571495359647544457114289554213638147389439977759486371625579593328319773967356228836154211398546186129288852883138238522273419183191514673794955238533961193934537765583191338726711675818262545767264854293381498924575245485735832789847459124198688777182661459195819414488572378845642328829799315445561746784979361377248555976439479844495899292889689126931482358124437871983397788818359264717335561556139914222118242289934853422979925638577476782498475453816564286685394457612424916543181389242583113234948831512449569836759732567919576227466521645897743165755839736746315747333455867758956594568643193848336834477524223345384561761385853698961455274937164874676429976597136832176197947147559114398476814591395754448861811486889182614392258897525184396949873672168813146849817382112511151849359888545792449298674462199344555585312189547314798213792124263616888881794658548117629791194669874596255339231896251954826475818164697563719381583457667148798284653292625425552879873851492659889827469975843449397317256296716178619162997338945998428315641143424565927178934658816164977468551138449973869312943512494455655751551883318817891874583289667983274177265946528783147842262372521218675588142828722141822976271374449146783566872747724462766169137872514965497873582962527966478969642289946577675632916948154434246436349159687118436924259116976867899777547345466174842721285692183116358747733486332983288959516547381141875797588311631347945213667611373941739771623272742353354829787958157484551227867459531888415633732758781567956795792775671742275598783979734483596182256778498942737248799725339276568477454285763792593483347963925388657334775817591793454768574568275856418597619625417155829737382845474497524472961475181565598837544927894793376475618117352279921926844874871999933519372545465873833289878699449273681183685736812989638225168193512911991875557138784445218474121627479272873671347184825292377885511189171975877829524259328352567254241762135393185759369456552362442985924136865641714665779486761753272293689733915175754311589415999174785832681712421233836371852469884542797749495374588514329419481853784958185741299269265795229657362684278171118566724869795128392941141949667662265981258723183668718141414667282445357213765417484289147954911542659589489545885228133838429484741271836273845233979787628526479448754234125671445642999473986368874679829974813476654614691521517776275165358216611147231322166564757889621167856927121739933723157864136867841265487989731541385928564112624557277521886794484528954377976182262929864488825766499489192643618266773957747278239519636456921881963859847322521845267986669567675129872837392231456546637174621738965876495553539434533769688118875993782387225229442229266543125374639322126763445956743712665742823124799599959197258432156265533566346976766779636178276146344784691937996622755542711519779176135873896632861485174224572854166379972977214698978347156549351564299612628451367742511794156145359936892697656833164514613689194812526923884112347275472138811263192537586298717221683187828618136736498486381645327158888667526195738161429327251937757596398541926938527431694894457223146792635893274686937826483925294649666943295567198417347823561597944512271124467794985884873436745918557374747193229865453299799841551665228956593235561383247866272785388726546653927184163391167351712166368715362581457115436467193687924738894918347215338381491547852245514894388959517183438713941777148194776374868467717855827791566881689272115647879114589453117971612122771725394987141494365697995232738919978636125946312549993922577487632128385374534943886646211225379533991856471724422814389986357894545467717328316131624879897814844992929543359158865373562228978326935399268397942535817419689941356886711246664492723485562191767995553997135856951473965433162624581241267649379914277483595288993751496671756468763337949776245961543691231154963551238215131978296873575454442474137232528728252266858824875517548156496472687376144115212134293718292448894291522564951424373167211187833787874321638763298632498779111583651633655194589825916417951389969782382356768599281388738415873755825161981367122662997793599776571679595743634422382752435221838888171548883822788366327811948825119853314881878183292818186214516224617112589368157636326427565797844945568669157668853463435258836363232776969218319739283955245537472499214814878815137733644315515424125363983292998993655576739534731389385163763664436383881548773242854996759679979184259285917474759366632417895339197475443689681386258918593911282514657198565211773896755198851149433155363427581735718731553446754299923887269972676974434798443798473317273663377185489737622384148734638913833798868768292196292134188498733814132344442324851749264485244943551485978243867578853476982352224965414429732739195889782367173891752821228661324485639967486411964879386652293132252858994885542192874536684776667944384327792416187166511947768816396372346445564416154622469985453229387523789554482249497113644677544811424991343151312386625357375477521428511337649985944579689941156769896437672564941674968172298743529743619457944654698363275444816954382467267337177716918168995516983978773839355543437397952494977155616921995355855119619786982441893642258359539619457657492858892248582316681999513537611115397867719862457664752482136868556374498796186757462988663571549259915577523496465884531889356991659661286891685479474796745889543886879889483581645786523815129992253895323612916131982165563765655322633152348423899214916355913537152397776129599684129421194257276118859128769961549976788743882762618613964998772676896299388251278231417653974795825841916639955639988835689769956812947676313967613762871492987893558892191845948615972681165951857444158685421559315791892228587359463987488274197752348427261217849816283576759889882173292864827473663593394656869683224118842839817154189428676883763253429432598459799979174846777146511614756956189195443977332126453155839135438914817828997952211978695272295557748646275739351686825188673771277369328885377425828879347242721897341795387641839591595457523229736931648849475729458481271668177735733938656134187617428562321393361539185447116921791879882565843241727261596778979482257263515549896936213676662628795586552179132952285982493485951194416287934585443922595899896537748313941917444953963858293424732565736959581979875466976161166788448654871937862871661169119986336166727992649183318645716891955772962269527716986535284978576698789129672633564397376591823367312538324545241191649241227663871111983439945959283225868878813678215891196498594223887583938354514188643341484397136995995637162277364449979597484461343392639959276183681287138631654585285433144831315916357145664124891983267462629663455812242482739271613856742642146251413883325386418891654362332917947978437745972996319539416785265968914923494191634648326171688352726463666773875813343255679966181479985791263564486485661313967351664749714476654476543724426419959463283336858555735855697938819838556765572922824749914121222759422439224237444799631956964198676147747121263746565423224818358697199769598281749191435459962484214397533631291479327133514329184452183558119599875836615394583222916921192155343819256224888458454965467356368357397515961534789634687971162115834254681816614155381153191914686595744644566314455224377395129223986656533183114243642241762596944242134771235462899637315586341614274259188164756414545928462983341764131669611982254163758287983564988158749621227937426624911658724784874715788772784869784719214426844272648794544244165655518239921986532587247519993479216271148816989831613871999161249969343578588339378172558854643569936626533495289616891355673334511854868628668495379196512323138198466968956522759468632573446798319927669978956957926468555576456581621263138721134967667753855827397435743869283335341221187954126461749699184294398269419675397849888794776529871357783652751778886585516549883538886483844597591146941849158915691967561513179988497835253397171143181134697619964388438292516867289941275353349646342162521583585196562434875681428289569536945448855971334862941933993295573864898334866396996469268313335753421745916588817327194147629475437839147691848788444314459537821647542282661936368197819756179888879841858241886417782174775657148956537436739299736958975974937822573464745686175857963155875335797664891193257899442696974239463776754435849512126435251358773946655674168693271878272181434289634216855882161896689479938342586169451974982919515412822763561365381162754618846861836253649814216294673378119131657892513365962421161695723954228847854216476448241816353771891827834528361918243511775712849726438613778249273687534569488742251563441364733898712823398588236599962418389539618142538943275887828418752451797548878831797675522552893381239768942692775249844963993848968389133795592674476792826888297591989767777281419471911939334978725572845519963479476475462672585998157291373819762781888896966564858811922865573884369869575186892482763354527485248716888469371468693232317639592131411277378672565682621272265978114883453617197251853681789794793425778865392886798761324558453172856239974259624227178796738494755864458297344191238657486635712425775266778887128232185324296165129152474388768832357964521773279958742774148856316491583976972255817534267114597514419265668212269938764156812655161745993618626868394999537422367867498376535632946614326292817747915681491533785658661587115454677539927416989895325184996839351629229544819235156796635578586764978384382315949641733586435654499691932628645327586554661975815794294749134879243493111281794989642494384253359996939839574341425499385291527414286433847689562737699246333978269849297313634888223137967316578742695565811559496848632338374843212332231368937961458682639742648527932929518365972552199242457466347169735774613482823112376537251964355685763711999362678998295532397912251434696143448279824728464659494374781452384987947228864524714617812863769397655956684646342114875942687993284921658473559736142655865237971145735964291343221818668682585157542623561379883517345791862652541198426865168344226227146594981925796363356144549555169796673151217197296261376565897918511122965896774854244787271844135989723335969596683876438176366548796326746415629619853922998721911267496721284943746322478287648981689593178897948257977757723336759992553363624468697787651132649369945757117477751442862419565891544556848355338388457994891718249784394656312678753426966812872997548746331995662235351232641183394322871875187864238494575539963471791177995461628685177939949328543154119194345395762954486487374333254827339444969133742992733628187448631169895416382671827945671945141153559726127998493759483688842345438933562284649283473581725419335721788733989596472757692294482497114533668143859489339459897696453699938331243585362928874389426565871295299319466454947789867662438847866864434334279656469868812815486247148762114283825381829714579721647173823167949989727769779938551299256512527537331169478362765822643642533212196239611491327857317858192699265828168931483481721786414985949966519926626144863824168972351383585366788736942914434866627779333349772634529765713954733969377917765139797158571767831953178288167829333991126875976618695512488434915968521218957214739165122759193525683459568758927117666629574999413479714718487972445179519668453914988268731259618166952191465115968174229398511931665591689819472757642743564925226921833387311468337514327777673874981548935462619488828888359231361562168329787539849554199762361439799912243178927821686347857589156439195566697884695933485162725791369562331141931625977823432115476546125493211948124777927516118449935411667574116373798357226948149279567213445918791633278612654937765747645715238528998379744989735478674573899788695737495546779876219537482754213532517619919957547125318888939868165827784571188177238758476735196719283282716617426964495621392692232692434365494732459783962554873914773998769276466937878877357683464465347731253695473577493589593944325577725134668758529755767336883541923755322625955133436486386742249247188778298263533598941967219666218212533473296847661186558845661178844269484782278945752466261312933561477689857789985157477265161794928715753835369747249259613114234733681478511233569542992658762769791839544797576246498374682777196655973237216313846697861497136895611697559188722613935656151596664564466797896345818798649256837755242267997555459775421861379719118459313498969599989571532171859694739841464279934717681653115256435569835326279511248442752936921723228999454516519176534871287848981995941653439768191319588378836679432457581956756368446369262919856333768796596566237577566459164739623792641942973828645552839939444637118812651189367173978223143394897776674839659863281215728821576854151467189615373894996261694577615467336886995387892283762811771334917888741179134249289125472612899626536389584698118477796622355555736551921363994188287149551423194817785271795441337264429688177553689934928715631252454539299297782427292576719979337711744584869534315567896582587798688553241969946461921129834749754574598963782992463132847518213594894424729652578456419159331789195955164938463612969471939641223842295925129916855299269268337534896431278576541198414547759815824668728763535126118258653275932999758934858186868153472358411638768678592828178987547497414529997426884681569342961621583873642197954757862575379216293627826965438757399434589764232594372236768359532554726651579585122297958555767118981899457629577159417975957792668295778427928423579274918389976442136534312675415574119511895338932476198986127845276787787825698797763762942548999633516315341799273776337642177817266287697475736115339748799734478934278334489195416625525499786461829282143212357136365876888978389237895294888741268679895255449995657668242262669344776749774699478539754877245464538415549837545928473477646368352973879713511577188357367975235179357219768226897227881631612579148749728319457243917924785984456671345893222868673872944612863997277277691958449647781779485572791878948449145955221314646498129215598541364867262671722755463688358541464712414876879897492576353475717767863995826268858868424549825279143686793487682459658415313986371253243243273426267166461929712946488154249468597447126326495968636618422193225962535192184151344115476786438445514582123851899937399759897161691816356825975913543271635429126871379893594688616882445542521817423139778582475477255482675575326993435688924632778879643142218448391725887276832413616293289564327336431641249316995638931371839686787318753979199297536924538981682951562385328899686785325659273798561624843195869319453439424391759357241777379657269788765962973662213163135899562764637296193268574361658647754572344476944573556431367413536547789822122218652456419374817197198755754497868695864927934111897635563732955445669341172544357448566468399815184746245426618828138269782391681812314612348659147119152186216449457694252295774626137994178995826777734217812899177885344168574115731775848844171692888234575219356917927737762974467526256737698913335345559867445223923651147644743287873886156343988486552391746442656936972175745836186894328865477414284999695194353832734593972137671497279754675272744293527857728121351388886183624957673369877582577775718278158921122433458585999474665534524918936969325281355976266124462725544645166811878496954391516294312987372177658156747793794328872167217998859835987258998898188358135248257278218578344147389616162536115562518617252722562948281364336566269251181638317297235625152286966668962783557387398795571724162239621993788372458572272897323841633125385579994242696347237713556196356211127444742234163947949167384724232132375795485329184176668938728878315997311113673286151711362989743535918638374915624434446526996817231227467319152897279687875145699773285966596979961932633578342766781348817825212392599883719554882917835459889546652455582251756984548563282516298761195284391648812665774364126366232987179973681427376587419843689917835599596723416394256233732771933367164858951741994665527158142764366751134197363932179487269378471198886567551737599724244929554445573543388689636996671365471975941753561567238994363549755139782644478779782755948318867977928537493576783726659299944148964283957368156211764958464524939878488344928597873339627798782736483363553116948926841191329524394438887448165892416147855887412684721139974175677928866735258533453223697418778585577896116735781161164592574893959419293939499247597137535686111538789744926218236154843398911121541637723855738457398935289553867599246775934692873899477856113864235622594762552448177446537171815422217746195435496328455369787636811413179417838429289862955874452344981988328535794468224822568239429297246995557754395154654214476297555299248654649548511845573365762232575231972462395997616649382443527943756258825332733884383668257137656482278882798895453963892583535163458663116522933426756872533334636268286686133995969451818194575392887645784672328313799952585213874827254266149398692989184177561598686294556144345742964714394159845467732816293536149928825817283412839148288761785856251867466864659919922818629882895268163369948683727794488367347494511731957237867246559675786219964892674359564588296624443218866643488559411637689726341846261595612133819462872447561312712712228258999382922573414684788925261957683784519489961688178143785566135636816747666113947113232794998475849117477249382859272183311253785541925734997795452758639381591398769131789153548767626187276789239477452974498662614716175872337474328536878921161768462282779638927122118419144142174178656442665864828336795527177179495982662599849817985686317933797217557798514411611437758347535185347272374348411871128757683229273997468467262131968319196433824415368515912566966367446953352965796494773745926888947619845656921254911728667826135266623371764914365666933129323184358549692956926978428196336297489936288882851849569417317376748134918384121917396569742656897219963195988688678671682988316512274157351781314283616642354247463988482915666149142623966858777731485511583816734238982728771946194117433388448523415714726866665569151471987218682967968931531635327179572483481955881368128826714846316148194512368541187695859527388777749571893847228579692334358523283831629893767638276649863334125582926641857997278977847719435593471559196681714189562459591968818453381537928774278539988143918886679943946871576335325544263964784148773747875612592829643726596893834624253838875378961369227351969148552177448391323454214265953617443672741192857847722439219833287126734868279666458992645527122756878224854668354669313244682998152287667178695697613928371574484815364665252213537951766716799846798483426511879317697216968274635937446563188296961272822474894654137397844477796222525718891986334673715566759316722983568663444489874576912465969435425182538579512998541595918567927322658879729272714852981118526127292526779988962659945695943956714938753527439889455775875393284712882589576627554464398456276681955669129493845783965261413151998537462258899456934367567353787666494738963663749937781466569699997996914653841611937925153538866261688715953795928583667865561513137252715229722733454117671219478385257646169648377883481427625249887288863469747395689581962688318175159687515655795817437947618586595815972147247616225788496665757819875311563513664269877715476551669228241861568264824936618966123489946378259185829723887296387688458575669496294823839291486831191373989658692489863864195726991557187896527724827495399494148476481813384836281891912134129682675187454868295221473296144928191474269253535562685874136922396691278846548878669165418664126496968631834815418743778667657126772337938455987371139794858255687781498854116778846926661578196254837392735777835286899425437563997742226842476724953982393225128758756132542415954691814463636761953589395615856986912954427181868298154973737852958364397282453875735716344713864223232791454213941715538963293192822368557288642738749599428975294994968396579824498781321274995471794312843378922971937425135244544765734642619356875713474373814814494329256687144355981629797657291419321614828915289353313756735479989876925739813932279585987216372356293545264873573194119871275843796314225974749671528982487856747422539592527932695346261547393669662592899923996626976984832154479938688765475454745743349154153683515562584833557398629577994638856528287422584396483875262468136737269765254396912667371853588679828238498991995669521593628886215372368684944129945579477169665352472634785763889398581743496351447255379493486422858124387196449743834728663782762392846174948688967111955682566861668558416735534768672742198738337645395885636788876774526677246623333483391369778366498188538819196668624392998253191666786437888185959294266459189984266486935615884559523383967289245824149669992646474592383548866235667319687269853452512623154374996725788121512591157333724617798984379896411385353173393514316671891467366251121916658199894672716231947797658891674464967299213139343632222443874782522411973959521163348193252666325484411839264944654536281687661694541962121611899254411717588188836855759521261834614333449642276193936246541934256969583254852565612724428157471484515929253728328759881836583788376689856151421815177762447643242349324117995359434631268424888688771721864866491249923184175913863228942954815315466594316151471565718749158291125214699919446793145799775727998157545778894794361922841137295915576145473781849918184596951143541162719372916817937889516996528632273449445124848863289978379773972914685663331164556517528282686345676168742536875844535171917742735223675764998941376469223699858993918269969539768639581864547229914338296358955562966195939876264445719561495816184714459157492279294785593476934914626979891922869178345814974563534917896681752646378314128457438852621591729874617683558518877898858742118594114839214354251675185968582864481819178484521264298859978622421779288385952827468297688984532674117836676773496397628658956254654582564665712398554475344329515869886853996185657872687199223792769955281479781298983195764166259171773896483113729927354451736231773137889476322214682163329331791924579526263962722316385345273452265241721198645764532331115935852982995647341253725662797314357589553851424436982779899795669125858769958697459477548517866224126396963547217914693698774691463766545954797698966793665182614417839196764589282973524959311888596394955115622136858458644815829368363245947339146216531614317818485512221414798169515555694921736391794386721341437316364342778614719729798341451985833215811847695769388179155698729584699267642965477226599339587886819937769698455831247282354128613835724386259174957295177887739445546781589531349954292274793468433654516125658624667159931141913685877364855398782837753958723955665841887178124812297643939548511626863968839583778922533547768969514411478859937926226498623937278625997152368383355397963461417436625327948463832889953957388993858688498426884235264463513935726792615794546855634269552178214728212871498865447798671675732275367894444366438463425361331291653313866968258195872891735595667756446691757382675614834419374181621276193781878114347376685219923544786188254388461193271626647889184256676321981452829348457751637264494681598133824998774323292667598555765928889196971981685539291564652274199242954542431597873256846635324511282891391938429293536285797146432816121772899112899594849838651917225517642136616634345744435932358936666948497735731573675748282848388124648948711516553225144249672938315574441893714684745641366587962386943481972396744132793425722351552668395886736853521884123889697182641592286827427123892697989972733633417144693212741599225472329896123549475562174387836195589216966143676398649917838926315478941162967759224719513479239297636338434547511285385124337576596957682151821661823784178726881355755678629722774626688615631561533858431326368429179679465566719727622986327523412279948541112829382693498756456679117745631646447892243652978519363663841388939378533737316654367498991528494333148717483899391985374545968787611717382794146677538416533666377919987612119182877989541725952293854556855327274593823217277823711591291981155547991565178384456543772177614829826398982365699492559598557173473368399359364525727834896476922656671882836256181665413125916221169254976938989768769751228187598891425911262789252446734122513743276822947542738827984689739487479166991812691151727923968815476154274199654958595197114679844426151553426968732575413916919118696999671166452824869681143257546296479861145772962899233947392578759778968981361288522175337658534945169148337328689792712329753998252491363111749816521661242591636614498783555216215863367592217893362179192983249947894891348868482611386845343416935962715992547398566913328163715673344588563517142935739133372998417453598391959752399894642994269198737454523141948613436862558925111429172178762876981472427153427382445365478146481965461398455593511272358822633686271614768141196179639689813459964594378696371689451365914438423573619692763425423685571971974559584616667164437878398585768415499476562721653516473898965166337356466315721249858813738394829711616272861197593576355678411441948453386518636791161833678856754599264651458942384185855672576745947852249243947157542629439893125158526788839262721926988629311149442875768424245184629681392949945598473419635896945828144552113466724154591796988664257824187341366689421957494662755497272364866941547168768494996932391445557356234638636175989193961999834924228168688925943661996522432892192351839559464693522581456228217874861919454534754664234662982218794326841949525591224462844449172773317389674668228133815693168448754347365752515977618157131151746897858475342479179788828213963991534796864713864946163899955694496628169593529592856498413161848949798236377595539473388588912885536847627445471623399524685382797886253638989289792482291172991269342959997384736999525131283975137213535259152773697125887283791868661891813183411826489448436146564315432571978798433141215975143415547164689146743332937695474917747589838994467516387678918333918628553671923774336352949955842965381859646882589618297953846694786287885636681228357116435997754237786466388748165424762718219961568169246851422149155287212975483115815213187124162964279874842587647162678762456851519127111679512958795385354775986851964665168135952115339593751853579533184899397826283717336365247686994539691417895358882685216864899661698316574938614495218369396669353986394257878157895286293319333579714539157637761344547416621183674857159692672751967634949699363698423865598844315887988333718115199717573412597861182653599782481649415392296867349546954829232765682127141832346398546825896594719895553296891175268865368473147925346269833899127346816921679235849247763825444582865375933498442563286153117185379514576647424552282685866427337589978895846895635495935968739417186438378467136645497497583189519838544686869146367863729689664551574848679374999231159125163914859825339785956872525384913197727254597343986446927892733555281278996815256225553193812681788181557997875581992735188163113559978456994863141452997688362466822667449616124456839184759217859279653848461976621235664778558531425691655619332956973548356915537515279478953188177484843544956567244892623485217975488918691357327158267295713818975432263472699222193519898651173477731813196935381983534573252254639195119944869391914953966238992412912683763289675277666962716745937446413659153178634434486189683615585446111565962865219332889851965875863443732515937975862439543576835726146841559453498333969215411283981618762722548355414899175123864274384963553729517119121685215727877151839712454871762543654279638943561366365738138251868321329757731194765717327778248651642661962953797291547721338739963863839671436555411229437889844435572187818155255438278221755961227495445687735379995917828697142197553121753599756334716499535332499779183519532542422763874887333662931743337275957978261756381673328448223314229691245826649133314583191197177681856627918267744149175488479289777849856856673449447424662184963654212515834668477418392418473842399233518995216898236757586595467655322131816732658758658617381898638937311257522964678439749469568754992273991676753999964618383249755435952711678882383888466819922385888971983983384162532518893743878617363755554494384884754932657859974868697488555783627745796456744646124349984695127898384871612258995951749236665965627591121775498175627333556647975954929594424721356439637194164735446622131932681696936698247888919744778956243879454676469997953834293693726674161342948168357123815967991264391979215991823186382419748378735683147526858423194993128988113576435461279496266229777227888989345219689888626774797497734786553397882282974532125769169561882641682748511882187437785258338548123679934223819498895788366989987412955921228655177511117235493945138452722133479394233946328616599488168677986546168947822426524275918753543543239783495997751341744769298117512599165919866869615694341157311783784592887985957797118217777831784847477965976815457437145921253964173863974589323319332791814693827365588519795767691684599957269527362337888479882215837145472566258876467454566828828685427543287176624638736621338421917457478314841541663661653242815161451252133459661686281873788724569844296592155679135295418796473982336776158136167677852169872588877985966794569275559969456887355926572433759242488896624976689476284418988989535921782533328374566262397829869289768722562584829282562622812556761371716313329232272884861142219825818466192559264336419765451656115151998995163556458566764988275218384223211749299641545131442376786896118243671783891853298156271572381764329936687487292895625641254165853634148345627888218833995718274164452743654797946149413487582519779485574576124577861615929428656265771876558972546825417776761772335734478534289187465375226534536616552663288329874162124248519345326177599815595383223122468715567198258311422818917823977534151261714269223642796478576891829518588686468637367584894849681896347986458662247965869328265899369916921322224964888412838819175823717497423237346661713436242159646244298138813189598525325973434241361378941472499632696337776756562947737241714199521637763976679566995855926435675535582463736452721869834356996722782398822719658655392818895694773648379415357546833237293571119793591542599129862159621977986324678282565683887894688734845855951199758888379622873295355699644799585721796442138315296898761734587233582645987323128653323595843531239259189883547392329746334165275521494962672819287639112791556688237482817143164272325319462839998749528797718839821227955563468193831649632654391675522731269796134932529664948658678882616451265183435655876954616785989149655635684388261664746682956962638327657993734712448241553645968662211254465329257193883864465277534969643856793856526172975175329373616979697392835844355959275883119722336314198634385576463188946139883737986221643636872943669798728878448675568141122324132374169739777282173566922824354451669788781579913342866139992873722622737787973911492371486223998273527531636189451963963398835171763492861644376325956899867385498566778526194341992528374464589976988121593917257443678984144887926729823876667796782278222561639392859265319162344983938379835173265589476514982881685679937864415671157358837746997921229951853633157812233528533111482469899139688428917817951997776888185787498779194512432296893756685177928232148467419627446924257349172928823221261917881166842326157992459476416438698411334397663325676476553199844535179141477743528438567948334587699492119725898379293899615598291193839636715144959326251135454857864699687982652271983489439236946389834765878634383489753854541995554771515494582422356136177362378666157937537398612391234864881584945215175137646779225126337345589852213674587291358582633226946843713449457217782155162751597267739115138824682256351654797114613689674677258869437923459389645498488727422595456397473256997762786591387412181836541826419654454686994775548152858737531511341766815515751786516396245216367959422996449198819656161782334825881587983816671184718669978654567752875277283782261462415464428647337667344625462691737666925422446261671943829575749946698744267393198765425986659689382123154347689391989765287834844415783732592529961344819144281562962995673274687644371845666792613145299311331722349112466798966174315978279938866964115867633217642895117445551846678537526837631925897355832684118161762444936366372583263926217514294249778799672876176283541262665658187971938792949611562881589652183395465838725971944719829213719395169551232455671775956969848593583351886277539781752582466387411995417395345616589982393133938747651797759449764983769671581579974649659219764116835187245854867262379318338251411479196429212966345983366743622292325666983825837172216492814238888417875288772893896524195574489924761853726744672969748636588946295514979887716253718561136487248117716994975178918483815821375522473921421636658612856177367836235523322319742962811922228639224779455971436351947698282789531411128963151455983828879954188587397545752886759735475778971263283861787934891748789467592212316617453241595257986926798983234125934595554567637532616155143543794464744474378325564911383944841423814846882839457413291937758996789129333277785587634955152724681768235278815241545151355252125266796332364629491228397922663186669194871724625396971494576177775995423463821239593141442484659199173589116777547587183968833273861132664984887991339285317553641368191696935897252885626979917689861637178617212299456598269992988771134159997412395163567538664998722584327624787258469453521689414433661882112532172753176386191361911883974281177332136924647878183815655531664628851238613444593615738324993152937687845975583772249321985914597497954127676926676761476745287275997966189273939857163311381859279996574552926299828236516643833283168711562996736218236871659672282846575684516755882457636366449879496918868587559289649943878118778917744377558177689799714583279972359962492916377317866631866932856477638814831351482988941489246567988898915756388689283527543896822967897585466924356658728764165415888491338317313438857224864395759733721765385939238389191232726625844871174668129139655684257328595791116956895473314591829493836313958278653438578311512328751531521523293158895988766824842677354485558752865735751119564272382389434631441832873134678551324687414881768837954423579411835421679483628696326878357758735321289297317659969695952736796964943577199391936968258365811154926117361898658922917267376649651468894531969299374455155268929123169739676458861629721156693149298624777934467636124119564294129385915624425492143491215713744797983981597288372586283751268122425867347319295346452917769986655318751531639867674822124844548727639938733947529267726146625594578395725444793854297246537245271185144796782536893386161379542366983325175973164463312744319795625822795387129217198541334174679268855171436397999923954224427493422311379688639613658837344758299975319678853959661134871516993552991256496537443771778436494971279679127859943521875845118173223243755955795671545888431895659724218315793699742314652286879939715953722756158877738473792279758122686649137761372697642839835726416789939638681952962113885444187685487582656959696859111557764411524622877187485237493348879777755981338439273118859775285711941117586826584235152834787269192336216939832893227123745571276994398666588991781667866861459969654384869264939668375978177478389561781761398477389387685942937682925928414228731788522762479593369681954931996866576754685855569387383386989421949657937799767596861699287698257164637669726884949198871158152697278989417856477758718938329612616528638475314568358712665775227367668691251137791281185357132535635889876897473688379985387648381475581786684781851575545269922239996257276918479967535612738571724497927184496875677216831369332859944481853797393874116993397422877467858472748538148692947118545767384723782777487865424136693995465144471528879125498287228645345399275327171757766667226143699998173975699718928673449616246682623443513477233873697171461626988742912816632729262279994481544845842986181237778698695589999318955665645155713127272221419927322788257389578675299227968986376398446733851751957974365337559315585243517176832942858925738824636249897941497873844796377779427421159348911929817424658265315362219214972428667555684471794833346936932775316181661627382548856362726756494535914752567758763722879396758238393181998439711399547215291346779437571563173429529471963235355988779419535764571971954738585972677467569419978698666591793634177999181711679437773114176184549933492799161295659444476814232364634281533226436485839963746987771859881728281318255476814491685788913247999115444613689163338128659959785135664829747996873699833373855569935937672713882215593668321322515559223918628345776262957391777469413545622811899971558746479135339889295934837339991351681378224497292578266299167799421783331448888764781686552111456171578746719719338614488299799637571774519668157817153922372135754751618478762685172225463514865641916232316599341569376411232498633289853451159187418294478222116325938999996943797653837439439778984311961283342431421962822187899576899212822673792118418958867853242895681961796636378458631996844933272694745462732674986432666684316791785973396668587317933587328645891439386935665824312317745149964866929725845111621114744579833325352542289236492799815767318336422452426659437838535243861373387857887464113899651373912837418938214429579192967437378464626186845791948498686921672398855964384353185329949525493453281146882171159832644585459978763448989887968556222725922446749454778713222779295447641679894582356264869796767655288128463151137755977142438434178797757146737836772436225214453274835831777194798687114793597827352689582241583823975859596454466286741166131277382284235338148666189826182972664199318894425243793414573526822739446329278557515786667999442537851629312355836686547558888331472722639478268981435696619157268619738717725613733452897927257846325949819469295471466921997238649553542981999998777614274994676765693918539128514285979879196985787493992981832366169171864237776672448266892313462861338278638269468218142974212879472923589389769591678342368452443222484229456637466339972418464264826135661947259271919263111291883662174526699826655726686134444524519167947247632795593456465285634828683823443445682919664838379773266246245373517126723312156838754676519241693275829833366822628858394276927331398211591441728951742255462988787488267864492599768997383784147322358577386575139981539283158991499847514943359793595325659493666355583545366756266762343993781366114857848945472456237994842151563578253786897575489578935685897149669914799198184813971331952174358118481243833585719343761173628225249917965492527492997975589462851729477743899881732254418357646151519258198666827473718766597762435757919156556395734384327967223719551369959493141198771249187857694654712899651796811382776321961718577589785323561425169554117679911751831293411819754963555926318516356659177484189211281791373163996698629844314836214336215864686352731165914327715436269969128132984659118478564232692373238759432518484429388455663128277273627216577272713254162627615215857264336298858967947639734995789392245715975628962485619791558766233983583387467356888477649923136246684885566161979992913311552319758124461935196165124867867982896554412156245436696589721361262897646288313516828983433688582551862972143359186491244548924973973211784313768218982521615834917794277319381465321798899877437719371913494396818791488535324668524578445891561986533528126871754226251978336936555967487342259894467257714298471316477264324752298617473632594656228354695127935424312765684721311232177162489761474264577964453848326629197474882674978116997265976166496314989639353949157274483651918131348768431794575242694658868319416732455197322618781663659424468344587324991875849359846795373973383214585298156487475718469716198941578918271813698353746465838212776923764468846177459657888245623461691616979319529319332731718266538612485597948882774682952688175344849958111374572191984821262611525239284933917956614162584299273672922358527223459889974461994193978861549112139369283517675841723664524832155457768825217595339926236814432493755919243891193592383372696112214878848882387344392522297968139652664651439126815519956211853388718958981366879998316333516747896451844875442566971352911564172691382989863322818425658142767547689599758389615785496639914616543469131153217812941294772177549935521999385689465239662795598934267564183869398921529589262415993165426361694776545241479541675848849622843219616323369488659824393493448316575928174911753697745446384268554472496776733531565726579533268848521483429768384578298972152694593437326797459467447788971376132998749471668575555139571177146731314214231832574918144336677627472347963931633389558469671534252576376156156912875792918418356757613411734196693978188213359453935269176571479842581897972936699418967799364596845533976497997441939726945859431472989935879841598355751672619294361745328938384534286548215347376462977521257647657689413195897329148378783791587648846485418589244629447817994272751693519553426231765245789196383753144982834392168769372734617981313976994834821971534335561215786376748644967969395558497253676775459736482592585645518774919867342436984312951362366787565659587285246135737565286396873851522694396896799217469219863445757339916989999887388287194638543776424694396478749531969681269628648224956343363467444769564659267597564931832445771457182217857648919793517319315484772988896825469241694944193227698256119716155968859186436436835458614497244677934564935216995878557976515961266144433368741355763763441736283133578643135614419581256569616489544984152278873861568966916987853463763531926497249922431582683229741595916883744644196196787799585373982229675843298823745616944953172995736689744655652828446834278128986649467796774653843884667749688368685231976341484231286533119636942896788156724577732915942653984385515244599357995859519173558758752337151837231717987986626623394719269473562417788751244673465647976133223545952558163987626812924623723324878641626417133482185766631764326123732198661591731949468166843338386277235951927969462915535956231119157358696673519756546744343158776436699342779395425124394716142168724752685472323583869567992691372517884959547666647849883761868983533544628482866994982682878329193556852434142138989287826294734156528272422896767537758523947516131265273355182549767798618771495583429659891345346113822568383835749194119557795494187685467199114132552191917997637596138454655794572597839551649738676469645398511539542236752225915964154283338985718178775656488246241539419168179894845363856972416626993361341535342185384228524941792971342921947674828441714196545657365345823513762511469298184375356741249171649586357351653115486928177256277624294569638941754175547687279271549789269476876127655572173599419489536295638165339967485862776538261649327548856172826322511648519478123681618394341899247322941897227267217946724298888258723719724713796533654952791358689573784561598473336364622498683971633453386228365144296484467493681789548236417795961985677575617935987628755682563444617576619562918917931818288993782467294675534757673461316191258693392313147699986551126748478347896528738188711911928389513291532782681232326553862684932225232751237119514489567899372975117178837915152754398238296643616959745543923996954598462938651555888919989721577446443342223191893123681113219972854715225298122185526492286668363444147187874797363839334948851777342211487619367222958693171246756367162418913972956694621638998525631981196537752783395336243231148986764555864929117537728681134758674729895258232858519365114198124337984444381558969634295252321799237657785174362288269782243727524976647945117722995187769715762632492899214195774939599278936267885569477633285266972976875948758157678558758987414871366512442835377789437432637825563954923917398524595654117215872921251398916512687933486138746464968173618757952999866281745471718581245126695963568332968487337935194727679811314451397999746144836564881379119372389994142563238865123765346855516357538185169239111624353673423122279956114242576637728564389156577496853946563752556676841153549755964111198792866165763996827747437921511425452926936169576285944197872317651538684179228329819532221227333369667823165956163711999229531638462796629279964853993382267741748586946359324819834439935394947114456811631192785476699918838132577123777159972785627579227974418736633248397236133282964457959793728464689365815824519473679162638246162299594511174874754379229973655341752748316193986473133188552316844599717491291767842522229496244937498879353672644484776125947231199899448926747347352344135628882439492269466357185283444791376415493952398438125546218753197211657768924451427988835746558911962142517285871496919766811669254795844536613396719156843554737953536244994622972882785213582552358269714569394874594996633674225537938946492221173756592822496418872623526192669732838774599685322279285315882888997721626226724369451576646642846398417389593817528718737632422246537612162742124533478714849316988387894617216719619666858545225672718347699422157464274174596567952316856372571854898622467499385781686167765973994231486792535111853839313629283218447496259396492413574716626569615764913253423359838563854161452916138798795874528389854778464956765756697294892669998629533866488823335389968691875622142649651988784377894224559725526997471848487973613924959691642697367585787161474156778166332743761674358425331342744233188819847154751979493191584825337671244849595524599396454419869952862836978571853852141196792728868816121144177251721728948338848769198332435384852367914342247418319497779343288578195781196254938843935549167638438786484423882421177589615599483913264464839881885917661536251385574882914562978858837441369481849397986118481516639955195515387399187377199345798841398984188919413533595386286242344214895352166245941329189852989181432587241287721186852384997512789573924394696554821674885585487761861195159335368825575175737518587691959537686578718889977659621415388425378728547696662539828999733279758237719716726132717658177998499796682544248839446486299856344236857584314179965629594535958611525966365877423769734825788134965257739586656945635249687627897768868615774229238979418889169437416198344889878172961355819968168648892184129588298544486771656162979729419688545421833837292531863967692729429118691652447484616946839797574916359285911236215645666863736423585757528966715171133569971674398565749285933838765313418584292158436562619684511856541982213951277879669469119687397677594779618576696443474985594191534241698384447698383766579878289311356793425492687922149978267426834671943494543859619398767566873846347583832246973281416659483968911991879273365645553312836914351986991899668628967292923679485637495652972276576489868554359467854643193856565419358968475627259928243774885597328369494843148885113597447138935338632275546577531356875457882368726679921737835673385319145298159679129736334142281856243861144526383312618752571619595851587836994449856396264927275757146465567326366179789425439898494816495327221148651932573636943795199549672519739595632455968298997984148492649617742236665181973617929884875857428832815574632322886491996166243696778975139846157954224648411612619852516583896865688768769839938455537223987391726837548554799619972385561473562243788558694671417782911969569196297993935739655681918128781629612434892514497148674312444654929343437557455164115349169966263612884469596225393611412274646983553719139819349188854321522233468678798599343579265532566257245722184632491349886352774248591361438166539989487867321819668946759767261911391565856453883591633854155957325852473122923115477927557798678475798459577916874622998273231145125161573191932952832982921917213353572139372963845219235287687976853288733696644771977796998455995292196555268892352859723186417228573457257628981968951565724837996762457249852183712497676794872337889329463935497754241921382572569668911629537574354118954254169683792629733439971581958261912995685181818436553895491646954515997531112858225527755429636481574374884637617983682878929512598387743873576869584916578946449613626661839261147869856426476868849845262668713299335862868336283933886348478731423958146764992765995514616262668478429977586623976466164522971937296441741734118679719126458623219372636455942175893989921286558159857162952133357489141522565187699447789234767555364968442456629978175617727519295946231592764483319995761197439698826798647616464253377797957256748225912469877695957275834732659773977558192972695535552778138237449463843963115735393652655155749636793476467654514181189119968172885774623314355567326993162816752514589884779968241191691889944824378273155888713356774878754575771848729276319827197339125636699848893854538539157436486693588482279172498669949176482419267546326158843924559366321489664329175666264898296578461732771674728987574673748799761143938864273373144336794575952534978269532252191969657162819656541976657467821728463681868364639218281492765182143599774487175136226743792241174865388781144695793785312888619361287137246968271139864599167596593883724276188789722721958229369795681614814226532298496694573996766963934356821124562426411954873573187643854593815263463827672347977734445686828513755937244354386946276544374675434451492146274366723191641571251568523645242526654684397975839312238595257451977234965979236247957273347322946631546814516615893761548571821497288764421236111584163487731871231131499923787455259267631132321151783973238154784546834727993427765325579511245136523193412192859155273468954748386177365741116226535281922999368126366174549728529373754435497661283233588481164293471718363679388772777124388388858833477216314777576722296169771588682973357336667118639519167119534812944241654782179993993187512654228256668256253971731736861655687928674698729297318897138112671797249978569146661699696247466634137429736361499582435872147131637688439936229997383796359576845797344733296429635223646918248474969988725431852592691914988693851385193373576199738497768579126972331941459963452152957989723549294355877929433568533927592871378497184268832862387991866983353689958737662663788973581919558165272645844636537197456288768661756265696984587246923853338999585122665227861127496434596498682227479547599715263966782299794637744597618479761277614629394152745643253555481998478415999864521651779831351381787813156137147248438478142585939879169278971843997783241797338276842965123677882396379478338716933418956281765267563233695656165726258313862293278774636711288578573535518638715331169817782596967777951538353965629928287835511222489119331195115967788355693414692515155816844992929584164497175677459772452423263429462251639982294987113535852599163335471349419799367423369815623781155455839274286441612827341312823125344359957151618245952687978681417951982878587252236934313986622516177749866566638386659691566813539272243525958838942965485859669621892263788274997726172354145957293957714725864636753937434785173932839642484184648177857315499689731161889877491199317914538769759873153998295721273996838716434392753529995677255678728946165324632557499924946284893291553263712551989869692596463987791175788914488139465412561891544767673947997559668322794197643246913356619986551379956382667663252843591987879541465268156588995317658284837166196789818261731344641451743142976364541169651637841974394864766218989344586665936484233195771648292145941566654578784696849884586338591784855572279745327423131311454491729785299458576941559476331866495379111295661861543374715442297283395912262431839691174299236443476866425752875198832831527486743238582951449146114948232474227855812213237118115676624871552257586195236954643717351763728862438855336867311647961615134793451219678818716624342387978673363186632353987244756293537311595623181461794833374114281864769165727459378682684439156472587924769761158388376473953497396373629185866454581876827854799114471268367741883515143949682623125216163229316853218349127188317761533138639885155493988326358973226958194885952525747928532113998319998198332233265713667925778185369474415843862727697163941459286474339311421783854155622497724587298699656511932587179159397611973979755899178878992322339772578648236496336995794874691464568382572692728129763271351356936651423132578796362233524934631456398696461235479933848667752895114671267991663884712819962787846454231478241966948546312457766356188516954442711179856185167554921858131688778957582167199753931692631556284939637319398158576313484719155148869515374876259496518533725881932967857189721389246649547494182254622957893777469861823178738146567575688991581145429843972926516625623586566534189637747994884312678794934517955426483392891647112456411478235699963262747265889228656316445539555422246554717688336855288743795841377899583593456254342317578895897859653578289353317783357899648676363898392597464758282865144929182726346638816616735829494236543818117231772581297557418442377298965772256599778873716819696492316552341354945551594686396427658869187591683821258387165388887224165271684173889856772389328867339748947179659428326981722864685418118218471233531689555683771922321396686147296252963141764913318437628581851446871167817268718761256614949542595585471476247419618318138912752241993866145815128446197995217711773623195777915451274679219514888253688475879241928277466445286694755398219667796676658232916872422577581448142184593155156578182519645625386329916692627598638726777229721891686447478942913577366259783735662588796247578812487565194422989786337257259775199175681184799947646854164398558994312367812135181581487869735687561398254772363239538887579929911922424879619257924623365335799938821862892855768521268489297751811416961444441874668996998393326338922155779453325313917836328372544875894693442268343713877383371449919653373376953846661288636877888188684435279128625656357579166538685574937963196155988567358249953174139596257679475868933473741514729982918995479785432538995358386326757589654759356726859333186194518858173955772173733476431778392532879796483886226771283662915841542672584658794986445876739341349594654427554298611388482968153275561926936639778912561913939415487287377523562429416651274255896749185144963986847597391114687877524716631529236838853556723979951187924792249886125297289419737963849456868169434511763883724932298894695947444271246829152637869896447931784323817529266168975967449173369878425922926864991688828436185598341344616448493573364964638395394164146683538196798118798123421617343539785989394638554727217795351137122157888391319117176322833956544868714321222696888982743382319121835879175755963333895449199721445448589969959938242231195222568387457749154637842725345425611769833339978281428219816962912494469313789112777333248378445798245398713644759658885611725117564469814567732117485727511181725248922899595889958896753779898949845933655862154473366563658197527297146669988998542874889327179575425518169538314339697354148625967643912128552946249623536657268496524476543222678361625531838427931252571465824499339637351577958631538549236297648855524974494138167121419591317534869282134857529812391692795784716631776568443238761254967629865334261947129493525634139261132666175265667455985484147937481629529382112835714337949874941486585494351956881713896116446613496934148134537448316986617891873128238412753769484897949942384643754678236181194863366533239584482885177575238649698832637776421876268533916496278731657281591614967453392184334124222879331539497142343852145566869514139134255362984745252476521645239922265663289113283699876267154591234748653367736989891465967765525556727725225417954782351212374318319513198759321482246981219523715512131913123597654129757677581571799724164864154361836194775726677671963749723617125866765111979813227336881971644689637311456163662111962453443417878976152169572133325112548147982678757579214336466585621594344654895285352864229271654788375962859745437956558774989597879555684636441319861765339234546615769317235782331954427156832595474792237617814823578718187836494889772643928463628563442876281823596843128424299673772639292879544785183854785564773228878596177895366637997527457261982481424171363924375711327788295776785622517929861513265397997763599973183691394667747369669772691274274988833752744424172668793159858691142557723814398771223883543657772879522492427755128542855993515756524979811827381976542655186391761994894677343759788946618875559933436658167823549725972987562828152322425277524853284474845118418646556519858562714464165396837737387122771673749998646331123918588153263644623817638695451346899537274585773783533596352322631151817683554864625178789677764543664781149651774858735676452875334449986379287167395955623795136199839947794867294294372819258129883325196161224263153848148669581219654599615336344247238126534887462294544586913828854285595874834965425325932873788992137299192512583488974286591138192947748454571747749499579455797542144617369125824333786959375787398391848596191529243431251491936543489494662125731975472311914271565314967923534634896295199871218536966182449776657463413286974382391838549955136324437875641492164669128313921189873857637333199479437787435199971143978572668948375356275569737273154469256376461289879662597116547289429294938279184277226238996862852477119754394896921433152922979761553259694884155445385787528762313538163786878873894158591317595254112291285878738824832671782258561866978322876443178345813893874788823439771599275195116477439282772993493339582635355536953655783386395776431531261744244564469427142289388954738344797594179362378291293833677568261947415299595341144575796589554469932657978274373859741687735731452631166299289261857938211635259346128544552436486362297431286526645882776619538111266898336827269765864296387874653585516918391339687895365845324677463342281341487652237157677529882896922848647328693769668226625726587559392466179498544853941979374475217511188782939479468566151826821851664877641787666279168116648774691725373379816122121594592244467815582476428466727229726968777323396861345924289399857315365353948586743368797944382951286173181431514741287917442823781854659995826313169265329295288566341958355851858294723629869288359375685341489935644562836611158729675192395911996686875861661456499599938625826231327767764772928972991471291475166687472654968989654335376994227252422267327338781835198168445342673951185589588995966487484429791927471218847435284875759441565836623412364188234789175569913519276753286183168732536357426593565372481289734345217552724389294656647683932439147474564511211821264675995239757965249674577838965884593751789983689189271464482673999666817927211936899458115411172165927436955137691922736911737688958629989773135965181765392811653772384563788117795866532954142635212257696626317475958117851452527656843956985358665651997575171472861962537995835619197485767333464286119676684577459779285166689797216147759417214491587716754381326843976678682478389746432989529145458187914484822559978367671465611585788424929371644992469958588461967545391967663778552891478784988414319173663677696425638513679683694148989146431917723892759917124775913557428648716232824334669738648871918154454325787987514789561813377449885979918718566582856721163919613179347753694859682319989945398221933449971911878685253269752962836814173884465928836916413396898589936147267563798245939331628758869859491334366995532227219487965439544379915554296846116693264224685921959486186974654473613289981641254561558152447465486683647442657331588881777778323392557268316891698465341229342697573539226888519993839698211118147792652725669446491249699677789135478656679261628731831388492178758364123452888653887343568565736164458749429557437597488416593463458398517991976555837282296417729323671588668817744965155511897183464686775912571868185199478868897396184873443483244617674217122169321293967692713315715861778197417196732165929467912933932863758266216724818162446773222914828912354936443858985524719496731488995265943637282942366368179662591828848892792467577218573169846377993993555237377986137378933453656255518817839249588714736263235558662782924632811864299982259158481714176693243296923192487997277664634967442851585641637285729771869181824365867383348536157981636528383476768668962917247257466873339151998197145292679328671697629365694442414229815648646636962747768661285955133936925191918491663243264692371151763847765943541388283693711523771757285994597719781121559494718669357219529478799596784984134919637842798197271889369671687784819263394726698731485714937222597378486183346777273153232456872322554276255331877933928791477476549647536967754314358638549655436445878565439726524519316553869858628542782624719493443432821427636534228436645445663899839724631928799354561296342348742778323232764194318987368389931643197247786975982631993861265411164253622726618888721898719882233868569263299684342841647444564323863689155732358418844448194194772655179596866651919177113546784684977796147191293851476621256686192832488312555115688594355751887528179646687924768686552555884354774956914475713389953682873842119195496894249194833819134775551226634869687857548216379566887156289537753826532584896344458849688911146235451582235591546461886742522292885164382167866982727773521391846597978611492384346827355224591845473934937468662821413186873919988934849898984481396257813896594163942383134825855415455489479755556189387382586374584585943928172516849241972999553972633314534884944629578762774773636117525621396971257846749361173727282995844938615798499474963734256279646546796856357486271718742264716768388951719163218311956529359487872363249532352148115797116731272457941946736824129172288376367498398818927565344662529813878791721338698492761147132168812585685373581641751634137666698465196683439831336613391846919845976691546629594283411197438796584938648561812889163734182186881493845818744665896372512241377449567358513998429257118399472597696194994497258447686711969837379974855442899139167469467918167734325169693759195143861336824888428642935871552348378167811755323386976825549118441795811613876632179366172659964987287412439774869842587819574193331619915569265924379267958498957568268562899672545743973187661675921293289669771452369877935742884999276613146489148889896545186618379937976367843862353646673925455789135918179544783139121348554989973166181447759197799966717696589873511936899238884325365917295894526941255313363277426553468782193721936328149111834284694153372967821874234428249163992194415622278621853685747967679984761174315813993862725187915391553145623341346432267816627576388593456644859859119477731868551226618916638593349883587927442867171768582315855693675994483428863594565156777955654659848377194563835882844684231459533897828555339295747929471439184553912178341185235129692235495894872417262895523692589974193497229349778431267616783481692459425228742989627477768127148915186231649428147918281778456419366116549766766483934545381494326418275897394998185945376354944725797183996972264942983123379437876215917898755593791292287753838831143919737793329612349584998891728153538389215785944591664461993298863858186648236593339612914188687371772188853798397264145676778388153247278421944353755974231587159454987922982166189793384988166565597692756594588912864896169899576347329386947718637282727688742482387534568971353866634336391849393922429597785945875384271395586497992378171639758948191488374928183232393983918798263293467172122713236998719657672158613338366838283588772628236334934113133171683628955213916327818188389377449945413116727535168735641373788827579147597714514198789761642237978843112828415432359554361949326985237248568474482756484399156742369366953258985569967233957731749653829456784313849217138758763813168374779972669298431621528597492213263529149713229462564661966962672432646455794574184938839761868939822129667821419814181798623249524136614844385253616731697463355553496179928977764877726282117634414689754691711537271726788939371166153889925985276763657656767367683864923694411497345556651177715158887583982499858256273797847871544927991695137355526386732428683646978255556331194962294524811537865421145688637236416675356781938267283885895853665732212772215739857269667321195121357288848741761584468639621592958686453513838456459341592366394918424662874176181569271485531466465138134366997569167547363696926188589784765568989888117914677437313655397865511968415197824388997366293177159218649489861384735471223423968571938937757676182931145754977892327297889776638595664291747191571356841558243717933289198869216962388958942517756379948456928415861462924192739168576948547369688284496797944834733948521112316715437113436275493817382449983767727286478318143336453695648854547535322295297357367136547166133713324737937573129361481347492271469668791134575149251121946712967563163324413495788758226427975559569828696194331322425756336199388953748795814688253291376631931188779878859776341196554974982342661418133657368162655736334351827969244486494247243541245236366362595648833148279891529694928662966343436394986957746311352569368196519822947727269797414871594988462879635687455644613777184437232413498795659574425362454119637146275785792675772964353971342337931465243627737616273637227386143196857868218179148571448171754865278473282992887482971593876776792643535648712511616598722148112745535616776323169841228527467572778275366214952689465292417817696722758136288498868714342573889527413538568655356279498346345965266388578978252927321648687191347964492815725644366472366376185882255346792913915892998586994119398772532514836899996173824658774535445472983661947563944447688533712514835414317151532797493838773656377425192682229242874876456758138544939399648143122743781214794297653188985482399396269854642343297223572328646155964868517358479917222742943577745713684287587571183955634916723846362146658387998657869347227555563138157744862928482874288664333959913421415568911548846376318565512133954344572462731937787772916977366324396142895388727687844538951752453781175586525911692436328779525415287544853989359319878785771967181744744927159883798168351278369858955459212151976865163128439862345371842843781319677452233785976491148427758697823634974846961657624955513455577446769849965777638186647453627781519358776837741719649281341252758565491278175133486247846758318552814236795843718424358775934869345953591282169321935198192423858574614961143929195185967276171287349528882521987375789547156329839732853781464358955759788536911326466259532638945819289248878935955621874737492977375689979742679837792745513577428149155669693251678268742744351822879653893651488811133845283363498948866676363936696257347919634129284644849993638441876265173192731324244939652329727525184567173339527564758748631293517119858291316267187995756491278481268941798516791336419585853295459467483571815635762347377698847771829777877622213319441275764246619377251196431382985446717933815295756248897785812192985815169186441291516575115983822256348325984558369423743177293366513217846981935694477387272868899739138685388643291359611474483361337329532417143733931159612932386516728739933866327816871755525965889345229199795291645677453193645172682558713119295711382198167651382345828868775166519655441353229633352894885574857937643158296944755874699388947363365133745824424464892768385123889162849698273393177544223777753477885513452556698524984666291315272795849294566469926921815461189235788888386217212179278981654579997979913798321816551194536149124167734788296532529277573163861562911639398627272366385985141527167979191453495586214781484382198328857546131654118217482135379523728449247792149765913159899762469571979285669535899817642677525539158242114579574391568593828676713176591455414157366619813396284288858449947173476774732645822767766987188617351199735656248898248242612792829364243592786993435369534253617737595341513758517464886172464527756494982352988333626587862986344499654586338789592665811366888276521878799399822749794624475527558626739835379754194969524858613747694989973414659659238124152216462649999855745741871593779661325329122679916758458748348919568969361782147652991671861628685316558881685256892263259888996921332798654738161239377557169989358672735376358849254915653141581552888651436593774564619739641882851689864998944736715138692541949888518838493258618763953768127176684819299621675949493621916342682876399275633438744654744641865861252687857167671366341631627852669448617597811368313348618285589448216657729814938555812259164482634278928161186878614891182122599486214837744265985632655647921548823652666838715388852773171266386563568333522854987166648215381587719453726179598979782921175366766984815634798321965114258831154267773179856385925393983733899277736289638527479554216814416867115715981233423369295273787686324237584693596616677471136262946552557745944372488236397828643275489631728576843595719435944439466646349883791113981617781475963566739467172165349838878592914816439363471695621351768473183996168717129299524654779836897979913997686262765958136552332659649388759597186488793116556467329383895893465533394428112573578227865679256451824876934118912795378657695837386457669725161515913333265934289349955263586995457167544175554567682519929171753429747644774333769366866678918236664957548373163188137233494558832716116342477774917681159553411329825175687626589517414564679571888826236542313135754158635777282829858973443614517378674843456438119658715889457216549154378693813757224969867424547683711767779764615941392453896851392928563288839194995212599125854788299376273866321477676882526568853114971862994714949383789935932822314121449462773215938143446919849348442913827575128986789444626233189947661841963285451625653247674747623778738886779864812642729653635531851835212837671319378558471955626469129749621935834319276536355374261655269866115779422991586325949352737187228211326195859278211564794768995153221347993476278315555365326854786428942771225542153572521358581267436599825595535475861438346596788497762416279257143112976771975599724523125292458781988417554326987247347394888575526881572427866589377162675689341971167789551389642791954486686895317827882163935747594812948735511186177538611323361588824713887737947734232823127365964937329661526746659215149225836148763781868392339364564699771851958426384835112314984383757828546387881695981468481452859114846964963765679318939652616738636454527249148134695861877647136788555281222783511869524329145123627816798127589662812821647968549952571939337313439896739544422887594383787138689834681452968496471661771247397667937653693571855362261253843746237165958968855347679541727356934799828686429238894727942312466613245837868782169773246925697486144325165579727962686121414949995596271367443616268656819922963619865558691188359815652621957758166415285824937453829567592594746464958946713314198791672364614769962224815898933219244898921872655824267535995757839639514117757712897655979234833886628958695555582469267895259594468138614489866676266166817938647897754628326166741573384727458933266389689679176425732456215325696181923475981848157355976876935655593365328915978387182976633753522483646832445332185837468515754538735584448752959315811867619793639863457125483482555289478582198528284981161394127918524225891962896891163348341549911564854964153599157856724736363134195745218717186636871537836852513136834142583557664921948784869986396231291282396414477982974655751894671677115646179865914864766771881795519944955485271348279228938957491985824728119357481885984729395144988348111744194336855431758313554597744677464262659273129115767735131289727717432271461629447239649628278889271964284838435899335924836499553533919561522535735266894785766266325972979836449649591135235781424991259361657983446762642134887279431387424721273871582226999369668218841979295849612237496265374748674962131947641776918668846294785378597536418261316677919894931834925479266166312931639613926282874848119571934754994794183953957278128185268948317288897963775745456437981126235975279992168154724447666484414582158974333265853487744478565435685279455261726985972789778523964939916668673812658763466851699768765873761956626124176492736535797879527344529153666182185844312839153642327944913523298774342775652967885334299291544685378751492489563643841769347418622439528426374955465349625141253886295869196466212669866536499314826388827953878715779966367938575739195858291761721211886377683491916789837699978868713531914439383856516673859678666579166752898266477434381263686629476155549596195933531761459234949418822441775115592743431451331228244612243154733242498494519917944324851958662645737678588959862121727227666246426971556871855339449475915336646231678331835888227851943886329591531819187697558947398217912385799353332842339234198656318493959867959152371757723733984598487584739527227149865179552744743637684767553372745793419882154546862288329946319827558714383933159696275591759197356957325579386567951543875734971763383973567423258242893253278141137119639586978417421586779536676968142521823879622848661731365391866296656356794847733819396494576847961597545367766242444768954346417199421373133586313712251917947476951669342619791397776845458451712822158253867173827598799497213146118869296228791714965145167217385364743323377898119259788893911232386287212527514442932559844523618741389858735646945859175266733791361894543498857983976388537812821294528713957654764751277891138518359239881138824612423182684624952896814797672864112582965639592319289989928273644517983473246941836363966255517185915518453378435646968565649153524462598485997695397341562595748792713345891512277618681591865967484755387783446264214288668287412961397822239864281153576973895898583596251592825476346878449844296171489128834816331991362536881461199178477464489488244677287661348455257146655328951439197153749814589219482121382414467373836189162331736937622562397418932195286924567874895148825555494929855894116215244525983781441173487284282935213523269734467167118927131659387393488622314682887652195911249233683617256343447653989181332452154436375536381487698888582564599989836139446664178951832711983834529235491982787952696726184467989827278495332331549374788996377798747347772985329632989578512612817295736376669596547463369879539368211559611869898294484192573114915218242593621197364946669655145997837844421781843136596612326245573524731982879115846872186487279397298833894776298982451793456813155894957543389742824339658372358919695581857528122932958277762311264821189545919134884695247915973829652321765978716812458617988395399495388554287232777494171166888876714275294982419933834677383834746782415498977945853557995812485744447856968899237399154472544268881951388357898183247912971386837858642597165194172682538571778889192677944911733244557519549422356298739479744735275526637374313477422652282558314742313274914161517958375433225728772449975945268437174838556896972657797377882515454286865444185272178667444874879471893614967991643921846859587876548784391453613264443622731734743992388775764851573662437458734151394195772927586555498176476112444976362427277839498934155328891586563747414943137491484299343815538696479616926256121573435947497782931853598886822959789654873661744512185612198452192984256562135872569842696996446664563845753349716485891559967152884669818425742496568789763335896456667361486585654349517336179465715266187399183461985986231956445144359578638362976755987483252357598626754158651741936522216211598852955154554953479195829578597787825176193769539866898858661568845212187387596789289143228621968293418733344162849928194346372255834675739654215525874761236592546397747127717493285628659668524393838855196246356887279776183427774969994213155493881164944958242558685474819274167487652369122197676514398929248673179998738945617724629813957817854668331931162826762697122567973893767291258759835518928916334947198576897656215251171889287135948444123257768599146136244689381166959195545132788339848842977582676496454132732938324959251767677261284411424897912963477842515281839118294729761161542817468376638515757134668489987767289738596244997824919454946239897438955711588166922487837652955126744562956689341849683763946328983358929379658774844787833598474888594434467279386816892253451828432971771539665491991288737666151751499645837429581532789754638788498134949727283263913941314915721493798196485818395399843728567997852759859749752778851815427873928988892991943576883458191611134281489611984522647241242359891891332114888297586317161833134892173177529172897379994292479733646978651349665185616376838699989534416884591156945662399289175437311873468316534517867259622488514158113574954587337566926758885219845638435528732248484564431564597757336717431723892941436937166359984991888619981519585261471975894797641155353577565631499678839258745469169359411586895581628696644286653371864117317498168361512175734224483392547961583668711465488268154287826758672948964114966267884257868471879913696125965728554329363788888922641
