9
666839537995436691712346757846313118181883547117377731328332975486224494767571427193346278686347161631918778729729255883661585423475678776547548665243421782253691389156613387375781355444658139259455147587424925969693979985229177772452496887593565184384798825695959298718661239659299669474243659599662557862957987955123438884865834299188375384288992435226812417726836686225753642977528332584258164633366961346634498531688236133418666453596262891863952974679239295843313148241337842341737741752557881117231276959373467462648124894125739876484623979637922125626338733832791154463556247651333868853446525649996361287164287793778915586242262127358957687387856967447262419714538655324172959558412238388551834882435932439394146558397345447937261666191959364938958985449342177346845831188592528619144988485222737543743615966857153472423256358392898289686393198655999416161183373211361212444298928151757868327857985297453875786722888787528496314135991399861462763641515455118614413743642999176352613279899763333898383573512467521767847836178669588967229478329328194917745893762768792738582713745166139821187385355649518991565973886967178936774248428218575975453142771785563999931874821649187684973142699818192298781966294872362765827839639178269475197494859928711615691597435573172744338239123383744115768516714198533376571728324625212353835557519858638739753235975391715351233211394186183496115836917654966319559961598851663446958745144986942151319215483629547632167658344778711943572966921995312187144411313617977376989209732861764137479731737676276216119325593117745731993663489133743884635135832416436995265367553161625231924376929831356794772997361194187745539413659459128247963193624499842815399247348283812433795356461643385511265375786138427845581767316778795444213725666663144232253743632397728299678556889433649126398638322343521398977249694627276351373538883132952665537111857473513175153588773139815518813652134351978536424738812474265643847285582337288863753913441215711748297653362247434934591641333317248113452766631946526573827158992894359438284399952731312149848348864126246586782877117312217251968561384953723921833675927633751519867354737349554811322187672854739677173928874356418848597995479649566961177692255258331921677654619427524284621146988212279146496641413723415632559569787891452327357552814577622878868749915447164148459826781987963869869394223628585687558556475752849881413867737595261317855441736637979278142723549663577134316189988925742143688847194126448379569352157581149945857278125153191148474422528632218246969796238345212745829883125242758951673429842216729619132657145149126478374686461353366643649173176833971331279394552338685522948634922274394225761925874557642734148457896231718931519274241314947985684537719633895832245578884872341816788761151555989747537214459731311189414681279246111733487471694935996554693827441443771737999494283741421614648614892265166337846232564656919162472889526141136678926512134331697788732565769348463223645181352131135272971124951394859558784929144681199112539778356334414725852223522543626786641266697991785229463637298999553691351273263984121496418597452931977386533943456725458291865251478237973397744336163293212728866698698157744476995525935127935715797594597135756599995737622223982964333148733475494976841982493789224438314771333841736846285564676132174452795988963869417975634557655313482171299775627634188554521962299439769637481144575439974189432586552616367674252616813434566945529973632382796186768321679386957144627755857655533455734882576213865561267935699956449937296937323881137942512417962967896592253754776571722174191516296148285759257994387627937298839636775272217118659612426335318394883519942862839829251196839878277759845142524418545654538425555449335838281823677164519663211855187583311695854762244311642636337997258529295694819369324698324244989832952733124362314875937344842947242517848486627224726661166263996459135294867578262131236955344199215724332292228421464371717236358841485895126151228856248862697591868351772689932838643521781663648786864254266562635189279436729517316633359928382782711656447421451214741955773274344631275938983324899886466873239884212826646868448656315194436527939312968556423478191513266729742765174951592868861243451943228584992317679785874119354461882632353713461668357661625274262547782965432787513591552381616963854179724884665137415733814713221557722119598331962456739411843889772882854886994442235286563972859949445733555188213842581787262387222984568978981375653753689717752841496315314434898485753654621127168828649973364495882456931133758569434554712443942118991916494573537282782937344465385597448795971719187382315874592272818987796786695643886573925342653453243711493166464211425279346882197597859165833544818345461168491262957876588844426449288225364471788597166279833497418352198637938778515445327767539584684659442442324751292271845884572158113548869564514731945525884299131596393342792384489164763285329568227644933281821146443674395273216293596735138135978565197814335954325998622657154129748522157854486998179435159583667532967644312923729785283351829694911666196511875963514749953834325383225165245662912597492987438187418817344719121463432822575484326298243533546793147239679217741389496749395995498231491311397455596261212721272325454416756481262799821314652774331764358299215487481642196495727114461373423263924219311251654455924162313822435955918145392767451787137642976794584328149345273373918872281169411162168312932351762671918916277373412533735173259538728642358298561624818616843928982868214326372453966858735256356453383815644872299985779327842518956357913482722729499441336417412358959418691794935899224176728143959193953242847346287887479385611822138563848673421391168289762953477244738517952371418327483619149886459332328458619551282743958156692746968825985831278665153867549823422436824639878735432619684566129265868422618593236429587945747785281155427588794665516439896796237545296156846394167611712571494269679416193945662444624892133578758828459765422585848427653892988963137225757895511445399811229326542453838838681655486389491525478536828622773767497345285558995141652715195393232886616172993799784157768218533842794523833193983527495346188694764315688821332683654187928177475815686679932213687197189816754264943713627938328248959851738254769339584518559474498416679716382314484754699638279332929882633755396971439515544479763663146312861469424685339698766154378919327363337715439521619217664577699455999689335318669681379926616543333222446197955916363457137981336779914543548952519146779788831618691265521537817924611582384654635852423688499281742199247624188575737387126255332631757519139286789639464288914176344926849861668722759198288587424747434531628699187126835994837321376751912794994625399712397358678464487856268631351552784438588425985662518481625891961595465417195684834685658437654826452824726484769421817742618321857368641398877148142736298121137854629969877573677779599494426291785683569447627596567698161681959447986842724675342323231229537691581477578147783135451782644694874913851986766169534595958541227548826114799328591279667541775738633444736988737855144787184669644971573364169146569861879557631951197536152968815721939896859874996871586612514298293212189196687394345837297827736977297397287817563976698479374874714566274965812231919769688375777124861378852286577674563482179193481719817155695665131588726826486756757452244819333373465256914572247215541933176535862316197756883794479764171844322572382958869262719698215312844181341767744762854933853586679981235521394883997391576126684814949691823592711631987712579183577666759921321413693686743952222179666788829151642991576181433839728696498616869189368989232536638589458211729947185194129482176145989192395389387899522469767482199392631281319392264522529577887139492439783814151612883753761563414767958349766937438834119278731419335259148963896781393339415547679217332127419277316759982457226257289522472322162848847215937664375236466797934321225235639516935477336116821542584298983853666235978671583539999341438726113835453419579954156911164237738343797231498486893425722345949163352377317176977248713836552558893321174983799413413626571737539174391691969123485756596768543763383374662573932718479958922488728976634794327699456441365794797616269649963732697434789361831611339414513895174929327445531712136977641829549134165199762853258177852135388222527149127523949957752157577628872877919753968965831357217978975175175242548454848194816516593131547373428254861779181951512147383239574422798868796993374579421834171443613621411312731491352335754998271644715157531682629752449848668955425153897166528425859745833647282897297115768729315581963359167368288112789662512352357895811759699691778836917453519519911387266228225319922666938989171121146871793425619895687797717739845743814355938837628699369365261935238585378382243224253398847133565344863812958571118467564276442995574186492561572528565894648857437935695744822386344744317225858863622296799948564268592513129196478619488683561976936278619511248229188148515624328156838988325158257283346937372288982782816332279117644438265515694792284919456377353886724375736226664267294742688877749286881535381719621215574463157968766138568851713745592131435353149762729624797291741243478815432597992963354263357563113113656927617995351779335294516726293985976977533721855564947711642943661451295697874351964646791917263531562231811346543128997318236598745889971224999432323164188757724493322445944286431837355129124564725851466176838923868692894252743249475193686791987166348863938463412832419372371277134919514452812197237475614844756269332898178571225263645339616543668877776826868376651173365849417414194918684443321358876483545285827318168532975111189947284632425446265939437958958275183578932467114727752747564592112551643712524116782258126595825293359849223624224532355225899628876952273455178624779511193255354851167635352216615768787134859456554439864387169738536562866892649183179699327291955893288888374283713864726765972482612621441169653842433111791958342513877976144447583985287272116586875783496759731228749466889441247818178946138251226184765921954935942958562498621238836347662157863268127476338673676239985313188436441117751819177929911762263225882892699899119921213298317742339542621512734835958487349224358593784937231525139868822956381249637133948992535733717232761716988822427226391984567299487669578661734648597627175994253922182241533898751612338849567978489594557936822984118223481188226268543548223531164917445573327236912475489653952362938575136962775942413697285312636414939827225712172341371724187739352436277861277493633924433338253428246252279232716911443997713167181727264378452263228717491937647939746366423661172265935249933936923771533992121347952676598183977274347848943987893162631749149758493376493684594912285371484372232661321781141643874331662128462721842132448612911364622724689154167463637599811268529994672676914873445315315521385514862242852568895337859532873333931254359795775319216189588943436553899969648482395933174967411375576473548477697329528847877896674231586446338259432337925895554197147912666471425748559142718418145847393861222996771997197931145542284599532933739928757671976443762133196488673875942638938782169474694354342639326511595466783732294742395759872644795534113695716312431916215579849325736285878638874896617464671592196815585457557966659588945227648321798446293818786944751575258983172228957457536153537897313431857381196862726631895885536991288219329126229772174652127946956167911114855855252627132725643348262575159644159543546719595749877924732727354537772652523386464288554627472725595852133652229638693967724228897385419766117199152459442155847865538416347146352428473778383969713775498394942384241521478797987465124156541871225589758648369325728453329418659291495369315247631796927871745986945664594221195267982972965476183859221864174613511619716575494671794771297758132282384161621279448748777755757887348645998935272177174148736626549434125841669987694329112866749884215929315394986519441838423513844647688218898479434629571752166632481231213969923586436591927582921955288584618166831591595543736952569341922759632782963417793389648684715179265633921283173632587576866396522176581818227471541288966726489798566546679419683623622394143944712468346296275448939281787213514942787317225881695813174895265772859693646326416898426817345133427619884717468279922894757373626576775177834641765945332369642311181717599275451966629857731154282463134264711917689566349546877945548184487589547624269316294827384394942712676639276237748343291752246618896672698523419334775759984856858546817878219165632236335632518583165852995191564716531294677427753441659262427127781913669332229463641877922834623934293446758626211388292384767161692835733796337377386547234859211426289671315243872527259745987942673741981596886259975159668664742945135115913521539147223979655779374714594978932938649969127694742244616393195511396423437128593918589229641414444115641374255667528659516857223743599736164739591467548336169363813787613988967324178813732687268458219711528341849752245413121185938191362186372378623175579818321442468698438577448965425427478612851819743512576463216668316476671854827391549116328995158685262557851883158968523632439218637114999397595591675937363394369989471499279631987492431671216237365517546621942691136224264198724576453946252312447251666297188748695911626858312958217736455531619311484272124539449144919574545795954473595959814128748886352941638265545252265869653641487582855674347182321716683146185165342922557256698891479783694339866167213947729798866764326648845463203628483363371966429986783538748999158317746853784984783937891723749772777472673361762256868139524524981828115634629146622437688362871955987743325221814377958786293589917893125759932472267267986337449238769255459697734451451193947873640885333582487842188191696675932941765935473177577697886445141354533956413929969642439285728146411728588771998253317448849943715877625525734641292158942855425824778559925592613927813929752445843887112651742245928531525862375664564631725241864717759538665142618273374911196586464616484999171191341763773641289542411912938241376573852318546523875876288315563419716238985757366874683743292734825758858356373872361736275341732527515432271688734998645379474848788443561649643244138667726329188832489766631157759737531452661475725982676892688764636792851119813493772464743612976866261271471633212461834317537113829969296482634171176736799432714929942873965674613296177929221713928138645394966396193726859121425457234873461111842336921235488925967375624845228551264497947749557275956361774722859399214889934973469315574256454594535125331837496336196523458839413916451666495259969632298282132545391466227752659733945763277343873141852647134117521127536482982285493688513834687918873441632761532982153465746638428973258336599719917244948592464352776731472553775419715667933359558131498566733373554932624159396138467216919267734227511846967692531454154292864598452545343223665633959671767248176449885436684457665832811744674218328952629367254656838913689913964869244282819464177889441662879575492139539478978887824972388536297391364591691688393813363115935756913574656826977488616926648336948498154657545285276889455578392332168654491141667466423861829145453348987214269936761947131265812256966978325527396313237253855373199989841315346197339177662429638829995156712313266294153314476551452276168299748457964315654512778887584436519665563213991341537527398752334283869479869825961843674641764414699739726828627721219763862214764968952644627512722728315447825421416882463444518611733496191652795515762115658649834263993158441293769889646533626155474871945254423331497361634432178677772286847291442287461124233283979299714743788117864168611931428431534998497599315812672896238384348951799642582395673184796727471366367424795924613121483184924141888631213626277788748176668172481366588869589259254173769768226452129896167214222848137114827782984996795625159466569292796474885584286859477513151362632471861329958543699353587634889356635688893678131367535221831776631129191577481518474996218375159273373333191364212523344383187925545179399338868133468986487212886585515449236358516525456289577246998655697425395246814523692616425383763797438145925499778952723543849339964979573234292118499956359275393681769184525826788773399537968349525625987561338195657699527462315198597264396238986666829676938638589395637469551219923871483555315255939676831164955344513951513938731799392619315151411918278592366568597971913418472764583634771628498488578732878266537192578753692661419513883638594293442427989265418488969252291643997131931967431278386221563838137161286274227266384126282696592311548388792447987692213692572694877925796861878647971261317688977869468956234119927943285144262859716723668268271177627254569876148841226945153383246952338525242137349955651111335223375429143466282319887197143856114646572117848371379298235411131687354675662518657778811353375646483951718881866745625841499984744341512512699365738335575583187713756217377334918854411989427489765578237271872669113422583321318168191828197574596741188342683681481594523563813718918764943593544813275723925426218375798941316898436897329851693531992987248829654566218496765119329541464467455193644683579972936171228565423942326686234353575185398266839143577366972538776516257185898892362999816252951714438357846847386417388296322494958884769575594167885937579648943843529678247754464256996171194418852941874652227554466166375936923126294871914989437254714596199632243743944663727445835285195177424988414869342977681232731459321639673379593811871914177324378651627876957348527639957982538484467477162727788754778689144873442471199491199286555433548946472731851792921138815468922815675747733124425441531297381663449814818319853419682693542519844757457278455916876158412783769364928768895388275791644932531459951946726557484965249864217353269564466224853462917184535362798674311134528967187888461918178265788722463271911989728149866985756557686234254344518332421311778353114629264629283135477597577322824518625998226429986636695556861311283813727568566341193548454476785385759415574217527794638298178797493345893235277958534663462244894339149682291115861229777223733266289347459561366511691422694933561685653621667539689623814596775745521774862715665857151499367743317585181372961547572532567464815585286546844811767911178936527295925762447758824737954857431351964742878675677342947644517534839425615682271195391177527491995837621181328338169467138891181894857167318142169398932131251449745661492497836858671993338464361826177349323811667689223279895219718763785197156145966293315927929996376975793427825657117719422441261869648873774332265937872315532649595615872527943436433555931384365125533787471945578936559571236759212799549843313497373243467253193363549645995537354798237142471839475342161845863262397214441654884548646941428766226846482556257511596283255334845458297675383255235155489213528175295264814132865579121933414522153771372786883649544769339674192588628918527772945523645635256425488289151857244825281965413144815643649845771163893198839166546113587563263379779988163992877691948817355674641751769379486255442444178736212277555575633277913146773558469517564331786113123359226771519589257579878472994558469149399349475453439299612966725928879126184628154395556644446869947959579862986328883769115612817593673668776611411977819492772554931398186868999989892953231477991122142637728849938254468638338532766859724617593637295968121195282886861421293658567186819918538827523756197363341341832942914897561946748586939354459555866347325431314175777995331495982748582224367994461471915977765161239353989678147415697224113641853718198268382322984727428813981581523361288543731425288969571548783928159133418561278176946289278573591413946712928927632462682559111361665238529624499758827362285222597332175247898964775414843566635567667291171278546397691158832379365917345552435957837964146486425238874422754572266272576427278783791134392958395915152926634624294428871965116797235646321813424766866882682363297862514714358756652242591958599388658232758553238574936254223241925147224169593672267882295432654157198427667146365963484849114421349283162776624241679385286749883114419718492916185213753659537169523683744245775296573757813641613993567974662111771378168525685174433442791111497525341423183611255511811921952724471432832213539291311392529712451493898329664886816166529421755826496247396996588225968919196688249954916596156987614726836516539745138888415126188671265745489664487267238753563421658133894852319238242247415646924856137645786891715131781457969545479234824614886582672726635689338462174457947697955158914585637576873421115785513217339698162132818251573962442675599589597929112946286483856233685663724435538743363134418242633188672925781554981523855789152383243656145119511753238929135265711266791232294571826818823559942157938142482838133724795161265392285112459654669931312137346975216647984148515439772885838427261725723137911675663943555397313417872486498667143339584334986537536874546492317661631166684358214884457127447113498614262827739121586487242855414376893174169293351821835243874333912442168187444625721344722166479843249271914677469425789225985869214333345814671832411542141748659214458948337311663627143326474594862657781534793154989523251732318575463538817135733876294496839898445918721643125624546176661549415196187252675467113711398575435246765792161836739192342281654379976668966148722843967378453813929875683389453736153983721321522692489831867143947355737772734223553746942677972628482358554887462958544712538881758186134633498886849331495514798628524818178258754877248711489472325896733761555945871752789956378851745311567954652758849844573587773294549356824988993879256596493715361416389791691897824686525116544776496598659659653144885418274854416365449317482716197859967363933569994856786989718685692451843299382896477385265256726172177487536817674395922758432239558317269963721379894271134348414257175381553513712338451996839477174595852133514758796195891847566146523748398884965584174159926549393887647628224784412918939776916396379944187456118219934292825646564589187855656598691133424199758327537234912771562687121439426348213237541918284562276321574211242456231244252717135677935367474719444478994166172769574319366639664234123651561638615247286159937453976432579765745561319814916963251895263151535391432534835744169161776994178798853116511315613749728641967139837249923144794171264237355359443388379616987616823267183539574114152334832815587993734287156778184427832313773672265595412192291765579923491679188767217637869147627619841218339295827893772686667447554566699539223293673861429374129797359322464695865171414544978167895749275545344771934487997713715212128894321799712151143943514235368448193164155489726932213827574429428756164612875678828393161614758645252832142791895944371533221974421596929492483977526891413691255534126378446956821599659912937479193921784678461533491681716475595888866555593866327378678217687378477142893298933751527659641697437361643972976362545423616665528254541737256893268999289167729866529515352853499282432657439515268419166472732942397452284347873936952591983199538266695131941333248629618948293139692424727763186249233336168463653716477354664477412634562338885175915641328657698772437671651388971555586564345243397374552672698746416264828334585325899259338425958594976911689233612759783726542314813636714926299694795286832363646218712395945227796425198526713326416546152774574315847881672815475328844323692223928639787179546961875599788993515469357967913898917657657658299846884619512714595382247134954839739191363433115553989694989694767788736979482956457436857936694583666376426634571413129913685244622358113875343375717919388994366623544953478828498321342334873646219525154865797838174528898184694857573161651555564216218126496193869378454698477911632635297196313559316878936636719174514215168533584464366851642741412935533376854413831637921196457652396646241782986259941972627582724371914385694221127434627466751287281838381723756688343191976915835837957929425914149342459151755367275279213833437461896723191748756275126491744413782586115388256893424366453915293653274814732342874522386578998585893415871124424966396874975743525985484518149566388895494998542239998568375343262262713422267612692679716569878295397839276948421717787353533574314118938822766757627673148495838439544326784389253839344376178833989432293853969373416844563576176939471685172129362857424991729445573751369762817295958359621685134512769756238958666411374652357837915911726611788349576852179874877577678242439554523419748846343993979825279437978441314198842264651853679533223166219741834369657743292375696124957851134452617692833162553454161765869435627689963489564721427486293238819677586925862444595544173587378557535127716952332777315856715879622436397114349736488186867657539994823536289155916845432486162271553128768883676371725974772922166571548457714542515193673194293159236161952315666488656255796914246863858191867517393131729622165742238168247119868384565449855449764582536239235385833497573126312883145988824562955316154387218526723311393748145796393752664526487641869156262731381876942616276231326552171466524794498872598233275129348485936515966764125941287882126974688442249136447253493182396113684728854159696531171411552274633116112717698244353585869397783283925286148272739177685815793913415945872619182912982582962475726433112392492522813952469616497241473795954198518916153935864511767148535265937131665179568238415339384833547352331937216138182824955657114768993126936652682964471946848525546847561345634822469575382235879485251485277771829188716941451398134264873751852781663459715746858385895262277657833489361167644595174719957814628157313318365934454737932825276113933285312727462735647831559171673212665146795999454447582521599921477883752261116752423764836837165765953488722488729197799375191879594853834383166365255484824293154759162683228867382923634246451128144415727595453676139573149343147711374256692172775852455591815718936464123532612326653393416186992847279644727148826256618528138414222377778474386823683536369311744172761611268871362616553785759368555838856954989372939499987125989783777465884921445386376287718797276115613217461898758378361159969692153666592614671437565579786655172649212684254317353732711686395751892979695147765168368347197664744861133557536154871936945832397616912286839464164166773565686678269389975141767175973342991679696655554271357286775328421698561445812539576484974796669642729755236411657226824315163357521685131681748689373823639987838819324613699568687989355443348248473153422398458267384858484438387793155516362478339736767222243924348981637966928882769491817122567485468357958769138387661374631489245273961966981829776925619967872691117135844947844648429327125576519524918693316982924255887437318452862634176794998615493358188135232686993592223174713169168183697766578157571798171697515543995793543548387668697757639384895374848194845793665359234264764393996916499191457184037665142483713693464563631531853529345476976256682337682845921394237987576221918133122417992231765754434967257279594964864198396164626945852592773189477998857474135748436575655953821722528385888673417265952548851124576436914762232871575642728843492935525214337734983777251955384518282693357243562131767862513185994475912828294598695393744952573211691115826476557986571977354666958358761499257865614822678264861788884146163762435748196925513894692396234523877371291184766146435787619152361197237467736452215984754971317338364912797342583374871268512447464876966822189629298337397444212719336119228499511466186952463553585386331182363691429126473738298939873814959411554678325718831743933433721884931628443945921915597749334322837988144337842842614389433886961961984329324439881432474855771789879233155619619952119726285563643685929683863761963165996643238598911298676942251588378843167238149361327944468437554361898511445563527211549414462997976957184732183714171244679772491195126699899292799824293463734863567226228249332513154383886262739544366212155298793454652279653729257169495835927455749167345726832659691316891738432461414177669947226558359443487645896495283418131897735981229215785435964596428611493192134376764318924565217389342841976593298741753412242862715929216188529413718251365663766377321121173936597544862328895455296518647161633516985436228973623265321128311861779213156164425842685917769846235376873479942557816317275289195532411778664949721663582131232687921917766269361339778993226496399489368915144496395387639468927178116929633164893644396454376374316938812439721295737493149687327812993356341669144793117986819821142666313368475877477386299184327475396555692391168999618739361997559397878217334435317471316538593734434254287742282822965747516982344769399273483895914479251148293861911857498778488936871997916384575781542511369464953362263713282862115358515643369515734216645131343181162727943826689232896322567866974367951564233367547378425234123468286533977494277197242884387756864538726788115127954142681665453726691298299623518844123372927312163193922195556669174422515457564866377719256825142595846614489997527487535228652121727611948159894765618152846169342192198233334791262976172998232662193837361731966175983113127314615217843837934762352785288939599919716298912517634124535458329449433943166216182583238685549473645132657271818367893864437395771383541488498326398785149192761721367335275236177947672691977948187722352984893687466728835732859831978296786966822526498293379465774594264953847128879819459495895354782417683316216296352294873439921152942594115846562912591854147255568627139624382614853248772588935126821814455825221737794262177788663765429923664768441857275253921419873865353729883869717225746979886494128423392819881735228938929778183224476587587852375498482359287422162639517585834464332459489353758844926884379745369535666721188174786376814797536598976558878687956894486166921582679356354224932511179798592751939957883496829292212492441628821836746178671789139391445528513516489119287256368499554997869121982112123748566518553175872116424535957243281863831247655857488162578482632849233249934632592498745596971465679923818481541799775447364321979862475415561761859495342693823119366999677744929172698989571712939749618412996133495314263553658845917767269772343964512857444448841637653523976275837933978333246431186651857784578272461524758581698476481269718625183254542599571611279487587362163387952313363646683523393239636874892332859134624178627959924522231354731656347656417315397872214562134299944721362394146945166713825357443935183444159844471143347184931254674238635621951274599428811857244857613366461619279223914312155431422647216568486539831553658322363429469318379832834192486318644217174327245359563175233186142663482123759584451969713133649897366489985833391528581914367268127675666379821862622713151989191978757386467646839123347656667775749791556322236238482167835695191389345178511126956383366837357496649358298333147775192616453393178113225269473452972344299451868788322941918345555888321565573462424629711745511111162411189426689262253238818139247698696741528534669885897939165724694479431574131341953745642245795155127386692857242635222555126554356984765872616772514858451336653263849638819418658364119454229766942126296166254171493568972167864185614539345754113568478814592121681236461155475933883863223634614948587792259954553738173537929614573252597414158321457693324577826154513463777722867729371729633348619146436417716797637621894129891837782522324884848721119613624836715958419129625597729973465867749467229421583164765955393719696842786749181586283681412794684567847431438519327817141242621969855591864636878888585798971289375856834526196974153655642781621335937488327137532916473863957189713463514527282583333729144965835493663325953234667851986472187528715337754366744652859527927872773295192557444199285256161149216458281465398929949675591597521386424459212213427416155227189129682359462693846776674215136149238353491671186783442975588313327172524683891489855352721553985724176636238367472898161345664355684577282218875266193138815432991647378682488124735257249993124479329277327149732569285495616363494331155882874223264614396823165798826324492144579961382294712473275727489585163358519728411551888661521681296622474577418563762549794752991655924362122299768143112419818985486125247666535348871242224243793616239917751217214339662985477947552662469583493756712132892586333692867727959354145578658838674234329323931967584141218211169483136357751168717143453286483453675522397595698612869477948476663415666536917779276124847687375716384249951737755378852843789362211544549715472128236613871939143296769933492734866539719112245677353448891195672524417637953519454929732131527762235117715355393886188214567553688189169517339749451592167712381229327371224198345316542423873185238256299629645376921284661971624532351333228956641878467756837481615858399286163141218975758516688376435563289725945752339119988748373151389562957735977179167161121425674622148721319237266272386549997682985886139153881427847793613484782362175382782734541419773331638955282812911286759793982217281387826299429757335516994236257297988821784958913473975527454266884968956554446794324977832447956644459114661353874283875319237981438352917253443764971794727625971827238876419998327699983856643657361477239229274933844341995382349397112946263577183427519367782713634758496874672244826842822213468845875584142357668545628838497471981658255382367214897793742592789874882549787529119899275344725624395452559222434324451814376167488946181233466829457567226923853977697721279161118974816517915494373164482389512312713475377947465894332671834166237685344147796576821288573998534413846342931791313634573782867397782635858228278543811111487227127371987899846881283223582225136176364944857748959393641982516413159556151834842871354354795368864838646748335432658313775332129493566151215649915847445988399362539466476153156843676385326444826753629235563268447266799366848515987912779225179897688634328371868782979123629722799663317166364443552666937121391379793421957411885342856868199447546771997668956412897696697552415394496163179841122191752437799439188786923997911319597743643615723594427737637681849736393573247728359942797676879153794253587471295122581278968275665992361317529141292548547356814624779829764678729983136983786149627898195464467475691581159684846528548286732569358599696886361135219239794279324276366854792937448571752289322751479284755258924782988297339624784694288715798287376487242194764353694764346274214942887117516133692978624362894281671492262975236436429166547185175426553849382226988994549358988629386763621135834843329566564447596264645961455169512557115769611459834422789296266322955543714771654226484615222856273948211717893224975645277674423617458738538742442927634412956337194178821925171264939689917642562861674765483612126997997853111416573861419983394184796791293344113699759661899539232721131476717368233499512464696869973233133759773125387655925891711323535122199523351917738239339554938532861835352673357461416681276942237531168445792631983561881415538493432465256449649888267337972724388435952516769971718662651945376211825398866173376242597821369181283913721321848574824627873883212624185249425393677359966357887948559383237758248164279997797682666796318993937745372574463244411289812634247143579949385718261272374766283896274468518288216344694161978289828576427338451117776183372229314451923958814216896534964498548976978495315628418173778337282172889831351833875613972994923432541725751154534124533733456882945219714121776177652246571379696226219721188628383727366414673227157932351322262633562433183424342365489423759923471713324575229347916241546457896979593862476533323247213968957576728295454336568794626933721779362284849362829989672265739897855274571697111121277623398391296725382351264485425277738758871462813138376716558998781868647895986411448339877978966345138118538179213147254863669583197128973189933458175772167926547349369668873338445944141744617564599477477731784288684989361926587457496192261818898289215439278244885715123124224342275937855669279761473786328945374877872461589586524924665762218527415862812189734335812699713686446225538936828563956445518196753665149133646783211764527446222571994296481358692878331285898257276588457485564754598716416223849721866536394861439333865717914287573357897376521574959542463912751176185935577644251427664966361481388974641317843284243751486455595683957319914254869245475141829371777429613259546673122648839877156127378516579436849134926826752663412454131266863875588491976154584952374692218428266197396922579286324996346489326127858761841952615325858788839644452528794829272623137198972245513756736137247421633564352678421618373115932866941327753242285346396697429518315456133567675432161823764735767493127673563295332615884286984636158935272493946398189431328793327123849291525365273416459238753785971981262781517849695729715175572583718276238134314787688386165243623453387293826216194953751294658895424365646279782196682821575387929457133949849961839931281949632798492988882118283318626649815994965456267567518958831426696118715549386154915832715966636566359736956761254846136535497246893966782367614981624486937944743162639987857356338897582316872188263362146873528517485536313723759187392111675438186862422985583694445875943777517494557978727988452839453823773522187884758476213616671153331614123894488255177358936343698858572864423467976932145668949935883281625861689492598364378384992422676265445485865683332151659791269797232792499879312439695896134935759142593491533788779452265767454489539788143512399567793261218666849927142384746892562899133829593686481742215894252654667848919361228224335136572836384981182939942184538243811383923534652757671171454587878119523865343617697616773442249242195392148338381974873216359366677299516368488516885396931176945685838464233175884514128456262732515364886326826276711667484778952698288121634464144321371651566856686591773219545286526793861655416185364687753572435924211387138657485773741121455257799128721816545143617832977614473385269349124749129133232814552882527564777374277411635936481781945912381337647588663186846924211612752194881848697827612426147239336636144127179182764216742655599262167689698598994317281445117953471449392371263823533599329136374637658716925228764123974279829282168859753294163494914521524433651546623854453723433787938492877924797393741944476744448391687682272912477592838635961111199169287577626485788853469783992228248197872741329316662831353566581592399586527679357751115554222473594743327316233928348986329666948535156776522846969871615693416569966766627711598596878357897553662448199792142813681545227994579824723922348738999246778589166141442955388154253268767736842558713127677793129557544339923489253456434193525472225848769299444898544864226885136713691749683185148537162879394275736821981519123288126324473822585286487567671912923847205786237668517275132253546129869351274252935862375729265779955913942577979576615496535113319932346424423589352813766399729745961733367635562953341862856129737832369123589984239538644247431114342264535435169322195442274586131378822384911834144898928368962321195556957353788468462329448769892446953881178235264325358337246471277556585617226579327242885742961736317767612251294827927512897973823611562818148442446217317336729999378462365232667287931883657676894949178711867687591591965733314898127899115185936196323885347736731432442161665586117318942716579642877215563212844665688751431684984934572885288566127192466524125617276457196242166796143687318772799567378182581251184544377367469625464275645963961525244891666729286815382878276258965474459323361154882982711456544971546778395632919411511877421848213712744497617741724191765161272672757297877844247569548244274341725536245149756423698415833286557122837462638291659581994234989912296255349258426386476928529419741656192237171821578182243194379456286419338641687526732262781746467227453316577548333578659745693325259693342988924361455522911332978248485895687246373147267482788632663162651676425638365935216369738944239486921513541954794432595391733963787737381518878543892534628134635319357699419373563927592326779422456318358296764957836251159992136859676725683118912657963882184991861442123325326514399597818427596652174517938892233193995846827674812372196276311733233637511478871219519228178462884277129169266486468573419266356864895893742582357297539756592281561353747917142874757724464773931175452144967467742714379749234442996329728755458642278463498844263815989877342238445411642445851354852942685119864316699765561898393796885588577119682889436647569768667326385285475563528382951956933966714235892359822652169354276664457783472827898285412359876555181769138321223333995241129994523722846767991444845461683784258629993682582647232777858336943734936385665929742941826678575767469111767462455749153621589268916236495363427294118691961887879512154772944966488257444554442384619299495821459367232888322672142362494875242361114484228585699147577166891938958587922799452385133941549844668738723822959317831327594587265968132435753684487722672941757473217643137496934798165271346216546593736776571263969619736656239892475952611829248318383861485695853359632725849679699997346897373819973466873839991121856655615117136565452657849871157645495938851516951147722721938992534248134195992237928411433534699325241571282614328369524189458512146315353533287925177596533516732553987361871563192951726378151398529575772841371468761527334356421367744258485644422664688144995934928455493287738997578484994598191955526135719821777538237699411626487183785897176842866745788962513534912511319124391274765662844316616857298232881891569257351884554262192235323622671797543634288626856281632294683854611185415589375285278617367653335354126685524235752723542228763397928587351893481864339452548771664742689779219396848885259329517973342511652673279267795937197797141493568827467383273787697578493565131134962712959541429278329585911223822185311454426456489459251292773874434461113968716751788717276786138485587916776563852854764433145215854656454132537922397953288818494171628241493316447363874666515115288213465885542397875463913715246186524995552911711447747311957655496128596786958194981713937784456158917596393424822815117197542477287249998433814317729632396535474217329262665398983867996762318642673712278829719916635534655731828482621613773696358792288854967917179261431899546526654752177769599725879181155818796382488486366459858167485875946575846876493167253172911429214874357134796923849468669793723421767671141952447594359452735266455222245441896668993161354972827431575311523379188697743342456381468111283412321472366783951712867861298662713963282189617689795674996872974579921149191978957647338816233593786891929927934997621523337816175656958162167566449583946726646233129836355991745626932733699232536431356756123716621794175298463926154658452833696768295746782916834228276462833511343836696126792343163998114356411684356977859973411621723268728188435243941169523684885294296296352878383588540731211832541162787186845295262464695719853261459368954483222557128519614931168286213561175241254126987619817638448726134569584218827777951645782774376833813543444324112397767854412196599753318931351472469155525847787684114917262522668666337121718489191423461813998857489192194253165426864945434322273174413828236688476889625358485885335847852533599288463989957746281775653116475396433644561245963151527929557317262448985128714139313397275915824187978592575298248668486898683221921989268778524689741553411625848838154242223574767922275558942747874387699958555558885363486662348987747864812688467225463231477375262947531988755787234568818557173387242333231998822289371138755394221475887897781132151373261893317564955765763987322379887996427264781289875476197535635354998936595544731489911966629154753567417861456784817993884792388754594282547117691421891582629695946686831754726779989941212373197757359635939798797922934163464439187342864944146737143758126772879535734429823627442628649519696768342885888273116391286439381187233523312248642393531286116145958339652977132573845174686329717761726245959398673491961595797774777582278237386746133214814673269841269192723596299632112681227232459378561722563625857246367391637565431623971343757562329358531589942336824849244211565522595645769994796183128662938499651134511622981811315391485435589615975248567668811431678243894154673187245821811266444577168474931351977679882929556124139969554799818765855167224856261478526815986873568184818414332481342852453931516517917977613943189494831155335278889787769964564594188216868415384484361378834376816749325265916544291448233873653346277916426372714957992271566789528531373123326811692149288976141994324855177889961275383212126338762347867655862891452683884627515631639324792183228496617378241714767611271688811671531269393365963843883844735924366395524973471955244751125726245897569168625713256831845628235837593631583154599272588249174789668931398536285124594311439818996889131984514236675127181183182763866186557179659454272211611897315815561487654819229669932132964575923182958339573638523926134573295596611464331685769151884554763515188436779951756672952526923465984738628524818565862316897345154556519483963949745176758615122487269297416912975513379443164334279182952573863434884829127761377388475852448614292795936725752472349927263146485766351143517777921225143667235893729834117117711143569837769462746922542243125248587699487634927611755992515938119781948623125887275695847553455453649512833543351723527373749295758712814361815219453391576795281351653382392813751181459231779725981531669163347677635769836728448482779976232281966642625529553324691618431658767331525368424768439421273447536369631179221617643686624169122749925332255338282663554853965341353978495849758127362967376912337754683398364487145344281874928694182511568997832667976276678461168232587499393751578317265931258973344385235511579531349932379396831251996556725687642767284136728146436993874555348724635247749775431921429877533425999426211289732945287287132484885137759988873178596537449688298732696695673192971854589768789672734613373784984998549545514681166457874355753162248112675244342196784412898437741541931445981193971614723655529596888843642971269343724298742812492596752158467322815436431544983134739936775739831365991354844358741936835397599747267414889216181475359718751745761414112123651911637619576779247517819232598819874834794472417278172194566657736112712241514541541772138913878582683129199643999986422212792862239454563459942849682925426593848883542816721827177499833595189899245525229521227967152632131242276631472345457364392556978294432994263526154811532698286318762874599752668142424576417351246354723818376481544293854611627474765376395843188419715388461319698236957542152894865613569792762694482246543654343794351429627996637761517892437727154128392291856852235114276948856487237359667244677289627532528279292148936951329138219953216254265592614392553577591598939856384953424756912459421561583669329737268844566823985153191669783976793589257149447154373669839257829399534238484381648916892136738687531255184633797881592894589477351567188752231232283574253119836913824718834257567846253764979689174545348973831535453748146294213556213921495778515719533455988345286477749226369739915562961786324264158991647512633379485566327736263163326989274691549317149144879296629349477736913934859856443473246489426122712224719716551821364992236137221353936836774967913425637462276211694216194792684956612457585227488831441139491815778835883525286369435437598589958742342895334269195651591678773669925295857365497972934913189658769388774722462178574195393451247475364835273411359668311657892539375851571831886964887873654117935543882875975771459266652165968632133529238715863792486814392387691852767649425727885765295446115282588575438211918494925672372823284343796618811741342191341642163698991752562637681123267344751229338316452836597828266181575729743773541923575468595135192673769166613894474122963696117585163988862164711135324893615374189371487594876218853233786243742991939991571311287731221765339638953142229442581456477763316492486693834979248584143821364993362923436925961931535739167679915329672465173275321123242112992536414762379619364485992112234699259738975236362621422544967446351555443287715297438613311944792176633841844473126119539646248457911326693152364296151335148875696859512937165794331473187266756533793986824386948196626333227973343854447196613744695221763761987464729529412895284728825383672327822896958248958453454212462514597886482397385342617921187368817518456578529955216111238865847628665334386292915627641646333316374827367116517962648634567989828223249859799717994986354355258179485389452634443932866383938747795243491763228522819459943728619155685751383247547494699192854188558946365671354294854764179598565669327777123562149647157328365834955743776924351414248269928723219714273797422464918146268949353225835334976135537552267282416658454876593318871536744663726691648957697239916382877545737426681585464479599221527363848579347317176616665719772717914854171932751624293973872942962568978972367441761377754861186535452361799654752979946635665521156512774968334752858511377848976746116412357932346187446343259124756397754469693524467393648549136776643188168511858779153819122729586784619663869649674257171343421982663831137323281827535672123131599774997838468441293671884399448537946751897741771369567189943797494389468154252477423434338839581229267995429777441976512384563686713612265145998128969129485845516999418142663796785698857342124714677483869358227718884541842544222882289324268159239893819263677976324247883628831713314329898528149586366857632835268581782544479557496971844348864844813277546521551147153677476859252779655396441666671961827523467537692144871267927133227168525568349573963278992715248165826475499566873392321583228125739496238195773224656826451355958117722532222663149831566824438448143515739985321313682485721786882163735856689639999448132232941249544239187952273238242677771197962417516213643977892278978979798158712544128515317634541641533561443528821674424287562827293658623886997987332941716121933291172583172191133438429341336875884253481829845379133356319889689935396579574293136452115324294227866713681393617275695228768292817778168388742588248772849871961651656594499769884673167245353628685467826983963551856883528172143578489398797162258157391398524893643863644551987782621773734114669945232618897586679967432152619596342622593273959265118235686667481645925454658685227269721596246523934679936125658574765737673225541297123734419268666449128461236257869335788617763328539396539144852184773665334585451519153288696734412887512879436516722263944626278676539627882433397633838312259928663555553928440113628569685788846222868472228451713778759457243855244292425289372758826772427993649251525153981256259139282974467585648244764992536738757166433313966792289588862535432358284624822614853922819363927272393664277441845347658574866716156314951686981424281947446338133656261352149184714719765317412699316561665896486768737287121212455911389982639216392932956297432835255154217459178493688298251646153581233867187836417559365621446726739947946951812566484166212974669575579166247623274782592781369237974883737481938596677858284127915426819559664616274271929453156819699766743395242659944198333214165341935487891386573872735247764299314962772999647936228733418159273698785985261864697581753858177339127827533531191872147454451495317911756311631819146771138467189819187639782975979568871839648849149733813129648525594686572675779875355689843714466947826183571769295975858322889784485285465731673361966819221191738466212797165313512113345354348284917296914657918211657185749771461113723488188121486297783659688928211749559562839748618874855666686761637616918883943752259816486364349329911791216781226198857585941865175377397967398118896764369666166893522441289182174679327274181689933386327546755333385995615663777118941624281726364984446125493494219262812215731451985898357898439646758169663927928691758439572436223138126538552611818652528664516741842725589852152918173248512385482853524621135527455861942172531837482743866521375954148557732915954129326998245749176121883316891295439148153747874488589919788821565489516773751398269289361263211778828727983145181122247385728726721583593739237551675626287958831891341643767733893657285983967279296479777651939586495115434351393842739596719987529331783229449855137398899989961986265698843929452394293323228536144736629213279519142493835781525229783924233285499751254744796427627919532872333521548133532486359149985364726389563375551988713727637386677538475634488498579863738558346391138721281252198915579356491939245928357574674796456393243355571994848787277746583135451697347466772751589274934347774164898545422588858776378724624129721575218567645422271144637969232291842729473847264589153851163415589661721135953522536923149679221196478591287469514437661828931962529478689426498934799174888185346295366428987181572671169887523265911555563371548917914923776312713189546863149139833436823564947445419987592436529954647824427183824735786148791887542256897735118612372988177367114558137911733823253471278196817373398198384675191357676616318356785527646933552787667339971997676349196891166537494446335535314169169868976529381624479824576113131226214887918981627532198731954175827496498217271245545441646165757518358262811236771534591428895766691617829845434789459684493879748712614619374742699771221639523685865456573949411678622877738328725479929543695963746254138859953589714681161658155769174182186457529998914389394783883321448395957958972329548827417651695725231227225367523427367324414197641675698235188641386241694294968345917849669526757461742162679514226911297362936894988396664634276888899856941851469381159434941729831825632716752991917149564848721114867941847147349276233716511811519215411235882119642825795798849182543666274375441653124896611611185461291657394459872463143336534369599664313961867215539872435753813161622217224247989987223827431638921133177721419619642846878163954287696488449612587962561396684992863522566548796695752813781173371853912576565137514816284211741726338496943755438928659979365648482331827423178879965855113669518651965696214223218826637985858824932421254575817729392383197872486747165424135128977498629628787462461834337958756517599452239285524526251866834594264498544774437719526822517158494166119699144835118993363161113538332591436819532431657273285559573724767459593767143753291867725286665522584159875362682987782291188739887315483842392591488621828612692643383896926287457329493484664921358559454362237982823484749444488465391828142159464892378234563618259434367685622231651484841333349375631698173227582521927279696545138389419651398773167774736311815855796673935892198878463984386784283971363952284263218538159948466985932238666275597379286199167955548981766686135953293724739434298988984753487283694886378444855954763449898528979478928162657164531987267228117254368164321356711839547468382218845654118333896998155893942185979646268991593123239631927456863958877666928239764647951787393898777464357192268652567748577158147714131759278965412287256864967738153348568586229468376982379342368693761728433488526134584437664646812285958399343876527859835492313624248381346524497193198847961454979121144727367178598595513578167179194495234151232382732298217836845415149557782912395646759443946598232299277381533296164991225967819359269227481732547939962687371525752693634836199995912171139273658717383877596496996396538646933725654134793643454396858724537729386811389576113443221114666457377168118365886242764985353188937734756784383238494984738139134828484184533777816236838734848249189497151347921866648743227942142312918363386384251954366283519732855783212962699784233943414388584174427715275166578993346874843563924827436143611519153652146584996318941676138182218774999771471131126313118946289266678567595797121654267961892727696462242824726113448246448522491159273685259982338362228999341546485763471578923758173882925172632118478637549914723912215914177589347112875968561882222845363223247979479165914924238622368779116915242159873474819783112989221743359787664231813991334535648842289167845468541943185659226921438564461916953358777344575289222271836937644181968624361172916253446131726245534325943341534168613438612456292553268582857286348792563929741897324465871598435217473896961179123462948221373795455844563682794932257368386787552937613182261786821648669468313538581719227227198173261237967439571571795746448366784897523458426694793466192858626228989437399158448984515912866688597662382298155156636427625416556444663984119526298933615455193836215613116277918812193741542927858421741571272353582987251454442294367515853981451871596751486636974857635155383469541326656232148633528923754913256217965811914869421243738138366916894615695314267394677692658568479730212745383913582343437473211415636122549763222468631671914255639532988975498657431787719425119153243161722888644613515548241246483921293373446897359823849956724226337784931812539531145933716438273874576558734699793428818544563749328966952521513966847892449736767874491773825233117728964239736535197264677411724695514927892676485132528259321872453947657146697219551697848228474879566569259182969338913144972382447115349448666518422836355674949752277414589142914386142621225322769492741857169429334617952615871931217524221175139681698968577871914655189426142192272291957846256734263394217329559899886892618392828279793747895814914614976826311148319594385767168749168971693896848798347836562638556653613814498389423128694169135789972353824673815449299895719298495543127414787421462342944965996779284826527461427663987675187955973587331277331217735494235923632291935143997318272733357761934243458974475216235691157823846582827825454995737389594277584332536337775176569521469989937463715458428155934875241248364292495939984729412822335442369819141546754236176558681427776776883866431156673521588842811478259447219517194658638622893253978134854937837515477238631945263277673395381932688434486491928446225774593517978912371229444389833699962423432325472684637258161622648982224456815374656684422473647657761428938758145814246414889744643777592669684276622272783667343721592689858466947267555831767132392482666515199137782365663466517976143983494427397536312658432229743942413165987743384541583996893388759165774749997364542833722943139967635119231157411714197424737833698221353358922394724766158843394215352687619931433199626719259873628899689782145346438121156345696688566456851587239243268984664332499964659731465571817827284648971277655747915552555559277864771789765269162517985631659536925226483131236418138592778733345178619112237979892871159122477177247251684373473662986998436365189196155713243638837547373131639832668431857121995948897331413518874917185728138525596348582852852252253846748723374128278454769974321895462543782214331288764874295584243398798949362372458735176846561713794688544892138834541247885265657128862353688681946389198636392193912438726575672433434416947457868913196774534986422763487225193226635392966375218487945878598819492254543499821978663372132835194429194335246535414841355438858399498834367229971385619264252192342346795438426767459386914213637984853325277946881848558898454144429971517494983988844645779396769876126968458857854449838161658656558376232148125469572479435322969997633956968526475633868322737738611916515568327111388343526481372562445183945655894758129869917265698319525919692199192297398334716838793383573872793915866689282965146397864374663286662353581617424175771219876114973437676767621149727158957667376511298186957973944942767645665346475473299198313918415388157591158718327357389573645364268921356258173827755935288627163187412248965377144856566651377887729134853489315919588443681582265261756196258648616543111189217744849561286969153997231531672477852931148754859152164339396634441833848834349474872424375238794777374158492548947389936552532931871486346593516366559397559864252282825687161928664625382467814223336127123326493754512671673995559181915546286673945314662864611531751517325875488241699117667843838971712422881996188919667573966966137371678861482314481448766363267114263372613763222457534382598311849276559845179545317847986949326263139924753696347223942757791338742954348719454377563841539873778874427599455182739344398378766675246288353974278413944884661541984893831448766816223791287464452864448413598181925295316362818116443213453582893324967724896939584116474844924567864837239924893513262745269636322996939834325587994479916168623724619523176645466996216915177361942996423387945665477271779426623832684815799475145852958813776178437149732872685183377388875414347271255433593291541491288928575392547192463985959291338453291732295125382572187218262398748933262974422781219122968419315498615114665164197918437389449972963675143762371184138179924233358728544849976397611717632267512686432936835774457429412739491859415897683459997658622984153231391771742279361956139258853378397496789198957155877892897337268829588729815732229929491434179973834825826589733755887931357445959443947726988376954679924881687723336918698646364841843453612413638539382277923319313777131471763626757186898332382878812842137618485295897839989269369744176737878517319995293431487453959655554495258377819155493159646822376918725552553661329736712483749531315172247715757832423671947221253672896588354937291478785496623199371858994488328457446998562961911987816445398364919829687984194495195942663421123194275973393934464259528169261582912491831346713347588396315573993433547772464627666717461828337672147827253646515277114217261129243254872456116745556889725738963487176234966531198818981765672113812725141796126836954922798912412586191382986591486719279371534682513742931799757537577717959348418785899269167141189769555491341442841769987681889867834574721156231438356117127396998676369365291446371291113835455514339387797941589529829415862515941168851756826898781923619872587694711977789481259461843731292962554643312579816775169644874172426782135492573279975852238548671571615247427864153837953926186134315739784469775277964486186911552136225553551979985636466158324728449885462662571355893628559123876887624872231256955227384495775683367864188126711455275544234785341257756687571526346712455746263578373144182164989872126721458618555989489627237215338212279169817515665628362195751863981916218161836411367688264241561762374483465328474335251787764842261631868581357993439718415988217289467328465486832824964483525453599333492259834926422982333981341495954168154566329427862363427468974571617175697752757286427385292742814713382289555565137157796963465767118536693259684681482311749545265919879117275556814154239173829422592522441297788313928257538682144416559762559512124831693661884227992988146216428933113571878423222339466278943965385535632776987343598318222429247999483852462326787529451793647638686183342775554235183474667521691219754134671214942279656431681721898233589693216635681423513575754898176368589242733984456724221893611536484521913414878741163444625779531193296638935818237683375742624734245791526228331912339926217879426918279791636839173977517587731341188169143957866373954914798735134951886472189728214736296391835221432162489371294797638451443956328626766913255854718854819315157131619329846332892688389232948852935166263885986476397441734611834532258448167996648492674945349792837691518417384124283618433424817596748518539162682974716268542421387159233139599617299128283356374212224557699582492415324848698318533997877955297567119415576697442753661687116154765835692264299585874132765662168773333671911962768394569956462438774243254562858887256261798244212847164531926796621367437562814981927362454255127163828866257777769697855493994912514513121197996855862412631221664935548568269974563923195149498921467344373279857149641475536331496422869319284227374333986641689522721841889293223776166851911974358652642873225484321925247245892657943223554295548751475211712168882416672113867763812524615743822184641972351958459793276879254562248548784981835937344132166644151997785314318912757273391265862874555197647749127844194412181478845576241947148825454917215554551398814227932915551951883347912933924445131231798925296559449665156592225249532553975629763841458327442287151515815387475869926748784894539781583111748436548222213813358256414727924758413456868158594341973675366862624158647562324957267524969756221526611477838224842584291277981963735863546669275446765995884899273851435294113667453974752144371768893614247434378795161585824210292474891543162943779131714235466514213288797924312414687922657391641152241934387648398929275117181428532837477242263985925625455696469864611347653954665157784375834921493657413939388794674922727128179444377789621781349761133747865821451229411492725694927593479163297442474624716587919851128226568532861354854613424591624766635497875911487977511189464849594264852664894622664673622295467716181476768429518965458671316396817175943987157854698578598438931957644954969655316275225259274399365771467354976613327745863312241739768693223873424199877218644819715887218417859589569392375778651469373433311459438678898595583628777919563711773639612681248493591313469759927392464823856927266417775769964814962446831455492145912518726197523977563829368682115575548278142439485669697677887364121257961426364142922888669427148366272524159775997386465337333279997161677855464384921473397637539456625423878417198366786472244388853415812755474592161837971692517978469836365835164378975357698416452357295788425842861425476246183449359851882397776949687432952515431635626975945731781725849211775738511337924526887952457471749543315657352733513598846795892747288944991163644815981783384467298222712821474987697666194552284235426598667357227994515952383715366848896844855547129737868331877781773488766533434496114249247835215663461133377939669175921814346194541566125811986816637619963764239486127721719429272863861368972941744745718661881166565721511715998365135812289218976451531593983141566357488621621566531899428844911547495489551698461459681667158132971719686667414668839285823627746117368854717273368487261534438168187882263811439279186251526322441221467777943262193817882433879814249839853161269442459523193313629824799337376519777851481613287379772694451294391188228411749776644735381393732132174826821988665257985345517833159632345645421968886412965677973268594957422731528459667154174689642936991195458316282227534214268363275484841964513925899511849877215946459746127321991952935145865361825812513466566883298913481128119693965212889667179969228431333524731374654541459468593445671924417744192667935981941394963387758622343611496114231451969387974965389642913514246483481539459855413569872245559387857922269176616274151585962821797619828755417954351612397519771541655439983697255317447419377333688233441892626369135975822556847851115397478317219898581957651338662382939152793674554742596852837158252358548917685958129996489485232588453474434851763885543573298356224561194718877167541181591358262549578149248856739139282426454618556683717714487693712955591971928817177958418169441737418596811881629514555483449614554626426417681652118778932925372934595448336382713792625938565681259795549378561941125818677445651742425445481516829421491164522618759424853235126179319447991372268119425958462281244377198435542444617122269318642991929854518964527259467629494813116312754769224131386359219719223853129496638263382218159933254432856827712738176289294229454998486988681853659598629333288719849551518514179249321475786778664639791671191226461497265945724218377356675628555516233949543174813761639421366937642155221538119415669612759342227353177149972125871851927162285229628453541774253558873579817421585459916294521196273432523375436973183713177286923387542168734543872142452382884432497594698955532665193253453897237999658765428594396724378578393222279276919969422315643581533754284231942149294324198368524811232564671914934385987744895277523778358472795235856641931669421699737875954788264157143421352444637424811492328853668129247514986637331671725719277119325278567432284343525196125945189696772617955679853654477273911873461643647197282759316136636715254248722542262658589413967858376912784858376551411542169744693484654969789635785862267144793153621116317282653459885898271696267271993742138486375854983964871729711396639577136514222649327591482744499346378842375669682533694167627653491316654219189463833251923699238279844476516542836374667946252199295753513368564491769773381712744238579917884446534491951232627941111223991646219772867212563388588531732118752838935945184532383456651852846928722437258512942298863868244866859293211971367786685171825393117357769887826685463972983635957772651838723491169578997362977765242435399541867127816762961867692746586442549552254731258446226582449216453427732137463418149821254264922286152374322562568479496135757165772839471646995954923738223149628723652836755451763356191414587559136242819566844189819169727585619556936815681118319426699659141395819722289281242485945293128468171142579511755195689421635782598835974955323952419544837395565569167482216491561727122943792548465135565117175468399524195242318932471181819558487459751395547531968998991155985723899952695358446458467572283774366253335162137763599566886284719656892318523318581638427135537683362425566717875147981885637496844296754355933666454645228959735255952476892367925681123148213641235385295331245626728952962558773322951476799372856973192566345687983132623851966755986133756337336751243429537313123635833786531115248683556518111374868157819823456536782562463482969895775768923878468545971439555455835611533132869743233287133898583946318711198183527945771279251546187261462389742657236474488645354262327456622977722478949714451979122888642752535883977877525835947257214489652261759467428992517433263614799835213178122113474246465946317421154461282484734248114699429284598836864213615949952431585593162854551964455961265329678141447634398597942661786528675518745627167128145493482155925695768253178111226677826252766225614728956957271758552476753484147432546144983357333563257485122755192636154391326674819761582979678844661929342891211499457565633518177289243525667997154839595175884625558111688617325928977474184766221943234186117592428478877373887112636954577439591639439156655476731436794569648693666593467825691655535893966847334893439141893887633114332116861371616749128336282415857188977194375971875827548681388196814825375962141655598589628649251734352979483561922183946931156228876274114689694812128731745489467174597165124626821914988746784692164979493164947158459454943614931329288725112136984938545997481625765637359463152666711313162345721373298256781947621861179494995254776722499586469476713955365182659231479541389356857442991698874199156333354278165739231212229828756698954392499983197141262366241813927376616624136752791236773173377194866451155939432454343541997829496363378883926283716173284275225942271178373113586493912351863558898995954585863495787143228696586397825463958491981825148238978517518155562613622715249172162923895799478738192284737965472586967757894669798829323338986364173857739497367471434677578314834228194935764792766224191833546871882494992664749654983277743659659999329678172239548167852218494483535724522766721748554667728178532395657836429694568246818625779199665569134193641455256948717728694452464785342498224838712595374818376966523672583188261331779483322238872151529139858993291241784817926141215321297226566792861553246963374735966681566137444681824743962564963832277713547117122615812157574188298278745447461531113428488986836675751416163345468712841841646315192133762395961853957233598452951284653902598893228154333261475613391523762744377183637956914676928279447843461268554442163642354371237123468777643288414678924643886789155924691821762449443727317878783475957949347571626218858848636985781497531291582294919195869778368411283495565885398497215284231294232774229999549312234865588637242549173373329469693111752534451694831168682731711231318452928911313448597692663915256923326239269633575344533925541355688422458324861327762274739857537479517668947168966274859954619467629376269186914824228226888755618668297216998591823966565532322381231841653433527915671356578816149235283736397921798733493215119124762167887618678653212654165289558984665355444211642196514242297297664128752284259569232556786618396921997416854112944221812672733545534377275576972314615794188442825545362942731982345114625578759416954367543531986618173729615857464891864149358919838311261976614326412137262173275996345432225656418642361589927549364926241826569645881151953926855277113297963138537753847332248655375686383717859556831775881756214875535795673557252439148215146644196887357722556721824767383157478258115787155946321919867163922937861451467871735726692627842344329387523233515999588951866989614852516849492212181977263782945321773487548968168376194482896339597758633428545473284555955789752636621983739586917684399961855941812929495366278856588576582378388771942469979885743712462712549639823281411311875365693873958914816354484525624351913599116217521155614378959684817158389993844878441988784945627454472461657264321328228824578233679748196122744798841934372297675851781585751453257469198239297874874225813949487143353398319289878399993219259864211749763713893744644265199118638723922283574167444862371392166951452682861266211517636987386212258519717155767948712532363873219263243148636421413865913221752779213538584455488787487731996395318881932368937827566558657488119187273629524415263748825873786697446698751382119315486164634324279852756777179231791419964426133931395193823948337379386939554977199718311516439388237723897514244227248422957975791683894845388992936777264884475445954449188219492281117587145591226872873893734255457237151623745522932231626343779514229592197542846278541166566539273123432498512138275393158724631165429859623157165617124215581698343349512739445228123464223495338554526899763596691966577927442529982693591949612627475278125467377438897992274368217944747386233178978778187734556369843893638247955842851843298947841432785611336931238224755748433577978558594496739753227624567937936773855217881955289251627642535314689233111238857884155932274916495537741155842741377179219812442184181385782887825634767759813224844872651149743537814891782325819397554869754916718387387719299458196674662982755594354225167192233193478666964523161574211242357878146894522283491761284497753731554346929238691967197739516972256813694617798795624689832431866558717471169241822481386531737672463312449575757998336891174733972413768735311231955865975547166328796582312537855531159736634365436115257613317863189152825364716419935718941847157973466983563236341811827922836656112732979582146148429144348114816188496477671414268474728648232862912548228581298966459244367463555931175123335241988822541218666378476889214838236941487497275813961778692114829713141793543325634691661983684585981261734168623993171378559297815931226833816236736785869871672476517322523245911511296195263592265186568874687657879779227788216635412481862746534693747446558233674913311485351611286859696419796129561838454436667372534197168892971953129653242268532943868871187285616684238346299516785872891742594163576391232293963561853246597933572134349588987354541755516339878313857727817633188274936571671521817819891553983891485264332393616416387365863262292821365427977731562217726232574777913564264257215438329855394892592848486112954517531745487167246643673586971353328514353971685578758118798955276149466864935682778589371178625529476164487157325275323632413156324123582499141771324779949447162696944376292572724183196243262341864583323572844473995821266383478959581861954614813397313263621728666962988649941589243478941914193681899765679821834292287411119379472567335247432851292142144292451597532966811116445542748287523665529735327349183839225964737286659523376223221726641436728749324298725647971243137262964131274693795351268484719656144777797267756474619459151945742229188827712552812879194297992113143247818965176575474116995338732366959167797374934645254787573919796625694342764129745225183673755548991634721443629453161341726492392456958323576611829274347116347493328149519273354273799731356117639663824751998618218173327251836892375752161154864883127132245726274861169274569248473185528283822418444464942257385525296347829963839585191225146819359973967875461331931162778351315433921638366328443669137864915777262554673236381656568466877545584648198513262329187833723578327811639683938172273886469648582362555515118147574863411584444581737488211926776453825963597975378248352474273818312798371999746769895955692892833925954274267146145762322491885317915432968964579265417858859619422875371389856775346223338381453661389637623513946581823964938414544439411752978748859368851724378933973261469454238484262456715738327764892937373413122487189573606473984479316566161211138186548496896354486953861894116937783653445179439235411723133946847293548267191143786181315631515435671789422526926824845617678213891261112356167758163725783724193331461827426382428819419992533966125396158718142835176386431936838369995986193316135664427522326255366884786938744329874737988895334932433245111463663245863944468864928452955322799114729213652737351296413166436438831951336521558569429655391134948133386151295274117193832847553356884492441271584523797191168394275546892929288552133763189821538914786919137195327595934837271283664274188121642622416929737958215554275917984245696497461258291655385875794231821569497733554631369868468994185143392177542927355244999999498124366663449752577283514513765788425982548524881892355726385783826316771632239418646237958646929871551515647888864487494268973959225277653431447187727465564752673493377513657675459328964432729171327371667325183314131565869776928957934788316538952229716615499597289679611274279622784674444385916284246274793875255615148796328836469117488997422915612471322137776976647637491891574623945457156845428484343454712374589227242726368318755399682111689611325716335387453894164365455515568339282641677889427866521172759675583968236237199897559578874831311719652566576486333393289585747139924171921578313653164344937731635162475532364649148474866852224652889554912465592431749634767433834978479538387743838791169132316895963237268143346237445378631211736242258164519343989736798742144871126124674699827993665668774254255987546298111112481846925451998596563373285495734949642298587568235463893455239734617958199846988446856411826811592526327324212258863633917729879923764726138476282774267849148932431892697447185452161876981915149349521587295952461449368451167191165324965651897163198134162761189823329794886712111915443549858152475355955536866159713187994998237785371845642459331651551171986884411417281528452638714823132629952214932284141416387688121272386719122542246589211889693839268152983247682332444542623816825833252565255598944388549131834539854922746328312632415639615361465789254197848214376148322771816515532252237258518424345445445398971117421248321352678443897648448679423757718735293248441325468256319695365368899415579622169976717697326974183234773835261451143832776674992327996392927255278773951619219664365215328146564652958939273431776299821634592867954167286448516455559544284469386683524167231897543726235764784674256584519518464755378966547925342111451331478945482518165879523633691855182977448889997697748992581795315524488588699488153254325594226888356317467415239656198869483192827779416158782758689466617926331299251787666954122181741454288231245435413238631951126382722846873646288592367552756416818984874137665725863641926689569388965371367831549823927795642892617336354257214125649431127497557583239655568991664719821861546486819884662552749443346435478247849939316763139193527279848764668781712481795625188896789778257935318768759513942123614681628342172861845728132444796387649593622928915596319565165985652791355776676326978145861368756855272678335269776892388536632246885363217925124896156229785938738565996828522932738451621343438377787371424747931177152285729768447386451726549748464714378454327158883887431626585166515352773697787985851212871488239686876166836847433456755114929187766492394988824478953554147976954794943652545172898444971788585866379745919616126952568757717385843819639583485992351436496157841441314374713334668623255989695632952319781235683675293723872665861123211433913571912473783849548749981135546895115355845152316183911115789481191758533949361981373413173232262536378894732949279439969375491753513485979395324287373422982958419969479618152799627161359664517613771753788857818717835794475137537892179886667669463254581216969851159249826784759964545868575662889115127895461378932727587264463376987778314563476659529547893352151129863518868425596751461715922223219753768693173949195368171225767745921873212695827475495427294889491719942292886543393846678268238298425556756532762358115854766718842398984647824268162677245845839358277551554872978457172878481318427393648157465593339619547787532563726743519269582774628417382739993887139156226693156119767239131419345362184863471974171784928971224672871287726144443522115132256713213451323836493764187691137631241776798393142319928878214996912391871823156497411391431732543865963247474913874923356542727216792218955378867279796653925645426637444291976626785472864451184679643255374156736486672338339626593129749274969811481824868833793934231161766878147121617512884396712947236814927852924775275535437522346957341236557947556919652426751447384436984997663386253515211466297752562851617245872133864113642519965161432157836162447949335718696133465793487383439445578161823545973552919738293137616712725189779956246212331555526118513132992126642583637913556389339633733134621161333223681438462425819323996992345768348382249391784725217737972659773513957889287571384187797282152635229128948725946456345175281665198111116897492238764382132388797621623332273318486735948278249212295448757117148722545572398311651486464385398183238786137988145373832253882911526316148836853392814249539831274735358444341581671115357543552954692735362431499521278924492686278343178234273457464485835985892658967171421857514955557275657143858777119126177464842878546342746743546678377346759837913738825798175963783529116312332597689251989575966539643284336786466374592771396248224443985866622262522828848574586952472959712257422613629786147655992296498523575858229387194889599641571334692487222341352652714797945271851998813146364658832423236956942253343569387673777211434149855261517964984852358362416749934541581518199515843869933516691947228588481452137636538991569856599558416662996759534624692878558695556325425122295556148245319472927751325946277825658593224451645543786379116811375446668215562235714353464275415268745557323448911356882332972687761438189636428576365619736286154199137381152822549211183823521952855613819121585527747238519824112592185926385838523248298271894975294626555239192545466296578175614196743567487743571321169867649959853392969955213556565654517533438951176362114559225882245989454548575424824378411981494815971327294867559878731938181663271495134743587676469574672869287226659323774531498366754232249154739884451736167886581133249256842959387689487476927129645572288393534512673412394927113853181841325968335666717439149627947344595183127696497239465538343269519347742432272987143597442669733678653827244555358599564642727985852355971437152124172656848548246571389342259463983259144118953592849896321278797943848352366728813912636953823836322266493266168589762378873156819936887115934884779137915432923237927751444742239342354797221656357342488772115941365967891955519536766764965661617415194119889135632297713261544376988418587683175486267615959397195958797768995445372954542492413897979668657324841266633772233424431418464298794821693973216649983243172714773284446743274931231665275347825255882485925529533781398754548383964222915476432822964942415453851285575133867172487874936771357496855678266163332111494293328379156834669277729132284513855812138714181217219324434816412824237219638679412543996616247442954896852629871936345296722775893572167331537723358169664953553999238182135126544562539246592984226954286881764341615639591682924828356137225748119582734724926627445371182566469647933335728499365893121388156212214546931963928527931379195925447113936235446391225342474866632533825541295136267611177556338684196842882486924785912759495565985771868297918498192478548196795274379222115275394444328329921647177311622151771245668683694787584537589827987931616586758226195769521695315937011878763597216983847298632254275274241421342252565477362576295833358329655963248817534792643125443494481279413296971361624156682854482529452991711866828536316721289353428611981986861643265849177332673456776764443736265761678591779347814483158323249638728869167182985446651695921983976963968988386741526685388397887515721812862566827696436355246816387681976244935785527345871662412283589396728528971827515683933264522654246387216488341939422968332526953781521372228421455771516757563963134463795648896563843411289675811566867541429378552124444524316372879654886135813245579932354814321276676489182315753977225825246385165833834264762268891574328169866458954372967186297475796634621477563812918939548576958841224462219613195227164221138132274742174364576218226569885689827491539956533455287845124513597437619517169616145158853324795539412563392254888596673925516379541688928466864925585798372899143334447483962654492893949151357799233992499677218528833847985665781199461349963815999294923672172473549783711322714934345795232382665746347468869254719492916365553226172718514641921263374233897121728911962546649988237841121734138849947192878176991694998994496491486328416513124213895696957827267718751394836468768421347939867658535665169815791745782786792557511188717628489774274442243388951269333394164132678135448779784831965317713335524647391277168551758579262495166543272512327382488338446695433189538778832561992854621282925545687457549615917115776726939694154812557728421422891784497456963664748511554696817975435381188465932813151422332922777216435572264365872844266471757489943583811569249443851688663632835496687963878923327388257639724564244851469462783631557423425763386982247283573746114157311119349267374324864469381618569569616534572933611958197259226394565229597819363679589436458911358982961642897267238162718798954853941135327355997894296385182669263278822547266978599248948234163572384769688275356269266991696154393888149889414243288998179786338846941832782438768768698767392295789164364797764642621598439869347564182562451927211473335513448115724862236521251599753494661572263762814756982233297649115174482757958345233566715761873311941145133887392648438937215547732857561161729295231343164729525891676874865185827952461844916487654352649447839647185281612452128564847882776962682491471517741686293893261168246478745928712193712293529728854492268969961469751299454657433874313131157285463483659924987466829332456397933374759673161129621744211931653272578646864295277353864958224633991856665184591447943431464737336344111611282255258414649143977621231284422646173143417611119882135465717963771174646517629621133578369186565685272832715779894453479417265946453545816695815343583743581274732117719472852697878153523733316536217366474634544468829125457291934869527219756123896128583394687975959669835446757459439679148157852739723488373131263232365381967461334894621943982426642373692337682262535821238561147576745871758965347821933972315953736535519438152944159659999514188834674538544759265142243113731826275858714172118732257478952355862459442159372375712479566682189546611737885114877144282152481456146129717431139734273599749777491224416479473457987236319399251393744371527974975819443684719852145795749756444827181372954139363832517493149643342688875288317719962932447322655146144684717481619822255989165861475945436376438331475266192871838534987726651516754389192398413475976867433796471721931162122479268757511112659942154382613172188185868198385472598247411827148177573582639479751664526517433249827497851119986962536298232557562211287421518136419128832399155488699631674718458352265585712362332287457737772628766544217454878927875679558811618552972847426349937604679452443587697883726652576346793851124364334932526383532268959545547183517831275113577714511455921859311113352955212993655923437612562795139527967489864657881554939419834888794733749396115263777718882292972647241373884622181871962391529686521847257718147126432562616894556742676368492396849195576268734539799546685816692533391219914567558433281681579732172395487846713678188167416318718157798512385664482391334874976872674434874543991432476864583161341895393956276431678576244552816897447745574426516356879445628227964957736168711365864818679422439956928535498454242643632873238234825977439284739284557956461373876365331461763984651545182438828577322369466856312365786822935772624872717623246462143856159538921697781552885424757243867843656915716763162724121847435339796487188676884166677873626268349879887967755274853742125832876784974981667496912277412997485984673294252222712242212324155753243652299411713847258419117585728216435568531144862823134774366487942798764979455767162668985843757946925532477263961427247752349234147599758775384328244939373398695574549548167529543938886317289646283346264835988593372834863736366519348652242281621934411685433914248913347477769864426616149641164177613563348444798668393277375912865411637483185843763389939653158589655585194517874314529496712751847526127578456888452692382579765526337197144744719861988358255928554573287873353258379417254946713261499487614159976238253669441778848798771186115857765121276255138898977196616122189523841666288391389189662595894977352449257279317436595864364763628784898828769512353731369958229218627432398468726319447635456479232294646485586119275238766516751883447217685528465978167847614915252185953524481191926691583294731139536898468577789568848168551555598491446313173958133961915982754784831652181376282797711238493174478534844272911273153185157454993866479818919346544972716442963351188278981135771391561297523879971897987199798137176328969566574665576586677572512133151117976553911671449317567693118438328994296474717869616587999734858748187756149925996754655549935891622586419412921788345122944446727878542682995385339934137791373383458516727556118294617576835353689643335372192222574252134752339296451181311633973427842249562514378418552524924378254598457639279321485559253591538988125997927168118864792352434545346158161776819787186324676339776374471471351421159791158883179827367526542676882771198878185377125176852139929198398416246975897426912434328557478232955674155927639773435299139273389169476987853749395944949168527523472161177363593286893732573424971199428375646967847149497651351583745672336944658672723681735985269648161667242192474835927648264348146432246578937323735718636371386928463932935788962653747364515299355851175543641916479137787429455132168535199192942164964918963668976149662791186215813514321618718314581689981611322662296477347199551728717989122479698536281121965368159748952382361216746147366182197193219348776799584321167865177918349394362253223755981779478482235276512847379654344432598648962779352566293459986452522615411871827373822459441385569629482571773592814348215355992185343412789331532858898325837945661932299335497574553387189895364456887842572241898256157346894252941946483529791647565282182597614839569932914379145753882133126618555569861219433811498794135997845521599849772382333413146537342993165949947366511851454239983372681414397233996112368882799139429459118733325957374282664587641686686781345969788137585943837988678447684289159263832327619618487552421758865871284318999973913778122187275765193626416623145433444675614192691274845498894657893472133562634961345997889545254782897164538145279979879723269831241979525438866873863855393376422648689134213711328593353513345438417612152525567549864445881354495357483736515369477113722847498144892375256895932735396513444358858118843722227619332893356714898839735217641331556767923685996181254786453615659438239611219847855535281441218461284364387581598961798962275111241777237177338246416312739332466735668695531564227768233367734327186865529667919715721267932684584161524773493383854991816265843348523119452679887596899526992248312723957147136995786758579685446621218942666358936624661542317998212916492948154815383459781599613913764987883475893258258497677971456864663192612148254915673483739346915434595838746339828486752715527961632324427253344183777869521238322466738763989429886593656792623172774549131283174845412911184692868444667998227731264686685174373348797698631493742199681397747381353242117348613734892934937675723946466181163366956441735624286699257176383642236963147799239711836654582847161768284986198982194869211615421619539947549669769475697679133484548453498585573429191968981349885759222162749972993198219234435912124542727635136367477422955666899456829613315844671534732387189334137988218912392644946197196959653473225226665742465295996724791248479823772465592321943816296512571473952188761995228498348881247395892123199411932784628696721571252475784844238417788651422582716166565841574425323291233691974671328934912663186625661141447727962854276432863747333448792574491577226759267744496952722982632872583261318373634428823042414781162397639478842316388612764245443592477625431672219263569993659812179831576653983812279198664756986868138685984386634553611186894572587356876427279535997128838578858694493935653827539541353393319268821224691114857794151511953871963194676888363355652734939427535736324112859285862965477521266932563864259289876192758511858762819228745876765566762834128986389591397174952431196479713893422461721639127589599138338519752811283447462239172216359413411522652197846978218329977117459432517828625213245177286997642897277161942775998616536126812283931848942219822773547151831972364571366798792961435349453452897576795374266473547962216464575544414843572119375192414361849613154639977381431969123658663655159425633363515523545713899374881145597136588349614215614742449556935831678514586829689154491565179653722784335946894119461426134112595974629114723325572535469981343862423456747272721284652841195393447992688615718147692798817649893892269122522646597877761644524195423645728274723711798782165667439786467495797161339131457945778958586346925921976288256169847654724378871484692512556273168146517944933984463823969899135249711727422719378579178371213736928281922324242982299227267442354273285518942363594627534597744374582344151477739181845286271717188514148298171191116747485657566439943165872973293899757313262825748247634944565965842683111495188233988513151647453742265316925167658431848823779154579123647443191253446231628635985286559286527553798533795768377927665783657324826799968546586487266656221965356146134118969717745311924233787691426836844726491141254777967847988763646121672686922321219294814982448369358749534685937149751162598355499366518198511527512528889624364521184183963316157231218291648289417726142675479222435374537358599393129578947258484832416234384435956826629434485891241886216748245847432376935625938936758425462955918167771564959972856781446532344459149486891991195785738694738465698549149431462249644514297966425572697743119225218871283918751229589563885919549528647257124368248287686286131283168173117635558468137967581711248166566439996953886873832814141956835779889575984661165248873189772461448616294772987524523732911178123275715495593574236422614841772282752414863441155696877484551981178529835262466856555594141149267912124631989674442911527641777789892576775634391412565342628517599847516272821854239976139891879956826566847955687684489492578676288836629647195173624883933992519525116362994722386684198487541712325264365956377845454315281261684221558943871586344994613651728359426443832212858267839385388146397132526938134873655776316439979984356951154662948626468192392212837424629117492355192934355785868722286316156494235448795564942744265885523352674238237675392496122593164582771316358328768939732893431982171412948182967972244356789179216256572479777485598256154954895742388746745575255393897324934697758825418187693434844587972531237919671588261725119777596869983714873124269334146246817784783276873287513758253168678447127364244473433998746252129885589245851218772963148654178268638564341382258575899887385391274252576637944884584772432963199617785647533934593861213311539713571264119434876183416648781961231348849984482991553346137335657892678686924445612935758484941929319167882457918323898947353367588496497542355487677783617266815946686351717356935813276182792486166822185839753335764495586737553446775269134679358781469152717363933678613263417418544471543599984352332851111854897237312573691128561647951256645571324693882995942938925141896453697259548757374677489915297754324249285973919488339441969654177723634332832981925969277345874645128574658167181879816733349623236373641448467556457343566557963611276242178745582336783539548739946579719794454596264628565447564422314313849299835398465821676919463713299211194845792486563485622814433576575261751181667825489791255693372989174385342234792893139888317518636174698933325614216127258891755582864657289672385886711519817358534229849928157557239211481336112725921123927675617639789923855227619723944924684348437451637269233326541933311957892747932748882313966281431636338522224411511641159969215577323297528872132218443659579948973512253363487891666832891196116457574193551533519392712733464299878599757822283125587871148568667626784475684927666455589355311283164621412993762537195949672913441713843265534776675389448842375367754389732322291859196199338167864282285529858946847456599597385624852515711714389157697856797368864146717887428623313919619337416131612612676438761264355519561165338621878521527836383735672811546317485459511586314599357667723363932777629989721472329285158495799187151969942271622632347216877816823132355694755111345288196799673115242711396819966784583383443654479661893793729519161618153427976234444615919159287348155318336141574135847873881517643295348854931466153839331413387538153149433781315799925975513475393796741211362931925445115644483665561512839954346112542298647235873954136253616419683113888722511896231946328269139559969862215395149243185194128964169375598949674529147858279998515644215239219682795493231449283758398833954932394845179323334532573456952566986382922855288853919267173239121868361457885883175322931564665672791937747425645499782851228996365368952996471229289365587478995554578967517828957984744693493979537343325399124815291751191527562227779392413815345329422673528863639671921494948699852928461359833719114145458441426549485743627118318644319456489143213996271281912786426471222247567159796716819297941618832247923821719483185136931383395412225717889948459972895825256929351831731745713821399982628349487689964151542853173163447363532381478195152256765181655414858117366476984131999438713365841753619549157662972926986442936324614859785674861262751694718642992599799356653771165347928984294676755773357846855619591391923399174644899876463933873233226576696189662768315699999415759628288116174241391753964135691563393314831367516814192615266534976316881249889689282472129965482142933146247415356514825124575688173396243175729481975678248716745967793919772743159739874646539236938458428814142314422777441666571425489571914137771171134493941274642592713435315334336966272592986345538772524246599286136385473128772671932348998147949579338541448815139356266273187246269145291294916951787616914839548472183233523231419479262856823879281523995531661629748925636935954227526298357522596511195887494928792521446419661432432142174568557611974615793836392615824583557428545298897381233393916656822666449251931961293453943729412861624839854143363817334616766274246841958462921494436716615422767551875614125266522194875329717485772545867575337558168799883652228584161941673641646548438793136985314637694169434178141832447157688963952481524941947251686382163188476734885498525449798359557986155621921761732377449284362151855449552629822351187237664891188642729194976431731654432933141827388487717359425692345637953265915846726551515977221885773128718313116752134753585765344575558492812619813489757424949327164825196468468839795766153314911593124883759552734211137367771131544945219385751393326344141166312926448487265286547362897224775167633792419251726775856868268966859121484598893469965744682481165288357718889345354938528658777425353243143179825211262158228859696823426945846467675711624439698213446331725473351133117461529649815538792551785189319168141296318871853297595295258475318349179989284415277998724564984938268276395947475495269635955651667514356742719541166232646423781433168653953899825749124668236292727794992582493287288777682331493372994174233753462548229442714232433952475663211477429454556879234738967756977216968896571177223895812878585417194816475693625896686994842584384986733323776278139738313761212799385526183633536438551746159221259631232725169634772865761685799754997261889872341439226374946233633571652569814178189749335158434883261316518828849933968695539237744796646441535459866837311323389889644387533289165948698942463461434974928256165858647534872128273761274988824392485458745958785153371681594936364829794581388814441412771185624116396646674785131492568889452982622496186665279318677786643844225487216172511663733421285581193661611219571746121373423281293681941153223398299359521739179547633958572722634869931136353416499686644836191477572714459893633722487969592851538911465667129493751659631916188171148824526787953318293284913121354145599187174415446787218612657261812739767199765465395458543258561666732744811478917763518854823298772255658895717483934732443655553979655546137895381983147615289699665331833632383483896878398578456188183678916265656533474524578177117465585233897442819554824733664432971613885859152218821296572124532784393779815147938169617939475753283673765399212139129115373779289767944585415848879973799286216275892459213628615835117125868576175242455846719483913637423282912745993486378318519983944454575649449699356377249261654282648235361431575234158185351772137269728773733555971182536793128845918876179436146366428118323426126894432587492938872675738961562263636114743167164533995814162518791591997495113776967778375545524776185946778146662441491844616285725419186913579935174371751672163836746657934149878218483542961454959634357951148978928292681737352237762479783893695746125111837369948415386868149813426257452491424455985783626599163797665124165521211618969741948231216628926597541631649713899844957718813764648721194977558663157731721289655646866485133928424418419529617163878617222444297849671844194923219393915461719783771986396919533662985621624885473663224944987275463845298599137596849244635573118313155897131972575728294651854914438141845145493864995389397818351485789315746355845384325135163431821951754479855684247661278412623739914652548228633398448318672265256623988719883125278938187293921794915917995429146848967899483584175886577149965751666556597765294873653378485962938816557446977465822278127533738718675528236164576983726489974954934585527336913594195853851278772243626679262732141546824163939366757416652725241495399825131367864735382786221462913885587516412886536995646874284492853635566876549262847425945485799982731427984299384257654412893821385328247859719334111554843445564928842827721753375441956389738459265447411697135689884434637464699256196158881549639282644512992217728646454597682593886449658971754538374745695865144919275272369742872445294712338858968485833926414547968652975879977737421643375652669444643341239293966232659226393249724141183395581415671815455982964579517137688941521891667186573149999912992718179162448268825329342434834336134362415542345966212355951375188736878622166663575729415655265238746699116685152526787542961575368131153912436819617374779748575419434737182895857815382576435165328823724913621491838198851568313384766188549589674794518676697945424222166346295667247127976671432845264987637285831762459329652957574275967878672777833876944132118728214823673949954462155681893665798172668875969415733381662951629758816924433683365525872186378344337921483642171843432563481336869763723297616611243521159192771876449769621313327798196235615722557555427661915714724547199563921765329285596987381944646725146114858788338237266252836531934867542521476318346163376248263859525669818659594312552365412686749328431396466998254392833123898141886827654475392852955376588484783596364992643837135773641411189358284596961253275662226277387443353835741787396783224144982757293617172459492162314939631926755226945189221447571984946161836559254674897952911239645461746392238528139845168273357925289842156231943949455585819524163246574288274687533283665637353699448987826485151671868653478838194193994634359528625489746852873372573857313466521981274752141481739945988255119119129727153281473399188833634756661764578718748178298182566232821198645537593632651572837562965264939792474937282451533519625434738829386771412756811473554289884675623593653938731887333774653329772323598893667866691287673894993427769778957745526545322894223756535492528412874539981463914479954695166818196661679625838366471742348138959825983866671426254251475419225399119526275437153787756588531363284445974519226615692451323461999345132613646418888135366722142265681851347279988813342226549757526734167775793774329564127913657549846525214714347384815625113856941725357838482423733485225421316681337941181224526967488242483372396321628643114723481516657994335286248214516878247419376986641259863813454964997868887418262399397578834439852767866728645876796554457992279475152934797495194662396226636563391486957826427914335967822498929378866557411112466262866135127154153627557881256774259884586313828192867855161869295493853784287296415181889177127777953543962781623152442571274152878343742831215429776923233649748893268461683344221942367724829798945992252576828222579562855847852441768118621654813779276871665729116126879144746144271888856448469271161966433157676655742317264381317515261468325211877939766386437379125372216756935947144764516546467995418993725532345732283738496186848669833676822494534118168786363358334822625857431151958737576831756269531137969967252147196619987523465597215412139555455147936689248629559129555619245879675465479251118139384744771461659195554688812645663158746983969981665934145218686882785685194193271766379989159668968628238839367456975194291268374248981165184149659168698826744477278286915411588426375366862499428266889542793635284711598768792529397262643898316799151837997368321936321692453235159263875714535751482662829354769797215875359735883951354399685777797287812884463871117557546234916646336726274772984749515337728413167742578268457933173596589333749535812728674576785367115361564548928421498747638384984713869533355496736732515365663336834777915674559133585232799352857535448836381423663476578493891563319193643714262532178937449515946157344834353625834729783636459257211595249692386971948434188316227496839982121917924887517658262911784914245238232849592377384576656257561393338415686733762131616523298221766837585181356682772626946981377879531238286176243414921828847725887811931757364536947249335928597317593777596171795529644147919659639198971687756437584197811786768867867825812574533144746114691499485199783859522727322924494656515116397514555959783175536192852574296957522127217515277819996354986693355756487241858831759396795555892467227242246222388421319967546895527533676587938792823921886776259893289949933724996429611377124916445548553155567191372391323745479135112427163782122244576869529523254417123322735869328124377242777347942296588197241974694627717441436667248257183111599854825581723692336353172584534748331991983553696433659919485779714995194341721556741931981588678371899535529876471565884954732769869914767644383552139646129527693513181165425961195359884937996269799896569368567395393828517456535535193338195836576857728676338973615939868551217914918985528637897322298375417428911819463426326157489327771512532713771932664481329451451422684867346359735193356382658699951657393951124544978619984756973138171465466141658612721427926248266225764487752814997239133748585316874233129412992735647214982714312747369219691884679381911372715212168291362441911958272329623336452473419866188116233476558893648916368245954774398737483383648561387223821497147123861312788654984826131389194118316647926894284877599738669261121897688478719296878142137176397488467216397349148954169178698568494346866899794722447346438276238662551239322925178193857895511586643768892225652774169748529569433829822164858126524427481567592816198324618721585849888944686896597529213374524197215992569262931795825345688221931549697836239528922758236159355428491473217169273657491328353986856194426243381545397621566167654364897532969945765458735333228565266832239223819667539284595474189883117959332418252379731588888177678495528789527856949387197124874833576477548435142261892894313816364233877849445662861351892294931543823536692278486714785125518664156492961477445117696219681667172934141179113835695416496563282674391337531114683136967615153433153115971171552964671333769325521843541549815112589744332564145342685662653354434528252419833556747493588816478753777929825379964695255938588663841852153582598177783317356134429426822462741669548788726549883155758817183368224113186651841377943833554879923346755543746874779975559159342695393948223131699626191216253512251765619834186169689912646819336395166268878477665767842644887548954783861631389155852247626571487968345639779687385628611359618317261845913982842334484441492554279263776196472825265829861215623761368899667141786361477599254723859858837741112758197766984488863779884577881176187774695153842321522891879899799497166782367421782871278168259229845723142795784283291338344366479943569861538869488642587144981196463548694711642737176819298417174521411893159342342842883626643296249448775729245332719192658188914858645449554386459479856655647135118763717137795744849595281985488564757762752457841713431538188846341247414569243344576731552547282595237894721964532496471734565714448428981118462794453555213696232195294497355637992267979558194413924665311875785911829175895547932429851259738241453452863639534796991928213949384522931314469851441564576771621373598748287362316574142722994153693499417256576446849911393737189548481425994838434456688272899146116269969664697932622438647744375893819165427333785839914611137748159277911664252667651221345149946183996962419865759973929523639257557365535634298197629563738675649568131793215246997254458327991957873252563986718523168212893227135342517927899652989992412625639386536441431487715617767158824762326271215563444296883897871277531448681157623133843143133172154281969274257559946379792211415846853972697365551191179493736331946445527443181221247487662317331166637392513624869617575828541648422251521995482564313184269346188513577876336682344565172125734786255863796487811377787829615285999518817647329668447341212622124364164931984851916831953335568827434158167762152644941276743824579286122998393687372391984487845886617799541818837288577845832639292284147458253272922736438894935254559515333669964157691772175829287147882178274671549849978459661494473699626316363346453328476546185365539459175322987531361934742391943189188741152994133156542871987498328122437537862268943132441472224138462146933462255789855182333837786129914469587276161681933527216937241686757565393552674828651476299258153722541798175778566714343389386768912913819587456947372839179756568961264424451165995199297265122119256819355471173694524563284597544324369919316597162517856597442785222314237996713886881639476744558681126128789299888142311894542532844475246385365192433634118452638295821479997537989255685732815847431677689364353481878343545239184251931187514743739875158784895312325434376771975173679678369781934777336896213629299286215283496885727538249433643671523252483282954916822984379739993337686916234724598898245411622945833526458749482263316878851247639213867631861119333212917334929149328111317421663896328144565461624425577539597199631557895564636169747511682694576844524399764383267219291559899613177617673922369279418566668538155726495726162919242318896652457241982483381592627841821717864578777835455515686683794966643929788772447989668337526215868181389459783593769524465316714633881928896368734717144896487969348532341287963633467948896592748594637968884259416422211971244215691587395713753517727824168611269419169842139679354358654635973826142937451328565892676362968369174388134377336717975724829746875594429766791472181873265451267718443349248397635712259817933836989316449261223614151342167559147389235371485678194451656531756687892438669458258825891445611591373517573729557548147394967127364535395796764547443393722545271825657146822386222574156229666951417232725244788956454166154941214946338855325249995314138545566159793889514947949489995868545152322719753258263111223638583297349522628955882384636889657978892764137942549681143934829538418796132126282471515999381566326317941144882129389882149317832752566791178593432532738888874248625316514666121494889678678995856696378957751821592568538349737529366273159232471548693447523394223961277492559815787151815134766983299161318481989684986412887615847153395446434424113875956948723649199635378943466853441264938483494587134239686261736743467496667128941464634273445142597349125848843991556893239845987931945549335527863472885771591214511354496971758286667367516657239357797614899749596345987865787714413366766859811657167166644337987525194888188475184919664328927969771181889926626947995527448467536664642854628423145826673618364949335511885938253646594966824417359893211715641135876275186428473665876268942175555484895556596862362119194323991739421886747325673774985446766751883181876591387667257824712597597716184965984662479353743985844644465961761126575633916395771456793519587711451844334975665693392845913686944957489977554225475858369738625949897887863476844421367562526919998817615142737388637373545167279169941446741789542372758274292127134381184252135555852678181225247598517122555312787876986127544513463395441163564261962883758239567786542758916553668749324247415375239426428173352356211834784214838761624523141276826121591242736625986438655774578481659783267859548283261668338278246425934748883923469558581521434287772366276561117164132285248769459886495362573291825954569655811791551198257698879694273259631939176396441231247498816331316318438157982924269218122644967627483211991323842763864957646491361671693745339427616231986828156224275568394258128741962564579181639416537863877843951137684525711741615512889776984126987448141236486967166344153474972837941974615393919654252499926429426613384936337312849991894556497261581214838762255255247613572299571581264959277884438211458777944995913538766456898839985184178469283546312977578663581281688557565711663871747816174494562338294977955552538538338677346498428118715471835698734523547196241241934772876446431784959988595528832232419265998198623611583956961484746853375494257728188595122459745433689429957741748599123457652286674818715599776527651886851282871564336996973747424535322559649715348941559925788352773921215177512527784888476311699292233853615887765466293946316327569957217917685442974571113857723817658349319864371621643949821212967724756952378543829344335445734735129616754837312267689326821483885957655137181417265218711948339954928443242314223953934138184298592546172413844139635959189499568644242415888314567985925176923117534684193236684695326724428728781152572996577257681362935729588823283474352987857816298982943745255593149338234236758756942345961432936181926549234212828262779144439339551116142664866872372295849965819221846914411291627766542459941955258852523552524422368614627722467565628964247711937799162165322367731847374354479372478886437756652736774198767714854835787654348512382613789559256661139996451422842913373249365122247338985936311513932266214828362997996518249412715243864448276686387831975218481194391966985644384279386997737148591586386843591811968558454257326366225812151454472436374612533482193716133361637761629299555113215715318657649418699541696198442142665641534687458523684496362585944439793362328273642283731289876341311766188997274592885215213738879157856967715167476188539925832939626413276912642453437529232624618249769472846213645329242515965712919167262974368981134475893696986912738137555564778436928597128628112127184661349282996847769551652885586863196126425932797672739139798416625449182886976645138252234264836582599979687453976992434743247996155175334961581173436113326138844671295724162382655475699533439996236729125555649177868713256145761552464812695693381472798635293278616329488269628657859613344682445268218225276944949839154743198525457368977893387262499183593356712558576455773712171178521765467535682248826119326545698695352235885399184826861435814765429863551973173687363427137626267145699718248517463627641312928855436699543326954545399333747832397157193354259523153317582267626322243477885947564715765291854618923383383788635236634344621181895433673962826542334767122341451283652968342228351728642776832943519795542763587781854931826231471642198384855533639332635378346593912862246919392227682239254936236334557468588932683125242645459912488425566558748961676852597491851924463911176992959665816876172475822133153642768856559166774214785819325682978963648654533843444126158838937736381165611826461974599683497292723149791712441657119168529549743967849119576641662571553528784179983926864549896975232414295694723114723467568256892334774255636166657285862898587813392647492927813723522811951962294487328631333714387468766873184752595458612815545311178867186653824459429621376728926134854722394669613885114915719332847511733128278489111511273237541484556777827987898861188623376625963762754542533548669421771652151556733197542797664738127173511585359688535937783387329128682839484554429942812151984196986179131685349263446761162474282821844214968884449946342581192383497911396416952965591878278429878882822672478765547546463427437416699977345214777634289753416356938827651484772646955141412348932946693762339615332146116439325618481786811172726821551215347729668658448468832524781992557439587563438577379544135227362195256934567315143218842353912234952574921672277629523641161314792849353529758512653239346598267474528762847717975329544185134882435223439312131772726456952659985436799833157234438263989247136691593675113827271119517724457318377645355758577897769732178991758534381155234813612875294186281264514619323715295492122632362678251632566939551121523687133383399453738434312433476964667115656582865929559713173768345277933514781494459652178366293849635275556795253319546662373586768376754335163595478955495965541661565129526778317433862588134323388882963662723458865343368792929931239717979446354971496295519732146137937163987487629268842824248842766673274232886914898992515489888646963478787489188899951522729586294634433383381461467438591771511975438887127454612364446624664983448537468125577834397151449158323267113817675369818626983999942588288791558214327279197518513652471462719659372921233213153548717975146113251673887229427791763679214917352419899814758648725274295697322774874176451345118736477856589979479777344668391385222827697884824711665124865926539712674462964454621434943734316599866225423978643675291664184855741663396613478858697664184699276562783654113998758624245814153618717362973384171143769253677939139758977495123239617555732745757825842511335748721477871166732745222392634239292451248474169235957118282726945191226276872925413313252553148758792631438622475617143489924892883376421483843335148589571282391828671641147361894874843162311484463738943792793379884281523574141613719991389629527236489759484444947156187161242955725883841217891716636362388794367958253393293395161616164143681477293454764214812892631934592742574128416147621822386312674159227548582226171453591433691925246821972184792759219275556778283166363472164539553689167734773378817274682955292683821526993223393942692827539791282543164577719333583964629812849196692251934956534921412584768887769184219727362755915365752662638558288361217315716554932317583541379417558478171626341464433877836899554511421695258316959339244824791141495666213264751776891273544871811578418725491589169118585162174254985188528778795637575282321935344152836993894566334144398481827244537229728176729426155886291814589424385493197249966547476469937972391853353988186763591456359356577573119538549235415541366593342318532774839743393946395146372414587675257133555179891515255317758425831864341848951193817468433286799717442647542744157913947366258338184458224591825526121878684728756283225687692474977374265738515446767446436565183811556222982626215258822679278682837662769952773281382671611468744519618823292439788147197464459993973974495761738732564222766968278595254931915999458889386982791779315898191611657448486274366633674265276357533278236864422175333862471996978217933838479677339845975397884925747222169149792877697226836228824736944969159467238863765499481866662178173229154942217677825894782891729244468953184871554366834926217253589477885483759175878392813857117365275725219219727746959434267214623394735758649526241383728432914235837425491554187215517649751376751712264422832643415389386513411474811354667843476935185737287537949265653536886589217873692674368316983546256724945624115362821861789936761463858542153671183162331355132168364139545724842361794741343458517149195587273339599885932497549254265734653197157268871121975992537923519811836744532636935656799724274177281967429895418265844938445965984972843824555484169563328145833443536937685253859727372185687254719333391737313415233343134168442496825221941414857394818415561622414925932363677637939969718791933544368515993957869866139831945422857929438936644621435531546181285278242336819474638482436366495122256691292441113844216934684328735585536991991517158944434976949781464153175445259246791291924985221528955519246459239561563173685739556397421178383439785282572247423163927334175438518947486632495891413147746219252975836512661152493726613335363662275928114112373545335861316765993784526259377653396874134713432693345959919866186786188771944215768276366564175663494574667211676624462318645392641281668599689243781944998537814254233183361416787891393366159684337567984934614524673998735614239995695288661125692894886647352262651172157472942443951516442681155175319377481725322393868346343771224442219514238359565689326613855522832813425363449918152635212774868361595352585597593885598786394429572126476946987286847746575847796827656561151192886579429893774585552498626957135612843745242622168311465279884464841446852323549692631148356715389545231474957818381527352242863747463521117127968211965398577972729283485128114837945665633532834842313814726421334893475831145622172453946898933334672477611295592658275955949373752182974384965421357953666785183412811269755399447334721691221682763118986735881724228487529677976377397891572653395155896984974621571259439697128833445943643927374511554733447232586982467979618268336899464198366176425233315133978561496997854652326838359884372247219931745113454969185283622158789885978598945442369981453751649739237996981546883171248625679744788419318374263791814877365442912872194852399669941649586122445552854351489666572755916849994548935371612681248545368842841217312859122371326363828792176428248544657895128777178861177929855831598397912718735722751564662454426355248341334198473541917364716551367223456876625269372217599454683625862442234749689892572529217568256613736312589479647921833898835526812644783732917838224495288952563826315519891683796156676772847231782552544723184992771358655389588633188551989572641787743492449435943911191269535626411752128351866468499726981452193381422448725374443326115179591922983328283741195538261677848143361795835191431895811999896912257348932764898198882181392882118963157243724654434543794873316112618553127582847413982399823453735689212852365916324753956292496984197393531241893469965676946534243885367483563939225615328173529998454384662854768548291911352444318847495681188955965375332675228122162632852869485115547826441462698973179366224957613695351397786875182341873597289541298251221997438654662133171225564581623615657435721123441664332983164444991854325657113362794992418762274368923477318647727236599475713361255694625418282127877734595131266647919761591712588261523227555339152228477468718847121345219745743984934799773779571637347532117326818499698965943325952615736571262234293182817258846118681469597849278689982626511341222489431134361232329582264499732169924956483727852731268899795992195611368733741833158951139648969531579665238222438543555531627669836823338459512355812654617485578183615442523778551718379131688716279835119576353444364496774565374469269339864239776247715271938486532455664978277884566213327378821288954564481389648371892749623842736115443792667514786881945351526146519178546217877787781418459186666884949653563433221452299499967756349525793236547613934164183859685647436771327298621149477855726392937794148868632736993989453183416298713691664768657865813433765595678839998594351357969392681362122825846688245561466316787923426518324293948426553415973885436179113524938879446877496785449249152515928797964571332122656679517769552353162428663875359839919996843278797858847246664867867857664993972679763799565952661648526816335593688178937725291476337931863334614722545538251298943938934269733296669333259281114699493139914545114337564715735284233436658195717233218598972522155429375397779724935117116577782443463125722784298899532278178313861375756224764646522659758791277535912526222888669834922791118763484637279651426521213314416495753328355331564148279622254724329743579923361895734886923425968932482483632721483983586148744556794154426719761368748443229674466171534417693639635569181269836445718351931595677236156363356813594451654625312227745471927821179434782175796921895364668649677632211537197712723449137881841726946291932995296453665343649631227946369561981838184829173166399196924889218484225598728944774916897298418578289662535459949669241281943791611888262728723881127137332833814225141413316716818744476651962594999361783473254147486344352721323378548715123656615231888281212631715575387542433978259167119585665133883869112528645562464633291726234519649883977545883246677642284657521792198963443766534319639125996166297183357555399941116137528325166767313289748935155857532476182887611138932926542149994362882199153377261684441864976514925124151588327596862157547491112526141281113775362798465496497878474792825482141219375717379958796287598237454676594387324221119948697522577146728347391632763957948982469485386323242225512138753764912169687331856181742246241517139245426259456154258565218452376489224751896732248227837794142682836332323918343454169861464555737379733255188546153258394871546594667182612565173499222828974544293111472529346785728893912385925226565838883551254364556615498921766452239497724349614574214127213958464334227551532111624256966483529875488165438631823347156897248457888924556512624149875655371425236227565328579876783568928361193827783327166165864212234171172553232755472991588122346753971257771167617936287118343839256462261467459144764475522737772611756915949176563922566848537688985688394491157548915592545333324192833393597364355134299933485814289448699646963675227111651132642886667521338618439249425429715983762436661732685711942615585185661834683785844427431792241751438731292461256811563632958244588352691858165975922596722537188236495792698187619158649195735658217877138269831755829942727292223912835642637835437553925655978561764458833827371235546212638777865531513985744758313125517516284757929321994679529934595455385783685637656115158251623357916574144527472313719536818145945513218683531751243498192835631283626775947214557888818992476784367847341384638619411592868549186772537555238111251321617753681469632396822842168211474342739177939189991174482333682927321229924153942371812164543857889831945459673992113211885291181283587134911512832255546975215334782717129383675823568188819354752124946294462243429539412367635166563182748865427372425662656173822252645433165715258645819419923151414278485288695769262435326651814322169797689455373735288765146567676855634789248613131227732371369857431192235286528751533883112128883182226647311386459859469792693822333128868817744659728797256457792215383294161545646437145911899141762183521587141914841433612635814222586744561671165399553836648963432927673651678491358553327245479792551936324254481258589493261353427523355681231566346388826241413457692263415754317968949574634161851288532218559367164111684292399528684796871199737151239751213264943345122424428333476562782999626179672926378223669336617139382891877261129852329363255987816395393321343339563722957555467919739253317742711374499264812722786622264867339469729637247529981664991316242499582767411264474652142383936387346413353391857243448679884623468239456618986619155934133517864688824714593383391815327797494984866258711948581763217186845565841786579885645832254864578246633923881969635228563942318352947358648635791245191685748795288844829795576591129179744843363167768668118987982818885489827255142299323121919121932769674618122533577788891915237415683943957123669369149451876736397712398931289415441476664539388971491423753693356414972647777874834267643893229781491864562241833349193674118916156135591646839275397655368368964888548723417344974769487225141622685568999646263639789691226411668145956113859212311273587237284119734557832775296435784428439759644399975262773526116667792678763482411136426979789366338415584834285421353842929268991762512117536397524738922148839235588789564383265839642177289295973774949671216889876993613735343731155114226815983793366658114477683223757451178641866444554914874315613667664721738693249653963694176343329813888977583471796158686342664774365174723162361988776539717375893629992521748959757619592529231683884237523321595257338591635894472927769294343181836995278669929421316328675275377169676665858729752476363972422357337283861742836176722212466591535463642817991831425737194874128654249321342624985451461877482449155116363534243979938336974448346959875159764273276199829373329226195619688295544465448576938842652232423234819446919879672787844167498834544581172388457546529948619795359727845265392166628834815887322425128846368785448441831532275626131134783661397154336691921573387311988244595591855725827987427268466493862514699173777597239867893533942482744971551429254361149413836967464771128162379797791754266175722499424459878761433727366983566895769334333319365768595384662354142976629979128594473214582826243552224233135115742962533714659815128641966696163278633824471481115279288947854181176477945913234653893697474995114864669479913399879141177699311629287224315664863776796766788961888792233812428697387285775662679542886289521312361979758346415672959891755196334552729543215762889168155655499754948182333821211236342928768756369271433835177211737158926884641559612926624364369274186986441697558762424972328347675576339381348444698285427264852698251272336169721848313338746895841279395132325392253587573275959287328851275815359729696913521459383288528931655628587191644918848456221123179854814843827429324161992216535431944339612575596132254696469934328653526873345258495855581694325383654263497913972788557749392152416844113836436724672668597812945839351863497192768845727617812316542721282982479264956826699159725198226337564513127718661777769478589244211752163955142112197947197231662748177575178518638534453268435829628665175827991975421837772253445293923626436633266559428565128749153525251733378926179955667553788132758852499323923937595471968192376373533676278563335795892621169898251648255294549348751843248138865938856598173199894217423425312916114683599922831341273546367689383851213336628963272656375233282669992254115821241335964417727184184231832336642975693164137768489724196532116396887393627493333235544387489242931762933792327551126574445558752751843242566333547214667325283577674117565328674586862893333512582823561223992652231329865348786991267581911165598552731284265154191158171217656712176127733241673878987998964756153966652168245452441269977542159647332538375119375313491274382557299475432935152873214242692948768895447751367456899514884181876868425291428186795755344965942539694134188128718293939625122586555159478489379219733686329468136743792562699633615194627855988554955222483657838657248826424472996518677954659624337449112441642413373297873744199833945499685836455696374659261164669129287982727578116781828955513536674665736674516176487272834419186652146736386826474484597239158745159743683476933684944889885668285382841389915363869377256844753512616846857393682528356949437979169753438378836219365878143733648635299927913626662359153646912795514538438713389626643117629199542217959943461334211423215236382593299383751186526769312745663744275216472512154953283376135518956588357428635351561728622264982739574526312836174377159496125288365729469874672122839988719338356151127294663185279391162926954858871593158467296126444546153638746787295161972686421896624989953852563198386776419611593883917384643142991779531794863354575593279585615912967257564181568949557498969679167813762369638652596566554524633613298337581347697364222885258531141275843267958986328628265228323532945573488378921984111544477843966615953893615835537682941925243996593793175781343213427522355755396695123882838258723686921585244935557147421367358717311472118711285919853192736896759886319181318822927529694216181282123143163276468331492833451579973286613959817861112384752939128359129347448424645785451565666784698852517458933493258414983662223119473237332792127169551936151673721134969139361278443446353432814918596512658685528183829354564867938611766655328427699737373981676538635412133266948143761361549225197737863379986189387614677698121983781928146847175737325396297425786817843639456132153782524267956538445799665487715173425963758524667159337797668185459166443315693529642323199818663872616958637889176399639839826495558263238239346986861755936767223251595618565153869956452349182519671444389795213498165219317787665711139322743394213744866745524214248461566986438694293877541862598354632521363244866263126224666492984238464998614229533465944694184736594216966611755112715284795189951572378258326758238869561369275354613427572167972968214352472129589752598737745863876412851375223191473575241856264727114152676296265425158246174546468974143675492255689795313678435323838426887193563743585774726371876827795427893186637395698525625216178831522851613434124975759262199975238413485651155444249277487574997137598163487134459387146785415111162887156152799657472973725436454655662498667534582819271626571166825956844789457648557848688924897313188587435498475279349141523363792653515966115645581795778927327794276893596282731893592526467139647358891648733135394576125927914869961927892295656324145549552268154466367599264818222886943258975632268218326729863942648173273736262285326128126411886694123617324664187981922673854544167537372847277266289647134519138782611726635364112168991344549437791782657114527645435788335261952331787428162725389977112531726978248219218392941937838313416994937847959811295219223246486177689466381581613356397712372181869918658717969386835818266466673565351433131381184686712341197376131376599749851528189335647485219537118383287241151194769421234277119839158882126226814155187417311583429328433256967365784754616655298221274492127845344611371866587492548271512215959542562878636487541671633973761634183399164893778756918337794189498727846346515619393356346854815689685218982672624261795682263743823336455514695912211688916411882247874537817331651739753695815139139594414259224517614264654188313273725231173743636143629359381628299635765138622228781635665729758722219623784218978261947631696481731625293835855761174749799668752143554857642141348915816864969363719215262575698681391289575491994815642791272363413721679442531244699999949467697861258492777981563562675511493411546388775475732971169543883125279127897564339738735919281723252264165843466531436227357329745173681284431386348969887648715323711829374532176174974738732355555739977322759558875561344781246731827772846714621379413972116889994761157757339566428727158938137724822716759817559543267263187861465545411394968133659677896892947412254495713626981149859448854685992562942316127254348495599951662128442684596233558628168376363566492781232965343234239388824361121391533732477791125364145594828849923495843635658274711389862658860132817369844674356394591787764978158916183769186746495583369858675675514782923617458997545622419989562149552122986878822395745766833168324627815625698848322119713249962424326111672478229632525148955288742653819978711985347853768488473651843939731929555252728578528183186382574675722469652692773771172939188566331788674746133419639823933898623682758245759212474378763162156345712728315436666325324521945899389764717342231752393676872651519797477332544742961448357415787879638361735318626763817871552358422379445195967835137125282317451799943544161945678472121254211481384831356362839876318335968996356632966513728617537589397199734519717678179952697475697317592874745524531748839567348191941159725496742117821898723645769984858587263696379488473769255343658699346897655615755941985622998961824696482172549143362723843841823514243551836753178473776262256417142486691376695642939846183846659781669899579935458434253747394482561553429543117843377763614955412578733678199115334221582979422788864144254174698921361778623721898423849256736639978146199492683557131967839694612615227477767142746152765936617777522451439153546154341163625323386634967894261197442549914565916671986897515534298665555833644223224133195777297373741555118551995529749226248187561546248114235876873194931749497773397221763253159361854841992961323334321755189937325838831327378593927193721945966448353477314463987618891284672528563829772329617571489628287352299612678913983963993955995939369321699793922537939346756351596428687858269513537554352998958811691587414467919977312722548329399651391738652742593886141964124378317593489766817385228235859289913963223488981722235177855193914312743983972245481191117616817559626836434579118431443193775759913526251737959983936465735239322696211296182181395841636348493554165416125245467873956573622197536268889535164952269838181392244783561723349646953845766117424792978343689753479985782592344616933159337215672689277539773356141455398332729197337979266424938165716869931162184812831662984913683379284491618189482571899321581118258798979191342411791644822923957829626838155416598784265486874876969664662215774745271911819227913292668971679373782985166397998517785792959896367767285725644616494864371471939897616119765236786494922152374263946856943565456996417733861298722328933482246848498382879112813356469711144728779737914137327773419492495869858731544257891867438561721399415277342878589678411468451713643163919326475352284453329481844463865717454191429856319369554212499261837537671788649597552285534763157822892972956837614143797464878573952162266971741365566293572648836343479376362691146687146421514239699827465837133822647389569994164947814616422635818749615737434959741112965337738814985589223728714747143788563563254822756339291895521199166443977452757579592683166267396941239185261921199451886524344139463492849252253427495269823428464696991925353596366113984438294855555758474955614214625367118784251657685183843273566985925815531617476196382792377988411122586848596428276457576585348442729325395959978534593143877833997849471286115978528955342127328335265296136543685682146549294126654394899453732493596342381884469181771627911449699425673854322523592885676811882936783369822166547725315895296328896145327555392275796416128749531465999854513621412943855629874949658656996388529743241613792226283347158797871747261354733267715251868768645732661797399618319134332117291665142344973955118911644856565843477894281715416336383869647434781699121313854678527723818542832292325357652212155959531487581912136863558991326123176316275285427396673664726539856699228647399141897264658411417377482577318433425261747589741589531877528453885324697347342392566554427483764396865622445796245812454282661213798562826318222725269578957377659727991553695967575552577497452425115382641249129764233173721253776416673717841836442758333349728559238522417489354429574798892747863734175936961613772253163536425617146739336418888925341784436189813786741572572374838119562373383574367416784234718522697837377845271844744157521495564469496473111226789296968121786235396833236477975187713537795631169774387846763362245417388842979166587591267516929482323297526553494153489332844972433765628393753269521674879277533918663512888325568555233362115537495646946898567542176612835387136613426318374231567228694152976657829742791423579511563887185962854758159291669711858347177764842548563492761661858774691689996152298541918995982182562823743557689745938828549747895397581737726612115918955849731379359553527498531223148535637977112176437489443686991965457447157377942971816375984283739664491328934421434151562181555541179124237768813238575713961434733964397974176698468161659822485774313129657418567595652564612472734238413355122963528884257616999414355872314732994182639489111252598378532194226844318269389494754684656777421925545473311461138628975854687898353112352489693766584961648431385785831399251728496713778811959739333562679654513474873686981873196464724681962599179368868955576412714275581643843798595392969613793442881254631812971633139912412947255482145147236599724636876293817545778475318869932525295134326983659598322127323695417813446955421492523655698268811514949665139381432629389497489469166144746667739282342274114179177873576245837167483821233542661571737663366374333616822387475743747523759516932412926347116671144716184344139282414349169649856357275592216335596821947213128953669332642375846728925847278963441584651119714477469855584492937196683793993333962166726285577279961359751373582699472919578498684639814833212572441833911872639983265651882331494679292478551779286764872297269737748897753722941649946456172156942942717911437411524168788113728823385916348991953368457271643554783395138228335561437444411676146566991914937486648694934124847696215437831591166926349961347336169612487666883496151256413257964844384162641281116123865471278573133759945256357178387944283153665851954772428128278893411946294912236795158963992871234529349852164866372499691979123685621716815583341699868868882351832294916687911991279977188225397649341918692921238356354197649513557649629734856812639258933885463128311484782494867913797316943376419547128578976876347199614254994951862742739536153954945673972487475869254296724249536383513662531316433762656279254973325712854995741916492221156545997569676186769973842256351127528487364993571591774291748971724765422821489648938359646543735414865258217271266313297764238782377884635474712335876872294385412483878535116462868455786425875336625488191938145912681524912735518168297583489199389443955158711739648587847959881146332866958922216957862859869865629796623537847765451757845743514516197541347913659955642238581232851816831752128316882236997119417781594671994134835247867789731722772458671113697234129898993385583648617618877719124125126455125579549391111982994527939887588166112144346637948599314222273178892315751626311152195626156653563885473644366684713577483947416984542837565224724162792116958559296418475918379788289381196251173645772273331311348378398126253639217546171323366385235269776358282168965988344265799546635251392628434255918627129163835463524887621356756831853769264913474852646862558362447845962474821326672587633788145738436884265297977135129581394987832432748569487322824964925426321664858797847869161589282656598566952944659438335613724218778737524621995247983665267571677663416977999515336785311278447233664354375238771549199217273985573191528343131286115328266676244653736859165386916751869656281748341826154772595281568424364557612715529929378817165928567843893263727831167848746467336249528937491413418224211758712335498312254317547671222389472627368418656276853633754294342526463215161689495967254694227481326749267548587275123592126976998864719573344263784143245964654662935192646964233636273891355831926557812599943218927416553236551425116468472815839672446962536768298146195286998877911818172648788714414254743841543855773949939111464889375869815321887383497497645144292679873414683523983624518133742131928278859113522985446378745248452299375287559859386143938564519739858586262348587193586453914278376225861296356976336284484913851473878199846544387217568961546594911142936692351973838747893563863987382964198315589664365622829418166555876716477445992573675627454292899562339185584743321774739171579438551772239835257556929858196151118396421434969816538634446242364394847989597788441214869483749269765454336194231573159921584622897335987727259437635758717392671425836819745978854328222141219464277767951559344678719845878714354052947923146736538722499393839354641452668533316297539568964828485421616472794513286134221722869413484341633985534146671655141273534187443652294539497673288417973381327683993367436484624684484913145795986443117948529888546849243843354929439244995276259746779255791183157364673492917213791925585716221269526777281891272483234834457763617316325335674832456738293162635475929555212525659324454989154514116273614956543684222519725475797646917314177456968249423172654537429179518444163196339537915387329358528465781992746729512262994122983728319521695276359766987681779271394266326166893882689368637565887213857654545744894152116752561491918874549234524159352859225375575364937841325932176273195823392139442436777462681518141524954478342796374243622984987969466993856226866319784882573278145836243864653294493783259469393988724122688218547947272419361881663385473386353966813346494573661981659877514733523969711251446637914892865357711336416524687473463755231678652694546491771748396672326696563623296738117112931511832784559934253156158861174354468737195398645251987976193449985171111531324832149148649214434932932185349642776982876918453766281489115199479387487281127524232382495824163913952679893654286537968479178598885274156343751633321167385366245954472915292474826945794429166753189312744983566261652384481285596626121431986594788919471698348932843196196945446548496575311435518118729316161616577325168311853964857819537788365398895837833231738641583372319938939424227653935989959317659644769911345321545334232262158913691582847472645278791838233946437586883629716323384466492998741518486661861414842391942352137117168945141382797126439567982694539426131371661472937285874955418569284222388537749661267885446494433947287249126383338319763592256752481226431982424566463732157722973285157258312667315798935829236457852888619798741522435216328886893372165364351312564297828939518738264612139282648987881774744729645227431679835644532632226899755467233489464151725211332913118667489841876413675296321732965131792885885756124553417473879572663944532128629387647514723672157654998319492622396149741927253217529472611964294929984188933365229276338625156671669289214731274312166921748516685726946312559983398113477359119514398921277386717649189815916278617621658499272136144146568398158913197167975211116633211331268252581588488238452125556681828646814173924759696897665246437393196513997692551263221655528241779532152711278514948133674621699875179552582653258152539222483491897945126572996823998919369898198125756396688361769872737939831852626376144983978158253155959345599246952663859987723937653688259376884351538726517733798968994943652978252925578351822639531155339739544846423479754846882216649834781166828467333626527768634527195124935762724987852557512276875519112691762482467722584911618462562954921188425198467887968916474568183211254975922719726748378857965395533949542915298964184898596247793227281494114131531831873796588999639989683995261343631893663585677666747368874838483685953422878856433459256662792269777111428424388626544429512637836758719652299353139583534619584168939216556774976134498179938356478682356823343157627527449486933192549151697895666631394433958589633767126838526279221854371132914583584299241889932919536861982532773412338636648951996793881246624866322176949945156726227362126422366493989285622585337974287942378817437546237398822842479164491284158813727676561866993129562712326138591369138334853455424694827539688836869684299536388658362135985171956847558432153241976299818627634527473347663179278817918962655128958394389727736538429427792596593445765947639593447598377639371837335821513753998668788673823896538142192679281977146115487697461474605984893921855457928877624863345144555967144712723511464853396732378864791461535795144642964766295994693731114684319774289586197629211596616287729718137377188172983362923851734695538455286183214749953468634196668416944743384659865391464875433494917684814582468221367846572721334392892551719731158963532815248689779236527621628714976469185243242456928772765645265192912628262499392179576932767377699874892132363682658453539378231437927143581751916764328375319342366162511515527424747586927174319138372342924755341399813823265479296353754341995146259533979438441296783118199833448613822965821962531931863867433284698884377494666862169368391532291972518367844732138387117482592812964113927619724
