7
4275375136136313466227667323371711541254271731471223372243562764141276727222263315636753342642356476311423642373177766432727255235177231435756265375147333362174115731175672532351766731356477277112213712265524623525654634645566111312647512114457355747525314215355453533654423347253334756526346224567164537175133556365136163725364213776617422777536341151454273534124125267457434361577655266453275627336415561217351447167145365157223164542754721156175173643367413722475764375523433344522167137531772617431224657213566675621674115217343465153173553352154333144564621261675275564721337673317176551666766577466161315275545446423413371261331246467221166742574145476624161175754166216272353756537421231242156566416326563272755127344471575444326352121552666572525355344112554471624772177151342261615537775455646447566673636254356131132517363321211771474223747655177441477133265275335766264453173147211325753412234143162627237553565636334614741444153235361335775572534225622676415741576733523473547361153343324722211774276536224143351616341743153165515472333641265356274371577225117647772466426344364725775131551534534173655672241743444341325512175676374254512575263617153725245745775423165255114475523214722435226761476235756416277521324477222131271225722664514666621477423635166211613272644243245275357544543364565714362626342763522676354612262772422723641257651132677252671777353465153311275412761736117371346776524164314254354456476337473374147565216644472741777543573232647516441224774271261354535151235317143376665325546773457364327241156425375347235734212337672727125676537355361753515631737322235134716143613121573276272334467364676573274475656165726251637157447331647227176715617444531646523646634755176617462525372355246743626225126726174256177246162766451364117772522231151175625333262431732723314531556657561223642116272515135511675574544676373623444525321173172752537327167441715477233443762271454376324472574344477745344664733473335165364612363451225615271547174773541333572251373163514761677371764121511126166474165454655626124647627121147727436115662565577354247162366452415235735225174232657575733772232766562424225741346226733432655244134265711515531562476641136764466136626617473652111715122131477413265266245633735256652174253324553462326272566473273312141372756315656577757616241513716747355127775674562664521663173111137651552351641227672762261611125723167226312543533743173264476277577532474551234631131461137757737714144531645337554513717716611623236713721564531323715775677773225217512667252415716477377466617442534713642213723664623662544622165557154376517166552147425277316274172522512531517724156517442451772365546121171274672463547775715254737642163373753333617571413247653756364714223656231212254461576713733325157444457417625275346356642214733666445375471312246774761173615276143714553624142652441552752763677161547231635233376444751257547766753776153776225712577636623613621211136426231142421474355755236451474335162276437511247646562521667212132452316466513577357622621552754123464233114564622515667734223745214647341737512772567463226524355141116172144343522571724775334247347251474232413664177466233556523642713535677365764644567146137424726262152722522325764611414456152772271472663714615216447126143333563543623334125555412435341675253636331555266755437714441431356543566754474563247231575657776754334232672441665711751546655644211523123261461251346523321175517672214633711735173746467416361242572256567664663171141272141365435663531627226547543774121241115674256333454431325715426643654444763735374746112712465363752425114417157655576661241116474646557111237324275173317327371756524546773634455264416451577776547334225427266175557334575514352326142623662462341213664444263536343445133313536667246622343626563147743325562557514467634126775322217641311577447217113615516351572576731777155116136411263727271467352563661471213254213525436424543732327451513741571152636411255561613152234437411626222172112767751476511255336317323542154352352321271335151622755332656215432565626751556652161734112122765345736525773671227212533744234257752745544145256267543746572131127423171675432351426624664117312265664765441666131733313134766314774573457556462656227622332262763553112157125424236232466716225462173212135166622445723724536315415746263672564731543135522443324712731231476173357654445613235647233265435455674763336221545331245514347115614313556571554377434274632643344165353222311132775436212376633342116432763277311263175334121554654631131551523551251674326364163656173147323517725716557417136413423631773454456266745117122764326722131477135665671373324514151664276335442137636777232773612611221265622235121137252362744335357576371515437452367616113636476455315567232177446337241634665432274144777227253737164157656322743557146172127523431157735776314551576516727612355463576277231615756737521622747627167727143233142636712173311474323235233655371575466765436576137463326515434513362251715654577657172153627471747265366165644633643151544575662727467366753545743367434724514176244174112367254423357271553263177617411546565227565475663211537522453437425231127671466611163735313567521435546426565456555171523271252226673656535373251761252573512134734313265636353451567156427642436266426112647325565572345331475315241262466437316756314237417242177136276242172777742464426454663577436344563764171237772646236625561515173572273335326423536331127272622371631263716661235267372323525665162217612511544253313546222712522633735125173637272666471772165352655366277453512161642741367115273141662741331547633737276177737244444632165151254661772523536552226622121547764463553726271756272173476664552221575271211326347467121177456677751477622645672557653772736527625775151454335423412621225177272611536514337373554156271712621123215176543663251656515677112315546456344624351447237122142363256224157443177335267312425765212223632716317443162133215715545761445646671635235441763673356244312716776761574341357537254172634244735533613441515671527336633446743526221654725616767733715241256547462567363154753656241176325162242317336545252531554554576226332664727775422616664441212135777257542553415515415152363476176225273467631412352157376757577422153412314446574113144733123775213544674342233644261775277467321665366122245543252441271341373452222723257133452626756223242511732244572516253346354165413575672725576156675333151661322772561663553361247164311577642142217377655214231351622162755352574633522342666733134343451377546222515632231734246773351517475317672466672716433423761732772643723172753363237513171314515771364674113531165736257417152651727321641215413327147777116274475531634164526241354265216136516462455753435263221731461475345274452256523451713176255325743672441765741215476616635456264453731121625746626477472141661447132246251756647411561166264231354662521525572553722122652475643421672663534772474617275355132364563653425736276617721545461621366765331133754754666734562655624533256363772367155651421727472264523361751127125622175177157366751321415537443235536245364414311443515367333757523561427757413567142717644342335773134143225563427712776442714414122635257627271311511364556336141243162765126156231356745561576534232332143742664632637316566541265521635243322725311352121175323176252716352653424541164115646367114416244333614352351172566415335167713547147575734134422254616535446114111167774476137476251143627631353473562133646715624632334331566745314511116127612416533376445352112674114616617147744364141777322621223725616614721351775216237312534736536421713251352772625656222536571444556173221332534322245411372436224725341414667332455235366432353155573554254277345761637574732346237525152461436235431311724152774655564633116733576731723531731436375771311315675577613266363555375116357512262752733452222466237742676646766263576735367545461475765653561427761674324477246427326175355516616675347677725577521541266647531411255254357736627175113111775237345774521415316416231531737554411321662743475445361444657726376437427734375742611146543635474431513575244743243441225511367124176455273771224651713555613725535313233623655234346613414626463233555241526443266757321123761314572416551335755554526627126257636277156223611455736622544551554414423434635673516461754333572234715242645345626566764516256512114537135572463353251643471343653347443222471727255433712136434167124447517712647512712226172411413241233133331323533146757237312727254477124265547254153116246342461747143472355363111412436464532735734213347267617761224253557142745566733143145153376735323241444313226434141546276172544161245676211163417565475326672312335126741741422561252714564116241253757263235415522733572324151366674633247727512775466511236256247622256147127331161142275124747634762777122165214422631354742746445646651161612363447615413616564252146355331476154244775266245674727746672652666273774534451347643756536134214133544216563711176373166771423237523234122534635455173712266471454771523776561247656356664444571212254564334541447264144617461622737425762437573533351641771162266321227464354727355342552751116142265224761474441276553661114727246762362532176326175573113424441441517153362125744424635266633767757755274515213645447166142451466564314656611164641647665133261741463267242252745743131533763267246656613122216714217273662221354243733336556551363322612134272526131574352347466622123427146231735224652277246141363524522554661312111321235143271554436525374335655671733641271456713774534251156547732426545613625325777416634417314556533334625457347422374755126573456112414363417552722431332323751762233671143211413665722243542631164445562124266566367515263456564332222523343122757142661237117643776241665311417414613136247125434361356276357312613336243156723451426336373435637262215632535162233177641313777116246623275115432741135176515417324326556467123327434344125765131563341226342675741575226716432672246362335535222373134726772262475345477342165326521323334553724651327355655427312335767446747425557426375146161433342316272244123274135541557524257511321545367677212167146221656726752246176165125324332155242143752165116614515447273427245452767317717511273147761343466135443463475457577714124241471424271646176644735747541366347412741126146744546433417637474545641164777673351224565551531215772211617717436451137614777717521743735136162647754734533545626713226731541745753367143536317222545347535633532777725277232353637365447144511611513343356413766136663617351342433166334375515527416716735163346646611332122614646556551371635522374436642133637425374443436211442126723337623765414262435466644756567223275575357166243712666474253215726575324433267562751617436766462362215642217256355546673462442677122617127156113677557127354544557657653672414773751763712566254141237621173573211276511661516233467553663253563714755754234266524613273427776377666364721446322122433675675634613463265322265477743323724676372637175727346116112455161641561744664576523445467644552547635723523112765442271166643221113715457771367735454563351712123325163272322335762642317377672335754413746211711375426556656173712542137767757217662651535455157224551447455476476653746675412446213366325274244733437326161334246475441157574311654576515642355326252271252713117657441324462325143464612123333412466521377422255514175427654216564337457332656437151713671333171634613545133766114275574731247224724311124414325745535227344467171532743415741645421243271637757722327661465452224341671674662774326375354122345711162262751241773644461113257741256515773131122476756261625721757632431144256531345363365151355431514622351223271721456254211155327111357362121124361227631156511422646526727132472523517625617661146137633737311573143746536424632554657354215264412117662644337415372327152517462672511176532513334567574756125316561767653723467746736534456377256246344637275273776652226246275141664461412122522377431346357163354722252373545715741215244253672375434653241751556661525143524755431217543732216715157774446144727731126512624435334343617625436443644415667343277524125121653516773545334371621663316117116551567235672222323413134656767656735142631764226667274671571466361166352551213172122471652721656765533111223543745224413515564564256676122366673425157537377157415464315635434276113766136134774454214161644354375764577514214761412222316755374113563554176575647761222217661561247635434224171716242463461537745737674325726237244313562746143556636371174716733464743257155543537376417117624254551126225772355315266267341767355577532242377231167676634144772652625251522544743723726323633121414232413677363667262715411632163526667247275666575117547543153444432557577475256657645723331515341637577437365163151552116266734116766743662471726174415235237531546432732212424234665421234217364131435665226552252733746467516232316714637616134336643412464327552442245226233556554135474145124362616441463742721343773521532162364127266654247314514277243461717333241247664715376126743311513535764117116571331252247612752335335645746625752716324274373546362166654656344635571212752237156365164441314712651713177322441261717365527337414616237272436566766134577422574366211137374362172174653536127445267313442172311421116564566433363323561171232314415474164736254517155264317541123753462154113653572322142126231447715215615274553116222545561645646461262772367772633211667153647517535735273274367721276125411462346232651312741652663675435615242164263425612676276675452333751161616357142242163752626153461616671536653261317676261216566747731725722437572561411442427213117223134277357436571745111732453515711331456433473677411514151421233375534416667347221372177133365615572132122746177136336353622424263317631136645752725753335416136551453666453362553357514465277246224473342711157415516155675623544274541641757122572517217162336167534532747642122474434454771626662456542556152333175554245346226475352637455622331275512256261141675252121712145265637254713226315223535537754462265124434145616532115651567235565376652356167143253732222156734555443617627533257573716233136614362562654647265135546363765647317466663467376212757715215163134274763421552462671663414234556266565137315454745723365717364373262175727665451163423313353123352752565444172321572234652164421626264642363515675237715134677662612316536716617333424236526526116347132744626752215631513476276224146442245143275667142521342375673557174611141547644136353513414761712462616672657462321611242531742211461357557525751141264551544154133252331212127124154621716334137566122153355477225511613655361357152361627456562343343721461515523762755723612137375771746221763461666462652256116717713544633272461247435744665666561254541272431545627324674563351466154213355432123256656325563732541261526372424233127753433136313332325354535252554651335637571235477124671525673467514371357562242265765731537166157617646516142472267663746755772753747631455615234232636445234522136112257751465127373337152445751673217126374175734371317664563752263215744544451177131147615114324655453137464516523746627547262651416612761531324521524461517174156747156323555347322171243143667555513545734551623133367575173163744221624413575112331322133541746361563224564466742275377653167736124546225755661272632621327424245722543443341457643136162235663364641116342517664371121433221451135256723273274724745712344572516234247457217572117711354645217142567546566537757762116613434442721775564531435534145736372746331431317653627512227123753267223365417515211172424525733452563722664755466676742425137516655367547255113764612743567657535374362317212671372475754641735666215455515665725165673471663541313142533313275713414153143417661266451712332734515123441623771716665656222316777512257341537642627436347472271362671534511516611744517551177347527563345326177365655743144261144132557321142162661475771427635257524647163363662731432614777425526374212542131423676776466541212243663157353327716676656523754361657165234566477461346232546166364313726475356314352275342362327747353232177622457516454623145743112334544545774655524315523431631254641334223721564126777453457466753225531332412125726153511451266617463516767312114623364432552352312773713734255646176542137265535746446732557254174742154114566464337234471435134433757472162137574421761233747524122262377514655437446563167242643763323475164521564443761616163572134564213765745412611112722471515354774473261132323443546615176535235665324327443777455256767732465245166511555255214743151744122757456231427235167565773266712317355312443457355344143373474526663524151336375233641377737423211573272335374217473644636671122372512755515236317573167157371622274411153717737621347345214467571231356751644746773727441216267223251246343737536221375426446461627145711474466422542414367337432447257421177131326561227243326663527652761774126115237365526475166165354453276211634662355215135133571136556577673252526331244641327444333274263422713745153656772646461622342623714411137534525622552753217312624356371345726411577164316337621266737255667631121727561435416636531567256341453554634676441433227376334161226514366657534567121251723322454345665563535224336444546272456274762441735467213151645465642651251515721566527245332171665743372364156236122146672112372117536774323357262476366517747147724725566113123362122762165713776517255176512741354452752552253733652573543157175653141337446132327617253562512467774146173625151153272651752111212625547231156374515764171323545627614541745566356756466627365767741434422311136144723624744442547622454514731635437722525273447331616451763266732744126746323266356216225634447735441454376625663575437234667773541675236237116367244276776666343444257112223763171537426427345721347451773411112174147172147632766744133463475715432443766743343146553123572473156433632627244661657252642722426372764257215674171727274575641671177424545245644756715356252233344327764521425124714551365632265726636422553364755342513465623516411342527157566312772252755426367425777775763524725233541272231263763664554735547473746176312331737437275512475344642542472646153135146527751524311464535122121343257132231222553521373226532566114131344366543126267612554144755451526154731354174165344157565333575313216254774412337645613456746417121755454135452446341676514555576674533156724262715116767446235115651217112521733533543521333244723243265441553127474756711436731466175542536132773617421654461636637414776512722274355444222216172144533414626156514351663215134431715346732756731365556177522356447115712117273343231742724351316331133353474641164271573131263226332651212716135565635242277621454743165455272151633561711674152645165632452761765433535624342425245737315625613456142544261344271764726617412151654237667113544742455356327426424231336341624221567324346321272625742576771433522463221154174476373454443417162337753157671231777336664345453517626224324537556613613247715467361374635373357357531246147717155176672531777624621136753764163614575651161254646753652241751242722421636644441356534742137165457731115113557674656364666616443556661462656647436264744635413757157126414211355174662266136345443455317741216617377435232276152421253251371353213255172223141473531246215334565273174347554714277313245111676417111644532233664625342152141172123377753276674356123321645756271521627151147576417742125714633715167775722262743746342743446141547557473511725211256343727634711767137321512234451217612515216325332373444771336451441633454226152412766456671457525627255717534115213151741277363765714576463273733252365476526734624215174415617345613563336341634456366636431574255524261115371157777663535674332225543755426644543533115576441654347636412465751335746635563751324217267327126363156733772217231762771143154774321325516726752247441654162662335456237133147264341527345535167535551574177137574756773456355441226276715122213617571755714451672533333245556741721137721576566143476123762766761214176157147163334335545134633744545463416316751415352774571115453123463425233413432542311512466661247623346526152346676751226116232224441444243417277275227231744375653117635116736166621633737356254575551262266774665751244312237626475523743633232131245615123114163536232426752366323173715237536313145471416544376616317133227147344215357143614414444361772625643474242147447722565334334525423663476624562664742565211572434133463265653752546625546737272674254574372716453356143735656257614475724335214631446142547565556236632364216561746544231217756662465614435215412376612142241147216177533345117241142447754177721621673331343267314651647247351454555121445764126523571535564732417242376764577351622115775361633556715515365323516626517256432617421113732573145737721736561153124345541127445237342335225323735562335451425132256421244175471241475342313725345116343663523641721445676112637332367565131434636674453463666623242121633616472361637276575566773216273654633762265216177746556211742337623233451311337325212123241463454117465437653614436751475444724534563436325716452356526254656241121374345145114243225244642466562631364772612447661316162241231423443253554712111351161425647672356614251153254213421474157237374256713117435256511667366323362121612123166724666764114746264317567613333134523423133537467232171262425731522165372745123735236345617313556775636734635347272136621561237231113727374722652155746234461413423115136431616134647653412463736337154636127644237326751237523367314777672775331363362374361737767561441637472531156227766261167236272376345412631652662411617633554173646621714762362442623527164476663644745445764147323664573342342536333277667273334523313551175361224533623554717572224411532461423716472747451332545226312642673374154443417654732553513766267617335762244421725112364762711771135623261623116531777377517617113616224317632574575636537527532722744515461551331125667533626737124464333412544745545621174776611461123455531336272765275565557525636314161233144352161651437322115745545667375634144332415557667565451241371275612245416374363443117335455574265412264114553116321464223663412253311123471712755733556755426635275477757141336752426234165661511252257355312426552374774672745263521655317641436776367166363113456434376252436225265173732343672556175733377123541357754217411755566362622734221266355776157345715755136443755274141642546563375172626652257667374567645615145656141735153243214653757542466355162256173511131517126272431376114443362644656131243773237357171644363467145161316675337356275473131516524243464265627645416346561743524257627235127715666524413571154512674637542553233125555145253635124477543611355566344267715361762443317772136526453163163623723266447451653536414124342724226456522476555242723525161354717655531171166613125471216455756145521632747631344224335212716624416412775672746471124546147742372154344145453312433277115111232557175632471632175525436356363661563365535621122564447464334713164332114676171267635775442242552115436735645164261667525652137452114621425334744142235613136765217772753627434747252654357256777677716371433721756344762127621617717751114517624551261563665665676775116467452131351521776466355266666546523136274347441427355274774752634257176634662633662572311716163621547524273476175255577611537213266257772241241777751641724134454311372535652152747744145542217741211353141447654651455243574561611747464627516313342766345614115213251533715545173312237131442363611774266753562724436332415655246346176773351563137754226174631476475365534713325424745756442611462222114515257722327224751232472533755525243244526547346372643235524275723341733617745615212424377617522157265465451252663234753155131445565243172136335651367765511765643366567713756454673613575663347776766751447314775466736434762171177115253174714544451224724243442454261411123676345376112445773347677733164343477147147313114432521615123557227225142263614446622112724372414537343462753527512624216556732475323671177441332615327274217346273572711646111473244155675642663133325522433514227545435223572115551234576167572567323245436741525651331356325514637245727625677565611736667551254262674655346334726332122271325744223727645412214747342453515411744336433464516313431115377132335672644324675647224225745761224124472123523477322143651356372124554667353614755153557575546751336126143445734633277261744642775627545271113477626746742446637432576226427677772766563646643726166621654655544633613376373566476377566354732435116356376655526346336254751124626453474371144712744562357462144113443114221622716475733611135536114514147331532373266457563456457142666522775245455323313757626624712773364127674437761476367453764163523126225661661737666734233552244657471167256353253145662357513373332557515533162375175333314734271556426373671122542474736443173247711731332434521161564341552765666172324471253363532165343432232161314153217546113321265531165264325733255341252413623415614443175672331764722274666236711554765655211217622142542454465533342741561572665222466534174741266573541632121632171164563277237176554646751145464463243572724645512276214322162541165544647434126435357722321414623467264147552335264175327571264434654261357412321747513553672355733463427371524721773357641177674332565435627233333561745766145461651434317343615363467267773533732774436553753573131251167543137236112667374744251417516663216143745134154642377437471361711524217133541225454327371527621712444547124246615447416472465466732417532356151615765736264752666221314532447642437232163551756672733416662757114237545724721722234466266554676213351763376571614454313371151773437437767746131476146477514775231214214211124155172752732433257271723444556275774113376652277237422776444475165617241735354271254443321161761553477413237751775432774223412561741721345442443317627332613252257441465242516731723761261616233161347773354367463163121172725345362373741376446144367461763521367621225354232135774643733425454346461127652766665353647272757414353376353563541477665616123774423162721476144373273764577376752261473434451772322521321342336546626373737746362555626164326314267126313326346625321326762612342345116542475361233255245536772236157724165723245565422164765217224226735541265154516134633355271723737414543451743746321756616611375356744372426614447645535327556375272642174764431315171723671621362645155464731173672775374461626123621357752762453563222772265176351517515114353532265474623433471452534244713365575345147313754133375623414753633461266231635352572474146534127556715641735652742371126762414463353751243632136377471271433172331736154557653514553714151361534547346624611263641332637676743336463364755214511633211212117342121456255666347542264376427355476544552442317353463213164713473357146214555474153315614416665314321252646415724454145425424255517536122653555113521373134452234216217376663374756717313751373725656777575136533534476764134537234225275111674357726627442116141654414226375642655637563774621126457712533427724471566167553554522523716341244714753761746435776251453317444744543742255111672531776241375611366573127632122274375221342244472362574777173422263616144457717347636326335661116416324672774737613655412371512463416716376673765362144314455734315225245136346274517142617573134765471315241177442565656736343641321562317516643732627513447734166235475545533245521512156252761675355133675222765745363312517671436243433466555362132463543644717734317645524364671737324721412526157243116544333337362775747321136153464342174437456765472424637554133561661434373371151423717666461147236373132363471643244242721234151121324654234211635353465577316517642327752413465314663352414265342415374544223144433171332151616256727314735343717316452651651577462533135763454426455533731217267344657566135577546333626741757624323371314274157714476373362464735276427747465575136756415655457217143146125765517525376264621752675123734523215357716635411511777612315771331267361264136316335416541351414533553712315357172734611756217673352662124551661765556664416577146224537125275413272151633474577333776711442114543741134414754227417422567111455752175537255767742773262262331147356143257756763164512722356373321255563662577216577763322261524141531227467422372311644262364767242275235176335567754413543242356665311131763553652322716232451347272324414172366512773635213331452513145566724766277473213657715256574262153553464343555252154673553272417775435761457176414275462713144253137535713733674415163363511336732615475177461732651177562634627771552452522536123144223316767171265324666252765411723355165264222765344371576246352721447357772377145515565512547151214353344514622372167632135133265723467142433762171265311215543456615612755355654114644775652226271661777645334755552262741362273272312367124421276414621147271527761317221673122663376574433515423645571661262452123764536117663241127216235674725333677512677235237247173654357723513564764176622657657354173114456736445255147334233277671121657544321236643677433742132254333326163277763464336643145453227453452662572233665461776645356223562752331565744623133137556412157355422671476272524227275245354413364555625645737541561316243516154622325722614561757171126477225671133634726416513524726567521412425111614466357732334323276356511322514353127114361713434361142374665223625746375476142461516756445266652447417267175345517426372721716353325434453227761732572114275143475232677221231335624124545352622446535561714237632445222167252427473272363627624267613111136412341762122523515125215627734664721331443625275122552435431721434666743325155766153416262265331627524766675313227662577135572665646346236667212371452565444634317345271267111341527666443136577545265413315452623623577213162246774536166645121322173713432655565342151234637111412614257445234767214327624734766167615552474714734566562355165614664553612414117666546665413165664442642123543523567367737457237664152464657322511631643721755755473533337362553746134436535423363656111241425713725461445226546745655113145757252111356712756763561462716614731153327231446346534663763654441467722144311255737326736334772237132451772217723755641574214441454122131443455643441632353711765561674137415273541623757451556336335652732551246221536674652615552451563757274726272153557752731166145554613326347565734141434543457346621352377255761365537124463436431456727744444573267362631375247326311214742333761726323443267111153163672136324536451635244356573172472614457123761163727356235536776277735657356365757724741624535444447135263732722633431613266733477523334746331434177351626532272254621234151234655573775657177325711743541664452143543231241214775211466665324542716251476536337751237715542325527354514377343337463465353476361315761531456623761441375557576537346412741543762126156143113766732674112356664767615532234533436726546665543342444336542216461363236225712257514146722244112341563516317534516223735363673127276557521515375217523551741353373362455436365717172347535664235664131615634534435772154544267646451652335171654364563247665763532616243754133561341565665564747247264561374563621617466335743667726416535315677661641665472761764624416437237226424673343542752335725661674636571272526324411745446236327722713123216247522715643566522433734337667615576777664243725262665231137217666567555363675524713536632552451437424244534327717462346535672146117635371132734614241714473727521523344341655335642753324715171252677346423167755243516121127156347474446666663521162624737144777747415475374645655247643566376364445315734312227645643222742712465215713534746143646262477671746561371656364217674523162742256235264452411741141613121326543465215663225213436617122355342617531327632554737627642111545137122355251427223175262573667574516134662734146357276345725174565461257462167724635511414224762542657615333226732514645276776352551543365721523164642311272141425563732634725254532762213537571351653246542366652251413655536774773317264512417535765264147736346776636216541533343253661564537527512342121373747366646734317352424751263334727655553345117254417175235567252147734272112737571512435214342647754514615171251431515447163351245615316137255213573346246514641433364277124154334561426276762145363723736343166656711541447553412113416253671665467444512566141242513557737126774752533713736165345624526742541336612114526424151734326332475642524146517552371575236763132726312615577645716255661677123325256451337415325134514613714241175753116257672575267567261716736533234762762233661757166277172765272767265572771275275125736224154263372263453573424135732663312747362617155546777414227477137333373564512455365436767131244177531116567145665421336452466177163275244261247613757715354264222531266775113114521513257561212365513674417627363543157241351426217661321224363547256372337473433322545661316673722542116746321744237127142733324511712627461666211312216522755435647733611777532752214776363747623527127326412677711421346634626277323264135314326467413417172733156414116641413242223474515711327157571565525743255635416117343342221461353241575352214134272426751227355563652411733447266342137352416166555747733377417344466425765675663456463633775621377342141632527266236521212615144172416513755173736671132224627436671551157676273164266471773136115273221171127426155115124437242153415634745111737531333177133331612365151673165741274575411154355524223422732545665456221425143635356622116374272151772745654236775766211137561166266553357715674312234246326334153123457457241572125453415251677212441525632713335172354261457412655637413725441151435154323363441233315726454672645553114544111145577362341727225774424171571526375325553565671311642453442624443376265543434475673231414777554214142536263642442655137647514236643235255651716313137124715541546161727474775527234246557444511327521472262734667474253327671733715266314671276337154571477574114723565364515551456237267351661354744412254721177623742161146314122472711474513474712311326151653732333464745226137251413327426631264634227152675622754217351255373656311317616377676227255373723422362434425355444377334154577132267532174633477137762561237153462446766452622524634724737654324567357234426612565156462461722561637552125115355753732367373651635672224136653362765224354631724515747443332772272734361155257621426574227521647144513712446441623573226261366463154455533467662242554412632472717365357527616133422763356436631777424517512424766276434316371462543315375531337357123565424674751473242134251275376555337126525666113225643662413472226221273162763215112461733412535466517725214646356626133364656325266261123576545421333672351314133153164344221763136427764716521137435173535534347172277571353576633542136621346265576467635224177344651632666414355134227631351425223216515367116631353356415556371611552427431435562127167555575677745121775237617123133217677556544467566372473575721233332217255723712633272453344477132363321724424727337574132613616235571712355647664654277567751574455455612517677365674764751142677445147417476334225724332356546573221161232176611574227465443312645764377427317561214353127351646546175251111267317746257224471346165112123343273267726157427565574275571234455114237135711176746566246252731532256261171221115754611647242326655473623735156665366544467733721462154467216175734611267254666634143512533553366657176134423326132414661136475363464377152473376637337344313252532251275435675662625562334542134243372246737527721471724372515323663276163155746225317741131664253464314531336257173211233422236476737373435263373625657212424474277357524443112474171213455116646514676244544115424636214726614664364221574375156633544246147537265617666336154737474131755721747547527464361774755351556357465332424553223224712556725564622466541326731262764251143622474654637672666625225533747342513377674664244145651545733176261411577276633247135212625125144124365326271635641452534457254575235766627713466645221666774365211717771772442347763161152611441552453662226563571726224416453547115314447325614715637272231524625367134776567361154113427571264132145455443472417131473454474216424362247577757763733467141462444273411361375475711351476556613334776134264125525753223761653326625532242644427234647255344516461233461655327343131166513363232355715712535562276274775435757115771411654544755566276732527541351331537274662431262164447334462634126246625161311437264131511774425333234734265231347154235235617434766463722554712727433256136213513552165243743345221545452414155443742476673321753221776347754532125475276731145457467314323176271741671473517255323255716316137333524575245273725454265127143776442231665576711656375227235434412726724674415573542455461144616172614373153544227555235331223743235565213676312257772445651255571271712411441566676143621157627746751311356446435432636143735723737752227174637564167664376771475312625545241237647747367371531261544431156212375371231277243463557313312243474133366375333711357477742266536152577341214475642513621151143751232255376757535126522646753361424542372211373726572166654272344731362623644345234333221642776572521713467724541313635713124265347452721724471532735636252771535473715277556623136612541737174653263774641634246141335432442231446155533735443356313256332554622546223425363611552777734112675243275557416661645255341161461175425214244224221736574572631752733553171512144331121462766773166544155147354117322362667467616653362175144554517156235365256153512723437125676675627446175112364656232244144734416453473114453132765313716312764732262673347653262614215156356742217371736635254446277615633547752121315272737513324414171454553665115745151121453113423571247545467254762274342643226616734617545564313523166443765765551144221771521113322267667555434651274273356457122351336324261746755415733761674731165736554642446326122412572215314117764552636562473745236456317111711555751637211675422377121123234213111215335416352411534556172633244475131773641771155443453646274755561661154254473256524712742436115264312731311635517222325671512332763357427673563415647436611744252511463444723374162236117325632223363641443672422746651572465516246432576276551654532522151732767534124734573671465531155352441525127512373562537414432256533675472364614263455517352576551242712157552167346127265346313531734252331541514437345172644437634351525662643426342263561224216545121611176447374533171214635612424515625561412164314544121611163445337776131337772445251241356634357367213247246374221236474467136764774431445316631165125563576415116661726567363473215664254125637615721577635375516276623335232214776166152622373333115551475625236256763254525157472266437123756665574232775472333462436447136725416121317747314744326254357253133655626732763561122751411436132517261273463743244553523765517162722131517124332116371661342457651174145347673713742732165233232431256773773275563175315242565731757746337666536155677524773576614677424313357265155731521712672262335175344454271174257351532667234633457135445655362437513613635311765612566353723266247631234755765656735673376634552535657356155633537326746543317474262217234611374237235221463524243475521223362726743476644326644125767113451164652331115537434245645757215533122244456133176623477275327762315542311213634415156176631641373757227252634376273714677764224622644752144675415117677517132613177576623473155765756736752334754735536177524214121623622156443246132642624345146131514632516123126424615342246253424726366312615457741565712736372174733753245112716176577713742143657254672513723733524624112437724652452624237733214717512656562266434137544537162572543732571637672325372746645234412774365441332463232436333245575116444272326574711263735343233644671337562432134244556513726422213246234577614337716656162134445772515264255521623672621135563272444273732574675366542756426655233562256447147766654741514411234522141614631627615223414744361743257331725121171733263571336533751774317711732235445136172154442653273313517732517314133237715373534175446341622652266613724454137547313251444631257742334712325572445164237614722736252752325776433141563544246552311416732641474622761356712151211471315461532223413452262567522752173551725256511155314654545133354641134551333451371157443366734327523271445623642141126345257612775325453254457765361135652744154776454712466366215231116224631331117677736716527443444276772725145146232742734661235665655761676412246453647235462342141646737712335273566422377625731136122733256675355131477552366511314611135735654577546635265745215666673415263544522424333746457246247577337724477641473677655662525466531633274371331727776574757626412665326655711713114674462445326617431317122223544233613166632512466611632764237764255563545637275766153251674172437176453347256756774212313612264374152516434323222654174376625365763234176532754351751512475233731355775742157425613775246661254423222727126277761361114673722465777211224745743112222713325564375215441135522242464155327166635356122246712146475123655665647416422645537754615536223612567647571164541646246713625327475562452651545523357351543475355234413677745626255224311641476222652252267752777523153342371324622137367365665747355121262434717334462322721615544447665122532554113346547722517364343166231417231665453545737766422131665137152131616164676716557164252755663717271721422323371416735344134544564766131473643114117655357634424712736167463775416573331335166471773623753464134775337574273144235536225563166677324473133441765437462137447327362743256632622316444557625561517113432334636757535314267155141142535652354343335176426334247255427316453171335254716652266313267312356657123637331236366326756626753653554247214326265717715577574252447155276631551363273173743572745163713667755174435144441721226134424614612432165561146341473277642433125351566356574337411731725277573447437466235571742145241657641175237265122712126323156235213322146276111372514457674611432774212121633174446113214675651151572615112531165716437721475622763264715157376167732124174556156414175524543353457651371766675435255731476144422371447646436373711613753551223463537623576427731132537116131476753144424477313416662774511651556763536215147412377577141137325234711531455316456536542665631453244321475227175761555134736174512243313246157746733457253262544677422735753641655223231461636235311575474771265711345423677523453434365714723614157631122174433117546247652243741645146367144445332355243367765751576435442227642177615344233741217765542153737146241665322535657746432757243262216216141234722737513177225554775626532665461554645355261155455241734323262351645564224232171535647372621246344112644377511563261331432647673215473233274364723156131315374616566112433263665262164236766551446357522151336165315722737616162716762376443342112726111122621223121353116553754366177312613726237455777564253622432462754356112251142737545237313563157516437664762176163676631376514565532427237541356646641661642331175357363356314372166364452674714441411645616336445465242423114461522617317334321151674735237615261442312446767276265662526626445412753217717121657556742624552332536246357272267354247332721155447255273233361326734171313327175114644251527152655355316641757472256615676675163621462356455534143135635625324726164323372764572116561354727412317153374413252552442617311352474572242573732311655745776224375755271462766126215722521544213711522717376121142544636123443145321511632553651226523445713437161343327464161214266542253515435661223263612124542316633214141541662311611214567732634245763236235466641161531635727455255461313261246244327474376454161541772321635452214354615643262446646271254732252611411365523161766775114621745246316435231631146635557231236763624561313316414377154117323331524372434674646276215635751275367727254555333264224671566627566451577164721237662462433336374252332257652776765234571233154473627154231331341113474526125664357365621166313424163444466166615644536754515146456113541556341745521317777615662574757236163371142374273265164333641764613332346467211541346672376475167513737617642115143733163143552424131123116227124317737333621273516721223254257711113747441461152743776424753744155463327466564761461533131335143712345213163563542715432475272612136667376646132345277341272352675453313377124442271336345514764523164414535373423656474264663255664345622552135412353763561727575231734372424175444743322423413236441162345165641345671152524156723223467277663127721746312716622234473423323626621715646751133256627363624227111223772616712447233352555377321543243335235573525754332162125262515141564543725623247566161627762415664241643525152147757131231312762426672265763217374327434654153234725343132553414145211576215522234761474742324647461542462345561271232637162466525712251514353463626123132317163754212253772452644655152413431627457614215444637325134375541634512563223761444476311741436613364544165513551221143257432424654252562332726142357714757322111436775142453471636536345266517662554371436176261144761527412517755416661462411525324417562132731612477656121274747512667773277367541546551761574556635645265125272356234243314162755642361213723261175521263562776565713143436664174546774244454432144451125624434172771535263646343711123725351652251225743336264575717211746235452665363735755424335357463376154343163375172645477325273534443776416636367664344376127573347547577475434412155516427471724612763143676357566436313352445157355661252117265141171346574412357147364476435143142315165536754771626477332146464614433216215614616656522736775365122552564256737625577713772447363447716434341344124125525764132316411465131365677313176776311644524664376634424356776577437615277765326273745514513573535517221336262124417272553232526477533565615116461472767214666436311776667471341521727151537473344344344374552534726733127167325161515256533617473277571611543241533451333735766225215365443171144612644331237763574432377677724575672436552657147613734733735476275432227416432423116523227767627554615757523774326371523523624563254152124435257216262654145613341657252636354375335433157731375463412766634364227672217214343122563762665325747737251212757462632241527353166161117432746775162316552517726644765122315215724254233475311375613325667317712437254614445475267532311241152336464746314363113165316333531775643347212531152457322254531631336662713276274553675723576662134634124443474252533344624524127622244612252661145472164657263345472263411671626365665463321645515733374574755623523251633727571315645224713576757466661353333474157613315655562632427645271647266356711476155331413471222225354271273244751575746426431762426147357674372452367122776165447464332423152221541662763773541571243415623256333321641332615165123463365774546772265312513312233412147531274115433276556721234674772164315136512241717711133513324444266673554777211172175557112656275275552152162272523371222571331252727244454775257527752332376523616532371611426517516742212754546332653653716751142636747355622564753241544541656141756674467637434142237514712525622613361354327126341313775266642334562527352355111343653361356471767341477636441676173442661442647575735621576657476154232417564654341743232711651656212543432226754761273673662757771256531643551147377567256363364471354542136264115264222742412753211755361316731456267476747145576565413644547524534613477524364254624211665746432113462545315622225756244632574116354632463166417116723526617322257753313521452574477742734765214221642134163343673517113473234545623745544712473764674355677353236442217711161451751516275123547523755147165323331413332235523574172727625461724165531765647127647732615554666464241246723725611725315764352122636152755351153255776676344655751757255112121555254145771466263462317211534511236743443573421157422443517157312177553144316415546723364313435755623237577542237231577222564262145577466534667514673715274533151627676643342313712223734527735221217165421663255317724466473216346356227317736556552117762414247114726167752641616731147271526637423233341525515422635565751533616221665737422364447325133227577333522314467716362435357561542516767221777672542775622777164344144267367366442652434526544217714443362237214371634327163534525171531754674334517153162345131737223222721354236135344612424511423144255424237143617272553124276574331272525432124155222645364255771712313267461176732135765413273315655163243354241563462234555225173522237674212272637163642364164546762662474733137245533752471165655263534237643557543741211227127655321734727315452755117241354351773117671632517775617544672231332642523727267267152136527152115272555157777726134347223237542471557455456362365732744371254324672541425455523316515145173734334612754622363725666424244531273764163654774315164137443226346656374553353623542345223446363241217766224516262327231576445773223323136611536171723214151662314735452234316116322643361456771373737253673525557745374442442462775722213675553657416153236475675317742231117475337136561332122652746272473332266273142114237435723553713257566416724336161144546223625132122773676423323446133145526243446655355311554727742346132756334231766517764367364422424742575337436327216745174457623326516431474326457264164542434667457413462125753711411155337116764725473724523114264263736736646351111422264476724644347154157726727151471147152646365474112274115723274321327514553423734253655566217541773765343625231645244113635623123321266451274361125527222725226561776754274533755447552165516554665554264657345122267315766735534473133531565376516457265172644315521173153612564521451367464716471511235416766341517637665477356441563344333177251344233614631614764217754364332456112512166166654216373643266535345415715534313644475161427373127561462135667165444354426555161351327642332441224642324373232351513466732376321716352112334563643113116437261373331532765536133443144777736276531715213261773256554265262113766257612332332647636465314534124753134467533711714653423166511326633463435737241546171471361423316654121735742715736166135371631525241343236441333152765615611763677743267233357674274756457545236132561574233132651257134771523347535776413635114331245636727455347231711374275531755442333412245163273333144637146622766437654473723366674461575371516553547217512147737377356276266134417432412625611652517546366273744717251442345442624671636567755457464442667533724314577456554322252535134177362143614661536251517673415125156372653342425455625615256757656526615341614461244135653551657532433171353731166563367546735611253664622134333123343436421122147536231353177522166332264416534616633767417552771634143514576167143352412361651153571143532441466133264433532646217335617155334136366731425511442575276225747464433347573254431511427251746124661314254612345435561616124625515546254655172745524676571174765631467154675171663463344564272756125124524235423763336636445753655467143676332641165177744642121666773253117274424334241624246236137455176136571225552743357313116765575412361514371566235255575515474345475665225474316735424366745562233112543412144737471241145624157351445175412116165322526311727166142742625135644575741673714714531725271724617267175266556256622135766751342451577225775632634147646434577746216337241645131736732565255142763527634111744137722272116633722314377122115431433762264246542113644746161734116414744367345556243641457454265737523162226714631235373357667572445164327212716121652227216375543453214127337242321452314234127455177612545661124173423156567546347247515215411137373721576653517444516446271423363554525522263247631464425557715464256631747474366436272756167627446233447377136273724122127123757712246216242252545267373476715116243165111235573431462133645346272527321354246571747154347174623276221467123674773621265374666316241371212673413676734454153115631751714314754344247624332633315514725366764421145727462754325217612441446712136632611116531362453627664666171774154265142311645131236634634633242777624744222646651653336732356566441254766243752137564366633673566513212237635151121551354735325165517743126745746225362766517336121124547533241164522131713745647762536612326435127433643156744743337117432316131165461775762577733145111442354364134233743313425722524767215744561174427642313715261566677316164165647635165456216355336376276725612516234172113741464234355161643233767477672276345761327245243565264224124234161761234247774362212724346173612611733361461227457643326126377567674242411434512476727742573463553377432626267336342247531716354675651234752726743366232233277761557773372613476736652175336435613713333424773677564615552435236526163426725425464166754131643526534116612465135645552376353645522223214353277664451171637224775227531277517416153354331463753575657771653533531276642771376661446536635137573623517116237136213157154566446737321322246353273422526276253756111243476234443725217136743352254372531463731444264171114532177427514743446523243563614371677651543237475446153342732372463457733256136573512755352523761237222531444235577724641122531754615371336272753654352565141147537357523433721227754223627133717755746323616731745357653766461376174135326123317146235433372533342145511533254172715451111464731336221313622332444222223412216443266226611234377621254425745672132664565571332225442115723474726216665555771124571112774254657517517455155371661173472121517567647676315254343463723135325265252342314741475644335652413222757114436132361166533327562715372323157663123323165537577717547162577566777433652536515616553663142121131165543727577451447746243465667117653366247326464357315743443545432161115746775444474173546224676116217623624557111531725741327331163755356724747123335222244371416725453455152764327231467117252263731475214413155172347252217326722753613255573373437455675631523132422731617341524672452356341564146331434561553242511146664752566333576144233657141145144443713537777725557736632757553326716472313315762755551165154375217247411643541757545664571132654761733136474513566466135347646336442755726477656624531276353217743357241721717762556665433164771237243445545445722512466664454617523271646423215576744744573165257666644627251722635421112521235335323614622124217742263334551373725316711113634641251523261421733655545666353637154135455626731227674563512175713526465157753275175664445556357142671576674224645433266745574577176267256672365141451445134514525444462352527324553536243624466332671135371443722264211473242776376313244272513732463644267551411342766327477774252636364432573541131772743753311665424177447134241251554143423613555174251273711746113621173354743454761117512676427173323763356723322343423614566516251546175676231466631321761642656744644324356426273235434632116714577243612643564721574257471412753177567744335737217636675737245555534622366162172156746633566354137612257767177416313277556413116171317425425467331551535565177711253124677546562657742612533535663165664642627116213563646313711331121675777171612162555427722254356437246147321441527461563611446273236134267434425575744245472233556472221175451321126552314647226177312511466427433211653357372112153235373146212644732256277421627254623346161444756174135776252111473736655713371312125515523744174411366777527661774654337743454124244153136125315613446434771514231545241143515366632676276251664751574712462232715264224742232537527231567712224654465773227573465521761662214611441251572453131512771271332112255273464631144134325535577612231767325672125541164731577571113112255754267733752555536517637332447245663566174341113165757173351474274563472737742557356367634675415263524137143312447216163662542262754456373725273213233433577147244573542255674226542176466463511177555164563376252573332312753772141647236657515165421762256546154251275164254753436544662546645263413132446236673556245432317236417714367224125372227173344357221333663725427257413422756514637663252453336343225667166747523423131315541565217766776672644325522563356424345445345145431754536714351113657424262777442537323125552673352334152352225412535257625114453576215543755636213747633535362662624467776673525131133477136435726366476476151563575256171744536476347127724174465372222316762622567562565375753414635267766341636576165526314766362217126754236227236172743533452573625624356211334245431714351642134737356377433156613124442645152554673543475724725327755151155434725471752644246712171525644477212652746144662672773756652231342637144162457741351567444571136221235733111276433411455245341173326131553774546111265113647146562314551141435447576417673121167227676173256123763644734245454376466376634536246643237563421277136776672366274177314274557566673574463722653362423252551546527717546742237566641257544527573413551555771742645174257632772352527715426614111637345341547766351343224176416513637373467376323561712311163144421561226267723461452524734451133213325353456634713355762447442173346264632415215554354527565174441351744215731625452733112612467515612333137121566162473675133115676232556571666676235625341663543367454335423222146727565653221651625361124456672466544241474652654473626353243472266774753532636476651516132413622633237514617447345316232472775267413565265241275647664133344163145525233767277774753377734542157641355753114774473732645312616514641557257557327524717547632624212467475562415567261135232623244514443132474252161315147332656337665317567274424556263316514447437172257167522316136377257715661767214223276427434275232324722122142574124166223553375621332644751432743462475763332215241346133367575253323221554175723766672332222737472624173523316624625147373615645727441712243244527233354544437223377467726232723656315771443476126776162615127524366166233664677576325516331423242161723413773654526371234375713223225676266464155776132471272625147646555425132743645126156341765162746572425532127731537474413311475365621373616521765744314746217745621762454335435131673477231235711217445111543367547711133255767117256656134573547451565173771713127625621211655533721422122312535427373434513475776252465517753535664141632172712737276156165451237754737357641743174711717564676665461325473411121432434512372371147113743324427552735326647276373425713354127175472344247151117551263521323343224342155274275153311663626164575352451377721536167356741761351176444464466533552417323513657167635473152725275447311764361461364724421634545211142352672131376671343535113734152427617734154135271555476162671133134247554371717276656565145352575312261627122241747615433252541373532734637143356241715333417641133336122736464417612345726714737373275517467727617145637632335475735477436422322447333336563323135666742575641214141573561134547247243314121233557736326532376243257621333546735632653536756612331222455732624527615267176657222235572276571142333763763662523146626247717134451167577155241565446464364211767176145254172147513543111633741742666474174222264642152346642137227277727542162446664211215411444365466543652126615347467132315755525462756151143517446562612421362731235243262632616665747321447654667514242326621676414356523612411461225551432632574332225626156136357135112464754311634327136141777613524764552313566222244751141142434222511741411332467154272317452264456552723747325324743274152361137626211526447313617321635175272374115257734154355477453273133252763511424122557336365714311655244525656372651674632424267244171453352372666757334676436353163241675145325323266657533372777334424237162515244243236576667733375137137422246664326275275171531335457324542547113133752562746163531773351536656263457147334244526725454537425434773776723556131132677354235167651267273451374477771126551377356316325752723462562515564623752622464253565123313574364656243346614342627323765444173667416252743577762724433177627276341266564134132345717337322352376335314617234571212335471545166622562153277556511744574757456451731245555632622627316715764541735751537223515177742634422715227624672633214615721214547742554646446523243545337447735731226574457342565251715752164551662653221155244763253661267744135222543652515225452152261175671333627276361213667365425634425561142273242363541611443146672451566625342471666146374621617166136131665146144147711573554563417324414227243551541612267746411344115447564141325517635533664131433317255771124665651545734436513135763652163452247413116651632155554252351726253234555443427734623237475471327733311254536533316633772553624617251367642634256743332511172573612131736221737743217461572752443547753576613676317376446555713467455645536725651777634522332562521324271773671761145537753341433665374415114112317763761315367757417262662372644633141274732131712131337551135412735255662166277414546625621573717534422722752123417462265334735611463676263476657725244717524326355555365124623626542144216537466253723525311513451664476362422351143336256441615773553373645212211554373456447141525266454275536675355622456574656415253613465356714565144134522453211411157516416276624446711367577752157132613624525163773722612777275311413675446356545257341642672423655154612656524432477555754236725433125313366732371267656371263745451323543346666725774646176463442463756324273174675472211251415554153124535744545415746154315174612114656364141511415323755454235457136754572544624446653432146723627435275453744423477743267161463437247125321774235321651657135371336231762272545261446644551312545461571122316724272167534515162632113314554357177477454144763247557113567236336515454762557214162273552514441312156665734745444774252533267223441436132546214615432514134267443577512667622413156337143573436726761366251412737663567236512524523543511753245224423437321613354732224412636542223457513673131624355716271766371557632112545647265156777115735224326431615572641456346361275711433215417261344411456414533335361533414522677442621452235572321414754337627665246215422111334415213656737626444355131351475155677164667754727346261215267616565575273311674542557672632622472362711441632217464465741134475534125261443776635473171223553346751477646245123652372323772337136215372326131426746211672136142763522165671134127652131354371571154452161275577674231265726175323762271322112213726755651471332622752214336641232731535515647233441562234117123427474264761113457525657262213646617246644646313455254363624272172125613416451716643273555215416721521173741741735465744575435331313514127134141716514274631564626361762616433524474223717176571337427727564136426252642653432464535537616323265172256544116266732525526451171511747613333353356631523561677752766651323761226213364633723111427226351566721733363765461712144166714174115327647156615776313632634443745476463571462273235437614257644423472753132242655437322757745321751346761226415241213517415256264421317542313231451632764622451113356332672316344446756537615737365127416737675352141724714517545261133637717534752143445226163772726412472556253461725637556757361331471767615353366752727635574727161361361117546353666651531124242472541753621655245732276232557127474512164163676413624756244156137577721436737671174473417126731112114257163144354734474377213334546275113527266673342173725451726745567153272762425645357215427325174211522737173776633645477443262674155251372511564252623777225576124733274454434253355655616357362156375133616334762457347215344542412225516542142317344365121475647162643517734365331751562632427536723314327146671176145431723766571131572516467516424251354644633646726311356231112621765463147423336361326343363556664433146112445463436463631217176541156156233773447316611132142616123622555155533455355557653155651344621436372557275743741356153111572746766245374172376445342663753351157114535335574341175365774432447457133557447775115654444277354311335723151747662457233644671332564376773771167326342737317542112552453762172244761263225112414762221426736142552677213733174672725267773711276476311723324723235644634345365234276277623225447233731454224147657616661373151714477645376624773665444675313313163141577561252442227677341773371615665644163447562463436535756257636434252417557725352244732647644516133315463364233347143431324166611433112532354722646312354154754231541725343736223754222636235667634745562166611326641744761557654257127427221342337344143221215644645721643771425462276431653446734626723333566335455227416662676252264537116133511324475464743672731413525327611153434263557241443525266632724121563213571625672354263165466112261612153345734373723241111713241322431154561212523731231352566121274272751213364771125152442344473134443553122522623343616155434141574753465746122677162771443151237635174712724174272572546253276353274764155476136477764512131757477776374254171747637421535734674573433151677675772133276163453733476624123223612225555454722336676471173424625231117555251414263243443725426242444322247322652266634225767515152414631663261426311724512672411643336435753726766261553142413477624671416122627537725233574743746437417312513677662416155463751624674545127376476651657435744726426263675746677475553516222635577417117673474555333675537112672554666547226673437627472323615273652426452342715777651123513323621764621155357166153176366722273473166375122132756456224226447176425255661273472457412124771672644361267217651725755367766157445713233243232244142571667516644445177323746372626277266357253511431363671522124144174732651341475534723276321634334737235362432374617227151245612324241776252472272125733241633764512612537171332634446764151367741122416517552136472471116154251263534515572776545216221146554573166637317627515426447554333623242225267362353135762131664156573626556414643355754377556265136532326161664112727366334264177654115135133644747176733552162267571315737525331241244622132457347511215367712237365141464522665756177646546153223741176462552446257253146265471674115654243376124152366374254254765653376536443357517341757515124713434326374521613646144716431241575241267553643137134646522647737655664742237652766453344622534522222626152231437375721314556241552655562175151711673744422445534112571771515626126323166234116621717116271773774536246161513366366417427536236722656465636276145775742135141733327277772632546447153477175311533654665261345373237661512232325114674312456277523622672736371722572244472421515266367654515727376524274446621436374363154657516572212656531675535374673571452421553737723174661421212461536772166462464174572634746225461371417456615335675271776527467417562546431373174613724616745127176354337456776567251643546451471445767145744533652746333162341374265371276751246444266516632163622342452247464221657631625235426652121345415136234217362125551547752126667472325146716237727264163274163734366164766711123732531752461273642651357161373615167265345564151346574424644245743271646514322356335111465722437147344116647116641642622424676523647351245347143321413665455336634663776524441163145434171725727517717662446446152625335547243313315274547425334536453227454616331751545677433136764426355156713127175764141355253625664412413624645344147316735411316157211563366124647777613355316315347437655671365356456776546311235111117777135664621612467437454254364254366165547741317342316634464711557565243356311234465451127422516565422741772135414351464426617565331635646243723367536272163132775761666572115334427256465772211721277177477224677524464264515617731647577633313264644274745545532625715177322642447266554231114316217717142337613521417142254614525525543776767232474477114416252635511112727643213574616456274561251463654651314613363221161631666745424723255555123537655141247134617473622417221664663477523637337461653134146236726366341635561637625237545561363122156241632714675421475264313646144757253344644517661516131434242631655313771462557532556511356542531451761237416561635511755532725774174326357136333775264756252762572134173116731341161456314674753356766376273437446515555346654372211141171334411363147565462213444651751134665124332422271532775353462466165767334676136273472231576156655564531112125734265512511436425264646757262676436211361533465215572577426716563413553626365116571147123715673244612115734545534531732334123351732333746422216661665327623267473627124666276775174626627355315567663362312372712514365412153741721257471632142323742674122425531756617113227552167251764236112116111112535574772631746352263375315426671342632235241766325765416152141315563716532652674572244262366537376571455752131471736364633515536525764451563144347217563253737511427754744441116226216524737622774762477144265711731614271372513212443457116617112164624655236456623252273164175514177554317154647365525134654525236215535533321261132656543125741651434211633151155453427741445632776437532131257725366263331224325377254467525421147265531644216136153523574356574413276452714627645321661435216657277754256757634555555711532421437335164661754424311171364537563636436734743575136146376151737313357344151421244161121645647672247365773746752462665641445536163123613276715354653341415261777421712222233771466112362172213144335467723214462214532133353571325774765427767321765217546125367761571452552574614324472223142252322366635716577233614145543771223562445156225142433746514214226415652477313227553746731442775745542121142473451165162226336243616731136416654773621133777513175177324255253654145161567552261612633352166444162677756144253443547214424372177271366272621276553575337166377237277227513532627177743643664621651774755341524544647125524417415575272137122676252365757511463143563167111377226554453325554777357777112152274152616352147441516625637155316734317354463531511314267214134736471427156443413653373234741345314655665531773457626342736773554141721564554122124151456247634247443513262613115634762617572336313674124275627573262362333577427121542252153143353431755444426427413642141556713365474241612565636223546725535265145552634222776632275271653512415164461173213215436255344634766675343354516237663477235627436227655224714526416147773565627653737562152645725523423712565562765734353657351223676177457136434241677255222345735645572525371115174223645113775463244436265367717522117627227676214656474334245217531424546445466154714551164726662144517463342357152626736521421524176255611147144235222764135116737554436553461273616225531353346433177756234345647662436574222756475573325754557536162651374673443123555454732725625724253734211633172747443744437232656263675767317414467755427443531556247747772642312317251136422611634731722115456526635751724124171674177212661652546344537141662751462414572557145171554472662761136377667255351771245724314412626556554473231331465357111461744622516356512535714533543523711464544573353547341615172563264224661331616254177372121316524347737274454372623663766226111746641567326755251536135747767154642131254262677753666363272377775327456164465462743613242573514331475324162642236427733224575332363135544721253116113544223656276472256661127531342527331635555526744643146732256447414561355127714461166671716644624364321133235664674553563551132677232345751447146415764352455645671145734711124766665422761656445561375677111427327172471456424274434225127371234154325572544255621453156115332757523212555214177134443243117475447671156777576412257415735764522623637647517552677741444142635317514577652731141136263617273143225615763256372515345536557163515277675334175355712655543461133753655677317756666145513261474772367251313321276722614122163573133251372533544547127423742221634241312564251625536672176332526144364553271273766757361333576423753531147371576514535567131713312575613733124764546216322423754233714326522237575536452624232645357772764171261643572775527775433434624345554552133333214175132314177644313167314557261617415656466454225435566144274365437224164743354237726634455173657572272616154571672475243744341222533733631411511652575163537751245541745277267465545455737136252137134755613651436174616632561164177516277665722533235127466614315456216365171465717523652442274133745614514652353434613267417222627321673352627163665324375217562425624263444464763515254776744327711446714553162544471767675327412656657336645123452567557321453752637763757552731116263226474771275313612657264215234557326127247711362461516237753421473475532522662741731764162435514254631212372566571771476642333141644755235475364564524421664271475263726466135614257631131461627457141721743544262256472437523661566661655342751316356423414762753742731674713244161734216514223517714163474111531724334136657321212632313724176361734551345471513115337541251226313167134613755375222115244365217616533323622452114426233561312313255621112441661334246436571721457132362637126252576553422635762716336433335363444431664747646257714756212751325757247756634642653361273517742541664562345742247565626217114451437125453151474453245257277735712733661317346614347265115172673716314435373373621747557261552753623467236456141156224153322437731467372357265472224632475531443672643262127751113616747513667346444163214313523113111761356274251567121661135545247256415434763331254442665351176733774437256572731374573327541454764521535415771731517153231377175457534315775111262277624654753432525246757561717337412721317763145772777655745762133335456464617517777674471311523157635464265345345226675137111527522362711635362224775627631124175424635111757271712463566672321164657471566526717357627616741157555424674556466515476351366414451332711367345117667636755526174326521661714635535427325771721343225333426212654446471311473521743616351162361144773124373546653233171171336444735551277454242666275375551515122566616665321517336271665136741231222217643724156767165672516632754265352553152162161752243135424153671147464774223332565172644351641756745634257622172712175433527735531214743124325526625472765152636666463775537312275145343152336234174573256317637434172526751774414164522463457523143324332522274674257425173755462624447622232632267342752466336512267253417662731156264522556321656665235135431636554237576332436426143655511614453175245172245276714311253344622331166677714635647261427144445762267166171555342462543457225723143162171357115255332676731423147466676724725453316417212365663741637433745533254226246526415613675742456231467712636677451332533346574511647562754735772225571735624475563652757463162415366452153614452747345215634174623551776456135342365227772321113462572447452236475237126457552121371436475717756471523372451663122275235645733715161537116114326555363166664465174267361371744611441641631267777437577526722513751254247357451533414366271552147155612747616652313652563657174222773167167744216563153441362773264574422427257727435773232332762333615267374217354244577643132466767575626357314132513516232461477367243217232656127571424674643711636256273567513454637217613374571336365635777355141753754375764737755651442417333332626257755461476254432774627362544573612567631656332623234164457131422677773762625111434253511533766167156446541452524243513567167765713641534513765471741437446445235513671361766437536771754627543425714752141725161773777361447171663477725236646137347416643563754224315231234251214254741427125457711534641455466114521764765424445517214452122133616724514457713465426154477524216127561327211661434342113176426237327451373452635262463773645512634571727376661377647347634324471761262334112361446373356111761777727342654122357111456466466667663627215726363375442321377266355556571464232671536651117136655432313443175274447336351353242774346573713532377424352376735234751542142535755137555726611324132276423675415327476262763136531161723212163735665625123436322432534256476762661453155532464727163411451367545724333176354746746227376425473364726337154651556517546411251417112744163443637412356437656621632246645323575636774551636521524147725566735612612476562344536142245124637531712342121465731755213124411473675122334574267355217511363342732543116656316354276241366634136314725724555413243767127722446461773666243715321631532445111651652337165456111364357734435633721265264733553723352354131623336345314677256651316454257452175743563264222117141225554611122726466615346567614625413265416572331333777765745421371627451321465531137136733666626712156212362755271214176555457252461312642157616731347216756724363524112211211174241263371112447133533155276217724143372413647752345543363213216624154424622727243731377512333135443775577672625322361334551173557751532521614657715242621621176215372554655442453177463445676427357435133677235555613151747623657623435626742526317626133224522515141754641123154247753464156437245452757771477123721261765631665424721737261173475523532426614457241355365565145521113364145623537764533273717662614252776551743732524144555635126543743617725322563117674351262246443634737461631253232677726233117513377256353571724324436363513653374423251621734556112157341726257611247242444113125233376462221213437464631341744661127766327341514642346372577255271216231265356734477236576425355376212331166662241253244117534464325541661557714232655267354723446333312477577314462321445747415237571751147767536662736532564216166274271217352242345222477712721757476526444772235147226321423417551442217726131756771733776457436463724136653157151364774632614564177572477725743171661344544323642723172265671221477525173645142434644253633764134277117474317564357716363672425255166246562647276276237541774422237154133227351117124277361634766216611134252272215634764141566577357574221541672575163611766635774154476644144323142423432326225644313417714446153426771234756653214654656432357612412544343247572167565521756746271365123446417636524466454457371541442616667643534163142516646633776371266354531351566656635527121157216235722747237125117662775724134751543657762775526676176617414221375673712312754654663554435146377177377521137535224463245743764714733726221114625475721636126536132534346467253723526671425461213367724662121324775566131671612351353753365426136625533722123351527116545211223725711273414752225135123534656371162272544351663417212475253222322442736353443174236415324735351436621556132354766636362164713167641727533162467354114422724433327533675316455312134575617443116261462312141512126465265233644554522142265467671436266122376753445644173731637174123725264773446224624131334344156452277676354365651364431775572341667751775335133363135246615263243337531375117555752675576314642115262311233277176276755516373415343525637267361211715576526261636117664722751262373242125134331231321722236346665113436253715741773775327354243165432367657364354764636565422621574733611137576216672551313515575311511715766717576164316557447271351362261163152762523372346366525654174213421727261532677645627375126536211224233476675671452423344237142353116357357141315661135557664133445314331356377266361255245761324265522766726756526733667365521251743241234133614517167136772237243661174417771552652575426631664243343634735112362552214776176513151453147561727175417727741632337415122117272332174776173165422462264365316531741351271527363531147577332124312347471653712276372453477511333677741135437546416765325277444734131134776164736744465326472165511715524524131725374146775225715177552324147242662216226741541462431772476412512134645632626164331332671534724326623476777617453515615152463116777351252343477653553452537241742777224367631736274643715632135336362111174316126513114517123666515125136656462344554244147545336731655633571736315141656633465472567253433637671414673566136676265213467163753225614353267767526437117725333645336175415515576333434346761466213232763545324341524242757226151373673267732457631346553566574534134552564633525753637327177454167545114577273762356472311466775141652342451151217247327557456264362627175373535453324462427256114277316756422357521267333361172633655562445563545555621357477662241617263632216774665614744742357452467753265175555455163566715163223231657571267735544123134734361513712152271214162474726523251342642257571532332511274266425443746355336411555725255575536214427446372344322124652541314146617764533156522645323516531365157246531246711274147322215354773726663116717741546471522457156351347542443447624575767334352317345322566333245726614541365515652425774621364276751456475367155437121614742453461535476234333116132213617256424576356263736447353513164213744425452372615542477757466127414156525166466343423412452363325743736444323247521153441561232647233117542157231256423512536732765365351577413431473654231744143572431511653126266665471475222412756127325627557445176357271442656572543326374251172626637775264254327751611346346537524514344752423322574747615462544225762377432274455262242111274527316555632162647466623225444226261157643152245215716432176522542557554762376131532565716667134323367675237132126265176665771422762751663517711731442437226362561666746326221414661744666625174173266732665747436543141123543362512514162577442415731144531157441521221571445617513637323442576547773752217712763357312765135112711325537542737476546735451372573635511674171247713717666625276562253344663677712313363365725765123441146447537762331757561251772347454317264264437526665634723266223654514342616751541333634254176364155571171667153176373127521466173664163363372711743264336465415664413133463563757275622667421327662376555734333363166245317433622752647332176435654612433417762277364437557513371171245526426635775347434515736257363754736532422175231772526543473112674561724243167251432217666261462247433757366423457771777725765321254642612543212221222213113534563361641736341573714144546112672131115321256435727334117122412515536362516452344317631533115265741617261736364114711275676334222422431645514216727156737572325457714272754475261315272151313161252663271631461511242547617335454654213376545626152327212344213571221561455246745376231466216576611157235741757577523762514463364463416223421361354643234664232762344156517657776374726526132432666374156253344214576547454536714655364321746477157645774476461265624455653623522526426765525734436174762244717171743533324231664514212456741151156543776521671351613141655152271154364156246265455762167666226225554261274733411317525524435351135564615472152373246237773631644434234165314435153675666243337114646446276641457746635551714126422356166672137735627375567373245312222222534521322361231262516346562724166542664233456475667515565766365351451273442412317262647446276735112243676741312321425563413426126453634642772125377756437662415552156443742265724733767756221175314261455575476772461467321422353771147627457266535715637162337527744637666526412472155165412473467252252735715165364212743113552411726332124632472222327742427677713646261555726141414411553543655141666145647555626367336712361115274217714153645574647441711232762373414122417177565533633757155476747352624534612356533241156727513642123617361626613226344235325613126411547522522745611235161742455236212365537144524757766153312146776336122226511235224123464712512536457663545677413126374115365542516676254633715231172412341125377351275572174726726177224455316233253142463154756656612267721535262517156365673662643761162256676257255175775263451761161415376313442252753571246345355326255226554712217566613657515257216731726327531411413111163711733636727652646711261472512722216571474363566466416656231342664444614244432461421377213351547214676422175334575726751316463413214746366122673465352512351533263661537433612171625167426612247536621755257466552467443344551434225434242117165235372645313566222164611732732554474661522711722132512624217376745534717271313627771272724754662445245356327612612132435133511165572431352353544166423235517615476651177435723341312635477472341246357413216552614166747621245461337261622476666216212315321171324343435565544575516647573672734461723512367757522426466156252621724315645632723175744642577762165635322226311722626372553562117564426657611123276736314664174263626523574616226732674463773531734675366146662665165424725362574274622421421671426261774533673412714367432533565414523277561123435174146322671333125556545662124545352115374521344123676464717473327441311164317722323312772742273357511521243356611232431536756423365356574742533557612164763724464212173566733327222521337732561213422177614345266452425511761772253454454771621466647521626727145412746557633613577542734626543413521565561152341336422175172333724174653251325547323643443715216726513232253131262456723214745747632245474177226373366727524321373637416127132771331333216747771373344246151351425641171665674134471115734252334712733113613416166376772411645456652172463744662413323565663537426546175313161423754334133477542516437377576652167723347727114355112231317376425517255167171635557664735156621573612322332524373361755662564633215567613765535754261657236522254722614223115514143247253745363764156617211662466622651255115314132613733223363255542777572342756257553265535753637731117355642467455165751455732135147264652221165765553531434757663713471533753652421715762466456147527574211566747242641217165772644734344424317334631743662563167453221672434477154352651326534613324324576135254622727742645426651414263167725477612527774657534716424134726767761243244641615415357762575375374422655333534275134134474244165546645567744465377774335152562355232622736475234335761417566614547623246776531366754235174176562564271171765213711523344745534673323433532242444617245753425226551224467725361652177564147751637142421512332536736724541547724622775766323567464376154237241724225634576245125555563177733236651455146754565245733444447774753131735743313341744217664173572124321715445762167522511321577112644745523313621672164215275316662277751412664765373624553373264523527761241641477173447171437111464562617774744154322433516417666245536537243652335677241123111746521464472767232611746147452665456626366465412614721646774263647522541427361452264257161571764156434567416565773532537721737544477156127177616263547442644521362376227221172241615662746421546617622654175331411267465446434424427614325257417647577353326661442343116523655752123761423222357623233726415122325614656272441522756457312223355257645575752725333211352464123641625325214426253575622111514171274125657222237621313523614334454756635566123114135421612534161517564443256576312753255437257447337665373162714312731473517444476475126334644375612651223361741521433267565236117275436156243335561771256172622743415422247672341462517412613277541374531612756225475445537257234455747132247163533477353372214753451465722621213543571222453251616164556742762441731154422646131756533531646214316434166263176113167532526547177143552512711733451423676664563511265335647153331474155643233674622466344352715245652347652243545125152421721535214557536154337232637111112365117454441356722736222244254613524463237465367463415622457741413161425454214263633326654662143353525274725444627263762567764422763623225763546565174342251724224575231737414263174422757251672253276313343762362743247265265513224245511117346443161117745526152677347447514362761712175557675754677655626344553554165653542437737124717555232627326714371645641562455432165341413325155333721776354121336273335676513347632143771523556416742542423166253357667132417351254432774373311657756652232267325161361131362561455454567716147767137132372647624553232144741157262215434631522367613137435552572712646242433754655377253722271312667523755344143562527213344515675666264131535215566621164636426114144456531462143624142536411322125473467625231434247423374325641422771654477554167142562135712254364443122177517513172315116345773451662212372364563735536562462631136341577625474116674562622314337354333436317111177455651172534562236673433545545473361317654334656457623276152533152223221644322361264524421764212525757153516236264656221411742235132741431345175672534566762116721236362511332121363753541163676221157432555666126323761711417322547512651551552324724235416442616656256244312654367112542426717566525441173351126121416557552532424167217556651672133721165342574124244222127216421732131776247761416131254165131223547766724613155757175423235462647655547241567354475256513441636633411434624651322736777244347124574557342621162264274112655771341136264557566616345167355155121443363731117672635434463277623166525732232131334261637151253552545257364671134442636643672241515242212712116462756643332466637355617771222761266253476655531776457451573672131756327114762161747715265665167276221152642251254165615374214344157274461676124453344214635352771717465566562246413223616545744156215773652765746267652636344141753554151361156715173266213521727416733253472313213541563155151113725444715245575143212637445555267635326753622547151244311777615677433347631215223441271267251752615343246477231675616744763267352217434465321571472277675324243574537377142223272511411432267547324354261513733124364331646623766314154225622144563337424327715757554267742255735271232574565473441271275524311247253542222262437656717452223247264642274412656645635614136463412216326677275753455336753622253373336225255764323167765356465724451373237736462761676324363775534674117213752241341214644353237516327341747274232463166425737721653726124143577645354315721634723324237543222225743465377462264416133726342573461741571447765527423736653742412677747124722665641333132546117276375327732313116343765142143774734465467632154172467314522721435164744137455165245366741253425245642446314223757516473531263727413741613236533673444121141442424121213545332512267773716152324637151424361553671672212111353156153146666643234323554766123331347653552346762335672411313657175263647214113245746311542147256616363324724452355317363567514416436667372137265116754324376256722611651164213725723566227235727322577626337742654233754716512544725616553556645367666366341625327722677145153611771526663646461472653671415715175166145333371342637121262753573213227163314541624746775264645175417416741424517215224153431357111152166132513634355752446463374413721523115471747656213752413164356442153614712776627235467675323377514266676777651714544543316736116636525326415475262636376274714761742574535216744237767171411111176465142554457263213222364575726554352547226236667221457147531377136313345162741772131134126356272134467316574613226233645664414727375246111511143776463243614376347163775157263572551164466117143752462371317677155364734654762217347616641631757515212571361621766747644147145715647236476552657545633336353764662515565533621616563717534244632114562335636111766267154671264476765232724726735754752451577241756612773416312217516143234241257137441722653174145763315633762115753154242562161766327224524126733231756234453552414545127533325641736661347625267543365331763566663552716671417475733576615253144421723772154214727261251116323175216577115537231357365376241652362342363137763211142711635713153477636253361573721111375176424764157176335525126131351761633342756156612364266113247457655271475314275543152162317464441161232263512256574174434473141357573631272637517216554323647777756352372664646661546113576615574532773262756536524545735615565232331567165652525223616471367114351437445332615436131672121742467443527353535317224423536534173747422357733465511253635527221535571635727366137165441212345421261264167127134152726751315246277435245166273511173711232646777642567216236416617127334542442536126746751532514437563341415662673417475567142525514231373161252623564243347633313735166375533625314741375462624227736777444747677274344173365617623523661376257317734543773574657342621661526556553131431721475423526614177655722346421633674547711513322321123357323425774347452425676222334672736367771444571744443476533223526455456422272416152513375631212151727672132264261544714577631235431322544162412555256636721754611144327627267446214166772277677175646722757625545265275325324435132135222324171621531352714561373475131462112363347514716464625365172241461711456321721776551317221346514715254216221212267411524667432224142453374525655635171467533166473651271564451154763743137445316673724112441656256664366333364164466117354443371376636573123621477271146613244364247136457733163124347131555175622535512616226531154171345166651135716377122765123522667316274327111651773273714367655527546172274271311621122461456347424343554274335327433712757624757424771412235776151443651753441512121371435135743217476473147121344364526432137541522372676622755473166732356324416547737722236771317223451313654632545631754654125747315446153637723576714312713577631576313767672263153513723314377546311717171336534226411152412357321521532764556362223341471647523775751341626664717334513772763252161315311376617633315676114443653174546565556542274765516362657251734514463247567167641676174122215167546763733151156335246767112712755654257474671435342131252454642437156125616751575122147415772156273776567374455357574635535143652354232263641477467152636442137264721147535574543452135611725155647673647337175563767657153661355334731673713561761745164442576343147236536176374312111556736763467313256767726341761736543533262223541447352477465672665231461613357435472633714573663417555645274237717314514264553123711415335161162714564123661164476547313211337541311732311431261755125337462556617113233415535643455217366445446446772444326213541263313377144611511754311321676135557117224515757764625651752654443543455236735654436225322477254522276713716513346261722172226512622633224175531567553164417477551755316731524762156455726155744242674516771377414563375273111524115577567531413251521352762754675565535611751317462531731246727576362243251471451643746772664655513626253424662655252151342736426772631372151247165313537644525426712752366313412153535533375757761256316356527146412365516425423552513547434447371441333165537224315652716353314567512221714727557355645674244613775336527123211156533323741433123666531554264372155421124377513112765143451312427163215636711421627334622743375224544341341313566632323527241162457314437577257742275666573673261121654634152747376756746447756767265752456664614523427263351361317224451446231613156214453672734665233471524515233145424174367656412153124416331736571171631535517114326167632136715136112175746747411412414716571413333552367255235366646237211243415163431466273742626442553612162572245313323537112765244525745235451222545732742251265651444167645157424221426544753547625434337236177623166644453737121556322435256351567465734237232427252426354272451536532165122363412563527257546522565674526654215475741176242124372173645433253734531541465717347656244727235637423511651442576464321113156553714265453526176647411522136113415243772264264252113276322334776412113443173421723343315451261741143511227471474732463131356353567751263143312715254571626544114233452766336627546335316274526342517776641634512435267116572327567472265341732376715636675137777147276133346566377264754567671715744641276146115133532122111113716563513531332155532753155275515355647233256555331435135664436365163175432371235277714472346116624135617151373724734475632653445162653661731334731562265543717627175575677134536676736673214275116556446353635636541422642352173161124752256741624756243572712321433222546464645354272642754316352614161727514442172377564336154354762275245613223362352774613347756366723614227555122312113347445375117371123711513744245673637477317251354665136443277767454324245463522221645412132142177633467227413725112562776374423417746662743345156246635575246521515315522147664527374164612764156611462617515356327147441736345345325577567226267365242245273636562451321244772132566173634131127264425643353665143764341765761617452247475165773271724232732132161315357165556775111534147362662733661567455266171255772741326633121261235764575624424527652735256276421217677572234526614271725666427652653632147631521342344243715112411713227112355512746453765616246341662714242713216265465365113147137437755245477326276134645252214141165573453525455251735553774512527211667342776534737415126567142174363316527363177142753641545155574745716756456553651144321746627223134121175144342557272316267122544147257155521766126357166212355763712721472712625552562473642542143445426717362157427671365652755333274775735342214374422226416342661252165512743473146467431375553711226161374655152727754123672163224224355142567162161573262471733365123537776724224314532763166534346611722523336677253363613455121123316457175175713452734271124225645424445154764233536157362714472343727446234667243251117212761125531674421777734343465415515736672763434645731365744525277172762262544137624163767431362263463622167512615323712156275434714365415365646317712316147614414733614453231772173234141242673217617244661771277522357363554176166124513673633777324263641452251272653143547136762422726155413423717325662676616247453277637372572634634724625433571737123153342646423725416262442644557266423717643146777536114261755765626231325541432316226645742652355411433217454725657545443637166646611233311633411576232537546422423457172154636715642224112654117554673722475276162275615273524573272564735565564114575315777467116466273652527131412353754722144172721316452615156275613225531132434576454634432462154515367514641321276552236515133474233314761134243732366257152323745267767163422124364271216452645676675575156462121542763637135725615474223252463647147423537341122573314532717474421454741614117366627214475645416565252352154713776136416363235213722366673315614421361231653363577136626361151633662616673323614616561536545627275577476732332613674756743525455336375277444745225735631214142516436365323617442345731261576756633561424725652226632742731737623272334135534145737234336523525145471714466712676621465457732447211312757761141143212656753231251211317576612717331526514136264215455425316571535617672216224646523355177167334136226346372175641315225243377774525463423632537571413346665776352231573767353332564122612511447762133443427763332735236317564453666234415474731335257722761437725742422372776731647651261224237735317437737644732726136162624611351334321315111223227746137622757122545716417531263257273276573514762463344421456175124545334774514752316741725726442226151452133531753667772665541673572731253536745233333622476665356542677363157713445741211177734511761717434436774661622142756437637641775431441127223527724777654657147523657761714366362161156543441433711722212651476526733511256331623135256434615676462143171123116521345322773462441745264467612474642565765244421616545375377537334574373237573765651472241135251542261573664263651112345447366332452642331741335547673557676432711364526624766544535112263746346315151153453336722544153356174745554751417753765331646164714511265563734733341264341267667342462251654341514522357376466423673737715552532224541572532475675371213157244575243433677147647467527125143522346772272217414452334356163444512572131263324652116553463737511671275433665352574362747332324424534267666425776434547564136667254612672643444271655635437316434135324411155465652356133764627433166637155635514131654253656722431235332734415712216745433235411543467663445256411475341675445531161256624341211362126215653546666713766312344574675616415751557351756671244725314766746635123751167747275667411727634611323722231136145544676611715466631244466563321114564456546226272337675655226226616443331243174447331125747662663521153261511155111223721726324776714343414422342365777112643333333766322775131461267272465731374662625126542612742162221634753553135557524616222331453555254621125512654255166312466153667263375767155474212254324131421547111777725575227445261674745233243244345725546622442532247152316733461273757642217364617516756752312432637713245374665647655442714347443345172731421225172747242717744312132325551612431725752342347771315536425476642144652116432543774451412263761365743254237475774341513623341376773321133114514147322625141371111453656151632356421513327557561735213237234551313564136114272276737354416753224574117711547661674532173112344124545557623723172556776377644356742516611373523111711632727456262544435656241641741145431467326573355144767145242466222362425374632547236144762231152222554315171456371325715137246577757621321555326447342765112162177152213261113661735145566765115122234663115515577413171671522245571267562332722754374564647273653772762126431726467155543552252442741263125221266174751336644721226355651413432441146173161563626453152214557724731142362437723562216437716171424621157213315675715761673675656331456471132531243131437711415352426267473656712246372464435252425354334513515641671157423242414233556356722525616713755311552175563437422514475216674456623144622264327561222652632477261566161416141231244442546776715275724254772214442177253263775616421137547172536146774312722573355571456465731534334175471641216755123673366532376716445532642641562142417364623423371155442736776223554523275647316434167364354116575357577455416342757727456177147664654633573447535647625425542422212715255432515212363236713356617771427362434264433747737366156147322251535255627334237367174127243372555472165111523643563224332772167527146656742427617231764265413455471376372434545561561376746315255414335511355124313344351112747571324715242665317633261412515666722432247535467363712752333133625151414557427355646154317732335134274663624653356354726721253766427776451156424442743546764263134144113121763437644331321741355162573216325657754316531724252661741352124613777351234236754133446465776477672636761475472226452332233173272376264545316627476633167371727266126464325177261254673643636754766546262773121256735331734523311315234445661715621563555341513744571235634135521776355222314611351415217715666667525431672273442573334425114162755622123352625276531264614324623326521757241762544763555226777433425614541631724434111632543676251133417573576351672174457151165272432322573432533653422436646456723254444117454651323476463247232457724544573277232613541774116455467743434644771361546757361346176112555163572721215774133366117111456115464666771511114433453375334334174674463554676333611331174537341132412676466213613747156433577674744143773634326622537573154743341144555751513374567447145451225232771416467617477354452336462214515647516517547525264311456577357244224776153145554225252133261215626436345642537141771223632754446413346133277323513545122417164726253166527443124577423554572365323533414552164454516764444713534211551346456323674514242652235766135362357272571341676714231737754513737657137265455346772216174455752657764613441376275516416765564662757552736266716667542441227525724161265774715564532116121172616316435346646535212322245356647472254712617652514656163721616546674416716774244631657252333117711552553342117664162176331652763131316644254144554665531636234651112176425232717476152344177675616125176522733774521746576556341162562545157551122237176764711731227375112151162426336345137332364324135343363625661634431354612254667424162565364346113157642161547622342612331174776214477716774657213463637746456317757652651455377556243231176747735132231466216274121544654547464367623761611542364341635413562212274513566752277623637467155377431271561365616671374343352211255476554614515475525253521742267637416271651431273122363457617762743664652124145556716465545445742422227532357135726664352136744227331314432534246126564116772523446617363537244165155465365437115766725367375624521367216762773572574232473275647676621537127317577134465114661662544636632565644766426247726725363655551737434233276133125736556145632736711534744651163676653561363677571653451147257456435624143433313511746153762146612413126463634275372227537634436677172151443262723355321414766755666714151517113447263223742547446447266246347613733266664151115763771526462444147476465112234623234316165433141227767571113526231653672445162175213264376557463562243376775325136356726674744332446767677422346275176776473235411317371354617447257167147353223245416445737664622632145762415143673431343243635721134744214622322665112436122534647444165567621127632275777262647615334113716222125445156274452553375726426342663421236745423771431232175142327752715613465775737163373221353352562354514413125233663316443611777326617452663315765425353553153216711146235676376752577765463114725733765545466373542557337152554366555441217751224413551655733361337174326323336117465554466715252262734557314125264761327312131251563351372713424212453375612746226453613213665217455124615712634671262414762512457251742554657237441622217572757176264541136162227322444534732742562247442361613754212575361455644167125364346633355534252321124534536365722616244627346612614477744672575766513415543323515364361662241131722363236462154573331327553657752221444423631372544767134332431744121462154115261771675441614172413462667411351347531375475776251526126262326463546566436236154136151161213171446235177733642364261317422732276124544656233471727241314626146742426114737367372337461753756762344146652672742116245343552452776424411671164416233151436773174155425576615456211417643432752467321262764622542713761235444722745164473155231533122256723314521337166314731214437744656177462625735656462412765163447367346622424313242314613511766725762754236651215555147422627523422537343342462146764725217372535727155423653276775576221257434346355126425635645315347455532357315727761545241162526664557775725437537615521637111111466465272134127111573656571712761721551765317522511266157247456642727127662645115244141166145742344467456653355761516716533447665333462266624433614526511144133676246475267534225677447455161557375244763755371157115163672741711435234423362577512321612116217363277652121461543766157371322451771767212351445645554424646774215315436565632436374156532443265736462442234511447156742376726522571755111662736154657111113766347434165264567364763114225525351325134653221262777411722675543576411167321551661622735425261652412622564742737133445171636125367643121615712735372213275211641624137311213426266571721532636732445477417163612661663146343345412361233242533723722437275532364423636163445141354617641334554126413331576423667252336452737452323567737673161215347326513651123462576555764125652723675254366144215764674216774316767514354157662362752412323743652544261766755324433663225523771354713773777523266545267731242477711427711153412257766162317541551632722731411626636645167735224277473726156252245722531545366117757261177124333135321415243144152171317323156373236276714331747257371443652612234154745512725643574731336611753467166747131734214777133725123412421325331424155566612314221561634775632765574363154415237216463773657156527266574245752712752353731657643661451215174474672231445632527175143363713544144451424217362471227546157525242711752564533163314262117251716276273553137557717521641577767521447116533477311454442532441524677712554235265323161344411674254145344766514357766122564653371616544143124662652563143531271273247565161466664134552734245374621616416566554167636741576335611611661631576225312117356172674675763166337152712223252263443742542257773622232455172312746353637145147443565233753315572437723747645524173626214645326563465162256731347543565153775653131637745651614662141666166655257344452136327716234332141136543471245357372314337654177374157537654413543114436515326246764647135666143443125117732566465262274654671254577412415775653463613212661627417551622522316755436667256437417365451633163761533423537374345474141334533142335611255216743572126143737344561461577337124364576524116733523651741764676345135776426323775254357467156123535335377332622341116165164115461125754117263431441356256677336552257657716251335373322371343321445544546574627567722163236651636522375254657636742267412467554345665572377373166324466645633276755546766716335256726614476735632425425315242777772673243136633114745577413514624713447754637257644414365747521111466553256264161623262175756761236115422251777753312523317225442363226353442551713264446551346615126754432777212432115754227177521437172473313667711416122132173445466626367747631771713226447773733534363357352363454216142153547724554122747316644474212626274215754375572532337766521612523253741472252435762751743233316633241471525662561777173325667643176247222121277277117542447325536562415726147161211266433455242737312773726126151271743412146352412512115726735145152524641465637111322724117534333525171247134744115317132725553134553711115411224144141442226433777477522352514121636674727772362443424653134646133113535444564132474263515362115416762546335132211631273743353725724217132636757253464767215617412134146323231255623223244735716312637672225344135541164561371343647536757614226174113672743216663556363445166177412661275525314663531276625425565664774556327116363474375157527316717355116111151421751655737761762611542353571532646734641637737212265434113166364366143346342355514367761271237666674127163312774332332552616514565176276621127564127275467237726435444347453421743653632556557332161634572155251657242521467322632724415712447534562133273235337532212775133115665172332745472555675364117311211611253446227465265625436471612724143576541471227711655525527112526767743724146757246721512622264254147542157165172613674255315123541525143752563643344652522235512663371766345533267656132465257336776116743527745133736276123157761672565241155661274124145544452552142757764554713436732676355643746244153431222655451652527473671424122475621176645133325364755736441612463414312124467216674416354544614366117231671622513354322761362121723646145137412757312671747242434632435351412617641141344357624216563231373653651774127666741472441774145433732732545443431561146236754416112316563246512572715642637217132364142457341627727523617622745263611265112175271243643735122657332567272512441655151454277475432677736121265344152337166137572773176111231775423666666662652253562563717727662251256746334552741111423434523742166774737475762174357512263667776716411451246467214166215614774515455512747525547246716677377652536211515467344272773763712111253174354113137567767465667212236467114526133212122157751771225173114666413124237345432642664513115474344646472346213467666437157627354152711254165545544411435417556263365523233111565336471343421237667451174515564431317445716242323267417161751425546523224247472622663712177242737672234641521124323613724252454435667445531733374656361616744417176243126113353131767251766331451365776621355672761776215157125364754655773563663773625342464113511376776355754344645373631351643774574443237755352222416545732421717565727116535156327275671744246314725125112517541662363571226757462364175457334513152431554452437667217145717462111344521267432512542557251326647674357477552723216564522565542442261141115311532412253531226552772725226666142323531115336115414617423321235577254254127141572374447612726516523152464562652223556556762644415124462242337543717676675261642454213321563647141241121557754331743276264641554717713271276622625356114662641431533762213175376135155534131264341547172411142165762555151211634721731272425644332627436556633345441461634412256557512477354771544623116651766654626275243634771473113162272266651517333627327476171427547756654725757442474453354526472477365761675553724472747412352523563473652531734413676656174457646226473156152532123672623452457471252567515771373673175343627551616265146746776466776543124113264213637523533312313266572312531342644637274645766225265435612145323115235622431463172744436533576776613576761236446734516373552562353124622635573467141171466634112515266563442721726145274767517151667556713225411424234744734142232311223644325457114611325132466721753231764633555255417223553355552116375762357765635647215663332652413211345355137635557447764161423753721656473565444527416135367555267356136315253535575412241317146264717642477753523375611643656464175162242257421162543647235114614534751217152371556143176717572245543175724153342247566567537754542162653271624752731611655664432651735364447155441542631436173367364123661777445631125161771441466771477567635327532357461524652564533423576241114231227271767337624267637464575312443474673636727457433471761623761331721224127264221562661763452425527642463371134113473571147371153131317631144675335516732763211525655752276655471262254344674146644343662547321446654421122625573347536724745122616362513665546263257151556267442412652151735655213322567326363645734152356744675237375437377764467714143157547373233716137725575466213421474424747251253166135665577751122654257316423152765644425433634723551671444753251645417263556361535715262656274371152171356275361752677767616457654164233253712112361451353327476116641156456151226365434765135646443662547545651611454763677465341631114777566747715415164133767164114514662576567442252774264373625375155434414451676175634254655324134766421167257157642361766632344643616115734743737167375271325122522533436744337257117746162715277553115123456463325331132333152727232153327167521463517643251553676773335245331376766163421575255765411336162133741747321411327735515632441663161364437561633537317214442441161137662742744427342472137274413535425622235667735264377427172454326121444344436255725761771246612524761334661626512222411645625711471533234315267421562766441353512676322664423465635133777244516716632227671246633546156174646457454566647753766334252273751536573351136744443466115244632626415734157764527177172535312565426232647655431347457533464642475231525614457614552636175663133765756631416467155441361247454743451354514344462135474421565163531566247675455571432174154752444414432532467156311611226634161642375457617634465657672464174267411266357344724571462647467717741161735163564164243431476576574624616516175514227653633513574255657531452122544523125367746364252146313435522265516446443373721325267624475625367334271531743277135716455357217343673657154473377112146614645762352646564334774615713674361177425723512335725415216515235354436222612145657431142122546415241764244452256311335641225775612121435114231252326212424135625727164774431457773534767573265171127426262446437714524464623524625576416752624726377647441124476366341136231723753757735236617546462616431533232637534347241335274555321514226371464722656111631316752722534475634336535446623753661773147516462145121566557756344543151741672175676766634742616354662165156466157757742456636575353462217147165763657224717777526265416524422321626631442552525344214177442775756551615163446162524334311577275164354163427241422265526577736644261711344361343653535425312215625125262621765453726461323443236751476762161625131771223566113112262267315462314524546726726441557676647527647423766671514547526626612663551723223712762536422313165463742244457662211554526651377735343666335324555623365253313327244634466322177651211647317631766353633665275253314562432526615654256555375723443133367552443321656435364176434156676563637353442425154564341155636615211137574645354232565664467442262215365653527134424214754721137362121717472416141612277572716146367562531712717717231221332347176255331431723634747762134457451275141224417772466474626454313543247471731742272753534472143327744714116312533747214645252523537321643664257653615412137213515531624224661747431263476437717564557312117323366416755531632527276237341363722663462344421572622635572722324514162227772763346432312625256621236652652151525361623725442435567446744253225154237541315651337415311726357166412375536324451421152154112221753322775737465536545152474716215437647453423266254751332722633416474541124453371666132445532172144422643317557757773231673223521174277641627724733546537151434535265351344357742336272117372655575223356713712134665277126323273716354255556753451261114656316721556164752651126335547245216177144765562741162726514521341251265675543651157462353135163272431327766463412441615211121452525651751527277535735455666134316113212274315377763442341255617521252512134574673357673722422465513153376767357724674377441711573177421417355247646367343435524724176241167724672641575242725321137144164265556743133747152714711735434763651444757355372563364367133542126263762726457547166515532226327256645137715761771653446657523541436331233141232437614462454721174621153467614746746416654366566251377735627425421473351726675523642646447373255314633735625377764257725164412142535722513343352761174512343557733635726454611221237711246513516173675633245457413474617571154164464341564442314554246225444743321145125451723377726747515271444641443222434774176663743463636313457773235635334224521767453313652641174667524236611721665316715163213612754477361563662414474113545725324673732177466531111533376712545144537751126113224227647531116532376314416421144675671555756532771643314257364645424572311264454551722537675262735315545555224771713277256674267721515463115516627147155154413516666336751632523647565464744415275242751743226612562427734466316232447444776657137263266646467323557635435323325445773756536561157243716447172746445734776666163117371354255542525212712711527131172227655543615547142442515532652275162747441125232465737513777216636233217232144323115776377312375212442465663414636545575536755577754323122354151724513465264155142565177444252354645374113627335614335272727244647461761464411262725455766674461626636114445665777645343334714167743653431211727614541214625223131425162112315376764114677522734116715136457321226541337273515235246763631673715663626757227153767675251442652547733741663767357347176434521675711316414674123751177632374465267411362752564172272175425373123775233441627427747367733473276415242416517553561616713352673554361632413471166147752377677254523676141521726725633253243157641131156137233225727236643171256311516423545176662725623342451211372335512411317513364537166227257513273545615766336721121733162154375753545433357261472676375573344142326171437456537726657541264672235754126264737743631725745545151566261226623727313475212676574652412534426121753424145445214763235517162164372643261724555444761532452772422726344357145672371345524734117371246713721671721175651354765634742662363442446556455674374166664162221655132727754454114414414232554642455556453222632413245677145531766444322734126476724613621374573457722236641571413263666136576135746371166246321541246752622526234154363177133216243147433624547254613323336641675222356557334253743476741726716531777555517335532172175261272145354333723657534653764624743141616432625323276664373765361776166732325757277766416115554754574477622317421437212113772367757426417651714147772214613242241112654742134541551612212625243344643336553121266361431714637166643176153566726545727222575624472723737426217115677612773655336641155127751671452543754342776764272774612772157435132466677476117371761271526462366524515664615555545674746625154637421171551437224174672555272666537637726262174524373442162451444547431461712374623267517755132475542721712231622252233332734113761272312425516144267413527347647667127373155752472553745762166156767627335133213361776565174712611613746551172541547437231632123225512357661734222275312316627352733372252455717347171243735152356615143272124751661114421226564346262513115413621633475621517145164454766547121325665457521545253611421274316552342726761155613374346466237116332445445553433664431361213225251524261646123511154374435167674646456553464145263634361776676473342227676312122414133144143623346573552313614255671315122413741722267437633357751271774254642743263227312651755175215623421534144467437626623322253136477553367627672755556722447743613651216372462761436457624612272671632672142351435374365757316677752253567724261121456165727716615222511523332335363312123725625331632173437773423654276611362736132242616515151557267147317674627144335226734273133731161142633647274125637441753346465513675252311624327463567735775546745673123376747676365571462247753542154515371272151721257314212576113555225446563665174734445625626365717654424122522235712664566316117264547243426651442632372242744754347465746533771374524641256155411561355251661721413171336134517765725643621122153573647543325223724412613125444725411375737442155636717331164477231477173251456231133165375754771131251676744577524233653562361475533714671257343755444733163324176477171235352667445237456711432372311333262542526433511473655775246312622216461225516647124735542412615135775211671465471114652222413125735657646725666116475637161514327175172115564574555442457532264365164265155446233177245331541276116545344212745456372224372433434211146577164621561713543716342773211177715511657751436737674275426527537372516575651554533343126767663714176156654721315733434234232635435444232734774571754671233627474132576761562342366147372765625342421337476634162116735234137554737262132735334555441315717174571417713125742436274446256167647617712334232365326164671677663664566131643113745653254444434113673525772423627575733417154676167442134465666737644224343623632676213563352346424755573275461761713361537173636444134554234332523752235145547475222576332665241546772576353433345436361557364441251531467142567333172257227655712265235251521554163311242141541157673332513577216631766272266464445111262652772765164723252237675427545743233433142643172315325257135731464627144422142273744572526213441143761534641771465244535457614721417473757166236144636474465256332461777716641466142722367116142321411513311566473775344256264535577742414452332632555314134517467475735313636122366117534175255225612552244757176211274625442164665744251566677421542223657176565472211276256227314526125245225674216246174127151542465172725624446274213715633677135755167643426356667352744433457346165163334362352427535261635663572311644313441613665324411277556777275727374465144675257366344155275661517357753554471331365113623312574423432216545772231741422664253616171211175675122126362562226671421551657551472615444723145726161255334313553744521212636432257414331173442655327442725572636767523534161255116154346236331227263655374431143251514437362324444632463725241556641414442713351155214515233412376447714375733157562253175447577544455115672316475613124752742117555466165317157641353767265376445113732654662757114314443272247652254452151447561313666226433532762327644722772223412435377753251414412215514626276533263361526767431641332724544511247466557456411416642244631323336416273241272354257465167222556537356713124463717157576527176651627527142471672721771554664663755727734274365566666154544233541343436756426216775612367673256424656665621651562343611613242113511477373462647765356547765215575755715454631531375253363775454341251127573666737655173473251616734236217676662546467747354456452116736727677173133126764532577611414415476325721424333126466357331712663534237412146447277246212414562145572452657513554561321653241456336473672655332112253442666143167637336533357451716442532336746743776651317266356112474741745542242131363211246767331734231125442755774236462352416411145267724222721556314652113644251167771413626175627324535232757167166331613632314266653466765673613536541124255714711257256647232625412513142753354312427424457533374565272361727467533576253327667256775344437416372753517133123141651574241171141445626633245442556627343364571635527513737415762544561247637124516551144225624112662725127223513467575121613435633746647751333512653574776332736422325314541731337516277133345171353274552666711672612526172773147461257446231437622275724234642771135771625171253474166622316677622531634433562221541532673655556133325762357473456543722321766763215125253213552545152313423432664365122545224371116247621265453223134412124455576334315535472624326751162647426363724617457651274271221515666636131431575452513143455446126171675657126775266512151625646457646345351351716761275377153731615642467436546445566335444757147744274356123177557372257644661665415154155375443314531436225324166773312151726361735211133666415376737356452417524335541241711547344472257421514237624132132116263623751122374611562314511722647232447552171473463723563566752166343421632171441642112562476776533715261411645742364442771662655265175156245131356734334534121746646464417114252266621375776164747725357462711336121351151761366467326464556622544662711127246725777735424377563252543654672574314377142672551716254551331411242672627171367577426173225277325514166716236125167667273133754436234245251773473461512124523376123651467556117366531742524744757244472457472447415413654461257113554122751224266136335763171112561262371523352254217617337441731757226372537756567461513471563672524554637635514464546115274553746413115172654434177622551245641413613534723365176152247253137271563245741227126626143161464524574222115137232225141461531213773515617432445651466534617737337711572545132621767544244147213274364732544726136114437154114545213677244557553564137155567233653343251535622162665612452514771325643636421637127711266446146372175462333437553555574551466336546475642326263632422761237762667531415646476163324634151751356441412276246155327114522536775632612233157776531642324417417263454777375375167355417347211247575375345266715143623641673126717537354273165572274651657262263156274615335726335713721247455712623475227641465357561626555455157421234327577325374565454333137111324767746177627416145767213333455244252151234374222612722264533441275424447277623723216446111475436261645755637342754727542572444373457255652715273566533723261727266273771262773451335541266352311232531647151325542436446515736753235313231252246472347217125723245777423451764735272334436121345145121477466263124246713615753671373543423442764427412773677361537115467726224675756257451577662774652644517361165112167141737341125314174134253664273317324467562424723537264552172323365635613145451745653441742273443345737445214411117553647151536173775743574244456335621737224124314221471715553417222415536252514235375516374555576742616633115447211663612376156153255231433217327525717337255153417323477131764746557674523332712735315311577275162252624157261564325265344455164311574313342417153572346774573343434254511753177451515526117433166414276264413541733574314267567437151776341735221561223731627563611612756762614664116313466455145347555353734333744775345132737664652327714447744444272624117217665146137474572256716271623744734547454535375524414345427113526263347722453334677433275277662572125211556721522464125636614174315231317111373442265751543253774617631753213641276663656314514375262461711266276256565516167627557716117135764613461143152144111123724741451233611735334647253464766453637754244347274551617155655634126114542276335724126134623416122144421641515476117714577147763266637625715455467561151266164312366251162546415365412521447117331266364541472342772354411431554572431216467713113342724256244724271433262362614241442156673476227262522652242665633741142472414354627725142422316522735176357714577412236561633525111722557651321471525465657132733124311377332561744514273327512725557616652121325777327743613226163764541163226725767155346152657256644743475376275223666664763617664372541461322135433313771273372122316556677224656376717731467673134771672614212243134247216266573273463765426643255562623643422143413613544331557447632216462776437737215747236262265426455566322235357764717727247711657526362525444352764157163165163236175367125563152577417127645353263722644612221412353464451377525221324176412452626265723164746661623333264443646554457765361347442616246773356145614573342567625126142742371315175554122377453175623217347361772667472641617221722233357325436635665143333366457514252174757742531346772431266351675116514511154121731364422441521442313754753576511631362635611755216475213552444537567143645144564445166545111465354451146563242515425461162331277646742621235426362731131475515562366661174645575767214445236775344134234621617426441275621531455272525217377342276236121173351177351773633766216142744175423543661761464662514522126535311654343341377176441134237213753132565724265364332444267117315721367173531257512166475525557361511521764123773373354225114742214366465776217647376621532136457117756565516513644547612236164115173751533415712555556662572212721227362744444532477375545676171213252456223516745174542332242464713261172462376176662126452521221436557635265176754276134325356513561554312121637457364616453424713152412635737165714475253616417736217562474414324765522114156141772743272664416774665776415333432627141446177677475365246772245447554522432432461311146146464147715567744126455627143647517224335125111624571353357745625757473215737221572736353347743557521242736667137233262627624371353377674462575632151453456176334674654333424371627755422331265744343166357121273271644716226712447166614135255575762372314126453471473177534375213343615327255535565264141612323767441272231274753471226271544752717231463573172451664714761375617524752343554621117572272342232125514757425121241232542715222543325722165771725251336536452547271774322223225143176751717273223324765377532457766565767716442674463312376633542532332343376566235556177662357633766332561432354132733733257353553576766241366712324617246364652322227143263175436116222742337672724727441767523344356564711711212615661167233566214172664675115217175125231577417721321777512443444365727177132344315326477655323651453573417535366132761167521111356626477363122735135334326546573476436365677174616453116662552211155713612533124162463363647162317711463645267676255514771727257161327524443344252733424536445573535627263636454657223676653333576451326771645434355646423745225264225116214146673466332636462371722634664211761437463646426645657243522332547614662341122727524541132276543644232457673774755541545774751234761325425615223766244655454516314337761663475115132637464756776523633732371212625771751555455331714317541762344155253341216741753674651757274722551115226113327577266463414117454465376121544523643512743564423273634645731373761232447735477727212577472543232365533426266271223573644211533772544217137766277561754576553252446266312272711161267646635163331156177427512727137125172627243361361323314476523636337621545774224347577347232524361343431247652226167135147413752217552676764116734156574637144365243433322744541357336722647465323767413726474632574516672752523212244445215512652423423612773323541175727617115441624276515757324453355437457215477731571475441137564421466317151255226377144357346671137611116144556426442777124623136736231256644576552652774365662674627155731412366555774433232322714731434617736625524256572134336722274666552353125443433635461374414262746115517464747333173322762312577527212342655711411653142312553546666724322722254442656126365642542453175217445172267261231716262331637461446145474424547642577124227266432257121562241224323426741766643277372461714727561723721731714243364432523336374576272364376114433716351513444224233463122725467771637722565111423162365671351547744746125746721427667547674762155543466162764245134121212517716673341262551165612324535626731531155373452762553615457153156241256127474564732223662711415223251263133611215331731151211124353473176451662335432446667772441127327256236372255322271272545666517636653423731474725135223171663665642224437616317724656256445643421743426417347351156714647423176372545416443412617527124277517547734616552113415357472122714161154556324535276724173276416115214771534127536441147561431453165575641253237113336425452626146625412537154275531562451534557441313576625334177367524761347214445125726453174132223613637662346243745724244547761353657745373221536227744332431666164761612143226252256511655634432741223337662676714665163556133446451115775175266566365753565122177227121541357337167764243755166111223366425547567465273511437451474132675451537476237572535673143556757425567541573544726627235673471343233227376663265257314763444412134455315374523451512122555317422767621551144473654165253175147456542616113563152451216536353417273364367656253432453446274536555224663551365741226454413776555566154441411416537516257651445223222576757211775166714162247762374664572524634444354673227227346746416761454132467157571523561464445355513236475424465651126276734561243675545416256633155765562241455655432362217114412321271324563357122353613715367511741163643311213551732443373255251371754275337715222465115333751272216737563465276556257723417541651665644323754621447541773166155334737463757451636514613123127664477436644612176656247662165263523567455256457255271277317736421117166673641577226336457464225336445345623173724756635765311254121644546756451757742641372326732236673511546744742236356422435541531722775772567722741622166742116121327221561472677662211175377221353376446515176775226336266317345715553335234135667533362213231732617254617424123165424644367574766624375257762212243541216356145646367125214456564141252726623427446451263737616323442533536117154622152565556417653747413225322725242411266726724437461723555752475746165151763525574676244152222726644453551744613372236744166252756425673176461121243331646575672535224545474527534277355324115467223716457731125444573446141621752342371323424272763326234227214541171133374135433664627452413157167272433255121321112146376515524544121356752173114321342133725473175223227331652323541765356226635367513637635166552651427232116644736421315125672261422355667455267722263776675125157215174732467563112521371272617741451255334423734215334354556664732151613366761373125664442447734351343712577731354233677234241665723424574677724337627743451546342723464164756523415571257234261472142542247132412373411434163332555122247363444763333577127442531444672637263613136416527454747724373475426116522363246373761772423663535556427757375134535734276665152736571667736443137734354243152255244344246214637623362625324551366133557512364267616112644322561463742123342171173774161524772141555761425536746236656137647764242751213676562525374221175213621137347741537771632454473214676723656743126726222551127542243745243236552453476743756122237643477713767146576473661413747723474315774711512541731223516522353623323115375452665776262254472654127542462147536437257564243522245122351575451413432322736477625447666146524565242473677547623376366174756546452532221266241611647657265142111253315534351541636713132656756215556231771244441242646134143154621555644751415532726632345744336513311617161644147733267155521363714216135222736731367265146215427231243665262165223353757672553465512271137336151516115274351631323643646672617677621432761243374652256256332332423656265213654443577515357624766463372223527153333374241334732577241463744141475754562635222513627776362717341756536121653133416326246456575612555467555161442364121176657347625465443252236556171372277134126664532157312261111341477414726616461677637146167315364445241133612171763711737662331114721734215326424125221216451561264367112644426241763724762241477736147245621635644345744162321434331465167343747574261727162125661727547474171141577662671122671114251231542656735136316327627727356562656153666561423365347453421366555562261151323541376434775745733572127234266654714767357265667241443576235112513113137266755172247626541352633344552677574215532434427545141574253353234755542115446434232311127454177566253554421474717352374341151221756434777246751776235563717221337163673636423523456345547551774724315561544137464327113252361764514373557262142674515223352561143612261217533613364727355643651353661622676356526231177763462416766161457216261714723112457627537547615746654756461763132724117174765452457345114314517113415435234112251375716546231332514366173574123152564542465517672437341512325523113676735416516141216277432224626176772554545443554414466627473324224463146724262644324376356711322172316371731335766537354365321627161721224257646631757325267343363565577234232724213154673637266435226342665177611137616373423366222146445265247372252222655224147254211741555515634265554376172147561766753634331757545275116213373412217672435433611331241773424655116116443237517645652161533132534554412734625712477626162376461146611714575417557641647277757174755165546477354342427447535455163771655515544211463347324273721317566347115547575242315735326361447465417163244772322735671636712742524542267656122326175262153351643226334333344666477225534773167372346112445235115147612412637771236146314237747543555116371371315121153415573547224625665615146562761241731325337733511412227275465613617731564667251423744665443223614517577266225457644323776422113565554574435262267614223176477656444133415135453435761411341237175517151673451135533713237364414165174275652755442743256316741446367777564151725211547572476543573473352667152514757131361255725255623121737331746761121335731657442744252314417225437563476465421626444576247262124173542572355547515375122147363113456737265743725454366424554264432445564471663432261232627336613167757516665341457464657514516114122163643516645613371362643544355554752322377771331467654232656544331564115114247476474121327163536775416137553514465277321341533533475321376751527251114341433677356177247155227246366712156455373314341356111236764665273747671223567725645757567346166473552765253266152651647775513564741231767426434721726617577147554671167133677362573475445553437736246143543472552221164532276211234252526177354516615472722554677324577426345135116656751325715741531472446242154753567712523417563533716143342746224226477741221513725621356462425741517624157127531233352237562276361354152753137142511645723343112257765173577515166263655373723152257766357241647575164635226644272161126242247311121524347244654172224131454515621673437454242552174416665337211312656724331626227577566331343475773665332423346326475231366746447736563745412234174637155762726722711314254477171573521417522415576746355124245326577742733265656542511322746661552647742461366252544575773662146424432571637555132411312521145717442613176755567632173365461271244536146744534536747275645775112575472417153545532562267766571751632272221416253431667576446545531742254335244417677566524412275472531363117662742637512464515254446616127116374461561127471126672654567577441112167362242464253541327271245356466526742122557244277326433171157722526231325443172733677226545447732745111745254351647512556233325521432436144672767151435367512254317564577271477475537255327644316475756175156225672736672757421352267767675427321435434623775144453452452335451534371164455271556224453625563645376514153574762514362544323516446237745436226517146313745327275137125771633574527351564427546261374775751542113741237512656575625335744211323637744134322272165521436146212464571114545165364757213731751131571513267166616223235541637732122364613521413246662437632526747277662243414141727373255437324454433546221725111747464237261637373661612724526532411123254446316675766277753537717233651225155746545455563737741154432464161776752521466772676114451617237446335626666565165766434526552537362245744733531441414177646221161475212724477634614415412224343513245347176153555325767373647221645412412437115547356376674637723574756111223767725666656342255535343164316616611461366314631425262677231232123373321353736112737221353477571241673742436256553574522262152367351754111747525275651166314534572611423527512421226326256733424675737322362545776632566453125525322353573167561553741716322124646213553252341316722724757361666416175512757112773215722642731512511263561473713325117314677761233453732112512135546411211276333662174475545662437327437551524113332163651556133774731116261672245555753221733423246261227211535273177413526262517445456516663423733115551471652615565445525777374614562633631123762437373113143534372475161272561135765276623175436716625645134337137657541152736726721575327653666754641156352154166136751657355143637135774123621544443547574321723727611233626673347524675347331743126152434334671563353177753256551477643367747236564165172417366546522252167273163561212564522375241556764124333573125273554123741127137431263452165525773426722235137713132317526461271654456762516517114345337216227414162772262242253627344374237167617771126333552144271547273123274374316252631144455531567161521142513427713727555232321441523631221463565266335252413551632336347526214732756515645334336663537413334136435315713656273261454426753356322154744441352572756521325565527635443776224415622665631516362364122432355726527177672663612747562735352165747167747345536734123335163573316214221346131735537764573243473434357423336542215324713431611263711654316152314146541215475534236434764672243661645666437273727552242741256454647347312242634613247334452337714147111235537322536663237463474112212356721152336224531577151561622246742157414235711162276266367675671717147473214323533462337417167271276157477142526154326261266227431245215231374173625654672624677624445251427751233121421774564466133761723137164416647141517256162457663177277557444542623751651737716437341336363157243631617723724666724766536233251634736647342741643333225747466653255152216513677323645452411467624442752633224166552211563523415261366643375623577121376562133552617615245641237233363242455633735126643546561625245572737623136741545212272363211767273255561465542473513742364463313631417547325554135542772341513265347434466255771445735262252577425477137264655721424243462551624574517526275676151575235322515265655737751452456545351114455215612416513751117673431642311232733374255453655655231415746773375635254731317215637772666667137512431743265216713612172152754635212315525346346531147354552346177331114757525577524542337655564627742431523214165653776765553346352526767417137614225125512136653245754725731122455251641164164472117612416421766614772117425266327377541423532322122233215725656617663136422544666211532444222223122526467545343163346523246457772344174767614134562433767536635762563172264776355422111274151666156577635235273656167277716774623472376211131337255216211727473154313145342515433255276267341645417134561142615343153672636623564567356363655411127311574376655335352222571353554425566236124666325657127356525276165771513372244733755173655316224123115544762465173524122754516112522276774354155347751347717632115335246674372136734162763145467323136635355577573312421746515637143136665455535267531635526372317622512357134653526712563523764656136374417115557362451123412177613653223335174242316411162463455132375721442165227272327666235631251654622231753713146244157532751247642156153555272725632526734241144363217566216421174456362677713542753132762525645324253553455132337633732325773544261635213726151134421762563747477554375666674726573561747354215362722422473264254423521656417135431712253463277752444431462314241342667145466453637462542762527754134151726565267327414614175764567116211277127143214575215723413425245374477425637226141554215566224163634676352325231316721476432231535324144416131371174254231444637351276556451522741467223256653627737626564737143312434663662153256341127513536151415114474612231264315257432557631433112663726735555474357536521775216465767672446127654627612722533473273262437451346142124525672353674132415444617624255721512737431733413241642625253144124311365361732456643226753357671433662331524673657363271535525772377533716515214134364347232123262346746531443257516253276472737265163135113427311237557437634653551165716251322544433366441746236435247754117254726256122227253727543452254312724533455717126432426174223553756543777671724667122721454722437213524615677375411623161564126741333113614553235226736714317324447652242621354716772563324366724722136431555265156244677325226627134176145764573336116751573465471227246134425767773677157426366427433237712427627171775147776547614231341424575574516314313367461125152323673343124675326666744151675126427764376765621511514323372715757165435335236321462133454766475574347164526552621134573211147637253262554532724227711231446421456166444136342654565617153626773711646362315464152654551244744246433462512362777265652766563127163432513143232362146354324545644117471175331667766533456733621332371312255243343137564371753177236471515343716323373143347557613652644561771733363777235122213561145535644137576166212734345533731424127634673523445647365757444527241323674366633331457364442124747162463112714447426445171413126126464716317754725673422654176221751561422421723612253542242153362351433715121512737473737147477735112322225476672553145363242235646117433274763241566314537754557451425135444177245777543647234313545362126425543443437715621452637555776642526173336336227365462336145642215724351114626746615152756642164755514514216224125632137724342637571263614536331134337341666163243362554346363315132775264273427756144562322662365564322133366375211761212312651421262466136765426535556126274447457726741631413465154156116564631534437623774332247656551537122366742735334777324212277243154423211514357746171422743756375737462442116174623776362576536433572646256767462672641711774741231415324332371577754166367664717242713347667647155564413312713631722445445442447216657211512114216564321174447462457411413613245133556665243322651713253445173525264164717241536637146513224515435754444461654531545427752333117574141621175651636371376522243132557653153537732562622475513135423511116362365655136477262476357627742562131735441477337617434527533711225327164225361251135677563764215647666472231356562363331536251145153713146364243471634121746143557162475235663323527322326233572521161725413755431462524537117373311573355663437565157633645715236327755544116165673676352753617552657424735645437726545152534422616752565242216111676373767332623421566324534436635466764727212643633655241714676536334147757345647335762253753536473217227154657714512631236522562273215132531621263356422313552713435132414475515143724344533154417234465745527233645463257674235357717525377343726576714763527256447422263216412461361767343277154127445667541677636146263423331763727626772153757673412145473411723624513722311317551155726257263664445747372423417516422341376654312125155327677762724147276154616721645371367475566314224342723636123664724753643675336753366563564254756354742421263252571466756374761627334577525244524563551431137313246727773627212652247473576637165166277463573772235265556333453273123171352741175634573356724245457667134422633435776334227753432522444277454116626562374272555137313734113515377166315736325727757453163545275224764651522225132211531274714535145624766211634245331341743426332133423244437265611156153424361464145364137156757155773335154134437377113121626633433676575112566635637131224717444743713534123676352375527231214572274467271661536766531454474265375755714163246145712757527257716515477227444447152266242256257242113724177455454513437666673631743256657714652442626524375151165512317472777134426317651456675466737667151274657577676654635473466364472423127776177675367721361217757222544544553544362374543565563515771566133527147317755334123375116364176552475536535272773333243711311377547313277126226562116517651111255326755651574452773744641162177642436315475744243437224333644537772734513471724371423266443235136432112542555224457766544256661545746214471122677667543161157334731753323446535634571126234276663171434667664356727743757316375716752441527254156263551423352244141215377426734752421673132456753116655717623327663743366525424724533423474646725323661643314727512755316713615541137124565156237645377377572455551573241166112717656676675753522611346355367671555346337234517672125664412461537374226143624674127716456526763722356373574355777671446411212615242773363712672661144717241322737341776271477567614474432563767733124754713163264645477767466372774311712342751355236325255175316747142415514751565416343144676573417661542137326771724422712752244333417714656666761524634234561214454456245734622713375722467517266634641353646241567473652633642535313347744767747126314567164356171345242741756767631471326654664727555752257756741212245234522325362777326324323534761515267411141441413335266443152232651531736274354621431376714322426573175726363166331571362224375365575272147565317566636142571427267737333221763143136144223455374416333656155462775672233562431212136433342117411271334714351471773557114234376317453263522651751427341174624564533742433621116262137336112467244542725217312347562516527677714572763514545771157332313213324773213564241741247113445666321727441717335532657571235634565667743154121564152132265761547437524741542732457563113521775737773317574171336325636122221124224466546155217233626541674676411166643562312445721775765465327347334613745311113373211657513446472153367211232462173271242616457655223345461537137566522174142731673127757142766136627227545731711433542555165167761675651554766743327515425134122323721176766563225317152654367611224345233223445366373461127722234667523735311247271437642754171671543257627145154231125522243322317724625633331163276151364636166752555347514622352351427113722731215741623424753312353365671164225113316562351512737377156276732633174144312463567636635665562656275713454613173265761551427524454255422224545754463631613666334152535141624422167554556234777575767615667342552626414327736177576656457513671772732365477417471366344315614623227557427461427457423145636347772167722751134262133547334267276474516774227546662246272512631611352262574641446754714166361342571616175653736736537157615153422424335214427534371275275713365636463315767134463574324236664357326756546642221512334757537375247755722676722212435224211132766664477661513624167714334351657457221177261553173275532377455532653654714152462122765125173747146645435742222443641444264652775562225714347424717255614371572357572374737612273331111542611147736357664754213547557725317314326345335642464737624637557422743777644341576373275157734676263474552215376227666475461261271657225557417343323362732162373357514261432465727446553771232477542171333473214341326525742371444664617361511255277262176236263763444474465573333443652576416114452222577351514242547727752663342655124361343167344445454734377656362727254463431776544337776755625137146624257361254621611626571223221112531661626317372463333466711711475565547511647116543212113125364134527512675627574124436641477174567657741632513234766564723144414462475452742276765753356752434264443312426745635433761677243552237552733726613457666155711467513661773365356625615414324553444124123443362363255626352127374777522767435764413215143444313224166375251147777212725362733445753723547654654766172721234671317711266244742542362655611361433423653411215352521177662111265547226477517356631747636141357733756635677645621615711735153267675561351444137321133325143563642327564622544417613156662237415761747533771441523731527153135723736113412667641345427324741442156166341626524757533476264241546355321313355163747416435751136165526656226724432373256753177775551556377372156217544332752763632776746777324246122566153461655765751662723541352642546275474173511171472147115461546555424725416626666274274744121775541354125677577326646443765166752177471262352223122156364274171377351471626151452557427236655716733363465362547736161715772572416135414243516621521523323574144742513147422313575547711471715572644262324466735523523762254733221747173631555227413111537133455552562256423155237441625641217164344562434153665643135622743652317666732536725472116777364542112171713257152633144744764452652161262511615171425223523171265575724275366277243165541757717666451712637661526234711127721116755166353431424346147351273475363272737474656213131256316646576127333212777521223432362366247742665225424577631375444674627524124547422263156317153553245127522316261316625555554232446351344576425556442136174617765724261741512361235447357732142545253347331667612556575512125272621255221417311667631422624455647775517652723111715257433761665555346344637142242656622232312167535471353376424522574131272472464245374734665357647454413653723547366763453227224352733411113377347337566721142667173534536267333356356361315674723377762712644373241766131637423753662262356716323433457543676215473521166767713367735111462273153356554452464713725535775136434161737316644256551325214726772512614744542367244376137442543614716573266415533174176153426721331312647622365615216225556442425657733115455245776631376354537325231642471126536612653611463526341336667712575465644245313776523766556457747425323741572163754352237126223164627334415634133661114237151457253226657362175354475232156315244576454423634561142755373224752431276737434773226435366511316462622425651351614547476361411361553134523741232527661616661126214421112517724216215267167112134517627171274525445365374325631322274215425711454314144566463524154475331141116556262552522174512263717723225712722316671771552677211123436346432573653654123323444446121645621117465663376731265743555753444546615314755647666463731436112667547312716574673441145322122411455417712671252525732463576147215167162341565657444712473311341157165313373267333634274535561716725657117336362755416151641151644422543517445633573472557764252634172563527413653432521416225311132277542474772235526667522353455775653124524757532422474741327211715311754362435617167554715627727652651327564345263241732535541545644176754312231566653137573561444154751523135175762374255643621327634177312323122352111674255317214714655226632761371357776531661253553315362667631155146132217436125367226376462416234147351435437176117157617161114521656713546566411416511516626411516517765743613653643616512553743614523221511217573255145224617271664216271321311746444266561671766471331363425511565215273354462423646715451144222153662337766241636546375521353467156312471236311264225611136414422353513645416525352142245127661226571165645521366463721643632144124234127562737517213376563716511333646735231323443763653164146363667662326567723333611236544373662541114752153515716122717446735223343642247411421433544671574437173477713755117342735425516253152532532131751616273144625554262356521135122324233441232127546173756261673225542227253656533532241757151572351612536715671265571716724175434414767562352412151252154555321672461351527157265214522317153142371546627634544475261312431144376462254246723473221353635632452231456773775346657626311765344467634544744572357462223423347726611365172553722767223575123726726156665243455644756246161474265173162677244741537544362521147766376655513227272147516771114114743732614126256453535434546267674267541273111666243116554413463221317426721137754464243713353716236112715727735473731421767367273224415127224763375431531561417132674427442747316263346326376512773335362477431447714645414365665131757231273341242627462222117634723746276533757343321644156232635233153735334371743227525452744561777473347667774315361136233712222153576666675225663167722424636153344223773427216635631372656473727552243525457343236355444423136113227573257324647466343715311231543534763725573552426731563615763456255557341625151763142424124371315774727712621727433666371747772671213314675777752241272276316477431761552353347674115245266136212221467724351242743577426443353516665567225452557126171734373745535324247174351364115211741335111633466377126154766526613747567754424454367215715567451764643751414241571531322161136244532336371634215261232551665572365411442444255764127415663454673345422656413123636677466734415761433621563174567447416423164563746332417627476445525557176655141114344456417365756625644522346457115642524654461354141624747716727515677466144263776157455557452524323473276746236145124771657122465725446242156774415115262275354156613446746555126736656176744463355511617474227714772613616345513265557426147242542623324142722352131162717135271575126644756375521531132145615156577455262724516661615222772577367535344657237127317141337421557624441236152273135233456531615661246352267316731654113165247731164613132773615173524734751154163664167261661311764577174273722217726155135375475145155676172223325232136666536353167651667723265777373172156613223221371413641442413133231722434776127171566732274676232344417271174123272715326676522655326437641252513713655446427524456233111345517112476233116257626651213236217122251215425244337125245662513524752264747673327231166756237422716336144723366223432331343274416453256651217132414647673314156723342331551575746343442764471323657713762242146762445535216431126231641175371171344121751634756761756765626626663415512516313113322337711715614155626217131443715132243444134653444366311566156662127454171655112541413561477467671546355332734222453732172737721714731465771333612115326521624635427567357422713124755531614377741121166132422143431374565226223446555567643746422652222754567233721567544252723317633737516442643113276615721451344657622666162474715716527555623317372652567141653353326313275536577166246444532257572444163756535655511555237546537775315773667455146224157135112121762461147124642564272315126232321476615526324573322443254261433564565241213563715363517241373563231764775464676425777723244433656656467236626577217222437273562557437352344134264215562771461641613641776572121661556747217373354747157721234332476314434375623327434345562125466436163622425647613356226547217152161444515372473647663547561675125253644574644131226674562753664322617267754377532413772367556327622537646216151423722152141773754341225256763146337644262251667315541366155372244232751117376441216436245774232655263374344321342215122534256454162533267611745275722275524461271454773164161711673223675344465642243652372472673216416234512277534112341412761321151165456666651253421651761122241357215215173331712771267363627654716537241413624114343463765644355227255337121533277447735523272724151715616763373341264147556652367551243251512257265712777765223372327644136343373265364373226545776163415442672322752422733516327226577334625157444616712364226247131264746454327112112232754671724743537576141242462716315666167574147127643751236431451151657647355357363762114166125342421324462121156365467216227644126251727132231277647667513577121147132255462412476475445615627124146373133313454325251743536532157616322653331172611625361154363354227425761761363464214331177435141722612727157325136463662725643654234337554415231111366673456645371133711552375526665744223226646753373542712574463251772213117716355733144323161326325547262164122725341764464536452335454763316517244443273666525662556345677557615361671261154653731655556434515245435665773351743132777543324241615474274532647243543521143657741611231615111145412715211576473665722213724731714214635174155433245457751475667211613323727573217656553732612633613356641737441347134547731235537254142146273447353131143367742166664111131415433747153572416525515236332462125522447111342313275617543112335171354466422754464176143444677316554324177365125534341616476341315146557515326173546147677633675313351342163114477373473356735577756212322632362333662337334125132642175377526163353515532254656143454113176774242433316533227134573113424335642125356332544661451652334656353676444367645344471557773471446136672331335161527776717346423326126463435343526625427555436162614543727643124117752637362362453247651536151672567153123443512145734217125214474471772347521134641262274134574244345672564761554514734547226744477161457257224716321774627523264113351366311113634734526571217731266336157267564257642433554641761625542472557376254536115662671164547727365416343727631411517716372475444376134536432664755767627261744565417153746336634333315244241711461577275727624466121655412624662742751564556225137226761352747243451636414237152275175132237353632715756513427657557374521556241353751733316373352472765133747716415571141771326576774411715725777451465554627577311153364757656714164632414564635653271616524416124521763432136514135126171543556227317564116766472115124311557412534423743532511133645465653533177442656342634737334774563245546624131755247634677477767374262764467666313425776135145166676114653552414655555472315714665416165452513211776535776471261731641515771432532416316355415511515766666732215567437366336717771676476472614564446576323333343324374143245623261147713235661233653257574267626722722356736263657276357176751554757314321231415536554464452437146176531764146722667336674251265166141237654545734161761515633332255472477754657467566536432766114654113122527566646532475664674372713416677766553536176575156625126372372367256632543522321123736677726266473267453636261272675464467325255575544247756277466245725757566445333656764674654672474211251225642247246646434114455115343355252315323216152564231633451715434774436167165255577764431433217776363361461226776715442615247146716344474537426231166357213121131664434717162125125654575377472562126636754356162557247777741311633431445162761156314214211452455712155563772127741462124152426221336175415621635763376723265227244165625417573372633435754665623431124675646217463636543333234467662362246166736331216642165523523661227725731675126673271654337637741654451647452352663762525477575663352436414751231547611561631322756323274612745212113252336417777523154635742564764322555535636522131424332517126542136713665447754136562643544532746736215172261613553746335611174761622441751752436634657457561367453516725214356332737775643763737322323145472446552641436146352473536253725361256443577574341572265113525244463236616557324374533335726634372536427376421161553216617564234477352323155364442753554633447126145476624542227314572275642553577231233571122143532762566733323357562752163271654263331345777346416623132552657466732265174232764555271457745724627136656463563151717256254765457454441217576724125253162462346215542673563565361125523773227151636126674252712713666156572617713635525243553754333357131423325512373711475663436654771133565256516127157757212211677622372737712613632721651273353256576711722113417672667217435164633445646161531411621632676515162536423332374657741134434274723276137573744432436542216737441761675646243716152136467463326415675463327611436553522471722774654433775757132121364543536145524367566375227521651334721525311731711741672654142216777153714717111226315514111433222347731343354577331271622774321664651774241721665675771311133121617626434547625426226346543265345241274667562434356223171517244162113571667742561423143114222742153433513426176247643263716274372656237613423257344663374314655232765756321656712371737462267674213111743137622771165243353253574216212516571711121746475623313625635117677171323417351742374775553454365315437171136144473113757317765526362371515332772413622754752634474534714557667223614121527772433216517365453475666361452451726236127156524155654614662127411235247246137536435216514727662124632756661645511322212615613126521635625171562725145435336732514577462164452655362745661654735626575125453641467674463652265146736537376552722722457656114612534476536325521722151256166641733575461323275361515733742737242613352424743664655461756262175457725156564253532317416334465324235764632356644175747673442265511216712241234534432321576115576631521735761543377533723525475362344541356434174156552233712531775462426373713437474511221375566235461337747223353145257426165121761724731152417724632513333135225221533731113224671742314717543256341635745366656144215717163311246322726566463367721523441112136751254132672247233426652762215114242754345462426157746246567272636124651521672677765771651671274127474657756246245646134214335746715574462326234647643274727424425266635167774577554175516652313132636545556235214725415462624341634521277222753555235775371634621474434356653221745645465461263423776343321653157744474252371644234277633721337333664222553736463714666271424341641472667254723414714543714532526766154262674335137423133677772761515325614241154715337712721216476331723557655366111212314334264117322777765413425536777332752574525735724665231115714657264435117713425214137132634231341114626627272112525632726551674116461452462673155741144631712432462626267357755552777472474656225411427456355142443373563151773644776245713437665225564173273556367275675332337753532342552141766127516443666775361514763371471412553337727727455536335774755225464137123735772565412212717432471173277412113461142464764747111332742673226455672742537325346461566157411266651264337353221151337136717236233252615754365513537653554476432756251155415265647524212543516114132247612331125261521165456461173321311654666576677627565525634267227415714756656657745422214633556617532247124713776657712414163655731164217717211267367437147346141171511472533752671634741715513722172344521126275472177177751243363611453474214165365314212326665266225554316614543265515741741476431217737737414724516213471467332553466353413225566527161147213451127755326641536571527634644222334342765761744625166252537343675331442231345131657565147115376121275522565462556445263363222735265747136775144122647266571116734432555464362773377217271312275151226675424624355377436467716515647546222774532262124173175146633517541742426546162411111516461153747245576364162333434525475572277233774642251614261543473153462425715412627717527613343651231473315245331232325325643242465546276712556713254615573127367134763555142142366646637241276124512172615113251246222146266217561117261163427543565661571321277417337546712666245733215247471431475442343643457163514421372445626354621275654662154617756223725643245465253732157551556471173561225764522116234312466336546135141731312533567211361225171774521725765242617742261223122133525726415342434541757172474531113624656473757433541562723516631322777551246113576656167451435456667544662514173161671745272646546533112414713322572516427525572364667247547273444634561533423641341355241352517113673667231626143172725243435436737225241433237657752517252715671533467523757734743234141442322416754726333427734451774247363635433136161423537314314641776373145461261434171742564267261227445313442625426544612431557562535267634115661634236562537516173631614426314577323261455446456651143515336717132362521475232237244516252343257425611641365671735316243461117153733137366167252114131317521545132354474322267562266331313366263531362123341337547513544113142324463565233355443324767572175237676364176425262635234374415331332167611552472765411152633365412632612667247447222346523151732215416665712165171244226425637142512311113221141265627661344451523144265571625144536415653417572117535416471314771641547111261572466327271322132136322333452523771533543615112224256513257433732714472762673735554425754127313625464564145457236672476217141533263742441225331121462212326471737323511523556561747152374154346272662155333213476524646463721741247555427641212763641417611626743122654751172217664125776272276411777365415546624237131757167741147277657434317142146155263261275315312355626632247154572217341272723341133736243252541152126336421755262566422741324332653676542551476756531145167513771451224514554561334451166131337466422363642217454132247764721167732262556761746552676664376426322641725536733571167767417341214461574446342632642747622747271537716454212575772165257355264447441477131317711336244212641475451622625756267214737452647721565756242157665777374452757641637435362567465365325163267155231114643222171636472377626645552572375616136222172322414417166257516371314126346571642413521457427467417223157636724275651126162131172214433315321651447642557762113324756311154351535423571561122543342374421155231763353542563141365615267366222422667234423727767647467427452525714631413725734622751743771243145542572775577362451554164311626463643153533672731717525266452327614232626275311412364213261334215731323134654735274116425467112625146341637433172674637415437521234262466523742432125157722115242657237772417553765612725225131236251262523411121521713635331454371531113364466542752236763131572755756414163147245551367564743252767622332646753431566656344671776161525721517154343231256556665613756557641657374631747634424374772557544641513377414316151412172241335712273543474744752222533757722614145512153561366511154343365645563434541237256226235573741645535767345567524437444234441525372217334712764426574111554647511721645445634317276711775563553744741475372125154145254734311576213463223535243657465161622611633161514176624213362111164364547767142552554266434634143671246455373552626347122626323723251716645224426443366557413716323534421343715643212171233533375652323351752536167476512765436313545113271454374333215414266121375125545514233666317152671413643454121772335725755764254434612246762162336131736535252615316424433631174617172654572753523365737215324625725125665165446115717141562164766571376126572374165111157566255137166762631172411231357326235731157146223344414631155227143657754162774241723415534356462157764562753421512263736574343547557235534115177315622663326514661525412724643516417666112174464657311624217561432427433752512116151232552542715157224422774125142166355641732541573345444167673271146522635273263617455265164375612554657577225517645464174544425574372362374164752622421716461152522752273721515717243435373511662277431622113574521263614356555675742734234515271216617336173674577763427267111141122165774364654764335254365372514723623263651447713542261732124625171536725273264547167273324776627762675414734321427451712513374263563334137572655722113254524254632176512563757651153512265623317611472751466454663244574256616611767176334272662216666325176777775726552372671123111632443344354255744315474515716273536264632247155575354634545465651667353677515266134521275735532512657137222142755437547352226417675727642257345222177144456337327213316625572425535543221764127231462444215466143621133341164777245412234673677273226663162472526461573354644764217715415567141776766525122527342352224712717116715771513665723361514215416337342241412712624253434165537373337464626717212626253551435465622661253245175251267655211651544742177414124751711776517615162465716746452157351452334234743312122616646163111367612255552273375675663473724243224451337547217667566147341776422767232117727727165711746146717327242562474317325227324247152274132277557321443166211545663272516745133154212531453531326536116623535144655741177453414371113764441254543357567435767537647247723131615142217153762645732657561274355172413431121424211317476615354174345621132165616757617662321141465367374613314211373353526633612452411263533264324753446223515152342552726455177615351314565274541716322167711712637177556317653164727345246356533532671432421747432367223747732426777153326512565724735343246571671616252723312714516433771662142133141343663775456413123112316432745173463173732514115526657623131741327737223413235677675657273467432426357631343742623427456716163325163256412117472644623534543166616334115416357535437623316716617434156626565452315277541342333417124716676343674325371446773233156541531376665237761134734241666454627651447262362375171636615672354432417445775146757742544334572236577454355272766663257522271425475353111527627626335276535711441216627612714675621342215116164315267261371161643777332143162523343253422531635246371515114366514243475652746662413774575344126632112567774573155445136752374251561641631321646412126623254612751745242465561323544445764355653766612242621754331766575344741256231545147135462561341115521656662656353467246325462614365442322511556225142113663743512355622173351274622122471716467516371521147357752264444544512554425576614742737266633317167445117661662256453511473745743711523672677126666247427113511212474765145256254712743745437651111576324752676371674212764741143214257654244275255677115512627252677574222731567451371242425553742632454551637764724141414251555742317164266156651365336155133737171777525533417556322321725237351361343235577456417732245772637176233446316463345342565255451477214661433372735473743572447511722321455775212161556125374454447771146657477576663466337674351342356334474365344624647547274431676443173522365657334311231774754731347622157746671442556656465277225216425522413456735734673323446257232614246625441345635477643462414716543326273237132663561237471213756427241573416766344461431742247712136116456455323162255343551452655577446415141551765521276344633512567421236213313774223152644336515556773523154355176525673425415263152435143627321313714256716636244421225576642663264522434417333776137672575765375757323775637231144145434332173511633223625752267563346162312672656312613417725725442361513772267131211562665376234452534723343365417666156615547216471114332661531511427321165116776177533723775267221153263215774623676362663571532757317537432123322362552142115474536621664767334662141244466327112765245644616275573737315331251546254642343273153366417244361535463161315646253422254371641613462277232125633375534354441442722231264366253623477135573757251313423252217562743746626224252412165314434573716224177142551711317152624375675637441464642644175214576336736521566534132436146767347263767742222266712155752552676735423437742161152367766343544346712465553671177326435353747365376555433622742614551417673743672461333625212472267321221636117566511714525176224357363565376344226431723633464211351521367315731614675277656317434617655776571671272733117747714416563274763254473775476512514254124454153511157451222173454173615353151441655724137356623334524452661724122714411355241663256513713215626111562527453533251133543755647662647132161553771115363771656544732144454421732242712211416353166273531274376534124256226155454273556677356333634464215223671211676667524447744412744656246477467346421276173554161556473342412447322333343521337475256524165433465637155546673644561443163645274766715662552146425672322515446744646435613121775555127371234747645417371623112661413342466163167741663764376456526763322332741135334533352131774712255471675772545122457773174465713463543445511434561661171657342617265532374457746245365554421772731523154422437353211166447451645126424176343311732132716743147663526235162333426633223221546624216731541715356253476111165741372364342552317236615417525313452572345524754111761632515446613274337223512322531613275632433744417532723165441422132624261676236323416734677153267561311371135167442255645753312257411541764462336643331125466525566742252521764642215321267741531336653724132537651513521426661635412724437712717152434617477653335447213314624731265555625614237673625245626233541337712663375476161516412434617732752142573432331323253337612716114431777343577733467624724116631313314442113715345451742565552514255122224435363237235523371642367111223616455771735477147344564574637311267756262643756674463743535667116714623126314376634141335134235736422624665315162516752574327724756251641371111471375445277271677536712733164123244122641572762644635232441252677222376466754257634441614623213225564444331757142416461262414136515343677175772253233243514127171736236136637254476114366677717773625641525433213713443344335455637524776553163375751316132516413565165744342672467731535715766235144641375475144731724526314146554347371152655461553245767564351176136255333271466113671651217416432367733263423343534722144716653211114443174422614416623215112422444127526372472244735357161433617431374344673211613352462535236162333776556271351626176251765615151467434455413665674433622414121277153711542142623475667231544655672273451665157327125232226724414545213372717153154671213725557343164525635742257657162363241175414157554341665752661721436556327135223566545334632745272766532646467647523367643257671767762156115772166424522736725726135252253164263135577614675511413247365764523135726716477251323636776415167413315216246175226513574356776141571222237146562534125643553361331562775122772366777465143412445534125746256474265343751321575351154547464445254717426451541415414762141674313715747725762142772413716176537222637632332555156326617427313425612674741236733776557633773246131222717143645236125111377734746162353371564311333744715117623633762322461132265562272624675362777131267415633472623274675533632646175235621257442763454231634237747554345463456655323746722435541627263124362366112425337564251333262663431561413544477547275341657755212477557745574643673326515574436616553667567345644266157727463354243543511545421751766772732467113367652137762177216216421567572131235547437641662513456635716132155532566652641233561454246742347234324272466612161346754561136241573323452443762215724473516332521242421676364476317757327264565572243434263732653762735754423213336773423725215614716625276611245254627123634325737712441432467115667771265631445446574746215326225135344237374157747344365121634556213547511326213347116612175453375763753275736374474366577334675513212532336375735574353317727572213476632561366136575147241322454725511676234742722436453676743536311377223716111355323574311774625665617112733261732273743754336224716636132362454715271616252275776561575733271573314474422643432411461363613774335615447734216451431556251651214174532625356314467454472567621437714376134756426373133424415541452112124532564334751433174641636146361654223157566532232627723631567664317616654647163354366752137735576567365751751216754642166273742632671465674636533131456267664257346517366162636353437556447155123173733741235172345423451365711431734321455254512443771731643716121544722547131365665171266667471656351526541677467316535314444532451543326617667717652522267743312366531532521412411553112315531756744126371442612671223444337335333155674651233532754331673747512116667465671155344176366562643263253221772226765374223712317525243466677112171531353665127111636215264115215462536715621632136666474216647477642553455542154652423244731771164343512466513367642176562572777534126276746415562171761151352436257776674555334645733151316452376476467755622415122437661447676537366473276336247414472547536413452223643415323464733376262133471733426666532761474725654257527632174773647756226522316635671663163572257256171762114117611666416765323332252357662212362361322222654311536764154314644172325637135567643552261621424735367154257635723477726772233747475423232235126356351361475163743524247363764613652611141651256541355323512314663263277476535322467212673233624143563623567332517522713436121446715377751173365347642315217465366736745146475132135357267237665557565361241655161636555661667456535255472567467464351157436314266724554144172252577625651422241753337145454662232314113264472676232347714513646261763221772161715351363634347357356777771117312156274571326354222723112233264462411271324263615226421745374744126346511227421142724122552456772626576712655171373715273437436622471472577276426737441613757642112252342473435441324416124721323441615145321155117652663374326764154561323431353341427756522427744424655232367524666674647712136467256772231223573573367372674453572372634756447616246276456235475546732526452343361212167772543337142314153421247262477517164437344675424765272232473354463725763453315623543765126554222525435772324726363662513552274556422121363155623223513751211766522625163562264625266675736124266362172461517312241721523434144774325454545516123224271543252651424273561341252574234471737126367617365422547611443273415321147247176751225327365617247111236244365262424346415276324244361325154673145412453113136452131362777557775555714325621566611137331317426274115541343413413617764725667611312176223574135517676312117171143443275665471252143163274374427765325174735743377615245675337246117731434242573564277166723651652755121545135373723142134421517176612767573333636252455227271312372572542216663427765477537561137411565116666131137571654543757117267767767574777767166553247167125115224215676776614561716635636551462712473462264543644546323277237542722252462145442216241461574562163211567675541152776154325715213445623722667115275222656567272656341752332233754617274763123312156364617233432222133641144514733651352365641172416173327711414712141271766216451361714615156456772233231153617756141541257735735247673177372471225462517523316144224425555126157616266132463417122574452165612773521525775346351531367616376576252233134567425671737731551547666712435114766556643755244321411321565366774653551155672224466427675435345733211237127242711564655527355157411544546473664153542315454152132277663533123527115446375673217537426772324777121565535225546513566467621421422612554277155626364142235276342732176635734436366173427147774311412415321675445445677624635355337672425524371745546532224753527576742523254367245127331737411461465647376744157562526742624763123621657545163152325221423721334626125163671125551262343746112514525245434646424444771474215376151574256734775342753712544215212371636632322267464676243674315546731635161417466145172461112675472665513555523446347515627177757247621266652136164734526636633751743752757262211514276772566253341757355214525666317377575534771267114646337236177221177654253413334122755777616632142227556146371123211172774756274517466462332533765365574273122664553312545712332761531361774374741273567252516624111247351177573724362421612515116333471411561264624165256346251724455435524733336635554427446531317743534221663457325677654641771665352713262547663364461744244344173213633117217556114322745563212423126441461445346172215165325671214757126163737531162661434214425722134753457343441621165616252765267675332276533736256757575773433523355575463757616474553364737312747621466664564335722452265136424376555335124667462746256761623364231775616265234447454344546176523722474333156512661336772713566161432174411473752126715226615415661771352631136447242173763645424515652734151145253472712475246721416713531654363633144214741753124735311467225413137542156343556151623162774666261256373321666615176316416214124352111554532524224165747757513331543617373545261727623522662225372564523171627112714465655211747337671111373216416155753664671733713134254515356364261441141343544267676251125655475452665623277616765624727516446124313214535536326217112164732645367527373746717632653253666263713774133442343327524142431356561167674342466622774327564712677627671324664566656472467763252334233476254534521552622737256413246575414276541617213316434414621672343162657142263435477141532613757456753761377552213336313664212147745444563552114436477776327644541325175553664331271171133726573644445113312136166267314516576754527332712215113143174565534443134271371412334652361657533277513322452534777455614773755376366611247423732171562363661421257241266221623734723242542574722137166112165571362627273453165372321232552231371654514252561332573626173236455535125533713146335621537152711674417363654262725677663661273353634662251777212163741446656175471267415416526624132115163114653172153523476352155276116526114514722213552577716646661433255126521642336577612475463537265761642736262243243324253646575465451655673722355726335632622451226414265671735521465257442727143773424213317261337166233324347531213634275124351357363526363457562155515327765114154525454111271327267723711634341624561173313444354465767253577761331457121376124413272236576575732711113352255625246361342231124325445663271663527367513645741473146745255455727165746333231271525423267726522531345371634764147712227333115471424355447745541532754727221777233662336452327414673414547736662252525372625575356546113177775234577326621377236772612223133756425351133273225725127443155472335263216437743554477454763442765425736711716365144172511245355226633434646676312623274422347761763437123673534727357711236144252516617271654267224126132736453744635756134662614315332545414722475213117676167532465633573175456176571561466453621475644265723643522572551515111261165574417764245526774266177126124715356346763756555365265211124524272136736334112741571322424771537753557513124432421553116627662666254335641314555734355236136415442265143113672566224747563433121437235556155344355653622376612644661537356272637535137357341454242426363114261335741177145212646272131451211443247351366117465425622776237264677735274114144715511671533553143157677212736427261353445124331747636757162725154212446352774161163752757353751412766624715524533237546664373343542434144527314537674662212656234476124576546232213613235423346616621371365117432733246711255157641712231743727122456447465363266471624711373325562537577325545515577211341773452725715636524474265275242332617112673376341172527341274331521531732261136235371336345111164136232451473225265412256156356672625762242574413355572411447326512217445624366614363645111744624746113574343124564251652766541255276465212534373712177316364513333112734216657347661633561253476171213635532467547634213431677611632325271356424521133575566661765236747124167542664234124674713437334455254231327153655456746422365633451164227245623461276231571374651151613626321757771634715155452651641223166354465451262667345623717123552311647415533723756651252155532663767737474116425272427645521117315211362172644375646743416617551472447561145614472265646627515546113272325717556616313365346734545165421132177161731351275117475224756161211317423667777412662473771771131373335523424576664233544545652771325267742323322734472165554153226646743216531633465614473712424321325646522625364156525735267732264651632725544352145657467472612376452763542267413161131777367421357566233363324732756157115251417366312551112516123132742677737617531725146316322644142331436536612624427461424521225467643427477662245214346127163723727473432522756477234156174577113152326671276156771517427276317626757651767765574756727651571564472477415515356163666744735224553724174545413313671516273624313725435112654374665755666361733345277621276647427134733663166312223115235222265162564263572334656261625447756675755365654217516534626473562352257716674335477262754614264522746751742414255373412274633316513472577647476126576127413643424164334332362215775711741346722327154611146361171672777233124367366751764734244334435441662412447356366271624347112557646221456524364274265632633211316231317352612232652454651473433457527544146272561635332462645374367344142761147123766244541372127164562151175221611434271347563561251557676327472455176234312572127176156111152327141653315575177121626627746371275374624513313434417312326155476235522212655117561423654571241254727141426131716167365735262376761116141164156676634547366636536737655773572462376744613576541445434233624152412425776365243427363117512121363534335374231662541243213415654127563223655136422546267542326142111443742654417573424571644657271235642727571552233673771365316432236442432517643234633773624561725762325676673335611321522312325724366146736362243376352612243756425322225153261637667757175672533376617436165167346235256735222661543516515234277224151755676165342632574437767113417424314223757144334176175216441323143466774772544254774515553524222652471772157666465757634117622171357467715674433142234745731162227155156746313737153651445563614734452456477114122476544434624517166233274274616757534371672443542476726346127715771442521766443674476434256241142125477516452643323356714631736151522673441746311636641233427335427777444447467563441573244177752651616262323311756726343754141227421257473734131144617215521745616734715472124321621732524721622626326176227753154347533345426712545555377475712547424151624635712567427467267334516124317172673762144173223165647551323333613333536256661117774662135357651214577436415525526215421257235467157723653446311241114221345115712115374757612745155511736636347662413717172266774654741535573561732233232452352737545522371651654167524163227533617473542727124434515125451324776145323624526262543366233215676523365647522442126365311631432375643536417755157127657733276336732416357454263375263166577444257517545414233653372721761145453443521371624213542753153357716254625166251772257555372527631476172771616715344331152354331467216516667472326752351425242372232212712761123127446617325445571113323521533154232112255733622624166531715334141361417322575151676561663526133252434355744453444323523265711447613252146524267623214623424561442777214166574667127512154533711117731447411767673653161544745755762235167276276465164342645543343667367327347225145573777655222577647512547573477351647646467637614775351337671635623726575552554343772125225222125517477355544161577723535461612363444411356666656741435373356424171432661457255263226645314247656113362347374224445333263671576517731274134647214137366657647611514623246732663367225113276357332113441343643371233734365325452574242215573722254642412254713163616737626132556334576624225544724631722744222746526421743527332625137234547253726657664237253456152164661576261165145577615254752372761137761767674355345263773132322435534532532357724653243465721163656233315654657436754323125125572535266154542615513335646462263436156174647741523745633612727375223733427514767264157441744113534147371343752762476444542143527123253317626714155232576723365217435767151654461214454357626347313712716114542754423262153776731331432353737345672127234545441565642276413437311533456232177257733144114451423665144776216233237644246725276455262563323346752736464376727664474764236563562756635366261167637436242737477676462211141266261235152265435414254476612631557772577635512242766447322415574563134141722155465433565727516276612346431656534367556442413344126352326324266616773557721345757515741672231113122461472435234326113163425447642212342425351114715335567345432563121374142353654416356422165354766125632271465747765647146616315237723233462376276763717162632456357713352573423422633741124452227122446725267423125321524253474516663555465456662413556175455135714372132517566736415235774476311741253344324227161714514143714172121664337752767251632237641451673753375372612547723247234371552156427151433626622345261522776215157275342634627743663155255376114743616212664577377515342272114422722732222712733713441651252634146442574166262653227325544747454311577217246325747761546132217647117241265136723713257774135131233257376711713215524524241643665213242154256776451134447535134645272527345135774177655637434237757231255772571311416173247552667513732533723154315224541427715767463657142556277742315567557457427714731276717773335113161236277111613723534644261612212445265317517173467144674665217345174746626737415333122512442477127514575472443117511173246527531622372243477121772224531512665761221436116132121552246311467375421564316221334512125656136766647127557372446111324722634643447541527657224136271664756532215163354243376672622622226173425235562127456356532725146157511335774326365223276571215233114337147571521243574445555272523246364243436545234677356215451615635262634622355735764515464555342771265751225127727311766435213322452346371773174234333377121352526664514635255667324754765133326315767563317176241646346241613534344424755675611776642566647234671345742432124323177456344371761125721365411152553631556316315531242462332336615167245767722576632277342576466266212732125314177311354624563522443745251611321263331714574145223511326517642777223435714412333614657522415725151414124654717471267232323224732764315174515566714742273624317521163664356245736444563145676652777257525341234772367765665544143272155722134545114113761556253663112674717475276627217366113413125215516656477361313342254534136757437436367337567125343635457345212355214156726137554257624761672231751376312125214733714423523737745215136357711414716442735331424155771536621171662647142516751466176361254264563747755347135275114133151577265663761424341277621224432613541437726171646755147262646227414656752762266774511537123645526313322522131631313475417764566521153345547744216446227127616652757323776163524452263315315273472435736636227654114435177726466741644432263261761325245151711624171545765324423656673377512764474652452313766253234474564153534211467521226765471752441256632254433326531336216413561775661177443114651724635615374465163364347641447451244725754423141477144247415362376172561222536617633347321246316226476421675576561126162376146762731674774554433646665716632442645125526214757353133733516172266771654674362416132336616527145755154654372454457614415576413372127574135412146241511261242463715656272132237245227456462642143622461763326444266223273557674356435424665632241164573152752517344227625517645144435142361531676227172753747655327124464546536552472777275272624737516154747715265455325735326733775712527432341211752565327322623335676653711322316474125141432666455453665616731771512327373662437465163564477676652275244533727766466135474574452612436713416314362265746515364456712623364135573713626667417174766267526323712474776755117737535355436451151232732547342356221167643517616143346512666113646155741222313321656531716727323322737162333775252734736537572225427547613173737124521314364617362436526157343346131251621322362634677614657225237246432574142224775657355416122147173363677112612311457117231445456775466516771342516437342576354365235776775221313245171462421756673363113726256473323562734132722442662274121171324762274611212347537767411521664453513313425752746756726271477735426657331237424432343264323237772676732765132575622352714347336537433732654734537764155511655622575112367653445335163634132714264715233332665532247534256447256667324647737673232214632666675564625212216317732153646136721417162623145165761317674577471651561653377177716147736527477555724123562463454467453334473452265517756324672241317753313162271651767521372435676664136534763152357241462536425375731515213532771634612266747577373344276652742126526746633613643311721575112315171774671263561221224375276431341342731261646651174645465222456472616634717715237614362115243224375162674765617562137441176511257177267667441311634572621573522621757756613755131412713762445631135134134531344326517126473166272126521265432753744656416634665266752162624133447224276772477316113432525332615726437341527547462724275731112624651626667754712215545357562654542735535533233455123661746335622214767443766435256546533466251313711165563425153137713252271343553551431713522234234553274437624114447442733366672461111444535356113767374522513753764141534461363571631314564173372617702447677167263315774374635117137364344463512754543273776521433363221557337545132562763744717355577656573657462641151344756713672771541246116374511556254766357646133157157611362436365154122716512136235227455522567316111223165317333266124617156126121342552323266675617477415337231356644167436435215265226761715253157667642515341156712511613447165164157332165213173365467623733551156221541261611346715111575152171733171131311345357167236634255251672114145213731647764651476134315416133653357454364743113735467332145532171237565262414777656672126663112326374224464275253753355245465737567311751572427634361176556451421362667141214177435656533377443412761176116637573451244464542222422523354337227755761341135341512175323167221117577753167724714123766375417527512527146131432254653614544427571754117714166414712474741523514723423525133775415764362444124627361634431731512311757334755557417612246353424755274227526464545425643571753552461713176745311164767331545134364455775762434642251315462375634473212712164542717132671241743474625226334711112235336542756437721534357157311423365244542475377553122121741212652577243422362346661273271332517166715366515742647756217433525534524262234721125223154216561243516344661264375117534155725131524451237255524336372677672316461136252161752515444745726347127324231451456737514317212747161213527676154747621462313616534546722111626414317546677261144612524145326271522516477426642334425133555574757137771142636153425337525474162216215323575413656512573234752374125757227772377341411145453773425212145244323241372417364666227642266673434151222474422211124227546445611537642132464616721343417253155327315527757552344571133157565221362254352347464254457655644467535743371534515222566655443271164751211474144577165143717231347634765224642431436333625651775671476122625151124747443127331721251173365262375711145457524535643753313131362773217656731414267665226533772162522411323455175164726562272327563143215663473173664454614245325542172567137557741327127534256134333522635573616757653736464477724375562243633421526122761421433153732256532215377312411644126333637155721153772724275463765631333241144262472774435164464266223647164673752363735444214523555752652333742367563447251534172677265422625144134467475561277561421152344162664243224712733273334352577325475123434134347657213631222154735647173676443421451135357456261645665255222565543655473552372555255763616165642237717354423563527326677425311434425464136526771723624666517763536215711573413616117517351457744565267457727312222262221357453242672746641663214343676724772326625713676276521265554357157322274175366217161117764322331273613223163625523744643575131267452175474676462765463133646766143343214574542651527734411226733377717362635234475511153175171347432661755617251722736346766232276455544325443435641575474326646424371734471144537711557212277752412615365372165156134265516414655245675544744461475224764645223751647434121477641462762545271666654726442512676755255342251441335121765256557445363736165342415311511247115252771415434261441361433657671537621151625343311446623312373456447456651474145122775426767334162241136267663575115567367212732345361317377656351126154226332456325355475353327333452263735214246713544362634761335445741662226116473142344134166744551731152164634351474111431434712175214534217744725447522655365515447212545532324777661157516467343465741525661357256463444424351631525667465414452331575231777162143533662534271324514347347446563146535711332575247674641676554267744545671761615575272461247657765431332441522412243511726623623376422676751233547717222715477637572762666123417412523133574676546746135157327371444147521127165753577375446476653377253474374172462432277246145475542773533253422564125743757527473712276413755345757564172155134425744614223757554634353562264747533125647254243727554743372165151574461375131434473126557677514773332462216342722233271172743443715265515443645161511627125462764722474347725634715777123762361652132567572356147757172361416615231577456625521516526755737717523613752743425567542357252264447741245432174653721265223553216113241714314612375335256634156166513524345627267613441433247756641222666542457452717762475515571624222167236314476324565457237323134443467317761723513351373346661324674545644136311646616334123356746532326622753757652516331565473355677512777475563753576565544771553544734714564151441436174674751346652353131457413555566246645761667735337574555244122647424234413326762741516423734322365622462735634741213255562324564346526111665361521147517141521256227731227666741145237143324453266262324323216434256273535373521441562225655522247166442262454621617241735516134743777337575261261224321171114517121265235164123355776126237612523742466216621255156651574564757444613545447564363167231626324362754331274253613131265357313631137473512321671114242167211413536576156411461613237537652613376366164745113375727613571173324252752466117537223224614613346754162532352436362623315116543431157423661724564656326127113356574546234236714312244167161436415163715431243664231531547613544254545471434734546533727172366174562222475161555532233134372313762175454364442125352675225555145366733551325637465664416164771441243433675357337115547467167233267743223642714126773653661615343347653357561273264461766151615342441675754774413161267175276733167357165555337537756776417413633657765454371465362273245116513717177755515645314734251773644135136143625572332725443642237643366373565344667762636323646524162112471134613522115657243236556767241354655247542231264617675573527745433366233557577371361747432336212532564742133754113221254527447623172516711327641263217652727721321512323545641771232231523436662643114471256445461623176431227425746315534362242245644471634715671532415155362525311652756456336513665572232314255433741526553544733513146371635572277362231574317661164715117677111136253444764754162564376465475571436773362167576744414344123563747536176315265761542366667356542626647471227736222441341366352535513463526522444511656724642235117456721613347622127632316442353327223323747632244347472355514756771333647543751574654712664371177234527513213264652442532362372415157241652171576734221447616141566613761227471363616154744741737727327341472541242147543147254356271344576662675222167415523267277243724513673414733774656115125143544225415167563163451461174711375117661411557166444613132544674476376546534443317712415673453114744521365732373413645535112314722464632346517251656432233574275445732377357366563325652121632576212542417547416141745347334674435772242136211716222746713562135536142366371313324431332572725517313653614654176643165355461241112567761456176772272731677614724214323451367161427733133124527252574243272311364351763374157716177613134266324142141372111221747721324742513211436656176121334325467153344755237717711633666322771777443142755765757144423265574675542365554353262366732361247537424652537276624164757216234327262667234263756564263375331663622177125453162141477741564552243364567245565771242156244622247675455363243653167416232724451341216755463667277237163365724261321117146335455372371646553162223344242116744513644131775325547175532753641321625321432254747741534743436552644577742161554662745542724772176665552171257736343111212573722622566715744147765366427711314675755656563167176746572572733333737525474723744737517677263425622713544255652354246336454627513713471726524141674431365161751353613614565163343126156764773241432623412332757262211777577724167363733165454312642642623626446574761416355727173467764367123614413565412214324564652211224524156446117321743431227457563246754627531463477644167134214431226622764744414517327232743326551453663466137421543475663345113361666325132214352621511754666115213146661172647723115213661512424137636157334337747551751131374711764661625251254223321535665265464754247665613446717253633462131636363262153536327436132362515672541266375747713647443761253743226345316173113477453653111416732766516527737417456145465626632731523566673643112625375176753266357747527225425771642362371517554557543554237236224444663655622371455644467313334172462666542712151654334354627337516615652164471465227566341375356346735344673753566654671137665522525342733337725614274316416277463231534761652633263525566326555117252657746333642325714745624444463667765617375526347744647214753351451151111664631645423363152327455464615165461645511157456617776454235755433527471515554345335212736523276661622712657274141572764547266254447557735756564533622416345353722166161677555121524165732567372411211461456371444742556736756226447617655514652257545541346261745127114566363672666542577526723544445335173564762535216167153346123747466756354646561371426744665263122127666243232363434332621546152454453261613142415242444421425664432762254577641564621472455354131436545114111277773244371247752114762614325546546762433651555167577757421276744653125524562362351247212432436135347211551121256473334577744657313334523625742673347127223522563126611274177461715717623315473126676136546475577462565116555177677613656627417357625436275124723174461443415452544276227642444765433471153717165616631624161466132512726321431222715171427676671262574526762115276711262161663171462133123323154166275325423634172314617342567276116757432735444674576424713753654563635141575376146712513717376165351264245174721513154365416226764272636547241433631367242264262524776653576742246474442657377552253152441436663533366454414473621137373547326612231176531371662115735412454435561761654615173215711642177643422512516211611342252237451436777142223253255323637754122265755772235663311754236345746256765464771566126325651615313332321776367546361313111262733375521627567534562624134364557727673665743647416671324142431432523122616272254133276574756223374617161121446142553344151664333124744146223137426753351551173375211626441765647635374343544715525626654152555652572247415117662363341667255132223547411122211356675173231645376644715737241415316136552546476473765661617641413315363557431411727477657645717352172567543773174154743137132766276355332632352166614226232321252216753246414714674317332565672724712336376677367132755244734246631764715515645757157663376723616126527412176664612572232234435437222352672561162432665777543316341576165335553717115725673143761251776732417722122624414737447456465351633644147322773567533471256115171364767723133372257616644645665633432525221577135716513311776663245427333512526321372734734713236711745426667532651253557351674615612454244227526634322257447131623367725547412475737366233346341771673447422662466624557174142341342717651157436212766776513736273464362517643575714524576712632271527171266446341722463353557716162172221175122334563122571461311427753172625147626231511651712754162362653567652616666144245553252421627265244424222147565443151233414334162543256473563327526651222746564631366247615331324112234442327774143177167723745445772446671773526126745147543321222575355554747643657463331773225374133712425413777646373613234773516111443124324421262644266765446466524136571332461754313213657627571225264211451547272622227273153274734455623171131212543664172533335613465175227432526215735117544335615325256113475326233634711444225661476326766512434621432416127717767511517562635432464746641743741623774144447224362165643146334537147645372234553163756354321613527675446571356665164122445545237327754544672551377772246123546567665251641716756155273216463343222747123235242757617221161324646143166412136454434455565527324232547411624672244613562245217723117751154644767567236555215271511517635412727675712657412131213373367122213313275464424531762211657551612343563343774467677112216275366623213546746427576511632651371273613161275756137617713261431447742362572217214175276625657125221566736347477721557432336451163343255173142143131215332316516233457171475623336557214434416332671721252643317254215652433356445656765262523531262157223547435324223733225662621227251536672534157553115575667713647124614267776654254734534534212323624433544322647444137523334466761424771334531676422374641377275241741214567667533673467417447275411422272261344643312354327451121274513643177474135463735174325344726424724764471257662563125752454425726636316344222571113672151523445222242766512763173564773765321252366675656145456726435745516623263763641555414317163766546332751367654742574144154452336262471527514211461715633261534553122175165617657171555714167555151371111771666765253664214352766736231227327327734423243662761773616742774126722564127477517616367274373714716166577541531413452563124425126125674762154334661131443725437343744542661223171315343635471545732426615737346566434737517655462733734527564433466772142247615712314767745312751761165372473363435234221762266355474234373632275727443452771737517223653246566372437714325522462313772327216255432444266631217341741373235153726352777674115153247261623531133661161262763417724754765332454744254473563143135634322265433247675235525241464341714233617324323737523446424262352666276122654351343677552277435725745761256515742332317541613326222711146116614147362355437172623224237242223637567135611617773215641755211465555477251342532763651746677636425164212355422121376474363347321137541175751252323164522167712235212312227236567276551176171225136261512546316346124224234475172631712265237164665421755416327413514744566664264127324175726667237645424374122634656365771656513511352772324617266216725173765456423614256546665427221722432276737432747534423264126321574634531675773656421747552415566251735124614212154267235476265713116527312733342657764644463373725577641235561756756433112552744634627744423421435312613751365747532526371644117747222632771577552744675172613576632215315465353656457167367641533155627475233531565475333421414122515464211553732672446122264567147617437426622272547452771367314475332465466616254131322567417167722372731621537253325464545564556717172265442556122661235713462362473623471646661741264676245314644236477565463666717576324254642465246336714263274144715333721256614647437767416723425267662617671465332441313275551377356447541776532766226547345565514362365456331547363331374154536366424362125263331566725434726645511136442352526615517343755642524637674723275265646714322227561345344746367117715516351572457615331745774716727511336426554634371514374116717751114165144521361441271611573611623441246731767733244234414765151424642544553567174527267556475546344511376764674265275364233617644325466355645273113642365567663426266124622351763351477366254637656562243411511246327367176671565433561323313431353471321171166743321554715361325765121241251244517765366226361277172125253372753762621543473522522734653314413712365453632375466762557211662274534272574124672511767122171432115535714327716267556577121154474247742575475434423473574622261715713272743616351737377651276412213633746321366353372277421262523177373335374322543172134363534245274421367132227531753513167614334117147143374361365746456337772572416424754522551455222747656126471342747422677135651146144757636663177131431435212237744443335235544566733365717333347725257113567266262521212355572664321342621656665741172327716266522755351355334231347571513543434643461536362726144135377564737513153246175476314117751736342424141456376745617412327514357613236475335143734766237272547632354225161674271511535665143145214726524725545537624413211536346741633426263757152423645627554452554227745454451623227613667336513325233177454647261253442575365111735336214771127255422562447451654311242653755163645133271345424154171476774573177573223267132537357417317761377346772331233417454526441541577634625157273555424265123217267353135554575252733342266476535553167744314742235672131672656425723617453156413264317577154636322723162316351661431372377764625122437571536624757127341357642654721117263165554577544673576254657751771377256746613472662577364463562633551544436666165455373152321624172255612671416253714432575666367524476555637546237663263651617571332117773767614715343547622611154356365774756556213456552144241677425336623662422161745351617167143715566246427546743471671771616126666614651734732372411672154175774756454451144275546645254554355143122666114633421314122671447165416565516163534664477677144752624573354363747346176277113527273553121566154727637556461152263451753741756552445433412411721475574117375264322174454635631771657252312237673713347134627736214342464517677267534647243257767414753343434354437724141565473545244517244572246157565755424172115465512172417234324111563313525365246565727643364616175426172747555343335322661352271754774161237613246171257426647734443153367367573424631613577574351665224142223674351542133774422511333751272662327364676277652722256554573252414464254774651253572457131356711466773414111227616245257226221367271542153416317334152214136254214367516157612644453674317246657316471276276374132532153177165737666127647621233477625335245747746641535617643372274737554351355251234126772342663366453172141755111533434561157317145546762151563645222577715656663451251566536123754134126723622257416454441244641345161763255572652431264322616144552552277657255517647462562467755342563552576457544473662221236712357546115664737477176222445245574557473262555636636567635543312171257565754441335224216774246447554443331176222743465374127675654237563613535732472133544535322636626127362254415631114667423716611513452667431125236725761263253434671761724235762755643672127453253441452176114373756257563531745473451762662423632657726213327251636636126361763342245175347456432335141717715433566366732177754111635636641415764714521127215737723516514654443743535557611574517161142437175412166635635776547466664127147522131115577411365333312625732114326441322354322156511674516717353336551617352667441642222114162414453453411661744141263375123275534111543543647344553224625344137541515273467424212425121654367434525435714757377653465453223255531414115673543641216664375614471441163764231636647546217162543677126324751134131126747655243434356371715122536747654543466633377131331254447434411276444431761714731255523666321457224777177367773111773352113252314723152771161411512131253662734336733242353424664111235436622265161315643315665476411464367516226367264515414244726256624675527466414165536252754772565245737776647247134761257666246664577577454612535324453441366264534624652234537452721465523333126577266423715744356414275533134614734577777614231212532415621422216675515515233343636711674746251152632313137375762772763457315513666131555425315425633111132773363176345126547313165416533123442762626421316446656621473615243352544617752516513465626126734271466251356546322767654466373723262226255141164374452227761363621134773616115456124336445475667763512772674552375721755525315225666176357135474276365166617342121631666512353762612427421364617763163633277466771134166235715615334627147226216331151775577372144426542465426243551657437361414257733212744771247335417447527336221543147446564511251216371334246433737675643425553715635661215241535634322765432632415214245163357742314573247543615426253653211276346116544417717443471776327537363115151422322367646657671544414135633776231461554551432577257673455156711161136674156337256356525544334553666666375227256714677443777455744632661314431343732675366334137423773143577733236535465431734116517724373377734526476231323745625727367721735371257773235543244136154257452373331432745521755361216735773334677143241714323153274777611143644541275217731347657367242366743437541372274431326355473541546721176135265721154722552137274116316131656552667371467774725445276112177156456416646645351716437447751676533313377265122224271145134133717441672711634255674717524136447574675777253571467177243556533613262771137377347357415772655136465766761732167125276615173727665553453666175211721512421634712477136425356261354435761173464633647513457476424177667717355742545617365325261572662572437334511373321253162151431511144717562511153262577716352333531232271462517137216311335571253367571651121743775545772441567225266353466673263756646723273124644513252231451765743555174377173465713236414414312666375635636374714237162733364453473276163623325157176363632316646376215677133631657517164335323252114763716371366457466122644163414713315135374243122133327137471171621335275613134357523625765775267423233735342776161463363275614765372614341442561646365625377675536726563741111164723614455355231743712476426426731412151516331436137361133175611143467531374651473422545154656763232376546225364527673512266175431651644466215667561241361372744133216765726575564617146316573226437537221111661351466226267411365447463674763127167122742723153626674255754267315221534635244527416135634343375121314766624376437355247674244157217517572142116253667661425223244315366613235142532437661523736571331212644342516662752233537416642673267614174774112325672752537736445437251647361513373567744757635472437514652744373753641447332213456331615222541247443511455675333266341172347555431173347147612222157166333321773124442467441764273123745411677221666724172172522734237111161213312325626235316513147241466471141262164617451433146774233174277335545226273446653563376515236262146662522256145533152743566516722612164373327762372675155136637227447767322331667741656371154276352262224356435641637466615326153461524141124712265145125761575145327645167451761414227716166763526623321376475556271311127137423474647771141525556516622735616146633543547623511351354547337244147425712115455514752526551676413355256461236127536772656747771446255224257162244145323327236463412225553563777513345672624654234441225514715676323223325674426162224676367266222544165566332132443143713623546722542431354551726442733426714515162345463742743516172543344135545171741245352642663146414117174625712737666753343547531252253736447553533331765243236343771475242326772246335152415353653713546661667223757576756414172313557556556667266345153725435665254222216766115732651343716674431743363372214111475422634414256263623262514224454136432763477236622352523145514237162351632765757374456763545377375444637736634765333333727446466244727732535224757324615652422445741635221142541672273752333471365471313321515576726223446726146625767412553333135767435346254257665636115542766465541266223632737522544417577557233452214571673664257612773747664133444135225425253344554741731554122435246122756223677364471547253326754767254265555614465442457723637335264773662343172656114226412545474764342577726373215737661146775315732313225254676462567775565336123365627446127675255346734667672241722767572462417335131536417633735233323472653776473446417313176533354634121412451727661532243137356751554735213415365451775317446253442145565247116554654415442267633147727644555433211561425654541164257333622365617665731627374322737754345515265265151133263534131125553434164772411635245437142264133375124514156232657422346655471641442133631545643575143721472665732344647714471751665261447625331556342343713712112637613675547726542176567272424571471172745156723344313324655245316525633337342716336772351174645411274441474674541537665676254124245612652451224367357157176412136621125354316236274272212243367153264123554377226631161376736655173615262622654657666127113671421773522115313771177712612313355566742244114325524535626251517355162227621354736511273231372341741372364522135716137552613236334475724316612423437374675221165534347671553134471431122644752646462452542264635717113377715371337676763322626517631162263622156237147562163135737145365656774727743123242546251375724613523224132434751235154274116467743366171335743767674335636676713231247314772471362714616667457614132162761132271473764743712713426535634131461431747433125325676643445252321464567443756512311376652477721251641774413354515756533712175324417417241516361255732342643366147111246326365373276332626256173114232174722563273147232251161371125246747335546753115233252323535462266211166675215122351672266735244175374274715417756747365251715425254774366241356144113622723676324723464412536554255657752433275667445726261757476254162446755555513224234432312221656233131616461722436273433666655677213373353545171711264642541227242412157423134326454741325357374545162725441173732445561436366153772214151261554637527553423433732253561616754447521477142415672216476466355713755234242423213424363353377712211745472744276641311735256357611715665161622475636733661627621731527326527767563566166341223335516442233334222567416233455711561536161415136325376232667462541634534715411234273735224352527612365165546772312516337765357242411317773664134426361461115242313544544244557332167327447354615272547263632775214237113241733642136765462661511125746474466153367276645243313436244773353362721637634361712554311171546214375372356125137374144255344255514554122724547517215633666315777546157442727177121624373234133121626674277117722113534151564175361257667611573734371126175626454471561562743445114226146721565235315563767335735651574466436252723672111233637425474234111636242423643757344416365112432536542775361761734416235136211574451552421527623354276674534715453542674767751416736637374715653327521221236367274166227631515241223255272131257776632734116734147564425547676676663165676571216266622416677567465775664444665514377541541521557467147624373763435523576767146125221114534142516251441431345346763273557354625553727154127654654113471537223177472471123127626237516753674174143324337633634647622626177621245571323327622277371454463346472351314646721152211266625263143461522216112237442577453312625165247572522645711367345766152751515556731235736156122721626734215164166171774613535137223236657475775716276667343167721434232171711511442331466165777154566716111273347463641551342357625616621741215365541636163321323125111275335753441634443176232553364375242141525677355664511766224765423526761452427227571761523312265556446515657761651151142473733477444234721131125223247577172353317643545747753515132772123341612676153747156447363464716332524173722347465422357737457324667377773247215752226224371423111142142566517415537561122254576773221576551412266254455714474214646615654635264721477262631352745626425721647243422441633171275761733544722655316454456156216715127573176473224263547556567471213363773532164674367454324364516744435622147631261235767437171715541243556643163116776151751163537164342337647257741745154363657656422755743677715773612331735624565163761251352261653126113774443252661176244462651262272511256675774115731371676615745325544524233645431661757642447312157431165551325314322416663613212165314162215757412554452133445555325124245132173351736233671567331232666473722441653667161146272215574455666134321671716742553774545314173726451432523437774315162734345647474551734316317141667254517464345732236666627624713121412552226712236134717712573226377555676671114727432433714225245233722612124627662236437752667423725326421112172325361276555526122753516537137372121247116777612117451244367427632156161657741361327453113254257455265253361426542527142451115243172631266431476652765243353171577663112755216115215731377676757755567665527431352756215176175712551541323375422731641551451162441626767221763375352351417646173176765717216446275542714777771437225137741625435321432731723155727624731132516331573717211527431524126123314137317711632724156221724745215522653554647152457412515212642534712361654652237172353174377552343512661365572611146357127175422712262227117261475343444365127311637752762721161634262717531562545653153354472656315416552641215713417655335613554235213467512313544542474266533356116555446666254647116635512141742627464362371175727773563671765257227565137237731642317711717636542637444366373556627717772164652135212542471747541651562172466773623267341436323472671171257157541251225367132513662111136245322531553313425677265376512446267443621162325215133764656112742176561677141663465175462474517111767151165253513333262332123125224232231767442674433557171574226642175114142453115564463653364262362273527154364743313661231146374525217126545351713313445442313154516621575343434665131616237455247131311735371777514714621665422335457652413572664354635115656122767655127461766314171613472324622671422572567541341323574735417677633222362445662624313626457447534745214451331433255646524651534242764541764747366743624373476112412766255553621525211652221142474772717476157242754141264311651261552632437564652466625345444564641125362237645174765533466155432533352516512213613475735642574667436526467712374643557233324174246737717722242537276132464264571514674675133316437243512122613774465266771443425453723246437737477135646172344111424742725727761673476377544256421235427112211312751772667425267214756167211452556656146717536757365265226353531526523334221216255764627455141313156513245256114623574443257411726777224152774465134461126767261152115612111557252742745653563761212664215453471764361755445144265365725553723212641746623327157676321166371613176164166312426317251251221421622541356217453414531567721753235312431362437672345535426623237777244373536627153627361354571471525364641643642243112431717261344172677753441565215551563672626347537646213253114651126527621556533417227667167565671644535712675256212261271256747225511273562317237556577634532545235356535166121166746732425763516455232742744763761764245735427364726334421731436535252756511447153116567774736612331647411655574114764753467347614161741127617421216526164732124533547751743775727772517313526173557565753243155145337367653674351331245572177715631577674355612156163753152264651727726545336544444732267415274216311176631616364761116156777411342461343344273671621436446411655725243517237526771155122164252154572153717772672116522132556654444542142741342543524647715114441225322637173247423126237131514525261555454112253576423436417152712766445256375745611354125133424633611526467363765223644467742444126177146776466211415244241425227757154163733645125543357432256253361767463151562457676742367115444644713212371647736544672725461755456711331535422416166461136245713723147133676236756715731754556257565617276113622624326544133751736417437442134226562535352656143113166123337761547732657254752252667673235225313325524531347475765164411333764325117473626677576315156112421743664534236227117131646557622627326713426451371475561447522124267761334261437561247424417612321331373712155235463336176161443577646147445362721464275214351631514537565324427575226657415511662245214656322472334132263153132356177575441572635451677115631766621761625715312256237351133343344354456151711126152717114541276625462417412534342552654331547343773344325562236523111534712156467624355245461243564731322547576661437144713131526121354542531417642567267575557462632475542624712267117377156126321451336532222341353412521534355533777652765221467737313455725571267156365727257154174453255726735153722533641746367235553356363111412664267355314421375544462714145443761136776541561454714324731465175111127765144272764325732261761413635724547367457123735243343425721414161121166212474127565137721772421533543573633255333757751151323475153324617334161566473611144423331674364321137127767461565237464553311744147751761726775721776364616712427426625721631533522457232142413456341143236272554632746162424162727234461311557162457276552261473517255327465473632751636766145525644475443214571676153763617462355625462722572672627217571547774457337441612112363425475552542327353331533633273545325113461623651324366663214671423243613165362523243242573152335762452652327661426632111531173571747234575415656642763256456647143167447311715563771336263167775373351312473262472625553252262622357427761211457753437146474566124765155116364262534552412777672312227742561227514161423512672143365453543664734452625266467774333361545745541317511231176267533151345141625147732154264214267466523236421325431546366116424565347563535677343537365267132511344313557451525167127736642133166721417554536334447443426523152745116754546563247123355331646143744553336376623644362134332145553221564425276472232336162377254417465137751531143416335576414146125747634727144576441217262616612475472213326767644766125275277337211441762662766456377121741115146114213513612567437452657661476426137572764352435312667567727561573643753411744674163141253133113567176437544324633351465162413763762536623255651116245144225513713376251575453574417235667437142472327471355726351414262146252413756126153745514654263411345627225137735423175553313765722615646341454316627416747336141322715643111432425465262236242274466363665641113553313647463722472337617375526124445143722425564126121262645456134751352524313726741167363132156463522174544746644753721335634473745166632445432731432675451127425243146273136333466656324547523346643563216142312277143621572725722312723627762312415711767272774325527772111342414414423432642365147141453417651313755322515735542567726277266427726557731635313662653414533476477365452544276665753435117561327466124461222711626264774753715145766536741252334353654442653577217162766113337765452116275655716625724735472411146361321176767552465167647117235174225345245222562371375477432241654321145661251412542373255472657321536416643775343464722461157711264735612312135375177257354366414127711242464214134153717545327732743167235747453277472346212325422731763561637156215353374535317414613272456363214142313657422573153572641461722527751357332471617357754724735371277334266535537665753364167717141764322266162742531176616611626634277526535742226336331211374267716672546353514431363315545274265256454272462226355775563214632461425746224547475276755415761346412326241534665475313753663627771223151244733463215673153465465611325342735373735615314563432133355222424265467341713461125241667312544372251177367645751674163724372631145354414471316366175311731224341116661331471321342212216332767172767113342315552662213146354264362414632272166356667174133651421652355476714643621542355543674673127671673466652731265143333133536636626355344646676412756272544541443361215563453224512442536314457725137676334566241415662612271262714675622317235276165267516625136626312552676425345173255746652635577144335217134554272716774261741746473213236615344546435254261466336561113763631474252761517766613562662172565636443553545433424613163463652456413671344121463153572132427764535135262664744362732145416315767674432631426264467614356377716177453745121631477461115146757771155353256453423562674411217326325262671557722371552223255277141567141226322551726142576317333412537562513662764611772723646227463451633212412213412525773735664242435667242553124376117372171525167766623261413234754615125217125714715224475611225777521243145756567313752533564465446664171617655616123467656325153132552753632513325753142113622236314511214355621325733145527143615355475134726762655371164171461237717623415374462123223634774116127112453273652263615211677223234136473624212441733653643774326743673265627754167355643253714711271627511627235263751377577361321524416567623542246366257277432575255745137314521551476537562153572416212253536613764741626225515166777235422372621415477433225723614647511642144215765121552355746323474451774335744656145363166122352131121643457145762421727631167473414571241254752235336223343273644324532556365572325231675136322645431517545335567414674577331636372554437372261242523312236422452531114244553677253413746721256442563217666265374555162774122767246557546475226664414673326524441426414353115765536336667452227361233767372117654511466444776735151457617737736517557535334237745713764757162753742724457272266771366775714311624127574624253153214113625347532334213766324721452764445312265312133443374777734342677332657421725271641331455172452516713645141572765132176726154446246644547637147643263264273547464451735122136133442661411675744412576417623625273363524624421351452412473676517156432114666615162323564263235253135356735636455776366114541256473337133727574274232143436665445767714375255514231446711667543242244574433215737175675775753467524114646271673774575415223553544366654673764265754527341726314133731321711351745526465661521244431673764131146612662351344557344424724526742734123351525213246712313666553146561137212633356141473761557265144351211465132156116516664624531366376556251456276257146531275223752631446625436364317263314725225517765546323343613731271674547221327176747374555141262452145157271212716746534342571637253652613745257154647464563767775464664162516624327261756355465135624423515471222252357316755571352615317746761327454516473252211513233141131373251731511127352523756454477537165151332443522663372237571564562417544621372672221444435513163344412714254533665722465246655221553165512156554357527254133644123433313522561336311436242426232515736412552615545511525767624165667622717261746537612521512111771762153213376363254445626346431436145377547566125472363121263237145665651637642322641263371635651341137124277542647766217473151324326442772647244232153234533665231265454752165412727433116565221356225534133614116163374244165123135722336636431337576333633535141643216711645772662525117464171276516417674374663255667636447466431313362733431147745732675653527751226433616113711614773562255143365331622542134235526275522247577424517663277622574425277514574537111711432333573335755127416153775225252414664321235731712121331253711252651213226132333535767116417536734254611424757232122234715152665313163255643575111534145644142673113537335725636772426172427717421614737541324315466367642543675776473456511343111241124311572373232667451616226333356711261431665145212474227243677411527673751475116456117735326366552551146326747675516623454324371447664617413414366241417751471656734336476737476314546453424621425167626613562524167126372164136654745647216571211212252352616473267163125775226247465724175755465374715625437344323134644342172642244735677525261573151524135413546142623676525665214275772642226243545225721676337757661755371215571414175156121236216323743775664725445364177322243775413723572274151577327342556166626221571722436527561526713723625551641143327311261443343745247135133337671622761745263651416311233457347533732245773252414356361747115161464677511125476724564767172617767461531644424416775414535626726664651645316751552424167561552432237235165164251424133722777343557473113712331512216517727744523473124315651621253124126223667236457212776172336641363215575431416427736537174751216541411264334117772166175514535412564674331131241451467342624465554334677624141326355472665243132556346247655176634575764527224312147774162671575356754336452213426436755154333151756512467611154111616523256673111662222312527247341213542532742247552773366312445667143416522755734245563434577457373735627215111644324761551627567263755776511674446236323476356474173562554535311135766436474233634223561345776771611453523157534265645661562472654633374621715334121527777256545242573375466222645717121756733466637366736641344746142331123572566515421215242755572725741431771642413535362667351653561634644131271663433711155153422675271574715114541151157764345525355445237747416413631537364156675551365361343274566653771416416164323153126446126123433565425434167565717654667413145334275641451326241225625775272746455353527564517533314224744242121646312267732624166577174632133237252311475566376165214777212646754115354734763512333132764442247662417223522213536733331166324312453465757317764677124334275537714344152222227617623357676551663326745267412573465113773761256412315234375554734634135434442473645472132617424171414357633374552332544736717417552117714434113355633346256226364476516151563137614147754715644415265113263475577213222613517341771671331671457362725126477445435534767747216246547253123166643326124122153676442567773321216537442255372571436725135376511464421757477656122715521457331471144251311225126431223452315556654311333465371254366633774651547177244613533567337114524213366216433125362757112234677212452473447741411676721333714746223474637534715176167124526123155315611774476215236357622544141613474514243775621445541726433634214664222532314471344457233616341737541735277636774432464166122236124326236133723477657466262516337771725621334673761726756146713113175167114413173215113727737347657457572244545175617272216132231377347574242643533553164717334453411577224322615352672363436774436517532364455273473741213134566557643162537342522126341753343337414722276334517732765154421154126531141674447352457366632137552334442533371245414532536653621164631115436572343717374261544562364475143712155551577236314674232763577172416365346452323622345634224244375334271737261553726513324741412155574571436675216177423227362667446727172762523543514247275454521424434634126473744577527266731273656432154733321777152171715236624456175477742242357561612425377155165545542767314465555737571577376262736345416255623336416456327245452326151665551723565434376424261523431531276272661435275737466537274347366317515762472216254131257674543475467265546761575312331222766337776735612677651523655716216733744751651731737272416211221235531227214421633643213243266372164277131613666353563211636567675426442622322246435146143131122753631223355662544452376711724223676622366746323771321122224556147731166163716325541753316775611614133742355226163272524433125216623226475126736346622274516322213536465111113651644753444315441123673524636333321626254525463415116571353117541544562155623274725674723424312566134343736465176567361624254323347174361146757645565747475141564574134152146133622427467215365145561116333236531773153764614332771121153377153252651267652374524646644364211647234254151212763367263623445531543352766126316754613375642325573131337132173761451711675147711334357474714212451561742465467613257231621352617755153231161152471633625753254153777433652677131113415224532157457434711267263475646471254472541514114243262532427377414275442533245662121314657617562372756232547246551673477352421652267172267213161362521565731737246245474515135253426564461673621444314776611426671451227417162137662471361524413462523665664117777146175347677367442137717337447455474231221466433557541464541516265611633161135413456536213365114674717417632313642625556175617317127252155425121275652663465436437356664346147361765355533376242116166534447577577434121457364515514477144224275232644712747422373733747573323137324625122263322726434413734441372764476735356661634275717555524124575367116776261612473551333145514343365215123213464131174371152517146571372534262566775445663234342321351524344633544222111524251413641734452744422154364356174156533536274312155373642317317134711274135657266626113454375312174134447346255157771446177747247654332365214723733161767655773761433572414227412121137226715315467646211732773216221252154616544541473675175526332466575366144517762261772553577635525355263654754162363447626613566434263442246546774241333334513555174551665643453117244566157424345722722677235557574152171744467273514674627465355763373477156775245736337466234743363632547541375271133274116523743247525573532262415226521562277533516275452711342273746126357233673432311421556765473316343375566243565536724713664125642212152775355747733325774326124454554753511326311654455127122456244552244466237426773674517156674461774443375432231622413327311656657425644627744736371532652752746771476257265577427463652356443253324132252741172757347564432146512236543657651156273162634732724137614462466464225545121635237644544274432412244137642124657634327737413664171523577173667664316312354642352333513624113271523554172477625162444135546155241636436776762571645377744753612674547446436675614433536335616717463427373153144416753715477377345611657276672343242434313353317211375424373621134411142367737642611352111463627467574723615713264332543622113152221514225137457212357733154571714275637452417341675762327767172513376343516632633432664653673144374237611465651134322721372515256562652642431554127411651132656546725323665734445326513616115162175726226122466231272564414322622334346157337242463643214647123465122731173737376762223711634172714221337743713674235537623344436261234322732423737613675231615434551423626177574465656473563447235261563473463142621671166524456316364735313616272252271244611452371715435715745154413431732276537627373764572316157514526166631634755355144215112254741656542634442171514134756375772756733131674173365777515535235544336152242553212113163537453227564572125414645145454741675231311677112742447254722516517443474454575673241166667742624661237716557356613731517614777467424424473322222425677761561541413765534157272554455343433671652361254562512117545312755336335565673262554764752474661534351247721257426134632263563655474537622651533445231451721215757532514163156533356424516641455332672312611554122664356343327263354614116355667266513451624742376671471247136744636364566252313374545661763661363323711627267627313773112571537172413465323426457267561741124135365645511143737756726113135652372176746764361365257172425212553664552551326356175124365127364753331517642677577212657551411716443524411711752774161246311322356531312413571772421535475647166752112463134143376351227725124633734312616322751625141252655351555215577332431634531745234152147671552516162254526723647264412572557131647164557553131766537717374477574413271256562661655565426257227672211436325575653432313132255144365542463252741315556262376114553326465713211441227135275117464737775676337314525431357762747454353233756727372145373463677735363616315327361465335574264261737312353114232372225716436164256221466761524154367272746755313336574514666464134254367356727463244735325255667375744762674632265662433251647661464763362656175774147655141131171516136224234743566545252464574544557413736423772655473643432276654715327373573661632337572122721333264223562261455671562764256322551263541161226717176376725757134363547157172173223152765453567225673727641141463612117764344266167351444552722412533423156676425562537325527661235616134715757435611654327425643323335635424467351546212254741362616311263733767253265312116136427267426713212236644415726723576414455467621734622473274266647471157726677113666745474113177137245136147751441256725536135152165711616713151277711454451376474275466361776726626173543763523343213143143145647641334532124562224531154461265242276653265554176663617345474211447336546344154733323261127552636652637473111614236564617766151756232213514616421411163251776114731352644235277347467677776727413542735562272147225414325326261655762532743167211663414237766154642726233442454652113525435432127323346514763547642335211645256222655547135412577143554742461313461246252623214217475262321362732266714217631242322747373432745154166676762117353467417763251775475374263564731276251356775774654375733413176337365412313124412243656321642664514254516217567614212234237416261526277111777161421735447422431413333344354453445631515646222363627255722461744547511316227556241267662327424177162113645733647757665217253554662114572374652761676417425713372622372532331521517547513324645147417553116377351336411143441364224313525356413647512717264222644476157724566262134335354617174554352363133151365721566247151535174342766265425221466314332576326163451417152574543574137321252167336567615265551231645777734354426266267776455667145746741565126156774774752451557254257327243257267761456633772737354417423652767156223726426523457111254642751657473714746717265276324772267455335645231223231762623324653612444237164225632742234666255645113537446251644241554245173567472755731647733466644352772461441735441544441621614533642212455552426572337532632316712333471156221171445411514154656271542667512723766647732336223753137435316521111115271335341545261123754635141151677734457555363415713477275314313317665752511152743323342274536161157655136354641113457166551557575564371135411632376215162332371256617722574766117147766312443471472473753553575421416341616165135214613277647322562537517316233664446676753624263447427561515213747646545746456122165154335145353447413111275111417115641366213456421142351152122244632767512157721145263472625132535734174323216422251537112526712414226747272745364446551133634116627514644141777355323437732442235327714521612556412764656223557211322763155243214312777733371443574763371735446276477514254211661351621634477421462343651411567726777172553614743316615666145747757671346531247572552351355762767166213167373262351677134645243351172521652211555646542345753377526111266416564247225351357517473414633463443176212651777742122372665335672211123417611516727147356272673124245526471652453561625546135437763536416574632321513477214147146522363253657772154523554251266141417725322323432723377126155152232235767322656177441542367167412734534465764563547524163113743357132411176656222225623244542176712243463357273434116433277326326544123342472744466442773624657544346713143457737764174465144237765566214443656545254523441165254744754542226173511373741256775522237673225225517751365313314775227221632444325423442173434123545677662147671444671221463175553343233547527764365477436646625161514262234333651531575472365773265674121454153136316765324125543324726774371725546455376671564217572413252354741676445336515226377557166233631731575447312733654533632465161174254731171274663246623772612731357153252362167424377616171263332446664124342373632723642752424671566272536177374676352661734423562513777776646336274554657421117361752643646562412267564547647715174372656545177225224767164755676335623516327353114574622327171743536127751177411262543764115213656571415625565615161471112722371347322113663554362531541744374422564675275654214466643247517353532223642521142427424731123241433645143316534617752355567775247435352724667351255423273314127174631234623551776651311531244264657173455744254732272355571227615535274772416123452611467613664356277516651664231521557747227766716661565665371463651555671716671561546435366446623761562663652641725762522455441651137316675261363262344622457455471442432141317527165451717765435621155372433475414261273273757441657517642313764514723454642627724764662213513373766423117373276775463715477636134167471431162762542133613565577277357513633121476513274463343474322464756462532413734473641217751217626556142312716456153114711142235712627151462231145457741264426131534433462615722557664674447463535272531732534713772473247276462312565671155557156227543564443665755644752431346467445734567257655332141314351216253755535443542474622752417432446155621516753133625122453335573512414654463716411112441714565245426175653354225225573764553271752753461116531264153442126536643242527621564612216544766743531254435421516266521376175171365374156722772732673744554354424255572564675267367154542261743371752337131641726725461621725245453517633726111612561643754611457132124336341342617163462142227233456272735172373211647755377334661511125636756417573511341474773754257743652512471153327566156564313316675767237446671657665543315556537435451515416563452347761545421365223274145714263536545513465633345675412214743317273164433216453453114345142573414722465717665223546272116355717323662464452275551371613637522564153323752312177321521775767337634375614145354317452663351424321741632446274635614162531573344442435612621415265614151247464221365165357511341133641654733345515224153134262474751757542117761513211434242322111225162413571663215367715246551513311662243433654514415242217361523613236662257621372735345475567741473252577563613126644573362277336755134223574225773364713242215274627341732344254424715243464315717154346414122673375231411243753651475457172472642555736164351645726654665135331417373221567665566444234736572653614325314462142726552146125323674236776537155261135453366127377133644717735544567435654476447443141533445312772144522362346324731775251712212415171347664515227211635747361531231276274646551511675412341325442672432226165246537311545117664763347461311136713643721531516225651621161174165361673747731762647132132341751471561266172177474576172236434675755174613124263542543777632333731451231653272656234633627263456533561746376653416173466474753537325322151747422431767541336522554375525731772235444412436527677337213625625242716557734577667533545736632466667546651332317272667473356535423461355411553573162231466451222662731662746437757162233177222572174173461434321437753273325676717526264321763236225655277767671563421253352616621475216226316454636154613763754725646577322351753662442653357152637527652717216416644241417525713764163273325265753376537522423633432752473132527761755746312514156353514226512477616472334424722767331653523674765736252634327535552741234633443236265441164756545732766361726452367124144642536332437475611545674627334711365127474534425472363154117522651473432176531311547745467531637167344645521763731734674551753153727515261456663676457145233542243235745174172373232245777355562226622324633362616733433567356667451724427756346153626115152151137332714723641656251162672176322357551252556555362511771212143472456575744531377647756777215565733712417754223217215214336115612112462572114525545375722634516636215454665351726645546743325227732617467234326114652656221632745235365217742663352631562765263116545377275463132325374472322623517356315164561623463133364557722166137636476561726242571356362511513476447216372226417534554744115464347357121443224176646352663423166115137314735455453277475141456361714746542377754365446253321357462276743274371147514432765122171311226555176213263656245647266327442226147752272666413261216741125447463452611177651271213237432116254512674114212331463126753174711463664465177244422725623233735714312741542575146342143367754454225323576657554521744373371656462123464472441134137567237325274416757536674117533422444417226661577453453774741422577347373253443311746346653114265322262411755316313342146541377722347421526257121645761735755766224365537465377553352446255754676335271146616565233461225733323256666712714663576745167563234453353253543232573311116176312167514742317743314554556575346665537223575461112476265736672657333366645325437717725632421577634354242174656566652344515664661315743153432427475532112772577532445744326471531375526127276352526413756726173333776772632767142114412424424657351161455644551162534675337735154172337715473512756446272276123423756761521111327254114424237612117125261262333352653335152742154265714134371725224547455552177517411214554547472145124612111173133244732327367515326726221441765213777242172153615516442676674516116133354662243733666156756537342366713373427623311327235112156314176527771763224447562413621461212264164274437115754224527776117236734555221132637353134123144771674452174227473442754377674473653411531363433617214543744373672334527657123524434322715356755222573557673154541364465224222644723411462717453623371224536732445715264564443125555571154751325717545215661273151632756453475417363223672732357433632576257611657162552766323476662731746747235254432631564723723235343251213631365567747352645161725343563256316775211136433241243111567775737641351575437755171512561677574457626765542537241313471461547376361261154336354516767136222242172231235672726417275212135451562714227236322362223753357724214314741753715234455763431333154526212231422145623513165221536371213535677724616251567212376235357633423426726734174134374117745137472735657543364661237542647343514711675653272651115162466324766471451335555754265775253126534564532665544453773613321633425265652141615344654335561753226146634151133771375122711716432356232646743433472325616671644772515112726263444715577576554263454356441361644455145225114442776434472542525262117621432715316162632175251717322214461661432357643753562573636167535525761325473617357557233742734526425657312712737725741336532314356134274375511614477544431652477324735566356547271356622116257211775563411365324552455655664624715474136366131625162567547242634414127646563645445634627544737372113111166452217674257344157727222533741677221311737774571412645121425616527641755166535721314717151733574672711416463264215616534726317767451431461726541331224627557455513566736137113146267743621575357637643455456162622725211361226323277456324134526621453511524455177144676312754656124365451136746643433475774461473131676712515413166435345675734341531522712664163146662453255713176242343622322625425672121722331255411772335411363743365367533751432632254736154562722667644342374561717412221711212471565111352141132113446446667136276717145341464676242125615627647442446374452133766171772564657534167621365672272222322577156251556542672571712334576756774511667643144223434661347245155636125712426752314712147274711614516317652551613323641661262353744566644121313555752237355614217677455777221567214327265146667547625335341517541173132756555623514441375347334355777266753646147674644461415142641651565144157741534273445152235433571425132137172513257665722564145327123336356541256145751136544366417744571465573521315312367737667764344523373554725657726612521611354726356745446234326127312573527233162165532364117711652131474531746256721377617672767272454226234141655175775755165215563274231636133543332741667411361511334427233421143361446427646621164426543124121566524476562465473756733245651146132513361637577115717444232257253444673166137157652626332767615352643451275113261354327516476334533167326746475544265236217252635135156764733527247163174711375127635635331722147756356761212624617573346437754643617617121323725765223177164561752142155217572312124444343623731235453273354474527253711213615631416146573253726154466426771665146744623147443342711662572752476463245653637265565555734223472351766663147176556433237561132261461246553673451234647536743372431546334613362414171263157316552627453153522673314423122173751353222541233432763435141241456674237415537172411754551517754655361442114235565653231421326713553626141653323712244417541453121422337314747251415245123371173144477331145163233761714353453777547474621537144553663227656245221372163236344722317542721646477631146472237633253346642635575661675645271173312755133236726675766553363313754153756313315274763651211652251776365137461111611216331525134134653577435456647667634675572115512161245723617776163442313525476526643546236237135312664357116162665333166772115657146573473411517444162752274752776646127372562647245534153452552347341311566743776543141525764237165326465363663441165147747463573436376236524771276724731776457113753766542331442343755745714616324512476523761236633541442733656347516561167213165352416622271744726775114136436374545336551664376175617432475334772545433422251771673546716542343527372754262371451645456424561244114412127447676774451424713221542273424462543532111243554266354565736515673246547674262671645224621672562716654633351552535357152243412772551134573547133671776222573763142256636313226615715737216575222351354175531312223616751731654112147666533575126422416622677471626624671151572644726671277231334326677124275552253253263217433165756761521367525232552172146455364174155324365121466616224173622322747471221132312272724534736367565444667764124344547322735564643321716716321155532464751531224667661562434642316554353327351146125115462146316265723365233457353175643751712631423752674141176517374711172366431736117633153733663364473732676171723726324616215654334647241142343646561253174672236732155161216712552516217677143635143652213773262352364453466763677166376717426764134672351367741667511512455455771351576734721117171252431165674653122736341542452517142152752446642246172256335515612231435662657114625134776567441665741637226227622535135624651147635731742675767233746532236352346141256356245272576552676433777514732677515434715553143715425376712212173747537316533225676527517747261564437561344667356237372216325363747725162447416342463723754524222125624272352117466752256732555766551172236546514513631634112527576616142636727571164351673755135726634137622772112637737246162654546342344644166243146274172267665412657333143156474434134453331113311454751376245712334162436636371345754174631522664374646443463411116627213376576326723577136511533415446765654517373742766637614355722527415266325533122715116435231412464212735621233444246211744176456176314177123476234156263674652452423722745325357755674175662121263676213145563572352773471774132322134437317776135346526726322563117464426316232155746532565644356325776737664161776742111515244777616573572112411374626711634245326317667711153113675615662426252212362363411733434314114376114345565623265477642464175434446163742433144613771146757522366375671145562153444461466541677527417635315612266745714761752144215361232633142735546334542655377227444526143346134166434632561624657333247574516115162466554637335457715775456467276344231735661527631331776755166634546751657633715132253157656661247145123216526433542256255135361365217532413355743262217734562627452535616343257565117773462545633177571435153142743644223511363613563536434647145533264534664354533226153457573447666351741415172513331676666223213141345375224466721211217742464677725576431277712224455551617477574353116326236552136675167747717335756571434473725715424431432566274265337761264155527372445625544262725725154552344374551433127647242744663237565126613747352355372416265412461373173461337555274556565236375526737475531515236114763416456327343224766156773615414165644477523244544551451753524224617466352666443722267365657362663623567156614316525555244373573265443541342173756634562113572727554222267417115661441662233334471225455425435234262261573756311533317152515331767226376673545521753161432275274325155155531324532747714324164526445252735267733136241114412174731556163611675222246256511137643621626121317223347265747262246531724735176111445463277116332225427713534354521266617621564716641543237574347476356352421132715273635525353222761736162316421337724576323546155257777227151125221571333727534242351214212415336425562154146664232352662245671542321447164164576734233566356434657734643352632635262547575447135721416754351533263547421164216772154161517664222577531661211222537147322217732211274463424635772125151213276421557217661344255367375415736572756711776134651321447111174165254264375372666131175127336736665224643514672616725531454451436267645335616276171754133517554572677522423244265374171361437126415351623347176525245274457353323261253611621473221747525553726245473154236315737144215765456213764472126647443466271277636666176545146735712361311427424373213167664671372521553526677326647357237536755141327712571534427445462354353176332233513656231475135373137547563726267565412642555225637615764357216265135333412324121212711435557476122645225461172114325472241272713271733462671223556415633652744375467147331452746671464651256616357463417564671652131436644545413443725163673171475457434121661336641441141351421176141654633776552737134262244453266444141431227522536364521257617544261234467333625553225253333221641774532466641526243777324636123223765134132224131347411175727342632554261312726263123333135172255443252323635554167422126636765532161423775564273144447242231724242213624564124427165122455551215547131617232575614437575444574441456546572151553125215653242717255732522727275526447235562152176573164276226171734757646753254235543173735646142541524422157574341652264161666132324166373354611117346144334151372772731457752173727633367714734244347475573712215271547637235761426377257451773432626673736525767637545513624171462353755741431413567342624345413751356152325477747174466234676214333257572442555465134147531451114442422677745624327744121166167544777367375157523516421437346433143172132746621272135211256113337657273366351471725556774516741735656114143223326263263544457645533355771213554373713377634733476124534755234673364714671573752755447135752351727312772142341545312435333462663523124221556533474647463131211672215537725672252637715222453433544331443134443746731553717463757514547262747334331316721757364435722757354417153225711276135677463577625357364715627647653542512161254723161454455352331776367416625336534713541215552644573553446111165566143264142346726374742752151747554174512756661531335423641135173624275574362544677343636732553245575546115363153111414221576132622466377126544746716522612435727266226142116522434416677153764613636553154637212553544661157557244731347733664242536116313373321123147144433241423344114545776717425541214522765332642427236141273667111574774526724355211115236526537671317762775323243355172153637727752757366113436165715133536537636735673714247167651464141733116672474674422337326465273265576467747347773246317167777326266245133256366674544662572534354371124343372263636216565141517147362626257475752713772476747765113474233262171272561741735144555716631151462522777174271715463263767276435626117127531632561711421557324115115127274476555756132276241761413425445175174562515736663773253515363274713373555352242531746331156377671337726454667144141164162131732166257124523531254454163265462617525541212675723551176416364465547425447646452727747772627377144215153751635121134133226356374735632237222725141545276745175477152476327622535673433436247616624265126723275756433165172773674423225131457356331531432531222563216121156114737172235322543623353264413224716637244717153456615243775336631723741451465135737443143616612676314351326233745623221521522772642277243265461242665651122223571637643372141365654442543166455547435176413432317155242542417274431257222574626746553141413342716243366435232235123431471146257764422365171324745472452655463473144362173236642571747324174435751411132355352432636562271755452633745114632715361247377475253436133753437641317324464445162436353547224271342314153517326661627115736567613744441123755554737637343311213611456461156533337323367712243543672457554441174246476511735312572746726563514327367247242173362457461331632253272317243553171457316442644763414536653237547774146614271776337624572135711112426327746747772164454671472673145171114772672212651337317677124725736437637251345312354343266657453326212227255126344761317214161513445766115626554243515426244426763572474266244572243715522374273642122431456745363554347566225671172456635542261646213152723574734313366142311466416735236616322142471316546615446251775665537734273335212773651475676365257253673336751271656636517547265372572235133354341233215262211742332454361715353575127656177364527764533524452632534641442561353243636311756242436122277457515732335276464422655667217265236743215736766427526416521556362276411323212765156726761736655275247272424733541342331535432352166127361764331474631715461725234247176374731112677772457453375132753573316517776777145122453357554234465346337331244756324763657264722455422346363161114624171227523152723366134453565266677112773311674122744413761626677511721453433146334114422674475555666725371625642253525277656525324316156237724343734554453425146671515332345172466143511144671551722666223732162615376573162351462641663267516617447431741376344642131367331222377442446466333731233353325447711654212267214417533262425372463461172337442723116444617346515253264311445561271145426563344752477241316275225322175644372671751174237146771424723521341441557656473321317572115457525562746624664236251331431317261741254747437152111143227447476663622426451477671725337364243223514745524665666767534553217522172567452141721536512167527573173253321424621673555774745135335763414466251451636545132745571276437216135263267153676173744764641761765475125142332351755445242347536316112626262337544322147463341271214416336472446217433473747757212542575344523434471137433332352437717554335572241254111554623167267145571352476614435414276415335432212447636512266126446427343727351436412474622434212253311674721774755235617153515143463564356456165627311436171515753432766634534435376541542523237674774756443115555322565641264354163452337731526361431325455173511157424416562437573636414224566713746477467532512215745471157657355115145137372532341271216313241763672474425771134264376137564673362443115715122647271225263663323557171711514177137243671351513262213213364175177115514733124544765216555354163715656361764531237751647376774416265734223577723632725665655316336142555145132434627436315247173116365712624766562546566324223625564456557357346513473324767343231667455513446331677333731767212462447111356321317444747347377447713715153626157214631666515662663375713315123144647125616574664313124466371525222223715565364626332711531624435551252741666462315625612173436324342545644673745426316416763724361636433113327272744175614276644121773315541667163464356766664267367617575563673352711627576335265365446134425752354345426342177536464216751457614251112637147233273523517756741375516173121133553745327336323463144654355371657243176142775335652357775635623557361175466122527745736531414672741147577522713671415377441143336434525566177471542272256362625571154644644623161221445274467157375661356747356461546365736154174653721615542512675425331245654243654636424575754536373327225753337124166456355131151323344143415531136715642544543615333751323765172172576643421711645243364574414534714572234245422237576366737473213763177514457664653512475446166455174156524514262552113661467346246565446221646125445724774747654542227242247251626411211575464242464322545654145616637171757474544376562346744525521632636666352713571746144427312365461441376611172375373646566625573641671652171347167444313126765453452557761725133171623334344772357625734745561262364627244653712165667374252312641222347634346456154175523764147372526522346174621432115574132152443215451352755237532322745144327742417645154666753174477326757764324321147525324744424557346354116641165747613377631477344112533517727513573223226451415136321612774654244576111655737533356556147435152433444433336311767645553515334616143527254726214312757342214564512173721524446776375231453131573713425677235744765522766273453755437126231745544336535555124412264277713221776421313152573235565314216632631564634233412146615555166763355435111533115422213151777715243216626113424355411736136737654365166116541277751753667572451271626647516626714111477456735156141125215717571172353231235642566662313115154215532156211775253142473114522152626245775165613337611313655372665471277117611345235465662412571441571612614731464123713255444513652754234531716321712231614474653151675267451323415742733372157576656415544775247144247511717777766527475765522536253323435345433215245755537613541774441214646271726523266161545555322332627647643515135144222776432755141124221471124641363553536634452455116347561265324672446241715264615633572737563152437264454314164657231425513732275233661432137426551725476671132654242315411464332524274273317474121342173352726162521237572441363317632157451277443466656723241513567615743163247427475217625775365365152562116247271631623423351177724374424442551555766331665176762521172537616174662524614414323474613267167677377552242673335615366716625726745622156456113664433424226617424327535462362652324566271173754576461327456144267755615116324765543674552457116715675577321131516766554622742753433122755257342237116511724313547152466175232356451232334164331257316326242561446452675424747255225167715265231266567231636765577417417246771111167213417215775136177134123245343465637662471275726131543161625364267146215436147744127536532357175112744576524522245231175242253163467751722414621443555371537147575613675256541715363114377374365256536365252243112423153113633447324242166223533764213533116553415143343275551251713275525464144562217446315324535155537477173662774647677443727634316456456745245531522675277274645672537434261755231321242361654335511664214372224256373422616343124272733364615323263535736764316627233572153776325771574573233136152331656255122612752433756461376533637446367557756123421357421374767744622577565526761127253222622526371667646327335547465627212464323471465431464447477372423561123574743577655421372423665145277646343634523354535776465214743621745232775234716417446366762475462315516333633615643413412762537761642475762352237412164363556545732311111347454534734462657435221561772236165557344673271143576764763225235673731321637155336125534266113613276242345442276221764513424614425252327163424235445726467167624451624743376733566272151157153412713417746743331242466575523265366637545541164321571441132442217774161556764337576544766234456565264353243775665552342275732627547375521112771555123342736221366326777221321476221544747773122764565576541521532726323413135325713554442533727213144426722544355624377463164214422173775373131524255234543164636157557217612765412135673113615634572533513112563176666371563455736222474175465764654514663231144767246547425215673355744477575373317375246267667325733463453223544674322232231253155435773224572261712346552617226761561124674722234561337737643653622144524236443721765657755332634241524241275517717415524257452177262711121711773755627356334644773214217377516174717634471254555215527467541452142745416524311221114164241226434731612464736261373772327441414211262431235154314615157734275626656111245152473164672776325277274776233641212421221512343164215517533127347523555726253673423215157562426561155657466756221632357337571546565552421427331535654727671146144513164135262345144556456655461242457773612135652337324272631745114313574611577133164513177115735457727521611625234615115136731615521564764255672462214727512764545734342751551126446741632221515212737335324546473417574736126757144761634377241671751344165153177677763324452541537755474321732721121454122275461566247771165267472637253372142211144743253613754236265435741263311714443724332647665452246476146146674117652136135712227161664571552162761314211121332432621372456756265316737731175441724763237126145577513417626464656264617623631421362643736714363323173156451513663157553343173424724343277363651265333566266632334751313541736164627267726112245754125461565364766176771613137744365224474233741552553644251164632444314631335324672167425444126474225722745611371511552336641612335127433134265335423746644745311724167312231664547134712426246351757627353443227123535677625454641644762225541563136736117555353537225451346434656553564553371644677536664626224271547324763151647513512174735355433475765472557541223432125763546177625555744637143325521337524544435374772474472733616743125571144765574745524637211216427367314734475272663446477631413433564366731541737413354231471156435254256243337267616441421626472327755672345363465323374567447573667561714453121644114654637621117257251625221424745534117212322451376361214356762545357271534761221767711537446523461521664374515614625172136121571742742562143634326146361174443536143322536132665572437667225412415741315337627417653731764544674511753416562632627334432716417161366646536112375237774275745654714671654556776632522353746734445134332671512566752216513576254776422612163242151212764354262651632734334651157217577144572761264476133421647577641746336635244624636111374254351546472476214676252273324142517764634165725416334555116524774714466716517452376153574467761561121121113241371177567326325473525621121444575726774736761531112715727154745431341144744121243533235345731515642656443156172445657614311372266363241545365631337311143172312251565742411374431562676217541666745442713133616765254275262351256732234641131731556217725252411274421714712214373213126755315435177117622734573125546553275741542662653267646152647524244747735134432641636554647623346644751463135412575454147242466362756136431372561326743766236274562564441562741274277516542551231411255443531652313453336515737162127753336425545774431312715126447335777733527431715236447263136763572766242376516233217237442451137436363533475431642774757235331475234617267733737126635747513643476177227222625541543331213611251251313225421315452125256557574723144577341411247453211165756557175645773743261337551776515462413316776214634766155145136675257471471432134534442257173674521571532614121663437555555255536616163253775754416475374112766666576225534342174144573215475373253765657313614211771421261621236546434566241563572745163356571466442211725775374662317645525664621741144664423171333236711577353467575263635235461725625116743413573331513447215317172673417252532754246522542474413673354362444653471253336615255645273633711575136344511411245233753437747117732677351423657563161423337432446725752235612557277233675642115712621743635714223157341245346247422447122634347765731164622657613156772364712712415634326623575773712142642254416212634425176677211526612247612523726571411372333425216522614115471467631762325556217163465765646775157377421367221231577417273173522641714143264211361331352553244442533256565216246373537176534277353611656471335376551662534254213615774544617437225215561317732422113577157224245116555576612745265535453516133733517471351656315152621272214471153223252437477376462521742422621233572155114135114267364536731265634753653277173512531215721236713411165535534125362323124347241523622475252663413555171425532624276546264442123571271253137222743517346624226666127165361413577752125726532332334342112344633632143646632256522255577724516713321724626745621147546641223223555546337334226324317275336641137725567634356222554575347135352245623776425341526277634757575732423134766513575536511226277773255651447232623575467611431447754652717744346616465446512556655443745741416367235171643232227764367765225164177777275427632631366475131656357467417163255451571542355444472441421537756623113357515352632277251434542335555214355115321637665132676223712623361163635727117522171724325471747156452243343246356561232763176715752176425142616555677117427342137247223637737716676527652715232256277554466566456347336637553771637615264143617655711514663153145137655361663741453423272411735531425255453141125471711362366741724551327623146615616146464261474751213316613564365273753672741356511731732311741672327571665123174111313445653754375365364177427122153537415723354173632342373426535127152764222142334562122453447251267466722125367147241426764611131176172223751756612145755435542561572623322517312626423157745114373566227362423614557265172714453122654613146447226235155267634337524274673556661515314132716542423254645333212372123536141615267515212134446615721474211213721173533637464355267346757227522722274477447175625651566511653745364635612622415172342233311526446222614776257767323557277462425242533133252157173557471536763617772324733147267546515572511163174436232547455532474354546655354621533117765641222747515372732534677311427114345442512243456542132175336247573441521146513461613222646572642276361566346726217432737726224455315553321333145112325311342671541216651113427242464237453753727141737241513437777322277566167175312325417763753615245224134255716132772711376671424246653461272126326627651531672326314663173314235117175262351524556244554175521433544362411672251175552262154226463123465655172121616735343665644367535324725237421234171576264634516441743567533567217356316662343227434113266546466324346245372634617317626512562433261774444737417342435436774157565555132624675643277642633357227774521613362266677673256524536436227217657217776757416361645622443475553463372311443372365241315655323773343613151377446364326214747356714365772133277136577337725764754324114336547553433476471377766427733365331217653212163232237713175354111342437652262615731141341117617654117714244426221326564715667754456466213655417652421722511476255214235424265342524737271351277711335177536374546342362331542443516237313252537465613256334412174136151415651737532257114564174427336376164271343561571261661324456325234755111461541756154326664425331136557616173162777322277642416512467467461166255211541445626566746114254252117742717164666545553353172421642736336355733617455623322565561164621565362752721423146334723222514562442536132113517344155567741327665731744164456573127776763235324721136436213774426426315641573365462346256466237273145532721347217353162142175216412275367334456324634251361272144263123166635467163512647167373733446655651427536127224224153656313111515767734635661323731427241553733541635232121153466627645733237613167523734253422315472375527671371362666473756317756176761642172232527362776527526436426422643776141321417411363337163745222632567611143773241575435731555741336236233523147317262665143551674421443135442415424114532216466151125427255426271674256376346345366221366131757136664425451376735761726532636653532374742271175673774757243231523244551761272672211677724337331745423433644733354453445712145243125567754467116453111621225153364133731517611467772773216724343757364534516665665764425427145442471145637427275775547211336772243361243124144655322253316176413653666311725574245463123743515274474434526477724563215573263714454137612552645334755736245556334747121415614456254747765443276673616747642316233747636473734614375213176331253541544315727321641453672634652337414255651673676145345641446772643471365456656663437234277261355625744523471361533656316235464255753544775744727416457313141567255621322735547521576536143112247633156363146222412255151573727122321361565511741176615765367471734162242114111321312721561437634253576711431653615126366342445153333344311467761513432376642451725442173243151233416637533772763647756214521644224171763463573167755716461666211632137466747456365165725125745137344212317346175514417331145552775436756714624314667622626513673546344346737472261152454225616254121556452431651775243775566414135314152215473413337537326361673524132454125576232325266316315751575644365756663125753715555444634321657664664116675215773647333175273153642353344764563767734333143562156313631347717425431755472757165637234257351314267476145235235737753317335576326255751615537233232572646426441277616176552665222361645427355464365275153343166435413364331771547477275632362124675234666766253112243147265416276121411417334655173516544216235136317341375763613263146677422146166124263163344564271161124447366371726425753542152262375651611551653625333571126345416264466643622174746435541474244174443447622143547424377337755465142475411725374345765621626366174444315527447713613415577545555232564446312414615355144721576321677345276531231756563365456427621755476342365474352612567432524511452226545224663265443517751343511732617543343662335777614152534531131276623221345236136644127472426645631152317234747636347317662446233357621635442435371223312545472647623125672156515721362437367563666171761165146551717143113762452352447576474362573511122537775323472452422152341612735117117731471646711326564654157567511414655631643174753347155134215467154551146356154312437344176734641337433361276741325352761555332476452711242256477346444623457727564176322457337455232724372314364174137376331366124225666136655276771741674743746367267162161772513716776513127757715725233344525117726667271316311172626252634445337331462422452472754513116553325442411553137267566251551447661536777166472412571427474531537613523632672743223364243727272164547742323431753222745367377626364271533117225457644572532623553274466717632516413253446621376637367277274454325544211174225127247167221566227714436555171513647747152242765776542417236321525623631245445145731273217142335137312437274171615634466464627442463736766461641355113652345211561255164733711147647335662423613127537222623747734661547613313515651514766373467166144246416756755747357376656656474212762671566462321351345324173525633214273242574532676522132425217642362515156443622513717362113271436611525473656146557415137556522373445314613421366357253121773234512444724465526444552263363616367624236674557534113321751451421473127616475441252475514642124163475376356113331672363141342661321167125727363444612116254452575513624427456723373625532116457141433175243745414766553674533647623223757455115515553252546123174526743171513464253667154165316751765365555725553732157457227226324164641554331635133112743766622341734213646733646257444742745172164625372115372326363761356165275576327621362625553263221121637426361454624716664372633646123165125254736341136656141545547756571336723651673551375461336244224356251535535214354234357374615334361346112632477123557577172735464517522616157161446526435641516171343634453473537411464352532452516162636175362342571325512757231146333344213456647763633141164371333571313741544643237554674223447136266454531334551635325156514427346325772124571564435234275647714746456567231426772626246743143631565353267232242534362365571264443262521554162455123243634153527245326413133361763417772427112726662533256614724365275547557763651135443244735475115663542547734257715341645575427176452547752376471136334214646665644231126466436542574126622422376712223152136713363176657221361372425144446351726326115226366536761414262731123164776432467243743124534157263471172635774112516121575373323553772264773514656671141512243512712241651332137717114175321673115322411533756747742462235215635377631725423327325563726557233772166367222454516276677555577171411347453621362213762736526647717745113315444765254561534421331436341661444154673461535271243326342433467214565734211741166437464721277322712615336334443225354146376321521612435412157371247655574447522613757631236277424423164637513764472575612641615346664247322537111461253446637365143571624771122251377644627546454733115526637156326273665753627323634511373412334364563361552614277761711362616235524254343524355243445514765612474122647233757514241123421372551272467412617767415617161312456617155137431447571373411443711662671424451524513654114361662761352533262235626314636474554762221363712336121142535374753451764722322556467474757417126463663265421716555625222353414342722342115175762444376554134562174331643363163337171646551237457122377525234461467664432665624645215251113463531521264462365751511331432711364546566334662567751223267561526273162626414664751764422371564573722374146634323533175445523164575725543425247423743577461171567253246472226262576266126346325354667641162712371221744567523261561544653155316527625313365624773167456164635671774436766661367567644443245726726551357345374463356124441343245123161226747515153165432666213115435556464345253652336635465166733521476243671356523516264114117472452466765123115355214735446476653212722523225654416222655626423134436511333722573334632324376611354346362675746411165337151741777523551152656626136562676664173265444641246721625523613612231547424111335227423115576157212476331753176632765375165664724164131235645532747561316716417235532574451335541521652663445557445534272326113156354532117764727473132355366675542135456345137117422761617571356561435373115126772377461447476254421247441364264433373331517356117136114242552114564231273337141353164417656771557162223446353411116656645635774714235411347627742626623416317721545215443545641734626277323234577231115452236332135664117344714747762636742776113612323342644442547632437727747222563121315652736712366261355411552163215613215217446274422364542661374774435346274133576145522777231531213137751363744547232522535722742356354413776464526672256151355612547222511561232223531356514265453475546725147373545764544164732311176777415544131721364712316447657541522376772214233525165132137174157411212522245621447364476526243175136221546331476425165647654374171733217153322164764577666325726233445552775223613372451223124641414153442174576147376431742556517315553172552455426463466643523546333635212461332261521424166454317664374642665223366537237115636535166653253676345211325445122164714511225626542272424167772122624314526417275315661217211533634265731672621463242262223367752412115175457536144372625253242524634553312466372643226743461552245614344524344637252756416673137611346137564251316414466246661763117723712527642522371135724213424536136272367452772274715427672364167131351435634745446272273421247142311354731435372123333614722747261326721165524136512774575672721753655765546253125434723622715223471276152161373247541222534245524645543143214537573616171414365763647164414771751343162244764664141261531332437573113446144623246466452615162132553721634337664623562653471575163464451225273664343542772162671241726147561761525261561711272316317335313513574224564575114235777132663344525351127526221634545451751376157626731172135122666544751772527613515715331133223111575676161262453244116223546756136726534553111345156171455253266761745434746773671471656414624532727673266176467547634465767442644623253263733617774532242276572275613122534125124471725136726236727334516312225774776523414336332464754716332121522413765527554613322123755267453515213664541223665767275124151543255644327543121537546261776253617365636713216271346275315334614744446447671532657671541374656354727665655137236337374423211246531621425131254216256521142355242435466212441262177762777335761234613634171126337336446473272436136411112233776722767737267522324116217422733545144737755631154674425461755242646443541434443222574453547274471446723165443756336713251317767135721326262577424315633754152166767732752321364725422121535254744756264426656361732245327136634333252625572447444661424537432755413665366622557357412165731247711471236117415532473613476534434475627441511265426716257233577246742776141367143734762715365212215416433553476662472663313243355316151427167767336515257463121553461542552461323315223162565543272266434112154514327636175662273421375716223775437523333223444715256157673362156127463715353755572517517147455251236637566755535716766614642461413417555364137631521522316446611251227755467454636721341226217235346344113751554447513637547573337164666174251616661453341321564772461361715117177246672725113673151211313225146263752265677361666126167513331247545164663622612415433415751174152771357642133374747312726247656145274261474635332373516422511325745364434721654175565337611632547376151664641442121765745142326457366354152217433531445352425453571447144466443636762527162546237464312152626122721312321516441571242547733744256371632114657126154437323537354375377572267113137463336712657411131121431451753123566367655725721142215452667362541377366151664712243771366225471741761676175466623213432355244241441532432411313525251527234667744727374535655241667731763453547262112675354771271114123567155163315564232733263265176356473373624574136533741417217145124445637471123165413653774117522355152231253563323622321622714152761223341726462164326412612337547551325431367515247217312435521417631515645525433444574751424674661741535226153421177616761341137235411242761423544635544667714721653677116251645327113563664366365745766515571343444133512231176715574445135372657352533747361371741315122752146275341756615135222363266464577517255343244147653722342271561643571236652257346657713233313476167212176335353137131554176457456377527553411624737715426374442273154233563565262364736776433553261124363742662127533423376764214315745452731153737413742647462123717454651656362233437734174215577547244322361524176271777332273357213556176261561521611754263522642331337166355426521635244737123457472432366231274376124427533761642315554566617356251533776266372434221661563427444641237157117263615774162545572476432357357377667461716352233564337464512652531617621666272642374354725373647647721127737324554313724554732736631153146111566327521365172414317416743654734666541777517751371444257634447736623614664753123366614567245231133414713521743262254634757573575147552124227646174567154135525331327532265253172647566313155612754737246665114372457421137511715411436326736577646627122774715656713564571442436237332523234612624172542726172724757333756341633244432623634726533566164121214431173474151463246635445256361743254414213253677552437145114177415166527245435414756754565166147646531645411343751746515245741746741124615133337445417323731245741253543457624767531553166213621136323772773413455443752774355472434625234474643426115314143622155651366745543124136577375777275163322126763375611677521327341167532745643274675155141274342557524727416136546445262323656723276512643666433471226351536451762742137535362732763612776753262476773745515111226611113627245315375713565277412413625117233173634524173732774256432253266665252535345741341757743161317265114377744637754152156455416435357776672366253171215144626561535425426764513114345263655445617553415214775426753512171655335214556477776437355627137124751413277737627564621514427342757212431434326415166131514532746151325551124164573527777553156665126664777416766367257344543541254143554625424264321256742217446254442134676436771236133463441257624747437374213236242411244373265762735775516252166337465315544432636545227254454327376237614361654531453317746412541554656315574156325755153633727116664635375613544333732335731151641424254755432266472746532547744717435742516124675171745232326127773561151754544254462214446342332712726135512241717121574521754346451464145471563576556331446764631767515264533713672625653661364474446274567251557753532222357127465475763712171275562115244245325155645347661177756357163521443257136773661671716634754336464621725536124125325217625451221622725611413235767421514441563556261152224647337311561226365754562717223576642613152314154751331642754245122422121252576174331434732546267332534652142152626772464632452474761446754272353352421224462543243317375615254411663174464741375545575566324756154656334721167553343113754543367746771474413461125436144621151265756225677246341124131623741157665417376333177212625171475512512454373327646767352162232614165322664327223222241456772264613455754377231664117166757317671245733574631126431536545575575523436116511514556743616567347232474327277442736632233273247253314155174142255242564274627536166515425133367123313732515577317367133635164717437652324773134763165361267772655642164574176515725663713173277765375765366257152647142453763172733622462327235422435773213523736412667113736571744645365647242123271312726675173567326114232453163345446436146425447462175242542177553517323276153222323256434654641212245664473124356575447126512644161742532744462451135241121416735233376573243312424141262424327142471351515146221745764335761665735154344167622116615351146236642561115523614116777635652676462631752544226747641624422712662266274547273277164257722124472631457235165576415123235541121424651774623562344757373147162443742153545114452747617235255412177325612422256465466411146677227243753214533512247171225115147255542754321671126237462174627645512611454454666413541151543447317612647475175755422421675251273163466427347744677743134661172322661532557653233341555243342613762155433311744461456313537731431656422753151511665517763166243221162351765747246117717337243475615143253167174775777122146525476224532741157441147143461244774726512616124261215423153167476272252353355164214166464674644665124461116735347155724414112671422777112176542667363134455646711327422622416165233456214111622743116312552451115452465266267565176737116455675433712422441327231234355124773541141323467623756763511323614361375531716172476375756112412243373146357177347211717612762377531255214123157217377372571141135143654376625637671747217313537233623362343237131224346271653577261431555211323444261721176466315547546371322577326422621571421316462311444733155637723273456516544616154566265151763424662543411211227515334242352625423671241463575657523237565751412711145375555443425632617576557641164614562246577463565646423311526227666712673632311165636271253175173714364666131237723744152473113524164643465512413211627157571154573157417361442153254162132256735342424454432741265575121357342217551326172366474275776143767327266437336665535375166612222343473245112161654473273164425653413747561771256536257467232627362666644743272255173753676162211416274572232441151546745664216346356756262536544532326225537453311216135322377652125131723652213335232163322317631345536735346712444754226557642126663575423324471276721676673274152342215547121261163144143453172426647435537555563211626254573746533676343437227647743761347633626326264427533627734222366462765627545327314517773336555424714516572325366756647212761642244635515747676575562512712766223716567365456436215366666776632234222351737673625465355365252475737356551541242672546276714175177724512657763364531567372721527413173362262527374354213414575637251617745231351776321752331325333434337264211327363467724257114446212321643776745274316134745313133454541241745576136633327141464733411534722572424327653661147543114267663153324747144443546533134563543161433241145523176741465733321731273536644526737635174667332535545222216777564667477757722266753675117776666454423422325644453142654645644512245626761445213521615413166641766547456433354626627462712767765643711564732525411567657265165653345435147412254232131246655553176752576536155417513741545424633532711654662322314617773635311675216275663115237632541223755255775625373614541425711734432161667562423715561644535642476615774163324635314571244147277171672317543235775456514217241341521652637253153631513144167335476665161716315611752356716131571577475516437227344574515412562541511451225247214774444115255441532667772446557256623323262626172371312565533561552175523725626155215473257646623134776311212721543424142135726443732664114416563144451575316343556155655216267475243423164712376224171633642622356612227632762713414616373565732724146233342643315677626276162474771734261555717616571537437671271314144212723613574646713112223363716327432723412177672212425745345276242444714323223343616323757471326573265617343667342113572552775574124615632322257451132416577457772452356621736114237461441577416565114175162712536674632172152747661462111422675665252473511125114353464636127676535674266361113541721474427371254745574432644321522663324465514317151434131573545135576245727357467543347516174726467313216254323311654535445136175746477225751312367143527443344152632765563734253261553537265773176475154547166525574146175665375246743421431312153577517315145662467132315446664144115756652442621625156623513226647556434611274266774667357513467555427722231566577256124274544523255357414562543561413723516352617346427166453722153465656615177134775775642233452612527571427444134734431655312614765756221254661265637124566147557265216344724143646542337235112252663536331746342217452466317624123317242436372514571131672655456126754227246531277424413661347152147471516462623654324114347266512463634513764353614436753113753333526276575233535367376726215651334155735661243613143634667565711526232722236537753437236124625767513125432316333667612524216775776422354415251657541723454355166147266627455532516611166624442255163156135621163764173666222547365773776471617115525115747224144744435375456367242752546571215672354175633572536734312251313762331151635215467363614142262572126133117621471427722335554734336152563566526762754221176412246164234612674574672435536417724642367167346726426662535377272766234244167161732627164735744243166612232132345631751453141556166157473627164657754123446625445352223624523321237742217272746475737312674346452365537446644614527442642476244514256233237722464342626157773463112145377463722565646555546224626123663631224462167154721742525421127374447276426433125331714455551511175715756622245671161445322474623434233114321111127263726355757412134345771221423343755674612544757423334345517255652452134317616551223667441475263421734375466355376655622173511254451711456473143731523723414532277412467421735342424136371654174246514647644577643346375373123557337115172562446774623464665344316327131476554554147526125743313356371432316665412464265772443767537772134134765224554354417127173272516231627333111537112723143363634547632675317453465671214553136614771162733762347137152646362353753273476166233336455542571637235655125634651114141535715171724623326121677627325411371121234716451274455351413264225437652264121342776635676214646371356616227464655641347152655426664645461546224612746155343225113577447423436137333242616221733422356337763516541266366211415656124146746437314523352213453151764462466331362735374424663311517145415347577762532164663224374312154777157756331441237562221752271561565564416664717175217425744124212761533333125735657621325137452667134576172516463345517424371451573154155345174542422455124262351677375741652236371647341672126315246142236551411515532622133665411215441325567547313575777377141173636751536513644134724754662771364362455246624236622421116227357675233666642364266432443576423324331537534763513555732421253626343437323131573757554125144546473736772275454653742444351745675371372423151656352536163466266727157322541736564146665326244257274237424417465773771524542176116622563134164773363555322541461344622236545245573152674252327563155471366773663311571226442512126677125635234556525656534175227277122676421216751556532232663774625276143173662146123336525136517437435645345451554127762574356422466364117666145466355645313246514444765155662427466153624357131676274172671154212132524142165364275625177214636252334151367135646327341261655563736434553665353326253471577365677634223671427762517151331276776153414173256355646754717236245744325735363127714512113246152757312175645167251733253561315713645155741567525622146516561451636454252421473155462254232471473342166241427646476633355626665332442457511614564456715667456212565724616771347615717475354215564466747156274275617547415126714442357474215726426523473376177544113142474266141734373634644621433747311647565757321515172664131444466452547336467651472577374547225174347473253341572651722477321227765736364621761267462622553716715611536242431561436521177461372162236262436615641632643712741257474424667457234417714315512731111663242227152624726456347444456534251472321613275154771154532326734774325477731555266263647211174514256117723761577436133164165557364176762471652626532137657334364173113352436622474511565622352161473631275256435116174761325434674277227646611323343152114741432141273351132276442167377615142267416634151471256454475575413523455352777736255712563343273667146665774177736441717353764443357257667471473351351325715551117134123163233671636172573247462364117426742233425326516744113352163745632255517443334221543277417713417734516554171433617127267151432435215264773757331332341367532776611547137536461535763131774374276244347323263236744347347171537543117142462175671435463463655523225132417611312455423673357232645367431422552731573163422534122541624176255652642341623177611166252751617565762136331632624732651756256246644266113275571114463512436343246764766227776126677147212156464353143774765717767664626243172631146346136746635515217134444627645473316113175761622534362754757522153774324214265351171276613776115426757572111757267217172561561243241121343441451411421567757263421634761445473544616766773113554547256212752435227727536147415173127751267433245337323241271171413412621664321755111434564675746426612611334541353537275666373246226421565141276561571277237453316347425232263741212241264242613447513326545252463621746462652326361622517335575166154733231562522523274231717526535131364443736121537364365447314111256714316321374332171535675216344234666617751514613167567417245577367157365336121431516541656356474313451273216261332327416253714545722243555314547162123757452737642756434275561617133527656751135244721532221313325666645654651575316463615147311777165563251341772151341246116316426275423647167364332545467322364473256444452412244331271242311642357334672243371135154271542636175721312647376473127641115372272114255432372332544641642563724245662426665211566142345525221645433616415336475223547422244432115565457113163175361433667424544324262212537231671743432574252675333645712135325432165254773164626312224331274756256674563122514345661435655243167761357561131665455521325233432532567555562741637412553476643226375353242557542524162431325737677445663237123374714256222116766142632146167431241657671772522427622237747172236313464474766221122445551452674536265645344376312565432677777563373167625355217375737221221266626345431255776635332464527547441476341366166142615145637525472631467625643441731646343314173366555437225671764252115347167416463336361141247765176743652624553276144252276265715672367663242553477226555316216176426514727116466377156727547567422374617137176646764666654722775225625542541434332132626412672535211174451424257452654415616161622643477542257125472755646466541144474541656672442757534412267413142517616617744242215767125256473765756636542267412311233142612317725672565124775226351574166321332122267163572425363352151113155267426536127352111345563775324243225111713731143177666357221645267177271575612132137167112216726646766746537753266365417527533326325132115212632572332314367622553366517331624764226457116171366626517543634342665533545455613415465342635361646432127555357731567425611447535461713752517622667632423557633373514112463344444537772451444714466716246664441714124363337741411211245723561572213742215372552514621334772163215612143664253523126352763363524315522111647111424351646366651312264416472573646215472431326467677337216356754615366522755733112745166735732324252134333745446734442456141313741155622225751746323661465631124342243366165353124413561345351725333672522351553234512745574617544734315443512144424731572362247552214161443551223625775125442331651257324611624117716623467622677135177551652373274266435417621524334373577727357777652414575667422163332445572663557742412171243562136373153442621734275426644122434374673257542555375256734345522361742267355632473111123451333562667227244631277471622377434712217222147624653624716335271612122255551654232624235262613173225533221475132315137765246566271655316557452523327425143731742146577545423615347372717422416723613751522122646666277241413376666165257571766765575513653313163113637771216114665446745365715236522623634634324761665425326142734225411215731331537212134652155677452572475442415346652437555254112371542215446313211445423247752113377617355216531664345773172314653534572423477477243634354516165447221573232163716412146527446122245214441741252224541423467272615347214371436651436477746676257723754375452357513354457346175267675445114451443171445473323231322156776345511132165636277424665764665532313517625371312254542451246621152433324265416534211367373365564746312127571554366535465723612377247443322511236112547443723264277143516756711723216354647255615632373211723324546573161127617413643253564725572442172274266247543161431142613267567611331365353662736343644164242234271321156445651675261661224431267322447275673754662162213767775736262213613321671717321617527313322654255576776111143235376247673261527476377221324757671525674134326266227251313127777152643465117746761616157453552471654123733741531732641775244513512214627315477474667651515277547772574425265346724123225734111712451133662425221733365151663764233347625177713717455273452652474632524443544146124754421516746541734371745463314172433624522315411247345174345155231613466736616733767671436233665767447342122125524425657564264174741774216411274755443422131552256355766741251565323774311365523351257153372361234423244313264433651566327565622263421152461244543621444424375435177225575623366541726461122675576637371263611475671447462661532425565674155336716163142447613145634414734656561417723257251656352134546133713263266615642621566162435451163312637422175466554454731565764225321363514354331117473542331763414663145573236336376653217376651447165645261123754752372333322465464167717711426715345677232571341757151152124136553253316456673712737146467163751276447314215577713616566664163374257111632412373775763652361617246157242514655356755332477662576524452722321246754511667745336372756252425633437211271214147171216133415171454564615646363374426242674424561137522327245616257714315747317422415746664554473413143641672544117673673257631263571274263551352253543752254273653674333777236354637135253713272652225437443461753667425717446625157623577136244544616521454347155147531444351134525471535273317735117154522626471147324253414527327436127372242267313621262654626763514545762222343535755143535424614461176531656242737644126763353113132116263127313377712717246641364614434146167431331642757555575355121435234317354537126274654512314351215755612474476236635476631475427116616157617533536266161221163173674622573657224753662715214434125616165454476714474774426161613314314241522432112472254164356616346654737274424675213522346131765762556616261757572253312234434242421373331527416625247372146663235366731114165147665736253241554324217437145663662356313527515346661633741636225462213655646364364567754147152512733431316156626264152615614165371644165774765573222472354672532635344244542223535774343643216372135541126337714425243646257111224161313156247622457644563513646246376515432525763766535725371236155137513175674172156647471623437344326635425726343121271364547674446232163676633355366515271253717543153554447764634416237465657744261636272312764535561437336232567744663115223777556531655467656753442154516216155147225165152751225534114735754567523331747345477143465271776446531754261315156163442362361335171276725256754573256475534776616747652577366156374344731421423221225565434433273727434577631174125775567324563154237577474615236136616537325543266256316711433446421215247223543477332223276663426661326437114344277422743632316364346272173626357332536211452272735555175371336352634556733243357736536375522466543311173521256363145116751126113334554146355113521231227241142416164677635456121154367324522173622312314162764172541562245545747212432257446167343423767435443353426633611617543225413577333552134621412473461772664233255434647342414755333433721455664547334471752451123557153327226573546216375452563242267432553434617631662347536254473556634377662765743361353371741327314633133221744474431761776237262664261473611341774163263717735123652733313447446155574275111524221413155422376114665315115371722174471233452374763434246175167416746171447776416651475215634765663512756646626525555217113413172453647545537571367117111442662147335573355326444565665644233456522362527453237516276172425754635775251236441432251261333232626435244377235377635144217633716652576236252622616524244231541426577423352464755731445161254317361333762147654347524233457211231275674122776444525157536456613644533145346124665413655434214617253551424246625377754517151633761357311745627467564146264367657615647744546515455273113551546537324231674555413344546724211154126541641217161515162173434533245333316541457527347541223616244166421414552545671657763363317135161242511175565762761236551673513626171311166575764236215365755231252373472451351614625555253116344474644113332432124663521742676336622443777142343733475511761634427573274117453157317771271354736676337641515214256355574633235226262347331352676544315171534267215543476534735672444244317746167733274151543343516124656653571565215723771235615637325214563743463256555671363156217731477164334762537317557765626611762771634222316441436446127622121347423146417245317264777171225241312637461515347365775775227645615161147231656625514325137725425333547562751652434256762774435262547626225273455214773212645475642544566376545475166316514364152345713653621577476341323652467524226513176356317343564161237313644526146764525451121542775126313175172712463342455641747442414723544745175532771454461445616312565261713565165224772147631651131667171451266611312515517576711111121356364356416661432522313523636753623352123112156331663255632437723457573175323366354662346613515144123424266425344142317362542457162435254135763367637665152317325561476111627357232231737372234112153164255213136452656576731342667375623443166134422212225252541561353737457353714246457315562642717374451475676434373233713117471331715756636611231554255475545512624521415377433521237111656546741533664535467161175325474251256331721464244352473125764313541473514744572126477711417252436567157645314535576416557615161741655633475757631461356446255352357733374172165134272236154672147154414114213747456673512172426434174514346642611671242362634567116657223277572761716355651321241121252513563153164122676132146361317661351656216517177614221751212371436524345136236336741255316547713665331153766632527654416473375664431635245137413377742672242132474551415127261612626227443657731416547263412574667611546123237277146275436717415376454377723642747576432234175735713453545743356246173436757664465742411214433467417742752757326723454416252421462467765153224337566336264537676254152771233755644471416262252711516716122416212662634654763273344255177232254352656434134365712447247263371147345217624462255421535454725223366716111446164536612451164677125625647714723361362627735316222125711722414743111363357221753366166162333731441561227141257615414434676212356426552556615675457213514534161744631717772461147251642236734142535745734174327336424657544357432135731557221355127524571246172336132271312547263255636142752315227457512757176323725623131363715153234422422365767663166315516324647373456714473552777627512434127251426211662241357333423667372417552514564727254211653341272543531772562173117642726354473661143244423632243236532556127577613331613265512235121266277351232566561717672116627745665723137426375476476516312475165776213245775656516476446677427227251565476273756726563552525656575664425454161754633121414262251741412151566763446761142577726222354571657456724624731121324235463734231366151654356471433156715322744263172256624554741255247672175623134453344734437554372362511373726455722526161147617746121352753622525116635753743737751226324727363765557455761365465477442235363552247315225344222773736363722371536761612337662261565414726346432321372536525754124776517345377523763337213727543233773741477464762426441743717243644147271356765227173361753716272527647766664416435764753244274466452452242722655554262526337616545713231332621466114475322412256157474436622672513353224454513331362735731321572731362721562234474616371543514127155347336642312662633117572173211735772777227426723425574714326423234333256322224676456757513546772445663625151441375214275442442515414777675643714626246624261352122613572467767342266261577635141332522761651725155164354347144211462761267361777627345712716547626226357276416572535235447425521542311437271252334251624167632775247273234442575223225724627711654615221575655477732625327432441231644723521351465757512647213235232624215253422131171376211633367551163621273476416656617713433317527112232572453352144244621141733154367457525252476114675613127525255213375713463275755645361233167672241643372632437224143276575564177375535721364376723333223612412543435147266727731265621221473767222145165666651711673124254562415711637327326436617131657326617312475547572334236331325451341412653436417644476222464323366527115441423321757573141664133715727565727262267357564753467171612562464424552417466274653553553152311752337611651572266435123331662676233324372552777653475132127226342564134413614572233736141272136425141413163542175311216445542614311561711257476236361225112463733173473532472336375517332661174615146522763125155547664752262652456331446652561344234531157255514451614613262216742435643661453117112573722244137413267656614336356536232465772142567556341173621614631777471615165142716726312573255266337427227745247731773252671537363245471366213227417746346512442776535774525157711116742614162252244745427235246441454736454514132625461423241176253647525376771263623165572513437615776436236355657366736327554556246213746764562537344365444722646561774664352526652377134556634623723323747332117241355732636327712343551674724152117673275131232457144225537345446547777613735264267712665611466334343334636456714126374776255712435672455334245747571311225726363162231173411215275435561474222641754264636661321254143273535712111647224172144362676337673413625771634334552271562524574746447231333177545676766147611316252376432142117777516423513754513742776273325315475351522111671114414235666321277624177322373423254611567332542644454315645227635435475542116315743313261123776531411364576437233574213234624411652617451333256525237662345727214375444516234716643722367271112552337717733334321633153772273461633525617254617672321521731317363754656663354355577762756126156364141736465132722622711623641476114217256773165466676162355325326751775676214664663662726651514411571361312611467147451247422172152312334534773171136163236355572123356642453653157716423377746362626624163361667761633152267126311374722367456345322747366222243373775133271236177375324245372643334757276333143263136554423726343741672634341671213761334635652246346542377367311717133435222447475453772641111112126353175452432361562165267371623552763531613233221327247377452737237413624137473635562612751164276152443147226512371663757167576624762315231221467545754262143135634756672735773147755415513126611416317572211626525455236552344474445416637111614542366334461742515445232233433711246262641656136574436653316626754764141346242132575373634636623223747774722234415265541343226657264365667773555363141315621426544113572513257116334464347312257777477747376211244522366327546646625623743654711374522444432417211112317776466625477645311653614624256255135717466553314462163465273132534336274261522362567235147563646471232752234453743175713751356227452757162541745445246545762614653251161434647475222776616217666173221275763124657161641552542363774234132445232237234423716255566212615163515121155631141657536356531456646342567243347545621457333461446414753716354322224352225574732612371612556212534162224714417571131122376337573112454745416477673115356272242664121635316365356657474433561151464557222257114772743515264311547135266324434145331513433763247354112154427223667152515724351476777314655611317334575377625766756617416377441374753573666464353255317236213332647227517456215632463377321654131163254233763547115436371556172312531343553246247114765232752373666724412627554656455161277437727612243545623212147647167742745636264551432654161145765652246742661345477774414522337724352266545512343442214567622735573721675466723361613252354441237422513461263622712341565333356331622271337612722256235162521564666115241123424552566315561631226227753166431216576336215362323336244663646752621663415444516132767366753657753742423257527544633762667155253457632346222365661251336454263541523661674744633751126153663141332532721336611216427336716232276542753277761222163217722555114772277621636751151563565652562363513515511576724172342747326645117352143113114415741355217163674633247467671532246464315234614417125763162246474452114646321662765465763321361626137523455554744572212634763146751643311176562142463745354752561765417526416623172467334133322521452334275267417757624427752233361524254164145143245527515642111253612417715431246617572455576624326457542235442234313462343235776534522745421744365743377513423377752365747235564471121113554174112342245177667327433534112623324652766516564526572756476652124672172752532225175414253242564154464653247462313753472145315133571277623673724321672715657353723154235634237562753163742717313731345237753632126345743143265457625331326622724752655261671347421254315377512337414133222467322351113643624246177613154314435674176362565372223275612442716616217737335266311647321555766647671614557466421414545623433426317477265334276257544426172335266236345112432357343176675131661473341243325643516217171715763244572726267145435456366466266673453666524421255123762541567567226414375151376771411664752741753635375222343243413473272566574251122543177434775455165245124643754242562635235113713437351647245563141223757567761434362566474262467612117256264421761347216536114166316325245771216242364157167577431363111772724757317625734115757116437621723321442335237532236337212263375631774241754747173727742271631424523256445731157452547667643715557114747654662747114173176511255256664752442635567167416366315244222531766251131151723742713427733225436253456564556152353616713344217744373241647445772374365523334327167315471456256425765537262536534455236475213165764441451733515264117151512231727474653647117745466565645167173232637113125232117657354253172316771622234741241347214522132473473655111626743761722375617751327716521613677177311431212221453554535527776127757234355411667234571362372274372436154736714726477445774334774246154647451143123777417234634367374152737745441741722144431176137646142256624721724337714123136123741256231543645467371712417231625152666162366726165367622554657464564373532343252171764333622561347116552625244554763511713372346346224516333722432174174424567524456227754457722231542275674656415227235723716123216427211665526352316717471424634675727716562427747552622763366747541643521773661755237436674771665143526715374373227264163653152667132723553324635555373561365465411614261624217176625215335274644146555747361462263175731552257763641345413553672323126174423431126373734472162323626535211555767616222652262334726673535572411362223411621263665664237611162212333775271221511366172774112333477177711743233273174315615251521532434537154573272634336253436572665341347736246523365123555436634462526531364256476227516343346775171145273631711544624652115726647754464751141235527325426337325232571367315521213155727664516331527646767442664212714762354216361365254232521341443252416131167227754461652677143472652666765126714454542732157427514173773415477246622716314366441251461131617625417622654312247256434451551634474476553215543572435214351344634465344764542722265716434672274743471777554765215725562343572365546636624232154555445771357477464241223547154633476276225375354712123411336122352363325765533224335117243255323653116624566122555356463622344742352253623634713647617271446132361516271664276473554614147754413474315363123673361751566475236476137567273574142247416267172742655644654135441765125155765262547234622446113222634533442151345352754221122454657343711117343272377732135363651615216336365575735747243662361352112745764454247153161466716744264461261635363461166135125733362121257253711366376312124721256562771726431576435377572274232211311414251227274733713123556761131363727743153456747373652552575733336343647316313352647126215672324267554516331765253264114675141657545316253362277435257741454533527451416746156223147743112665156715155141657663217213624713421432157763152141363214577277552615133121537755215445126755723324237442626623444211113121522255661635237132466221231644626344742146753165335351314571164722427743632241715432564334353165427413716324324166446173537155711653254277642461435235411536427516145576454732164777552734675656662431227512722531577713473371156413746137423566756757316637665627235137163443341255277264152645777413412656173331741766475572462342515114734367364463422113442676261661364213142511753355711212127227455267415656764432134355477512561477547246246623126664445316656635773736764655161757523365354156757254142627447455537777635352246275622774742716462573456123431451142353757152731372557572135372427765352376573623112151374135461466123343333634246445574227766725637265521173637565356771776771564573366466753733567466477467455236564434343655135174145774752575454226554141753563267677375654322734713436524173413413353241713226611363145565137471646363455676571527134714427466553521257646427521534336711647636177315372344226372146646134116736751611135667511125612514126122637122136624565777477742565471674676172663243744715113462232312711612771426133624345674137351562664264447353646312263675635714272621375323516341576267142654213576725547731166145763762366611367172746753161176514275333314344253441445664114654314257411155573151126725335134466114254362742461574467232145525435754513727476446216233546327254662434645774642562476644515634432666262752556146476264655441113471227526613626457417776643665324446412314615754725635622221643321273535235124526322274516573246365652374226771543762434225731677454536357151324633275537224424462155713727753536756632765437166274175571615252256743332774773734443324314231447453777117617174541263524147374252543563543664341467742466427244411676264653327467374643415341773174123522153123162545217653143563365541165411716174126723341726346234343213375316711524261252227143617131577241131324742161423521222235214247264537125424576752173317137644673346461124515412531163176154553221751264545216552677277716563124122342726447436526655667536132654211413467333215772667643667756477541177133464265564441131726676653772776454173651216432435335114323623661471765217153326741662224526776136145666614146653741364736537543367156141554452156325611675541117134132217765264125527777454566571325446534463765656557525374144276754537375774553527411332757577476152122612451624674141345316365273575175344447721544611433211132323122667333246213613751312514656152457474637452143542573645422441526657252236534272361755421755737714632165241562727216667765577472375525332521622734634632412553613565221464565752455141322661162431263342621527764662723111311563613331533575573373565215437425775432414774555174563373136171772545126525372123561222545465666733654427266462757263437375755561146611536576673732376326235613731612166747626233452275131632325326635531434456624255162254517351235127253717713541257575245214427221256551643116344324742662235361475363567711636477775264531356437277545556643672612521313342276325214151756446637223343711331263714433637564551413137541574622324666163252721172515461452143376776614231424444714563537143474373174637673357652321614512253712224676777345232564554335464655211772663626352521226642521117741131411613537722133631273324337444576566143154461164215546273337721571516133663611322175735452453443624436716217343554356214452736427154155616642216654576244446471316615516372624512362125573443473575256125271763312435315662342513437242163371523167531427744145571635755315467776663135721445326471316146616776776222725171634574524541431433334265466117362643235773156222555173632652623176432233441363542352734333514735762225661737414552766412174576416527417512644422727673173562432325266256443115377366517756332654473427375715556574565473445654414167236731575366146727264151623222135137111646564456314623174337544361371566544172722524725661656324555633577216322664477257446317166651331252224323153211156726726523647775216552277512636521523416173172514573732774166147233663474114464245447741357265217567241642272716663657775715546434561645275367255642653445313165653731557317245723371656411717575172257171235736467465236221267111225246472175134263726547677611743551531651563323715573572563667336421527576247531311567156545472443425565471454515675723777457714355135676134516475117416564556214137626433214755565647635372134547532476716426115772665425731415471651444425336127416167754226665644127462225231263711116621417314626756211133263464676657732663345244175112427177567355442637375722632343625736715753611714633345621156551253264161352353656322273322267226644443671136443265415141371322116544124331174534375212332374615562275642743335675427753223614472723616774441347222111533235575166361172636763614226413125615414443463657556257712554276766527265545243231156747336765655527646534357674172127143152646432437413741141541662677274371244516557765271256344624545276433115153161511736513366143774546151567277361554444114621111665413661712647726573373765116166647326537625636525165353153172675627574656351224132577215526715517677256114327733114234617617472561517537272275626231632613763142323267226446321154247532127445616336257134777174731723226362743716524441257171564665227156455755636314321432417277731736674372755725451535716126713227216636254645524616377111113445356242151545327727747662172547314227546524366471474563714367227643721713352213263741233752774161474664113523753246472771177617666254765241635153725215234216315142541375461316727532356111742557735265744166677743361312376554657377174623423337676726357255633763715476737373362263232266742352753412316257616735461616614152241612133162742556324515467174331313535234342617441133761612344517173626352553511634222424661441442633672166441533266431227374432524215423267343762645657676453636347111347365655252757141127573337432475534333167474472523562134261347223567275234675761341563272446371766177623413323347436657215154362362354636257624557356416125564124342745673754442477237243731442771215766254627177114132526572273323713541234243355777243722342564766353515243662371425127354544253772353216566635767663522315723333662223162176665655351471314541237451761267167765412563735523546614112242351247121411273756233124535141377434445525736433367562254762213166623416372335754744152657272421374654415651557143661767176347471166541335473426176215115152222232115147127362372232744452774227331756761117247462766444744366332547336547574444742717314153615252226113753537143435475224474334447457665352275642412233665427774652743467726474636271651314415213576755147621424334331572334155334333236131173527162352615423167613125141151534454722113756364265677474521775343144355653423152532672254445212515353231472711274454613451172443117424564166215664445624733261511553432757772577335136543152332327654172262351375121764312444776176575713241311124222653126537547316727444674717332637232216362224736113574376332524647161621233746651331677423626473314525641236235451457513124755326667554711744472447512123637453351347747144674257132355747116344572415632313721135273171122746426677362614127224754264265363336225274656371224522141667437773726545233264415177314474441357741636362627251171221661436474372454224525454553514763126756526675427773657236427227541551323122766675363325171724177355417731337131757271221333634661522536751173261122334471664363545727526725244456772431431177454246231723656323114467634633611326253255443466117456442246536662617245772452353311366473366266456473273457616236375235575423367227541276367114753667356121446551635766715726513763731642716665742657561362234432746233434333147226415433756432735561234756372436367743341374611466512271227564322327564715475444525646761737463725713415166742413267766262342544336711527324664174213143376463226226271344623344766372722571123135766213674241651417773263315622417242543267356336427155416267433567134454521364327225151616753242246723466534255371277271375632167761327312641512543474524511626625661611214456632271662334336422121222433111664124213556112163375426762273473716437775627125556222111441772414351451142254132655175243444714353311435663366665374117555247774236371276636615444165253771672436365426571373741441276665166231767631472531134172231111611434533527766143356765312512514557334525525432767576421512754452575167751524113752725116215753134753757221642232533345266773317714372325512725111545255764415416147413264466217353212627462234251222451217137166317613751115533655732243246354226276565716552757553117534352174625665575355562642152226564164566466136754542127445751537257645475417316774215142731114132715676346417476117633135246653245135673543473375472725641655263175656222473144714115763267116316215721372625327647537155157121152654614176737624767175523525633122512223135221521521313665461762253576111733716771221521371317645325237323734535561132253225222753666531123577265262526143574773353246441131757577752777256757226552427523631612711277126134757635176242534636227251363216614567417224577363126254213533524114144176547576112646457743416116433233121762614777645741322124177424735135215516623411652275675737332254776662453124111427227614657266775664742354676141152153647657561347143372161675112331625714162237233674713273714347332144654176723473774313674332365613367616411151457722412245475265425476467566625737171425256665547477355435226713713764672471255326265121552354756264654134353115124526574152547366765367116326222514464172455415313153153626532712452172351221763467616377253354623733362314513743133653572247722335765125576174577166456764157322212635514525165275752762371332664756627361111737436735165222517114667526741133216713633445617611411364367574215135521175557652713751411572213136671712676654755252524613134436436527626675272141323714317763635627722572432646777372724623225717772272436622622642244547173765774225361152435732247623632242632454313421774467774667264517613261622153144723723413532173214523675723451142335715351572222675356151335431774564223463626215634543515242461236762331722634536173464222457412471733736313655676254676145725275461165636135725542233736641367235435132754647434747354341517424357274411166142636675233473356725735516636542626625557111566567475345231125227771656761756726165522446547372313511572576471377751315371432773254423563352572417652372645734341722363637177447444664761554222333662266266234277767375554276432711346276123444334373747371333645711732144427153412717751125411133337544116115455767775111542164327373123635314212222722277315756627321724564126447643164725522423356541121642575453771473165427165742154357437376776246454337347143361716752722712626575331465363622713721234425611577344472332624726331544226717771135415631723535477556177172211324155651163546316465214224435467176673622376237176511332176646557437732362215325377433743626424461463623144715436373716262243612761453661461335175376336553235334512111241465274145771556273726417631154124544251142236175461442434432245512247364411327267334566341654336663611463635555517366124212755633236464741435127245351662767654276746532615537555473663172157416423267561345423274553273372252133443521766531161557267521636151536121317263373457476447544462635547671721351526666544621276473347347431576661657625277427367524557624714672176151511654673665253346157441647456647135435716543211116244331316115217652445231651263116442774734445333611445542752263247537122567333634777555662111534411523772644247736775573625172552625216413147133734614175674162444166727344447653434755545354411217722656423412154661446274755167161467331673722417655574263773722152115377712163147537357757241547661521512717235227266253277346244326471663716437567314725743666422371361552336474345137645134767127346423766547374221175717416432466342737624555216327111263246315232335517276737761113333557427254417261312274114334757226361225667625255376211543347363223445245147665535557533267236552226734552547413271144564516575716713361445526246354123474345246236466534325242176422761526442255234171444257451333442634461676332132215534673145413565233214247354575441242446377557372723441576165733256313343331251554131271121634241113437762127366111132346432156166433441563611413646263146344264136364552734216663513136652472714754432545465254536132631267462257613116646565347244346465443663663365351227665671236266643332527356774127215675132141635271353372272724145646451666752661736466627713421214262252166345452321312414766711546163273137676741271343732644637535255561552465416552147244637513431377555634465242557413366247414643512465145772257237456313464741533711536326544551535577745543617121373236114673667437434112574615656372314764443325462212363745543472624432177332272312652266744213515151361313543665254472476731272116236276642352167447711673733343277736724261571456556547753377726613515243424671447234343573665557132646321677145171525714364252165343364364461367443244713421636473733471157277343667352633127667263632746767134323452644257336464757355264166537115473237163633431467116525512433364576526123566535556432272555174465446362637614551333564632543221666635137222567523261664151374572466271113371354613772417546316465476511147314665275445323444223162644642672352171734516744466715311676765334443557327335764675425575415337675362314436246735476257721564544213445112135141571536632717355116562274421224415477463663532343212443216241573242212667343516131415726633112346677757774366371431343347542175156263164522351535652215361412317126334116245427115436266436557562434134163534454311246273167157314737646122571231356376616713655367344356437452621451441244542277325154726675176245212445121232363162464464174121642715627153213632161547266611766277172116321713133271236216426247246467432523245676621543415431346225261453777667652137411153311343253221521621525132164322562115424756232434476321642264462774647245162224675447635754423713466413322435736513565313754346536367721356161651131661366114766536537156656653175364433334733625572577476274515334177333637322263454324243724457151123527551761236672336521277224337622666166211112234127246271724625774773525745262714641551653345755565751564474675361537525753467237744132572362127264347756334461356672162311523652417415247776144135244565651145417441275366213116642212167114754731161621551153647261371412177614712174262366664612143123334324726146655725714375673124561132534451356147751422111534213327512251225233127362475647372633674132263777222341511366316521172624233543575631713142614475625716524171351133445642743323274716762472547554217775272544175666465645112176521621342725324224164757562772655137174265131652461765145345533336456715422616156164761525471645574574257431346155674766527714564233761635662611477165741131421155444627327477537646452456632736513114236116163751625163156353324554367211137425427346655432755442112722234317162217176551757514734236463224232554454232427312715431477721444631367723376236441123254255213116256252572336372413132456311112746564154227747321624773745146343333737561466527523333537255211534141727167642713257642677321515322314232227422156733323455527361413246561443541545216545411346321734574757234422243227651116651153543231264746163474473674473412165427636432351722461752533274313764161134312473533742325544366776525721351621115522654341171112653455623176122763262625645146245512374714135224634726614527444126456766563214771412314656633444313232277412212253313172774252713245454536751166541141242176267623551245132352325343567666525517166312736354576443713773656347455216411456147713314715463237265616461626423433774465144556476271156331214456147517333671641671626552663421424376242532717777362156334617643414331413615526544742676376463744467632132625461376477247117523372355562763444564533551671563712251137235613271655333313562153472414441322541746572133511626356427263216563557537743214315344116235576444733176163414146672424347736612314525534775514413555273115676237633476117667222616427632421445531711621516632722765151233477254244435527513626216624656226345671335227167562324176574525552242476127237276531151641214173327556472525654521646742273673245224264547226771756662112473736557217664726617726714125466662541673662364244356141562341221415674153321656415422472635767731611316651146117642112366274127371342337344355442553112623435455511145212646414751263654131667351565317413445232262541253353322411332412767574733317446174546717154214514564261432567516263154751413163443253435625566515713332562762346615242734624564366611167356524526332646222567335211427456441123755333264444416341373432216422626553761546216252323756227261362336556724545562713323244173121464352345632571773435642452675744471645531627727454151416577373754741634616727756564524515434122437612313116223762455235671414567552773325147546124537427651336225424767514562564256232217335366741537527277457776721332375724627774166276255265176123352254557657465476323153652473142357154132277742675312561752455523537254364371462224415512141522216223553323561713564254452544765676365537217321767416764332741437357143763724113255763517773156115233541144665373122573414122734666233457145777312563233735143541575743167761732127433137744222461276415514577132175411424137217426377162653656765547672476336271247347424113621574564645461422456512666267462543322725575731217771357317266543775377157765715716155217245712222143752747551453371213237122254461776173151226655116432434563223332243541674452273146472761424656274441631267316633663173344732753327373522464461141367735621716441312675254722727166251754255722254454272663275214723237656467726553213373622533346563657537521417121461663247563553142124171251254423621356224512116321732157315657252476212773325147353652524472437776631222563217356634216656132723625131326656615511222727724226427344577354445125237432535146122266535474251662515652744461464772566447164354526414511157326726376242362137413344735133165777527555775171251475117724234124715163652473421572372474126522133741236577142331473733354331443741774653771133362556124656633327537135526541277456361646642214261363155632741726666744747162621641356252366452447255541667251355423431677645723731526624643717663335415312274617152644442653741363745615135426434712466653167216622313216152734426764553261272264424735734126571461156414634143525232726532312551577541133631314237341214456625114752176572723355411433277162563372522463666233674146566516766326517757437263462176166136735667452567623542211441341253157646614272165552773151325333651645547251567336545254275731426513456414552516473327651553626577735727465746617341447414177156162765634421422357513565215123243532225567533171153532364115422166221666753263471645714416261461223411216646276374775545474534765336461455365226625472341625434151136173633565461222545541413231243154541137776122367154235542665374751765174717245253677453633472177217617427444262641627173342652763765637663423517761772346524133323116166547117726216344327632363573514357362264216752475477547717561137155315725634174734727732772175722653355241561255641753354565267544122636714243147255614253712667411174716544141276756575777377347351152135433542457427316257274241266461234421576637672616537253311251314746127174173354337257522737161574527421737375737155236343353343126771165135647556463327766323635544654556254341277643651673276663441737744412541636224425136734362474412264451644577231154646376445217335773157546563677364224162622745446153737616376325767467551146714532134126656612427356434641443715237732627621152121754342415627352465661642151463552126467363317667545541146375544666445563735114161554772723461167135615211123522711577611251471573355716231424715176756314453433162574317451253162661513361534242411763142356556155327656631455717225521657545442175273776245736652534512565443554474774627434422675265555311776446136531573246425154722452653626443326476733566373115253551134671323164176346317511346623735435557177516554374366413316521464243353235112444212244564355525231457113614162514622472146717424673524275773364666127243233376151352761472127626521455677321437474564543755636622651557613645576344632227723775372451531716676444236367372672443777753255156723435375424624177361375624431232516445271563313452512375741765247124635125455713364623421631555467264675344245514266642634773551576165632246131647624717577755135153737363316363356667641637554261665625246175544432326522511241237722557467243575741624275222345347435365322573417673314735371136772642474665346326661275734237247424764454317243142262764427433475274543363317634753354625671332741545765425572317634237736153361455355726677121715542544553112367714517567512614477553343753271213754143713375644622365563274435734337732461156551717676227773576132245473521467572552415515755672736567152412461546721561366167462242366431671154156146365373243576135771267264763516436366623173716516624644444624671427313713214264747545212614463446566767222631425412233324764437217117241545671451674346145571523544471655335374674247153724117365135223757627271635742255665723546361776652572764452716415311754614773767251357124325265115174664475615734271114545474275176576347141634265466753412731652522346452445273733537112415463754222161336245551125156217767264716114351165643156663425333362173625442452346564444127552212421613466735271157634335224444677661331235764162155622433716566465621744433252461242426126776655536733417734374532773675675572456252633526256732132323124574132671253545364367663236651231635234252435375724124446423456653567124476336742544221254632626166117647663676763574721314567476227225173463361632334454234374326341752327756253475154611347763627125251357214445263655711117413424342477517255174362264375447621466645727155555224543273751134212166767774562324771327734131562762671611456711421554667473551741341331515517652747426377644752175142123774763366442361266665164612134434242512545175215213623414637314732312656466211721324776472334736177456334255251413114743316672612667412231166227541134554455637115176412527434427444213641434336256131473546111255616363347173131633113357372421222151426425731745347715135377422546617443436534471361175736761244134271544527161337547242142266613423417253362324372326634263164325677724344617346572576124423155755667415275132723263115467165654452415125742243553274653651657215547261166212671227715214371412177127346157341563554215544616126131155774747117456116663354376373422211535636565376366634263224557611155647537477346222652373152143347725711752775626115235644167314317221315416361111745632247371733654176651571521726412636665152357761755734177213254347246145373212276111623654261535541555325647177611274571126213167246777665575576727477423443643771611667456146141111164531236436426517544462467611136413425351233173167645175766762743225754176517126112713622512716237145465336341262454735227421354457316142776125474711633574641317357355555577237637623214771133177124671552415572564125525641151762453647172661131553435321336325674267371566672661134755121754453263334374275554577316711226674324741372621517171222134345235667355415617752172223446764677476444275776175275421664663243213266517416227146613111567735256676556611542457457652131124563552347322366644672671114215575152316531777664455545645267151676146723223272756424221131145136742764376636124176511624122745532731361355377727611712515112575172241477227222213323674475664465712742774716237651142611477256746154353765611667714265335363161117545254135235147556412132551652546364761515421315247564651146322267667141514544452531137243776335413437577164632176213137547462134477551577254564315732616745162632571651677256731524775672427673262361441476471552154744115266625244222362321315632236657476362177521761114255137254242112151361343442652276773131555111326365323666155475314521617517532577243542446375737522614775652222355541616447434415677466265311635322513561433165666625534275261132413762134444322225772423251365635345441225741372172435662731523356133275663622121455154241434751766425273565117255753517652251467322143333134251157441527145214336532774421756264247312326157513367677433441457163135467264334674564627273342451774533462226716565247261624763163637116441242131646665747556775351272137254467663563351335336164223537564244233471137172736646371653633346772452556666253756676775352725716153441327136343333332177261153172445571675441774446666725233544171767751524535373161162575362672161776151644463612111272721321636145744737315676277237543665651454442155725676436561636215163141676114626417462247433343152467657561264244114347312647264543432512541356776322454742761535271442537765565536114522717264774142334244234611621474574614314722156612324674157316677462713514732522145444253316165224326616472564161536364615534357713514544634342536354155631376371641315712356522367176672721662756111613257733173274173466656164765266574617231552171441437245645363354734156135245422455372256626163557376371136617145615124116134423442363517377414266111423435177454774345315455115626172346256234624341213652563245266422241153545173314612157315224166313521775626247547666726541257111453553355263257345251124342353532711555374611655572614451677342553637567151247631123667767635124426565473631625646126226271723365234175461553346162113734137565322122671756373323545241755635676172362367427163336162277663453454713253226325552377617617254522223641263716573623725715734425757334553164143446741452254527314341736344752415411445673446377735737664451532263436215653573516222112541533742414236135526166671233376363677231765612463363163376645665166221411312457125344774557447157672144266444356222611376434451551765314351717631733262735412551756527346447323635145351231527515476424261124416334252376547522352324653155536461726346124275433666253562335274315243264715651346165343577327757515734537324442441115474426524414311174735562726247617353325776441647252742255161152231562363337315343641165675724256324663116161526112332221724441314163415413565317542155256614155464134575355726714312732733531367713453371114126547154266641761661337657773414372211547533633132155154354525244476662636222435744462727572227771666252774356243522124173336436415333544262216472714324767623574447114535146726227561251354543316311175771574415314542661354616657777467651223153547137265757545646625722754452647763671577563351254655252721215273474553423151277565323515647357731316762377427317141423316255341362277327362334351414754772436467616741771344771143557141414453345351542516175313567473654223451315463634555377766637225737416537476172651511527573634531612466447241536511672662156522713252125253227212313571125611211426741557213233565744166747167333227415331564244642457364372335751712656624452736275133663136734726273276643147767414173475371614535165751366464435746315235336773421226456234777674424347272163545677536361777167532176217536774664641617626725162411323216215775372454455457367527763314245136575143411256216161266727344241721646217335257177227212155673766243763127645664517522747636245263463176163753443535622616432342711331147536713355751352115451653715133277711437146313535264462763677127221263312132474234573162453465417435165377551313764372641116547423332763732262662221415426474355771211575634112225465227161637421531722414726251116643752235211273466737522351563556165372233263643436572157227575414245357766352525477714136717651264633722656242112713415426474424226431737743245455627571431214526411774671226764457446572533276157247631763751337363254546167775113715224512564624151525434534336541463235424176513775532215642536674137662213175464347672376553434146236457756426153134373257522136752626533377314531351517552175174357232673525317536716775215124453575775357111775675576537232717361167735747746536327262226517447557653457354337273123344316463451446673741314435656124645414742726626224345727414336613454152364255117534427367133115453172232641561553317256271572241551174262341435157164614764321516511231465437355355756465226367341365323177234673377246751721745175647351273752222346255447555265761716746435656114141576654474172274117143532553156347336165676237647555221365714751714533424446324311734274766453455241573247272644156466165633312135226533653757555424333137571715546323722336374736573217157341215151442674534131177431456474516324362652335741162135212252533576124423645543552766416734227576422264551426774312164761422463235454242274115437657456431761225674317437241724172137713173125625257224357463162366471621233725553566224362571131762753176462356536441217356652777176415454671455431441317366475574456224714262726752223363222713552314714333625634167525241442127241551325627573213164612646141255444576472341763212762275222231175656517655755375515644565612142721673761466137611465754646262563753442412326476546343141671166554117461523464332277674164112761371437532172636755645355166365326453545754247736524362161721553332515414227334115545153355334677161731354411131625424152625326235237475246251343215624176737654316466213141315536427731724171423462374627742534366371564173136466727311415561337266437146452432234166336116252362246143717144477126652663621141254762274312161774571677262466574314434175274464154254213552423243527337156526235743374661134442734167765657662357721317533377514113113617776335447462444764755555777371361225761741324624432177717147217322731245261662435556656553613636143357167167333211775664355731644373313323356677617515332126223653313636165756757637464677522127347644564261157142721527473674532626474723142156451432511172664767727513737235764241321531627425437471713637546254225312574457323274465167754773325156346714757377647446444733466175131733437351256123757464132653355541114243371212521676272476735512633247517521174163114354357122374642712774125523243762426442773466571671423116422721253247437676656656711331273315334661724614672571412545556217153451744345125465545711566511425163266622335274751452532513554363511574147767355523717151546166556747363352421163463472555565344247175532775713463133217767624241167734335747375772233332223737746152516313254745277443665261156163443375613321731114464312437247613242734377363414264525752715677323617436376757566251756151751623314251722736676424621647746741362717223425315267552736123146175417432664325264352665571174125555622711553373127215765776571265157262347716212143132642423452451517735636657164471766132576155136221715672622252351264345252165727222772363522757176434263572374326537766341545456423251421652275261157714162737613227363551711521645647365562453775134322433676614461531276465756653376551342242522765716754562557117776733247511626511317775244256356251575557741622743753617245173721773557454646144543134167677262473662746433437115427725725734214474777542226336761664565362113573263251463325324473153622124414134452622154615365763366572342745323575623225763662222112345643375755651372777477722132356232572311276237541677711225553366656117347173247341341564333572567412445465173747274442775365533614757625426733752317521346133414122713646551147311362431433714417627375153267122252424662173645536667376625746365441127337735477356426221634654421544516613452412443275351756431615275255434774132662311526461553463211164564217565637612657746275426635425735124677671767154674457454316723624375375573522222751735367251543274643534215336635631577536573134422764376233136733113155146361132232773627244136457666414232354617271573626243172161142575624424445525171734445564761141734476243725426422276755455562575245153544427273522317155725114741656144576525767337346157552265343256536417216242367174153213736464337272233257577527325645251216743164211536676667622471436451447255776152653541633214346315362316177775363556743263626657326466467377137375313522715613745513553674676747467153246646233724312763363251131235553351374516331546166474421543332766727411354337336267642617353542555517544216243162266451515763247111766317334544162636777516144145235175221616225522513573576214747476312574437211552731422433747126741321763725762375557714327421436451661253763223171173434517742711767125414746246446622412376667217111653357124752745275535335447452556275217625122542315252127765152172724716531175246174477376124224537237122323746165526556557213667523544776213211164751627747337213566376231552772361464357414436626645672647246576644271342125127615574672525565362112167462265265735525617566236437755735344773515451251221153727725531265766256135143364362774777553712472436332156315145455755123424715142166413255751427344757412122626745517234733215131546416521124721612745337652575643414477621313414677444532612566147511572535275665732415676766763745126311722612425655445343133537351112325576731425351176523117245366511267163145762273166567674342314344253576365626324174254522144461127416236737753473711572777357552423457263262621133322622667635111446464122375321742144443337137273152563114555753257733356272322731277672467255574566135765117423533523662777461256773672324365642234613123153167776356411157645157432733341647557524566773767565542646173251346231716617316265742237156315541475416371231147755371227167635164644565527745144574626534511331114664357343141417212266746113113663227154571653764324121122332712233152621726426147441663726317423747342444276712167147441361344552675143562474773117764723247635725633122461251562557262577673515371573751171146325435526515155575766255474571433366757532446137736665434275342672566654717734726636571311746345425472712124517514363415622645327161372613475447115467163257123131161442772557461231257565516722241314515162732154211261642644172232624422715134646264462567376422714455666411177625455644574556156415163734253154723616265653451411127433147566377561427315752733156122437526446336477541236542251162236221255221772656713167476414741653772624115372323633562324737236547742442174436721277533236262246242476626362164324467714542175612763646614134575134136424523415723327117624273726422374667241633276277362112473356577376212316745657525736176535524554376741544423375262111174556334175161154616257776121221776642441156364756674673514637731514761766115423313672354146742714422532534375636326453257153365131313566227122744523237336774516647126141152455237463427211562456471516523661575645226331321577457627573272363247762715251227375361442651217435433635343516535455611726137764631313757337214662544535537646233455763615137436673366752137163322717311234376267437344556555221333264427757715161724373261173126356112717621527512343661711235262175216217451353576766257412232452173723161235676515544416731217437732341563354236773454357511453356614662327742643117635616653322273612734137224534531312316542763343466262224671454526746734223461641557162562631313111173536264467645555124421451763114376225674651545341723761267462122744534233377135246656764143366663347762212336163141647465124772336236467733641245343412325724261124774666362417236511633325144365174473321653777557544217135454254733366563164152247561564333751344714562211716323312561213512747451731361563524155324444126223351474533612155672536163615527165146711272511271564363753536546462253462754215263732321614467437554134321733662154477561247373362674337533123227767756274225644244776643364571511625555367165612312371646317467452147676616571722252345176136274577461462333335563717546352362642612751323657436131774743262456751165227615661564773561127366265213135116675663273653154214134564276771662452711316625445152647357341537775276331232776425611747164147241667634756347313773216216724142147242536664525135456417312126224341634614275112661531462773725362445237557462751733172263564433717524511661176262561721216752362435717217326334414516647645114447151262123657221771665543453711725235336135766757235123357752265711545541256254277171447546765566754522656474724145312367256645632214463333145543473541657454357571246512117775236422677636453443457341653753465246436523452735264331536723262116172643212374144417653444774216115212743264711552656114675425246771374624335513777722322165673613733326652443143236311626417771374627525763316723654746717711147542414214554555142557442442551445716441126474212657525612257423123167173732453742625325433565711417531133372676761632416155767141224236656156665157421326116132244566446453352257222344266762376655631466133342364612347355576564256336242675144535673737527566214157163262767443333636717677517335235543152127464757542641532665417265673216155554542635112367742151742452371247533726631761174213276354615632624216173273372613134172553256452262212632151252655366555272751117431615124251547367155566174134171371223547715654672461372725525566617254355744433672132423276155636665413127664163376541153167754562324745125445115751276475464742314721624471171677626566425123355757152521541632613671543456674373311563657752253444511255245716241326775713127573165314721522456421511213535514233155451532771652724245527372225544212366566664177423276335541334755214274173572454175641325551256671421137311666467143115753211112355357411661526433154652274414631475537726772556164542162423127267133136126374222577177343755674717323234265616165176233442142642575141557452261171115362576752342755245372431552754522713571125434257111254232437713213414635572136137346671145256661142534374577522547337454272161316451222563635711735713443653723572613773267161275767334722314663155565124724233743676311642241647426231633347653254715273436534666511575243137554256175341333622674164671274151677417354377672272611371322141237212236567656166357417452767713723355134722742761642721226126422657564267373661165356371122264541417247177365565314345466614452534547547517367211545215176534127665752633771612167611511373114164552754454555153155227366671311776375754421237644367225216357566317214666172767527541472331217242162642553152734721162525555472527225363672116522737113761447733144714373524576672513112355252555356627162632622774425544471567416377416613265575137625474644614563525427636475222225654432224562244125112653414736443176321617145546361657131534467611633633731616654142755127457551655251644636435232421142221267364271356153135557123141462622667417656554767655657374343636126276153732537434323343777474377116724427613666311746445426145757762425416175745143717662466274272445117131634442744132262121532177627634727564751473523635212432334527122167566635326623445511753435347666746521452535772552741414252157743536674141751146434564313427324677467214271225267647462624766465425457766222757135213316615653536263173126433337247411462141534544164517342715122272342567642216646211354456271522755224112423416341366135764135232145666141572537676473111515351666457253444727777647162354211411245314541253343331456523135365523243731256574127255246662431173537722246127541567315363435654236242477313367345477137473271725742272133453427167273134463666363613737414747776716413262547416671114764652552662434743127262253373711467755133416173426545173322533762711513164174456323743465657357467542141551325361515144633771756134441436672321611335132431535552125262252425576742445712165644155775223565244242376271316214531432254543261774245756227132525757176753362462116725536643735523743531267431652545321376511462756442572635622216647171651717275152421674466711514614672173114531113273642643713414114423645432633253541634336777421164467222525133477573146137211226664517771514755734551365375436316171271362177573247477131673635535755713313363727151753754446223612522154574765174213622265117572664262653443254764266415225275573213417145472762417351713444213644116113652252412441542116447724445257545153223561646256734136673321325723346724112641643265246472533435171663476672666314737727164341247337671567756577313474524251366411411567565455416757531146315147311461451215167654621746616523444624761722631525412415217151435221627731214366221362224132214646732724154514327556667474524221224315113665247215114154526247371743643233156777571235611426565752257612111111173225175151747547164145366471611142743562666753662477135116277224417767256745444573527431342373644744751765422212674546774124512325635734616727371664664415171324216613313315456455734514425557172773234655512466273644416155265375537126677747757234715513332262646757646752651715475166532747244742131127424426155574541756713527123236271543462241736133745416532155765152411656762614317152746243753451633717716176547666262777474132134547631551425524533643713427634427314451534476262457151323327762122577663344252437536571232231434725773341676241325115331553727511322745136663715635351346652734765253757655356752671644643236645554762657476313564562365611574343652151121741411777136627176644222437551665737241154156767763416653642731533657765364362361631537133225212676565434754213376443365677431511461223711542771746275664647111261324535672172366216774577522632675241147341616431232773144431731445562627677543677217425167364521366451531525215125167576644217456424561643464167716667564226273135614771347157141147116642561774666365523532547554666443712722417255242514762756336212474577152116722174672761633544725515512722723334614314317765377157632744246672373725565554323337414517344225555761546225651273335727753515254764137662567517244637644326153552255345534574617314367712626215432267752423173155575666252214657116723366567214764544453673372374215643423454153431177367737266517374757214733375315435447357332361757171664134574331215242276334542562642345635472512237451423171241444772574335425742127161562627763453534361142746252257426521416154447775713217234452425367332356712113724245277536177547514641543155467175514671517675645432527725573514266766747146544476751664544224653543441454331677666756443765444121355334156256346254112527474776145777326234162726421673642353161662613536356657632623317634252251343737655554436732263167575132375762666433177713222647521443773662761644354465627274267234633213412516345173575625355311673223675155173674264146715446536167547265715366626324234772555473541667371137133656211621166646132212152366371655417411621576471623141367127216157121273352133314722162165126133246367625741371174313523344347773533424322353563224465132567557243475231477756461751664143131154535451422436266465553261573727573341523766625563242767731435576242225714576356612127225457137644265767536465266577532271313411141756623673433213376536761432446553636125457117457343231365543537113625473475553516143373156332233425366547414666612142346372515161726514555345236343617537712612625676354171624461141124135327622411346747142522626731545316372452676614517171264176253614645222412362644753763413331732536241421641135423133574747144317235476463616361575244652765326453112762343271462117614174636675175474731362532753654464157137557421114244536623221661375412477432633361643426251346377141427474567217373655572637677524766626315336366655544131117113571573435271146135573315521621117251634444457453343575456433543672664231717765312562331375662352441174366364715265531552251476743263622542243772445634162141135343544112246646123617325441645373756571635613435726151534712642241211374265422233143135647134247357421136712136534156652655211251312336326442326635532111552776127264216763325212774275363563416535247766327142252673533113563346154752514631246546731333571244742457741443561436431575156273617256162126575642515765413323513632447762532447627417257472153436772761255422413554463443641214215513531363445222662135543774315155531561244665155372755244715423276266312761577426535362754536156665536124215241234763262544552552235141663416523212631726513751314711216441433754241353134542763475525563536135552621323116376646521277653666453734767262232716651111717375242546335364616721717112224254671266722567242353543665711527217437341421546673347726537671623776622173241147565666542543635224727326753757137626574741434146651613411127133125115422555272171261643255161414215767134765115145341756466647267767113673424331774262142635763173773462633357456176412716474115375544736364343343125515467167721415211757513141562234272122114264715113774427476732553154375625415227526272352164341547311262643465551561625145612177221231435715552732735631432732743167223723412714111613156362466175121424755346167257666525764664415657266714624531521372262562323727135737511175346417636124247551455461333552376331234136653541616455522166346363436242131474576444126246212732474332434675546423125662672716346171254754621453776575156466314115342736422661367157765533555376733147172311337354443126565314227634544674741715441742532364715761456256762752527614277426236636113122637225517577221264116713733435637563444324446565277117313756642731365736474464174716151445323626656362433162572313217255121674461431674312553713335463215466744211317631277517144712234173716337567664675546563365421121432475443521322177657316767173246425252645666116275235735754362253761246646666516322135633461626115432337226177622246732217361223166322344253255663467517446617217151214722256136474444323323334251212175324247116444215631174421653253615232332217531425534117374512213646762324417642426146776561771415225567227225551475216755256317131617722755632162612427334375211412575113516126477653617336167232312214464477247335516552551515656166635475313455226714353533331151133773645173525425164337773171124524171777362724634476577717222514325414534146632211251153216456127572445742636746255464714653565654111516772777636475176465745633335516326616511452261231735531265637472364245474522756143625134527471736453314667274727272176567621633567123573433724155476354447424113225417142365763533471735117421754534532777466743313427432374512274657246216124465746173243633152647754716521377775674122424732237226717571727627411223364167322444236215377472553566226524667124646467131211465754766551337352636665712733172617316253426344446336227423733234254713345273751723535576262524233645311732426427714463413756412176526732175147247526261657437747532526147654661632661747672677762235242137425512177275265554453776513136771653262323743412266467342744645733242574171353471447414571365751416666317544124161231612751557621611551525247656772174472467461643737713637525426735466544523727214425171763535322261245521122254715426525277643262316271324553144116667412516126467377432217434145735117267213741671754276243767464314343253657157256776623223173433167426774173121731613345545721447411412123336441533167655467533674135447614641724433421167262543257724125571514346522741757244562575217667152417371674613527315656367346455625666747547732753651517545414276175763756752351646737114565317116726233231557734647547336257171174626341426323176153115134245245646414645511211126437343651315113763451321532554517634133274714423777243317565236313137456167522131244475555312244656615543516121155736573344471166751524116712136632513257621131735211521533737633124541633746742553545727324311543317363777664132325121263724111442572271267564737642771363175251431661611766462366666715335743217376577576456624572364136644354324264245112674244513227123452214732556367546274665317322717221625272142236167557377243544575572423646762777155716143421761657733417227427434236752424534533645377431562446263771243617472676437312451615523134257541417767533663727122615321646614664764657236542654744577673655245634432546433511325776775353171575331627552144266176665514733214641742616223551467446337634355653656751674261426564516573331716314323322757224773543533157357222663225523545255432715424363416674326272556273746351214643213714546466535355651675736414646356623551534362761142654516312136737436412231537555732423253467473435317442715662466532266536666241161145336236565352577553543377526723461474244112272361734365346242677751375717246566572322156162463357521432366335214347564364622161243426555417231675654373776215443674553324237426214645445265133422277432155227751556313133746211331414522335344421353556743665731161543177534175334621515715677626174475467761633214367271652644664423261362354666524545533731426762311537165674447314771464546545616163772551234356665625361236136135345623756514374275735163666672356232536477247576473312511471747662736717735124774435527676163762366166263675275637412372221627145665674273723516651112243334252142523252643234222224331665422625111445523156577722455464225421333366232657537632167647361233255623437725771753253357275322647331775117517615244671632564652615126527672573421217363642437622423416567766241352322775247133415156736735761126457641564611242741644447345366154241227717145332426174121652576212345437553217452462165362452264537474442772746274424144411746333473131241544355126643215323265524147264247716531515236757215762515625252262135216732642773673753636465713226751645342451731346733512373526533727554722226353247521657243736421415177433361615571756113326271343263327555545434433335651517743371623617375231774446135126713452455135775622722355272713625253331233144536731277126227673412754711515162775215237161241623722533574424534345762611145227532774355616463721621723726642614124541354313524576512113767252663241575227411262253365773722211445615531571727244514273675217263764647611723741523253643465423722476477512277461676113453214615146727177321256447457124335717623525636667615563627722465366262654347236317176467454623453471756333345267271157224627254435623665122652763711624315224776472751653157446756732352214575544741137355313377223361672461136533646615536177112457641777224767444344111637742317274465326725763527332436523144275654417422221662726362154562213777542573726115411331446215445144232312176716656672656661334131655725425226174165352231274111166671543355254654421635755556775675741276734523156241147724525275173123225667276132237142714534344666171771117643157773274751475173714223225122427521157566637337742554167711263346354542436473376555273176234552321174346176336315725445251746261271734755621442354122657753613122236735416464632344522527127433766752413363745311164357262346734631162431646461461216245462256741151424517566645157613543612677625161552627415223313661251547432351325576641373733222442436562636761441436666152514141223163366175442516376315566214335734453212146411361223663523256742511141356221456577267551267765236342577332377361416354563562216152333456727165126165655224456373527266152767512527276722377237631641456566646121251743214227222416554543431243471515245571613764642427754112442532355724226516212553552364431524141754575566321565253473755147555654335173744724631311575423471366612332626437724154225766346366157273575442535152666464321357165226516444621436725564336355375227167135526553465344166725555276215212764653231754564565344774625547647436661767546116733342144722125752557757743645452726334747141747336333347635412673537233156364427353516672362543135152471437712631323214432525141756225352342645777327754146763261112657125373112135233751751366471765616547767313136544731767647137531575674634347233527617713117773164753447264116552552654354264612271554674214373552746465225575136114663224763332446475221712425446146462161524772732664655231716612661111272611775275753677771563152154264554755614373753662131335564112657346136466154453756213171422717144757527534313672633132214476522127113167527271354577127671444765776414367317535126221227474773572433273143136732564717656556737374613237543557725537434373216236521143121476372244227657271133775171524653414632343441372314713424677265636322567125264524125567357216173736224336754425137726745165776372115451465731654545553352242111423261236631117573461725243444526736152755257147517671536264736542557664423437527412674524117165254333615341424565666437751171515232532276431271177634623632114727113343325436445321173377427713735361613547523265366717662763475343335713754313152154152351727554211711227742366465712237333417132133355452571557351575531212135442717555746124142323715127433317511566452374112244656577454715755233772332144271757536574275773526126453766317575551532162653245167745234275356734277427676222732145571232757663474556437362565661541674771777437175751617266765142233723733676727424625744644367622215522123124766451255733371314627411622124523471526323543713466327572114576246311353537241627562544745334351213237624757752137375613546273324551653242346443573353641452713672766414537575765424717164376756344176662652441212614522353147665426275472636661252625252466566231161531115714132434141321377224332525637532256311126362322445717253745112226757262127252526237355552463576575414625653135757115574143334273754337225641336457327123357717314157272666133717732755474315336144254453356566653157631271134741457126544333321646521757773471646652527363525773666164254634721716171121573364564372731425121232153354434764434775377553266311525754421126673272733771227752234622475411367627123434656564776477646411441534556132517476776536633665632126464311563522413467352642546657516456536727251422456643717515575444427222337523662455167131521565137261315467756124642666751137743662133572577413711376174326224624727377657527232251271624546227742762751743755224334427114741744242531634133154411264216673617243517562326525377415136627311334625515136117646621524425567614275165617532536527513356234215556455247323576451441167713325212241655727267245211311321644474611717511441454375447672767426127321362546623444321371477343365237357543445772434653613651276732171765331222474752344643664676116275141253323122256743243532552572317335651373521436742236313563124147746166337513371514346735347165171671444524153145672665333442152241316751466112563143516144361415645644713614273411663611246321724611412774425156356647774526747437572171452271137624613475263335416516665114321212713344262526357122127531364315626243572744613636137123243615476314763271772365217323747232171742341772272432152315512645746754327527731374522143533717525322154135122162444642225617661434532344757275552246567442331574251414713742621744524672125215634674576712374361154443666317213573243744374734242517117757767451675272741345751333453352461526616437723277676642317655723274766742735245326234465452364515334327434362215141417356475266733456531367411325367314263723735373266325376531361232641343557317726551321274224446634762357311314252325534176433416116353315445763325172422376746551527141525434766666132361156134326234316142557547554673121635476223654562746132277667163367126151356734132755366354474624646653622534341546316244673476163641343515243437277225515164763356422674531775134246637456244513544144437627443171764742667447615322174167145444653366456512464236536146262631425645622663742556432357365662634521223572115363237465424374576142264544754514227276751412151175235611325167422432427667176176732434656475347513765143743654557722471357113165473217615313651653124261111511462723115535234213536144354546776311621465321733326142571354255175277457171315647455734163527321257314335566354421124624175147265217752722566331443136446253172723631123312245413127753772313615261313644271141473471171242523453473771411625774335544671154511163562544726626253726417634316525775261563545564776651644475367167526615361731437316573143663662765645464677142214754357756246544232771472576626325144132765741565774253323224256664361477264454144561214635363351672741761436254542764341116434634131231474312676166513634461253766721162614214113674257637665355157365657361712372121114712647465415214254354414625627331614552424146564111552254136272353141223727675227465523347257326724755456347261321713437446311372617345412421654664341276147366461524365631717476243374317346325311147744235215733472724747772643757163477211124554655254364642336246625735157526124742511174321356157754662544465173343353116353171175554742317226663132542371721131616472754616666112365636737142244124412272161612142635637554177511263473712713317413166253664745274455756257511552771727415773625362166614766244344556517421172531747741537455122616551532542125223336373451173353332315572773526752712351577735461732511672364371412741137234673116256447717347523726143265656366115163763717271474371637415443545244552163112362722214266742215133412531143471513735344331463377741114231561651245611435515156742163516666754261662135717624421636321216213543742165766751323527341562374767463673421326562143717156427737766456621163732246656665626531521366341551164311277265642535717146774252277741261171674156667663564313544547755166155574562461147762256542641457377257736114332422547434727165125742136657423654741715516424345743356235276565171311752535361756423436166746555516714276724133664231137143612472272621523245535257364412664733264445631255732547617447636342662337132357753231231175171124414541453672776233356566276321152635673364454416134673633475613775665224773334331732325675466665465326716333177172425225763752632363364321521437713535334733216445775436511565576762715321732616516252123271152167262133227327362377513232451557576671324365425655636243527566656556672421263751554462744734621575476631767255432211416122575666435322427456223533714636276775552424556634446123324177617621576637325317655557221531533625715562523354341127742216371674464243425742415621624256717266646364625523665567753477377327273242524477776564452131751714744457543372212757536731147341644373367617241537414411625662746516155146162337411152244724237112727544563115756265523216541643154141536137756714556271744242461215367274313173667477675233571612342461121522711161141773253434672141373545736156263453772356746354423766563571337776366534441277741246126467543532472355732252146163174154222416747174711235442361612326141313111731533555322752143374221442654666141337261577613133544672277667475641661151731443121522143142172676676773116153556732137453664143734743255263642545162736225533326623342777365452357553515367622574143252312167316373654473375656473737261517532362756331771566336733761751724364463435524663537423712226332751537162655344721673365417443661133753337174576675125776754352456153325436716776622422436763232741372244156756531772246754461764725132736625511512127734514572363117372375146326642545327611131561512742566322375573424426443421672117355326467337611444221663764364232165633667557735457546135454372471174573562454332416332111631771121561136325767322164475477577723162176147555677117566426517671177317124262162273252123764154174125147677777326635746356755374117734714123746622326355343114634537331634337124365222767362654446473556122234562315623653741524555733544771466721412177515567346142431237276271353662644523567474746752712621167346642324673643446355656743241116173345736432677634413316644754765321224761367443215457443741557423434232261335757514542257344475641475634767674556334553516347145274777417366144171566146165712532232362231254665654651561362544776226453571367264543722151326725741617377337445132344653774577375575526461426241466253453233164544426376342365535354511233453227663533457525461216567673257672662244413465233454234325654633213446217757473131663425112565116374314471452675154426247527332361633363422621527173136772124354346776441534717737242251355173441442476562163156773317555256633717247125343752761214251176672272217112745444542663222342222551672713127654221421744177333511617172414511334517713324367641632752234515741322313756515673767274427171675641262667552332522442214323473217436525663136421575627442723334217162752375336416211146341715335354562131555515337544411471244671361463751432375253613763276567725275462544765612114323733722625535215561367142252724227621124661321217246243362564226277422711154264177235455743366217362563777426247352731635355227145333623774712656363345274616523266661161752151776243153555327657445655764262264227627174627615552441237666215641622732414375354432665665616473475677242772621374573371753612172752116216561632372721137312541137437362241434764257473334421534516636743126516225254521363456736722627243223756574357377644556461753771214511572237261265543521716427442134273336355564257632723755133235656123151637365351564162675212161113331435554211467776375217437431165337774436516725545467434416525352363137627411466236311643635563121335337471547364135333615475676233665726112252674426721752551565764567317536725567472667744214713452524577372242113462376727521167432722762216421651727723664174131444733264137236247233532341755121625244757662575532715242447162254771415313655447747475532531166457432362641425413552245512527566541166264437377645161633125275751261221674524621327523135755453612733114576267333214631426274554756461752661624156631714723312177757254453445153657767453724235243252726364171477566644155671525742235273574753623677324124266674127736216775371762614436155755371364234125765754156613522427161311643466164762577451743176225247244674422131371347433154765513547347613126356313366764473345533656747253211143371117647214176454441516226424645665763623433272757237261223571277116377734464561515424635216446346316413742331422365652512447314345316513147221457146236564535362122724227342327425357346733452764355611634175251617634631176475123714171622337617513466417456261472212363546427512252123271212262513633321273353471713324554773254641313332551237432165452743471175326561147162226425253461731747663442665714327161517257252267445623112672334233424542561716743645247431563317552336515627523111735771147417376632513475357777773462467542511474655325744744143512662747227466765527314721435716276512535464473344216722255756776761243123563127657563617525336325353655234647536615117161735157515212645423376271711621233631623444731563133153254345362655757414776256471116345663532737535565276213744266312111465767653422251161576234766277355744631474533743234247667411456242745276662366573227276157224741346156756375245467511526442155213222226146674553633715652761621253365272263541724425313422525732261721331524737362234576157564174215432425211151474164763752472733667233744162243542242547627122522554743462725273321674566611264341736416777417162143533534754417624464455426535743337622327761743521356132716523247141373471475761116123233174432536676246417315337332555276551124774531513433377323662311166117611474455131571432612244364115276335114627766142334757416737657412333125724737273511543455533415642253756452573753237525372643537666373242323521254326166464737137666313455747764417425464761774153614252655643425361247646745543144451757455727666612616414361775344533511223172764355227555745412166436451777376634456445232614722655534543663667445473115476777256632316776375332162314143144262765336326156511727357664272717127762525533314415542542271463516676161543114566233526635115575455474451771547472755751572353127657335435523663257646135252575565537474155333642646542471761537222261716443131335212442547524547766157133347563313552126177665553572576242211432227423244322717456637564715163314446662224424463466434146654114552441773435115553517233122434222467576132643327662714216562114353222136333565454746571466577335757264116565244752523551541614372321132671536133424612766146617752156457533456712572772617611615724772655213214355655257131312224713172733345773572327443575626417121224551342622263121567253714127352636754256474116176213525141265367376615565376315127511435444273332324172542563466456612467127453725436723211541337311651572551154627521742217452313571551136244646517624154713155535713216734527373265573374721463364576513255375524313653255434153632614131652445176574122575373577157454653711427417722372732323227367154466432562564624231562125145162421455544113415231416521436134415554231643213246277162236753513361174171332746666776323137377737247657723326225225151465345441355453566722743554463632366242371247626421525212642224464371541655547512573223511744513344327326213254434167532645236653426347377516342757734212754643174152771762517725731543647435155453543752243355151235522575472336624223357775413636412572232476451164421512263645527167214563437557221373533727673771133611255332244414766471571772125377514357575247656516665756157727671347417144222713571465274376366522453477112224673652512332261744211652664126477774264411621135456644733545425315123664667162527314127374236771473162462561733164476535242132172411766335321631377263717324524774172124657154115333634665231547251564352266717433126415332416434673231461462526137612545676552343665134313556452444527421216442731644315663422757343374326263476554315273454653617147612532771765416127374751352277251344544533414316356766113434453416262656221663627626431164431172632217243343545626673611364475761213346764357142632233453232751712236246674572175327676213477511745152652342543316565527761231244743232375664124175746646753717575222453242665474171166755255346251426643143612322541335264727736161166313773325572646464166262162371142342665556632572211147247417614141347215127461513717755125726534671733434563664156164667362355646731314664342666665463313557434237277755313511471236661156213637766655526177157374254473334527426425166176124253711442765451432274124134755374665141341216252412115422116747537243277421445616721662713617554571131264327211223272473164151531644164425557662322562172516663741367633511517631211527612667265323316571741645167232332421441272524473561765474437654136362312675445625724575231336751671242443377772574253116151656156364541762171242677212116374221251636145245362553573614655267414677473221156335616217564324274763744466474427213223113636366764361137776431562173424117647446215211321165353454737532625573534466411437354623435412575455141471343426554356513464654333236417444716573327372631336771414344311612671134264551674513644371732233513637465744134515372733736353633321356364677261711375511546741413447465156175315346211366162224577636454465126762775123642164553647516255171177371714371517365741132767666676736741477562521226231437417411314327461431622735641724776747172543513747741353231343632647647723315573416455161115511764742645315766331315213333773173671176626536472542254416176516116115111765534672217551572444444365176174761567671767146412747377116137526565665765773753341262212226371352151557461755472532664215755274312377447544475641247552356276726167333276657544652647115626631741674135132177664762762665551646726342774424374112321677455451454321437263612424655736764542616232414533734367656451351726121155415171413133237715743346267214656455526233446536243667477337716563445451636612537116267222334123367226422374567572331343566377546667533753532472635162542311355244321635172352646355523663112636351433142476574522414672313566324557775336326712242533163544375754145613534525652126346712343151666456643526313636552464721347435214271563324627566745336573537361712167423214164667434313756116226536562712522121164536144756671654524735377522631414327726716773455752523674761221664766551457726534126376114237436725573552655531332262774417452244135423611374427646236617555112426261642672343337254145713615266725272463511244273776411173522534343672264412231427372512174347715376625365472645714266475242334773665525374562353772542477723313611553313161317526174433325757251435167366411472312765321127754226735754735116247546311324321643547356142752517654574656271464142116624212563461131625456434231353354776255534547732667442155324551362217153447442622665174636415643755152436372675155665462433126535234576336735454232112245667542275545512376353617237365243111347234714365114565477546263675742666366726626264645723641122636115744756632462255166444667752773577315162321456365322672516727317337246472657475337431722525655617544474653633476453644135513274267621421675254231414217162321136232474465324646126651556117233257317167722316111175164775117535466516412532454654573112613776535527557644112671257567171367254746724117431632641637647617735422335737162354442436512412515251513225125443227373244526161526717231744511134174322175115277761114321662114513167416111621721732555653255727345375227372415427666364172675532462314344474257335375624273157225546214743571446366767527225151126746344614161611526562473311433337263655363553624663744315461713631326765242625315612334272273576727637364647417371434764324575377463431136116137314612444214634674257463273227147637174524271772317246656271126173113565315375546564453313515425637376127661444433771242513365161232735734111545254477562222131363457342752147654325414636153211556514713236225651422226733364552334134357271176241453267626473637342176737137754223651754623326254363357464472124423621314635663232771636267473244436556153752474674657616661274751547564263332721427422417537325311267777223535611752123777122553712122755242143132345645547135337631737553161363637414162175731614127216614654236211611231725726532542334123556476577623725437313671724547725666546531133767731317323116112777564447652252265317253663614714762437415543151713647137537232637213145542141332536552424547623634347224431565737525767453445141475527164233727712471345713517156621641463666556647164675367264167253422712777573513374123743361427152343634523215535247644113355353621374666317764611564376643477663613411433431233271742545276275576141273657662123331524435465245152213671577113556637374743557466627371467471655541671375664624516635673743741524675144723425117774675161454647346254566131743663442152231726762777366111376574731356572774573763711631772742356523414673243552254331547635274766336615353731246671156751672371143644572275323213412311571131144447227356712423674226316412435162214153163426626431261723275175426244452134126653172375534445277224563776371376676125611355276317167367331467346151743211641673712651674753671516714346533623114311472776466441452716752244656226256565334262436647546162657461337275137651134111265775352221455475211367472773214714433665143513333363423732453755422777415665121561144437675315156346417167723771176551543473121745675725117327442226573133356462253155767712165226276513251127345664564566675526557427756257115715663343143625672535543452615316175523136421172455241616767631457333547572723161616171721673142765451422534143244155256245652741626162255762217724442265144252343341455154416371735353771526653276354272743572616535244217274415453273477757357324747471412162721341617725653775371457411637222357352344142352772256231324435764632157464631232456471543177766561676656351364542473556767767747141635653633316556724734144231154141727322553431344741455111215732745166355627754362431241453255651461425177216654126154111347226464425246366144546463765131152612453217135742517565755471525117255565511425667745542223314216343123773754654551225551223734671212473172567244375252474671351372651352442456726545174565613733227456622157741635546124714211633617472717725227764616317723225577656751153574514175135141352223121126324575346756671375543165311532554244617626475636523122764736215732323314354157722334523137147632175446165562665121673126734721237173713472761574655467263665722131532712271461166625645235731134321521742222441422215132636751514565673225371343554461754553723413173527446412161647735473774435755437315356565541645325625461277143714632417375463325717646677713325771152272151372114161771762424124342563767147451767266376431154627267477514562661677637414633234344424366144333333215356632264632363733541265527157616573123525754456623752534543644524147312217544537744217764357643446316531525162775527537155152326361344427146346122264112627162711145671515541353673213516525125232732712457624314646337121523437742144421315146644566511673336344561123365712717367357336663527275321651462774723657723573276227741737217416271576662351567512417633643623443623671725115267431334621173441732313574315125161133515734411415746225657562262414776612343525411234121117447511322212446732473627243443321362534654222115364546673147511557123421233545273171652167131326431613147314254653147366463535361462765637344631345373331515453421516413441233361731355646374546631611364377636632167643773467244344463123216112332227617355473726476772423233567122112741611174153155216442131133345652643763477776437475627124452237424622362472255215676711465772644346565734363173575416664553641474454157615226677341247625321361126544436357141716232124645114225272655674711721734256643365116646135724425621125532317656467453377712444346547214556443413352712712261534577612266734415753255456775161641723131145617314721476376116272374721244125765451632562473223564165312714523362444622172334674224154256731266334126337562353776313151743762736432364342617177643357443152444211357714276316273442515724251773237332643563414177252143471511133257454642274725742257637611123532417773324726522731713113235772152162324727612175317522244735144342514317372523253326532235142577167532672744272623477733651121141224413527257434114237615631145256631373337314626332433226234753745266413453234271434146171461764474356633167676151455375643633224653636155146653122662346724445743426243741656361567113126554257632556253332367356467113751416471657574241361426465575764744674172742566734716645416275571371717225415277677564434365156315471412363773773162435255772522563644272573112511665514323576755332762233443715174765327667576333632756432734545233165155236262445752526112565222632547373221466174455276557311614161112443673523261122167721222621143217676251611622242134266552555716766725275271514731556423671413371364774533515221365141432612143361662356746452612525562752267526715254157726316451347545775656541477214127147715743117616314262441353175772113726337221253712156314635436547141765726234424643575361234711634124535451123526277646152452455276643521525216237133731276544273271543736447373216611721616327647134421366335755647143233264152164537675427127713717243552377417273264125241141432366755175266275534136753257334573567261126647522345263572534223572622734727613237157426511233613175471714115531636572462527177511352552272756242112362643564635773242472776614135463551736523232547777227172425364532755527143427437442351523251645133624742215157223341535263351153356144474112733471555373621646375223552264466726215634117364225747325553213125735532342373715522555433745366763645762321633425663327724463362656556621115456244677673251576775654655756524461242232557631642336123621574342356511756153237313314516756474642422737746262313644324333365661742336432267412616442174434122316642576725167257125354731352674671252153552571614342145313574254371517175445637375521442631367727271117554447471253311513632733743774763437411635267241735221626226624377357333241275372115267132624344371443661171741343753775357725446672377321535762371671536531215166317352545344673773147133255664626664231666356757364367625525111676423522567354324743754626447447311563732177542247545241174742773263556766642167145661761464575113361261266575572361467437226631277436544523214533673746661654774146625476721564754442337436245543445114125365173451713157664551726547262111621277377714674252464232261363465616535427216725154611126155434314167641673576425125227746511243641526716366142553464472243466662155666616633727456225343623512116614616461772147162531122373615576366246356654773345361632313153623536474463752217255351422621313567547276515136155673755346371751725756536332257147544272242237332237114151316323461117333457424656771376521463623634767436471777676146712757443647346312152353252156661176243621554425643172316625624645551144123665351767132115761564233351652232676716131453242211744262266573774714517754271333527157476467766356241235656121464511642517416355262326273716366641736377457316135467277612437435441262227347164722653735111144627145361215324716373567311425111724643775536247161541412554476471276576253176215263433712351231347127155355217645372663732154271223327256716173533122526633353415747156166167453764346222557137545654473312341557214136314337473362741272537774736333363125266615722352535435221164334746556442363517753637451551224611767534752332341623562747271673762144442676133335723211231337747245673272126452254665712154251275666316621476614274775214732162562414465546326146456377674172367447117663435332211131731541671735757735272246567514627764153347144141761175745735527527144561415232222443257763535517624273455177423576714723476171253613241761644213124736376225242523257356552113336722642673327613131266735345777613176377733713337466363126527611132151754366713651511713775666771317324754545243223325626424324446517314672316647373166641362147627742431561565614214711151454546544676766254735547251365444212165456454373715463511641574224423177146666156635216364445767532152256144142745456415752662656163322227643231775557364644141746472624577233223112757535151345226477152114447157364341266424355225333444222136165631761633377713646313735132242636136121552563257711424231544747544465643233557451622345333126713463357772247315377644567773714363621521755671537535314314525344626771175775742115546271752526371111337131734336124744752234155175331443455272124422136352167577324361636557661344451425633673646276371346246472257222716477174124663111734574722744345215225626315616113563265463126747562254125726636115434214435433473632354145731633475137472346615312537244147242513336276532424354431446144767442664633516142466142217124424461561243624521667614234136571351436553245627726727332156747264231127444325321332466774577527254366232575341573651641221374431157773153711777266453575746312511521145547537666634125613654726777124771164164146651432636322132244745744362776754721123266311626413111451757646352474113753235767377454443537554635345632146756615553427612761553226113427314166753436327526574236236461433233741314237322112524447327552116413643377222433625363425374515365743273326562154722365735476146743372635514723425553455226143637267464245657213677245151774467417555271766777367415224223763633511431647536676637451714412675366432515552542535413623455655413247637326574156531112567345116544537662562177153265344471312277643623173422421757514155216535622324745227562666657356116773556617414236224314271346141147315376241665476241671724741744725546573551232257347443736233735422371646173322366423647554156621261346256512757722275354662665774741556541646531162726326576377613751535722675726217252232752652241243735226222753761214412617125251553416422511276331772363375724772452413665616732722261512413723157432121712674117446516761262617764175267451271234116175234316414134744612741254776625441213763575263565751217677562346467776455373662461511671651115754665522253642127212263457561367165531165463515626254421477536455231251117577372217742713167634561616631671641762767362577574252334236317474513122152233323731274526551521213624732355516713233615673646166442145363245255672264753346265222537377514343123432737274233755321341432167411655242161523221754121254662544742465675757473671213341721365752127717515666246377743134274671223125275775622561564161611212334756667577263341526346537151224722721767717455547514367464526222424514624653337477147717572514165547133627364234342452333423223711723226346771336574137311725325321742776566732613436357662325167264465344357631163131126352171127555323747624144347452416537631626451155146544111156227214276262247256164747452567422432763712225252252555523672644111426617732667275354236646123444415477373573514452774751653221572333254543235563672461556361342474733417722412762342427347514654466621723364663131364332213711441442545174564176226653173413541514151671347167113611122562145126645135262371373573627775322135732635444674734414176777441745557653427117514354164165721235773777343453535163462277773137621327455622365263553162153565567612667343412221516225533123771753231276531763754567443754254352776735712171415175732341155423713526421631713522336662667443144436371455565756371267457524721564433472351765726235213264575645317667216324116133654263553447171266311153674417676424773347367427442557137511671434224457527652535714736116116442775354436414671472775776726554153711364225675645155645647425234626664416177775423117664747652235124565515474257571657354332566412161531311147726113152516165625734111231435431252667237157643555255312465122356556413517573751666511667563112776546721171366446422627577212371365376415635624575657731661713152612563467341637535522611713221413772247276261344226571611223275664122231767234746527512725354744557672771133621663753156615322177751162324616766364612664425645734144275765566426126415151654541154615415365241754734633127515522313254613537535232714227377164424733433177253177262714255253626332575225243643562773411237423245535256113411661167541655637364731567567132222242315573376334131216176211334557671551712734347462362223356633734772213377144173322554173677263663214444447267523171572252261457761445113241113534673711331417317554376613135517111423546727167736477362666357251432627523621735565623113647576742334226472664353146447734125712135666657136563171745157551343567366344351231641655463441775256214242711133111276145411572437251776266273513643647321517153777171717737211615273245326423724133245232363545374631363226521234651315544223742445513236111235523764542274562635525141143157641351136255534131513431535244132356352317164567641213365222525154122454563243136351511422615432235563151566711636127272564246451331556725526713515646214532516733727732523424716673525317451445751153345717311311763434572656345563127711752124113666246533461236547642641242564163716551211244731116412427777416616674616633346561321672673735635526211213557337372463663267654646461512256224353532121447445121771751275237555147362436374726217315336252131735774236171672534556321237452456355711717117354641473626654732777577612713152455514216165472771762742354561625417221221771172371475724312564444466611111312442422315755135661341231442464631124365752676366422537764132636157475114474423274541446163356264325246526252571346323222457416142656442477557775636161327417313562546625714674461316452312353743221223714473153113751222347645166271613244661213477621156144664625775333612132314266413312717362763625117314644273234665757725225577322353647366773471367263114665626764362222222462621747252147533433251312424764156353271374467133451412764564111746466436274217445526136575127233163736656377345131134773575537137433221157115731144545126671715747373327441255361734457447551346477642616733472664441416473627461555745652241427275436475651746225623521155117236623553352457471174445563264321272451115343212431177745315636146425536254515752261255776471426461235153534431561716516467631567773421715442537521572541423612773335435173366451522776752343532276733452127754747337235462656176163341664652466321445375473473323541736425653426572423252633164552654536324757646217536112342717165641472271165716752753316427347235214425434234742341763535652615426152625242656113372565344644475314515233521451771356724471752613354217652637737166157521636721356171766353456464263346532545613513623667136166615153726373774354736316431346221745231262661215712734577633656642576725113234134337611774352147227722533156462236336327764272234135311716666211745771676325657253124216715737223633624456345462164516516411324677372757774443753333224155377771127215225763262524145664424423524656471177535612436324766342535222263313366257323256756773366122431662427246311746646555175127353352415543364461555333253754713447711654124674663527734243743227221417213713473654651315513234356337342742413717364435316543261224167265435636766433354341556562311341124127716753271645113773325461413215125723354457251452174553723435157742477234253431552227532275113117366473231564641264157371112413451332654723527637254315315567236471655361742735663333775644677447536474472666464137336124614652634565236526374777734557347636732572425377227637632427346432245535611537463545442723147624151625315552531176753155553654361464335773357457465772561746566744376216444514542344622726766674224235212673351515366472462362125532364564221371721771357526627514642331653173316327454525321372757312417611332173157524455426723745216277332443657132467251143531362212234572167773333367564731276421633412612622266515464171112143146477772354472443222631142357563544433652333676222424531756135521264663115416427562245353267741161666271132665644272726345342361447456553643547167262216753221466424473671255275133445344675134717341741156677322756613312116627654657156157712121123364675657645434443457352675677235636523511355122377435615415442234117572521343573536331772446662373443735763452136652762136125275633146755223425214413726521352236533347153314246521712175132456223466514746563545557156772257773351221735524262751677661115114551564767643353561657647657462136325714772337626724677765745251774615315642634425726136523431541133775653145621513435421755122346556434751533514346222216111246133767554641242667611731633161174513552246352452342456553263272664331656615252327656443763223572144323175614246125772417722312526351571353777623334565567722373221311556756141373752532543613346561646554452512227474552753426476563357135316521452136445677656426754776527463637754717421575547445144126275461566152734223771745562375225765144143457771371465255515326234757465624714153313221662334147635674575177624256572652114631615414174715176624413671771575555331157441252143514164275455134767764742161314655475725573376674713317527557345115627377737621322754745634661462253333226311443752365252547727145567123644711476545354531523637327421616326457333271554636213254126317142121144463541324245563214146253554672257633166414253513321155524214342545244114423614347364246557324571225725451752327355172767123563625517456554727165565154766546147622651435241147626424234772626711375352376522415366173614775775145714133676257676627271611371215116413124131732734754735755276727551773377513716573176615425316355566137271573442152743415346315363175125315543767355636464334754464216137715213342236166432237776337353245776343566465241375464331355673474331517556314453212735762553133556547525456124544731541117332671565546324236614317564765631212261744777533424765143533425437656664354437772411236672244121116114454117176436662643761572624624472772633667665242452431733534273474667267156664122276312554375645435453371257663213745333173577332161327545545256464217517176132341524471345172732462444445462536677257325134441716153631466652543577642365632132751343513511766356433652455551166133574255253221153542171567675622161427345656775451762741741633733214242131637515674161265241655166673776112252641457576334421237721332133351646725164737572515621653267535613524324736175366257256565647332624367754573322337464354731175461126123473145211251716422632361373125576172633261261733316445616227716536233441571114345322773716721773615163343343177631132534436527111636364521231224447614366342354357375147253476242332662626143417347255314544457674774356172533577535455753327571117546355632122215143641272352413566415212433743457154175424674353225146211414762177436271751476727524355326114424366225334465461454171642464227747773645374254211722716354115173172456217734355557651527337737347616427312157735622115137233367351114154472564356661413325755712124543223572341231361524423123436114445715232355473656317533176117553253127344114413334321537441517146567425236676123664741725266114754725432331354643347553361312677272145472536323666644173335635665112742236757447433143416163751453767272711754721426766615373442141752362471272254744746566144341457516747177424232535474322765124175713622764371463344167275177576311573162521571734554414114175126216525677761174641311623443256271752533641661254375471756363274211564141326345775646143672223654623446472426237713631211434111574742611253217112574635161472652456657165427437571173713763367626414513354321372422713221651633614266625466415561162434612616176616461327172151167332733214734735614137151355455421723334141444324131145173742423525152565741414717225635221474755562742556616421534226752212527377665142133114267613417742213244243651165565115216561654276634252646665444256716774162613565323521411254673614513323573163726477642667451741521152333752354234311511457465647655221616145577221463541417274272633725732412444514762142163572175417212444727561161214533724325175726354665735155215672373636355246215614576315146726157453327736756446137751676571376343574761557434346555635424555312711471557424167235622564251623713244322474722636531727335526136554326467162366332443467142755734466434353522446672242147355241677434271553717767213531467113374457167355666666717463642563123577577646344333135165342527233412573666432255761577334516623174254554526153743122155536512122551335616514271523127575565771156212713755476557152243621521636551151346226774713347521623177754162131152753565711114275515514223547545744423134234555325117532175163777332644466253676527562613533132756244512527121163134435611324512447127372324533147573374545217445456417752445752743373747672636374356354527326533252567566643573331165647713665274454542547737363312277171466317755423716613651213533553631663667533124125412634121576161367656533255767621224646626425654632624163751744256542324376165567742567176373627665137566476164252541647477771257664644524432157224312362271517666262644217515641472531157222322147434165247635714257366423554151735444262355765514644527115614116554372531346211774367317111412377721414441363464122254165247417513543277346675221537355172142123477737154145667753677521735347676613727435123221612773765532513573716141664326471661171754235516126734212645614773723221544416237232754341731422734355323164627552746464577643146574337536222116313343723716433373746723654175736374717272254515212715473112615536146277314776626126566266457334157177721522414317375215163126444543556631272624553465174427463731375261311562151517231763131535575315446436733715157257563636475247675657554165762727166442423136247625613322721323332317542166172775665227432564131451336444454565444276242431353411745522256745573134761234361633127671137735476122427543263456751741354251131753215361621266765163211647752166521247432442347156311414413731772737162436564572433473254546736341257424474155431612236723715633151223563272735735262163464357666671457776263776535634214731716526653544554253737642374767162153747425714533725723352652662776364436146512724627155453533742672335241223434227144772366662161215143255531243166651726715124356164422175222641531543534346175715457577433516773256433167777672341327454746656365131346467357514555624322226146562737766624776353246611232756744237225727537365612612626233137553566471544413274464756573216163543323561131351136625614225754422653233445414537513374136624475564216544425117252413125711347227642627262172211353765576533665643134754254565633222771764354147454341676356142363664153621246213541731666462532232741323456261654757146716473535723155323253241546563565334711412121564172326473461751424215267673761477542373743232313634563543142112265535132566717214662346654165324767614162754775373521426235657466557165463163522175357173662742517535375614275526455455755351423316237731451323367135635562645375342234472545165171775454657411344477331474324125227774473435571247264443215617533433272647336563513146571351345712242637672441122447416465621522657232111365411655537415177351646553175233174363746127637675152132341773413253547452346235143346412423154511156125353215633351222563112572771613451763665234345435137216516677146345535451715661464326371267215133625353455233313756777715747442635563241665326633524515472357563443676155517472153525456715673231537435316267514176744536225651624676427457437257743526442247322122675754717134732424352475547742243737342346153214631112555543176463437763572722415617766654263733376465155251531313313217526232673443351216352513145465447364744227666716753234441277745713471133122733632244617137235646327434157352644162562666613376332216513542735545634214775235262572463737344712564315615341277551721325441742232653435212342417671733476664111476143674137317371374753733455514412612316331477437234537115565321621252116165142155432443221264255364675474317535371456777215533463143614336312141315115135721477614374747662775236137653546615616346742142433165772766344246726563567113341566466566532247742131321433756736715654547274172415536513711714714573251217611151625615127132632473122142233251444245147762256416712236453117145671315425742514425657426727745645666541235316651555617423537324724667772544543637512565741773465163774342137422564744451667221646336673217251536334712167123216733733453312376341731241354675611275543214444271473621757447231351736446124534575361456423447475677645656243732551537472146117511665354217413652645776112724176166714344416173376177712224734543445772552463724645736261654342516416764344547243636665753476561432332155541464761656464734614157222427114253763757716411113421442715627245553142154726231413657741634562356764172513327577754162245635253762473653225165274772237123632247577176421241762462515617113341222342275321521656747642643466522765115657122111126212476746622117532436337657172723362267251373467522564662762174424743652121471363433211521731563151557762231277644266247332412711175175321557535244177132464575525434367344431255555671231521312165515442224242731527633715246554325773324142245327423124631575147657172675123765627332736776672777727217732231134267362372173463465417413647154572542163362641217151122317425774261566736313444442664236162561227276211133376754234646655744256216136232672561324622577313732653467323572752714576756721313511261212572117217661566467422172332343514714646625713641714234556612374676453256666254446772461352611371137556354363641657726753245475422476234664367345341255612442224463416715533677435543243411643371743655321671653421145525613243437714657741135316414166757465631743521635632464534264171231635723315367254333677435245261453266416355463125426462276735214532572447227622315354515427332624775342453356626345726477533615326262321745736664457216262554427236472575462357726647756244725731621771637175217114273731522326527617614725556556277573566122713614776577355224254125414327417717521461435251665371752473355465537517652571577527725165533271146217214565644526512337124553777522543311175661433775111456756147235565776554637126747715614517543232123712466372315376176451645267512223452223553315235214267127711323677232571231155565225236241462651674263217314174617342355324513714322733675424276132351223764366627234424266616621761222622451254267732457341224434556747215324752745113251473147524322544317724212735452423147731574141473374126421167423647633123421661321633675124177563457161344333565662262764415354722622166423772562117217741417112375614467766345545575574654575745627265364222177651631237726512413342172615136123376322413375645372612764616431151124356525372232413624274157254477125677537763124416147554573343345144127116332123636613473127356762475517454655157742372714142741321761746423141235475575373417541651156612435542323262113365252446663445627565736346641376134371157524417376111736523563565225434425257126746233716374653515262524453565571315727661356621556741426776546717413471536331477315466467344146117357534476551613451431455272113142236576563543112254222742352667172651546224535753415623157436346635721734477216557351565522467463165361132743731665155731271146555324421624221476323117146164141663445441272233755467413331644144411245264521137577547173377113573611541332334424312311731643222624671124267722452624717114347622321544152165434717371423257343474552367615441252213464624642112676735115663611123462254531153244146641541133355614241635733467164161345361515377124111714353373772226745135676671422624463722321632537244134735717372731333475651725143556352164713326443722576712526114741346651372346547727637713633241465462533667645631623725317743712642125424511214215571343247652247463326716121452322566112276333411634434437514641137731152124554557314767152556671575724135674372424734131226175365766513463122364666263425336755664534174517635434454726552357156643443134726663432133711247255231476711423473657753363517534341521422654315773617157437423247233574762434225426524466642255311551161434756521412162145253215364572645242235266516722542163532172376124346266237732376515172312641454221747664667711663572743227476117225313663664763244537762131752774625225414173527264173316575714561322772513275114635255135635474535734326535446731547362766636412215747534377314461321626411342574371353633754323464457331566736375433125424146425264227376372142725326261615541461172143674111412155113274251231242556135557622231642352761223256323141735121455641767267273617543261273126273651166175235526573113243655624273321141754436425147363643444175327444643317152755724412745364227274661322241336142572777546372222711732355412435517717764615737237234552334566441341351131535657514263425775742777234256443221372721264164671172125552426637777362421221527747143627262765764634275221374461414677726225125627237762232571643433425347141524657557613252357522765531446622417465476715333224534216453465637765645556313654326657626275661771565342373557323111263273173272351124345723144365525736457666224346173574112661442356115114146564464754565164141465416221624614264662342157674654434457543235653342576625714313145522575231617255535421111652166542731643145273745516621727226214326574121637244625571713724756311252763757763465154344557354216335533722232561316634422546377133576112425614136633314661612624114136372253566452723413563756371173743252541417612343523237266277673232416657642166452675635464546272353337335435372663356735613524761225351734454752321233613366655116654647424713354476771447326737635331464176434163774737172666761435663313146465156461471767667133533254561336245114363362452354757364734277124625245613252311115743556267172554412174522642654552736755764253614324677763362747163751666423715531331226656143751467457411113677622644633646145214351221433112114461164352365727455417653165475245454212331334362132111437127733512332465622351554176243264351642165334126354432732765214733136445172613541213427626557354677634445526114225571673651576365252715461472135614113367551517335547427561774666376725113153217164136124225514333336246563175213637531354735471134657636257162564441676272643166544637555654734477557417775323271664643421234675652634724545275354151425537331135421734412232776325656333366361223425756113413244132765224263225651367312542277513173634344676555623745122332313624126644245223626312124241573765571465111734415256352116356666436415336523265112157367226115152732656542761572776646161612517724371166464444545442341441522625246464224771455233566524625276114644465766233766245211522441442747476375121527434266247475432746676547462634671336253213767254145731161354644177725355754763316123321346154554566415322712244255421655562151526577321612226654416474353577563332363464576565336115534723761225444113472452175716673274473625373773343622133644624244723315755244612374517773565213575136644362153324714624363124575377363733141573175576226547316757176561716266676355271765717624525415516426315133743151553434217751542514345162456155242526341555543623457265434441166457215252136337674634561134353111241757352225276171451554212632655164723334165165132311731124413322613156664474217532546747571123325533532262613777143651732255476263435644735434442147154261631566132637344177635252157676672751665167223734621435653533523721111527652145647623312775347641752245233351734116357457274171377614426663765571337474435744273255531337726676741712454161512321763135241122626711365614164427437144567763145757775715314156722726314312627426545235177676512714545115471543316232151241112323661512263457777525133246351624373465773352241334236554513714335613524241374541173751423634472272445263312161277476642344175225572217541147266346144277711543223444331546576522436756151234556114557635514455631537555771555557135231712351345412376276243121734656661235351723263274731333446725714246765176426136521655221233645451241751634547423621443566262737154253355733676267335514433535553272546331722651774456222575453613166713225473563231153334762463611673225175354577776332642271611772323222657347447374511131121311442164452476353473764777121341326624372633467722332641553721763656475652231234467663742433541145715673736143421471716152426443354135447445627151361177341226543346722676462311436547465511454773615174233364431314444234373175375214621356712153626243672313742563365322225432724632232553167256674335651334625421544123322356337772671634426151345767321556422411617673446355312377243412254526627721454372742263326751116562453544511142346676341136151146213661332455723613536653477613435133157335237421163662242223667362711745567643643341665777367337631135524677273437515326454371374477152543653136177641416256215646663157436731552557711635565352151455421425473667771755535462576654527553222522422626473252433427273257473756221323364671144316326635675372115256515276313143676661452272424331213742772217676476553764246563625122422553434474372761524374765511642227473745474673755575273744747352411126576276573464115513226255527723613532523162613353614543416311672266542157341517271664235176266415461577545616726725452252177752417651644436331333761315425613764143336673625742351322164755244761214114475273337473712416234732754456736656112261662733667353462237742641562721176462167216574711725312561662172751267112162453665426565664163271417541647224474336225774324753215261366377157414336137671266511346315136234215547553543761653671641364371622477456133321516215361436257351522566473626717637566732741615267337316572313376445352546536445472332313543113751615751645512353415746215626134115714277662227571466421113125547332751741262142312344365677553621715272237454715132672362351732143654117764565372661111355557654332653763431371567671735474572326613111455516754755741621411533514735273653451247754756126213554267777266544762651467372223672217377337374712371441477532222452414456317117451416466552775243415252723625753225773651161676157574176471276531221626624124623722432412423215331522435136633334571131374735672754227743646162542756726423373411124137424442637124136712231673714331213747234257752753116366551325455142176534433122433363252413341156465357733335517747264344762711647565477144514627657224713225311351731135515271276317721443173222425521373222352113216353672335567243413625264416121666346673462326657253172632544542577561737262151116416673157634125163355374513633575464772166477315534464235427117556266574553515461246552434445514443333171552232345234461144716364726227476522756511251364156124426341312314473464572632451354616653125355125463254431615732434323634361273742456722114716353614261537747444622535746331356656365552657515266541345222261245124673251142671545713626755762574374523137226314374765663473663322114317242212533133723362751313524254317527774426622367466627262527251234343776777246475276316661517632365766557613444364125174265167326216265246623342664474123622764615525352245471671457762445533235117635142522771745143421114546257333251432633731646377421215143166423567142556544475547567473612655343347525512152637625774355654477635711561717274167756525412762146631716217227635524571233441755652653675537534417257214561557455644334127273534463414172267326724466162211565135476726144267261546556671147553313325243672611765733723727125457122547146327426223525131733662675261175641773635377723135515715425526422413716637631254136537471364146471711515671726422215345314711662653144524625677131655417117277475773455741647642746621533653632522757565641636734725212567752324623671575552566272732177216441244425564553133653265476511366512254642421124322737717552717562727323666167433537627615116275366237627437574761743745457266126152154127167575573266233162175774211722642712571127134353663473125217413774154377473241547726427242123513332772643156333225276323545137463653147365217543373136512325354642266325746124555271142415244631156712525537314734241473226622127722273657771475211252675476777713222517627766571535116665466566712474455453333425326374242132143272551316542714546477215527734254432562447541336265226671775312166334612665717547353364353725333257751137722175134553121334277526613635527121735474116143663545436622513615711551152777356743477471552143755724251442411316656636724241635331665133365536325317211725211735134747217773634465417611423625342136761777363732664666732314241464363462527734334122635156673641311756132255621322525334213611152147164312173134417154674176374411527241561765547565145666526277352316554644432511215114666415453513552347722362415226615456333724473537431777332153754413456147471764721231273372676451725622773111673626655316516444445331447751732323322252123761336263446344556622345462775474547577734671356331676345555416172242144545662537526453331773613131245722512165757524241351642254212115275575264156614652146255126326747726446264756453657525226751156747526434232217566431263261465253345131565175255131167377335264521334522342251763161232174725476643315552771176326343663454135711343222521522564531716255757562626341423616774441432466165243545413446136746472556726646462747677255752755536114727524364667747164673162555557252243511271115115574214471247276422774213334245636456127335255726336647314737633461412445273715737535675212364645775253772362156143633564713417177735334463772626212672274634554571224672273465216577726313752431554143463632564554456316614161236543273575745412157711673411443327741222625561116177271533516251345466561447441451417464146664732417477444522567731117615575271352411366147236232444434375725263323463216333277434717547453162414164325352711644355342476114366665437376466554222155436337155754621647526475136344117633747645331425517361163711521425621116543615455523533243216461264464252543322164557264616555774334151435167216773713414352161635234316116147137532713442667143567127132146152735337614113217575527633241746241775766416721777653656262356173323112762775766154442271527347771213421711622437275425471334435467731243335411527353723757413261165323555335411436127336477717126651145771642725527563432432334312335235412614466445671143317132274721573154422376277375747753174615166373656216135266764661272563472232636561473313311671121271541164256236375737357441563673667766424447276773121175253435733143675342373272574615432216622125515352672132423114561773656177652416677173534756535745223134113364353262536343227623545751513731357677264711433425161671751345514565513215267423243422521655446127577212627773216561134232676617567477752763414453677313513374342223311527761437137151341617445777232415314567573472647147114674727261633472452133217214326636421447433764132534166711543435361534577275622765564375463745576641232141723132772333262575256232266314577113373646267437365112437271641653124571426463322233376436524612223565647676141454723756631222555145621612427564166554351563747464256447622661317256623713217356774731722322443462355746276234144641733375641217346353174721435131225655441652727645355656123645757655412611274261717515427724531516351652161417622515257252724176745242341523616166524553146457453171445417177626411276472251227546672454555457321441411546751645534173441325367444575562467543327731415431356322163741126713445531511355313355565153274115551245426654316654443242572313152315147725566355721446625166574626444436225252643111674412451143621475316744241652733324552767462521253157473561154425214313443615133331417175114557567137574166662236467576411176766762151561456612451532572673671411726776233125373556625125575656141757564177737215261612563257265362431252155275614716354613741461644152277611473214753555241321314113442524675327744331745277242753226572363725632454561371436524166146375577473631421441623465113117751547717274445422413263763465572546647661224776356765465125574742736724757561415425263665546154356252746125156722447145712527164111275211627513756754545737146541761612713665164162647343546433533613115574432157234372546413765465177551123327453273356327527276175154155427575115332155241267761575214767136536473712435564664655575175711564524725272167646243714613323412255566527645622655246641162544162552524427313471226272222565115354645211342712733544775245165625311233267467664341651464212114535751371341336653747117542152536444563621664561276316464512165632312613713361577321377147356152373563253422613656716123751767237577716461742336341143557747662632644422527752616623371464354547725476752741333234554514353637643313417575731254731573141434437771332422116233635176413457224133356521743667152763123462414136455347433732631246451717161573442376242654131155123126235316763323247424141367171512336166766217634677424654574645272721727652536235176655344731552754166144321154764752515311376674413327762716416125276127267157611234143444426427147662721746721144461745516441356444747153744152522536316253311266753667165663256333173111533761567256276756273137356777144442632747656665425732171667515253546742631411262765165253334162446333631173121411236655322741215242634654156331445433274467472236512271627652616443772537671745715335336315415452751234334442342765632662343271471524357133257567443541714425656151526531266136173567777542341146121674112127647236225163426434356556156462356372133733315151626573412361426366511115537254437216551176252727771221174721565616673614621233334366565277355137717317713236552127117537565411373345347663441754276141121661132356114772355554373111324312526763614215442331151563616357632447122652317652161347622451345611723171343331547763666124261643745456612245332342637543262465672531321546373626222215445774574741773257136412335465342132413217221547562433666545362575156371223471357423721764524774611447672233351334646636522132413566655212531673451355227342413671657477564563221356171735216615164125715573136264165377221271627422334173427256765424451561563635161572235162161544411457545132551727244764162346777136123726115376333132441716676713624317337767612215362552353144546361224113165427366534162417763112143665215746674651357421437642266555215613613362426462636532152621541342633362443472555541155247335452644273336766255743241676721576173422156766775612225324227311227562117115716571633466112233255245566567462443525215135242661525364243222455722533355162252334164671132471373567125524152215735414537166227576477162667271174546221337342221162117416527737474326442567732242364424477373343166744214126434562244675726362562567311722764444767461353172471657511774112657347415443744373461553643344642617651425733364723211474122427771766241135363666276455751423334534357553222612442377215347613357725664326577633274325153243672614472124774771431153671125516766347662462762135343522545425214252141376526121546131425257112546754734775521776622763612514767665371771543754536736417762361367126225473171564461242331461427542473234445524364321653133276252411145622363733465454267517334666763544724427756645263344266766656234635477476272621355164762657574267141111147242466116675174254615621731745772342452242161476277652755262772235364422721171727726233142342575424276471412624616541146374563236756527771262554527534475154317275161161277475741124664411232163773171233172775721471141254472673274426635727531671715732563772221763646443425426416213562762125313677654117752623655233423644475675764565572765462276531736466465353633325633472712665767647515433137461164424724213712166747674176145363745347761472672517677211135555251116125364455747627641753642361563315233711674667653651435763752223735346436225173517654344652113527344227242763333422155554655326254615723131566727345122421245764454357662147653777623264312127576225314421526127171427162273353215636472453456376352361512266477272253427156777644173266375345266513165263274251772417357174624474123633242661162233361462743415226573727316516641277336533274716666172123175762222255137457152141161274673413624741554522646143251271752433615423571265351266613644143316666441117336763723613371715336136162174221217623114554746572414414743476411573715462257747221654261627562631342111437335456546274265245431565176232266733711532357114741736536453672615317463621533321434411466767241172742424511164126471547346354474661234616114427476444517346715524537232133576446314654721533475261214521771735576175661155315134256621131126775524414412244756324326422633433326156637754452323756627123476127645622627266531236732143413325323215561621474627432737477633575225713766245627574216156252532343145553377253244554562526772237645322761617243712472644444761655377666166722515644122577376473134212721732274767513763123672376636132324654253134543246446777562514637335143367143467434333223463157122625265172451523247661247556561743671412657641266265412557445443133364563447676535365543411365772241627375354227766434115144734151254213647463353326637444157556673235522651326542435463117255756473154342474352525275526635432412627354624362534264146622366537723141533361435264562554613666662176263511745675264432132527417727535225314163722464571762133235272634556175567637426524741453264476145654544531412354151235546215132637273747727166614636513444157342472167762711671265156414121256315614624125215424342272525734574266752464224767433553135532112641646726531131164551155747362446544455422544754322541455474542526273647234532375662627477264337251755667264314272474453312135174163543662434745216653335532451156443143276773434313755423577675543267511311763515113756345235113441513554752342154451274637562125317566265321626364515372357563413363212653746675356276445313664324644731345335763613557212617432716423667513322623261222324457552524723764327511241454725353331614475715447331454423115744377451232723557522671452764557117166371513752145424451666334356375237427726343775353442376734765522453566423712547214343246756427676365236431714726452117774556657526332276376111647151752331326477223553314314471576574737772632654242662333764244224627621224372127227653253517332714716137567172734721257441363464176712761772265771215151221667471211477617137637747555777166227242312413417412316474164114125243375645217141312241767311622537767544374372424557657677772365274343612443676354341342341471347164354627116645212246314555511526245546541546376634574252743724732516563757517572242577174475712254143431412462717177116546356665221655726276466316416363221211742227123644573454324354677621734246241644225564126643333226211735552737551337742646362723655641435643611744141245264475154552724611112226624757577246155442634327531753544143223137155732325767734132426243465112127723145644647354635452732643155157565361756715361345542636345752142677175676446673557653617326532613733614571351747636326252235527222474254223327373245273316271213564313745316347663473645575616375137333763626525255553332734763567423132315276714673125231527217242544716546347136432264346466424672413251125131164422767727671462633362373727136571171713773143326644714416423413613724325531273771471252225565765451172566616227376424737416115752153343124156715751543475425124422646272616526314362741513436162367276471442313742147427172672737652631666137334651515614173376375561541553426273455146447117131676773241422442111624572672676677477115161225536512371557131122771174572745512574633611726131421541231325277346743344446261324471525661417555553716543373544224366755736115752252327561736541317226141162551616132227334212353375211416765167714137273725163413334465464173173527446141557121444714644363712364331155222235472774572147531767434642474721551661347454421521563352411213361361324463235417576245376527747216247717233115164111552525612622456451375615413224261452144327665543513313144456776244567233223711271431735562412337777132545746775142244734275521632544712616426323457154573256432517312462445217554661242676643225347417743475452132265465451773621561466135574116236775543753336375555351241553566455342641373244612457574752237717643231251674366533624311445455433765214265635677273525761545322621532352754435564156545731672274351476515262747446223626116526244315376124421455271573433474331763422434166144665746222461225433615742451375764652413553716541221735313342142621772457762545552666416752377452552121126363152431212177326475752265276745442626636137272732527736556462237511415432351565731744722551115267431164332477274311773367362227152172635116226647656275335556465776363273726614712531455133172513553774276277567654122535235527175374724545614611234421245627737477262657441733266631665461453412522111745151411275474142126461734336334742273333273527631677114531374277322766376657554745755432511121753351171657645453151625765166175532642131135773317562212621642315612116133733354434644146242514374616532135463137625243266441171652445652537134126654262247256436573371443557371366675112141774655124372657616636616437634144533255714174754756641524527335172427221721336745742115576631431513535737164161664266656542516677263766175424572322271145336236365565474256626262572517444367215164534351254112253435571137762661244673722332656243714126124414547131522765163111511123146517253377362652477112162115512472311742667145225336446176547776357554644561414246723722517511556424227676137455466151432513557433755135142117555574757121577752467172676721117756363475465353611532713634135724662223172637222474676211515416765227637122154233623433623364363125177723221554137513176534254566317371633127634516716772411161721657754455551322234733314413475512621357144167423717457217551332624642655215146551435457535651134637117547463332415262246733157434534512457114456174437224642725371153221343671572254367654255616714346474673155372737735344234146573533133557277473516434766413362645252437561527211145444415733231157334313376326432316746553276315342674133165651172715764473445163464717416274324435323764422342627221252272624366232527373437521634752271464124146232161543435621237446525221525542657126572263317443434357342216314416357515255123557116133465235777646517335147516636543772435336323215341255145131775316642476341663316525242764165715613254111371543416344442257763453771312542537177723377615613262652623211573472315734735616344423725336475135475172574456312764365121772576435355425274135424763775114255137754537361173656365655566326731136612751762256114613562423317433414772161226227721267442764146417177316422253345465531641456326337367223351715564346544672624647515531256261157413467257352137771663672631735616365314452655765144524611114715645425253452147664436737142543447121736313421526152155263357514635622542224377225524344671653245147314637477321174537227216644351413277146271311764177137734562534164171121243353164777112561145464213315433761277677611267465243654315152467711671662721657375173524231577461662752153331411117463126367247435533661225355577646151777635667544242264723672556475674777467545251417112513672651342132261146664735747311517675233345456662451164661613673174716252731511166265763156356756451377612654773623512227765754721251131437246432174316324713326443447623547523623365217621354137475561245117423751673655173416476346363215157454543122731263144177747351266135512235327657174623621655114617572636462346467741433532432134174376235372347355531114441753363734757521755712655777345432763475714765153765144134761434734264774473217676323745445522224743544315545636672177734525747454121543231124174313326671476554156344757762472134465365436473721745353343513126455324777631242337174543134435374126535632755322222117313746576223115712176721153465417614564417621521627613731417142743512363245336422424117257165471663711446171744325626645765434624234362271415137622517217662445167627757227124716367422377654373456363315411122661723164152512157726357131334532635254551133351363222344361144347254543657115253566723552576322231725474424231521433772262115442534373746461644116317637137515151511115765151653625527434534342414624412226475151643626411154324616356672642351455731511516251631576556144272356143124316143247336274112532777615337651474112154173625171361362114112261663111422123633763131332652162361672146257533142355512776325444644257715752376544234525367146542251251767211265527363233346123442567775736145537677233456472256326337732747533433446734715222244717773376342624262174675427645465466617654736566616475251335173641633531235175775556473436247645122474536347732516457123751145541622374327423515464377775112667662721444577251721461361172371461572147427435631777136246577647736234375242146256152776747744656612232157373217126426434322716766122437367721644616452174215215736361322313417161145256677511223242474636217137333743742613735343512366227134266673166361663521113433244367176675375134334516627153317157151747562416133523476423774272117214353435241413164646355666217231657232747121547223161651672515614646134757134257565663644136616412426735152467557335732455257221554466375455533476273537365371365644663441224465324567716546675371167424656415156646641525524264463446133174522516373456227756436672416717472653523162715174736626267161131327611321621327744525545454567623523766747113216572557314674767341741546656377361535557156566633727174672633761745614532522374775616416572261364156432715144545437371261417646454237537255732666535654726613641373447474276466342131633533121357716665416454312534621374516754746636476335766352154274566463267153624656467426523233522567717724326614663724517124316675665561333135523225776612454333723773725342723436126116445111413174316233345671523435363773244554115132565356541773643253577245667574653572455566153467757665564544133414562341156535433533372166512154432767716551434727361677662716453741743522676462537527677717765252466142242222365337331322331757216224357571621563627753125313244256524663166154537526757572735554425215524421165137744613727614257171542335433257254636342442771711276331774433557244112345645746167613124566754661412536422227235137533113717516646134675221254177243554265137125721422254462172136374132535557343425632311512725666361655332477651535775166472157126174641277174241732657516726637657243353372127323517661654451446473132362663736276175364132176655251537637223134754523225436433252434317432645454127452235267415747412555653517332267312721173571641736624175721247271414514174252264246547452566617757432741366515231136113453253251315471441322246362272632166624644475652774227255416672111712466746643244576623565365465667136643536244633416155524353251155751344361644315123714333651176675741477675225741331775264413373176355246767664621721651221557251716643442621313415473624772111212115462655715357737312171372434646415773474131244215526747313717542341771325541261132737661351246513513746423453666153251317544315776463336573171717235456432773672547173753363574537376141353632717736425164535117241754211415717612664472146557614673324575376357555226523412472262424275634673541573345617167376551371775554132311546546454515363412622376123354442215274744463655231471374741476537447134614111735174245632112774132156531151365764411274474513311626561577745434216345176567232313272453556223745671511571524666175453721654257641622161144542363222524712331335427637153426774417672463716151623617514167166441547617221227311762654362261246332423554677541731226655115232765231616377353467511477277722322755235165724373253423344356571717433242745515724366633467241441314631245115611347254512546514744541765476367434551122316376614362451231161133617623154775755524753117125242522515243632441223622323246162255547353547114336622263521321645311456643554217173312773225211753212775463114135366675211732137551651531733555225275636122245323427664677154776716412225551213564644234363753643625157526656324712445263472167542367442247263713157676355565642172146454313574222222141737424624141776331722343465713176151433157247114375432712673214221365613637552271135245536151472542333626673724146654446355516772125411362774377377755712665454767647717376737161175577755533243326327351343463464353352136562715741115143522272527264561457742456567474756175251116666733721166755725513333161111771674116336144735527154363514715776417342265663534642311652353762744762211716463751211471546145441131352464322727751311465372146353312651223425532664722652166614355443475137723211524713222123542326665412574135321711244455143275264645126621542544762531344663472167611613751344753327353643313633635716313341146461326723454146421122753417513453525436775371233455744214366744317153142512746373271522362155616534731222526345765741267576267232635167332177765663722772537554647557574724722672174215557634332326371712414765266626313371123275234235566264114667431161114433255772567376727475432452663246464353423564365325262436626242117445111376745566316573465211422566271337244723655636165625761246176333267751457332141523422546565511141145372345542634216553441322535542273646324427252127365526672547671364327772126241361753743217221247762773175721167356653315436464564653173676614743741262725675444732451142742357643162364254731344672126214452556256425144537673364465416164352266132655241321567246671626455574411565423556534657451443477247622712544132675263342316766625777272356661253672325567466457161211347246354555727667535513621143316222761547241327214775467665115742357435463514636446216275177773121264732274171735655574424315626136643264573566464145576347132756743362632222157675364331335544541267543776115274633465532426172322277666411237714263745371127342672552533546541356563414426563753222464151745164152324777656363676156453561376614246646643411772671556225265155673461345626136426463375114632512161216717734665524164676472653262223124136525371711377357535154376622334217736137161236273711441344566311323147256371211623761224574436457274122762124375665116566222166217622121342162761461347262413424415631764263452537754713353525267252262611267433342743471753672631147331456433776273432532133315432476434416715535112456552123676736612354346233143317376472771615676234661513727252312353463563252176555547342477621146325774231541426313237566452566541331764157333254516556335514461534634351474623275243317751531574377625165457116544265164336427157133531217331215634532176137135141435576522643435712222234241756212771644147574475647153677716737127324621712442135244535535431442413166266424647554147533365423763473332363141736433325765531147517143212627612567211721464527462575727311273461373565645436516765671621742321461741545317367165745131335567747144122763612727625521574344357255656156346652643326576134571526225233767756133565545462152324155611377314132511375244361414232722253374727162331145474754377673727447253263325532372677347327733777734244676462612172245311274575567325774654155365413343453144622665377164671431111356714332125313252172452626636173674347542213622232471662566476777634512734426752122221577441447443125427773561713245325472547473125551641331423147572353627571722611665737272417477735327277212562562375316567547533455415336616175325257145132116443374247131647612331435337652436757475417515665132375132216342337367741722511313553355476432565615612774154326574232612554743444335646265717751565765233641224647434262772167157646553751262547623251441562616763731446455743625253421516776576163341116773466214566546537517527743165775334355634621773665736744353242616334231642733432125723457165447312636622226561162615252271736651253145477356365656375524727715742347127145615513543235646731525162175112714454722356742734217615235647737566371426223337151233155752665735555737653326244267565352652444233726174326353671641516164237753354255621556136334414323655754311137612777613555116531137745366512464664666233145632245133562553732411116643347743356773353527732264466462636632251267526167714322772532114711345455437237347663172464566277333261744661724714434573362322255665672377573163647417655317445325224364333553236161176727774527241666333617133153173174273545472662625226343751371611321776547145431242167554525715247247225122664711211267752543357314336242441141363412426674233365731665121244264636771761525154767746561674433126737145127736324531471572346657544541463465337713254333566344431716145424251352671323662627372462317161526653253215575777637176331347422427735366137626722623675123275341435373126111174276477321632565632452673513724545426467563742535163363643355132714544632346433333661156625422722577174321263536716234225767273443554125155427432254776516535111457761516361424552143114771472751641232157113561116321127261576554616115127517617552653773152732322222745726611665744545252554676122426327211261775452171445137142424247277316316264514541554572744551571642414342113577765336542321472656231675176466455221215337476674617777521456324145355712662563255355226255116622447332531217444262674632344125473437712124261626217672737453323776777212721713624524137775347737537551754165541234646765412476462447556174752275562457322663432616755675412621411656611171454634643432172355516575466575542347743276326654436425155635523141234655421416761532447143735453466154725757566742216233625464733541232131217174325357633572115552515731243364717445532713333772364176324642434417365575731442671377243547114465414164716243443675621215325664445165565423767346742153775674237157525477776643647266557347674712675445545331724134613647737442632477264737123636231615621654741322347633746232264245737125633155222325513445664211125146733342153314166442321653176512515742367621437275526725435226467215343324471421114176643464334456112455215457577211115444171636557714646374464475525362172156633635432273731472263723333442445742514724336466574316532117345241432135551526516246123443577235471613361354325342264532173226765157417654225143361633243557355772133722343241516513237674523332646231576724264755277157633275452375455267577264124753137366144374141666757617412217434553366636434632536536467622574242512614441223377362333324515233413714367373734774336567232665147537177247752452775743177266114266317244132476616374673523544154174727542613673632223516252557166662556137437113445635542637756636224141113716442144522724111175727434635347174222774175627137642615272135746477571222774727673275125231134175255267461763763413225641154653461211261367577137453257475753423645754723772715753372341757422726614215616216714345671116741252744575466276161634325425432441655435114144165147673355111466564337742545253667741376221467246662165242667347455416431416424422522256555613647322275355321652725353242632227263372247661746352216624726332267521134722137165226211572536665647754456763663524344524661766453551126725425677344716416575553721134745577351324714554434172413527124764733154445233576327571263265675377675343166456312471416736535264355223442317341527771774657476235766322563431613522612467331355764717265641123474675245212346246537466254467137521444265332347224264222671675667634363226564576235657157337737623461124172453216165173137233135574726327565125744644151173425366171724772425311716525544127756656761361644466576557325146744732622761246526315263216112627222515123141713553411743645227262434346753764443714227575327345622346235544377612333473146174755212136613344434577151555515174624241722256623573511777647451152567761226111561143242347375313713612135155235442677724165637221622135534466224515531236112145236432226665511352144177772326732616131127711137244744754216173373326542532655612317716336347571744717264352242573564546473543661361371146373553133417457735323452523641477755271643612715457115361654625622362546147331716126756133626412657145753716111622617523216157334351255457472474766642373227154612737675545124423411557161117611174165653464136471556666117771121427215644357336575463265355466531573451725752622451716655414471661136122737223561662657311751231243256361413662151235267465672636253722164553651613443522213316134637246524113313657231453723637424432213635255552676143455142774347572165514261551455132736136464543153544153341416222416422312756454731357615747171342214445644512376444545353252316636473267557111766433361517741644515224123233343326556627535622462125521145411733717573665356616737712717567653264344622367342154245546425514732575256425541767313251134575212361117151546735676325621272133361561416553466165727673634736256346576445714522425316771374133776547525326771254125615246662262257222644434661312714627415735142154451735525555166541611573221447116211763541466353335516231466377221327615143672346717642172642554727777475176333143146247543731432533664514437645351215162565547124572254626774522553362532325446117336731621474651211514647423424457454536576264415567243325666434571145734664325213141663362125675123525375641461715264513736635337711451346374315223675272754627612666123654324137527247445126171477322611352755747664521344365525657152216315273161654122457243122246356311221547725527675722345461336371432516572455446342576345411351323674654722667425674542374341473163541253542625315161212655135344611745323615456255416665577333724131774465132157522527261235621243454112635234325467526642425452137442744567122672643637163641154121225515627226313777116462477123246137722134775476317347427542276711724327737677542467441526146157362625631721164244127262116615633116711112112635256266316366162514374376617713521547417257256521161631422533116162224252371254372366447614134142365112242367636355132224647444573315532762764713525751435473252514477666174665247245311751367652222212731421356462123331561446571713225471425355577133272457347441663532575433222246567135161726114466647474735342321233731245755524521452254611144376662125514457141276514117333662662273154433346456341153117317465775274656212751714222623663543434355632464773715537723311674341765562142642252626612254444212212161475561677261164471136451761116246716216146374634141725114124141142764571327123531532354167414621217677653655341415653363243726741122737436162324212541764557463577712744763234546122242627567246351556154571164167423614762727745124741511536246211472111474471213511751135752673753263343724154445444646344445143463127413711565422777645422236564166137442521363674567342565443263177143326454734413456736473132431455617654357722377313154576642177671656214417731761317776673273263341272642636735175766765374624357571756362156755566464125627255345534462677575355333745527656413266725316376735567164756735715234137562512325714714421314725632455333674137637442113346157644711444144551444521631366373351762237643411456147323362332651767213217541626542475144467765175125436314376364533341711777626321275125566424177534745746747763122525314256676753346253257146567134655322273167335354662617475612371132452662734563142434414275435547775155467245462726467111653326427346775721666272747751235471454571462173353373477514531412766347377426165514755737522663151125746621647412131733675174413614423426612754176162543372733435271442425732331347615144451134744711354746272346431246724726513125353146777344377434325731571122651265274122552526251753733255444464273116265541365364677326263543362574624372421367757111721374532123574244417445543444647677453664344661421376242627225325263553317716742212737311444175723312632623631751354216454163756316671174457455673334272521216742722131577456336653474665725723135432611565432326667251752665171744125325251323312337336514436442165616434576226552614576333171376161644423355122414773737546577476673246573416651461164757731112663311167542537676776413527727126557566552735625626471162765777554534472675461244123233431132221673443533472437133546122345651657214677241413525173626742641625646336343325561461152167253335123165132363252231456655673237153362175344652274341336136562466635244611276417255211234773143735652433564544453214227727233447336573141416264576337432455132155635152314344734661623162765314116634276623226725177527625567161744574476722624444417313251266264755314216572135577641157116145633474126776313774757166116614417156662461313612221341241233674612661737271562125261215337622212561565524674216635746612774135473653346735547342157731141563224612346252726753261254261356762462627654755764312537156223223363666644242151412755753615237567775652376423573772567741665745754552772654343743122237435234732327521116432147542674637544247412373574351664531127613767374245314764313372666167762457371136677475226567756676764131272326126755511467565344144551667233744553433513552315723471471524721516753434672733625366325411122263172344134347642461234175117427136274771534521671114534354326343353663146617671112555214756623242447743724134134323235623424732116123516122435261613466141444766577142154437266357527523671466446364672355474322314267667136763633324551317742313623621525534127352631652766227524715261745556524777776215237213514444631376267661651413346476751324671731657635624116333212177243534736125117673413357571112235521114226646727372627776721254736157563457453312673564565613316233372647625166345724373255617432162347331157115726556115667543641265131457451162131752641524121236153317365315731136312575116232147462322262764271743312724637154133476525625446542772374771117422153145541315261472523222322265514127513753462632275436651311772514474762441733254627626741247422161667734137554246231735143124233322335742727544556652476677424766232126437415763762321212265664516131765145555243375527145655337233423236173521161654751656372434671223233515535732431515346511272234647211774676152223751732162324717732743423331653251245453515215312525167534611327445112474325257331156243623666724446725441356223447364647245241626427253222245471441146162677172643572224541372546763571762711376755327664135222117457556161321127741721533366476544522441563515411524577225775643326672141423274445135161777664126727225477627264161616726675411413334765757615425617511471342373637336134235171562553633756126513445352175716165342644233254235412331541352161624271735243766536163241416536511341543471776652662317547514476432626256355344633174751132563337711635573237113423731253432777767745524251252614221236612212112277161616635227643776667121432562571752756561655155144765131221461565174652137645343141755176136225735432545632576713272611635451363727314176446247677771255132277613634335211136236245374277321411774531252465317333263574645127127513621777641664314674362274117277463674657757371711631241562612661251637635566776172216376666155113367353143753663125144723721542111147355563262473316672275353663661737526734214536637767634214412675557362124477454462444175446637574444755435564233471117654557426274671453433757247442347715651667461446272461524652125126514614643717646726271756162674666347144436523335255354363553351116732566437774521265715263617731633213747157442561353112314476462113411526472152211421662332212312664747626134345421517743353425715312415327755617662775324756657421661423317112212311142631426461657712454454714135142325477256344435573253753566412545375433276643424743257537367653413347667653135633162344214163543217266145467353772226756366554275214122572641241454241271765416327632123416423471125235445225141144466627663244345172646362176214652634633356614414711741267172676773556714776457751256265315666475153154654422437545565236115666463762447212364452227754654452311711166771247715131236524272343534743653611771415637413233376652446124324515656332313736366163431433275566444271443746575523757234555343177627764361157522231244531354675556566216334416631666341577357746725746512353237335353533551465351164735253575631567743312467326324131657131734173111442527661525237424441454153475552745633175531573231476725465242536331632414774437461372741565141663766241631363333462776146663643252266261421765223533537316613341551376542647472144417452354777255214262355215523365433567271216731546714646411646472771122352354322332116667664535744267325452325451153742737513417226261637151737754342556526161214122215234321335173347232141161614126653424551367626531756266456752757211776125221763271117666564772633122745476416136351356136536721434532312263177736163116772675131414754273513627427147741232655137535344636327463377474521726531415232735677736256336711273746217643136516571436453363473711722675321162153216155314744245447531352572176521546216774432266242216477517452727557541214422447562542534611274153737162545772152346632212433137544462635446554121673124456773147425711656543245445757435436733775575774551276644444426362265565245145522733727365747715136574321235611223515654451542444234667713675637311715543611156571367372663565436636413715734573732172272651324276151552365755451572132216342771777755215672431627233455311422612527451262426622645223145316477663631146312275352113437261131126422626457617456651334453556771633116765165132731254721216175362514512211734346454757271127647137517732236562431245266277274111162265572352525633561312432153362617457724177663231372646263412663642643463342676135433252532622371474742417677414357666741332673644357611661743371467364531620325652643133327667636776543645666555151474627776663663646123633672371647341341131437713736311672153137164121333416417622544745152465474126243625456551145543257526466717735227776745763536165156715626723554555443331515434133734615621166643411655125677414621213164212776431436142721152534565774325625552725542633142326775576331123712274667164572634433314151153454575374323172265542363717726373164515147557776564623224337156575346764152742731333765417326315732632246553767132431362324345757344672641356262535564116534341315164262217345511271772756312543343771322255137367361666421664321537653711634654623171643643366532631242324223516215423716445212574627163674366127651252116741222614733214732554542767112176331422214536143427275374424626561633165641665247357127561354133227637335524241177223162327143565652615451165115137357522525114612772647647462365323214467272653273451564624162515246515535133343623671452752342257147523326753354554612122255574417473125733362146537753111771463522245741317415472371512622157333667354524676437656641233441576754722515374247146132355623762677413654314741665411636631131337467757477115264744741634147173243241111232751346154351664774332655677732226464373121126517342441221233456416156371414466314467473635263235744613144513435773154356175421335735443133376277616344254137153666523725365375376223741354363652524137566417156771365532271677143455444376224133273747376465463631475125657464713417337315243437611324221261672143177237645322413455266415476612323345443265436713423454335136461625563172755667222671334756616111716217316274247427463271773715775727161612337372351661171473212175113114441471636744145324555656557167544614661554271723577275143743137521326375724227561527325733345321363233735547527512555451676432677122325113256247435263354331411533775616235142114633272624776742442323256754164661317572162775332464172717317116147217437636463543343544676677524644677664632215553136416316371754555443127451347662534466326424162647263237465353536366237173512777635161227755247277113233573774667677733731564515517742412112511662565771247727672515146457632131417127243245326516335262366571532645561216642624456175434413475752542752757232616531314145426334472611177134314371332157712644425617721733475235372676617164535427331445775521357551442552144777643116527471437515651127343754131451344373357431226542476174526565111451727153275143223232515563475452665662113611243475767455116565163541252464672142731616517567215572611166557173267367341241153632123143727726356225344571626111324737342445374335263652643555617424451616546173622217413751653515253353237157333564626234323764423657363411444133515441762462733332351611756462733677616245447174441443642511614375276123567611254437724375467721637532122214332714176545375417462556767112535736537323262622762137136246433225112744253565155271224132114337147454173353261722143557661425441576326665223315622277266442175466322311132473276315444277321257112334431611221162625346427536547774431431554663155613554637525614261323412177315276454251132613331474734254116726775512536726343423127634456352342724367172727371613616454312646732552551664614715376243576762775354622711413273744651452261451126671772753214611416443661127243122323632362663724661267413341642275562711317611211341271645633244723325346331452615746232614242545167625551735217725537712526713413575253256277171553654137627372542351725535556534223735731152345574675551335172633226122337465356735524746567662275227343423151754646232712771232743767332547546242255556756771264565427775763526134672466377535274657667556741653334573544416347726724772676663321717355137163765667277456454117177246643751267156115763527331432565463652111715715423716152216475243641743154646421131147371241675253456665453235351566416622613431717716543277735213755737241425616526373713726537234632666147622473433725337173116673172676771141514126651662272163573674663111252673567657767316755346636346455645324422332363177125721575533321143575741277437543246425171534532122727737113756373245656122616721312226226525446162667513164676121333254137615425615675375674616152367114164636327227751532233137467467116572545467555632174517555426426316653422417274313164152723665635624376437566142541266477777662445164731777733371421271361247423243547751643374437646166113155511166263257627372357157162477261477226444435464633752751121147377322167642572275612771722346277322541435776337117417422765615547134111627644565526562667662447543365366442131574553153242416464712552326623174452157465546475127465616511711566665735411452273231713774775254743445127365514737231621331146443716522667431255161352316532375677662261225342161217552324554344344662174641166377454516254621465753173651776536664344263655714522131517617462352717536115627361413665657625263574446357143173254643431434252523177145253463771376652725433726245341265534235275152363147331164621141635341177616145541515615416613677433553443351145215117552354143717456733461565227122277544151563621423652132555577727774413661244225614226375266251161632121236667452765736654463512614217342121266477213761437722122634557772222762712312455561772274543553165474576147316166256416263551261731412316447365174745564242361564635176734763673217166523753222616435432121422753752733242664746711464667122336624116544142457441416216212345247642537333512445527541452527343331635551322476361245274466424157152537663224242275135575446145752345343656265424236127563572311534361657617352676611771347562554274473553512612613772736116253615344733475576756367563374224514432144475154163622761421142432166473244663361662762125323465715655362751217377615111653122614411251446577626627532516121413746273341227113174141432334464173613337462463614421463726376215516743771241642224374676535356227124515542627142661362254713734646417165366313473632747551143537472571337152522124322417414766136316432551734145511141113412425366222577663217162266417742223141675256246476576126776673124442622551364144735747531431734417613167226633347143225367355115716236347144511424755673742443244266224147537612326116573657314644656274356331562472343642663261656615342376354424761455545273272163617247174557357424211637367475166714614472426352713177135775674575276646122147452762615426315666525512523741776276466232152652524415651355456416255377416774267621517546415245173524674575323325567454315743562235535326151512451327752656144461255716634615154377315463417756265676652454251512643413745152162552441715423514177332746563763352426637372554354427735573223541624616655234572344431112543111214575473326675732565517654365317761521762643555735515613352173172165263347635521213275433732353562211656642434566277742246574254316575462635424343231464345154524374743325261524131277734553125564471633552534247361365152363753512676253535264214242751216615276466314757676237565164315277637616537246337162157757411132234124761724541456773162743157273726426617265443234634131457567171133634763527252536152136276117224476214566473767575127737631663253775453314522613314317314463677316743375661251422253114563163115122442341366541757472147466711512667125264142246275313452353345635746566112337251271647176442245733672534766113134312421265521414714257566467112644776136617742443271241127132415176611472417654273237333455516416371551721717421653727354146776537575777271234342653712525336312473164214241765252554127552572732251762325425243521232217371565724112355237645331354566625774466771337262367724761437232722471471445555774176415442564776236466543411212511553226416275732761645216427517656211151161674273271731574465553475524634124555265462542211776447133426242636465324567122111146762344261453332163553556676175614151461647373412151435234235625532722776126377626672525241743516772312214155251747222746744424535666711537455552475613626362135734536721666444715415667637133726373114363247731561361463477762732253713236143213341427161177264611272435432662137413422521651231441523477777373453625271375312557641322311332576271712741672751644166237453553574675772162467454264726755332712472213412661726555141755522134373523165253356224742147621244663145554472737753567774666112672216773443756645235125615537117332141476173161523446136673523656763142662362343717632613175463353671276534762372354536247715354534564537137366524311225136763357157522536465347171124737526265362243517465132152265677663612351465156716632146366166154536663133557562345662611437456121621335612777244622214266223146241464165366312115425754777413337477716755626127652567177231464535545542333246245414434447426211656533166573426261634271154164273746464245671537514334451151511125663421371353254771346555537641531212232362726517654622415462655676132361662434332723374144432123735273461535371413132546312524741552721374143315537125745131634713125266663335711132637553636437752667667223115121414551745712717277255376771422553132336136447357316147137272551164327144771126251764617621165174545641352364312312173266376217573461717166517151371637456371261647631557431437477563542562712165752236112346226315751241432631426743563111743674572726151254317374562273317611377671477624256176566777432434573572743735543364342253217363633322516112576125563711333271564127411212472374263554611241221132174225575746454742543556711714223655526212261775142537522623345634515537655756562146712213537334124561656463341556457671254227621461557425743131116265212634635175253116614137331147671165657467225626516233256464354564252222353146716743362221565455763326653276161164324446636363172535523743161161533177152722342516362677275313575225224436762344313472323263443365217563371636366536271417165324144124563656515411422554664336753575244633415355426774354126735314232515256614465355724525532252765157674476244673514177743271477376276746663354526345352661637651562466255673265123567145132236516645512363513425714611635757731536216534136572273773756465451534365143566536666256545523451634363117367243131756644426165242611321367324727136723566575323424445515536141244756436215731312767547434357564273236157754725224271244562657371613513572213735455662352437577661343524635347716675233516467647764356143677771667314754723716717354452631542627751345141343344411245332526622726164162336573234342215561452564573373526476713451662541525773563113554423225662662747221732417721266641363753352566411674755751111765133432776244715265673372512613325162361216716546437776257541773611747261773751623633461534535227223333543132233516764241524435361624377634746321327734726453323326656741455377442436237776331763552465532373346612426547573661245314167326563545127665644125252113512454454727523622476122547151333611356667733335666617775112344536653451565232117162172523147624422171166711133232453734347322665265373315521753332535261333522351772343715214637712532654136463464627337241535635211377722651237622555672166552464633526114336421717417615574743425111623357121313453355245652215125327557471643372641354251473175737715764151417675633461431142635647346165146336733262444651144742717526432355342577155442657444555547414742577667767433621756343216266664143732121774475473446652667655263566111111451331664662142126756235745157336561541247344456464311126144277746134241216664633374426323733131643271412261644374656611225621716445616724113642231233444137331164655466371554111243477274246256655433354331243267536657364222276652317653167425471376325156277265436413713764525664537435264314167721433641414273645612441272627623766262434153541433677737222314674532176523711355545541572723474267477243653777555232311623174613542676164563632455617162311762457647456136511757542651723122371354322235717315472557652365414542214521332363222461565124775453613456422657262542521433723672372537313577536774266332744345465741712253335346665422616352122625735364521454333115377245551743557477161226653273124757634722416457476517566725431146132634166143172653733635512535437634453251651257643246711353737133567226215232317533543672376371651673623357577563747436776536725124417234125164572446435317323124666671414222772156712553514127616417641253454771573767441254134174162171556145226524472616323123531752136654676452221321243446722221335222612566113134367744646151224646246436436653323426723622154441365342226724457612613376614352572436547552117171373623674341511655443517111131167363642276457544227472512516624663151412347424245226461642535433741221356217635556516512176542147362537441445133116777271255462337672641125631242153273311767133222576771565522746356677717133354545536774466573437321322325662436112672451421664716241314262336341433767732122634552713333666522665165272415677254455712377262547266215457131167634546667115263313233171225234136624523424343614127441662316643624216552216576172256435766553745577565716567511636672361346654544422323312352555355623641646324175327667725364221673371565537136761151162631343543774163636551461766775367335672313621375154333422332261324723243445565313645211354562724336752437215646243164321711372746643176117714641266612723144441336645647632226345337541156633766542447524156123657543741743342316552545242144542525133226652114163437265573156331153315264415213557576246565412516251776541362531611544524465636663673641767252444427212557434234513316316244572254266454521344635255117633413627347216661725411127741644214566522644533635466612516613233713565163636111761742134124467152451257452464574567114537165774241377444773463752163535544255512751716476754352571154622456141445656617524353533732334562517555352334226654347634767546117166633257572577223225634672523523325743632172115337212773255421663556742352672436567177516367466134741216315562441551532461441344742274125715151327474743217345742272773573222453433737347474172331421711433571244546574444245571553754237417533211261735562333327535347221274626754747525743375257625747156641436143114112331767151555463451634531152654711216223472157516671264372571272323154414632713574623454543763115322273656757447131467144434755627146535444371214463577144652335432415142613624373543667344617444575323523716446734324361162727511335516711654551214543651363244361752752741436667344533751415144152247536612567614371677642546255311465256345427167347354422436271447256722675714732776551723754727636641741632436747625731426121124672225371655542635537673575616316437361566353636573573144544466433473642516113153532137413262236516764245266473165461443162415366266674423274672542626325656425345335677137627774265221717752526351142266242151611533534643725652766375232341421565257634136623223152614142124365712176623415141366657473514444155365247522327345343213674332746576424575636674522754343777274265726377174764537145411771122647343314224734321224665175211365413743576262523756455256116346126424163713275762541475316344155727426137351741335374226242561362236131275213356125441455644762326233252113547342226365152551124737266516152216322467175364515211237771616137173242252721412232365356357363364527735347321645173731666634254546553377442525235421671563311775642312255537454135326416741141736256315267236652514466452676672427451117233721272657416677566741717121244437456743725625565561752174312756633531233734573262371522242351145521733336117327657732257424552234331664474446444341566537216542175364645412355723761645677445765514311742317171477565465543233124446653173114254134772657264476243732332743361714474653712352367674731226655165526324616153472471214227226624477331122737267546657313425377757613116421437374361433775436443544147611154125465621212675632225633634133534312165127326174425211575321564335535256211327662413664515564321173537462514673753443113773536535711166231631336674116576241724525734651754176777417257115317762455252351751657622651652422311667314651747145221425515657227316241735131244767121712661513545571574221434234346456736126414253433254337643461347144756726345711336753157336554471166777646441573612117153721577517326573457437121321437742122774645526273236151214356255456746344137746353377412756115552457325731634563712164262213651236161764756526131337166471665711647736335317313356364325315116272375247712734261217733563214224355112272315634155142321751464233733344614511135733275364433265562227517351473367771541223434272335216345424163154247251625246512343377742467176522537732546437573724121477317351545531716662531243665725765723276743255743227464653465264666317325632346672631316654564362224265741275164457411416156526741366252473213767632772711562466425353613235524627717112272431474231422145731312474415744121151664646254156216456231725437445624321256663416463375566342325171534751641311141517266233365214477175262332547522452465734566225245175231576767245574311776732446366122211111144615447456441636676677731243446741576434472575464465461515143156236112453633512351227372227424441241516713464632754614726671436462544455725417515276712511745514171546342113264614674765252644363431475677116417267676414761326773252732754634544634414114347251566772266561446133564215733161141747267245472414654375272471415512547563243574161522242313464247323373627367616761376447616423365625317347347255476253244117335137752615533657417444651461435257265445331515567423222262336164122657413465444327731351514433145423563143777341344473565231545227516112472445662333521334311733714536777144733367541674225332623376377214626256122322635567762422452364766774627741345724122374541672467361752156222735436767533744114144142357372574237246213577217525242477327617334451372652673666413654727117754512642137327727762467763774171464551654627723622152267461712347624123626611212331667737747263166662363145267434532625523541141741316524444317772354135311626634654647273544644173515357531524312676725312776427762637572765517717572424535576475551532737622512663736512261242627774111273443733446237357663766176416645124517244777145125435245126774625317324134747663326252674615217747173516122771244263443133664671771241142453516324552276554355344461466733213135673223117556212757237742252676477723335422252551664551175376246151415146374641727415425356274121362176636214477351113747571222341447343363744672714317311322666724761321714514615346476431737523121362354725425262141175277252475524152555227147353454374221561354752247762176733312632365533571277314422622416156332571244625644616247533174712546125141624437121146231442134321142757153425437545461636253526532131246517454541316563321663447763217171137623645535276365643631263263477452147532342317764241476135365342657543717237126654715717457324671555255267323271713475553575266354162721142363363732427767527354764156274522762366627637612547246765514157455625571653654232166155645364232224675663362114443342127765311724425124563674432165211277141233615427165466232332262322427544144616616564421654713245571445752453335114547544236662343577315542275617364357714763137511541335545446475134234634241231375437215751721634257733361325544477441235337413241355613756443274247354227262517634426134671227545612233243534537262114565671665355577225672355375515264745234671562424375532362142577315132611766332671455625122313443166347456473575753445256471635254277356316766454731555425512346661735676566544257226167541176176113712761645462414324311512521443743232336174445177541731113361564171335135561412566552664413471111334751441672147726315767227331564152335326533546462257271144224732276131674351227346366514236643152765766423556523553434161744252542351122411363732474212376134321456561122267573643465635631362447425531651631236675377164333516547423517673727617457557113373361423664164556547414563614143571534724522161645726376666373643726531174223371173633622441735357323424155516617112565643757514637371617551452373644442746731524445646524651172575132436331312156643434213433613435661524566164767433155427712264744236675525133267516452553611416131632573316545527465532124155167263343775761644512275577226726756323713521675247376256171173611652164435524342372121142252554541156412264721152575572631116473577551167662617257741244355135315473612671163221125341776513253124375665175311432156366337566271741547447161343552517344423353446432467515533217552625251416653625274144721252327572421562456752561276772237461442774153232236475636546752637173274672225447371274751756142152571372524251211421725214721336527747122541661724236147553516567555676763761274611525573764644723473313511727327562242647344737277537712715166135352546673476317372473513213115753147721377332262423713443665553166172142276414757262636235672317327644264746534662165771477641763156574271754444754563534617726325274734123777376654347732734676526122635225365164537534731437272324421243673423176262676641771224765113512264575323672475516647447161452771561233514755636633567677146256424447121536332314674755663417453127142235757317176565253525562175112334133174114172631374763373114357654374675226511552357611222656755375776631513577625116131416324144654541511751164565572534575112676453434442651347216473142554154112455132317453415454661256664364631343676655316163443677566125672146537324756654132512557373252357322354761657374646715154313641564733432627756344246654414611171514747332241275731537162672121171617634167221613767717117311437612516115121122521622522464626721212123736752243324667145431434555756343357474727416514267433777416444661737343223265624557161141616475472546172327212671717725226766637175775147162362453566211117162163664411431667135513335445464774463124276266312753427274633442171322133762622121474324721454655627225523616222461734345372161763715467141663223327653514724112423151276275617352247512225636161476627446247364672654115667576747722677425354145434754544634622614174236774527254651435212773164514221731472526125277111222627471724217261534545266161322475535746361321373747567516641711575363231354433732111161755166345275427666331745156175262111755665331427242346265774514725113713445571536773712571252644457757244115177771371451575763542437563375125216345323564463157324473744645477224766454124521464123521126155772412446262655124446112134633642722251161365167533535741445721123442652711437472756462647332555232537721164235434372656513167514767161377613456716464356565656364273333325672574443271741545575326642214713364747351465442322253141273674343646774742626161376723734434767344254751244263313276613245553621256744772421751462364511356752776774574745143323441731267165464263644232757471746152311326755575261615123762177115345477275156675757662162473514241171231746535343433652113474127236343456323167522116421667472336353627662172153274236436466631477752757257476726443476245232211217514633772674452112641554615727772366556135613724311365155651751117616512475176547576413272466617617562731432315475236666236117171141454521752631544443256277316423462144163345523267525446467442112227645112654263164721671534145261355766353612317633724217524453571371127437752144447167151416766137233115273317165763772233142744161371212553653351157275571115614755276554132371476536315317117675335312626257337112144576626577434165467416431353657447321212346754533474437675172137263414652446223672334213723236376536225371324574726451152417336232244774136527123171176441515337564255777543564213334177352715773331727275465115541162217521311644755166646356223342573544676162471377264132755322572257646556115147267673277633223337325313114721657541261343576222165617331744132226234472641553171773737134451512546176374363763174566512141231415434453721211521167147365312563335774375635177227225263134273637536176752673715631356772332615672611617776461264232222464665565746227231267216642153433122617473316342462423317426151464544425165723361522144726733173541123741553112253561374271677255211675654264523111231647731757617666564124465176242336332541422427467262541352277432476742125366334354532771327273533431742472336164657167112142625261266546163611367315317535717536665641451633172232174141741635624471655752271515724343437633425166353162321563355132366453135543512217351521756571737676272667347452516661666545741731651131775744125614712667475472567764164761313174474764123572741657367756116427177515217676264462332337241273214174735615635364636263217431141442734634521361664613344376313561675252724164253543776337357535735543646265772257551523451535447315772631432757145111465552225347131324377615512423462136467325331463234115655121466673552624361436141662361263242233512174642615421616146365523146427631414615357531556375267414356352423124651626614545355236665524666311766252153627465271767442151711127755162565523334543411637122233331247415271525271653145141274646153735655647557654262767137523423735623316465544262472315366732234136357236174434665136575561725427356412323756445152141627122755723754316524462211324426441637442747462335114234367732615771134222267534234651516513663562615437567632266763734725223573664537625672221727324715437116615361252743255357322632516427417246354667226754617173253236177223762457572377161162321743563576115262432661661677241235524215117535717366566666612726611331142727531567556354135421321355662264247236275132555311342517466615332344464177354126164355314275742115745366225637646363135555442663457315237632726565177644411771456377234231424312211276651157316147263615161431553773661617737655674266765237426725314574471675355773513336461373123674354334252663353616656615327617344717336534761362351153576466533235251143652121446553132612564276746743437643777565172353542153746653226314615674513732326534132727343374165654225632153746543664712352671557213175324627575774576635234313343544477161251751431233756421754331111717135243216242641622617253454466572226647573171152443471137475264527314363772121466735131112637471342761317613152755472672176736262472442534242347217367676413431512745331666112243162162124457547755572667412545145363676235323417377557632125633473752725557721141247222534227576775316165767215331253537243133144664663413423167375167115431745345144375756474335244154711115651355726533564237144451243354232471262754424746142417544773417656666263145442366531615425676564563313616453712774165521427416754376571447757241557443426556343114164232147264342327551346274614333757373211757171257323153435171576437747246166275236443617336576532445573312232646514114256146713246736457512171152473121135745262354233225534543774326532225664213726351233671212534426631437257553422434135145232574477633551737411545147665511772441525113326256323141146521727174257672223141173411425417512421137727232655656316462232272455661673625173611632517643164442237217672513713777352346755431653615765247551261115442357223311512471214372327532276534645216256345457217352325566441726547576332111222156323211745251245115131352363672534145253711125746443677146537113611335646752545523724141713623376342225224362235547153364646377224456371621135622647275762722735313232335452144432351147442736666221555413626362427635511174653514761543725753134721612612371643451525727516122634614275434532766261774145656154555264131614114132231636435443731457253343155461725111755631245372337674373251253164272655111532776166537145373512322521333416726545537545375665121413536771762557323377147627542512776577675254216557563656723114414474374213644611571267172423255734464124412174363313422673213676355667432551177552214473125477344223266343464551673433755614542154473421171656755312526377153262643315326473317751122762771336613145717551112276223522121164755472262247341661614166312521126566616242377365547267227372475464265712342271156115221167421267725537763223321343755273146366257734743354721245444153571437346451765323115122776315775141266735143775326132342374113516635441255656377324557717311673466343471255216231526611641731317235614641452366557441436642163127671274243572451425671565174427477416343524763234735174514356225117135411126443145745435254766516622374417354571476141756446237123463724162443573317424251215317665171676143524144125454764416564413473476657364177754353735615356715266155214714711447743535462454272126536231631176162455134362713224177733126326146475121661152415714121543575313452275364572642454266234614345514145663344642277525551332667557254754227774224117674726215163212677232242655465356157777627141222346572171547415213214367314546673564664751722554274733665341231617377175317575134621327754176367337441272252755541763772412432476434564771217763153452612267521565143454675613312661253471452621326773373154524113131471456737253754424123415216432662646442551166622324575326371451545512176326377433123654573751735627747771622775377766455744151643557657151252122112757654362356644633531767272422621676335563557353537737757222414564427277554673266263277312562241714633611467627646165126375621733325617757152147656571431114316642543542547164762732775226657655221466654752357644153676563567213352157455724711326716666244364533151127711321553455244157627412636151743714273631464173165127413321535226555142211621137742714346431244132746167342465462564221163317622236255171341127315131247561564616625445673614644546574643712313375141527111416254244621212454624522614626777616442735157415116552742445445337274416224155666554151445171736747427332147537416215451177463367222276472465537352731157217536561171747226762131333357362246136356443366374477524162217445352176744473234613766475616754421632537377633225633663365354625111275246231664346726264712374176337253117375633636644455616437373211633563466762547274775632661222415674242132425346757552632153324124542766121745753647143251613215761167721716614267214541133463254362363575367716141625137376714353523264123724727773515635446175566274526227513623375161635555233144525451522124345164241725452167443377353555223131455657535633711241277555411723171657632527121345565463325327637115711364316433112767423164167162673733463237457756112437146156346742312546624612533175113721665563125211762454641141753366545324626457456725522627734372247762464432317313165351353124447547626362532563113557516211665632634562745324635112264116215762365633241773566277527132752551176573227237576436471424632126327311524647627663434516313416447572654251344333575156116451226375554213237762242167111165227157635465622611726236236235756765762547321622725647453477216215614157113365666363431112722743545264365635415444777112224511376224564356221655446566627312531344122556561666424312274324571745441515575654637367517242623126662654433322626644634752345551446624377634225722414111336223257232663156412173435755221742461513113312342461625432144351627771372742167326412164412157232141311575724141111221761175222346411667572276221443542662474741712771757271223276454553133436621222227257363513562256462134637141264112251532721235214317714111241661177242453677427261361673721116215223371752124132252441154154674517256365566213521675213627227711125755434464737736641342355365371276642327614727625651277636576616513734136531423371421424464355126523147713164424566547316633656421144745355736416472333236614567664471336122762621264427417765755424646551651235454726161177714557144112316423162575573513414362215717147123441611372743324753273665673775251453573117433737457156756347165232624134261573542557444311217144326641461537215372346716141254617613742116237671725725543757431432636141754734136627523122166221423347434241554457532254363225251614766513671337414532252763522512112153453616647333567657332474714233661161755717367454421757352176456674773513633671442531766176155644254625131421576152142763667455212665417643142741165363663632352541212377673161317746434111245333544113773323443347213715122664341653242574741315426721434632357534762333737167633536621314443526235467663773667354145276753226141521617217577525233753751474221473465415566531364772217341663133511262737624744544664721126433613623135137624311777472413447741444756563556326316556631376373546134113472323165132135165136312316731361514133555152662474445677613642124421616523113263137611671275527252343135536755377462452513354313647253736635455423757242516241524452754746626367765173253277353117226733726555653574122451576771133736437225774363666733174114237543376331221657355142463715427465136171113371236134363574456424341147167527643546376665233116633631557622725373233112736237213417455557651521733444637664576156135612571742755422125274654463215776256344552225546365744414635535554477165317164633537317114761545216224756775462654525626325472214135634524474562254146771541764416262746515165422726727374412152712316266176641752654575146453154276135146732147435115633577115636542357152366421243725266216662546775714232776222425345257255543433323656146777343276645663546722445623547437575715772461654567723675151125114525316666663443355646354577211173544523411166424212157537652162446121463671534244362435334642776711251457622457217554327673113714222276172437561535156147541142455676617153132174712737673177256145147744351411213415375715132647553541217352412143512413216513557235256323463671152523745526174111546372747446664237534216127532626565673657635441435156172766251141731346322177234752653772727733237353226425542141446656741154471426657423366514641547454552331364251232472452247413362746273241767713363647164746415512533766255165534712137634474165431746655364257761173257627435312375263133461577516133235262623254614317767136111733457266561225527167157162174177545465355467342257275225526125213753611456474513543465247753673172462636617362545225731747336657727313364223411342135343475263366336657211463427633576136665325151137151337512475756761666422246263377324414555462252351313437465615757411167536155322444727666566254335343436245617264556545333342775542274232722637325363725453654341551374475572524464156724323756144264635525171556154167413122625344137611332476235733115316471336651743215355317113524264235472276462774442362474656316722662721661272535774234721753675164357556565752453215521717277776534571461266535757631632762673547227375435371115762255343652227332273145666777475514452656217144453676575466446221667155115122561161137717643514773622422224413422436421316676466151333646277651224167232133772711144337351256361717133346556167364636765272742733156414372317237735633453651264563443173335462555241516214223614157561224653147765146767523223532527732331655753461471463614361453546712111675345315563753523677345246556557475146725233675164222647625412553377261713414122534131724575743372331423153465642455656435142512144317615245143211616442366431744575567415212533624572127173117657436477121373766336542541171357212252165224614567344422632666621236545361142521554337614213165221214653761254432164265675215631651447146273746256574455366751257433441371664513472231751666114746423543632323652115324372212621552125412643233453324744275567645151721116433611353747567446433142335555423635762356445473436653177555521124522161635575132731442437272313666165362751575117154216337471171121741156345747664315342221447451546564311276164637354616643721266144515646554331476767755266315133614577356123154753142561533455745515544456154462777157332611314255143427326766366215152432463112715366322331157611325467646261352221154377415376541311414432577712227646621457334566536173342352575553454532655335271127465613274653237512171735554677735627241536252153453566354143756541575667475712251641466172411455445323373164413666746666147375152673244563345525522311234355772252617265521274666131243671571725377336171332611533651151337321252315216341533617165113135271437657412335527111127641264174147737117454126237452436544255662676527556361225152325363727417777661736555617326667417611753642647734623513555343415417614172466363164344623466746676577317666535134561364524431432373344233115622377526211755727241474136341232353335257355756173154566534546174341267125543544762447324671512345355377163431237364436127217335254623721374317447713726647713532233527656317454446641546437123246527515456413257244322275126333225366733515133257773134546471734563356741545162153555132673716455124727174513122377274565275254766367462252465734765445166724412257321536714671416254164765546754726171612473634562211611354363765616111257634214434516653213512373314331425147612364152573155325645271443351231561165456654417273724272636653122141717775556476112622715672215422633644312353264446657447767631225572342471716454252126226112324114331471413441277511433334467717432612763447666537673326776777654735344577557434434767667661665372725316464521174574574553541461574444324167277557336625372442522266737436457344471273723267443662576643511545176235531167133423773667141235756561455464317743353742751763661451626454114312551164463462752226317166617432621626554733241564415414476442623625614317635123563335175732235631411242246647235573412316631335465623147635751741212333116352731613226212117273335457673632734126547463665616241615716372676427374244633334157141752621211754775531115547145153261354565752461134355121235644372436725424662176444346453257576133646521117321174627476713774771465247451474424716166677317777146674531772345757767667131131145636331521166515625613727724227724566731241221622314775717323425773676133145337671272163135367777477314637664653714224537277377241312615763352763315767721741775725115675342532162671772767766462312213737373423612112472417367511741235365541231441612162122262467523342136242417612127442551137772446662515767142254321417612513751646731636732261713763744236635621634637434753744443741563457142335611754353761325722171556553717517625353541714416727264132524475467324512773444346254761234774543515265465142475232721745455123473133713416656512615123567472752464654145133774276717376347544773572225721332152652622646532333623135731763172367542146623156337743537747367616674777672117754752434342271263244555634246253662726542173131546133716434343531132717211433621423135167425711124326231273674647254753134635747461324445744532657265462165752131264632536212477426364524211433642436571332673655474246561643437664545611171355725543312425152231515366475534435272444625523647727657436373655576652454227523525614656627224165663227643634217177466357372771667123271674335335314242272513772724444424157673444762322573164365741474121112555255516756474234627267573724171736517325254761562671751253673615556527346156225515673737411611477251326144666341121434565657137765227224523551663637416174171716537442233612661264325145546647513561123514764123546263157735717367471742551254542471775771571531417615174323116245445155225412543644454126326344211115641511755333117512354312723733527517626451763143312744246452135125217754264572232447755623245761622521457737342625634337644553534727255161116477353726713567744555563311412362417771513151156444323555727165335326576215433277632221114732475327227231675226311532644336515331453366565427241425711445235157216456446227235371112245772516631517546357313144155472362454446637674533564177625355615152421413473255434154136755446354636617247474131645367356133651445435343322146123752677614122357122657222425237526127212533162774362413655472555467411564163363633774361237426165236474124452136345114121162711544315727454677434245751777272366726521576357324757646645766134726712162127753361446233133645351352552673712241315231545131767734313474164321451275351165355261711462767323561677436635474122313451551614372362336313763414636274453455774232474436645215572512247425226632773545442353742313531672435412523177653177315636312363646576651161155454525372142372665435423542757626362123436576764441374561766142617133377356155632753451551565667673343362267763253637715764652653317646166174432625617417175463715711721621374655556627621367772513674767726515372253336576575755345745756631467625362231172717533437145131271372737353464574457124231633164113226244474164432554267353753455616533214713476643372346744373774741472173443341772126722562171667736147375732122344247527637126213216157664175333766132736657661173122111431355643546152646536746367572655772577264762255131746665755232743114223523747664151757544361574216521713321327146243227757136547313425167212336142574573615462534115723755271726276757331717113514415714634136766664611723734325767671264661577467252463757421221217236735115164113251666531763714741644456264715243232115124524311576244774465371524725637322154324242552211631123535421453651213721175425412514177541717375335637757422363444245131322252715572571532752335753476522657252132211274572626523162735334351454616135474776542261575231656735536332274773761117256611717773556411732332627632751552752663341122225341543646233277476674222324555473561164617327477467271344711652331337737673642777621144455543166323226376673773776213551345643675237161742452751663157314712362374214311556754234452474174342563224756134642476244514224651132453152156552732566257673357563642366465244531777535615144234527756716632315416572362167524176213225172242124764132532614235156467361425727316722265567312126676734176672543546666444464517576363173173267544323311741522411351752371727774446166273246317555654773274275651567576733774163541152571321726764134741441247533531622745336135541336572617553147331444267113677734575155134341374452271313572615455165767545565334553775265456225734434577267133412772637576322225667447477572153263455536577722412446516477715224472366236241473751523472462215665234151115255642635374443664463216723134561456652472246546274536431155544712676145263156667452236433117617111715644151741776242275516517611612476124321422345675357337412512753654226471636525264216361431735224646415612554473725643725711523317162753227657161556247631123444563651212272227414321325436774542151373412535575337361245135523147366631123614446575721435311525653637653444777761652726547532327722617253664172251542437414546441742176566215424517153224572457464764634654437711116541317665544233536325667771722616131736614437723545235344447737544657651214275552216152426523411216264324644533765763244126557617547162677353652551765416465457534553142767465632132673642517553131444744613477673263467541616122276664254634635245474567542564715574132625417224175454542711513272725116667723423172666166241472663415465576137441637536663634223664333172716764256144722425137317752462764673222235537711535666664744242632354461243245327176776473737323641217334757513514513462176727474525551255325717361736336141112564353467233723662156172126127376723273316621326635436547363412215646171152113165722717655315647523354351573221724315313735621564221557736251463734565171654143464653647465624121476315413117465243521476351764144676447757726543126156125324621371256245257134446365376137523764211126654767545414135151232431742255252552627377174523535771215344152446132772173545722632643516234371314675114562275457654225251521741541352143272641726552376352366554612116336632736574124162222166556757623516112662274673725233127736712473214563733414727643266261273332662352744326131715424243263427726343557313115217152677326662663521176236531363411677523411571252371223277351622771163344525543673126547675677777176553325762463764651531322331342226552352637137625171242316533765754123376431334143351421415725412733474247363616333426551342724331677413444734561234212357552126315256523327675121543171157371222757732455456377565776114155271315412761547477447246167615324465247447433562436554374355727557473447422671353222641416111276145313355654671323527761613724631552727414115347632731221422216254357427252776762175326372612421267143257457357576327341541114344257476554572461422557534556312641671466246316451736673462212515716165772643511674675234466557467366166342523713474127567456414453453211563274434145235312354111366576766275562277133753217522767551447457146466312671132214412476533517634563425716121243613252136317313762434234737764265674276731761376544166562561127617221224424653621237715254316577532554327674357473364113553325477666211217755115445156434177547526357512427322166574551261356237276341512653753633311547564377437455426674312576237214172642625753436427757331253275614777262757234165172227254573265755114213336646465712726411146645446277433427277117313343357345772613565121151762133367735653554146324237256375572721113612277673526242366227716272324626745636311235364377217221353145642545425632467237247363431135723271132624164726143173555661564113227413222534447761355144213634345327533726453552511434156332751612576111757336526551357322511663252263367224775764131153334524142252612733334732344553225671375634124221644256524363515474524321724445533147121451133562355126312655437645757135331521155657671776543547334351114266273772153353331574641376317726746355673227543634322541372413311246146357346622463541612143414522525352427222367735736233513366441266531463732725632455636264131267144223515722775134526346153271316137321224413217672626545756227122153314646277266442435334256151266617415246365232575431755754213765135562327134375131346145555165767657121235574411645553341157657734735752442313477255511736614617412321574625174213773765757442572634174467376131327637545412552155676255376212354437423275443752541576327341616253325644412111264534376334415342665452723324362136566523263627226754267512147463332324533236257155674555663742216531223546374312171557457754275151274541577142441637675563224142161544615731116362452152414117325372155662762732177414654365417356665363573677226256745474236254753613252561572427414154676515222612141437476542612321627562414616222354224221372624615774335647551626451172342435127737454257145131176315532115621524452271124747747511456766462533211532643436334414553353212476731113471644617241126454676247752174534537131265467435735653551167535217233451111243756655232352426157212541772717425212135452526324254522621122155615217646231274531313475511125517222427253263546767247112214174737462417736323213347351462773575534775177743374727666135445625312712433627266672761574337113654255321612631627216277542644132457413475761763175115171454157336466627537625144656367534143216265751733716524312341224541163611516621312374725153365752152453545536571127532447676573612157443226117122175431531317612227364675516631741415651111212434464255645622725176565616121374743467175756151767557441344374171447457155153142237373341171471656734752557175432352716135216465367176243354726264465312132111541657563112625534174734247361455542512234426272522236664613167554127353725655131453432134334421734762474151774742415517244675621427651366456254415277124675376537525653631457111737652341117753646424717265116373361524735734427263674633543573732715512415167226577213557127433745427661377321371432616622664261133723143116146312574565755513615271416727734676155625443113673514575476473163671664331552131473252632672311611766522616223273712115515636721737722113125454146367237734726723725346767546264733147752344346542216174252167572177114241665552773613421531527737741475555343642234676143135141136275153621115431127124547343457317226571531315337442215144521543554445421653315361672577151346525361142337672427527177126143735464511144733375361361463321624464245352766326154214344575777446763621116651566277544225724752662244356354532463546161753561747175643517253421675614713352466316774344371734133724426744273143142477131324747342115621342765272551665626314447741443517676537715173575536373272346627677563464114574357271637263165156134314624413242272265314612437333764366127453662122643345617642241716622567146361554771662566113215267556554412466277467755657271737174641423772633662676555476572572177342741234423714761442312553773131334546222534123277437616216522545223136411122451314416327212567212635476411756211651524535714744121651533731642647721474175471214313565162147243245416126665127467756655163127544375317167673653651537446157724565416436525113511575632447553343175657532354124123677155142566176574656224526232621636342622543422711722414431523716654236414656267263533276451642646363244632552511164574552537134153377763342522547321676263275614333343677153331363563312632522156513173211645675254614117463661631151563556347175457171236524571615765343317216164114146612462654563411742765774476122713253557126556664253642313214425743217233222217535732374524176563135267573624667473624215724714216135226477176237632253765355177114627567516423375723322161761112674653624465136627361667677717116665156536341244313463453355375455172165633156676255613251622551271517214621421456247665157326345526651233316454312317125151715657644767412261712252375122234722616415545675117246565371534226327371746647442465344274256612653674717615762132557171537437526275517711477712367211364336417232122713263264513544573336271313426636156474156423123457367421163746765535353126532116755137147544544237764367254355262165212277643366365715143477227437251561454713642554351537642725742112247741244522151133231422326527744742167633151275527653726671665463772776413623475574175674763633133243713475136515325124614371624231453133636527343264765426527234311613177171125556144637671525155347661617733677425221171344762626526777673263335751167225524176761762741371634442452414376617516715213433425172547611442342434336257524165715263355312456721555362355665566416634476654656124564112671367322226655643421224672323414553524145633521754217561632464742333647424166374615674666226633757444517237751441141547562455163136511435533571734111266425223536517752536727132633761744566142633732276177722376575771347344536132251162273423313713157275542554112222542714335746263373761156651223367561323721747316776724673134364342375176374234234137531134662226475116235542265777764116466721577427333127446157246566536322311464411732177725642622416442573752524511127223727373454317471776357732144266452512171423562613537444741376355426536777257447724771366436354726712572627756152551621553422135736216511675514663154333775211615547427411473151377732323134326713755726266465525411642356712712217112731667552323321656457641161262476574642174537625562456676716366255643153637511271536535431367274171327773764123177763636765616326567461157562213312664663565327316365473453674234324113562324355224173542731555227731377542371133642316432677322315555541712735412553516116141313152526731344175272664564471621137412416443744463743432161254477451712755252631446671721146525453664152677164331111312326377256635242533452215236361532563677553217563142362116735721377551431161741354523134731543663742125124321376147353757123313617721644266336332472176711444645647724554416343673773514742335223326613355373663264654461733656172772437351556776414242255632552751234363337341221636144637216315641266623667171174712464576341124253146435336546356416167135157666212746611565313355274227724113633131722171642261712533446156542156251361454714125372646463431645464623672463115545132612365442221614314444764531443745173741373574226554252645712416226534553233754543277365166447252236525137446123353413321174122446227644711724351633156366111455271364676161435612337257171336746265765514567451624743752774612523313163651637111414112222114265537737334426331573273436747365247245277643515656117553456315233457271165547335135723451312146474524642415342766677335467614465237525157723133612746515676254177152561463115417775556245254664613252331653523522261224142532132451525722274556715137634217323561554356576354265677764474447616275533413332657551541217755755774557731455652721175126335742533312224463242544555311233136413744175535243327175535561264236432743635453776725562451611423267574761655246131721267267322752722532526454361463512541573177473565747714344424775351431751613251166167714446756473637634234563672527412157754635211324631476666241212437535327152273777746646553775251145767775336637533527416117626632423433356352225677741642644537172356613537763443551735122675614142633326414662246232155345736544736461342232356313632565372246552512645251426367554632551116673255452261244272267663741253152567235565612222457546243461676146171657541674752146154524524432442541514665472627534317771444571155146645376672666416476543234443246243114115373245115662326662126154464275635252674472726616731736375124571437637311614465271363234736427773756717271637466526252556531427135746765142111154162257142216122725523321641667366515531742664166537263351446575347122337536234126256614662531366312455321334657665546244431657621755621764451431226152616715766265157156523767722746341143541471175114766456361666533736224473473323733662631721513216142472753425122321574616756377313563662234747161342732531561422717476712325445562656241211362564644636777635414612437647716366663347257354725476661656751717515243261115516367257345253344335252567512353323431375133451124642122212431173336476172547642347551672146247513453373457535761645126343261142416746424377766254766723343566641545576145245262572573731317373361751754512331422762375336467626133222773146427517146714643645541264375711554644752542346532377427756657145432137214447423743715613611616451574525273144537741643225476235314776516733476514717421171115547246137723373365666522741251626643466452113551347133321446522426164653155443567512135262254427226124433376645736352172327153724737473744622325343653775123425227266653336571235613124736377123153137464235241731444751511623121343471224651764222621771154575652333544243351164455465674245142374542366533753412261741476172332717246731436767216223453263537632746552745633665526254574246241446235322126414366113563171126353216151374145663415174513526445776674733551241521331671353231637611435772117262415464633245241122374715326346471141623346774127457247711735575621723341251662647564565651442334436153311371654643332111365511253163413554743337772323453234362771233631425641557613357574342442676171132717165267436525242516676575521722622551523364122463253243717171474562644375716266515721333234463253537276671626571373535761341775452371371453443423667477544734511632171247574157545525411115565662111146136633611463335445234124334547363367751137563231763515257645775433442545524131246532356352253626352546217734742725152726254557315661523616423526225537455132113673154336311563426162237744354654152616636725357275421436755532256541325326165175641713612375623561633356274174751762464533425775767427246565354462721313656555253315243732557136427652147624543114722434523626577655773715552172665732523177646644534244623242521434625226114127473217711334417555246762613315355617671144576664311221371741567467461574256745565616756752232172741227645452141732527525141442556571655433647733225377213341416416665331716713246176717443525465244717217712336236746724365234752472413514747664472473123755464523175366754743522661274461336722423152661265431726756425651553124523722151734737635576365444765541254461564276252743772547245123137616756475324631121475333236652733721551424177223363216541425617213372534255177537151645677472524754337156675751655732522562155452216215715572557454637216523361612534344714372457153715566116377553271613244512527111577422351445156147464145327331412454522656553471341144677523714242634121177547573777357543743461753375575542532222261236632312316757636414661113432455343564625632526556355367622277144433126773364143171547533754777543745736275773274467544742453526132536466256576245223527175356162545513437211125757243253117746222763247357574372436763265261212412745614764524676476634543564126223714414757446526321677446741673275636335272754617116744542741357144761572717417417314671774133237647111221171243363654163676323316227231451664124523231627643165126152317467212553716272357577313127451521431627332341677551612124753134111214346415565643633336743247651171635575354742344661474122127321374164712426544343412223434467531357752214171534115227674434426644632254564541242174263537371265661776346133267461117474423543322431466312621657761147413767413565735655141246146242214512445133636525433551374312644214572216672655412756126647134456246577356555316424437214217756662551471465127762424354616715565132213342153762224653354244733457667224333631163647216634336614674617333527635222342136572572261751675267153676133445216475724111312227146536442775527571262564734147165651615715671647756346731545555352343133622626634461265341316754212416112363157626655322444431261323123263611663651323676243251424737465766145544665144772327451265134732547313662517327451321536442735232263653134255124266242226513345574152565173775434352573445772552256535245656321155236673473657716753577365131245272752233611722626117137652716527124357642735216226143242444335242776164377721734651365641263127227336665657143642111574724345377323222717735313414574377633473446167362364226467157577454625372117235375717666773743711514334544471321732127616213524175432117646717224425527551733533316516414225337614555523637113544426356112644635213766352273551234763763147634456164722353547754362561215371756664367614161266536716147671715673422322132362345247753753144643316552174332656373271516214677332171312754232272613773625375437651113277634154435645147661334432532743126544271766572561635277443656263147657147727117363123761356315612617715677621561262471547577362452454334327415425776262133173347626352114754637427236543162335427246547146741774137625234467241265132157653764477473217645662711525734731437111257461365254557521335731174274221367337264742634761565674334766216253272565767566654434771566511335546726535513571144743123664127613516462143513531334647346642733424453677251635667345311274377631367561575752547575346356125172341436427314462542315244146766124377332254733271441366762662674343267526111531615734543143323151416551453445637534211625166514554541777255157723443546265236524317471525342335611366324241733553634717553717561737663216271567253645622233223326316626457636753441324541152514545321175762667244466153271452225641657565655673353262521567771566554532536227654214455443344524371655221253152772431214641334653151773122556646212433127252541256356661235132753325521655143251716715721545643365251346253472574414277364161321135373211651742472212352657722145775216314417751213437536621735624456416157156276542534516522425752732537655575362644226212444153345531526476134311143163331645272166251221744475673213645643463772517621634313264515162755334624166261255725436226726234157552362171335737674415421344142136455576642445435117651114532736766545432676554365453464346643543327273474451116654223741535212434445124462574462215672665527662447253531171657772463662533423761117362513761161347545127363163174143315623733257134645774414724437162554147565461164715545151514613277525574354564254731656736431141132712346715434246234227172216422713257162624331265671621252215416724732125642172563654712333775517313636433633123312113346737421463745511214416147262426413466625213775125577574524775637115727532242653342411274573457372173167374562735367576156514644765474533211523462333261242627346125461723165543777336443746772575444646256722222355223626527116643431356147473651463765751661654321345263333527767366254243221752117735461642742171127443776274316312241244542152263231647456121761275233777325444151134713735133244176416532465112217737334246664214165141211722243256212636525256667573524627755313144427272717715655347132731571124556566771763561325321735724226774764564754333565321314125647547335625213756325741712333217274227171633232153661763236666776421447523146264653142375164154736762155473411777314444363611274214432271432642564241676366417132575726772266556313313331274376557452263313377221562116335666555412732274423546735335162741535415612242525113115551457665741572473617162613113671147735533714165447465647262642647653446136544212251155263347545534111614671522741165675133226712414516175267455454353157313323654246746674643422156465436757346152767667454115324362744743776625215373341752415234441745456357261611346544125542175312267724134236273147442327447312437532255561312725773346214345511474711577642745645272132556231311773252346544237751273541565726135463627665227335366742222624441311672762423467325122445641424665665755227675727533771564746435214122654743636611322312675642562115372176353155376627727725164424154365312731411363475467277641456224666253223462623562612516745656455363626254557247327671516374332712464324771726651751732652316516766417721222771715127316647421417241334466757257762132116747222236473741557465464517712616721155114512766636575156276367263411112562161654525444373233362632644123431435227755414747266541636347572755566674346742171745242775765353742732466374574672426527427346553256426446237617262155126744632367123776613613623237141756533752675174175467171335332546513172272732553323333476242436477711242555722354717361214547317412537614415543344472412167131163236236667454711441713322234442676621517566376333545767324751262154235314133177555363325115123241764524241667735474146646361615714366124272275136543437455657342111732442673527314757725613657161264532111373444732623475762717227612115354617213415145554154777167372127417532172617354673472471442644524611717262231737277541614162454244356376421614644711711411667315142671664145631223323564753624332632127435217432674243732434167254455312733175365612325451177214551423536755774576722567616521117342526433332113714264154147257314677543276571772413737544472444234117321371561743236314765322734456611657727314641511217642156633424472514535213263415411526573754625176553475614346176362153557142643511157542315116136263541455732314332417637542547376643127624146511651744711265235121334225742514611715417646461264417743546131432623374367127335677714251774236312742371423347131141457666412353641171352516633647125724656123477611636227213617622433211123372454457362324615677143554676135464142177432234713731477766772642356476542154456163133742652247374353221346275124431745122457376634366432344155527514426775625611257222457175647731414573274756115137415314212215265635255652664317347112632753572464213717366727665667253351641176631131161763653552467736133144127123233441747215565577313727322235661126332364142522663374327654453675432762316651761317152747416715641241371257465427525732163673467574535763622563637442542733412463256754356546223261555151432661216724552536451177144652625214326221616251736236243631242753515437427236441253171475521127467333374237115143553712475517457572733557677313777362633314462333546215115136436565141313142415653574414221764742467612127477356545317721231625173155371257116773634746152134743352274222243143546232146373767515724457513131475321435474713155551326216623163516761542342551436561422414622374174347476763735713765336637257766323453263676366766521374423332353731471657515515366537363635154357527514666456216171737223732361352333113757711617614746433762726153575164755136141654511771263222671377716622646623413614634357636677711564747553123574177535411411422562267254555125545531313453625114244151626332226773123371774575231657143616221227433754163444366454361661524636761467775453171157515615766451251317316155464672654535244171335366321347717666754537254564736665627153764744653225354743446435221237636233727254772516753627551565557413625742553724622225262451126261652467634336111244772237453472477747643377272336635252237571741146123562473546532362525675612115121377641224171431572362162313215446333446265331412541767317631575331676436251423677616741124274737221275713145446437323335766462515734435144617653516152757636117514356174455443624541657733654635354274632376772455653647224711537156653174714241146542465266442461446756551114222176355174751311455353232343164275243752357577646474727243443273717375554534727561352276662173415436423776411566525736724344574251723424466544436243744361751577612354123761524351545313411661663227642331474142237767441527726237333566537244476315441434635442464733736144524555323476151726154662175112454242675246753256775555775516745451657415373622523477271751656425513653414777363543653761156722612371742453572755244642747653743472566733473771624212516615123452737544274414666317471451262541734111421173651412561536766342455165221342527777146333132766234733655122215115122166372571535221526222553363116314164435527342324357435154456327746313165122464121173672341172266131436341411132242633776127446252325244425437764351552563421356511346672455463211266454727164745211171247115526566533346244651462672725647514363345672526214564653156752723362617476651623263547256254446715275256143224554141276123561463114731645361747543564476754134545147134763771644324755563376653357473262551556317116654225712346426645223411241263241663473537573476112563671137354444773456535116726216576713757534235574451361264214775676273166672463737776215535345735645363154422626735645412345151635455173556131643336276334241344273723271114261424254227635161572114443443163236663415511227271412156432142576365737477523653734232215431671447143224315574171533744626117264127433753634453447755437431541152224432136474137144621674747766312664267147543661344544132147762167627533677276434177574712212332314376666726661412561363574736261627426517477647716136526122141234115155226312274227263114311524145653515337657412427732353435244721312244242273454541616161715371531765571122361135126145246677764162743246515531253351774575675214427734516461425143252642523343615721573331313231445742224451142644124352523236272777331677713311123551642255775366222422433765267556632256165726651734267676316413277426424217114276526625567427157113156517521147234725573545752765312164136243367752442126625225655273617434173171344556542363252712364336157366424172155325733133471735632662643263362234627244573677464664241556225331734767337727765464271256211735152641614576616566277335255352216464455136121166717632557417627656434357261271262156434574466465341775725244353572455725465345172272774522257631175577437374114234545226344421421211355216727453136557523356432552711632444372726515566225262357641745371652245216675631541615663776527624251763763566633624523723775777414514772467243646431622332732113454165433551256211214546752262531247613371517321342736644252546563654223375327375677573312566345624445176621661361451173351126621255175661751717154363522645526545355133231242261511253547223777535441754212427512641215347647533467675316551523616747574451445774773523461553145742133461644345154327777265662467672242236774671343343362151416476723247237521654412741255235276177523537422511251455664426337147221675557132147225114555512537542633417422737663374152733176153346517652145234575222315136654377161256474321771412754556353774724243223555765747235714552153654472624373761675632423177335513343544176415674557732332374146474141551331122611673737266673453167156222435625675112232722367577624545772663464316521624163254135612513772441171644146644352776667142542616126324647644473673473477544144767723327275735225564745733437246331653714511433212725437164721764143454245272433725471511322411236514121741223526376461432764117761414411532215144113165465166165226571664215624434753512227237142632712532323767354745377324431524135212434143112475344467733216521452516222532613446215221532325553154767153443771722653726262151355155172455166361445141166214353152673141751576754561571523367766165462561551556136315471626616435274453542626642463334437412464214753447542525175532114756215646444777773246766643743651572376243554643361276754357646626256163557235574713717346323225242152437554223724226342275427344662135173536221642476726472436224436247523456633172774655117743515423516163646257456233645552732675256265552477355262557345551641566415253333461117464422276374443323732416744175234776127756424756452724532231755546457365337745714316661275213766525655421425336656556577437626527317151234766655633422454537321452457664362267744316464131172356413573143571474225773517526653624215622163142555465737123727313143626236443632462276217473544147442455313615145376217362635342426554414676313243775734111756117165426217741375665577312376327326162123111267757436351521442476415527237357354317355446572152713465311556414145174547427625136476241315347153664341314475122161714255713711477134265546467676771515326527751773423116164154764136671553542551214435453162667263253321676164276652416134214342666222413211731626167772424751336262523154252334243254536143271236311625553727445162546462712725566761546147214713357126316522312277354371332723362464236112452572531362524627355524241251327577153222474167734616333441613563472124364164776561423752244522273525144653254232375713237513142413231726454777337732365345652223656151725415552655713441346652241166251733677766557134262256414512531534114212761114543662532323566652272614113234772261455711366255374676311733423552637537566414245744575567233412675651637672235123412352464745146734136217343255535754114521435331745767734342126713325111253717115524526243654466122733742444345136427345724363375567164332675572354471264732273642651325414364612363423715226513771242613453145373545155671553162217511246563223521425324374612243124351227542133166721451153477623447573556163572364442551217112347337576515755215652247351353527652642423232762567174132161462451746117534642122131635755134362555376454237543655142557352722261631716321466644442736674277326422412344524411166352352761633574656224775335555324542742145425222734434261136772366554777542263567442762175176344213623617126326262651771622455277463643666621457645745237414234372567266747116762576414344771521717726733735544123164431147213315327223626313626224611624646371733755436367552475255457754724127436161126176355764542541352154127646157161626426212366433732354332347366451323234473255541115632777735674735241771235123333217416522412714441642675517744365447313554745423617711661775433266237415173745347337337436262511544525336644567433567433363544712463217274544417167134462757541616347357745575415531177475442433351425521262244627146176644216555626462637745537543443447761747421461555661334211556713721235117346533222456716254766467412324257243566735655563172731712334763116476312776554174267471733423723563433533411131667537722255561141314777441464552545431767545552723323367436213477242231324714375537166142754423357614636546166741661615214555213263667554453341541741453747677217676663231556644631766273362414315364626275152554645666335667421161663573412576364264726615641167156426767347317726431322215415432265174142272275142374434366121351772526645264771221574333356474513755552271762224365731365236617375263323522743573376434347247271121453746142512753715343267371473532747643125422624451717647111454667655171653245572772676671657446425246233557337637211211216153735661415172136131253265416334637525766476713625734463134767463335124173714366262632155654523167673312712342267454662447222547431161253516725172661735741324361377525716672423671714521753513652624434425661252363756244626173266631314273311456144762443264674561731447671155753463531167646236233477467675563142525533422544477737666655435142314261643727566653751556433336561211374576656555143311364516575716736526523312135557516271157652555421274635157525626636635733211754173561376263154737634426747745565145275124332725721363361264143641477372746247133272621657265653632763267724147456632727156545742341561463176145741353357135742165244223524531226353611635521641456117462134257116476572444541716526474671336336317271434711272744724513657524546565621432543751352743421512256745631764253441576112455535143741534633347626715617265647444152126511246341142732652345422227432323342366313576174222773325372524261311241521527344443776635277526766714175247275542241143554646455456175723152547664712351756623462471374672246246636175273765334675624315621545332341762471143523326766441725461715214365361753376114751144722714636454223321642453157374677177674443755316513662111132621542622356764436371757371314576754256474364746716114133275755754371142673216117721435155743532271416666226226222374113611365474644524456362414554355656614465152635273142374752511416371746645132661275536234426457417425423226424635421435166745726772543175636423264241751655451351636136623665115632147134772747723737522171622526622535325632745431323523715367242435271763356713744227531466414647477576225227425256153121153457436526531253236655662313522762734625562626252737436777441747143624573664411715762763136133147433114463243444354562765711315461172442155323251547155566721567767245353226634772721566471641546615342763666456567757516574552632376475154713671775741731335522142613437222573772777774146611225517762714375675274264711562724676575175535225634454245325631427317727663415211756563436222364314315375636367465555711633172623254714677457536473265462771253411213673657632561211647156374554775254453445724734132747771555244173651115716323136344353321156666343565256222525553227652177676633273632563745514746725326315272623116375672453157162513444374455776636326674211221372656276744554441312162513725756243274172547214234554725431347173513334471332766534136712136755337752423565653547154154457245712677233521377763171415154261171211325576637645156331245575675735161741645723647573517377752666475612777673266337522641657746516316626717226152733121216312175145747747752567163615646561172675472416414673613163666646156247111452323712464712421415312341261427662273542144575646461715755116276326673116557443213475364715725667557177165723453124164455257647725635733646215636236663421516417213117513335117143633315466341472674564227631656252672452416545136425137124271136327674134712626567313415146352214273617412663553523274721547161511211143241617272422213471321372322537763255365646171533564624156241337565425272212354532135643477624713455365576644411733536166761472656516357254616611364374373343641621457465167652111457111545143225472442267255477454456543356512352625745173643677456223651642766167666575161462526341527673273712212762477655131154257157567162313472752151653152516633611637262443647156154553644527711214323567743167774443736317422542113462376725115552145617742126427776247131632416624524511633576476412335411642645226767244434314146311263347545356155262745466213155213431524252167626122662514123543227371735245227232522174616173435455652415247353445646427241524362141222155774451356212336472147266427524435172336141413344441666441414156676122137377543227317343415733723644251271165517651516241653256454363314523374372443271356715763432753436656415753273332344134376574257746617514135477725331752543367355156147462332434167265453611731555463432775331647677544745142121767334533357454444321134752273473336112431416243714727536765424651663136117734335641733641472271367575525522246142146332563772231311773655711716123165234445757172213677377571412632545321716136461647611761133415572325427343271366467456471743532154516452773233761747611614317516267235545151461654646641561451211234111625763152547544513752213226736732621346622577267664175431434326522746621211137136646422555311272567363574617724571552647572622771146415177161452531134173365575611643544454632114237547117766557745422167554776522576521527516513255455543342114455341434475356614453246573124653311453132651451227444223535323765124336635773115141414171522137633276261761273716351667142254347676526615745246265263261425253343314176772427455115534676424761312633533175744664446137773511532135311711624313751753753224317613354446531253647635244566236311655422474613176753671456211143237712141623143142532661511545267167215377714231514663635722541657717551552115255645332145332417512476645265613577434547473754726275253662363644677365346633435255164544113566157217743725351116625362762232251271215417245366262611117434762723235716734653512663714141637142556256252737232431742446643646215743671165227363477655531235146633233241163732571477162274721714226654663376547777625256641142475552342572455466462216273216466153477541725655434654565226255162442526532416361647336267715624161334326477426614651476576362127355627666632434122172142771173231133732116262715134231447662325432734336365556261725763151273157262635463251277463172317641366216413262517637761311543531677511541756337333433464442725115775753262226252516154632735536345744452613432714532315521365121726355645327411765235716236757152717465217251361173714737645542754713634662631142534137113751365667143632124342514231241647666565573165372136317634752155135714563163734346261263672776622324164514126454272332621221112455255526121176436751354376427664313265771127173761227557532521262471212433533723154722114356476657671144511774221624145662642527427645216276731734447227423766732135566426313515151173254643657762557532353633442462176554243242427562631224561746355144671116367447634756445553472327116221157124111577454221671733654576614626437471446172352356753334224615561522767676135374262625241542427673212162765525344426354442713714224524133614342125143417771473734577114475243554351631522761473164276745462157475562745254223631561356125333372162266774436132377325241174334643762761335131457523351577244637247435652375354436164243267553676651537661436711711444653751242136273272254155356312721327553666477631256665433465766232176454435547655555227456166171212167634311376244666735654454616724771533572417175172666345126621432674255325336237426453264167233322147671544367232277427236243625122123366635761271254276734325121233552444242463617221234655461624272446753332624647762351226212722255264421723577416554776726131247157532643114145733432325347464411465642352766573747271636765346514361527727767263114377216143635574547631547557217652513527223762557433527576427415566747752462636664346426361243722736645213417315753616635762465557554275646517414775662461621416564275762633774573372441634615553213723216527161517763151531227647141563535453525434153127351335353521174553136772327741675722666143243737352343574572561464544657175311355673154634122357145433444275332212531143554713112665221651413735311426673524226324757135216513334576376752474226733157661653125576446434573236723342422616131772535461147563576143276451353552735615711171447354673442412777363153555174237266757434675715635344633342165215113146537337134651344511627432253457323266371767125675767744251436452611657166711467266273717753713225272372112341377236421426721232763323443661712725776132734161467622365753255461257264361177236231376114532272327336775725732644714635471721153116717611315472273677536542641151163243265655266665532515773121337654174761621416372444353665112166517227312343213562126425247447442354315642264542653636542427553621352136456733137614461633772273441555522426741123473667151377755743515757654156425774623143131644125625712331314715516114422576337114525741162673364364737271124145526324434624252517314435546254735771355637254545677343727735342233257144771455355372664671434756214312673152616537627317372767721442723237421365361313252567652725211434576735463525753221377571321555245732612264671324445425567746552465555665265427765541216214772331116765525356256644756771327643764654535264213216516317352436644232776524335666637571435572565121421273727516413453536477566461544654257241712357632573552421615364713736247475461741327572662532133346264133772116241221332674171445464777311611545757222322133317147551521573666465377641254514622677662141431466237134352733425616614727274334357372736332515416277662733376625764166123474354163263557126721417136161441767416125614535321463577415641151721754535117752132372353231456452647332234231545114333656714662156773325752235645471766661457655676121736162567436536435562561357353366366654527563336726274431461636655653234374637531451225355451357234567327112175244555424163121755535476417711644423354664377414261747771712716541767566126271626623614676216164253343264774766757342743554473131455665474114711146343622372615744644373175417624451744214474271764324735565451725213544174635624466152621575511421716526312175554452655636676642153645666176754323517413374371416113561571416131533674234564644545735276457364436627332122416262775436363422766667634235475224414367235561777667642355725647321767614663662752645163575352325313523112512176274173563222553325511232573622652363632254423156736251332515172441733161634342145153217577221456441156253577774622334214336513351477414674675366622342176657375454426126416145641115415312333772534355325223727231761522655366443117552475176223212354553311166466454524344255467624374635144614652335761316756657527213727572277333221262177774756176472542762636357377626515423233272356666152677737622514245661122466356354444431432574337137132217244173547122166455771173721251366116353276524371211311722246466361137547333172222364575711657517732626563262315653222723112262255351346655727475136341761211536474431316127171674637637157233263725767662611611464567415437147343241231323413462241122664662636264477431173352666117266766153172441425636373452463412411426737173355237767436765336577742734655212636724171667423374361455252763265261771751732463223372716216544474564663676245461727111743521357746436735663532533444642233262365232146544117274641335457716236653266143465524277334712212136625344252527311132155566726322325143671763114327435215126752215123574612234657634446351356611532713475627326272757525563555522733472164225156345236775453345441671127553357125541552217634577671713661327431226373434611361341542131263337542311764545563631774327556771166226334771641143153615652553771514456255233341665267745234523675243761623251351176174716471172527226321756173222133525574673165711654741661214527773552243653565742447645177441452637264652247746324371117765232526554242577663525255267267712265153617257156331145763122714244141421436454376323233544145561264347474341772635267434751631657373333177167353161245653635114143317716125153453611465751672377747651563471137437516315516755742121217456653627771732673417274616637514573265176271352732153544426417267517417327576712217664237172211271243216166766121277523633765716232444362162113243225512717622434711447766171434756527132213357651726725626761365341463575222117312213675615755613651327753364335546247631536227415651665224657434351254437262224622111624371355114242675723256751361354715152762317517213732536656713315233342663543675261344342253625332765165551241667135462517261734123732427534723726674155165377772365546612375616476274713452543672366347561242222242544221476765335371341476732156424756216115647467535776662716542346267772575635621521371411475532551461632426232473425475545322466644131274736375651331226747216163675635442362257313524327341161551353111446665625171533667176164312732776765457376463741242167522115226114663633512127234553645146771513373675265577434113476214175266527727556325457772231263664413266261256222751147374512772433763522757662166273233773212346745236534623732662315515126463357274157633237415746426342127565475223177423375761634677773651431342753635156565162441542146122156464656565354763337314511433642417175154613212645517352424772152163671252614161741717241732256466755113374713271412427632241716715525765565216456512415721233724565375164675553435175516623244724655364664542724525377373536222717437735513124516437377652674774151166647244624671521426716426223532336442745324577651553534466132365122336172543427616152612535754667134143426672763777272455144622645251524414723214334571414777364113365736437751473764745545673415643537313411542241656322713453347634765226413637724547257436663655444277141434435123732164664161746567574646313125422527217636133712752446411723565757772765771272471656516621371175175474163324665752644545715716635465115457256754142626527431224754666433462357774166141113244653341175554773712332146357575463626147524325526762116735725455147643736557323221542446242726633521223772744466453727744156752434456766273532517212117617524756325324243626717122443435376174137661325571512535771345715714511471622313575662551616326717562532513155525223462564325326375552643367234167337626251714744423626254371776642733662752351132323232762763761154653752316312644267467675174233617175346271465114264145654477657771525446524245753567256715613622174641514147646224353245647341557343524121135667426642437363337475746453675454526373656614251317174752441216671532736717345476527135362374364351663555521257232144612143572347325574265324341554246563752316231112447363731126644422637257714115461531145156753325521636747462222376413221235451342546442312634263734257363241276442477647144452145673743266427274635523626274572372666215147276772443746775445674174724642553543627224724662461161573366655222414445151557625126115555433254426164712757141754675442326545317226617125243337631515737714646677472615432756152132645546324274364655327515414517113661634445173451322372254645557246242576276654615146454157635553466555476365756673542146142626156743614652347227663711614116725623323671745167147352433253766542763353557265373437574711416464563231517547476732112424675644334656131274145142343515175662315713636156473327443735654544615517273771751374447154631375715466516726134365622636423454255135676511423743545742774342776572262243374712356162353717176155465622243644772617255456377314253646262557266467574452312243757455264453461347427264425551756114634411647715747765331276314335622363447551246245117131163525311646214372417244745167166341212266221547612645343751157125145565317564556752616223322444161637572547126135225237563636434631677145261173625452421624677453553457367311764441674775376334711366436367557243334735674421733352114753132746412715574331443167212727422637661752642476653253374517451745733142326516363712442714761255647265417371336547774316775222627746511551673651667237231643234352333321471167255112135232556313535266237446474375421244431252446365222367226647333456112237514432263513534522454631642766136673721473757422776363556154161641244524123775165134322337746243367733434745653577141465372315653647222737416155171237777232616314246531513331131264365317462433757534715352565514334164244516175177472336474365642351716466376776156312253772676734145714645446464325543744324331744645422177735367234641213646153446211421324273226774735333231474326472545354577567273737352413255134227646436376326622556131447253714112644674447342631633717625336736234714361334526514115167733546551252722754537427127641633226775222424511375346462545542263273615147632162626555733511746356646464357666757737643235331156144722461446355352335651313537435736375443471136263252222465531345264132561513653167213552335452111634714275563771132327553422544631341762547151254525563746313717754254547645772544324737752464471136473577277555221633632262521744714255274353175261673713215411173631361216527347436142463323433627765177163717152765223546112514414224323533541751674242154425175436162455721237216543152415135712531765561723644637136376223714276376165151444227244114726331757511516233411122146556252215213374346172543645753741756176721447774723276554452746144764757114725316745723452766573261767762373245742554222422211631121737271615322577222654714716213226235227662352214463155665627141155716726244364134451131723647756557563376745551116333534221226774144313317155277132325137351351175436767766516522154667525643743616615523575456775465346143441742622314755524523362126722366362555125633316771437642534674643232634317651547124717253743336741235556554732143443462156322316521317374671274651217436267422315347466167316674226162721154324761731747671667473323514733455263276363363352423154346741317137466426644312464762526324566561446372167517766466641674362242376346556531637476362553221534775632516353535515353622253226716571762631215767534127345666561352441744775573457161225675654112357555264735413332554254732453711755515371743376543271674753353552422153357517364774765472746414656273521612641342751431635666354214576657254272517553656435464715455353417231311467764521467161737575736162332561476261237145342222726544676246325234361415232553647633234242213137665636451736323316641276311714664567346532464125772231172273573253226111251752553665115235624343664675122222476666471334237563263653465621157147137154667556266464733634743141743162542426437315772374162577514214457632615636547777527667647361637614114771746657621527625654741142464254461346242335427275612717255514252317334576247361162453372163621151116565323463562746367577153271412272144413663766125115124345415646242513212421333145666314175761516767211443515212667522133721173611633776347171457443665352452652155354222242371444742667736225523452174337566534231527423445231566676442431414147211264522454524424361434676213223443726263746312132214664525746474127645332362516627417161656637332235771331671473435553532525542774565737711151425162565747525615475367362476552272567365447242111646776141125356535665431465677653653577512447423212156235614573161457432675651112417324714575715262236336224244415556261531442262326262774532124661527714751367533441552246457747231121637175157325563626673571613735222121745671441744623312364651413636722612155153445765224713155447252353451366633331254764363221145474642177664121357655315527644475771371477113137126667353441112631152222233556662547615151253355554775321676474651734431557225773312235415264651144411677612412654276637567155372153243235477775334221376215155253676223174763417232361322726565255177576115557413543665271157775525465466334214657147667176166647425265127447226343322441241744177525236363414357773137345451252145677537772436535132177555764267661733643716672516617674412142231245633124123464256136477714327354237453754313142664645555271346752726225761415564341135646112117322245145225774332444342253565426753661472261634711555173443234732417451771165667754554122344137412551551776456454241554127544575744731137776735341537133726566274567772711715443526623134714743333434536737564155737353155451123456142635725323127264573237343722625221622455661617366613751452535246232516376466325227525573746463427517547376331154236716312262524615562632565762326317141466542332111313561361624456553632526742265426775233335713652145336243653325135651274124373571234267646272725513644345114474437246233743345727224551462722414521345753317271233532761173355727164652122143357643132252616411337625721334763756373521772654116177512755355653673254445633344354346544562266566113541445772427264757527757645545232467167333352747633737623461124453463435763261155347451111212667336672572237346714661171223322445446626742776511166216321662727675467354653534554574447526132131666536313667355636363455261575664651413111236721661125763233633311363573717612177123511245621261427171411472573624276423215233314415457617277461222255575432762443311273223271424751422355454731461521743463645232374533312725764236344522777514755521261454252666513174474464762554562737545745525746576145554121511133177665356263134741537343524536147146674632156654747664257624637555435232347334622612437321614762546462636751354645771633134534127777162151225511311514226772325414433647662444514664415375636411754441541716366755427367744776125552726727665564436565662273275652165761157746512461247566717515124733131735776245362332343233155442165171667525444571746351676634743453543635462242256715274161675153521114564771337347771417576325677172567157224147257311462333714133273217332657774735774331543145574735152447446743652276463611372774522766742637214554313664125225611717613167722566217517332145635746731447352437452534566774571365371435454636673247537536317357126372131535414142725171631767672631244227762565671471574773674166274725624163763734174675174513423125726436734337767547366157433634437473276632747725654652614211654613234137224326714512673424512273626323355177612463663235616236521453111612512143331765566313354433145136327635171377756627156733237133776751552773617674612614146153453267346547741232522614421336774213357144247265357651312555456171426343156275643647711356733744716643162173666243133252165472163757465515763721434163373752351566525375116417554152472716345424477237147712756374545146713656315242246356444513271616626273235161376233111653372474355116521236466213524712251327156577352576444474766351566631737626654235273533331366445342536431336752662255521647624557724567723532722147731126271646641237323776171326331552363441336361423734535771624761337664721566632324111617672471535523325315377543253345435674151533265127567533262635372262711153412324212376715171747267467476647213733372163613717726655725623754241477726226621532631434125524132212174125171174466522134726423533163465376516145716233635617164472742611451356161114411262211651265345572741657661421641262267476142713317475514557743153471442366667132262732327224642373456626575611131324557673266421765767756541565516375356675546555344332327475267237754545222177634471623572321443342125751277264633726276642616243466353372422775371231715316234573342772334444365327533463476156422512736512231772765423662571433723337117234335643315614253237532266177223657434675455263427513632551573172136535374124566437733221362711235171631343612666772424653754216627613241451741547711377765526577572116163461454456625625466347431643552211265743534427377334217373547172217773267732652616336375663673113124433455634135761622417177371712466743637352162354424434474516146642236375413741413257537312216114431251743336417726712153275175541676762336367473373577127531414414414741511647117571513456631361733521571576677666737316272431434617151147731716723744773136212612721746131243144543133556411662263366263417734511734472442532742417436672674356461331575161356436563553663422311335416234253235125373152424564727562324152466217657255321111612662733342672432527545417531511161364731222474656743515457557656726522644115613476146525462561464457733445126476274255735374543117774442263123754511275134571213324651777422121571731445224346762366577443764135331414226654652721767135443246773143655653231443652656432747736353631316733171456744527734731666242414376717165753444447243343277441111713622527173557565133452437537641333516415163253666135467334431563234716624242431453122266622171334225727434617664216545527731173516477444736625455321274211237611552615211213757623144566521572747121653713412565272557321411775621177317761131657725177242441243343365464576765171517635261415742371247627526326417313223353151211335327373336266221633172517621163516646161727743137446636712717412267177212316721776762753265325554575537767663162757267575231115666352251237456765174764421523473341475522571477371166637673234471531423764143773113776156414253347411111525236546137736616225652634645737543336333327121143542125413325362734561223145242635741631162612175564577124741233731134132434743633423445132144551653377454157533115441243557236433154132431514135672616375412255654377554726441237422451213542221761155441325441414641163531764772171656172645716373423177167567177174115271772732414613723772112733443263354566126476112313513127473121357146647421433764355751621232471574352334511777544333425541127161617153634635611435611556567615177725311773465622523562357352163154675775453246317677725163361617361162726332263362365713353343362421613457766224543454772355714256337674674536324652353511373127654645334111752356625276337532627414247642647274276615651734126167574671776617436231136322734544613373472364236163215736332726371631211531265174535221254557371574625112131551224746173642662652434246452446671276175571762356533347225372361521342221337566442166712641777241216531755145111321332417427443675551755562263236451631573447147134122662222654423475765243267262165355617765537171667524753713322751633541423424513466253564136444527715156522173552371741563336611773521463613377547655123446247441723773464725111116627355211356452661231633543664555413244471437535662755332617356136364633161733632127653134162775744537155162554777655362621221745412427346525225314133225547654525777735676532262676231775763435225231122774132322245454243527343175317477213555713547265546475624454435567235136322341216365752447273763715512354711243761651714744334534416753455562757235347743577153634422777446555612446532211127573145445412271761144117247462533756523455614623147541475554126425417646447141546432611456167733665762526643611663763322232345544433675562253453142415727265651415676565614341645726421546444675375253753311366272753131174464234652356776247157465111111471113512746546564672631442654133245616723661646346533767355761415176771477575531323523542441412112723173153736152544137375435757263673227522531616221451135123233413736227564665427655177712226667374116265653525423333323555445566217735523265747263536215163553463476367517414434127643342746215456315475546213625712256443374133774444311222614376524462711534125471133366646417262741253435231622745264752723752347375541455646742672221313617255376762741525423673234267567614335335632613566165571227117261735651435537275115564717721646741535762554565365165656551645442636435673453123741527474461246421264754313534137213152532755526755454115351175327525112277162757535235774223755121542653771177153517311733347143337626135344452732164261524641114266772436175377627436412777227735725162712453645611542152115771663411613167554345432637232742721372453162737463235432566672274233511111423473126761141127251774256476541272423413636632766766525365251362654116373267466465237156513653237641611131776736562571362767372367441653664561531721267455325654622727476765132244452511342741534635676514317445112353321626171564355135767144555674345547351536265671377415152543316263111163112613753113512766336246667776411711216636371411443477356256121212343226267341376745164122133155321744552527666564374715211627361355144425324374634334255347366534442714646475772336744571546424157351155616515151666237224356673622136721513417665512543162642346652653733275363234321736224661455543235666335742314517542221365242556434376764334676664116145751227254513611344744734334257156371216616271335743545111446444475531421441574477754554631616345211253327571151245733417517335266274647521745763565237127764473434211173167767345252153251732314725245545554417325544263466537231144722477141113157477637622564662463734747161566536533515663563732335732732221775757321131516723156752246567667375421545616617135132361147237367232325117771714431756773726655671134746646741513511521713622412625422226724176357522643334476677443664666276724717263616366256223611271117723434563245115732754245464677611265734251152565164521411167142377164422621711537213343461565634734315661772156176343771151553347711477617225736672363461556233125274256377772661217466555467772431257711711276311466344714773247465566566517531616633343654377236715763544621611565212516236263154563137532723112624115727545144533747722225535721432235321146711315321643327233416641474617411653315512145772354231417162744222463233541451575122353362667372457165541676766511737476656677754263637711626516713753741532446254531543526576461775373345622451224317763543513613542117763151163633743336711312657252242566516163576742743113371317645713774514165161276616155316263675265746465264315166713635565155673471346155617436431715463311762342415423124171634736416136236474644376711531713437271275731717464134746131223665725136641641171423221133254543355757654741252333746751477754312737124432567723236735266275647152755522777763225231151677464461665441557647173526634124112547636563652737636322115517331475577547235327224746367752174245624762174636741556315422733546237747157644541617552313515753677773722275551743127252533427621521133364131336531657732364467643766324721245731216122362141725334376117225732163766236544667424153674626522731437464232517662267557243225411544573137327317526613537152623761442164726157122713266374666175342451143157153455715645334354771245462611717255157554377744545573332622114132637624245341126666131443655461555637463237433413336473761427516373342664741212535474174255246176434623426456643373113441276116142535167724721341553217237257775247647653464411676211244253262615613761337111171122256665124216116415642642763175423322233655476341125212511731673134446735675532655476667662152565232234125617175545433433747127643767563364464251125467755166754453323762322157361721126535523271534232575612651243256131724343437254523215572617225752244711244372743353144434357165312772737367463122446772537547367557165113763465641452734112751137245647347617473652744565753166723576634516465144252647537756651247234775543351777264257146144157372663457115316236663617424133263551116227747664563144217633142436547552567656324742363265513645542521676653576374533161641236112354453352742762356755252316216535264631725325663452317537367354214576612534422771133116256114635214115461723323536757664516262113534362575231524311417277236347622361641464446171352372416252344573661737474315353613245172226765365467437162737327634444566566434114256374471322426163553433276726334265734767333151537172332225157615371271145453525534777323732722662773227675157723434466172265473664326275123216561247166277156556217237753365244461367427325273723137744473131467637662716536741445351122534574466554746523527555324545717561147735433415751745677254155235242365227411316313213231646463227455211163313245476132126765321376216335575213763675121131662622553427166722427711622725114216564735754766131241233536437757636342741537353467623116741751734777375342317667643264762267354753174732162151245564263411556164475177276425542421247411556576356755776752436611735666155145662567351166332223225725733556346624644762524747362253767334377253541231414111246455753717446554141265335656673632447747115663377425152737637223361365476165525477315522614626375435274124667341472154354137176731453254653717757276544246246743317546133545434563337654711676147124747313167535162767457532546557255317625772572777746143216765222744736535115275273176337346777374761654354165615226752776615756354541275615516231236546331236774547661562343275422366232364364642742721355616447617534653372177364566615415453534426174435744714453345715652336617637314271611257513225123256756132162473665123774326132466374276476755346147446172714152172421472361344142776726121536156332562732755553754745657644662524774377576354751346235232711272771337421257655113736452743762163325457515514324617566753362617132711762643215766146645373454571171171465125624422416136515274274415543365147622754771651361717462147565311263572271265335537675712771532761342453612434227177762173356554672157451513344455555765323171562761725717454132777417132542637125121723762314775635752226412325246431736377676573271524555617433417523543543413144125563365342673664257624366613214174533257461656314377136727241741434753111117147511523426453541614321533744752733216642426773274547732325133346656645777611221615511632556173771754555645757242622626263174473411277664453516661252111522152433643741377651541767367452651133421714254332327415335372571513255357774421763634571222513573211155756631627313762226416676311425334227321453651274744744576641514226151116414625333136517375455277175227277553436632612653322741151714623611255137321615231356453554147527654371433513437664433727433516415245377571134123467761754424464222742721245647226326335166635357664157374162225247213622476344433242173511134541673155336273636243363554151536725234166676362117456743441434226752457351211512567465622164426433562637652133372357143352625667247533631733364523537155251146164146322315754527772711546552561165127362266642642242327165443663465433752757143451622742516214444221436725641377472576756666424137213225612143212462267265221545655371711316537116425444355543247161272444326336213766415362616736155312644671522127161537112174623544741521512114113276321522213551166337431631443174635616141416625452524521755465161662675656641527662354453223731727316714712253243471246561754266121132633751416766173662161526422434627325455254174474614655531774576431377125535375656454137341722676627521475234733661315443544123624667746573365664126663256652243633747636266765477456615662117412727712632531311457347147252124425525721215445513547553572124475241743174541311615652343455114722236547124156346234352746641244557444347665533446115371256413762735463573255511422363372234543146626265423175347665136463747364347256732341116166712647255123657514517744265715515172127633127277761756475375766576711175326337425524373234734714626125551413566242612235731533134647525777345272463626332575717475466256213133362654516775576637316323355561121426167776555452324247675464617652652562537515646463353132514571156244421471175744363716376647756772535616136642412772531626523313676467372166336647233314357521211156116424351344356611345437541667517352127154673575741474652631511647751176667156744123671174165352457577466515313615376377126564122162147111552144674545556446747257574675662271767355222265163721167657456676715652374614423735155733162153653451617412754441255667376615172436531661165423442241271171671255747226326261644761712731112326732754627437614314414521732165652366157733724555226712775314113232147244455134755756256716416623146254523447745543461262222215433447133576414261437565617222175542555726176415552531333366615352631532332274151336362731511466642625241362161323163356547675563764511757356312631157144135725213575612632672165314317722514336727471776165414134565577152416377336447246617334773653761231762615663617511543254542137164353545444635615763477753176224552237614366251156317326526552337664644324341357322443336324557545134676222451412655222763442527352632455723764353165475141324251534712514123551271737435661225362673244756343452456531411532277371614414247625163746127264313452554315623624433731643561113561145575461154436132215564777366463343223321774616131677461337166313725267456756752152112344254235531367234141146465675133662375151117732556173733423346635166614615622217717424667234227746526311163325217362762725441444335355465111653711211513357425761635565416415615746211456422121123763535516277713725163145351472171555345174165477217624442421732171644443153624754147524656162212276743452155454251222621627157466374742251726454577653655652623663357514577454224313717416762367726116577634366727312462372542445256245122651554625155214561646574321133422577162776431126224774526641273454473672636757762471154657771447716376562566455736134422531775616746634173761654551232416676417273156657265444222255525377257316615612742475221436111742676726521413676156562725546744143135727251541456445536323217524136742776143227163536571222265617624713641362371655645757217717771374777126456643331136251141247511117132767654317333357355572543764616116113635671235364155323613313224134537227333162677543725255617234676727154474765632235664456471271213322663452155361251526577527747363552727345174322465345421314453141244371777431111645571543327623157576516653754247711775236322546617567556253571571612344366452433321311125576665756112541426554215447461252747635656744215272523451327544651754533546157517151417552426125222674351157147154317454637641373464212321344262734171455533772331152325442771374614161545234471477721475776227611327513326755236142411111124715736717242351165712243364467161575465432756264656212441226126275655437724552241761236347362112711463357134351467614547517712322362727633461647732316466477632261364367646733726161646477562611747567464467663661764745714114322462437776755254453146637251613753335335244771536744631756151466612436152661635622314412331366467642461646131525756527752722652555114277273465153745142444722216111441471737655163667744437667563727766272251776265272635633722225214235553552412231425217573136651374142317661714147567751365242273776231231331746736723252676236437354577533747532444753243255721156437424111764421125333561474471454425747155516622556144113553632464367274756631127624345623225365124153652645657751326177532472113631225313171166237131125354416161274744254373326332545273755653714417246515247712366117515274614266272764511423751772653314665374325424215346555544133564164734356222542267135622426765414176544356632162765666732722463763736475367615775565677262342757244215745145646536226335572676633455253756643516341364245324336664322626514165133173616353775565236532372711615224425444634523256123373413665421762636233675313326545725475241241434466767417143127511452376423477146135716132334326575735677351355262764666223566546242622747115544134433446135772625121426536313127472145651451543355337373245557426623521666743371245375512477443446711176172342557216171331465631433542362616775136735161231113255533761343154766562311544545174757266413132437226457534212122417445427623255216255331652154326363736121356277234751146453115745467363327357474211316164665362237266632576646456421336726665712132716276263132174231233122732235546465375621231664727342544171554413353746153253664721174613662343671315314531131533543325724141432472323716213265553115627324571647773363415635473124775631477664674233574467131442244136216265755471757416533577134447361227124754763134671351364632777131134631331543244371531233324336452135361456672432675617353717565677547674474647121623647252127621774153424117133114312427641624733432175517632244674157733227622266577242134441132656552114766324264221433771274361246456156727436152224525636275412367376161145764175651445274156415336346453252671566534454172133676523472727116266152617437632131174444556457415323514457543655166623271145126652323771644243161654214211724621753354552176415663313635141434631366734154734513145551454437132162165414776561116673632476312531131611223212323212676736677254461542665225456767257164143772347525674426164154212221526237463434135567616235756212374317256523347237212235643653722554573555213226247353156345651126676264774327134772477344132255744663463116113613144117534143557255513233735227634234227745323251142465171623575212145142674232245515234326616431646542633566614554371732614667654542746414476764424426721477465142356217651546222673675744713627155777775163174265554252162345453354265763474113662336434772556274623333762473162214261771155775471743242572121233151241357157637633361442643776214431656673756652371335433733665327415374663657127344127523121553524463253552653531232215526574367636454642721313427547332222651644472265467421774741775137324517267316256331337735225642514265375247155671134146652536627347266172721527634341345522523466316326512663666213257142214563534355337427676531176272312172454172726771152635754674235555722423736535733127725325742627413746351223627331324256152354324712541563255211343161677244515377645733362773241451652665457227224611256567715163247347274126151643777647757465712145765477325472171166774742454651557327362721221431347744311676754776735127253427544451272272217677413126254526573352363622144144776222246532322751111362677373114747155731373467512541242173514312326732153331412666173323774325457453751323475674674237427161647714223346726575275612665574772664515742643624543435625474275363736553151353126453345715525365772557164121424472736531413133722177115627173544647623753377561122233735145433236222416157756351416711526462615626771126723752213714175754256631642743755453715217737535353347444542247115316246132125653271245531646657421345367572267521644421624573555612337471631612717441434213661341615745132333624561745377755723223721544666351737234773662563126422615215232325331741436616322274375225757273147244321373335557226632436547254372733163327165776772255143752513625324575525326236444457655237421354743514446361235662767573455673276467224152314274473443122712232221233551711531277555251441674237342521732726235322141216311123757343337641455277515537567513171234461354522343315111771151462415255323775232664575564772741322141573173526715554244644151372417676275661572347763566165314565464415173254471317765775437217665526246664335467455256711623621564527416152711666514325421113163546677524126116761533375417715472352344746767666731373143155614243371176764764761117324731423237676717527325623745616473654171261262154276771465266247424225253462611237231317137764135551375645226263377547554563166553713416242267431375454123443327612363226435571637415217455717767237552334115312352174143644644766744111632452611121645233627316314725137376667712176712214255276613415544432433632644155412333213464241674147433727435217542163442165344662726437473214171411756265623433726561627132653123311141724276671456531656233445166272375635426653546623446273772533162765646425671674147751462536256364242124675175512621756343162731444565356176657242341375623725163661527536325431665615377772621117452424366123212713544555737241275341177113345636123611513441552426436541765542363665136372551613566432542236566154677441615771346214571633673412171244337146264126565751442113233447272127137651447356523624257425456177714673741166641244751635472372373763367475363416175377747376536135465345264636537366364424467474253777427114676636676347776747374675757651257244123666767665625324213171326344655355343332125667372522654612217154572134347227267442647431552557246352125231157235411444522771724663214737156161643117563763175665116511626626713413362662211777577361553545446677336626751351232471547733567567513416423641674143111224414472544134765442442256671723455135323145535473647155755156535342264667544374777176674472344211531221365636335446446175343175257363432125141615441452116536354414656171616776553611723616544315613523624514562253265646433255646247633213653762427215167576263116172324722332565516224265174376317551153426564245167615426257122767225656535262771773654563514624655433277126337537714474146441245711442345111155157636335211335745273437151367775161624335451374214461476535546345321774553673324172242125771546462571265556117421644167667153633773723671412554642362351355632242654234314412267536763721725142326743476156474561357671764577143131411236176545674573773363366673144156777753544324625244512413716415425323616431223641312552752623556317512454677273334412621122571333414563353373636377663615254511761551175446721662661241765557646133154121624114372546536414412325742444546161532775661533213446342477163162155244744227447715531712627337535263756462445447233434736751145664363233566234347623325324441237675322571533351253514437214237216131322374623757331114125441362376622761354743715125621374542673555754111676117712774745311612377175537611531443634347112314433554327411565742326763174225671356722653132647172771371734615644655753257544453653724246621326773677335273751357652277261334124424546467755123221351467432236511165133732655166333462446752633753466173457175741277544343647256524534163713676636714551746663655231741252633435336774271771457213377534111353116727536647115136476453173321643545521526537443323252571724232515261443336214635254334547363434363531764725477125561254373547216653662464134156725752512266126774363532245652555352644753775675335621145623111557734543133624557241366252673757164641144537175223463217366665714467514256177613161372441527227667637466466461676747223466531627524564322351352347372642525617762457772331576134154251433225223317421665754757356114261614335667721726525312341362777161413372265466451173441466766775157517646416454474137216215215723164767621667246662573434255146446765151346253152443715433341316114632656576223376617354611632643235533424247566546475275362546173765327743722666656476335423424623564473164364153133756637363755234673173631446661277252222527443723444647125714234154375557623136474172113675437746416155237454423133244535277313243162775753324721354731462522757375566464627422561363443525113752521457253116355424151433245632115253372613542414722165521275416334664154541673275314276416251174573322766146466337661532451562153574772727576423512665233212431611227413373234624712526147412462423564133467742543135753613253326776521156154441644453753361733534315522541175352131326665157444175566133352111424557345254222523271225643154216664521446267343574735512137562441724261777135324621573115163227432761161264737431471172717343317626136355641623163214374441173275772627435627126546177544754264775161144625641525545522127546256665771464352334711663175163777575415645362535346326645344754745415362731325141774667435232727467237444565372413172755517772752764137526347527231447217221415624321363231223357413434556531422154314637153517451124513376341666327614731212167363634274147225251151564616134152546275672625533541716411323641116745634726472756251222454637152656332744615122151273437224231427454657441154471511764777533674642237374423162144352743636126613146766531147364611216571423414717737514621747441562553725376767153745546644621111355651317277316723571566251451417315455476346231522767525663745775543413256213475663556344651561345676135166435225514452147216432233236646512424275742156171645167573477341523343737345256254662632372336317744241374213747446532163315141334662631442746113675213435452475165367454652562761611364132371221657714512661777271346752213224421323163343453372436434754217642113313531275446722765363113177277541135144722623122561173473524577572327711264417665175336711467351674514724475473313156641776144324614427177636261575463564572233615451467454472552332711451573265133163141417756321421567747476272622146376425241422412477546467751174725756514546126375243212177326122717777465376146774335555577512715774144575522423755553333314615316113573354527136713246617271142744225643335331142467341477615171433217534261314662616666146567623253327657627416661561464344335754216215316356236214453721364352713745465334346171636241311655246642311254571621674632163167674561123247631712113415535133144512635242234226531773565272625267462277423256132323613543124654722332375522544717312566262666372534755541735537657157666266116261767655751633612626516434346165376463162164546637622456212142671647267315162666747225757364556633751723521121616531445474352246454657231344434217264144671116153541565622265677735553133343241636724617747541544421144371726222713564577655641213321151343166467757536525272334775724141566335433376357111444733644262257213656326165265341645323152461523117642651361235432175512162233445541736176212655774656774217554321324344255442252637546351446762235661227655273367253273347237563242354453162422546176433367336652217646264426574514557116142636251245154536416177545667464761775733531224765776754643512372311275561613422332127514164315457667456537262535647737447217166744723625736211715711145775113611413614511432542344442132652344425616461433627354617144232566221122752716427445137134661166117112417522453436233345636634654766226111466621643271164662356755571412557453451167217676134633422465743111365375426426321124465745433755113754616551314636375272146354774461763737171465334245453377617357456753653132574221765216272246314112311535715437536451412536467172432625426262246215256523363312454657411237565516244217535777236733775131127561414745621527654441147653764743114622423515662346363441756463174557731312767235763332436315716575577637136242641214351311112173553555657663757277645776711317574161647636245255351142753715164573771753616445273411515127627476177114576442372533524356341211211121771646775341634351124345376412611766515332535153375732462543634735575341523432763566145411665457141775757413711271114745145614627121626677273432454251766557253364451341461644122536745714141477155272252345766253266152455616634345672747635564122726265747742467256553547426731242162676572141167145522455451475715164754362377415257426165345235655354773343375124156775432246143777311734375177416426362511325725166263713534674537475746112624432361762245725573442146151232676244333667453323557674511734235142514174242464643733324417143567731457174453257543276541555144147325345713337214624517775512135756513314536461243534623464576375266627313362317753345775465426245241161427657646313213752624452365415566465463314725224577244374246614663442773466327177715555262764552125225564335235336224134333611232744514146713645561264636231243331123447431735675635317322445112234467443646426212643675133644266546523217153165352642455153463356241472517737455743127625264513547517161154742636141233762454121172717126434616634751351515226326421533415217164652616767522444417572144664772451532532613157421571775463162247413777151466441511511451751114265555653732665747132267365317125612472165254151164324363133235627367566214522742414142355711472522461313776314455162431122372655235376716531415235562514143232145575465362423236175265713345642412242177342766517437227454337571626246272572363436441416753124227743664234573745673755652155477374763417151455346543331557211251767421427675522316743227342477475347513574347577514146173434474347421671436316367114723365736353415615741573432543235474366244516377264254537773316265635551323363273631313323644573365252425745374561621352547227467314646354713562564623217223271133511545156546726321641654215411713757676653445417473662422364465673674551734576556146417547376167566343341127774621454541461477367113551563663346623266245377345346634723311756531156174643617445442745277474351375316672362435273476336216544515345336475632561732766577465155621545415271467672161141777625317553423144413363512625136121653541113537261421713274111712217454675242362534644264675676226275665512741125572121621322333363162644141262133366557513637366774361776134442771647637234274115644144661435726124711735545265643341647112675527122114562312265532736637131773724335614255375267454346363562773426221747416226364641617167466632663761741663513217471476346342521137223322713344373454212255531543566222413736376734465572445433122745216513452365624414752625131445256737464532325767456637554527445351211764335234112166235527464322453653225742562162775651536371541125351354534133234712166135212214151216772375621422622534254416225357347517312454747113547322344272145227251435123725313444611422546461526551464777521776567622277755227775355654627137616671111126732751417175667613574363575711674172342263653753333662353243244745262511717274627116455672315712431673174724476421465144317277454544244546117163231756526437574151665352274313637735717763654361441367526351733737432537114553631167152716171475352534545323625735742243153323167234722554146752457675212545154217572667465362531537352525444755146444574233516762136372255544467323764327711611113734351146514435226567561752763467725241113666571351431435624273375711233612551777152225717437766561624176343435442664455631631517712532357723477777556232415576567132261254533742617643724573553566115145541735325313614274662241143657433546461331513343631254362667543226776232423141335563213563457173712745227524667336767336515626137424345227615751567513574356171133667312475162257242622356265312567622252662121244437665524446634737245435647674537427372156633435463345723123667752713211714357127343266561151246446657161526537564223773221345272171117263746625441151363416246447547566762775642651716351274142236275125424171466467425544362574425331162513761521564251716257532565565755344527676233333352244514254761625367257762335763216751317675656576433433777665126114135735633574447724413363114124532344136417253345627357571373167413737717645363164123712253461423727627623443662465665272552724226221224661267427316737315671233765277576724666611523665545561277726717611271273265665332121242145146127351462771567223536763216734636774743343422553127135345347134744451615356525221133661435541345773163637572315411111164651774514124416375547322423432227231621434165736623654216463775631723157566362164441273142333135336545535453572247476673136342174751643372673227166166562436646354531262361773622541517754647516251311556647332526667665451332367447515512634716665564322565715151233623176577466354615155766563677262572453332356746665465243644764244513155214112777636464142547174656164174426635711766364531642427245745527322113313251634122254311726672634756417735231543172434645725321737777774437573224476273676527732623614366257672452361661534641122423243177171235564662146523544116534735144177556345552425711422475117516325314141736212712756235736127653575123225746237545367174776764443146561365212357116225625524177576465534344512414346721674313464222714343133475132644134475735467672446152322335533337716673353443626525767213775432332123551116477353142254464326663215562774644772315634213756745367746356653353514471212517574332331255252421772441653734115551114142751332322576753267773451662376574527763132131457541127216446327172771234536615772715125761724724234346123713512122525434625321743411414615275576752525226752147527652342772643657233645642155146725162471756253366753536755551564413662151616356253427425213272732222527722646654237273123453646171354365452431163223425152347357515254713356375726361277344473364272513232772574534643617347775326677113423773446133434477571342322243575165442246612361431465617133514334767325177445677646547463734471117132653526276374241176513353364476765236266225542652644272547217276623642654447646233643737741752653231417265261115512174112227325742114233752263644154656112144657152674263372765312171111226523641231757221311251572573715571174126314445417636716276571241262714735461342436237256725153311411774554711353177124736635156327621375777735456367152156673536521552441555233161177414265631523517646123755274415355213677741332331152541477231766477176174331574521776246273462233344363627117462761626645175421746376767771766166261245165541735675575575665673521656356732235735575255134534277474323236542354224151676362772141574137175242664363542517617125376622623556644414662143734146617561764331136677457654167614475453652376422421356245565546226765462713665136174122711575517526264466655557377122322311163136646414212751121144366637755461465227741147353577127722737666634556553677726316322234436515422766655254357311143365742713646744123657316431454114727217514417133511642516554175471513474146161532617252131557336417757365173246541567163141115755153172622146734123723331431137635246427635632433645267244346352176642134627154357166213557524624622744537446274224146414456252654747524477321733437271746565752447522163235421664625731711415163235554116552642325727213364172426264765752245567373423663274445365664562616466535161561127573323212671163752524444514536675347552742157354521364745437321255124322437564246466773456511625541373556545173133723271262355232261546423223645131452577635541666153125357735541716156751535615632335173176653754653561645537332556365615514171567146332125151446216777547261351374132244151225146756133153211231733367616137655552455163513637744464456361357734313132423177213542321156214321753356627241251546761775737451456114716723151335235445247116264276567473171354711545372413341151631717311455166144613765411536633623565733452356641356131274266462651555122456264334236266775644143227633272227652376145135722536761763372425522142765672473647546655376651324642251132272666633627451345517114221333463662546137176122713713326472131426574417427343633133566445642725775446422547732256635613376611471256227365361516463343514524655174715144574554534162455136533453765561352627412112357764651217625375432635566217445555232364346276753235716646673551374633477237224657452345237514635422752714727326454621545435221773267471264345174565652325157241477541567323233613417653567674655731111152566141322426664665463176377324764611752115115613441662632674463764151463273653331537713212547256674744374563215311372513661716675373732317642574533114314525315244656121175465747452723475246774362373514353167225322771616616354625275634233255111237422312257741462344671216721753116247565552622756555666472677211144122771273417354154713373224322744333462723142656256627242774111453111323721115624617634134556533245376771171774666553267744537153523513532733411366626513265174565147433727372532323263613532111635667373322466637166567134344531421547773343237251236233676453536572672347672627743667156125467257551176275571475754772513453572567617521467536235734125573254433524516646631545451163653377644325177664456643471517274544641273773662237214664745676352135155465154417532211616476443557456234753515477712714643577265233267775247626711221526277335162571567324427237343434264216136215365421253115241415244656671412352123352554371553266665645727256371126474124372532627315216144714126767471131315577431243156666472271247364535274257474613612542762717147422353712752544134311577711115161226526124371714344525535646446571463465115316663435111764641537566135657471276643454564352424513327214145375372531216743216656111221546477136213445343763642653116354223335267534361677274363663622253677536412142332342711477663117561543413747163537731761757377356424775471521163156255464323452424735515666676325244774335764241734524373374235141542114724551564236777321633351526647432111316722621653647324466372347662612425777764263324652521166744144425116116544765454136235142467221132742637346214617533347615537732247533577311712676333224717713331313763724125425351614315377732775463765517442167357621541445734414723563637757776777254211715466167446622736736536653475577456255332333537432326313664444412341763326772636277732427165535662772434423727547542674622365255555732364657734611271562732666545437567365351642751131434533376232311346774271367512656421672414747774715424564556744677666231625635425261741425322712712625111513444273367333275465767252764756422143411534763533443571117576451756236373712475633123223374241356273134434673557173424766513641561774441237676717252751623276366476243276257151777374566727757617535155173111221161531542646621614432132544655664151125322215275747263441136625333545377517247245374741754536371645475466624637567153167544415473444122774417556565214261731511156471772342436416127456562644741621711255417451363332117475173274366313165133173535157117637147667522731654373556453365361374364346453441161546475135663634464127775431551645525332127524152675564341526713564311534615334613463137222112567233376667512215643147171273552674243133115435212537647177346645263575227663415667653653721574524723634624365753652431742123675216671473122521216453446542142664443612325616621475132627134423767451714574557536433524642213423572573252637714547133611743326675156313677777455567153367612612521362743752622571615143235436672137425723325414466324631573473526652454117567336367753734464655654133654543516444532235575374253666264747227164557164543372121371226513645744421337674254556516642622117574246471473127576451254436647631264125266571551327354117715177225737666437525667535246247741762556645512664442435363311314424673557341427175451377621652423714463426562572246377373452733345714256224415542573532171274531432157673433126367553153114577634132122364776745623332732523476223426565364262164436733374555576132611341177276652555175562441455636773212232231375116666123361754663324447763123635523437766765454115563561174577352725633433271622572752162452477663566132452644123427547175354254523436675152474637724725643467142426475214465167153564251427535611647462237645764234752124277677665723245232127654251563273373272674321145351446764152572121551651423527455432332641121434671666147333362234457754776132423612616551217323772767471374556147322216336471717377347477765713655775632512623743661731637521726436423674165462761754741115216161733224642417677174411622353363556217573743144743325516654312661512562157573276547322327761351431677126776316274226561457625651752654653625445171756135116575762267556237715524613525336226625135124757161544336511443356147764577175214372724575543261276175645655577237332113677226446357154752622556572112512535561517536223476763754174455631527712654617251151545165423226461351656446464573651566231662531667164632672453141126642632174374372774363442146147745331451171431541376754252165262715763264347334353362176225144336234664211253622361461413111654471256677124516754234365777155435553552475157154566235735632516364533112621735515447243746221147623234537524275143756452413531522146622664323227436475547223475712674773526731773743427451712473773362733547551244527454756136436675262546623641322377166711644543463547433127262432532332527114643127163476325561735271343364157452462132764553657467435774511557737233523217515654637336711165167714467711762556131274776114633745474475564752676115625437722335176535326113212714776432535767577453224126557161451335627415476435657572347446575752433414344276775764217365356743327657415746745654276335163777332421453156764542273235645245211543512731726412642165163516341516771373476341645754654144772154664723353221375272661264755272571313642273433163442571367127317437124343677225662743172714154121732577256112671214514725423235241417436357651671353244127433151323465323471577645153664631355311546312663742636545134616654474652424724221423477113465453124612253756377351717711451235542223452146677644644155114346123346513727677665462766611335351676577272272271736236216453377571441361417731143777617465726775733271253366362773665634536346253462611156725324513416763636544124474423335167652312321614571313754437152671666727242334723154452234133312411373431564165473142474777443573744477547165746464523135262452756536614524417256721345174333542415415151412547333566275722216547327125166434377546576412532577541644462325154742712742235477543647376442247753264462624574442745165741266255664343526215653157566363521347727563136756645144132772343511524563177176163661214423651331514273574614423113124576264311553212453154516117331112127652731451537145427337264415521575612646122136517433563234626667561766772315165233612335637637526726635757466221513737433515571563345254114146327514566147721777435342764511433524274111213213266124324175257521352762113545163175531241667632177265417164613223167223472376525445327226776331641652333554325273135761752616772271323772545474671516674165665115257657124563353334123632423233161146142521156312716372633166565562566641746776271741134553521276446343537421342556663357522542515452735161235413463637572166251136341141274756416772653273111223156375424722772662161377612635343363735441551137345416562765532152456233477414447322271377153462647562132764432563623164271557644623225435111367662377621176272673116752572522621141243344273454174672242434716134147575324763312772325477262765411572335723353665716565624714665146371714453131533412313725375111742143621143327562122423254774172417711134456445561122541247767122123236574542337443621644144757362715675252516542135131635343272564343277452336642456431365724164631152226453236564341516272721374523745614247217755735766267321113311271635657755452357176122343674625171676764432767617513156445731537627625472661651643251114716773166157711111277264521642434243643551653673113742435521153471775344432632233431774456554235224752515617124571671246735547362176247741163643632766571445375576434521641234411516577744674345227663747154634626666673353127553641346454747541341332566171255442616544241325563715174724142716216163677642527121631433151343263211462567642754241414632156315735275364457756463524227436367262172547316474243626352315154274413577627661216667625757675326767447442521531521473311272134722776132324417553524244375421224323341572332327611426157621633476722771135366366321335217314743536136252711546617634455525222575512437521724675761447113745225117343236431121621754766463215715153316342343435442252111332244751321246363646472736231373517215236453371676446752774733413524351215545725572466576373543215643654541332173443322341736256744343716752353627161335521355363726327334453145765112754723651154715737316613422323432234421646247744115671252375747254537733661655466256373643437457142136524613451216136312755624547142133415653173777542141632237155451122527231541516723717342357725231312426512655646151175334345267232575455742421445666331775515547711466154537563343115276156633745113732415355723334263712776313714411652411112546154566766736336111276447462735544333233735562572723567636733621354766273162342545133127724316453744773311556733545166162434271616276646125721275614623275636626657433455247357751454173756552457334761515544631717426125774241273573654441735246121733534251367751237665677415326533276623652747272162562644416461771563261465475715174462732617711161476654415376126664777262362462442427161737642442231367526765142315234336423677234362344234152414247573546247252627144761476647253243611444363644661451522425332766351335163551257425511742476776634777427765224157747745324315211777743751564313217323164615446446544243222764224155365156713567554261424622345753621337232472466126372754321726211434446611767712641147662654514767335427526531624731626115577375341173755721122626771722673522356476115627722323215426677352511461462163266421153624514642223361431547176131157541233617142461644721131744163737262544467527623225333427246443562736476562543275747323356334572716757635123444342374732654344555563556467134561137534722356734513167636143421625777463637544225523527423676161661631115271532374767632331141227472525434417751546543765371324264456122773762756733342162315634313335524134341244571717147644376631374711454567346447354441171664114616654334461325363731157246661352347773532675424137245352357416642752425524377114137776133264761365531313253174421517333552262317263325534153634676742231456517626347734352735426312535672464455313476745241613645121611261746577131135662752347753154373377356362316264363626635152573133171731362311751353145662242466717273243463462616134722247575515426144314763145161554777651542324321742342755575643343241325557211415552651531324652216341126157211177375461523317637575626435546757627467641172255235726771456444446425371421737563455264442317745526457422615674133551324666553345372355447227733211343121717345114432117241144456623335537574214747262216322177153426272352672377426647513633752323243471667121264157732426733165512152231354363771174456342767532747374533262462663241264572656764114576714263553116146515164772474163675413772474321371227537777416775541247517242272314456357437227264222162277426667326175247163272625133354426275331157663673124416113551222243766114163664216667512157113446136757457156477266156355377553465463332336266224731677421376565525157324234155552742724254142724422553177514473577712337155467723312732714545135247413412357353624726327765412335377757176143325121752162644276727625726542214126214523116445441442155641262513434216621575442526625421647737314126177357135476352135112125165671412537552321246463165517236726167244232453571556776546553464374327133411652137736622671247716451555115213426323115475513413347526321152515357771431223564121113136254426363254427552721544564271726571326744477554667733412132345215346343124162451444126432555477134172514122451534137762267737744455735457736771525415643647755523226755757647732564361745752424646655453431443622357555242414711616453627713465533671336666361452327623523254746347373271231376632514166475113736166315541667653144563534445652457312276275464771466152626474551623133773641342312317572543127312616226572737367622712156377421613646426722752144246443214367551135717612217414137765327746625731542433654716421527453457452145212465762564337421457116163376222462171446113254232334132453475533643721741357712246651227457244537233326454554671467621676623216321753631376176247132231124454375414767131147754771233354713354214714737733743554666324126353615377772716522166456471724741443172173214155464432373414712246456755417725574357671153663177755553425421377744135243431141156644376252213317122546222336544447271117331661564662613157725471427632565643133413714311314764135211377254566247441773244533255717237156435352326536742436744654761776553411653526434517515112512612677247225611743335476217571763353261324124231653434344334523152472445741563547224647364246664725271615654152213661731355234645455545343142412161165212745441276753526244474522632444651414535434726743414765351516213345731575171764445734613665525253756236656756423227711427161775314227725723676232233374323514455767172564253715131451122464222732131216545245152121332611424727124155132655553675641243316111134451355453221511466522244755157434663441653644114675212626435512277533532236536136561742726467611774451773641663542546142727111111555656243222676163767271272413462457264516776715225144354625263532451242152143654372736512342715264217524637315746143135351553262513665457411316223636374442162354543311362424246532561136444562366527646221656543112335112772127173277722271764276431252541754164314426736736465237464742246666236717573577347773152646753743575566545226154765473677576213472141726552567375146336416227457774277164234274171643675516565474214213747356166264643334314763574235432466375324612354174614253676453622552324124253663453171571545731216367162626226473774254441346457226234417342211572331174331167713735577443765255522521353563575767631576214723564657716474144542636727647342732417422271776343636537425362554726751111377144527414546215564366265377446344136176543475363723732562435463777726774255733426611171334114515416377626532263765216331753444375335237123333722542377575152513237764115447643231451442241412646545146673766311357514741173467254767551151721267337733143473527127265413475533457553267641124235165635276752337275523517532146766542373371444564246627773226125773223453621261724616677223134635167546221351443743734765362156664751664121276473177615554662552241341744253134454535212671257514541645354776344721651141267137523611457747714576573711137744145537675611523374353654757164412355244736211457175473272271752176534326141326236775216546533732725447564517533334266732626231523211356137113445165761354166242663627623643271176615144443371571163756442762763753661346777156176564437537647336616752542457476256612775771724716514771247277235126326135327721673472526456512325256771624625126356631417467721457466652454356124716161131743227267264323141663264272516523734163273644242331667327662643157676225523246562667622621276573563415356773543721124315525376764245714773251554766437373734523251152462127176574551471714477124233471514613474251221432111723545175366747311746772256456662246167637523665653674211757735243263246222671577166511526633441176423336625175175746131724261371244517372211132647543655264434542134263425622175762457117642347664213554346657366524445543777755476763411415334217764631231247716674356427352714673375522546456437175147775376657126762255133767177614614433332343353417323531542533334671323461717341362755232316742531564223334361331626332673571655723556771437653744677161637636331776516761147353755763747134776117151766264222627436743166477417425524533165351324237446416357232774551267725177514567522457412622367416612321473761733261232423663633514657136335341767713255554737311777113156523711614331117522644155166474255657151415625516164413322262627576413553256126137617242461753722574253617522446421355634733326625343633576142173252744446172654421713374217312747134617427576241453612232364557574155137111144173373516755533624223146756154663132414323777471223437244243533235417151452331453127753517763277151775234461636332227511577141756266122671654626143223314411526554467646643435352664124456642411246242736472226325727576453734752676212742355126732711757254763243163361626442334545633762457615224664647624757535232641127217731527315376664747574661772623627111232752652357336115215416111731254453742317252753574356356452667244651772616124474241776734124751536637237134424157347154665272346241174271753367425543122633161726235666763333464241563146366567314773573235415221317634563342473172563176757462533516266432712232511731726755141523432315716241332545646635462544111343145162234412376363131315126254472377424274445464716151754773453573656377143512213231327627264555752612516161411135271172122661465745337356527534454453774164332147773737572665422771362717334657557744134423156465625726763547535633255611327365251754662237223177435336361421135334633257271622665421451522645572364523533735123767235217315256314157442736451151164515546463235744777364132347347737525353116574214334751375343336317255656547277533337371224451223331117173123116433552713542674231253363774324271457667334625342476736325151667654634666441176246253115713173767553242216417344261611413623332317634166121754424475646322664116213711624633464144731764153574324536712316744561155344753234775441452713577245364121636251551325462154334442112625627446623756535153616243555631432415367566453267547374753656622163622772747277344316723372364573764374662621566321133462722472613452232315674535641116412741242477623265744426314435275463526167151477114646577243674533725734642172723576467573172546752644342553754245214165415751666754527765263717441261721421526535126216635236213431523777752725646651554211232566652341356552447334472232365535523666125774237153633247315261735233235735362311663371242162365717344231166231227651115414543255371135235257211377327762536163634746663322252473335435512531135542521143261447613547232415522215356554174237347615741211164214651647257774621712417527726347136332356345131122473364457425332264422367214327567125663725561627463722642374353265155357227322261453651171636265773531554515733112417621675523313777755336232434614765157542174563577343356543234634632576625266655773241124447732516766667517375265523624462574755644542523654313255451227366765653336621225766215152114744752447664556577416337146357745452625725463253435361364232237174277172642277633353323746272273724634131441435163425622553762464161513647614533165657144355514333574162174446756445452326761334774313624377366353137351341465276736332751712647252117345525354241273471672167115437473156723431461631711331253715766413374741276272374447674176774536776573714644275641632441332115625416717414134621714241314516361243755726432124145653625465235442731633477673426173574234156532146121462362623444733556275741356167337476751335141426445153311127264244743777674755613537261315323151555765145453253427547677443147216625523371615361246135272417532334117347421161315131142223377433154111164313444256453576136262577311437161334751627361113732213245377317343741232252273666117533273324361665122237467756767634353715444644545661641636544637266667334127473352445542427714132721755477337765243121463464717212417356222322146551527757452474655673516751354242324332361641235115577364323137362125364351575326766114457162122323173637621442351163542457764127526772173147376415172247356667643444744351222373773231165765151535123542773122533157376114713757671256357663257665514425216625516744772172326476166632464457222736425546717641561444623357313616442335245223461536237456426121676132756611251324137116142753242766364246464416233344252451165474332156626417232766473642741517234532535365331627461154351433466243525254726271151376134217567374545474165716333353156527565425273742351173726346765536624377211414553762465412321765766527541572366676235617131147745517564644274254171662575622616561451245775413123213453244425375554711511342555275434757523364243533625742227647412717162522235612273777122175157461477652716666226517431632557625754753263752763735617114352243742437156364653357741151577733436613611547135553561566757153526516776243157724412571565514755626535552177713545634174744352343127774314424161565274572241475127727452113632112632413731171613615753275461712265336622133234525323644414574723555551655371643365762433714427716463752471666236124467761523425213677157347162614443452525267617277316442351552226564156774675736166622761146461457165666466252257751351474354411521316144773222137366437164545711731656466672124753536435121713777255124124226626111155776776417436232643454457277476266276247172735212557215244175725545552562176526175226742453255642337616117772621434331676335123366351363264465622266466311714354371331761336112441216736241715355511617642564121131745162172637521612666254666672116526736322414464755674452252473255261734364142642431177326566225644657225732227473573545414227614412344246562433723377141654556217353167136412615244252437725737674324321262543361717143266152152515157376453712113737467276473764471321277561613316445356136424265441651521722353216155651433242125374467663121443447226372737342272551631252315553616455751775224413676624245734314261676717632473672655272775347167256161754314574153613173647656714613621351742461651372767656546231534573767356355574262361146763255634145362137537357575613511725511336756272365312363264535631512636645465614556124344116611653256142512564142653426727717317534331621761314613164167277321274641633723765456774474333466575262355647357126715446112551331147314172147242754611532677143247122532145163371653135436332747662255362171447435157513447635733257677221274357755725472356751475567571517255252755624763572741517467642667414512464173453557732111115264345636166576354543647742252772525221747737655442726733352461635341554556544377673416143211414352326674541371352634431153323147272161546617144321774122355652712227415215311144144456613372562615756516231445243621512252341631436217243317224477651776143246372233351611633474453564477113154316635726171452127516167162476137732524335473625765664573743747652224656436727515215775461156755276565547431573444144773112127531527274247437164611211522733125177117544426546126151322426721647562637412376227236257533425573561145717247161215133115457247525723535541657112524236775631714616271766745156347153142544736327256344352776633647256432236162126643417516573167115762215134236134464556545745266665117622455371731426462276615574315311546276372455333743554424166717174625666234676263551334633636535437125742432352737153657243736472314221353521734152331346653513154476634116211726152326273455663333216621651144161222243611316743264167255362761224547122162156416135143611111332675771127436316222737227432554155746761735666621123254321477274762611624574376421735567537461267341542322652633626415461447465523571723212364757727467534513456645637362432136221267344734363166763712165271233442377772541767166561616547662227466467545754763632634677576721676636724531237524117471551352542445431724247122444413462517664232765776513526673343713265153677176617657332233477171327746456466341346462715366365531635572341316342272562437277152255125362422266516667133263171325231756231556331321244563173145757746672747773226253731241665352457247554565177736332366546214442577565233654746663221766526363444623456754441341564754545464151643172176533677155543231777325512232352146426544312735736111763216444667643411133436142752162412347746722462416643546754363623251254756215455451626423363644162377615626565432613466215412711351352754724456541211733463715732257464176435422433526765365162317346765631362545127137566465526563562344414171524537626466252137415542224624775652533511336432473257472274614663736327442326656114165474775464751612757221117131541372712657355355644676711123376337441626663331214574575521142176152245123565577367742513627121646254777445316355441533225337424343142716447374141135446273236772316517355315112234771737364155326267335167671125525621767465237267224132123326767563652521444462414737342674463541146327465135477113147347676355561533662374235156554517511446226372562132656464333713764742765515174227475334767352757565753445346757726563251327416554352725462467373451677123263742367663331571647274474577726423662641374564547661431212124766265461512261644733217332433233152527661121224621341375441254572745143357371173247467154173652757464112753254517547655275662261246661275524274151737577457717744744753646256764171767236126714521127424351241657676512324326177173744471417514664635776442341361766526511561357745455332567626126661652732157364733565744746741541735232441467172342146442457534647453531762611235353127475452245274567767147154622234214152275116676664772721523646367175445347346136635221262655525545372236153176751674622121774451221434352662557737323634123572533677335523712774136521234674751451413176576616322264417267776745716436315316141461241261367154766632463313337417423532561676415361541212536666537114473554534364441561644522475517366535271746314462457132373254213766616622553122577413753361722331213265453776256331535255457623133443321631456411564313147231435712444526614546614356552615142555111464455223714552421722626275626775542375515353535727212123614524261537327256432344465571262644364456511436312636275755174361731366337413343537441266666425527666513563217672651676575447222277261431153142437417377154766127145317337643175257176214713525442174347233543267377231622365131451126742326754674736131457163233455442514371112575527555574221475333425265475556421317167613163727472211751637561622641653273566535156363357225421116163514172646465315753674457651571252662157136667454655434421472536716234337236264752515267237314325257774611546235416345361223564423432214272235117133652115375137312634565627537533232442371175256353122574651733467523152273712656267451146253621572111432732227756114223141322373614757353476513525347555571131422136154434424766523611362375541663571245716476347721166337115213652716576547375311436464474124413714664531651323356335675227777461267532631152571324225146757126235222574522163335766663662573527242423165415631541426775356721755226436216172246317221155651656372346176775232254115314161367347464275176721237557477121341264244753662453576564433535662711445753453611362237612276166367444253627112331465447776675425471227612722246315252262763636416541422713131162511147435632573456547732336556731144111674163421415517755622425422132232551123354134122514655531645152447541276612315567265131326244411465515576741627555371444367621767542312326312366127253711614724167332565525655666515276377773413556125677475353145656526516161435341131277636342121772553572635351574516562336647631216576651327566447236371155251463334122373362127243262316145313636352571136461415725147164515112747121335373443245763111453375561513646476644362172372556216756147434465252722221361556416474211363123651152415543722573442273331753247356636473176346623142566774431466362222532467251565155745377367216437614253111267774672434572633475567176517536635425672352434765644765645531325277167425567377175665352135361717136267657711727616434647416417534342441542553555537225256737173422775144323712464575413236336612111725461151236517342674541322544537475414526511544135611753227514643315167641734532332426751743337761461676663447672734733247462461641627527764753367154377347476653155746756554112221652775646534132647655533354675662152736513336633621415632312117425612574736742333564261522143216677151465461624274633726223634424332512251433753556157712364126462743262334643321127127466762741355675731525246362315343253446563453266441165125356112521774665344672536655557324126477471271134425617676554416231771152112324657547541316747764755262314535334371465425433522121547672355222543611464146617713156367424347423715255571351462671636571324276667525465433661162145735767517411472231713363573621524333475557517642132571241444526352713667642546753332356523315143255535612757564217355146577324641425315514474216243761752773477641372254725346263673767161347435575122514252261657256365332465146567132677117265324343115345262147154253374314155512724657376613622347617351165637131527557451143471471447545541453445424372517166136364261735164447322763235144156126444647456733165464126534142153121516555567115755367342666174527717565354365153672636735736427327417234672327611773766572544416557573152413474613223212456126714663212553134415147357524531441247567756351633546415566442426542422436355451646616375232463331613155114653757631471313453116116535436124431315464414153475316261134747412544223755573732663413526323253421253442212524673355636451176542667245357631432676452437631515674727576451624714762235222364164567646474567367667124635174474153247171567416666617264774544272616626674565455335263774351171451243133512466122531241575776134361574156335136423537636337234662142661414337172556432475532121436715266522631227164344226441524415134125211533442217522565657332155567311564142452334514413436544413455533347476632423253537423255433116543623517163312764646354237452337721473473744243557575312467634526756336524131526416331677552235223156741565541521444545623257663371115255141123261144546253153373524253657153311336714622347671252617215224445611722315542531667251272723471263365516264457637644653756435545113675535272254242621336172757571257132552727533626643563172752717714363574546232226415115314514616446615272215341312134666246731565467327452315447742341375162352721744721252126713367417325454657165456514726627355315331216575513252133625517535477323435325175424636121712776655571254727426371755671711312267157266661734573662463474626755663722671674253743112551243157657151241341777363614763227535613537665122311247732541163156641113211723155362355533543242735747461473117546715652345652754652522671373351251246363767266643134324564711247253173372421216533356144435663611331661235255231467463147635227342441554211135314354662654577525773761511724455213672166657523433721171364741562152451346332674276476636233321547115142174275534465441365626114724652751561253621556625416431123427635774232534772673345317413766751551373556166356724554526234723112232517426455456743526441233555677152133762547453126772716453153251453763146123436326436415132357516174422433716641524365267435425236761125525323564233743116647573562765456477656471766311215364643753537461466425615557677337714421774143223164756634614647551324544242574134532414276763662725471236417122475657377261556162541664535456736525664613672477664653437175171652532222512652747535171271611776343475746135431415224335536537565234722636361543264627564357436162655141617154372165144511545463552365457454725325741423671336725154712761573225722264543617621336141346417741654172551233134257173337372216463774452576712341461714154375235655213555445622651763311732666353114561247122317517751265444212413263326332554526633661426146321737373325414757543231473316342344474626376165752365525766723157611313342351156325262671662316311442676235433274114213362514544712313225752311122453672264541353573726525757751415616735411546126511473262276341233145626163715656726266476343556164745645245724627565436362757576173661425321613761533462551647567246222643745333327756344331217224257453757514155142767434554617425453751742346764354326775475537376665771326135563325126565441417377117332345144366171167525775125246161326122551471576672362174622431573415664744124713343543335471651132712416711522145433765435523645156217122264311154542226172476313343355575246365732465275536367624353143767625432667326263731725352777266251125273246756351543211571637565667411635633471554166256231217176147242726275243763611544656675513437723652477115475641341237111363356753123724575462626653753121557444656362153512715663271512757634423362571253463153573554153155621366555564732367631216635142735764541437224462455416461115422111574746153422667447317521452674764551556732211365416571747327736375554547672141572452646612674544222761767265255423611562653446272461467577215161451547725273122351426516541257215371414224445674747511454413434164334757334233726611757437674313135645512245431422627562561133437323173337113245327217565761244176517243263577442473451251315735777635253443471751416445665467251163771244625723765131511257176324524641443135444247212437357373764442515112755373434561636767365122213725123763327617162772627431751354165575727111727311472345553711311257762713126247217555322722164113223523244151712776622134433144475757263772173413475717364677341136166466516251411271336636763176775555545453435565722775613224734612356135472151662753655366771463622445375414562771475125114353557123552422772272232155557314772674162335635144471776465315115416715247733447227411246612523353264722726373214345372363444113541232434253515232771237515336512535171627377124225442522346227412233425345461212657721355211351513745573442463752765122753271251665556213462761366711315626753252727551127436455255427313127544747726732114743572353475626762566651465675473752321557351241417276356146726214545534662715147161135743644556143736515625523641644541135574521733573374257444631415621412155257441172521675351413314454663377453564155146573655216753342712647335634531412616527515252342546561464231272472465335144317464453521346455535165537235766646474166212751535433126253742745626324145443737473715622237423274137554431123763364166423355715511557133135525153672645212613553632744366132551241535257441716312417236243521545732646524616657231243177443526322576551143637754772311264635677141716133536635225347416262141756251764246243754522672412716214122231556512711574763353445475172324472253564735333657335774614147416745333627352741774614375113154752615367235533643433173713331736226746673547753217637121463667411426316664561222316237467155237462233212572724246771157165771741363574164357114675612622412525545234744461471162654246472663551274771331511627114441371477145275664721771154175442413652557416165551767276515442622117377247267636635644534462554166225143251155741445227767354154616523741265753121752151715513274757264472317613721225225776427115243514744746231353174715656771415167554257273231641352257746226724763311442716164221446554475317117552636736645277454223663425445314667472467127255517266542326256546627156161716676526572634452447521436455456346221261564352516472545573451314247367446173455335422371637771534653527441715442313452646557622411764137232176241475763751744375314627733244767731647244337171522324226543153156232265522621714236661645362577424534416771173527325571437617651444725616736472343724267251256413724675417341465111536555573454756546377435514325471457231415113756617753444277746174131212723222224231575235131142655175371624155612763525231455654454114117436416615166623761556325746551633515465314277676665526433412476147627441272261161644617341417435437365416544753147631556731714646516451444142457453632535635313173752715532171157452625522342553262464246457664531125666723312727355612667557242444234137371413332323511566522166511325265235671123314573455755637752611343133236657247614311275113465532154477455313464734365775435321427277236176336753411211765526772612536447464271532562662444233415671645515234311566144221734415216372164677337317115656653425146116434115731172114672477733557451425125623742153632111124472547622324117414633216527642312557541174525666261672445541762156244455737617545624262645135254271637342433411113623716623542252446313456117237412724715373522755516265167723763266661527111277762721621632131551457531541762171312465457663132211174351567617147376143142555177227645725716712752567113453162225372264164665163441452117337661332541251647566133367472446526661156364462447252572643126162761116636414541675146333555365664674477231725114721665353123572262731766171673414613431742321557645153763354525316652656111356353771477625471222776375216345262562632525355416617531351214624113366641377737721175142262755365725511547554547651375624222752744425572656334422462354676114271643435612656211551675375215646133475176454265444544315736533436776525464123771455175512474747641624572274515642452243413171215467747361131535763327761372333161275123227214113454554613256466615416142263575254732312737716566331355414175712414636143134123157176756376176331724732256651256376175144653577513376533322551371211615372754144315357623267237351542212621335775534537147172137374536131254754641423331341564525372214333132515561133361346737557727553157221117112441575377366471456754615137132325466117256226263172474376223354212224153764613314463714746313145461166376266512267672367122525463574534454435564543762713176644344717455122667353752254664562327722177622722756454672361147473416516561772117745425653177141311151141142352355137516115132163362315513152276113763675421747277547412737147141357741723717146733765257274212356454545747165767275724744465532571245154762452311214612342135424632551146425567671252417524375152236344375163743171453546165574137774325243551172231674424315712621443271665174432413264616477571746366454174731111431222773153147117746365262272456567777476724125113762412741277767177131134535357646221334544453472326532115743141754716454131572644617737625121237627476112361565146141122645167743614625754224647655667254152151441133631364757734535552362677654157543612477314177666215476373712167452613753372361223152613314623567752251511141162376661322673262257516567613113253252373573223542622412312714342561611371612266352613753255571157152272373622546731345753553662611231472663241144317116465143245361427626253377721122177675322152134117744474467671712171623131443764771541317271413532625247375715574757123132274567661416546456131435641163214652657731616554467433326325756353642735226174534516137163651425121425251251745315231347636611434567424433431153775132725775141437561125577525726622134534442524564676356421233716211574342524372673547473525136657147675751477771254214477323212326416175154244262624475526251473333134752415125426176561516545111435124254177733653523613561471553455213534621115471752441511775353264636322332173117355436435372722324347613224446574241723664257311145236441274744461473151416436644456334464161531667316467333221777723462777262242372257273536525637167477517145375633743437221774123772144741412375563236141341744353651265446766655161115133247716365324261751746554576413747147776431267377364252743513221126136713241261126445652242654671414425631741144121677733312711761522226412537131322325646756265237552433615533774226725712641475442625376173472734145537613162537123753673133335652525515125471573761461674231125376761673453532132367367172124654663763331613236465323434736425124422755157562327163525222265717352647454422665773256172231621765153731564762563117121253256446354567637346615136147164523566313763766113774677414534315664526225433245644225376753315264736562434162547372232146476236633571733532626557174327272214116357563237432421422743263314735654743466422753735243653215617416213541314673275733311623423465425663134524743647271364636316747737254536332637556716371141755741167552476761756741512526724637137714265755153141221515427772776111526334252457671163524525635645721564271446337635271642446232144313622166123725535533111625241761264673476671554447661753417676726375756656134571567566146126132753667566363753132117734757562151347316246533755177263651646155172144161645344263213571665613314531251334162471723314473253615362416553361643644366646364656526671645174357553313277125524576375353173532517231561614457136767526745427571535614174643647655531344217261344136546222617565351325145165112635412244425575324366213121542635466622475154776346256451546132672565125543244267126174367264454644457344557177213113441551127613262316664774116317764743255147575736614274726741137544773627667362152614416213417475714465345215432734565316557527427166614446213525163615574555537436437264725367165566335624371353236246657415425163117713442411124652446421252761463353631271314711165137156354534772455576731331557464463227613272567441235362437415145466547277357413546475642622436174142162221163556425312474536555164372634633221163714253537476324665157544266475766414151132665453311365614644553513322335634412732163663361735317631265757321615333532761265125721241747771273626261471521224137255251152272653612152235361764711436655114272552167413143241553717675415235314632763477624111373274755561413715275546531341472122426315547751611456443466646152324355133147227376333512576314556225137433446576343713352124612524246272547521464666225541221574127141335317557146167643665746557565612453621546365443742656434413375553135213751526113411255736356135441363662743755325453355214737773731426534132764441166671224113426562535151357623133123144444125175342166314317734335552136642562216335376121123647436641635173335261737642755441513377464275521357543546135573743474532253736774151434457237534173567175371211626162436563637351726147671122124124377445632677673516666761213625355313116366367657547337561743511433654524453451426463442557231275663344723457622461744322235366756322724362345523631453616435434265467136363746532516177752616235614727657353237427331325675632333135723651374356411444245721354567253552613451222465222123252627757345637174236316127331765251357223677516331261174746144763221143443334267415526122135645167374541213543674555477514571326356743265652241627467551221362221235564342457741717765117246661615573227465373465473215242222323162425464224563233664477723255664137666427116443731313574732621334424266371144547611152666257213755414434452126727245435243275574354117554666572535361214544214751363242137621275644165632364762211455652753263667365141371676111367155242672251211126357456471627646363653171332445374241211214367136434745171555275522743773443447322127556624434126224623276644567712756751413236267553212277667577176763744567376445675216264153163652267736777635434365175613323622247234144741414232653445267541664711434231271515113561276254254754721553664155777356377224653341143147437735545664424357155572677223356362256145511356274744225256675544763666551675634321144573453347637137114175661323521311557173177132732543341414756776254165415327423771244474713623532241671523575275323174464766341555756737317227752352627336262347135751171124122346533665425753765563773725531765741231712576176665255666432521325342343623524322251746722165337354431713366727335432334554426445727122467362325261334711352317711124262322554363436737275426431443262414552211654557661433377453762233612142237626626761322376666211563677224215717516151317376127367567612332234224732264114126156734735251575327634242553255273777513332421243246663241677417121162525667123457336664743725136146321111713461415474711322735742564575617255327767362514627524763553335252614723162233734617325664217745247732241464751442363262513626542547663632437565735463555237774341247643115175761421775622632377434421622441246412423375562721764426412766723754336677445647655417362467453762526575443227324766114262331637122663536252175514516144471674777215571417737572264761551551342273142324226377515115374461616746463715337251131743512152233141676366121247253351631256372776765515536643651216312537467667466351723777375521552734774673752576611222261744113215726516113374155371437644246466372342143572227141124271535514453616734414545654775416572244722373277641425312622563453611372531152756121743145315763353324667175414215413127662467726367656677531362143446535765767627624625677636142416462262662655556331721174711252231547136223611644755155567726231326323156446534222131637621535776622246724677333537532424671317373427333134766342326577251222342515751254663527152731157171435726524643231513631124222233416172763547774166441643275532164714122567567217745732452335444754575645725145752455612236613327767764467113671756437764656217327316155166546653427626214246117741765665542436112164726433344351367247734267211417223766424143211335331751722264375516457165325552315414525733354245723132574441573444225712357175666262451726115353674576744753433353517713534452753442337644321556131131423162357533157244675754667713265464722715332457157766365356675454157351725153271276136655654312117144336254465625631527224676177124641565335121515661513372112224522771634346521317367631732254646136111555547562531524627155553456371455233313465647332331225454474452375626176762626252373152411256417213223712264111331746126345227132353654113424651755551574425432571157467742537625413573245122372511467465747133615265572413754125264234737144435353743375713424253676273377753517224445255511345636655127235577422275624574632425314135241722774214716567254426157562427532632453764743761533351321673645222377177564774147415441447133756225324314714422462136213227515541464234646311557673735246231674133447243764252242444272214214621366212612336554131557661422214353173455527414126175174156467715335765447417222232743367327431164753421473514637225463516451577275657717252654616365636475655574371463472671351326773753532312642217552751277331241647122254457762747154265132265443465773457446654662411334462336574375634671576375536662331564435775652343522351235124447525352161657114457625151572136121747356455466235221726715322134331257124774527352455465116313646764617477753721355733645477174112462542656262211723476151767367647234512421642654233252252221225341712254242431143477726132264722222437264526544213316113432143255422537373366777431352525633357232316347765765131265441243472525757723612471314533477434713365763674356537661334673736446116616315144727717154553247125125627541456161153171446164275671573667126734143342537537146647136324447234751326661734652545452424167124422653542636333571447512327432714372646132165535672652113157371727275121441123613172214522562663714537675716377611242615173252654426426117147141274456165524711344317122737144354632542323724261713624741654473166344676211627122415121116656375142524544647652123525746645465261553221674672124566374267735565744266366147361741771326222177764424352367326514513536561611727563127355221272653247717117212361514631564523172335237157262411571255434776371643366474324665746163525336317364723764436125612422114631671647432141423445327671111415515711645263345671534415517767542352446275631422675336127117274431616546422574754511423535455111371254127476714565637213757672621157671532634213176121437416512727676762356677226221265136127322213223452351374226446163165216547162337465615336214233451163737745211271761625655361546744341345166315324577274724211776543667416441164635555361121232775465447373524376765525531763174734677647332653562434327417646332622677743327715142575537433456662153756221311236515262345673673771216241312424315234472363742242213121241413255761531666253367622333351423747546633611647175261313747173411566552734227246166137433554116174743346661675615421365742545464271424314565346711251654142571237362733572336331556544257542554634227417643666644521157324463165471543446726712465612633463612542616162175766245636221561751326421347656345273775717275214337312336234253114323115235155432452616641477671244645361167732277361265324315431715554773676116156314136677433545322122411333251111425414352745461612244417135136311252727123764155412142246662533541143745453152622747455244421715211476255562145451435353624734554735653442647515551576772477254657544117315356143213124464372177743555575433347761414752423622546125514452715774246544116462645556347174276716443237741517763552315426246131714447344534424162333115632555556213251633315625142543246324272234562555275677514752316251672125564751572363353642274122212433272661141371535232553366426562271571575745721554132461422311532511772667353547164442575737273373573161131376425163453257271431721337542573545245522137156223324467445736272737512724643654227767124616447743624727623221634742644336372476771313266577774367465232763124113353662553542213351265563176476643224511166327664173651172133726442132231173762513177321423726674776332533742313524655721224113524346513137452734322124246541222556537143111213745257674562613762746163364414711636737316576116473271531271712176171142722632573222376317421731641754246542722234674426477573761765513457753216665442221361556765656224323655654417643761757647445351112416165635611271417473557376317667677352145375346276663724666645735754352772545476464167555452244153511112376736715514471347565372663764223137731473252415375746334534266672775154462534463267713566215215414223763357626234145535457161732564753371362116533317254174161436144475534135721463377176525577575354136443345414643755621317467224631675242174477766461613563415211471224525265375153345614166727767212775425346164411172621614522644135716433332713124415477162346162553437764264576347117235353371545111717336626552663517355575652554665622523371667351225675563732431213365626175723734635413717344565734626526323627413154554622372115667543475657631245615217647757446412751547432557332273157746732663171246222577433554252166672272472636551737774461777227221347526112661163264522633655616754735747146344552245432727421425112775723547336553327521673655475566461655771656221163364641377267126114715172124244672266427556562574174524137654334664626514573643253746441445162552135726475771337634472545455742156541422112345231677764442135444322574775242764755744521144611353432123647246754442234232724741325641325352246614131553746444616473435372626617423511116753344215551321513415547137241736472723672635126366743756173116756361641134646475323611512733641667155262755626457742724231534723732647746631466574766423415217424577575567731627327251433343475754145624717771644661144461642531334137622622125415531267364537654376362545757611474513551234113553521765562564723464752165511156447547326615277547345653535533417564416467217374321726461245516564345224256277622144612136511557223735553562465762364666457426447143621171456346474162741123667774466517565513363162375376575675345326414175434733173633612373237761523343777514123327771142365464647114425365767331322446514244632542313753452415531665645473167354575162337617463563257217636553133652226277336725243374261136451747371121755747475724553557435633653674613517466252637326352145444734535776754773275131766274757443217727635225436353541471175153675517562314261126374544555472653433422743472614534171667337636372543141327571245765155211174635211516557631655554262773124526231513371454452327755256671242276361517666344576413322211346657525567665433774644376437554543414364242114425773433375353746221741355656437227573123562267221224242141613736615311677227232264623136227614514446645667574112515121744726417254737527617322672514611214264271574666751623113364155116524235425123132315536165662474456173556452174336112637426766435346743672772545447643625515467224211511722276143731222163542674316457443762667373334533221477227774142341521457722466127157163773577724177156167336331346355565135237741156674647563617555434251675771277756432322613651525343332732241147714356446145127644116522746153255612456464177164425367653571726676255213524433164633711262375356164725367643263665257465734453373114644641256644462442336623354656442735163151521774221723461247715112627335371372135231566714114526612734574735331764153154455347121325674417134344652366145662514737631471425142547176172552142554537567731456733734633222337424311357354532325722326731274157577636763457621514757544754562453456356633514166563647235675254422446242524324173557513374111463527544125651371657621257662731213377623512632727722241326432654114217667754365371514536411667411731611626245175165542512612643745147132167617426273455555633127723746266166222151517275177432325622642567413527772123533575637522127217347524634235422672475447653713747133435742674174345712117312515511153751331742477277372442624414622231365461741661632216472744527152217657763153355566547153436345556755654371637516572477143177565554451717274155725255372572662536165375335732645464123472677743763423356152437216512163442347755426644652716146711136364521536361264643155751653765624276461227235732447244342631433164733764121624162716554631714313126334735117536131775312312754455217614326371325316246411615344164255512453524464272143333261511327177366542177637143377725265421332461355665567565236137656611755324463241127276721635633615723564234551673613625171575257642232665443543235526426615323221545644371754317752535517432165131635365364114124416371234534357452211147652464746765711475133177332435434564367255767146652163235362244532151277776614672227432372416172236447457452732263331667232132265232216353467776342421434551167613144763341342275441615362311472116575143366426372363723264334634414337557521361527232557214577152414373245474566411666777346454625365623464142614112611656614276136517267565165467667744746377312174213173671457546444231177122321753473663141215171615636141274311767345662774513774661415426267255223171412754354154224777515544375625157376124441254553435312742533332371114647176554226657145427754224344642651437242246264735734346774457655131756273123415411756755324323226224243456627451665464236767313236543211714762141627253142272515373635745344542733752266316657521775471345133235634152723611653154524661464627533141444734122521214672742534516123267653374667177467664747521534152241412271371457546252234517124342523744114252126755177751664427562277672426632526246334532263153413573635532725553517162472631361551335772214762343252513615144232455266517116432756341641354177336164155776642141115161237757674524231747635131252751174261162444161275261775222417537247467633244463111317722153237356314361725374615735141365712756671337343272564461214332233437327344411731211651671335457713655722464566711176265323757162561263542132733743663534734743332351735231443741446621525233465622726542627223361262435267526222525413674627356375542267232165446217576367216145723131155475142764735674726533325732157627534734436227611463136532147142125532165127712762476262477475677553763575677776355164444313174242442731612522456256632363773411766272374456623632424763463635134644113561352556121437165461165542153532667754751133732517716475614277455363261265671751153124514134772641156316165263412113465111577165213254754773434536274624115125656263762361635372233614436242736665354413676435551243716534646436354736316163757765356233536512531223145764451467335352544434717121446255622761724542626371762775243177553752164432734674164473211621766275474261453753553122553735725654435754722537115337674371764661235143455737741573563223232612746543117524611761441774226617724671112274755755232332765646651351472131527336251413672466355412462564737772717761551631655327675165567467752667746231217751732547326376465554667474534542545732753712551437136267543326413316424115473447462312466611662232173475244412571622151753733155356736443225474667716173477126554357325657527317317227677673651226351756741161732155144244422454372417323333447744461174446714454715746412155753411413266261535236134774211177547722242161254676672222552763646542166214221721672115372677155132357311644135325637377457474231366417413227651555574553423245364246227632531775665432614321761516437324616717576332533455563755521563244254235761354611567754446635152577312722166547637726313366774354216512637515617574544763764511243115217352242332775415173455673315725163317542642412233617471731433233454442735117332723163266331765234717114614756241556166133321155655756457145773151177614136353742636414412312527726117534461776263133615136227212224176546746666262653467222243565115161765653472651237253317666477315515373653133355314534532312343224743337154374124411175446672213521164261731334115224657546761443462722224261661422121266175332711222345763763135337567411135325547114573112414251336367472145623734415735175613656775656263154441712515234116514475372111426164264546273775645427246541723531341725655245633616532427511773221314211646532213767131211311742213534731673114524437451712716226511225314626271744712722214147612133564357317474166477712425526643232676637611237277372454227274421711775676132743162347752772555647636437432645155411417627164752646523565653461223364355374163441222471357635147316644474223457573152271273611633627371722371347655775226526723316345441517734723534446337222553317255345331733425762514647126361426162526732275164256642755624667475767763373122431235423326115764564562113514761714557121633531276556777441156147426447643215235214115742251264347213377617343263765572127156573625144226263511111652175272762444161674633313524613123644743317726126523143525276611374671132235251242456727657432551261415627535552717622677643132147321773166734145221321316733146271262677564317233365426411635655125275366626733272745777174662465224754545542161466267376755344756554241615235374223252761624323171614616531271623132441522344665746447313432525231475467725514277154116462754471651516627472731137647627125474471643536676113326223375317756337513267757757273726457171216252124544442541651263222143263177473251535172167216621746265465546265341151361313264452317167644663427424663715233772144152156444177742447141665356463172316164664671156162357116776416531557147536744563132252752612666733657523537217622736344445624431115177553465546633676343736511522341417156533527711545257722715231412431274646637624331422623551611763124572475477142135431775757266567351422161276421375364273222272147372421632613734574223466577623743125272452766541263432412374671423233472711664673256517751352413737366461556347674556444673753357217266244371361746724514772447461317254615644147743413714341311552561241644441545117527155416453732756253627175615561416346125412621546231142734412663426442312415573525743136517167422475526667547721624231211326252411353252246242443166111232151422561126332367434743755217316452641742616234211624223733775554737145225742573665421114524471715111745543132412364366747411612424627474676241366136633613164246631677271216356251134434633357343434453614441267474156542117145511166557123353213622576127744625644622645372734336517312325611575167454115317742613645177677747566634435176772474761571467573552444171772622262561637717657224563172474565773343446536424447227637177556356674251134116663624671617765713514232254755543145534535634425117432646445233537373766553215716661166143755332262562556777672571771724223155375565733644644123224316641156716674461756333756271623527145656435265472336734664157342247134716546315652455253752727254257552445276264332266555767675324412547417436163373351156151523354542423566464724363471415476125663144414242765313643713463414114527352677275745433624264546366637665755665372234437257733561344344241741571124676525417757215553366563553765345237771117121516735675363651525352342463464565467261117376552417635113353131516646146217165336223744412726211214722734753576522726567671613733534737445715677163752753243436612416553344734154351455661335325666534777463262536515413446311271754464443153325317741425446565674443716335656521524557235114773431631664352324366145277611477153135234562134674422242343373311715441237554334715241475626266257733165242566177734263166675423537135763333252155575273163636172116714241457774645565174461477722723557615624422162772451422534736313315161643162261436612755462233563313461667715152142247176222612342777757661576673137141772254317577576474644435741155165473744735724674451724631637555326624427121621355467152356234156751433445537565245242577634341337372647413472236763153237573727157444425655271776414137727311237374636534454465336143735667722742446322761537373376513473316513751623122176145416461131452243542734336547454324273377455672366662324112257513332773641441711666122632157141575716413567652751773156365312453264734373462566765264233754233561163534173262262111524123545713233426236566114226372774342752566157762742652475334534252361657555564152237577324777426764761147625344467451413113756566364511664417266133174474173662421211366631547453772353174473755175324311365444735273513262656376232653722466152612163313661531453542144213127411527262452525763447564216422573654775252435224662647471334414622513247473236715172242475246647222455526732624444771241755753166323174171274751357474514411727544764414625232257331122463554532342612365727335472413752247633257431771412446316667155471373732716177257534376354273733114577611521455521367226646253664244246337576451411533437246644262725657731567731715347375261617112767162242145236774734454645766156164411624451247634411716674473223663145572626723464565554215546746343233326317657435114634412415352576147772177734655241722353122471226225326332127654656124426676127653526461573652436351113114617765356215374753137154265667367367734756675414726635363243111137132547331262564567215543754167173357413423572257212155463723732367432174464513543142712423617255322521357137325732433564356215146211455361433137362652411442155671645473637352271477637775213713167746433357471651634644556766314212145563643737714411257765516347664533711413575257476374256122127564176246527456416236755567111151671426412446417244133511621147231313243322353216613174376424546577115447766216312523252233777567677345443215136312557762453542431576233653456327574474743421555634457145314246226776513144323727575511451776627611561175641234224675732243245137217327113347661262176412637453474446551715175334443315511566135673551752563225773224125274127717275463533764664327732553254366215753446656345176162341567325147545711767634433342676656527334212732231124567124373352134157671713227441137241512236552177257267613551664611172216173313322367451736236521647762611253616744122325232215271271561627211125636751613724554775765257271222776714775211656466255712733155465356757617616554563474667316744513417361362357737367756777615456627757116344447316314314374232124223134761536476447761431244566177323232216265721121263221667527662274536344745247257672762753132351123657353271237326526734347665717474442753275127772616342333233173656254474377277571326561175426123131517256276255271166376752553267242266215144755173124731125535451517532445154574277512614577236426513641465245666546131571635461331626675522311176172253235615741135734626751277171325652353247363755537445465575531416653261226434371446225776641172666216332374734172123522376527617641564624427137232523164136137113272564236242276361777673525447156245761516125675714765241724623656345536352241651447265376772356224761635142226364414143143277133441643457762632372626224645742225272646636222351652614461264476237524511433562751341177135676532624265441137345361412524323217361121664667623553534176441251121333421112113352645245222231453577741253364623116644555612756421425544273665116164532432646672643537147336256765441674277251344727635771515525371452271217344146141532723664335572623144171576422776111461124664166574214475347537342517631321146717332161535571645726711253256347212522514355443344155263521466477752132667545762376236621666527626742332476116355362253443435411325557621541315245563137373144276654656133173621466772732356777574373375624316354355662716717677247571472732767526214375377351315366425537146112742413443411542411244616732644741313666136314644751454356743357412677623653351151226663551126177476572751425522555434712124745774654162144715374746457661366756554153366777621334173261416215263672232141133255756214345376115575631734156565464214542372323764666663417457116447135356521121576475146173225752174633614626777757554364676574115612373655666763732567367157661352671277677675111251311316276444623144244123735263323555476343736443167472116625141515366112526463172733243235141133753675156725224531765371115337626116624536261734142512713646741543536221147234657122433716513771354267473527115231374616677377435264135417512345316116767611654464117641523751621431421521627356676654747355337413566551132167651655453311155117577354367676775764632253271113763627367457466255741267421621121324452421466315212421573556761732477743211253713145324573571514755161373412674221654443614174663371537261542174271556147656346676661111256365726273227175743733731133251127633552765716522215571724243354441716326726777112673775523757535525567352162273463173664163245621476435554774443154433252476362542576463153627346672311562437774164722331614747641271461533634232744211412716113144312465657314471221352563575271631161665516267471537126565216462511667551476356522543313134174255434322452226272457127343143577344675245577527165761744247517645345262633514624414477243225311146554631112613245725642264735231176572114275732435221447753616725515117547234516241376414775576456277244377661514745617317777735555673323223413117672623522525314175421152433734734316562254616435111225562765571222112427122654466411367577346472713355467544324265333373437377511736564452214633465124471322373416376154366661231733662735265646616513233231365467147444263747721572235542727457563537247554547731144632723762752344462451134221335712224634133366725273425247374176337613435665561321562477547251113114441337716742137411464411512133667733724621143215253734175417617712375777174514243545266736131231552261362634451636454267272316465613752336714717646415336661637322626743633443542472245235227352435252646273657727354167621746222641224155534545562172164352214511524341725362252472771437551131274522733562611767261435412434665231543113415423452615357533221754731333664347624275734777222326731265455222124544356147772225137347226757262657314312321543266124236745754341371732155331646561214172616344374517126641636616737557632577337117731716262154766733127477344244247441461576114127423574627253711755715775615417564753435453755142654343145777757354527466763471765423131532637755347476215656155727323415611577433514345233142633575737611677654224761524131215654577551651146471267442164226714354242546544414724671211732523352716253146527213773113115371726117136352344375666211521362454376423251576245145765747276455125657214365113737635342463332153641573341163466343216565112337624775331447177744265144666211174674327473514411121744323254453244676656237717213277743377156572153742664575626257245514532371676274554133736653571363135264364324762375772767257415611541317651456616526615544674376544615662147721762564447737571556356246442444654132516522612676525341226474261573155637217377353111132712321312716513524465522723747341674634246127363741513726334461451154562573432647111523445724153277665745221524436517744645454614663566411562234116213617566156545133165244471272714374453272166761471125664125227551316645153763123246726531352231372266674372625341244227245572632741751572173647665416424364446555762143252546545415267616454342741255414667555415245246274642236444126674773445363727537323446574126717516144772213277322676546261172152767351611247263354247166277474713132114247357515141247267141541154356713733714521755775712156374742743447657443531341241457277614211556444527274247264422453454175263747432443166124557126364764623121263547766761556457427717471724144421437336473342423416456667315156322266125563625376244734774571524142665533135665512216615455541245433217414314255515377134712145611323463734342713642555356474364526165552225327574152717741377752657626742573464112472577536435634717674163532144313663736713476167757457723347611177564464133653751726611356337357431717413117315427321546571547672673555766131674636123663136727311667476412612375116415722734765153113765246466111152555147467174527225643523324432727435573623365377165436172455641723673354714535543327221375162154554773563247735256361337136455122532122435437155125347364232144331642715661517412147277622147614667262167347312535565441765165454474713641762236124662651457325775576163162315326615164243176715555574714156777771671336555347234774566114724123214247114752664473243775477122433266111615175546272463232243427636657651551435245524747364735732511515673737554325733772464257542523323715664437323642172637675161422623522175121424734121721637612774357676327463256761763156147246775655427676113113272527425351341237712771623133544616667334572726626227472634371763661724464655451373334527261257655741471177745176442115134262257154234254242752525146662217525444151515333431523331226546622575175265711365441173135773665134755474376544371311724525114627425175536373743114316652413164227736522553751451271177257557372276267545153221332533657536557717527673411743276452731124713714675556221326756724221333123435114773745777774566222455651334236637223633632411333561366433747633546142434775237516546572217114462275451247653723711672113714543672457574572175575754176316764355513563252571262157556321326154645234452732241455433476541345622544322525143117744314157214717264625277614324221762476421211131533443543166621127267252364516572146514133725231147274344115776313165561163715133252726527337151576256374676472737331213237254443362221717551754717231565674257517122114262277771724114563322312314525155365476461262552274445666252156626455334454743164647447474573474343276555342562255231261541712556765753427676223645254341543622427426671661573217726453627112465326317475445777761647222243473254276156614524523617733151532147567316361752445735122347522627617757577515152545461615677264354362442424331516354456246365624262425772425576445223246167653211454344627477345276413322427657725352234213336746711353515572674343557117433431222461753533713551726131173556512141135372714361573416417764554657174745137675645216267367645443454141765746442375234353351114562217416214762322144573137141627241211123622164261751275322474432542766351666216313444275456132227635454432364315762313741663715777545212551373762333631627332722116747224345654117463566523735237733146674462272342721713216622725342223661222356641142552454656413546135241515313417566725413354621444371343174446435437171435721276526752453131673536646111614133616413142365455632625435626341524474121256724521673555331364556137432656651342542716653772441463546635623751135436324724162231474467163561514451413715524747121651566145225574735336771414517764754757573463757512323574255145563362441777376257521161517435213542675175146164256475447422243537717421345155662421277251375757152243377725575631261117247756773121547541421325434545453552351652737724276322265542417765222321624637246272437115447446161423514371434455511632477333353435717556512241132326465331667343735113175434447762532375554627334136455311674664251427276677723347314155145644452423444344337774626343347744572655331164421527213757474472152337772212554736757455425164372545636256345147646624466215645121725644621325422314753674567373415272654716461712527117457516261777375667646741222333372263212272232122115613734351511147357477722225346236533251443446513564655211645571554113351636577265644365553242321132557642422552436775654267432646233111464751114724671221274562375716246643764556136362422171341152777665363731645674745366412537127116654247345236523461233517521633427235361173767426561232124217641775425636345471267474515246224424366163626567616545137763625467116126427376461256763772374233155177742773642766676277326733352761754354652161157171743747475613622451246454572611626223352734436614732671357551142665123527174164661757776763267557273545564264643747757657375254363646435245633127135234154611437635567314266412425137446747274176656511331371442346524437447767745737263213467735577153211326234741761312751744634552162225241535753775212317762457567111545731425126647771161425315326513375447363347257456412253115166427255213637664633415643345744715633355742737524264757424221522414143747143234644332463126277452277564411145431264434756616745265355725221675114651265255263113537232164354766544573332241561735162372147436414764426544523737636176374357221621373347132444521437361626642143264521544177562525655147145252671255341742727212717524432247421556273411514624126271553167243211142473463744546467454774711433447677166474162127776516227353647631657621246347451422254313667543742724751516663127364714262347654747645636625331276667326653751455532435327254273163126715412551235461223237567276621522453737762622754477466526412474632235243527734375344316261421734257775451454224647462517553555374364133171412217176441416774634374776316461573434467532433726555155716745136571147123456662536345146143555445552563141721174132655552731614462642255461572315472257454445214572631576657177741156225672422273556546543553646665571271343672347115761436714772653672747356472514412566567161256636244271152444116465233342377264217721236462273132565212453411132234257136455751341751317767274316646751516324447556721716126551555354436367145124725727632677156675357226334145441342245446543444113135171476352316634517365733543156766237755326223563632445722337346153167613524114517753544171135742257347733445125123471111224612241216312646561463724744265761274326167443332571164672237136257772527465121467517261324437354365447427142272264313356122757515453514527657115537174117225216155326762761711674614425447361375721631221232221623354121257271164266372316541632377112336266376724653175752256515525642661422323611332141456227771465753236371753127343472324414664462116635144455313652724464253612213717624261122421723372736316641152133662714365451711323255233257574263354122767271222657564723113522161672112121243547637443753344453633753175323577673646145571256533241567312772753357254735253247554633675164453117735542367714662456636355113325321276544546235572455223724366122253121674437276444276671447453572215214667511454275165321456147262722677657636445255627156165714126375464466434252753752751452174635573241174622726533732117436733612136347732245721425727763765367662637532157561742635534744672652255227526514611274151565355554171523676461242372117175723411211374663643657221422432145616731251556252432463426663216767773712761725352527162152313272372564174115743214233533673113342622342653467172526261462764231534757255633632724634172312656121436364146422734336137461565461533463176141345711614643133712155534755762215777712466113313632526233621234145735115715367653225751442556272666477172747735351155323472421611551677765771646664516166422423412461561372466265745655637771452637127157426356142741433433572765767115267724522137262626217576316217726141533135754357377247271723736632624241137675624552661164457255346162276167652447535745574621365315624544541775757565445721166511474157434543342321765661677661627236311754417752262757141136112245115275656745353651765777722347757661466373741437527437542766774154124764312544637664537136645444157466226314766156433546532477775733755615424421215561534763672416714576337762223671755555255426436217743753365665765642457223775716123337656544444141316422632544546271267144712317557312515762455367515523324555524465647445614443323176637316151526314257132576131352334265273255217644647221234273436765575233144737435551664424657475365117415111155642622354743722452162233634643536637265562165433552165352157424226245124423375744363131437513125252674431767665213426662743266773372736736124545221726314542542161475471273667513614545131416725255634155454525726464311551363272664371146521322262524772131447626467674566617247541137444477473433323171673627613727163534674141313714223676776471327663243667632234545246246277421327755334346662267613637457313455343177543423651552235373235573441761736372656744261121543234667676162622777715445467533267667656565741357462125674651367366354133731757115331127525655674522144541657657473415571355254627144631715613744426276245152534451243444235623464224157655732417543271633426654477715763567731714535627271176637647346726632744527213322442435423466462356572344464627263447312557417655444762327123133417531616651545323711144266473153126117776243715316423241122336631541657575176537412136347472366354452522443337462516532513132761446622266621561141625116412721265761376163351556751571444645655554515534771247746125362646544213774557161415312234174257144616176554674635476733532161275655567444334637476572744363574462341226742336225265373132512147475636523166632557317633775233274156642351454531462654154777237536433761126511546144463253166152626225337117275172657275524432734647463614534545744675546323525222262543236674512111656611253775324562174765555655653544661361723572713423277756554142537667772452643125534533412225371366277445722344121573235347711237277153745173675665111636647764713637324134415214725211226225526122153567242172514326551363245151265655613714364137774142467275424213173475743446337753312243174535135465272636572477232356775541364144764241121371414652441316444161556274225456526274451612457366354264526464257761545637114233762517263223557666633527447174512754714327614562566132777126511175415231122411151664274126167176757664666241445445165516416435423511271134272145554436476243715267371324733137714541327334635454415456252574515353326451135712544222747127671546271756173674252663171224315351262466376566273363714235556215434573434324343713214527414336161552335666414775436722173626446633755653515226762775274477334137525314766621436736557226352765757672271255231243127743672171675756215434151115516523214423423322254116625745417472123456721353617212265171643713115544355525775127347156244644255733361242653356322231255542257763422546723372235462471354413512144322334664211156227266736411524367423223753752774633545476561221373615212517771474741627677132161363174445335574272364444347656624343711555335146314752326374277624335472146644575272433274713764531267575473742673135554166456141261247111326615121617425374327446563665727571324514457126647524573163666647111452217131725111451267456344254322444461563474652671647573332754232677766226774274271261614173636726124657641257716144236745232143756553431567551575311176731246653527273253232321143364277315272555564323555127244672212353764353132554743645671261522147545113416674477765455515666162147767231137571667544325113722237336351564644624677433144536163725563742436131411554171544544755634247414226471557367344721327214537671424364542461425736252273755655127555333562545257216446635412245212144423761525556312314746372724247772311464342173233631461663226327567636452553267552731717441274262264132327747635232344372532141466763334327414326453123265512751767222645725347326621251143337436442747441375327122337355571644521625652772545466613751631626477462351462645425325622775167727176445413611352234726326155151161727462152121434735572316123233445574613235361765644215731465641517372515253453246567454632326377426761436164372361447732263124165755231147511741115771337742351167773721171275226136352346613722733434434665316332257425216612124467144623364216435466327112333163116561727441325773127147374623224762275242375215617534675256571127451264435356731114464213173125262272756574417617357711211523442673161742412364423434555731274365673717142412265537274211237177561751176447576362323133167366244253462347326355417733442371125553213457422461222124562711123727432611663221244566235445551242376677775327534214141675563611242142151614761512225376144346553677175275765755261721527363241637632461371775615626772731256431535665115214766567467663121775157757567472211167147225447656365463352322633741756672356433462331567732216614112662736562242366556551673465175355547531156324273751232617426355742125343175616123357532674733436742565114766511255131331724377264543253753525652565521734365323761416774467165234727212652323732162174532652415716131226452654264474151446616317334445423527337717326473354126151415267552676677642412751362276251176253454345342613712757317245355263632376122323615723154777525255641171713145536331637347423151545756747364147763267213254573767664461537144144473415743523722717347523646344724355152424727327363446643667373741547123536451317765651341212675763765347216241246134151312463372562326347373427324742274344764244376344273646711475724461167524363111632226726157653422432423242563746161664672571133417552166355762762161452732745476454564433321531747124321524275232722575741225211233755137667323616256762214644771475221316257552561366517365775734647667614672241216171126626433217175261667175216235257133715337331267256357711724531555745611634743761726636731474561276176373677366371365257321777137746776275325266434152225325331345344274727647423137353225147115742562354242323637666127625746544722351775136522512434515323277612737121745637122365637571132222526442636532454713467357573115351134231174441142372447531752571615347461234531771346333327617172737716131515616134166432444543646647654745546452162635211556764752747444222166475572323417317614221254677725756527763223363265177114475576465341447671241677477372162642611346474374522711742713113416666723674423715276363574115355345241541274515345275544255623546354532543334767611365773575151727563751323623773742541222737243113521543144545153246452654671113454541745522436643521616416617165642747532775753245447217262317175363355544332667423353413534634463721564131411463722362754331717373453275456425727256354121131272437167546427223242111612636765342241336117223667711763347156614132364114247426526524252267151454724424257123165757575114233312773346163214424222312224536156367524523754627351571724376314234325661375176735215417757677334657556626436441152732627611754452437313245113221433716771175543776121355266512654356156267143434347374234115263737546465471144412541364615435741125774535742523677727511264761273712555462534223326461427237241641737565151472123763144256214261263353757237342641364614625344374722337344367564614514176623462164537563223271763333643535175425167757262672677324627273713554254342477651751174475516716375112557716665172113553333235175616764665565465675154416123732413322717566336125744315327614166427527617544365162533365445765537522614661331246322561436235711663154543716723756235367113713212621275676571176721541563175415767131621571611472655135435277766111263242442422527423266116725635745371436761352325554475367143741471755555573136525264132137435574662347237543325244547163126676454622635722464272657565217777536341635437676226575463224113277143337164263124675335746467111115531551166461257724521467561612576554673642751162445623673775245133412176215434562364754443261173344665515451741277675342671671346634516463456616767424614615131735417245524515475356131433246342113231724565236663567723241176327744145414236725314317724235266174477242565577331673714441351157627544734513637131331174122241334327633315671514637751574711244566652323773164551655744356563252131373564114573562455123773327634663343154535723261713313754737336573271645351671611343547344266256477655513773173321515631361377256146536727326661652544674744152776553564417217314452253556365555532771533664614263527716634423275575561256531367643654546312531373161376372422526123477531614243463433354636111722472345537155515161547123145147371645421436121621616632235742113177741714727211313176232127341661655767461323644353115421365553632531417661246575116641116565357424665743261737552457651657314467247744353347436574463657527367413311745414456447727275356326256617724575153116277137565426455337333613437741751654733614642475432732276372367665271662246517453656216746216165724774337312357635645543463213114625257311545442227764444165316161527651635511733643477717541451543522515376462165535536524563646322564323273522364241122512116741227662223464733547563154465372314373635264571246114432277627252613266626475412334717327422337622252143622474637237363235472555613117413743435462411743522761651162243431115645715113474713761117444711211775517421662452762113251661712123663626126264563773432422523134433135731657336547273445627133616221724173145113242526312335717532134455772624141413353517317274576235744136452514143524455514154171564411365545353535263745352172162623651346273466216513251562167342731165775343275146474563713757243362761626245643524273564753117335545737654552123643331736337264141754742436642226552755672737355543347513417632517714575667726572137271451446626616467166252722345356525561553335475373231423567415476166233666336267522655244226755763616175141161743142656211275675365116622122117433631551762662321221123426647523715274363542673136137562467432744663332577177472234374643616114464716317216267512342137427241727322253175733175342545511435637562777426233534351635416552444323434575521773542526467255513236512163734144512713542676447164645263476113655755242532417417713422751761257746573757327252152533141147476472353657772621746223626144273743372676666162376231412426136334764164164614233765737372215142552267766557113412326366477325413641737526537277432357231253135311415477362233375534647775272744116656616242462254632722563766471265156163343462154347537145176116545544261537646474556562213215771545275352457226615655215436246424355112261113174761412365213155513225433455775364536754565173754275652331141676341147637447736566265517623723667115267135231116735426422134323433252276111323327161733256521254573132642174427336333761642151432636723333164221765363351656732226731474624435434264531527423645552611374736513332615166132527375466626322213545746555672144114543337171412677515463343541251535372221452752132571736474521615434755134322624275317267643133516315121563745676331356444646211132154142337217744271154542564617115521154216224543652425575175117662177521543127514657341767611517117264437741713572536645736127231367624612722363655433337252165234325717121461646572236143363117452342264433536427644661336731615143372745321263261556671666766564134331153323532536517617516466212544664215552144116211263133143231126556335631353364412626143567671467414171245574235421345614513641614324351131553335453144414112413135474611666331176323775415755252131612611533754616225756544571625116361455142533454243241521714514544511426571246664371452663234722512645534642537377335523747551623317762557624544616362767134346576664753246634215253362375722572562366673476217636264424236517666126177356266263773455171752657662462326256264565743543651156136315547464424164767255633141755716464542314724412441234651157541527175435137471146163441647534616726461274245441556724221164665561447667325173241243565774474244217116252751274332621411252615347361375464624446651713241332266234365145427265752154577544154676445242625544453571241235634244277735227713447627743167654277711723546537173276273621517137142244627574615135155437671515521156447536311134741415464546332436214366231434227477146424466532563112144121534563767643322265544766364776153442732127461671556255223624532176312615563754223152673154541751622274743451774212562717575672763214577136246676746357436137337747331434461252267225351364211125257324764112247252716135456571226342142464617735146743521571623657164343734731634541132211314673523256553246223677723344515174465713761374127321423641322131677561176126521654726422555767251221321132125314626451146545653774227343646376777747143726515115537564142612612776723215266776453542145257537631533155713574552135233167754151324543233623212414237557564361424171425717341411235372361117342663135637663643765426744156274472676562451146445427235732652321522571756154731663525222411642124275263271574653334766236234636445213524614373527336363326672457267643424753446313341663564631657634266575253124441441116512766153573564471733567644656636246145535114645647225312617474317134517321775563425247431562124137621663663533175731614154366672675153351645145651753457127611171576244427145732147416417571712773137473517313636576357441533654257337611533117777724771145444172124776262574473366166113767366512313132371132351371273611647631152375624131367436667151136221335476251764714161647644161613746615544642443753146144552653261242136413651356564571156445763117313364751117777456554421327541513751556751161725774456512566641255332331456552463121711367363311244311446434562775275334363623731571634571366575227753412673317366363133172142764661143443164733771215634232337627244477717423713244746451614716624275376541153467764741233623516247777765162322432736241533224141742137647113246352177264676324421646623533151727341376767722365652454636345447374435443446615563621373331275246612446123623571752223567671434435573414716266364677356457433167657311712627567367226255137637534555555151221156212121743127714552241165271326146462477173173541776174635157775745314323532217216236522221332736457722476617642664546772245341317421761563647137515436752525657612171366554657641425322474371363663632517175173345766237576736316661752772612356754671661664414415412713214432236727126274556416251552164547673676617447225175123262472245246536411365471127722342421646562344376444275226311646721774753327156624545266721275777117575137745737574223236247646561542445451353433156571515472462555613361427653371157132763341416211537661666237345467767213455315462452542564432111276137576336776343536616462612623446527542354117554555313665141525417355622243321115646326744717657526212536262272167723627237116277221374214445743145326352464214326465717553277574337266525357612451352331657736563621514231213457516751746743623115355711241417462266463467153374733543657721171336275534733273717273651763172236755642446667367326515774325537345232466366225247727521252636772515165724645472475551515771577752577472767547176745736627717116376435545622532527423416311413343177763565757332415146117151316637537215623761241146641757127724777622514373336434421527533634334325416246672645221462455642465736512435324571333413657455615411362435277647174344632776461122262446265263263627322611541563123276226745274566521671156134547116721615354133715774122746514534426527455151461262673217152424267162227646715134225645553626456454566662553476127525362665432371166656243413415477227526463732732731555226677437453334274571764267255661647623652124634324424133257767744136524645422164636252467567573476361744617126573327677655646217145332624735615251237136724544461214426712513427444466452746426547112123374745723472432525561335257561132426321777233425264421147216332575331537454715545176325237152341166141216577453174125747666212431255266247274625247654532554711245674621732515223227674251743751551252346617423645645372577175262321564344417714572432613522442774753317161172642125375561145436133375315514712323764754267643647276746411122245554251671654251161774737141466144462651737344473563266314343267646234227355734414644664333663756662425353155626223612355644141131373141456341272554721514232446415113161714743323634715537765545447665757475127322724576616452137715613563215237542123113642165766541137567273351652363757255765541755723753311417636234343242636125637326661721724737465772275227774746624617121624563364624545636243134636537512277647332676553417713466342433553631773264142423523763726162547144144563117352533232423431576623237526131166252676157415675556163155161311237426234375765653663371227257464347252722531315714335557615745372431543715151751525262363251722165141543251466437261526234227445253426655115767127172126652515423665663574264376326632526777553242741317137577343346511411476613226357364445411744526657117622233262237664335531212171172274317727152341774566511127241557212214232456557236227321456544465617432771667522334471545411761661635225323314631311355226445434527243174545222452671334377133526652363736561146437573332455637425755262157255731721244571474456255614731147754765123674135473421322635142151466271661365145427553146544152137767147276725657634341125624737136243264276655537164276161664611524233642547413312143162141632614331725311442714312727345447632374315147313414756152276644736257521436456131426343573461773711773146724727153721477147146441647265166571517712152166774757135764674563543655163471322727624534224564757455155525556147742625246526235272121663457275313464371353276636142141477436356535255414734621645751221173721774533364761452436334466566172262755213712741223157517575516636123755245553575324466355225712634322157635326747377324756641733475713765627523464417224771174454264473365231611351373713114663271751416343435472523133555333564673734667334764357664151673242721225625757357126775322521155347563345233371312223766237354171256524431661123445744551625326553545172271412646454131222755523111737257321515554166311426372723735743165256124435455537467662274111421256251734462345314314534356427534463455233451171733326143675652337716431176126412753651247627263154737246771743337525651743762371774621637623246132637734333563754356332325752775251253716376765313346512377566314322734653642372536511747726551314677374652122365357343336313453145774563664134552516152614343756457226525227616777714275642137175121662515677576577311775227231142141423212163132164375736153161475537761217424734454167175524553331246361342135414132752524373635653611755262733435743235654157756247446264466733531765544361355174247777535532716224711346465316623732676542753666367433473134627232512477675265214157526233635561132463353271613431413327722577623253427656141314556222123464466175347345242424111723135575243254617734562744344556272752577115576472262455122516327534175216667447776245156337363255776411367444453317725741777435225775735773432173764572761644556266272671435544144533623116563512322621765531156421124336224576742324434271425371573236747437433666431152124653133357264341313713546753276575277636566213333635271177537317127274162722346741562773746117722732352563127735273574177772674117446524137222642312612711212633776652454316573134326511643235425422651312272615337122315532375137415547117367134745276162432256221776727756762477331356522756661771614671571741174132615222212472672252432436637344544266421552731146413666543677245764735114276424264642437716722422215135446311747425761662474747261664541473576641537537176513522712465635125712265141252142534635273157762462772526745253326122652351341417711273271116457363541175332463375424154165624762457467323663223776473121714313641527642331564255236637137562147332337563751577322174111267315342574563171257113333134254226743222772312341452614337155416324535136456723761263617714555521114137665561176334725616465331441743733523543415216761636562526724437712466646567556542427713576341333571476444322276531531127744111461522477232352236311423431142372555725751126232173235617234574642465252353217436763665571341647215632261613555555133624151136167553772153541326241543247464273161467616254327133331745714434743222313341762616332336131523237543713247436727754271125167422477611345377273367611723642515165256312132152412412615172453162617541744253424564146666124443725761175613166645253232744521123623632524122627454161366147352535221473716371265773743557674367172232653574534223627215315733742177454723516142424455376713471627765361733656122561322323562565555413517765767256271444124472277631321337237254115351764324634727752215321245756524612244747432337661414542337211613247643717252231372756113145235562546157164221461766671115722471746763663425453662441661355635622621311553422711144344512365161453474662233345462126616145654712263743376723471622513427274776124542761554234227561132752542365732231336742473442545754331557454611633741117463651546172351227717114511513663367444464523744656161431513212541476755547745542541514776327663134742527434227565636345261167464261543417131226673637547565634254331663677631622175242111674422244344724626171322145467551122447174566362313455562341426441674525274224365643413656122665746537267773343226571165171266165132157247514727717716536755774511615643715427511572465374264745737623134667741721371242667455141133445245143254424651136164512624262176514742515212216116567662211422313727362712242144614674135277342643762164317624476277512332476663261561232223764614566121361267577656112345634435174626156314364352363426312745556247266117555274534776747245712547665577555376762463266312774252257121776647536175334155455273321424624527664464237645414234576641424175164534256343275521371364437741566233767513233725155213747144222256455427153544263773411314137445312165763347166456737762574642472671411145263132624734115671742233313321237632233727342722215331762334366441555246213325656422622146514552737455475741536471772316261756242226657554647617626251771276714235234373776657743661117221133467372143332337235634634667162447371414651275231123477276116444413555253374127123474524545473744421246515217323662244621561155436654544375437626244746715734566555233763536531455742543437725764627327573446574311474131134744446567547113163414463216432136462342335245544176564115752264133451523336224625513325213341664332414747772464246461172447536262434127231476214163214551433341624247354433455754474152135451554267326663347146575323425154342767123112345452333264536455111316431642116754317547323171613144117274435423144231264513615213614634316151566122342133523235526173553451631554112324666322764675262631124312613155545476715315233526632362563161655336127767523275272327516126314257772661742363212345226742672316416575673232443577321335425566527577267414541137773226767556337471427577165361467712512656422553635614633362333434715112765233445327122547713361762473761526162734645123225654643212522764674277574476731617313536717226576327376147742134165541342374264225247263151475723566635264622455372217526767451641635364156314743365456356313511514242757512226545324242774445525253442524646634555161462136521445173365752634213632162466247324234563471154615117227567374346613352643741432142275243264521511147434632774317436163513174344462435227331752635643313542167636713626761157243126341734344321341633442546563176734246773336474651124412361771674422311756725374427757227221317162324521323253515423556612744652214566731346631413161751254653765554366524317467777776133611221677446411142772173774717461423613666621634234544753445374467167366341343767443242526357726634773627753462336744225153745731541133131466631636247764372166253355662131634121746744574113741476365572665376313277766371715755713454642413353773673622132627421167555625264655244447642234366476453146775553277553641254674555323747657426737124421637316765421714772143751663344437362367143144655763561667225677636765172425214712362551663353355264114256176511146235224642211737451717627572625647373766277473431541534515616573643141772733376363536111572442736343542745276144416437417755261124371566327233515541532521356357227477233255647514556741775644755726741367163135414311511474113774572122737432313655136266617277771272316363613312715635536467556576747776367621122575362231125166673173623624626217156272224132143544127411213225232163374727333617332273324647464712233735771463426146371175345635151455154334675473443562416213117355764537117761226564746576271127735571622727142722536425434557452343425627733126371234617464541166441222215637651115475354747247723256377273251462142661374413324743572622257416623122343125347144425571115167742465513134572676447237252151765323175321617171745752716314323154465227321332535334544476747356726551622166232176543214217346152737232537364673757271732757665172114471521137526457642257247656267636172126271755732257263161717173124335356363166314334634634755357733552511736667314676472176644736325565577457521121162273266763726477366424317521736256576575777637575531273145347266735726425522412366515723451476474375147622273421363275644623554274621623132414644273157433121432234335642724512121436473114261474147525147621734177767267716146554647563445541262167126231245123521466133617637156171214241143535564411161255163612134567615251741521536644463765271657637466563545521526154464214363367435315772444635534314634364523567317176454236722544146666267637561672456273174342765745763655735716165114423261377763653251744656464116647366436445634343457235775525313442375232734472746661552244775333673326623373567466655271672536716351333663233223777527171253164732164554277622222114214223442245463251671653115315745551136263743351441647151523436274411337733261446623627712245164635767754414567343535635153571254754263533273347533426235515644442767252613137223664417362766324613747327544676156636766264135437623746134513542324324143547313414712725511765316152566142114545256541413521264161337344465231657643775247466715752776554261457343734551621532447541335143332255662251443436662646611526151377257415652225124372373555463624651724411732533274434711557733331523164367543273736327515671243325644462356665351324264765112344741577734623452673323711632756462642544227575654326531614132771266433256135723446331523145455673547265711574241215271414362242636546446537165377736717557163346233161144763614627631515415142164373417127571273156347222737135566247351223232557424545637653532446464625142427463136533627313457437721645116255552345637652236312473571371327166433227226352372443132272324343316531562426657135457777233667221213263534623537415474431716732142561154646333264634416477323527717235523545175551132163124477412424376553363732154462165446517751322361527132341616226773654653114344325431766751572512177655366623466223412317471761111166725621377122464526666766116227211713232154433116715774515447362462116324166571461272144517547716337372771752117241444736172214757176277474516634611324135466254163113144635421172225641516435755466774566447551714672643616524264274643517666177556644246127545164552242242152131724542353231146435661276413615717455623345353226714144715217112367752315142475365712573434355574672732647116655445636361736576267362647552446124716646752733752611175155331153654541456662156431541356713231515263331226445427674642643165247166512644612363343137234643567565447634426654211514647234522572446432173167422673467413175464722675115415566757336271571256741231732513363262225144125253167213316567216535751554177625333253614672633626515563213215631367652332534225161636266577372432336453736557467453362253223457522511114752711766425643154524516757777466577777531324643436716575615554444544417653436672412373155643417763545532166157327656373167421441115567176715147746676315451534636325346357154157657621477542226252116644543251347432471556711737131724411646173136316554466652554567332415216623653532277766335123755211132634113566775125747443757671175377611266767573276333641652751671672721737711237174572766173354344646131243267271661157666315751535352565114134123137235177675761516715526323744261214224314712264774667512175634666311731532742551346221321275773625631715121267424435577731437123576717522757633266147242216127417211354443545774721735346162123253472157425135646732567575611336777314257764547443623573464437426441275373651625377657127563545573523343742223163742153233516367542117523646244451777213554522467612563261175654743774363734374465555273324121536137565167411167745566121543715537676375457576472252264241533425376347175145626253363116163536275721732637423241676311331573422224431523565721712743265354536242725771446151363577127544331356557456424443561151153747573732517445426152442441665174153557637615547366622177256775324772675766643762663714733733575175474213716476576217722216556275645475665647516546437751546367264633533421313166724132316154163657322753725223235642263717527224157345156571125711221431514426144762676546761463625652132415321737137775614154335234431612433437542543433252526441115276333775743336763471662536657466421632536761161542537774771751613725271117217353535655244543524135745765176154521375133617172426314723544451223354267541551133764567144622745373621766154257566234142633721461762251166524513325754236542517715143353224714237744351244334427243571724514331235773721465236253643646427243276766371542255714567255726634253152621165274114572517272275513122323541272615354534654764556251414667117471136522377117474423664254374345457442673773665426716534163531376443633234622374376142551244314242535167443772432337426642472121473122276666241465547344674225256767127117634173651776565127646635641642645356653164633445531415271466663422221636213567453415146376274536161153165455312764571341267654653667271135576165445512732126673172212225116715553444641742533243475731641543331774471416772416267663757234477461247221127271211276515527151227344356471322543563554326444457423152712164331621175736572331273517771126563645665557346663713374365417466763551347464462773224764444574413662135775345744267676332723555154461377735642272261125436175624452572616362621751763545444355614265365315677164173346124541443153671543423332652316111566632346537625257523121342253422325542437522357442753176235661723571154736275231435646772451454144243655566421554452352427676223737225174746125652117363344265567623323127632321631751315645313574747341425661653252214177542222635672144623631255516126274327612412716312766123765676627352464624115765165777367167262121457743445343262761731141756367435531716534743332544641757516562454646531335562647435633575464641436221444323421564356537377773246177334165441536255241271111426345462762736111746553563614746512352667763574771665235635233213451631646237721216632514241671247433411443546657454626353332566531212366743521557143777334522416426655642234473316516653334665436435132344775247221115431131574531353621421156767272745261241634163365527635545466573311536622432667543537373243132473656542175265351534464122436775364352672312136312162673146646576235314555772724343423131724764627452146646142616261463576376161136243247265346264244723663463516534142161735544371614362742332375723123335112443633462657212432233557112614161344623171712255472767777157576744335645657175645744633752722535151745532451146652456753146331257243627156372177435432157613127234737645565116761634131133455462254261741643452445251473732571637456562757214562217456762133236375153352472142274343241563716756454121261576137473711757462456425141377561364334725133763231774617641616154517213715425742151632536627424275226621374171326572664546522361773757126547662531736415361516626215231774164236443313143314216237753163572226162433751372723647745254534156765337746165361664651377662261277633736746465554231362267527637633246243723571325455613665552646264271413773126664346544433617626247312712213112637424166457433461422623745465641713311357424173145437745513367461122361334743367233331712467437543161125621151373727721156232317535631333551671273375324357672564451513171362411752515233332612357431141177342446727454617261526472576626643126117765567426462431571562451662574673342423271434524662237227477167536667277454135514736162121131223771732176411263577515127345356545652761722242631522324347766653531746141465557642273631631535112176623152547633253646633777611711714331626772317673565275157262362736227721253134522343162217347633465567514231574132467571636723452341323155326743221211474376654277232441374271422652723553451171224471541151132416721277635135157521574673126261363423416322137113272674277236354627261723335346567256675627546237357342515432327356147631716532661615175652715142146741152725223274125622232646143731255341172423235626152437344741157713733276513316333676633341466457753473355726551152634352331365473644271764653167263732274224753256677117615114124337446267556224215236216717533165742751146761471333245256221631344632647545626142577315147323357144247335126134413335151112357453111233645651311555362474741715426431136515537125564135422423366121334315762774543366221473621545677431141447135474225356652635436462515553656335741675463666522377652346625557555536415613556726675131722677655431462162547431331154256457546221461567744711254271527564541364522612627427445165256344612157522714375247214123741664466514667177421335266611275475135725414423366512431323354213727432273535173755212444712323635667177463112571422666466522124612713162312563546124654637751331632237572167453356143537434471674717271316453112616352436716165577616751736447547517642642452332334342434261246316212566145271444167322652175635567155752413566365211515736521317215174454743762523675417353473634345613426627161561331266547223657342713776624773236265242354742117372671553254561526354573316611631731116544233375223614244225212416436414146575421711346167722254736727323113744136373221313432747751612432737542472624756432636543544171473351611273611453757624217737767434515535226265552655217122112264646421233253632717637551674213567431664373756161254223422132422465554213523423657372544757221461345667341714261127475214126375331237264464114126366126432362734257317656467112631543516745152676727126764614111275646442267467473575375177617646434372631666645326167666657654617357442532536451357256154241623661645227562447666525532245431636124555535772151653437554421414426764556455554753315273745116467461755613472277431352756461336465453343613143116234522377433273151476777415625542125355422142451422431563265132353221662176435411553633241655174535515145171642617313637735536111773516226313515645132234721532731473335277651445357474775151264425152712667744562642242151116652576766156153632726342641762757227136254153436641415763772377214326334742316364435235545774235557413177347277543366153663377746717421445464451627635324753667461534577247716177173725323612762135425443554463473776631222422536371754232771247647644656237313153361774214422326412711624756273531632362725261242332524313243526713141453373416651745566123375377524562222563351565245141477321273662115364623171724542511645664154474234526146232716357454133552221634317333257367126163571155211373735661317246361276656665515546241641112226755276253251623577423611631254151672417144327577541233436554252451533546362253242464627515124272545221151416132272673655577131475111336476313524613412251374345166322162113466151431647771426154776215527776715751244334317224723644416426316225231655325446737434165147172123547634567224137163512436537631314267146762575525117352224127267727624624163746556513746451416571573365615372167741445374454444525145645374414527663314663436277626472222673355333575374537341442221434635363227677336113141215537713417337661542465415723743627632213337215371441121613121574676736351373723151372563176366646551516746337556516155475323221776256744676745736554324747452663471416765763657534365773742327567631447345534517236136333656546632615533416157113715762341135612272655335234255457356672624516626125557474113547614464765436312234672641351546527376675547572724315672647125711137731516676771542323416531331354447631412322465727272255212356124171351412752465514123653122143644611662251536327723311723146423725213542536557453774176474346757511156331177255465165146474471442661635145153631547245724355523121273611327713157115627365241462471263244346643665446414232267446666223657645244772653476536513562413712175621222527767743533273445155255751262435444432124533167575414321331775441125237573212272734555532622357571325316636166353742424675134713236676462471347633114475412773336117155336353355666446276477742653662415454612372347167137125413712354112574743361211123246671271536146227523252462414731731762145742774667225365636442636635751656755555677335132615277174512667476463343277114215734743415623674432157416321141534331674565754537146717752765242665765434243637633545533733656746556323146433325771575262457464233174312355677511761427556634347567321576355437526771666541266256311467235171164764753741161115737275322232342747456154112133737666512735262357444343644167552441412614433662635372766514451636667761424723376746245115653146634644615311642546473215164477363156447312575653524144755335353671636577747635371726424257615374457431445431352344327655545367144121164741767125646553431361276627147643641664341335761721142635733636223372737162652264411614471163725455542467756275637127517517371146523762177117713616656646617713776276426427511111667665445557246177641422464674174763647414431341435471751442152652135717552717143123122366523772176717754366374576221347312621232744131661417177721155127312435632235325565576517626421452524317634365745614575666532676752523675333147621417177143343252433724457165166226346443666225371763542553461312455223613635375474152347575737266111412675535215134371361254274126257457233764677336466573234745773737663272661624653433765472162355455764264345733276575336554133667365115451245575544411276611271131743427645335173644174755275411525756154517221514223632352124165774721472433574126612147452752463154125467737552432555613772257566317746642616763237727321655634555653546731627144156221477272667545722615111725434465526457636712575767477612456715651525522413614473353444772512461443226461651337677243733123352426141671677623712637224645272354252441437333643137153437151425233367442566152575674247265236153422355645563632513146264621626277426323761365447154663466562511562315774143727626426164644126174444335653345437211711576217737413246134471234145355436361264336652576135352777534471436566223172461315133442326767223212234545615146653111353362274525741515476112771424463711241723527671432343753215663165112313676556732177465116665315135357736525537636715426416346752417574365742144736612642466375555426156763116613564652222251735671617576126211557255476624717571663534545456434353222113515575754247515464337776327622273752561314276144571571332415635234422542261176655644711342745567231315634135634537337365663342455625421235737472326455334671747432374337232162424372126577774757321763775375456226341341432731762167456277647661537563736332341557526557544533616667162625153231273151135612172162762363212534555164276761371426726156566652321241562571521663675674564441714127377457622112411272751325517232262246221323565614121263135157317533556622371762374533145544615677247741262261522274412257751547664577616745231341111247345322317157742757562637632665633475625634737246115411365465467736621514111234146717756535265217163343764111625517516462312732751375574215461151133173234327535664454115645763217517722464457246713435231621341222235465252166161534347543576121353113637756765157675661257753217531114722722546637336343452663745257652765333126141114541757344272157365112435253354131236264773112241663326744412715241156547267474473726634374576323331326235264745231235654445367543564427345133575611477134564537227772736642123673143156545332354453656533145346764472366113251726313277574432337671236241467451223653543376443442654411641727252547133454432675264645742244352536743221754244163466153316744237225566675323721366216547544271223113762514725145176642617437553253551733444361762555156212177425674161545263453541466377527572472772265673342537765526577666126337555255674266155631417576611445412351247566415217351342322466237466672742612344371546767336252331111475777335674157656773532155176231147164553262357341633731657674617726375734253111273517665755345247111614333553774355256744462225347431165353743662526334172235162145344112527777252215515131647153711322664664521141533435523557142314473153446543735372255432556776646144511564771631257632211227775621313453253346564466711722133534674232557725663322314427623167656262551542241614235717761417366126473451615776332122731262112134674142233733666172314522754157641256511124524435555331637455532561342454225567436372466423265445471656372267324144422263573456137235255375426154516635376634656571427167523537112114645432116716741757143425547751545322424414321437343716563562645477753323746212157547317677264745732263671612127164225126235621334654343324556556261114626312456134562135612676426626223254411325675211673762645537452776441673474215375674261733111377235415766317147647475462773733167722621462316373342771372616335231424563624664317521742233157712744433135623254325433546265165473155457332776422374562412237767315753177317343663243524646746766574215245271551116557264151767646367715545614134673622341437435464554431132436226412656623765444733667614157762533731634224162574253233551441734336532254653742467113461535537264247374753261447442712766451461225155654312357413715174652722143652446771246127511227626231334722176177223745717742143156123414735744675263764772125523436611423111617526725416531313746641672224414355341213776247534437421553314651515737231254131575446635257545616522636645461531215211626614516567154151627774714635721621312261276515716776411214717771133252472353764774735766457356573131371536146446243741617546525731152234252737764261253236771615723257665772117436564717621272674322411222433476354745746157251713255317653322161566473372331442167532516242451637477637274247445537723637216472432436465112146631734437347117454526374175313217422755612734162444474114646366231536337634333677247651346174131374147243667267174212235756462613236363752662713423647455334516743771375675766337625672545217114414544333743767761542115646667222766331545133143326421225113346446362555262665137173324245562545415653313563315334557374263431361266516176437262652611236613733761633652515634232334467447744453446734326172515747316453357714251255616425677414455412641641477526316252142714461132416513753136656614117311641164246236524121727517321442547747374116162524616576547675263151117632631723573454447537245653664557133345534363637773741626276764771325717537132224637721642447231363174161113446722614172355472532241767162445336631442577441534651157167235771664132273241323722231357413172271674235561534225552616556257416611335713275531416517465274344336361762413365426416445276623456225435675124677637674434336775711563243666447342423176531527313362716416354227563173755131274543734675533155243554752675714367674255137446162541136426221651737555367335233427444416331435441427345377124567443214747723577732667421532372256567474417756753331313375636753743613443452257424546115671576163453727374613564352153753123142521214144626315153372577112527111221726332264761327617521174774736122765214524755747722222632425237536267742447234347453655237164136766763236363716665264176176412417317633453754752612321331113354415371736244543123255421621257612551545453246462727661163372463547725563111161272262367637167343446225437656665275343337436572237152626613573413267632566355661676161662352524132124374141731727737236354645341453213621114227322335262656314561112515526342273326146444365645155437122145265631636512252147565421343667325212316256413721677542717377241173323142123514615673273124751277543156372543335715225641466427463712631125451353115513642514653254451474351317612572277361147556223274721161742332541516624662414243536744152315562744747426671436722616324555445532335361362434237521463241114567734554772156712664624247357637733321112337127375771316454556643214316541663524433575342721616126661446525217542122656251242765754211774614662173472421535743642263374764454674344575652367144263633231676367723473261537443163355662763722614165574651624124461341557742234652523111363726464531676614146543616231361562332114215177413457752765735115441553273174755424522712624425172356615316125566242443535311711356256111714672526673256716211236754774216576151657375276111245253653464353151256375126731755462147527144453517337131745142521246117214652242275172316733216332352464762316526447661673234161325564164424317253143323556365327275514366637545261514172631452462154614577474214364674277235515114614354324735365165675532322234514333675362221737511215436651233757256115331535577537274152375574632543376442322214223647111672264347771644165226741236341437557313323371711533437643617652741762224655766752234331513617233323544233122636163415671162214546723555157344352514314333443211722371215232667132462136412124136557517424623627177413253476711767631713465151152722341611412611715115554463471513141122172374465216164523172164567613734374644364262645265514154234547361645214744222657537145472365313371122517232337273321771327757427532174731253314547756111176251144545252317732426425325526454567345273333335417451114657634274342151414641521555617374461122445553734412664742533574333344412271513345443137424163427154635155346574457773744562135133526233167651317217525173416222475437736123154176257667142764233665672574212632547627745154671271177257711375651734742657247257266225335556243436143321254363223244117566513757663226253673235463164153124322221733661362674542762416611343575612277336526374573743645173563343473545417436716413712511777334715361233175117142554626136171671337343564415512176462364274355427564743414374424463533452111653631345717347121467154322632711363426111156157337344615767362527773724231747772635335244174357367662414612513717652666316134174173445136427622526775745551362712346152714117363263756644712212457265565216335564162756457671237167656517433222627124162252416325313253237541633746556174334167721247673646133441426335157577513531637134141525557523222312352746733745551643311374726147415721525121667163325555246164726627112525614712244233647547253734146321722412747552747115743357764636632112476564761674511737147422426546277146645746426622625671153746757664652465346132324214223627515675363433257263426246771263153734553136564423166613614724242556125547316157465367647433741135757425466315343213166231436443341474154674421142362275442425662123527227762117336566434576474625271223212633567445412763744425346467712366644522454763376641566344445165653434613213543446515342715624372655437767445621472237431133664161734644777451532154731754234752746422711757243342134242576263466421533642665212436243434353632565757243322254527434117445731111615521364423275152653536422543523416536211431347534717743231573235111742235252334136743465556274616713236764317614627177655765365167312222644744421551446346165773645267555151724771156712511411774533521335437236345145425567656243524651533556512337773651536564247744721275257413424622775764312275777137645617241633733522353413323225223714631734336621156537761414345536233346772665712756164126543337343711517117671215114527514156173513554564555677627313265572423763452247636426317441776457721332577624717652424561667545441564155746557545726375454421365455153561446413174734573355415342151337563343644451732266146574122165245412166533631767675555257477113663163745432432412277126165777275675372245327562713715535324365156616124565744345637532365124522522434722516242146721457261555726253554735662167171156165342744763241545433753653761671336643441676754436134412711172134621365456255721533375575626721535664532356152345675345246732314774456525442677567325741655176677345311764365344366714261617617654375415254771347231557752743721451323741432675612777774177572657712326372552254445434254245423434757526764323656333741464247522211172712533732764272332765756261211521665477567426552661566516547621122652741674561766246116763156261457644145415623541341341747676743121645426277663611155253153656372556321337416111217735342637517174735762134134155161625712762661364274317624442147334734234433662413744145412636751365617353653225521137677754661711511446153576257354353352747132272366273654461537264522125132252572421127666652567352565471635216362514664451741776255726711622561752342116214375233735645121317476742143173523356562345757217357155473672354771657774612634762617546747264665242252744126615715162756774413121346533156137742447756547221522766553267713176253247125246232521415635646146763327423156762135276172656473312734677274214421251161445325755152652663423166114322377121736544632122463772513155375221413467163375544144426743573235276636644174752575241154435752511514461172617151676173556354446516245366451565556467744673447331366215763742621576473273531465523535343757243323273522275345736323747345463726445737357225721653367334174516353257114227612111437562113674433147761514415616162731353632376524612173445245145357575767321112514714451264171536676414547567741341126156567642543474151231244372414422472415753333651164117531712553734164753315623722543527731216472222516742533235412664676617661272454461554761631121517517617727254623171416563674156746236122151653252233272572317124137143272356775227541131351252765763422571571223311414531667166766322612151114454625272471377317253533631253527313233362433554511755252466141762475645127466131246753132737246416273125164171124723437633751522342744563373526211674561157131476574363712365217376745253115345146465777336747776514422633557364133722664562551432765267536574211513172541726163372721174653474555155333425345564676116474133522337153335251731331341222526377534532115723125362316547733653746424524227532451623676771367563424177632515653754334124263133515235312462267566211624453656141664526754213352172365132437455543325112644271412651575641715462735457734353425723163666757637724471564122365266675173212364277746724427775425374225536754414371173646635516237761534342124443664277154734651657724351653231631261277673467455551236414737223343463443623751637662433146262616265543134433516516643167115417337113436762344324212532454215347252624534671424155322476231756114216763462534232775156161261263623512157344157346264173223232524215423456175742652351113337512224166435444142441577717453335657256232777423667651543617343732661774274246425522516167115411611611331745611473653562674344545627762775667631325575165531214167767266256242365145564337561371416335353377525233623456535665747672541761744576262537413263767757335445442121756223353513213172745572345551655616235615227637153633157735714665627471334227124526134221731531212252415731153425432254251323445772235747745421154312127263637426743546454216335675111146333374372556524345272672512526553723553741633361211377461754733245533126123541561632717276511136671213245412571765165276156372162214627372653752671422441377517147623664252666746232365436577534617217545725733645713646527573355316264166661245656343225365524455314723622137634462113532424261722324715132214663165352624233326662254177321617336764156573346124353163716111233733551531156672446746447461474117475541155646122716664623764514444121226123124226224616225566333756112124327153776467312277734431343656371416716546577721724366633211751212723771661663775345227551656767272612762152551474127214273113122412621237315344167172621141364636131244375733541661743251427773726142511375753751255613746757352167447611417614133623336224263411556547611712316617233155575756224771162154424225331657526324156556766115551272736213256122536515514325273233546561777611164736476242763327714752741142241754624642142514474761376513641136521215523713364773224765562564547772655156574214635345113272756157335253734566241715617241545564527235641326145345126154222777442474262323337754577414135235373534352424751756336377613545465731456622427434351331322515344257325277352324763125347427365773734553532764572113731672741541754323175264643253447631245322426262563212716324717764771633775714364515715641341347257232643545174566367254311455462416112356176554324352674142622263764233242721553317511236417547246573217422511233123336111266213273615657232345566223244363224653144633645712572624347777323672325171375116376557215415447747212713242742613567612343117115245446662266566746137273614527353121727246135142745775255141176522524641465261565355124731252123316763242672141611313715134345776516122432537617642244756422313274726251443335432646355136451161464423556233665252177622676776246677265117416334445431627637544345354775755671454221313276363127656357155755722555676236164566653521526315726363153717515264752434575437142171477177162671316553134777123324575415513764224271424134746471142522313772415745211713417357465547111411653456316471143271346734146327314663533574611121245252776521453143526767567673721637126711246662245255224224616173176726133133456264717431132732343144651354631451242125341445772375174233516663611133656732433662573215466455657772377374656145315546476345233243463513162616531324275732565171551122532732615641371714374114261414667763354252312423252663322563143153322146371452761357612151575114455561311566765734114233213134562331572742551445746471133535324447631135312456254133347613334172165277632127244541214266431133252761166477413171221636472616233441657427351767113215266346163447525566535624746256165633653216272751733436122151761553241462413611775457473611717265472751323614615443573115375315166465416171462146427137651513213243724634773217152265344524156415771463763474333641326671517367266226525176541727262751232171116132675415471562572616133452553356646421251247631732635363441617515551776733125137324154421523573351341354556361423221572744334773121246534473534147131436251761263311163633116524637612422627137477475162512575157152434636733672553453543712421536112665471151345673261471654641641121677715142632351422616314362475564576313566733275356321657127677456227477273632451423427333313341362243264466725256511653225551571125535113724433414573735572763116653463674441713553166547145457255514175541632371577564471256173555364162344674655624454512422117547355473163551354723473655256242271641257435563276456133651576115272217444134553437234622771613422752117534211664711574614175346645156132554642453423224523267244752774352656224575117573733146455566215313335615427566771216255134155526252743625675675737755571126511536733235724575411471252363153236123456157631511741766114323645651115634527777174112713556152636141545236227237657252437345531636622355311323327435511646323576572747577633264337212315231422362576456443763436457677434576726215764742341614452442525215111621547353577771447615267772412515611635226225462553373462544725575672433365134322753323577271752631714342266521736357547561676153364731346232346173157126217125354766124757275714421444355471135426447246366777353327165525521474247364114773147512417363156215632761313773226361532652176637533722253442175143225414526421374676133471772415747771363236465767512252442624531522661214153742733167345637413566154275614311574124261654735413231751642363344156566654356721453441635154511135113672226232466743247656427444354634766712251166513671433516144637247242561716567241215567473267313341411571566414526374355674625252424415653634275146664464147575151531216571122747735475173163617152174164176414476347756266667767216715335376636663662627526716646437372222126735425517472363351133764317623427351733613152577612321743635377345331732256536616242436632363416252345563445436442576462631272236363142471243177451427613644756726442613627341375531531115623635472552154122151735177212714467236435634456563756566611222661614546443177646345124716121311471256122421416442254565411642612137632714266223331127761165247453547751416322665767176375233111465572743675174512533464216427677356642233143414767336757532612567364527223675314347336311512762737411544223153616543315655263375346432165362744731271657516736674537136675113577637736171773762336353334154545537543544543232576344777316162635521264642256535463173235743227111147625253126716315741454716617133126633247751713476544245246141552546264172362543527153667573562146254575134412653571276157545653611462164635714375424323317275565635734427312652314157571421277162565337352556127545615641161177265127266454457443224722221341277713141275634611234645751274234345551562455145151454351362714537226475544357266244671131342125237277765422441466775212445566414424524266533663572333562347211753325755631326677242621754614112545442146162163177451467141561135563177126446655624172717765162751371414447236731437641551471575725776333456251324471465446425311121753311255277731717664546367412417132166727624134224671426461722646144146147553315664647726712275122637444514254742347331242452175451535227644242515552675134444223267123177633725673762515252665324336547624316176375546364654515242225171622432362146716565145763114735121464722237147727535334656462173242534141165777743416275734244662745553752662556227147552167646154631336514773616613767316374272676721663472662464753725655276565351551711311667356767455214254772147252472471426225263123631241456414545174247271731342636743211751536446163113277233526424745143336364174514135171443316622437672621431713527226363714516152751254317521262113153354144653151315647632641753461726434211437667455341636744313314361772254234312156232735476141576576714537152366223326265762151731641325443573414646566476515671775137674253635223272131122513573325316744326231561675711352543175737533374221267457367415771372175752471733152231177251741112322237361374722336356364462513645257277347741165122751437571174532743717774223736244477461412174462672663325522545126255225445113312512235727275717724441216716351721355757176771662447471373347543571316326326326653633653227264655125641512534422676364527646334745542622166537121751432426264751534717326212315473547722751345412123756716147711265267464522463576173664617772731657527372431721642342633724137114276136313514772245337733445367177723763335126342775171355225336337545162775522723544571433166713776626115677773347631115423326625476222271317555641161634266157631654765716174671717274633547632721527232242632743153555722115326462525631125421737215127322165625176672774557744774516637137631352231542311224615465351463341565721265417542234663437576223212675734576652776476742711634145446151542426737676463675157465332231425567453453313612417566222546677466435772433724265145167255735174657457523217545453153217774615273341433145721677214546435227751416551166561747772545323245133314152351146344444712643157774334643217315353736527625342332755553773745663176742744461724323272472617367667565151437532364774234534564463341757222326465254771444235563731146162413262677476644557247432546365427145236116173642765632277146717714531353374667177653114727732723416655175574614763214717123226467465216766567257511213314626576534346156124142133253413176645631266173627433736244624335233615144165556432725643335152515117614412177132334132465374574314276531157253517233372143522262711565612621372316556163345563164244746331451713577417755444143661364127175367551621716473176576525331351177265257341327741617572425473572621456414647743133223456235477762246277575461675316655617441457664514675433743475474264132177166557336123516247627435752362311276333244524532434577215444775724756374756432775446417253654466754713512364564522363211676244153574246374663434653114275222531117624544244476275515346152345455441726553124144526462476523272145351125541344637516656642271376233246122157644726624417636657572137652166254665447111164162142366254473422717644775775414623251116545127211316775516246732357377245751113143743423247244473422547355456673376557115232511744321367136737357345455162452567232452355351226243711521757245351525655574636544234226425352271342131612264147454177742617136153467567617224361172116377213131517555555461236457651621643267241327775753717744143325422141175327321727431335151573246553672424557741674747564644361246535617475362452156126632361476462264233763121446462354573653612241563151474547376624414613365471567765245511632534266666116755734144657342636721531436357146753566254322476317564536474421326615544375555417457733774455571552347667544316354267661235725174337235273735652311361374117526152215734341726447515657367252171412125641164632612561417444654725247646144536736316541424213616322326144616623543511563274565437563516177162346721177517377142121571312321566577617762112726241312552715263744745733245451366527666166515271675311736673642523673423363233423263376156554645336777237554125335664613651354177777724662214136735335623741452452543143273617574347242646624162247543715466356174121326211616122161571237174225631152674774626226376523443265757155456755456312342215442271676514463451125166313633512622711773342611722632473167431633144233671761774351637347223276614337736726235673757173135466457713675571524224613514221176634635324115357711462154515524411213634455113215365514155736477527114551473124543223532336216371213777131442116541234371332251472661775151363251364135257414544734243652111425564167626667243667273777211364132552643423557145776415427555167456642324572476377141714151661726514746515766717124134442632724716422362262773176471155431644344115245654763474244362136213636241174652362621446174326151434361571277536722166666422347414752223334377212411311243567547135547273534464646766123363346463231261445275771576471141516456773111275126535576457655145774614216247151634414363342765666346661615623116557376644732621555354346221532427441344641243317155621433617751125252756763314331112255647555751615273772444777211346233227726716627331464175115252165426411431413335375615435244453225177252313647571373745774342664415323653256237257573363627116657522771437442371357725427341227372613645713153121213744117343264564162754252514625233643767327675413612347621214146443733175155726417654646767315341655154712573445424711611651476564213573763437373615175173333113523124413755176477111617244454741442123417321161262254271657463527733374446664174322652141126567464124557336747572777275226164143545212356164743232273625633257624355713722335562171472166413475242734325551446557617236177351275577143622755633624731641716727476514275473175457253331522534414415125556165644671345417664435175727476416374653726567556324735636615545414163366234323245652334136614454252521345761424372426141642317626117345144116636172617113233235156213621332315135426427644376275125516553175522473446333773624346211275616477546213157557242616427651432263356311716673717272153231314533151712173763465315422246371743461673712312652322175421451456134213515135334576716551627765671421673511453724724572763763563626127467424137432112321711466757662537673416352663725236375273262345435175633722435251117722357425352751554156432167377472531672436525613332265413454435777771133216171343563335773545246245372623623651137562373657315321162263545223247326647235276631747275641475731753641754475351465324272442145343741746526255313256616242457224611626567426261616477225562415175357335411226321357313762333253771644476621443417641147413627231414264756134315462617542135267332142446263613462542636751561623736374233515163251435343532616212142564746554172245773365747552665155552347147374274544331315416323172336343463723561225256121752462735563222534213225753665673242445333646132543166664354753461634477155777153553452177474144241617526315234673247467447255761142235255112572727777753177617723346765666156452561466716167772426434224133677167237127736746111744576373674712134756642546467574344214514115311775663157716175633354724534265455254561513414277434736572231767524363554135645527334175417617572322671313717551623424175267351673254225616775266531251117145134454115677477326112237331355161646366257136751761274147116615112641656672616616725432453455265453552332423423226173341516224172457523775447172711436426353162337321632575415526652515452652114256442521363154752224171366517224751323463711316632251311151173611144314774145721146366314434726332773364177573616546311165476423622161461537723717647157526571753161247413526717614112165634731441575536277271273713212615421566757433254474524125345647472661455411746377652464122716746225373245332272261547242443357313143456114333663136143311756671374543664237415727735367556556616464652464346241344113272757641576275534261225453763312517474565515251711742571717441612163541312141242335627727663153453636177224231574466362261677345522333454776256514554712763616552715242553567352137647135436314515323512151227452535452316147527453144253275252424371623546433477114422753577651477673246212462472154353532627161147575416656136235772255557556574643415363315142542177655642512216661421651465753162151754335547446571566756645154372477133677754633722736714533272543555745744426731243235621147424672416223555551575221722237261652212744222777161714126432367566677263526135154246761524664753643762455257265623411553353177364562727466515377531727256655524273576554445264341343471256741551732627463212646713264373316455662763732354542453161531773757537736342561255433743127236423517513447727144617273415337313774645321232146537651132715736436124646661376272256372563376353265642541762521746675255515643172657143333525523423347732617326425431174547222463111124315331212656765532464743345557121544755253742625173567234612613617315123531734543214146631213474545451644736424136452444556136673441544251213515464521316133714251444251373565433175237143543162236745274443315626542567734443657654363741273165743311324767466454774412642257155315331137216744555236323551565327263376417324172535561146135761617346177133534716665763675515576533554667144656456265645536316263647337345123772527315167712741326362337143532725145665776272435315537455741342747635325255512342126264667634131224167516467624136646446431143266775646425577113711565537536255244642524374316621177642735664471265441171532534655533746635214324171272365641246123337214735567267427567345472375537651344123142274263227777227614611656461616236746277377323375656154632123647545375425556717616514276522275253623565233246236117427471622541133473226653576477353422725271225655217275645415554737221752264671423543321163632324256453674364546112454653156222647625315745432232576165564515611764634432274427777726575147757167543327456122122134174522517536614246174726132354755441733716577113114515532777576454456647637557163435317527561526163757732727136372744126175141151356352655667537123645456373411546475763451433546223171741372446327716354437114137336533563131763165632316416132155122527243332642545765637543652575647753327624767676462537135474177276431413722713661155757431232162735177413774262471175142266375617531411177437667676574133764455422472472544534433424726426164737176357534371744476112163113475436453446176274634555764465644611466133743763467735544214617462447563761267635522475736326476554523222351334225357252115144732415737264322743572517731444151431134253715113462634547574412455667415616517146443216277641176675637537517636662273223117221111674666741133622233655366317537622227215227622145432252722765147261223655641145621247331536334363474771676673575511644637653372543343333123673354442144131451736362636251631266622147453637734562156713775714677214262544641317626427126631331342667155631773665547543335371426726144531527727774651214154127121625271463475466164215713335341422263422661547446176667223166132451723223366345154744776475321476511123563526345141457321142122113235514766723431566537634157361614365774566252221715761417446527356757547354615717517567634417535543411466147757632627773454321274556625422521614715176335777717565556222514776477316343744755144612645127626467527554152446264744341254136115757725433571527235751276512423311414166446632564353412353534266227635513567756475755314577315137133724364462232147667346317723737331177446672117176123764176463537546523473614723536244553524166753725475676461644651446211621535231672372347344133116736112255712261321665612324546541362611422641174262754227773542717372443636757416713335325573174735272566463544334766522413613325135324363741364163155425626167764636365752721341656521313231331724743632135362467452573736162264677364517347416553634337146375156116666532574451144561514454363174664546116463561247321166525135624371313152542575631736611434227641162311664753635631623167522577626167247544131733116536417561653571515462276271613465336426575154235774324134225474331174154552175516247664317157513613212671271773621716547465545137463762712271574615553522466272341547757261442732517262437251575662576526763176257366422551532412561553342662577547572167153415575662217515656742623121146571252647262233732626217423546416634132757373677151773145332313166672717747441456656163615155474355566663737775553571153672531176764544247236625214313712154175763557274117713633265465763514224572511233344727335724623375627276351513146532465377762412164723752244561445724544543174224736435742317565356644321632364757524321563632551456227274432147223555643227575642553514367414536223677333312716364746464545127131332456621231767565334712525421663132124156256335172662155511611333436233262724644734241734124247623551267373157653477674215722125563512552257155414414735741152721472556176714655436142636654147376575575316774631554146133551472461232172673576545152166344514754271317677267135653772646227615345366357466312161467754565666322262137267137346526514263753625244566476412457321312732331633557126175147316262413776142324511534344252322142222523557673453546314723165513645727476365724477437123353223577312442211113453417523761212663523761212313661322365773133412674373424646244377647341653335535355637224252613667634124566351277163125634134313216711467234455554275163465137452364523545314773413312542354323561233417441757411652226354625175317562526614654752365214517426167245421423721436755576256122747164737762255437335715733636242242744743212746612523427714541276363177521625527711453345733762622221364465347341515743647355447553613262116133274111415432316365656214335232563275337113333263152763437353633152726737372721336525271227572727323215254547512575424545526737171412241714776366731415361163712254572574374223137371127147541766547717347173477446542577544553536631664774454312466556623311564547637421156511141635427141137615777133151133157134616633736736527723241355553566261743347352345231655772661141166274541577723556635445635752762772357436342121774551455242451551117764737332343721166574141237431446731154317613712673217432476543356455726126521722353216556433771637452475256452576131127753352455422751416354445467561477735172644243423362746516655114717537135641123541655645522324116171175671773367466252633266561577511262411731177135317737527571551711161466416422253346421317375577726355135767125442315445515475367215637527532377531274755414354375172244127461334355763545372722631746462421655373771255115317563761636111266617326455357777766465462463522414345313731632641671446776251522256717413416614163131627556631156751111453344653266362431334531446547775243537156714367312766243111771626171217132567522132145446445647451673676755147353561244712676554743224732546564154161672262756452775411664644452172261471576544244775175562347457677736227173517212712671124172161275126736417532644723235646164214625532413466754366612575415145641523664343247677571757622435323314714331666755746144136473224465356622721527413227643512745423342145446637762324317762165541276423176151751212653743161155165756375274313525722417725143762471437251711264765331334757445675131165157175614531553167234733547656554415275651626246363665353451227761521475571436456645614152215113365325274456316273754572633454773525446274245766365645237574213566432243551446216612426475117576341656344412242133275254756636573762635367414726257164563567446746131757131434462562141537465372175312315472157226533675756475626547712562766737774355242123614552653142241253252711436651243621277575732757215575742536642234244225132227257747534677464177535261764226244247324714763464457367477111736564615227716346713132171713217365657573473431233546657767422352336217661234457635524423565722155111266223657742534266546341666426536461665753246766142677161642615565563462726525322723122126371147637275311374146431633255115223216237177227543577774322122633355177227142127511672343555642461212223247563543644171356253323544655212267555242642717525267434732664223367114361661754563537144543154474514154243351727364421164372153524232556274416456721227657274447172466317741617521633632761535444573434541721614761354443616563234516253345546145274651233113326627635263737654574271414715442233136746252341627456527322265371623511346573575642623545764524716457525575765542744432231614324273245714424262575231553635376725334146617356536253327714455356213526317344327255511573347774524276741165627635325567723614276726732142634521472341232623354165161375551343424647763145574132731177666114555133121446337652156266454355132636252226253247566424251727524111725157114442517351617171163663676575425262534561762612137317776741412341525275363565717747151745726354435156616256156762171166671626353271172737535444753763662754713243243557533266665274562771372526153527563112111532272562521172731472443764365531641131213433726776344552277153151364325557243753776353514622331356112576614222422451141423146175625766751513765324347511225726627447446436726641214256477213165232166732745632653472341451776612222235333215312753116355454356661213157377732347547516355123723145544474577634722663537432634347134413754157441741333367573121234574272526574771724364353775711351772263233622624364721217722167277426132336532361752114217326455327233667443661657317122754613555517265142421517531633141632127771617535717272364442765162323312414551253112231776275714236676246614143363576616436247774564371263677335526477344362262747311547127262635575642462537735775752175714266757455615167272613571611472732727164666365415775366456537744345245744673435245163631625621445253167547123546346741234635161527126764615252227234451754454645647656256115331463122326165461346325253265732277572633642517755711446165677717161264541123227711156164544656655113671114335436554353141436336746426527263727674333646712655452425477326727111545732734331716351722764567667144557153477671436631126516415412171215456437514316312254134676317321276252224554415734347137152124255173414762533337774717736241766577731547722346246651653711226277173167161426253231247631643553553173211354311534751743227515254573115353674757555551774744663344666413775573451321447155534251656521222672247472545542235653742724746145462343416153416213527132525452311644226145427331623625771656111366721625476321414767577665515145641132562433665374254344135731536532112454154613241776512276362255477534242523251367131452221437216262715277616654766135366433554313514333415313612625454436775535726462734665157453331675675451343322534223142271433532233161236561643475111242216662724344556346424164666122343323446112551574556256535447614336712612277347725742516364364621411672222157252645237155675376347331653162716374136755645365222266364763274234541546322152663223761461712424112275721345445151456426626752474624337553331145313155747746215771344412145163613332147134766657724456774672164511124736436434345173612363611264265671555411144645236575757275535426413344361145661537344365141772553111546663351535662417135224573774152747414477356531643366255456265361223713132624122562376254763413645246453655366435675413223453157764532127756621511352673152467556333456444235476525135433712751574251125451311375117662353552743361474351373443254143577756342612761416557233457265435544377661776241126151426535312165437425536553576313445232152262144716661546126157435257466525731442332516331337213621767542356522155326361315545747746734262144251114132114751544551463113327146367664215612757346574325567564413513234714373357247563441321162553766471122567573662335361417665365344567636725415541371342441271734513567372234117251226463513527367637677133535542774642214675534631717734416174473757317661453246247344614525154443313413461174632767347731556334574244413423226525452465643565156662323676327163627175752441355243476775736156341361267433572316767577463371346475525562251312277166136477624564356125254314625744747626512252536433267627413176564567551177263136364456417131117576554664712226264722674617711767656436147371311613264665555665763627533574526726346625414212721423377757441333171174634376512744314271254411727141434263134237751311537217313416451167514147236257443563524276753273243766671437514762445156664213451746547723175573151756665377644142636747267637246333232752757455652545663557615441173477566633327564353742733417526176245142474544112516612253226245163716145523244414314532265212622223247123447121542336555367553175422533761612166422467335324644476541252252462333573547473756426474522737315452132515444154735565347444575443656237715513276765532617366723411245256126357367134224242155537754471314352477414146464713655652433454222461333146725535724522155324645273346663564437232773172634337241576465154527642233554646472427577457265756643256543227161323312351216175772427374626635661123452512523433566527272275754276454635117563232724155264173524472155677656262475272732441124463672571551317661477674147353632222571747711177136227544672275427667675676776613625713412632574554553233243133436327571264445133511244461774451424414523367172353367145355123254515176435435763322236774575113573224266631447772226226617422771434153657133732354317177142343516115473375611236756677613247711722473733625642641531422157241244513116512366462545621237144371743265145365144311714246153574612137744462376727232556553134434551644323553566572756526132614372367111367735526723776613173643172714244231712614324216527773413724447764165357723543416326761352716716425253364641221152752717311312154513252636757266575715636771377762217513422432511222114115345253315466637114356517621433161616367126712132451331424467116277745746641244512655711567567421424321325343124313123361241323554277342277571331543262426561736567523753143116363522154732246724117514112432361652162565672614225166617153311576775263764245666516317335556746647465153477376141172134623536413363272452473427627144635217252621231415556231114117573234362655677147736641662274355612457636437433436224422653312212356443215152526552213511742252427354775423774542774246342561734171561343643322611344212562766375555622316752132177517176216747626317651545651272353354314172254725774261746276424153473224442154765413511547412127571723467615313154436572563166146351527521363767534315663372126745227212347756723464243574716713425546114271114452166536247141414272273524735373523367314327462211321713416236427756671433372412655747477234276274275231567642227135766121537447157513752655367214722524617655664654242347167227723275666764454742556624643676667177667665334647216212565254744164263143715313533344524432247547166514774646212655347174411576425366177563416573331441113354115654554434774665211365476134456144523267677265121256737632317314676226115135746765667754115236726751562415172172567655376733634532721363112412572566326133315172413631242324563653674526171721161344661123472167457133743734242326775277556666725732347553377431332151137736732526662551177253317435637643546732611177226345516552245333717522773124736163543411645472773655155551274273446111315146247635453321547167334336477475332324772343411526563327376337772225725251523664643366316243152414176624116415113531563311636277627513333275726273453714117726712774336757661422157361773776771377644643621172211247447751657611776462645765277333471476465566766626114732463436767221176756545527542134373645555417437424312175143466116414253733616752413722537176711651477673374372554156342242233222362253612253527125751316522135374632113341533646453614467614443726321765157345173574332232766471334433241315135414731263563434566323656777512343166116565731327353637637572737335366235732164721473366446552526364276773112424655224162741213242662663213365743656374677632246434624244612417715634414377535512364722572754764551213744736577637422663171576364474612214255151123413624174622273764314733552674235636436732361667412126463663327173756651127216347552421721452463757756167277735123266461445714213117716636733545274144227112423143245747733321237635366467543256565371275646163156524464557774744475535323331547422271556556353733527353775753135244323361115511274132422237432267621151362153274616151274341676572626746243612272211441166165745331235763443513123261276115622545571471635216522241271212175262732212376127723136266336537265572123342155256473422255227256745147514732551521764311743251155672652465733225333765161416525416514143757361733422241412365236717434722642754327544174444167771734435733141663761362136454544651235121344434634663765632477175217113141614477775374161442351262274617611462461222742775243353513165266344574636222321246564134444164727571163115247464253757334144645515735336164234651147113537213775662525333746424642153345365655555626562267743527125362212111665361336454461743766436747262347775121775444541231113626746162173626716653437654665167164674215576417315541626225135153533354744725756442725557364271455114412214111664157745114425673474245476777165614622522275754234642422333331233724166425224547245377643117333534355117642426433274257572425771535357334515551162511671742543635452577161645165337531635122415352724722727625562534611532613357643254457442131315777243544772167314153727333474114122476216524665414675742271622335616426212761621222126257442615377242273572655616211245212474343361617256345745777214635215742371353367235642541553257617573743171347454257445614221123174477171144213642675366612134444114225341162345436365256472156651474137247513366325134775332226357664727771347373216526453574542632344434571631242135163352746222346113463555673276726245341372447451721216166427412247615634211266351371111153125341332736367516434474525633145662136423252243117466247723347146441374722256566434247253617533577741334551437373121256531513163256422771234274577735672663312521473762226635225322122321642135214474715573334166272523627732552333725615141567521763255267446762274156572752143132467277354154413213762371575172451462437155415136446566755556724764147144626432465366154732724524131255641424754672427123424166513731515566174564635651222732722415557337157625212117143436541771547662517572424745753326263272467447522671244657546772627241516644535735243537625426611745127173467263177453545326211225737731316446645624311742773214721115155122727522264351567112713715443255557433641217256371463175641276143117374526444373453663357567473114154625563123577266434414454165673356125346627735611462737436225544557315377213175233336312224111666627451461271624361121454165264146124264275466725231316625554361374712541211223136167163647376526121475535547153173171374444226242272764642557167361431165517545765365742121237265332441233226726545252564526456373657774236231116544724465443314572672335341462435737476344676366556112637615751664634661461317275175452454262361745445613644765415354521331556654331713417116657376177223371267532743214324312452271224444653547154316742574633252473757536123732572576655252566636344211224637717266755612762754617341463745647755762454662161551615743351264152542111476716763154642311326735311433413414213631326646622614446413164345766453415313314666423475714451251226561332572371254424225672121253123257347571615266772471774211532241175254236665655136247662654261371126533531321133752631137556616727674156372325714211323272153765145563524655457171144473622327725614266554423523737377771223326177425423775256553623613646367171254716375133172373755452272322446257777513224363771637167233361325215277612357646734634766236357171641522147144147534122154612723216371516623337323746145536742362323415467734766453471255262427743313153145555422152217636177364536234642527272411632635435474246172566132251432515177554433141661247254471544235736724466114112327445715363775572474144744374627574316135336226366163451227523572343166632544412312561614775465623231233511242563753255564223125341454744152342747355134565167624772477215441546514337676415311111451373751226177522423353125326355515122254155741222441263626565336751265114577732277215617566312221341251542635255226611766636252316534711114622443444444336243414357741263656733467134567425765534532741226231477413273135645527213417543356447471127334722515527161244573437311413546352632415524541327654625666252117213554226773145234627417234546566154617517223746532572535373152167557431553267233334616536143353431313572227344716377164777436163124413646663354325323633776515111463156146413735561263554434346325643651413725675714362135462324111576637142741633272575354417127311175723337533764235153435436561561473647112517134641324757747127261564574145252655171577573575424414173677436613523563543113765545146537612513155434722234533417335112773254572336132364157421444165355674353617523753467522577175644434172564456744324367556677363747451636373277731461556335466763132124744264377436515547417217522624422157617554545313453365251543226324476564141672236675433511232763544313721122345324167437543652337171523635762515325362457146412323414717615767632367536642473746277517661372475534627414655341272154234464524311762723422157376624247676362733732345616135154646373364324627133457147762661266215654276671573242256165445463225773433313374727235144711451172773355677141542466264775753763354711672517663232261551365765423734215375354617726215443341214526331777534216221262636164376151113124767521344564656676447346347751351333567347734634567415353247315451647765667464143214652167127765152247737176473624411631653651467515671711541243715171266453722614473515653616311122137726317672243633422722643756272273754245373665247431736323244355672416156436262236321163571227626766673547365622443661242355257746756424453344412177324463277225122755334751421631754432754716611226662267332536624476674314266277267325451625427256257717336357475431376471142161176717142777646522743612727236457357274565562453757341644561535464413263741317725142326715752631213621136367272177333224632225257433646575434735757273676211146772377147723535234364644676713573144157142315141676374754555136543157265537355434365663451364257556616551415151676475752773337416416254224132133772667277442414245752414117333634124743126451115513155576541135647255566524535316713654547762546574343135571343154533211277565544172575356612131613344355435112631771547327634615341116653474656657733776261563211322217556233232135534344432764725346225131553656443267644732443367222635773377345664751354421151174267777237365154441517262367576236135161127536213464313443413446342767173265725355115453625272226326337565461336737675371137342214157727576632547546377412536767364557437332576455424475542541516355312255536575257621475662642671423647433314232223274154257631714271243415121243663371636712712542556217732165455714267772314557144756762362736531161257421776714511326645742724744763235244236516741744642744542257464121645435442645423536313431516211215662436712645142173455435457511416653454753676716343226174155215274453361547351226632442256711622276534572647161745132357352443563547336413522717523161727164562337272153524725771477512531211455374511274616516647631114326373734516635336216163766167533462765431224767571511117727712341552315337735125267372374415742126251713727531457427657321115217244336732615153224172234344766113646643743562774525131474214215573567764442642324737271621353133512417164351612224334527555771342513521165256477144515674414457522175225753612727512471142417572113735432633246121351556137727221523257533257773131415222324345321746122437547763725656112545377474316653646635347145756223763133565442736533467473112734243646214662255241577531241344777355216676234742121766113237731776627626441236347547361675672711663544522734652726655145536637127414366461257443441255731635646617336275423461125243746132636527553413256634646363766673155147735376735521275243453443752561573444436112242757435712477666636312745767115422466276446444341372466356276647277136662547313433573537357344474311371665526153433615743111542413433533374221565155763464662122376642173435624333241522117312531526737473265721236327531661745227233173532325442313375454562324357656342664342474143612361424161167114273147211624215455636236355466126422443535276734427554322757673535773457316111664632263373462646455724645456645437647317655744521513217665563326324444342247633775215374263616457124741315367561322153571154721742431551317466421736276434726313666644766135777163124666371322612575214116626735231631671724214365117431413316133227216423734514324277331752615327252213416151422241175363554377434656227236271325556274663314267644555562473445313154532264522516365143313651412727473613364646575372633311352653623214543337127547133355522717463723471124246112225454236446516221671613337252574253677553335367447631375213563217577546211151734127247771357571662757572777714425442353512572762166135446337662447774365654144263177743616565142753422277774423733737327176724221562111711454757354316237221642121233533571376344675437562546142375547131352215666451326664511631425521656776566533574554245331473245223223712654344722535271331665427732224323146547714744777166737622245617215171273666376314217313546437352751277577326367721741234267335522753622664524525633765514557323621113312165446332631572267213465617341467143175462432741752232713131216134543472544752147473615311323236714244412126344314615436562116716433175427454115665347326437331264574355314714664432563547572712463137761473253725274547421723263575515644172574214772134146555146636324145314746445662476455251744776513245742616515655413337545255746474161463244123574721114723536565214444777471753456476267442332742527127756254523373312457722127462373362227773343664123114326266525755371477634132645246771637613421347311575227424342132336416662716157331752114651174337271276317216241356557254354127231251171231266313272226764466511637657713231262471634432172763246145146572517151244617131337645642467331611517645426441573567365523666647132235672545535275233126316372416523373466341162526231272722362245516764711227513345555657216534314223615746111335313111132714546167452246256314235556552163631556625141767731345112671227514561553251456342515427617133114562641367345273463225226322643322617657673432662214745711175537721715616251531653266157277143745237731545712711346353373371674411415671464575542577127467441222364744314673561647753631776237577174425215564557555151162175154153435357726515573471626137534243527445551432222551753756632457141716555637262351556153757314312423361165214332427435723754516657127327151515766721523112563562514647564736444346421133222677151545635327164632563677123324321515472135244647116416512243516671551674411725137617572725267366354534215327123214253356214244271644255717141453172446467113434621347141145313522776635757423775231155263723216575562356212622336444264565215776644113144327652526346624446246133654257723611254272173631554461745375416777136467516372367126225155516426522371462312557652664372254725671142277432527615164534752465355461521764346237656433241411236774166255772625623576222473436236745674464666452242755315662525612312752441425631247662551733524764263546672464617717174371653362721365364423724126745414563111423553211744437743747477167472533221531746573617174154263133327631115322162344355762417733464461561323542776444254435322777447516741335526374111563426536672553441573446316721717342225715363627711355317211413356671411141434425563315246477745535776213456732411133666537623316216147476262533547145711663335255761121657733311225725125552276116111367373734257652675342573574425644614227636624274642231417762557341152256147661356461443551645763711346144233371247423771274174476532457174433466537131251767437313652661234513555652717777142764452541553344622511611721626226654137116554256427421512774616475717732671335177152143444126756467453754716517525742316131626476543751453434416323654457543412277674141324776737316754131373723613327363172666736644347427712364636775275573317174631613673143435326157627342271555755256663335167715717735264453142676574127737632622526334162517771657461464567652224767477647731126766245724721244652511616713725734662454756274551733235126331135623267676625213417722634461673366676766641471143745221677751437417227274253556744676676565647572633543212656654344123113616657753431151236124551364616267265263546543761613451611473321241777354157647737216367527742277276325142737133743613556654164224755553166172376751446234653375613571177716256255211145524253645224435336363172723236622436723545371744772423616121123457361646566574175446131653176534463656426477226673617765375142627176132112724715465355116724115224731242433135774432353246556362765111254671361635172517476235524245353142267464113455424257722355114427557615327555327134147474215667754635577545317323631667322117174571467455277221625624657777121561741615545451754437135136737127314315161747134571413226133154776441257364276747721343255662353326455473133736742175323172447773637411724211224334266517153754347417611334456722441423322737364345326553112713251322655751717444376164515616335367555354464431152171541442364223272737316161376727774237476111531635776625766751761475444456542745536532437345543614457736713226173656123166534225663717677121722327223442335751537141721124346561524757322121265372373527143722163471534145175626767431435741157431613311127722637573647443462544624355371364457531714162447533316645575734411555576375442535256152643446726266136656533727534343636373114144746645622123277644231161412226523511562714424337144154234467252643613115561213337145472237176352653164642764227225174311427246435653447636451414123554615733767464721713662623245513315112412347653155344447164656277171352416514112755431341726656661615257132653742615141254231127121646552741354436153311625127231226214577545322227667661564676731651322377131354333332571152165243464735741176531263343462767526156661566675452561225673112264763561731617555645177757361616325664177151147735444543571672443323744751376271156532112173456111414713233763171654256575143645775576112422731236665545451746557227222574617133113676445653437562525665366371623173157746221266442231177627722243667565417547574636736722624232521611362335227612615521722436722173142366227122414265377554456665273342165277351671531416164753663127447157124324367447345742231534562511523154622566524312644131421772154362755224215737135537713112311141446173423217232125717427751765231147313544661162672645532642354571622277767717266544231536765544635257146146766744576552551335622546564371262765446334522545427514553222432542477242523271654645423634171355416343635346334631462665476624576442646573435132177376156751432467764535712614725766715623175444432116527772574313215767317743417621612572752412143643674772342445436626124276573167567251524151535526427147137457546465546355447111164172114763137676553312165176376616127645147147715456564363334126621624332446447214754524246652654655421566333443251632357246425723555143617244473656273221252663352755446564243422463775124313752251135674421164342532444266675122125526361367133416664474464166412264723764766347325766534154714244645444754627742452225743444251556312711472565743265762335744232752363334472376535424557465177216534151522153745577266334735165732441622747333113243165671511313561544157112424737257137371332621776413325667363421324355572774164134476265224567632367241347761463144153716464447517534551661636234752252221755746612371466442475764321543632446436567737615154664226473767133666656752632337137551427126143543431245431675771657732145162345512725672171761761763377117253144337137336425634633263275232646373425352324277564123544367554424155722244654744365743463347712527311526214722447254522767771342213466311722157175451746747775125564426427634554432436434423145125466231325612446622564247654567235162113614152634224657746514537245557147554751575112216751534461347443421226376127431345512171345272435557627532574532423622166676152741622666146623164457765656563757252342346141546225224112661371315553711634772724545147356576641526726112612714351276343123116267763613764366733763616321642552651351761326313511212145232417616633122163715277417624547622572564716324615545425511255246437577217252633471153724142566542433463371654335354756363642526771246617766521466764643227473213446221131773252752445161732463626632754165473777255155277435736733123532413673121621441513217313716372532723345527663635376426621547724326563244334727556511413477562125114437263566644626767227317523343677716375162654542675736712255654556476335522317576372374421125613554317261323473333553226427227565226246411741374652174137261251763727661165214562212536644162162473452477212772213575551261461747376555676116237616365514664657611466356177123775744526214572664744663512514124617262124515163551147432512224725145256646456125233165456672363771625531577521235663321312532242235121377243477155527751144352414226255312642661433437645373454166624555763341576752735456723533325173711256427215417365177543175626317534416447122741661746255131671655325262373517666673421335435523265114443714765664347312755641176777443144554352677632146734153742721324713337737634251155563767353315126354346443757275145333462723524452217244452472275632311512155642154271536716126723154125444237545155342142154765263716462116154772627744143631467772641261716576771665212566536646243253463334133323144224111175721451626343765411115437241252145212215241536477572345471437645457611334511561642767437672675434334471161347424634771661757624351121146364446732522512727171546541756515153767232523726627113177365256763311345427121624645254214732632362527371223426112627442144231457723662773444255537514621455422425674214641366133114515743414767567277755213137431122716351146736156153665277244365557515521425232131537447575343232273654136562116161236326743365674163575554164773127151145314173622173661467261513631136667377752272571742167152556751646666664114376572612731325114277157747561321171473766721532162271365254477427757266252225443672722557211272261226135461136426711365217436746271215644767631442661522556564373414161461463521121262541321657211631117145527533753226362456571564574611463556744267236374244333712374533271114633565426754516717356733354455131427371315657467415322756335742115154375262232273745244166763215613343162475526134757367267617311535254314266771466536466357417574421752472421662635524362323412754162422565753146711457622252447165421767455772763131222347524524375423562261477714136353354127467231517136117212724654121534513636717114134765156535251244615211213123526326733727645671463275316527213234731333327126354775445321351564367423756177726436272735262351721763471312374241167373213542654164424554715433433472714472676474137515316151315654266536135616322214145643114572331325222712743174671475775456721143755166254673464444244173715222521321146537166552265677311723315437444411421315625425456561121664641413656776662435213751164362746227575316275447167376515153461413364215745472511651443167547577245667453234416474532751145726132612661373735575352566663375271574652721315176644722712351112252641743275624572263574632232357655651371772563673353755362521516314533743223524141337275447531462756443174357753127746574567727134761371135734446543515173165112471547654566234717552261477317551645744313336647615145175245224312115646173167752675476234156616137714535235343443323247565556362354147664312767221656544311251525232321752242175262757422641612546771177424634354762623127271566465516457143671266462613625773643523362415165115155445731441135317757117727631357213717163367121226141133117256116571527256161313227332534652472443516545464515146262455243322656341224773454171711357164336635661714414743562773227127663556345447212627126315636742141426353237141434355117663671115257175411534511335146246536646564415257324114147765771654551527257615646341764773463551336417426521324351447157426674731671654626761435663677642441254345542234733275654355231315533276744167572111617434251322176427423722672123324367126251551534475171362514736676517534713276536356575655362341131125526236123147127514444671615127513446357555577441325775175671663146765145534572633422132123321635534432226566652225647153376561355122443232227442126233674463611534671343555533755571262637232315115131517462661457716113737371771435616656146115225726432352463625426414231253674517454512151334775747362411117561636226425551152765625277277366452213256733142342143754774743672732467372777244567767456164553667736155256374652762731756323722635633361332626234327414357741345127367522624637261333157765211715164736337713632165464573215576375717643733337556326165327261722522677212636613545345117147243334615525121673356224745652665121672445266357574526224711271122273531267234215751762373433455716353521643265162253413166443334172555531361116335677227163527246415112342342315276331237413427461172445564134645567714156421471611745624337624514615224267236316424217732635525177632241174136717522535132674514561725146452452445621533724574343346762747176243145112523163617255153456366324737451743363644672471146775646241217473631226617161265775552516641671374516477416435245114355242342471143723155721655357626554671247355566275677165724615463154371236125736635655447721617316646172114711564453116123123254141751252643732566271714436753461665724272414664514625351246525574375126261757331132571615657447111612642647673777366357745713123215573751747452371221235745466717567275263321667772736443373373363372237563651552156732452612232672124174453647246142271462626776377111666162216213345424525536457462661467622632277741322275243123311441534616237234377621446167421674761353316232752755722527672763352527741514113317723116275364732313312473123444446667677446143264735175426754531326476443357717474213156664336412252216564556625247646446773743271513472241742667644511432745364435115332325515513275337434273656467212545435177536273347766264132153226173514561377535525453166374537537122467437512365742451317162255266446322274534231566536536163612446371531214631771553437445636273233416547324413462145712675635342623567521262541145756246732657141437473432726222126643647724742114145321512534636522217213716216632474465731323316546451651563565725463256222652635613711161546347117535471676752654254364437375416363242222231526143613357416147117443755117353267651376237265366332632453511147135355271221156673376535726223246163614735732133373356761774342241532235742356615343342452216332515731536774675422757125455222562375561562151612217223157712162331116366464465716142467352561724145173753332243141376344433626343754453726133657611635221674531746513726542127127174735126562576367752545751752772375217157241116115371175275574645476575521542564224445264635423273142635132377131466114671543174312675477531654714535335412122553143624761255667252726567772267573276575724574433134613714233114523312215665231544245546352674467732353742675753467353312572231244462776256753233351672162476432262371315224656274355573733616236375336257654464123563266567372122565514472241654244554442462774363243612137326643221775145336775212674211343131463652476323123543143575522235214462732563266453151547313435356725221417126765472455471654472313136216221217657325276253625156562313244476564526346153556454234466723564342124141667344372725464366635272524331537564114425265614611442744417453422133515424176571645732462547713237677542163142125642121465377732623666715312635521642172543545747227731673755531726335414171564577613613217163156671553162347741723424734143552453541161226332534175472116465723267476531363547151717331216771421472245474151776717134164153335565622453152261763176425144517356147326625153343562424331171737554726512226654132415741242346334735716142126522174717124352215611473326437313533124145613235615156422364426713425742532246756675441766332332564362554772561557433423465521171521775474764731115557715676776162153633421135335714126615525525142336517713646552363145537413116452242334632721146544337271422367523147544635141616342351324653535253146442347431364612155533727535141725342215244636253627223276773274732243151554471173215434435655467623222271752151412256713417156247653273212421451716571741157163262573114355334325376313512422137316617255177543362233415567714754546473274362612144516376471766433412143562743167641677631626472143446636224442546627773776655153321313126473746641542243737646212343555536734637725232435522452677266731645327422254331724361551476313577233376425267451727766746776467412744615343472663773611427466437734325262522772472652635774537643266175457551111317573362156152471412141237347572461631247165435677713237165235475571715734567247251665613436215776267673352476334514315541563462272273552621665245675462632371511142411512761415274152455575757263433425723774635334611571377216662334746256741414116265424355133457144762567641451267632366171547653442731724763273275435346433517765351443252573134766424277452557324462711377672361323753631116131567771747737367333727322534346526427513626746611124156423766747513565166754636637455326527533614164573417273717745571554427712517261443453173171751226662772144274431617326536743176756366563374737732754541544754753511467121424427526313357766554725174776751423515346574613551265674375313465737563444244413621321762512162555644172625276452623722373512777553375457211267362764214564775753414253213233261367722562162761333651173535755275316654274573637124243416323244615463213753246162676351113427222672213512245265346173315657573762214514622537264115535314474673225515371554413224661532273674217157617656336761561744274563113111273371145154334542251647251563622242366774531114342426344424615132467461744266512164621463774527166226234642634732534663274665763615631236411213466155574163563264747173754775333341131531211536244253651247613347552746167143176515112227222566654141657673324366176332444523511315314314635364274136263565256277142563266136545251171556213244347537166762641476676745716442777152161166453423223217712745155163372372247513244556666754572471731272425476622371257164555114311431613444346516633652347142672747137575242723616363626644735322246315223535735655241234637453627551374741443232156111514542245123363157124441647457637325633344674371324767245113167212165333724354416224331742472513733656361626376217534741227462164452311573323254331634767726135574134114347776331425224127744425121622467467232465317722115467211374633713735314734727231171722261765457753473715671744743356416615554441722233724217523242213174542126312634135546531255477677366517551735432317373427261362321213277472256371427673732751114344555425653423556636122331442765534367155436114771714247373512466726143726637437537144765455624426244635521454537444254722413256114566341427164131547352623331252642665147756463551615776334453636716513521571766147647673341635527411774244342356244345771165541521717544171427455721622631526517512656377533517223474677643533524112752135316342772453551733415725223436351324414752241343614426152525454415257546162126477132757252717367276162662273144151367314476534645453753263661477446461141724511266655114574644777657664775347575454166656242733711717371244125763413262125412614775146262675474745354476246421137545453144574211747477333376311476244542233643746677744274125376232517132316522513677227733463475666762124176361741663755245475375364516326155352341637554334174524215147765614147135223547356732464277217167465512223676635537276537567465544335666156142526656622512462337772551477314677564566146224351241536566527227177656453376134151224213266317337415342613526324356177436266111252716477661414243154116734766274516555535616424733354257665517261136711413456152317736125615635632524775334342673516332232714611762471324662243535577612213765764333476274412674553455666255764421767717541647416753441471166641747147715113253752337476576563667664765616123432654633414364752651457237743416574351632472761265423457564734624453556126236366232676644357752427115717642511433512377135133376376777765345311663133736652272143763763621441541254467455576713311621372357534643312341737632362564514142234711243477413516635223613337452244211651732223127631223555633151511767153374725712225512465673743252157521222134245636264764352616725176222524142734654352711162163614645111534131536263455574723414167572766372555374753624236676376467656426774524331514337116147116175746655231664145571613631641551255144777156463254445731124213321145554453323647215717723543276314761535761455517311422767427347756132741117757611143443314241346351454674613673171356677334477336365165656246567724675742312434374714613537425421112716237513243654445727751623744244171742366664331222221414712526345552671676242254517641451534452146445426352517277265322316155351135761736117246256122443261726133642644566513642443711326421435623127565557733177571533575742635146236174717437477444134521174521334354644626757125527212323715242577176667564577352272545145753332352241127676635755341265773326664177123274766665422647431773652353374714322111653137274374672127361152474714172426336176455771146244373715516657424424372221224141572163643632714451112423455251441647144537132567571634113631676162717553666144125371722375475214525614263717521342353414365127411162671112164212357732557352244463644155364616144157444464727356653452277571517134767637332371265524643623775111436513635175324276563256675376451343537446272511577715566336273426113167727272351351237754513266211417321432566524647646337657467632573737316261644543476563542626117472423352437125574354537132132713256613157772441177562675722312641522236236474534413764665726323366522536466142523731311223244513376741527535617173344476713455125612165137631651216755656234736526745442534631161756654567274157763547713316324523517267377614524177162323365151331457471363135554564617356255221456436676113671446146775712445474356246147347374277111572147527145171716142712323443534741733657457661564756221554227544636134162262337126651636342335732654554612235247136231266532335423261562116533646561611653215151361357661554151741231226546345475443442617225322445567444412251635311463516351425114157511126131751337572547512332647131234756265317411654646771375471424233151774154143627537671431574226535635233756242235334417467212255652415774732265711551537451766565736636232461352341414462652441354137174443562745226565144432557374314141321524337325132625173122554162324476232165772363173416753573635276122341231471711442251621215726547714231471411556774276327123616721443674145323134654516632123135212662317732445234626571714317241431651654131753345225325767713165254343766754421343776574676314233661167155546662262743434355161567675574351247555152526154563732722613431564543257522337726423635215461437214441524161774655242653432675526172365163164451365464136216161612241656376653673352665627526626134221147624315654253146727513526241365261722511135533334424177624152611672753776661224675376467166456547735446254467157717556666424477374132666435333325313163145476446243442324357713453273477341114742471542261352546355716653155661232276336354547515477364772561774214151616474464223162562141347772527511552127543252437655172212353335472515661116352341241551626252132272672712647114222311473321533744253545132152575726176431523121556224126234515416226262254566753676211223775435461477635324132513443676165742512742736577313665141321147734225313626576537117723154372316731671264144736651553163512753646645165572265152347656141445133637445235445163426375321365171363447162727445176147572632542527155273676653354351331525763144262723413371646374336411211535255457121462545474737711233275224663775744111751454564711241152552143556271376444124624641757334637126746276143555257654752614271323331141644323741735523625455677222336434157564577454745522313246573536155235524673277751373737527273222636521211531435665262255275527722665715267224724632267771453564162573311444136543772161247426235574235211726772371517745127732522235767161667111372467161255346651557466665776127475314423376164243322111611634573345177337346173425637137113562236636662637547112675512523372515411477753741652153724115436611462521611375372526132454231121361552543764535771724261615737256244421127572473565124325111137154436541517161541252714425647655227273265374341375677243737734567571236756524664543567264266754735147147721417264454463113727512237244156337247724474776217252476424231765113214654355275322513445761277711343121566317133313657366416517644256335265261533127157631572576314157776436671324321215465554416133224776767111553714544222773527242553542544612212666222522214127414662146531653242273646766572633432647424623247576264774664241514771142446164143153563251665747547564141641255652341557756554432427124322456155413651665544227451574147475223164353531414736714255671742474123451733766563573212773166347741226322737627167517711227265153325257563645564654745177126644277124714462231635323124247125654657457736163346117532255261756344473416324651463546764624712655426766631335574252741542244321263263145311261716114277513156215523741563673673625236217425347121525674255455147764515567424436417311747516422312672552433166741761174155617142341617762311375415525334124232367562452722253624476242543367637715264465573175546462657317372374123452343563447216313234174435746425542121355416236563313757563435323624173533447437651367236612543736535227665727726164117772165561345266266751144752363464512272425345363177375763332672343572645572322532752461714374537127324174435622717265376126473515647261733616127736675621562143641677763365267274155736215333627716715343763612321734747673365367251725525726351455261242517436455657442233167336754272362226274752735151461414313722251414323732125643112353724317544726347744356154374533134666544336164261517535176642266654541214123452434426335123343232525647453611254626542465121445536433477772717512377547342416363237677766161233473466324565524146227135145351632267132622374712725747563332535655662143414216312177155522764452342566726547372512427372511366413752574541672152235355445563445133312177167475717456212772456253574124143772564631463773237156357751475174254757136445152171745754734634363757664547446556654541353735465762752446572477265542767254223622241414365526654437637765371573117161617472257634717716547736347345437417545632343333221214757175641772665552616243674725523443237337537416676434714426362646363216371333123175567342272565424656525752475714564637157336162667451267427127477263371335254534462611552575546664225441275752327612661241635424255113233127262353633761754636263175431734163221615313321775724434276362171423524355617126532265525565765131514242143146122441232717627322513246452167711156161362443326676224271477467615414564632374365111427661637717542221615255573423476564556457534166241666557121562331717665731337365463332254433666151756643617745475141365741436345453347542635316723153757733751436653741225165677314723715324556455761774472272233644336761335364173213564213337633456356322243663173562174546431166134166413672313673174441424645567365237527741341757335561255634774527563467644632774653772676466757126376452756367756365765525432434364223541561567335123676341515255671264334412334147547514766424274222755325452266354234724775326642257712661117146571364674626424652652147262265155375665261223577676174132352266716516244456637726737352511726611572535163165266153117477463455635777527135644653174243212667442143225337715564723446767357223436762514516367761335334473315561566137622567467523467726457146335142234374453445173714752167713637153523362536235641355764665251157441766242776653621417376723242316325332642547142323243156512633665321525762715337754262152454634357441347641413471131356513315754722156143114553577644634255153555773677211677361264546365264452152543564654713121516544354631246413672477267471553331167462625467167226145274463625125775156735143765612433261564466175614627434744545171431671241767662345317615371112145345362361466614446546266317536252727246424326753637557317464271412347273734732215253324462723164437551153547772537753523615334116264273657747223331573275741442352711326213336652752462176232561662723654371276473642152615253343635232753274755442647141567233526242651362666522617714174717372326614632132775267371171412551624574271514774534453554634172274554375356756533171567153674124512342117715761312451366766371162217437421127347526655453413611742175746161236277766644215577613113621637762773712566321777761413715261216476771161713124133265476316346217277325427632344664435267124744663636561563721516363772723331121413463441733724642243444111112263621155162575261426762563515734325524442622441414312761252155426272636727355535166355314512364273456361437174512541412764223744311242474415176443524713445133474621772532352217561163641344724477576742216527676625372345136467556354514557541332173347243223267226776543517554175421455716336447257724416574324257224736662637554667342122564372235731627113771557613736216546153666752163464441432235255742751347355554123477644166574371617635762641362643736346235676156153541136265551744711534433241246433646555442541233326171325452336632411245521645111111244711245131312536211315145346364765213626667234766227644561537226132435433457757571676245337362276432174543557541727555411436765532732516175141142137671644644527135316316713721346425523327763176537557452165321173745467477176752621666176622631334174143744731124213223214311334133557254541763515146451271344751446453231247621334363324561366444372735752734166626262537667633365467364561271162772164264256676355374153213313524632471116117734655272514135417774344364364271567276557264746746564132651462557677565615222136114421626155242233222174526132642415476375133447171371764661265536317346162537436667775475614356317344252446472372271141622367222356774251122361527734226355371425226743756224476312124741411554316213622444215745356744226314745675357424254652517575317257555244763144561367651521353461535363662276666125112264332661155614213434432255775215741147345136657113665773672334222245362116764717365174464736452575435647645356276617467172137311165652536455414366325334431563771475662531261726552475252341532662547133153255244475323447632131226331746264122452174452435537763626113732434774125462635422531112713426673364766446741514656777317643532267766533347517116116736123316545535317743735755756663564136112564235333736533432421611324234424137762476351635171151223646417134724264123375124133255632573675211647452673414227546332412763625621675156321654727552734232615371377275147245537524117543134754724745551674451342154237532241743546214474232377624231225432435712743374131451333167271143227132325765462521655273123131563675731546474557655375771234473653557534363752737577477534263553241214544251555646676741371757263414772436674361351255375412422164464736526365413432273733316614264561554413355611247444715667416275353715362144371245636535476426265557315533252416213165646677435323255632151411233432315115261712537233551521754231473323242353526552237372517242213444161215671466611742122236367644352314264344234431644251127113442712341174431273457715126121575676233242725245473414136152221622536162464271652323647554676171263173343153141473176744435345375715451777325455764652424252722523361457511361756555717435646221557626776234233127611655442253431432433465712323414572446574151233566124736172542123456437144177555561363263346651127153267516655444572117455333445464773163652536117337476231616455746445743226146212342164355123737665463116733743371472237741244333212423426124543524146754112636266441114125563155552456167264173757161462352767546714723751553767616166423612665667251656225434434343215475675553472661474247714441662431231776436626766523635262267533766165722524534315762521747623313211114276742312211362566651111334544273171232464634712167111355633452162125455151552152773242125462662714663567554153363626732562742353752232221735365656643731236474763315431523361147744241464244743375257323562177775432411145542772617732437631622475646742537136321215547634736166752557143146611143611774367277265553467164766262453554212243163637227325713632711366711235555251372234736311612651543776663472531155441372574151146557335766232437114255524123347215251667574147162526267613141261777716166473471554473565711731232242747517241435765434125132345473566551565521436373676532657516766733123616751771362354451422421235637231726336466513167343575637534457653415355127445471642445517255333514432144721557745121512637454734577715426674672515566162237633214324277151651122611427632736361623443451445651152314317774632734411647123712726241711772464561231326221612724552542642772641773124756131323711154451661246246461256272225635732571567624532311437356512214711352432323176337514443424654346313547613223156227675247645462233621711344541574455362366126352654756212677147425345574477335634433354433537513456235666633416741267643227317555567357243514311547435661522677557525432723445632775574667167234175651154431213473264653771614325214433716131472137435124116641563225425433472525471273725622762214156713253425274334726417726136455346664136667422725666657564431376166611571443744443442421174325143125275341546372547112211754577172733457633554142162374471151271564741635314721237466737145355424722225746341464422426342271754556767575421677252515453612716355264234677157114376235446637665313147547446567336343717773772544161135713571635653265265565742547664466646131726235655333241414414143641444645571266733346327161665161136434273431433771722741131636143625335517643342444642744741644136663543431766123617125613617334232576252451374664717661142715337511445773732332122771115417143224277161365637143352573345262675235344474271215442723356715275712555236755765542745473274713615163725533433317624453613325616426631614247672663332722265166621524725343434533256352612317373465167623276642257226577631652231747733462447676517467353441754251153521157136711761735312476124342624133146751246242613764716533126632146633641676166476166752264247344141536525544313223231366174121446421474241513146451421431734277162322147321635473645717122434552773276231315164451252273547114213534567721437275224453727731453746535527673623445222424427566173766532532714372113366137137637446222375617357452127633745141276722361752117766172275413226546342472611111127147251632153237265344626646762165212214332746654521224717715125645167613211716552713314275121524442425755756635135555276722714567623431236223735413334326536276371743175121313254621242235265725132431342414142523551174634445247524662223636712476517263546465546344667263274344414443727776454211761176336762333117472512547177377411454353426131172352526655576647726343715731731176361146735623624451152645152162711136732624327766174462366476617734626111632542452122341422273215671512675261427642277441562213773764144663146732252127375626117515232631235741366617557333354245662145362165214276353427655261167414142242174424343714661521647671324652151532167367757222326317341736243317626664773135357221154357174534527517117512351362417745165447233275225267535654116224733511634255611537513411233746542134127746437524516146361676444751372367233224674511347526564262222551415737427212336322371721352431612425467411644567127123141414576647417557654443545456774135625523673652741314651435446241144615114562756721526612545473676261673451651664646636114754244253453721277366652546556245671326763266417345243531375322712744744462243177633375535377562767573133457171774345211137117426466112357456557223133346351222251162326274253114311646673636764162325244763373735222722475273623155571317547253776217441262543752443663761776477327474423571276453153551662633576636317677721676275553743225515462423312415575515363766211762541172442622373263623211232332526536764355625144545761173347522474373732433441715613724351343413234636772436647341743471544114337713724271155122226467643255627632125655674417631611665123575662175752542313217461447263643542653352627167472432517636124371666124317225365632123176621451657462234266735612723334236475452542755373176751263425151112566732221761411377326572317521677672135334314436477357522573663542156673443216755124766256446133342242517737646557167225253765432567137124221777726137656266622311223336751141253156155764665716242475472527644253267775355267273354124277264722342331277135146575176537565277524661712625522562213257146765742437622123566146376615632522435571663775464371137711513175241131117426266735741753244443371313435417527322117224637315634166431311363215531562246377773572556617135567342422646665576156425325321266124465651431321246212643475515537177755131164322142236576461233354243666115637133367351316433151474764514461415144112243176415464353643374554261672115436467135454157511165675174316251717134563371442561362262623432543545135465533712151267552715273557474352134445653112756261171366437755271745642243447465516754721637451464351515753711673577363356423473227372116371561137177436211662275335455316465571611664476474715442116751526376557636476456741614235132124144122116756624531523336242463161573114722773367541764672157571561761574663322276476277315555533642212517143373344163135612476762274345452121445744361751332227457124672715141746516515747163137132531133547554525376713112334331623126374352633474364616142415667262222647743412152643547727617626152337233615113317654567641644541713637337132462461256244221675775452514421761346353317122222722766231713713136675455451663714314327312624121127654412513724544166231333755761145527271563157577413645242742157741167137345435315764617225324221437443511254724613265327252574541574145373675477117651667147623673421257531377412376575412373674336363447471542613563334474163616544211361435625374621267717367355167215467352112573533624554611517432111237341421113576164565537674215221264346461141767555241227632465415152121246345223746161265525376113326543377221435444673345215727453331677522665442122467277112151423414466664447653122741162471532213553442115274515623132312576616375142264114675477114346515516547344473125524264365732624365342267641254735454123627772437265425311436132771313765675747167622363445451747112477267774113115345521467565575155175175617127745526666545336133633453354466473146124671443355752437755514453777512273241615474536644516244655635155513564423711614376313777463372152441113515567336157457526257376544654346735752677555627546615563267614536435514463155242722461617772354316167626245661262442644534772453462464412177227563756343744271557715555766121167355322625446523435313113624623762433634462344727641362663366756121375163411122727245335774672673145563225327531646572272562652266646361714671164735255446633162167625117511517373222765551166415417211371463433746156624745726557512532777243641556342145651535576662262377754742666114672645515315643263152666156766556143525347143351517167775673552565146775672327517527537231627765572572362514476551625647721637577756216457137725277664667752742747667646641743663552142747143447447534331446725463617724141516644527354431434263564575272443327713141523667316665344265322756756264247635567455312727453757556666222326165142673776755352337227742374214627277617515233555676574724335637657741721553732613672375741434523537533671215515166426122275751324317571632312221153165426214437177741743274436543752623545172171116213533216253662764437351552673625272532541131246723757136335617441715373417544546744157673574537731452123716462476773174443117123371414616555126615334661273216535716677456367252714575735367253164743721756674115666362221155474771313572452163642611124132762471541217456665252542644367557721774125262151577755341767146741241664313612171266624123241755163242672374423632624237653657456712173424175367642466343631677411711365664333416746612375376346441676364137471466361517447214257347176621561731657631715626354411422424663176265252362155123563746277667377227744173321234422115736635655667563314755262523635531433321121116441235143235532316461723735145723736544156642174743746441256757264141557455665352766542661557725322511656355214414257546525516352643721666477132566643436271247334737235775112371355731542757122516432243163313441334321627532114157313511243517743376551544765472433724242533426166635722417251533225642715257175161663134153245651544645574413223411725544157755723326167542153435636413121126711353353336545211674646251473474431777334112634124511447576737512773646257543155426463543356227611215744717414257136473741773755275712324464113127661364564163614415741377111523422562331737331672475646666631314463726123155156436313162154325755257771277124756611226335176775434344574416175766211145654645421164534376226135646144542337273221774444366161755663457513624146256513241151255745373264556273717662225243362265716335613633233323637463132241152715577163325161554432156273222512363374646556545212616437161333572242726676662324575552461615175341533524372645335272451543263116273544315513255766325573131542552747562452776676641421634622267573463631121122176132325126337326755351464575715631114626653714713447616267761564775366364555356524625434543612312152671567214167551325711463525732232277322747726161562721414126341571723127233142237423565176634113215521643156373445724535531142453246433651611245757523315312661115141356531566363436757422771222137264241327165422417462572625131157513536544315457525175466172211261655532153731612512247267411547624471626231213565612742172257242723725647162432132427537255173315516412412645177433427335255576467347672776676742324241766546416332334434325222443171271145116743315152424236572122352376211724345163244667451774321467471412231146373172236346761741112263416524565714221164754267371436711663332243566575314623644727721111553761256137757343747452443655624323451464452517714151336725571232571536214466561377532325116122362456376154634173745371712613153212151756463264477421541632247571617115163573262125161353611677171773521271417722441467161247246457642752232225462532451574622551554162275526476742126316767346313732252745775512735555553421453756274317211672175763432213247546377731761241462271543755372356325222221546725244232621351626447371523671464371123325353535313252434124262532745376144411152477654366716262566217215667765246234672563473641671713671672425352741226657155236437717267343171364426474411335217273323457656726571347722255775136361626525431371334546664465367336421473346316453221126665326451223463717651536241253142774552665244546534616434652276366143443257634517371155644153723627263511575355315523311625321512532124314732673455116212633614366571241645224472313333436721456347563667412262323646312224263226376555626135477763615736454676625514317312742641343135714415417251521442747245311615427157531547731116413446176367133752144232135446217444464312416624142654777544464442171542124115633711411465134671112277472113777277341477222612124343324436125756712264115477522256577343166754565174615555431655644662271116555376767534476465142641152262251111717672333372121324423551717727212171434154376337772261452453564615757556116732133351526774443135542617437424641176152151524137614174146212675715735132115631613333737752251763656352673355457612215224343551731776266535463375516427765442654645563456215544236162271635723571466735656533357275436531433624762765443436766715551443577262561156734361266161656122473423612126122541577515563415745327517723734272352332212553367122114217412233471524154443761114414735616232472566313656365466137644346352632117641236275155651755472347424525621145765572361466237453536131514631446235465634467436112714166463536451317174444527337631341217562436671771556131775161335457336662761752227143354152224752715625213372534641216524146554756547257521714462513374172647345123252245335775345524325512546461616233666476124775546311475344545451731677413123667511662437173651155145277521177161351533444133341154765657767667735111464211435453243722737717722524773424561345763366461462464756446771361426314653422571737335361362527573435113554733747712542571744734476227566352756656124423517124564316454272361165112443724136525155123634153272122376673477241766517162571122235464463624552742533541721134461127576772567755331525517733361474444353543541274346137133473532217636312677627553367213543136346443275565577444164214562164732665326116555631451172551762364654316326115761137247425514663342613535556366571426457132617245445632571437376551316332522647323125375452472346471245417713646267131775144472442576331241626454477567314754227477424451634512362341362777421472435272266641167335354654627166232763272266265337756554237137754352612721751423522476221225233562662165254236417551472524241611776376734447322477447622356436647661573341472541416567736512565553644377431615167735732722171657353713146341757664576661162357215615223147256254534532631176117511434747666574357642726235757131274761166641276253466312117132351651656643763622377121343265513771776762362765114227453611573262372372641236641473431733272432672223326334331477143235456723213526757724367537544157635541251424432544262255323732724677736277544117547164716273415176211731124536413522213243474325146251452246116467522236417231154711141464376135326633473437545355553642362315147123474147115652531134474626532655135631753551735151627423267545367164361636722647733164412457227136564747553147733253613252314237276514671275212536721357671333445336625235755332245374474527265111723637435452675446715571626431532215273731111766676546521563557111727234355653442427372542131242335467726514251424453621244351425264367141556621377752176645116636365462451442513472721516417462232777246274554735227411252222445545662611367673515567624147374161667741277367652421412126767475575572522662657223253476375345224674167455554465673352373147662363762147615254753422753276355613213437411237746212577726754535257522574637725555724726623267125177457743745432135531523253254664731726324766312165246455663353155346312612542762675644342717215753174254542757231136473764726624223552326534661764545245557442765442515571257366753561357324633371662443552527435115342274657237415753231423576317744175653715747655261344713635641357746456254141651125635322175344342326343761276321274725345163521643567166215157277673336236421674264174126724754735377315176256715524136732436231671633352111171653467464546553644721466666116374553612356324527323361251263712576161216142643766225453662272562561522546632322255633211542717266341614471732247743374547752667625176456561776113333171275374467167746624125726373674124655333233341143655551417617411717432166514631126775746741773213166414366754266176664677711233652524354352671517367661751223572753421147226517457655643765345644225321364335413467345744527274726461536351123471336124575526311157232177373533675527367142674713135245275562753635654761261773275113543421735222727527746136446251444777173635141112117722651516552353352556362573614626224265133372521176144315617473224742566225317431234766567521742337627432363325352141727762175432523467616352226442655555764527112562554372434471655344142535647725373644127557746674211574461474234512233211226275537611356526353735151473534354236321466442476662317451724362115741117146276775336373576234456353564561471311144674345161546314762441511633747437155655741613271555637123437363312211624115446513416421754114364676671412155747477452557152537311217442556463344512677615161121153217476345672454543534344456675125775532511667334577334773653366375162334522565156273613167537467365622275453362323573723216164134717337115455676266561122731553254111123661361271756262465452171513625224352473471436666544154235527342776355526672672545354677463427611437323372572667524225253534616163734266546144127641477143535434632467235141665651737145427263665724747655155544637754416535123725443521347113477464245711634126763336572512763143467362344167677324113264564177445475542341341263615244724333377247123251425555246663455712252216211637771546452357626411545167677773664141617235327161254154734134432147237154616535743461174417153466374422712674472752161532641226257521633232612317436623171232157143246562762213365151467414722137354232432763313232271352754251116442775274635251371546744552574557761612214743113157164533124472577562613416716335354731343613154233534715776743617374347632256773266676467373555676242446564565724513543463257742576633622261162453137316634722271165557717116364667722714326635755632534555413113214376747723522315662336177511132672565567242473262335335317534613752641765336666131665537572163562165165717615511717562552171357457376771771652764743227427565522561461562541146443765737775561756215455541656422121634734424631542311176353136452534221772365542724124753267224311633735273147332144652277223744157553213427564771465615731435743711322774663262442232136262676376443634332652226442755565164735762365622227542327514274124516216544437561534166157411213765525563347216373113727171222427113752475327352563265275221563513712262715753232542362714254434156364576363611165224336144471216145524554236256677443256627142655431215622446446473731723726114767772655132776736342333646551356466554467567464312645232121155124712441527666331514232544551464165443415674436611343427176336754617162762335416432114223157656431551646212753537741473111215752236324245433625534163365427214446362726553146731336776537452125155366333641544571411353322444253112756443427267321466111365122424631465746766122161772141543715417656362361263572663776153445226315253411541117476677515263725646354525713125265255147556757545413175566112621337143132737725565174764615761224142444557642432242741441231353666733521516752277463626653771477374755726634153732315213524753714372115617316611153673255653355675215616751642757357666454772672314375273267464421517365776355417147767276246717752122721747422536534555571363471524126322375541424171647177437621324165435173354665151262144237463771633454722511226435563376255545732371173243256123761332346144737276215523157113473445713637222232163755374474634212713276122545765372232663366777311721654131637461723213441352212316474716263342334755212446761232171573523756212676331465465421647111453661571762624763543325312423552257227426611311765327157413667176137273163215324146153125415437252263672334166473472724666431465625315441247717451662242125265167611464511412357345773225145744145114654726264231732263167674377122577372132446431667217111647651142162264542326475436537524612127225454231352233715662653335646572247773742255556245534161644614747741334652447375141457545227623721165454717747464641516331223626634462163767737413574437562765547327436145231113463147115313261123116113537757217633535376715131551563747144266242626356257774162231545461271135217756665776574631775653673716437544544343324626136514114574457445121666217613525477117566235371712212722174465335245315142771163413525737375247674527443543652224516323353717167551515162451773455326545135153132314232472462147571455362717423543267536616133114261711321253521241225116722234564775126254627755267611674136626226132157543457267161362674657671514623777246366315353543242222413214474512332264132576723245477111667252576735437671573136717612761125375272655635116312212314412613444364451154655677732252523115552171537654343124727355441163637156333221765371174143671126313331354617625555556352554666417152117662563431226245322712662661111271466733145152524225313663714135274766413127473725565245745551217627551762123425113741435374334425314312524167612216453214547313143474766476556116645366653514731411716765544546542262157531244475516414351725512132346223356717672542361374255551674627165166246432752732447135216661717537545427726321466571332232434516474246337261447321454776343614564217134263331372557241214676264614621231465625712737267547565246731255334716627134743237217125731145572212175171515127141744656653544665364715266672626113511566153452372712432421522324774755752337661763346471562725426223632265344554177651136331213737332462227774375362416341453755111257412372132672232766244552363471452673115214421631564242577141325576727657413516665322571616637511423417441633612443624714611563744275343556131415767472153342545376733411324465164233341675252173715367423261616323767257776211613541473621722655343252362223213556627212414612336665223355577155147261443124367266612337227246644653137343712127122255317434227616223357567613115244775737363455516735174114426132443356424673343355166571332156344661523222467124734724741366313671164527655777563264572537562753362133732431471737576762641157477614216353534536426415613131172763373342725412353225116413623123354721213763111434445427611314552155276674116362626351252374162277627511322151344313537671377527523513736255322743316416436522474756443367723327552512466331671416252413514157145316655621772753561242534241344115713664755362552677152465523133724213721551146346243313164516712544246424537464322742361132743336743576261331672177435442757222216461336451562772635512771632753133165653133322424275476563777374774571215637713634313373562632433123355132242526267626116361635251615322446621551532444212466215266131265267434517155415745777416312457266232614713563351157121653227147163453166434162177112377522647656224634476216426337652643237326241634214224175752237333667521535521152675325222535562241133316171225376247771255134351455727626647511435436663476135312714667663554627452352711635455766366355643235374542634137566455215143626352773457653356444271122746222147357716613242726455551154677273142234224442733677366364164725431554267653157531557526136637472541377454761745214176122676645222351317726233645364266557353166324556451373561327757635562171742416445515274327426412271411514766724674315156232764213244425234147527362777713332643371744577314266115325436661165526534273243652664426153741251122616337663351437262111315533746237164752371354364574635421724747156654173222671341145617711424532516136642742765263663554535411572415362566666516175553257111257432257547435227236674321222441513631675551473426377742164422563766247144274556517613121564744242767164525273763143346536122557165165541467677373741614436724722632527567666517173175547551254446112167745616637246734711236614535134131733626643557242476477763566272375666554231266427366266544475536425412727235217336365141672464336166471335155771736542732171634542473535342253357234437747133616765432176414242164547634651232147724143715432651445432121344442445152562346534761533155222756334743121354231737714312234423346743255422146132243665111653111775433174412326652331752237557657313742512645434651165372357335377663745332215574572432677723653643337772124774364541147733411714437336661252511366463466731731364332317544735253133362355462422365426314716635247516145714267316262222533426343225232722451423332654147422346761675711356317753131646617254163344144271743131345541343461767433247567763466534221464743143115422512417767734357436222537731614255427525611357333346611525715432214256641177242566351543235112432156153373217455414457724425562771626245677556416256351634512113276133722677457466313415777372711525727377256324156526425556651124635665724655373266121776654777353152764342273421333444333632761215573227541123257423256451547677547163241342651534161126112273256266612637236313632133644265413432322576522463756162467215767334467747722252456466544556564417266152165373551511475174642322432347655316764246326127413654226353351222222546477513465643275334612624236313363435673561722656236531255117456113512262464652416262417121765667151376545234415244476471577475374453421354715541217751132761632216641715416254215313316526612732631731671627251172443426216523716712212464522632177532363244635447777136611775325261326753337215274211261462123642614672245266716337366526631324515375522431323266134116713735526345227453576125741462353767442315131176561473266326563252136266172212267237466432211636731751677131341455323377517572565164154166323461123553423474664563271627642221343637272653241631267342246462625127251546764757275233451447622545573746536155265711367333335673452645523547256157217252625415653241732276235244365223415255754461463624657464133746326154651417457132516466271476321225722153237233475454364443216422124333655612261137556333764737132566765647775117766731431733737217116773663414524316653155362422433233622362643415473771647711355671262311515156625225373215433313333654646444346157621351723354571266753521355263265313415142633741637132257766425247521235411775163776323323274122164226161167777317142474733536646467266315376226133413116572466335464415244777624364677466625661426157675216311731422377273751124733114644475672744114733431532346547125775565651372114347432756633755455234623762162636611227713211166772464664223477451573474735144743113512333664543613353665473776427677123512175467616374245455416476522162412341342172616463144114665275446673727241433313717337137751515315677734771441733676711725167521321415125252346637531733642624165126742556723726661775262463163715511667661273153343772247657147531737727146555772372526674511675711773127766565736217271563753464675276275755657571611771315664344763624431136216311422543442277517271545651612644725363547157147766244743133317772631124233147257273677112554454731753517235352272552573151537322421112725453763342422137172745377527712467177424567162113316147121123373413444234143454715733135347717267644456263531223125421247232171264641657134265676432567574624143427615722341237174343232625222675565471736142151616142325251341237677772516724174717152677634751757651231134444245264543547345353441575772457274723411776142667154234724272112624155265761351375127423344455646355175613731161773656374752436463314764377576666365126423677556116576135175775744447423724771611551465376775511256122424714115362332253762644662674245557361721364673162457745246554442471613652433641177713621617244414565262326573724636421472426177657377631572214617542622765675753722625176327111165441756457354567151772643644764522617566524312221317473151566151443322363635156176257665744662735477526222627641676565372763165636622753246133213162621227427323325432646662114522124356331264627452756746167453756413347475757126234222142226514554172151656662524346663714776445256353551341613456236641447414143672256422474743776664647671316715144726366163363243547637162753677261137737465714477364313571152112324221266761427467117477616716247662721526762737651722672574421411623114174361365551657121563535737331147477637576553467645132734161166247332273151431324247333141351315237551766242274627754261436466123262377224444746634454517465471726257363646443346115656536475477425445641775343143631613464233274751456646464711264465133447177574742646674266436764676345244335731236726546411221717754412235631164766643675737121115667172775214623577251755666171761611272723414165713112517521727122233434776315176421572663756177333566367131742714765354663673626314333357453743563311616317671432166423462766445677171122712145463244614774747547566662162317755371762562176164243141351412427241457647151166523727255327661526755742667716657363311152732134123626125126224244676614271423135321133144656373753653364436742764726324771732337635264722635124526557161254527572337723117732424363313322173754317513125727262721451614125542263134546251277311547631353126345763447265416346534417545251114714352377251716761333427235246741575746663174763236577624457465536323222542142575455531277355221144467643267456224711231156671716355251661525541351473523413674443177257433237256437722362643477617745712225353316217446623264255342152415244475327463266614243666275535243722464424732612435625654521257551716572276367643526323165324272374353563332326672644354275626755324662135467251345173414366165727316622467525542461723362361175136721157231726366567147377577222123242376511446215322362343275576234463334311342215444571211672614253576247274534261751263342622357527555676251777115234472554113164153633471562473316665142553763562765334473654275765661246655235434271641346657465155363261113757467564627676545263123451452157727166551631616346757324463777773111766163344312177132611317427622131737464116336342544565537512725121777572344262545225771653255751167231576125472325125224652341461574144665546761512445722366444425133522467266357614526744612453277452721666535635377315676245665552755743735527461511217225774452757655167743712752213345746524723172527615215414536253757541334534725716437461154671317273437774577317264323332623163773446555126161216531265367675316563431353361312354514342332253151415542762232361732355612731445516374563615144151416277414557332262552153667476547466427175232461636143442572366225261371125363455363747137466321257277472142371337524547576431645575646143312337412765746623771661445463614247111317125126326314562221523247262423325237162713571724276434442613256762671214573715424367635126544534733155434726467226222734621365651376241643572434465761442572271431244341612166644432577257377353371134235445323655255263224351522535261135761266724532264612174367217332131266161544174465716534655527733142167235734414214757446211223627246352166626347736112134155461575533141634467554475771316266455121425627277346725525757577345261334135255113675466355246312721754567215115576345263727561164361741773513453321151444432551211425514775333765772747534712134165636236772471312677652453655263747674516765115316465542231767365456226726641561447224547635773431262275152132175237614577366643763313121324435261242622662666156417712243727546554156435613631471413631322365254662545327623764146521754274732421775637513112635426614224631713272756746361544215166577364474614212716744131442367151211541342663175764516554712137351344562651377267631527227544563636476675744154157232254231716273744733547246655617235551643654367664251365265656771667754353713162527666516273272361357114314614156154735565275445562464136617325123735514324377146426131712634466753534277536633575421412616454352735356241225516341323624463131324252717223663631762453122344465224525536736311317645361534264126677353345117357455215257717311211335562414353427247175766621741115665225563134161167666541646147646351131543242452351236423341334163375352717346513637511146271727251726217354224521461614444536653664526453166647677771454147626314776553262756747637114521513544234722341536443347341132273447763576623617655211355357571246255724627227315737164523512737564361152715146642651234625211261726124424121125272436727441661662575236742144675131744711217277556213177424714521625337441577456266617542353735121753637171145775656534152366272261563764111617576561267535555675663263574766747636166133777471361516276775772675473327511667716711631521227576246611672761753753745121142213141132121427636134441262315626244351463646722535272321552435462117167563355441361422717254724244354333762436667643233342154577336163461544624521754322536217243142317575351622731452746767114421661731477452765243556356367721777214343322532245413551327213414534161513766172754322563525155422741222521331635271551132531474571633175141124745212426772142523715216723145653313656446663745436166762416164345722767665272135655763225743571212572571331535343232444161551561141312554731464671156675652142157312576262331122247227625222541472552512755157413426412333576647136327525233274656636753333321333376347763423111663651224557614343161766322742722471432217372625335344317413715167232463513625441216636611313131754224575756423534436321543145253775344243175461134176252467375674441254576345462171625163134524361377166714452551754654366757475536454446123372476265514572443425373747542273453271762431675241171474462773231561576141232745265224774164571551747644167275124735534154624722116714413444265551444162545346451451732476735524652377655371347315427661563344133262251727244215761146335773475134362354372122631756671562741544172441771173366563353543656132653126216336676555215461757652247551463326327216127576774663116764244566522552354444334723435344767556422611755412145551214642457424467741755627135623145442771644413411517371475277514257557644315666147716241177752577465462214672575617525544642723763541752363444334327113577112411165254572156423144264445565745745652343441423631447124663377374763326574545732775671367736766466711651346253353353322426335365375474621456613242574147612541211147524671463177367765666754214212354653123344463573352267777431667345767333773442671147137172167225635671361546126232136156455517363763213376211724331355214755714323645165776217764112743437241773376116526441447362455621745136465477262227213341517371576321261127147373334657131761241713222345443412734322325425632743476724472732335677232713677115544547116322546346353564244354142616631562146773531221535264617762546624132132425536713442122237515371623227463146731374527632624544645356224532445576247334535213577335247722266657514637274236416331256152462466336733163676557522631657717145112715233624411554156234245164164476132535275452751714421236646315321513223771267467131165752522354534167566616665561761555131275751577446437325174372451255325114373331175236746376645764625547166524624337245275262172455221347331624452415236756255424156324246431276356272271736461716737364241462331267517773543653547617244414651617651661335523277352316167644634723721244637357316556475552245651354562264212253741717555772677135474623345654367561647451757764544237674562222267455423411527274637527276511641676432712155274657632652534627717654764361712576553752236521533617226655167356225522744626711273326213133157773455763455447576242164516224224473361646414365221421771612334713253436277637442574614665221633257513543546473754435244157252517562147513364772346253651577167746352224664354627634123463311324243415174521224176517247477522357617437713234553435451521574741623761773335723256633117266763266576676131623251755577426425135715575577763411626476331313116577367257356627771651525746346237277225254735735232414211745761717133657263667523754515513322523636113133442413122573454736272454476112465537242412751543463642211733361144157231446514154531763275433447756713156137554232337657422167275176324337214631774162134344353174136463473267471717313647375624327265436164225225347543474365637766543352274626544521171421124133116455574266244726135261473126426455145675531125737555636237113142556247712224727776461415535732217143745276761152141372744557771716312143752161314435623417517711553151455665726461364545516577664272247146642512631374764645635345563576563733146267565352245772557741611225621557636575612313671774276227673167743612475747246357167612713211316677146644572536544544735265416216233227717172757543336766541562314746751761266152576576363531673361266464414231522462232574675425454213765311573733265356135661436161556211477764273147654554711717775727156265526223122616317472312213112722613435156341171247311532143346421773477424544551613775272546411471741115561147332541352545316466563675343561424711147413255124773462126575547251354425743556255516727771555513551213721466224176671767735527764114515765671421211311375266165576261156757112232363434162772553571526514435642712456174414572143234276542426731276117647236534766515473746742753773651774751357121777274161376565264264751776112173232752111177626254642741763214521725137137222746433541747367633745641564516124751346552511414717665755447451147315152224374615664562235273377221627243513375164543666416746762265173463132532376765736654543671513752364657716676463457135434675172442126236227166434451114725426712235141163773747514647331174164416124242633247231724667677475137752315662127132344132123772516673143743255172325132335534124615323716234154276123247132455257771363226533354265523536174631532662274166523143625362372164247436556155146554747677737145652735512321235273677561564511377564445617143652253132311162133223567461364552177323554753377513271256276664265137424121541633244361312211727544416211376452777536671731124271642464623572613757646653174514613751554224424723711726225716577715252563246732443534467251131241657137463467634127566615741154332345325675551273242743636634371625551347736155312626173767536622467424527535375666677115762643113166551634364253233254153247661377155241621435662317735353441567576233424471377521633451615765646671144523753635131565757657344234447222517714626666463541575131515637722134515575354121112615176552654776557426153656176271777645133453327253272661467317416574221665236264574163243374245115647637353371162562115435752614477564531161361541652526235425276255631157377344542714537211131156542656775743317422265226441555423527527415156737356761636613646131214146743556573512765677263767217625433177661242652331447667771764536147146363551624152157741757543457373232617611417614722127213547517132434534666561263315426672753676141513363162212442275175363753676651311626147315636355224512162161132224742112566433155636255555567712427627177142551354271647426437713674725632277246755142174751753243746431742175663377621327414742357113321627577131233564436233471412745146217234356725377323763134341155767722467252131153452655323427227222367326522731315574436712733756274246232325566336772672765463274731764236776731521121431277537334442164173667752264327451444477245443254632547766422471446125232677335611155144126367533355162362214675112627432462335663372622153453263566622167314172442724133471721376267476431152327423245615711751617747724722365247473365167355435443534237475112162527346364741514167573542364673765122741555547355336714262544262763271457233261725617235522147347771245162511712573535217534652661174623115225466731563635434524623316621332161764143436313754346777772734154253667234264563227217227313137656144267526375526531662534741136644453445474257144323776514536422251535215732146511271142435416625761422234542422532547723454336145317523367421675352254621265211641724343326626345562255475135322523172523426253132457131633575652361454115644357426541735415272432517221736455526473676437267523175126333217662532232775723116517332356567467634246355257667532574723673741744352127735724711351763262457663222443347142552671711246525474126463617634273573574737511462113742233337151431721423575654154441614341255411414655225612327164155612746671741326141542714713422212416366363535433526726527263374645415353626563144656731757277665435172575555753551555652672662325245425372117456643337511176442267732461612641525757242263227436323673753247223131144362615757513272461626741343361117471166251561141142137253622643724134662652655771314233516713414711466663262162113635317211541152332232641147267464314346312421743266454467427576121644515151145565543172235224236224674573517477143553171632246271561247512551566154575577114643112146217566646655244624636422733237262241135114542344746677174527445672725626473546152643743415452352654336277453461764271453312456735361221166636734344521143317273743156275151654422164377542552255654414333511263474125161357674473254716261477757352162121172541167561517567665533143444465732251246311377456142565723371174312535577536664512667453123134664232121715673445643621224636225742144344133577375766127475326223447164511162131721522761533366722642323442744155242431674342135333574247336143767224315732346272463176243757356372734437674615764215231536664534137474463255764315731234123676212251732256745527312435756437367626111236144625567134541515453434345361375671447463746121665232756635666565623562166272261125414377266144726375523534154375737477526324726656432114513132745625667623324222174276757264451344142145571113432252147266635153577724674615351515723742746455145157537132757737643256443321735642526641136143226543511743257645236713236743364341713121546542265156472376535373565266253221546255224355332271541271236547625442365623465616163213346122214662111574743624444155371274524312424613311674457765534664336171452733464455123123676474121147274566146615427142433362715221147427433434177275457717111624141713766323742163537521543645342452741714221327573555643146762137435626331373354642547763662215251742616746375772355263552763522526116113154573721656235433126311323234533222525613537374775535761373157463745536111731321214712743461537735677411514557767452657235371474154135115573662537135742572642451154576367745232235133214411645154535473377224537454776441645453136576226367634771411356432276412461314243227731261325152411362631752516141133243376223365533615124464371514231561374742625175627477127277624774144557631542335374217247332733446115277454611541273226262554132132543617271455516737766335157252337621652717677473572535232261515477774115165245636771425734126767667271127733527316562576227217175236357343715657636721532643563476235272564453436441423677247521633343533177444327362763121712764422175315452224242552763753163634744415254465213561766364674261754545264643465734743662362627616553373667336733521717146347441315656256273215557552666422477521416234164475163251431314653635776733342773621136213353631335134731454564146263123442646171615321367755563312623361565365556322367365143415667325374744622555723753671231131763714437112361762467146173376315777332344574513763777617241171761734171642333743243335351472562655314562734421755271647171356436177646742514773434617727755622541425433613313665267363357153427572335536261457315435662711243123447232141317247172571172126541716742356417334335524644256734745641176647712436121625244136544341441444345521433535442764752315452536164745211573431531227361227363321725437517243437563431544413154146712764622355333516762344741455366556152417244425434561365424352137254315432215641331566231655171715556311621425551526352557256261145776762133772144113267214343341737655262561676477746657424141155242151237231271375264236652156574173215341452521331764651166156456617545614275342331726244743122612657551161524762764712325621111217266366551257456247411273274435463233271235274232264474744311257613124156776412631262655325554634246563453423577536725566354137453342677152533526521277245642616353543652254436471531654441544571765353561144715161247673251621627464753167667416533534253346431311715334313365241614333566532762754527262537243345117376242537136512421573532166516645663135253223376557133233723716516723737263432371373736242643613525712227672143173376323476677342254376457664265535367622421555774334311271617354212275357326226563214444544573124435272344355244676442726477721465275431177735316243446417312567321155374466221755413254214464426545374632655752614141463233615452111615162661141556626253533312532713432611626174166713277521773274536131333252661563222115174534127144177315674164475616336172415532341214275523262743675525167544171321642324552156437312121115525667744377764211255375411532475363271732637362576346211274555275625621725153244167171237715545326172213722355654575627731574246257317772136726465251163244761626556666272274753663111535245336225713734255552157351544361714735637333747436734773156574775321174731334317274664111161672325544351314756775465116336415752425244475172672451363225255762135762422232333517736261777466712412753267424724717736226276111451566275241642253345371312223261447367124272436663513634256515753721634454527425777474112174562175361736422374274254755255645254623116151217641365764523276126427721636161154233123574145141673616162717716441754434731634735225125316221355563126533617422133745677631655525147134435366413127617773772665412516141711554276361251651746527771576167356615536563752767641741132741767667433322617135132326421524624612565117412334136372133326712464643475536762376336451173114263551127513572742616553664215524212335315664763253231427241733465517231137626154377442566663321712145241224241562646725615237347554472424747227414377277623557646376441244367447771622714363456327253211641674615716211557224755774436622613413115135173235633533375261452723445157571113716262533452611723467166255277561327673257432645123232751677766732111546622216637254441542437442654731724144126253611155232416574217472726521355737255112243124554624225161337242261761224636225716341361325342657757713576537222156375547274353462363543536547164725661522341716155432715663762465264445573574421254465364654224732517467657221447116754442753466537566563615662763661345543212176154722324722222712755642153454371764326737261553667443661337657157513415545514162136435562447556436671545225635152724674752636563554741463257166271752346533522261554634262362221235472455641767236721341517722154624153746754771663121172275312114512127625435525227341657423543224546541414265721755145271465626374257321641532651655375344726766414546642736323312131674417217251636523136651312436516366417326412364667566627763744514544576541671466436327337634524171541515126154121654637633374715172264165674475574266142572274713232642443172751477425565625216633227474625123353414174655417374617657332154312643462141121741542521665763334532162427521635113455434244517263512655636721632167734452133162443741434436522732735513617136473617153526461774217761342355325715724315346356166264332571333145631361125654563473246517544367743173214112461143456341435753667271422123362575743676632537126247372525755224131517414667711726666131645371774256321621621723511535511442641275221313465467141315776232337566377532771647663114524457773751722175215273361613474141142451643163624454673165325132256433521126421175576274647554672545137233275274153164661635434622434557177631446155535632464255531175215271334231714471757465257377221747773527721571576536343373425422422163765145225277735365637411664163473316242662665424237261457165454776713212411253675725164774651441243673234252652564474714471546672262576235433612362164434437217527117734417177447745322164226311222325666576634522464773536356572723423462366741221511163722761154525764223121242234442734222341723513336641765227663177423766167542176763762525475115167476215372613473772264134556264324255714375545156314111555373125433245766534351111612767427133716442331225543764156355337444654517754267754353762727453516175557664413371725335526575146156534534174534727643336325732741635417737413216374646562374672665326422573715735331311441122477243124364675362225447524745275213614344724664275743625211232763355111524273624532215656172372626341422232634377512216235556742716767274366726176237142731526716614645214127726743757242335325217763624346232135433551724467312412163527454667332711125473534714114576544333377672174553147437252721715347771667761447154132166262354127217215324462561215424343572115227157112467741162634377641261124122742372315524711347445575716412625246411173664621775544446416671635667676275771177655432263263245124124754554664563225445774231134545343721477765427375764527633221755456526536367327127673557271377754637512541514516415174734255143546537174165657431232534142657234211112637424361514676313512645356371454516356347737671362447264234262734653517623572732365224746366662352544635226511641463267116775223317663524375562531256371171633375374656226165352471432642736375127515446465322663635123317136151132617455377556142664215132757263443421252237245433155662161216563736263477535217625525634155624346265635612332333274671375112535465167741175341771562533455537477125233354222321571655332126257163726344167222461577223524453473664542341273542711744227664144333727154214551763157473551275531243151512261366614663242453137364661153311457447236652127424362642161421566544556334655611251556665747715762336273767642767235135521431431564513272266575522445117264346526167511131772555621533553327261171163365456525337414171423342353571126654647473344654126453621171212261545526142441153621313432554172247131646124242533664227566175433435613635251334622435415224651233114467214346132475146757355512722562413747764324731626774644757225557765173536232435324772566511467477211564327673324124273744212263374453126275441242662167621257576144466477143361447767661715766662341311236654622622611623521311645116322126521113376557142213411321244456347443272761665225467411445173737174315523613424164145212721334445717472153314734541371474641376766147254576313757726256753772511526453224256565666525412773263356233656315353133124765366526253717465336765472723423153724561271137774572343555216425621316535752751432667244756737433474347235342576766713512315361621365472236527426421713144712275234114227273146117271426136446273513245465612413544716732567517161415155655137414126712261141141312127615522663265276316432457671724775647727356176131674252332435744633535564474416476224347613326772365133414754734746313266527421656373744452156442462121672745734763367124432216455657757344257566235231614125713572576544253242264671161414216565656622357715123624724265717565443246474576317772364712524412447754634414235224464166457137365464757517134657435745612714743571216151274652624532312524212661613637757446741413635117531617721375412456343324611523477562673134664143167333733115456444534146526333543677173415264221673317262216472152762233161414673135253565345544733277616757337753461151775662256616567466431427177224314172327272157227762144155176441152413535642765655263671372356454625361765365162772371441676654245175274743552642172245345233651561371174551756265322267713471457421632217315245616225335565642675757112143666357313136616672263652773171476335467772614565174453753264344276146746337126535314672232665215223137163276762622423635133664575121147367376551132316121511161764217155175163375446452622632632442366217716445132167352655751226445375377234256366325573412633472141171724531476432211652134375521722733317567523745722335165656142245616554537224637173513477474517571357742655241242432612743333474523536615641676732432536173533116461373151257764327573412766211157216634751667312372634132752161122725413612654173477773311517633144776376563174533544166151254561262711751471145442243251276664673274272353461144461677737525226536267524764117446537433526357143163744454154131715762233251274573261645263677171577632351567356766764512271272461565722171137126726416737267347516211522744747653414327437463354375551654442446711353325365632363131236664731622751313242646274411633532125227426557165262712553646213534467541325325133243432735767244112755121752666174557763651615335624545552637642337225524526342134571356653637773626577253216323673141726272272673553671122154355751753612144323712273426623461156245645143416116447722613143367225612527772513547441623356676621573155154345623677163327327372473771416243745245244476537651737231373311614441255546521617624146177541523376424372154334435132153147323562523254461115467374673217232427773431717212761121611232166442543776217337547641732746264231475716636652745723225523442265336131634633126631254736273522456373475162413366525311141523752621172771141511572324431572171363512723137322471723376446656116551762276227467562132776775515554553163726774754276576366156645312732325126523343222151167753625121352265756374536134244143544246275533421441734641365713256613634316752125312716155746365365741313217321344454462356326744552573133276524112551727642537214375612342215616115276263447561337721256516272172722553226176122134252123752263356543755765711114541753361577136712421331221323616715343523436331613646751174375365131573756623713377375425765514227467776571171532453134133574127267257246266432671124626276723741766614432314565677273132235422412473757311767551411114246772343513222243352226376471736745112574226343677733754723227724536125436264645647245537242245632533276135621426342226254572365441761615311542417733657337556333431623543537162164352325274147473675143516535634463615545343322773426771544447715476352211442733375175462725136666634244212575135565424535442432324141662741555343216562435572124437427525762526246225371362575231212363773265222235175345414231261427721356112334145772444251376342453612413555362263537156115152336726251446325644211336137645171112137275141645475527435423243254456577415412142735162743267614263254315165413775525611247221641375626434176477241633156172375334137163613452477663211721361125531541121465635615326432567772654741742712614315137764252262346143137442633363277277636144212215632616172441151772164662322554336521437613112121327727151235762644717677322424657562567723411716477371342515264262442535716217141172335425355675141414126746752173226171726626343574315112117436667571773566322673224145347273263342432117753242665371236176515152236536534152357277323343124633166643726435562622754411724517735631123175654757345675177441355231354664553357275675476553617434463153537775126615556324715152537745211221733634473446137646721714645177274566346513426423215227725645664244761742274245667524425171551374113117341755644716367211476437231442515514372774622752112165772156337211641147443647261467377415341462546553537235243423442312257216554432115237665226453724231162637274475321311742721312736245342372643465636632233374667524341617114363157653276537226277644726736476114772422476321251244637644573413713255536467515542425313762224524153726565636422755536125241532357653541224277465257252617674221227463625444313247266566655311423373766422754472421317175635771241637462771447613733743447336354457317616644545141555111754713347412372357744552636431645247575646716345342117313257443266257755755511345451511237165424433537225716244221211424533215551125157651416721232373757467145361175264434245472533141116225753164722356774634777323335356255664255514313767461433166523532211646511141551411463763754421553656521535122264444154441273251455421415226555231545173212547714557611335113735212133365432543211313436157462374671126773166421541715733661221671614513733675653763456156267357342724427777576775453277217136263565326327377177646275326342263542375221267277265115556572131416535451477537646457245725321371265123274356344212236741563732151663223652577331464351541133441421153431622644723462645651315561676253244522333672756555627565666513736512634233523511262252731622225266362615377557676234547622754663522714544422423356733126214612254555232675136475417611543124451247763243767747471362455771447563551215475561521661226135362251646751637477552667173627546774151766151112151356457152737636245343257371417644513631734717643471627657631626471754266777664224475363466657417525155644733365135775233122764736544332136374711677324726135422416752355126636616642455367143474211537441233225723377746763422744226264277612425664657565721325741766427412645443131116121154747747772643731514127131142366654761752246653623334451464623672317476532517772245713743444135466447322664654117517275453276735612744223522224214345174534337227313736417632463126747413746761622336266162321642635766463361563715634554716112315214163431671273165643245266427132542214314525724677235643614721376527261633536117233747427132362233152245617432455762625741167474121456141324472362473261411361674742756172551771147577632667751564673573752152367247343423531671467767465564722747773345731711161166124774376674514132644746154273725415245745526123226614431252653335151765537343674667243451557173621126662637327776732361435456742743732235256167752311455323126425617244653661756227355711433364756162667267266277235147172327125744244252317127243766766131144642465724154256274573462415632317655367165424444715365526312643522467577332175517445217151345617167236273312254137752767124526624541361611247543651747153445321674132124341236614721137473235235731343167323225526733613235167664137456472123514571162424233322736763743156536226336471234666162672467615561423365346361746666266526421271342571435264461451316151122243277561644473143372342266361625245323527366774234457576535626553216657577511133661652534327365776655646726741237415567332461262141534336223355227717754313332546623266212647461473567121454532535764775262231411657663732416761476777526741213317477172263162332342225131362524664565624343575122255652117373752322725553732634162667761131335677113751254341156254355467433323334632651325334352716545421243517273367322264613773657532647321237567433651452653147224422544677756633132266544762113566734424512476721147115414526275177542113354366363465145621547361435657324643673133656551545663737524445241632256445423517466672764322257453567444277567427326524347676544123267711656621552445212362256667217377476351457713444663311176237151231257234236612212634643566674726735161425477641225512271167563567476457317314426171312421417167726675626747422432574746121136737726621626561125275613615621434446437612571673524425677571545222276257447521113545255235321243462311464536561135652474146362732274343137115131527161674543141462736232134746137756747533231477573426643231145242157243566626715341234551675313637654134727617443467245345217472571323626611564234261135546576655171462354543357775717664434331251317555331656547352441725552716131226752147135163331443121423247461367414526345711245571632266225445325777545435552322424154665543365266352726473746222727317273523452277471342757562154115136322757166736363661647155567364135342352256116574667566446576123656274332244714473563427377112471211653167571231426772723734274325313723713127171277362676335761532135535741767177237427373161254377143747755765712155114322541117224411326315717225737362646757712454616651443475367236413423423671473457436675424541473145316516756325467251133516757264725617515547216335442723621646442333223171132165743136537614662714227631143253146462345227715126651645641277525564111542634456343427225346421176611674251536463746161736577511571651467453423137635722611673752341417564137332436232323523721256226265711155417323655147541576331351152166621653242756733223155323321546531546262567364616134655111276153236165334564155667355167127125352257623462711577646346467363237345347677277341324261126166471446373363222347324632745755726262732351573121162456763772675414726155434747167445354644134576377225652457365243761456261552372323212547477334633112721116347512143317357413776317572613556547653214352313514445525627166152251511336461743321272763713532756136252231425676627315727363577413242564647337432354255225566631265444141114141375634555344226246713527637445416311666423245272113465461525277127227172426246467746514757616521643562735643511515476264165737135513125613175367126747555362315766472164514242164161747616137746776126566174323732247327142147731762542563215422745661516222126326612757461243441337311233546561351566536754327564414647225115233313355254516664247734757667322754312241622611435332731117752357712236212562626561774175124341452614645114315265264674515153327521314726557366715415176524156231363174651617522264173166674517657167555746717257666316365741146165133637532557657611457345352277774377354542521573657615443763674424361154336377575665432621322765434431373234314763647143375475142416455172522232626532153713526161647447622156437312621232574513776744637244727151443475747427126124517625316325453132731612615626311363135266735243447637721614645774227635731666242124737232516416742747643642557751555617172744757255132435612511677551552155442471213357142422522571656154621762112456554625211361456364757167277544523215136174252271776625544632474625531342776315576471265647171573466423634475346226234132231222651623316756514435352664771333637622154151732375222422221355647631147465651227643215321566243146463443237243347551314452317623562135442467723722154422753635224526473652555256354735222576437113143437625334312715447731564615223555551425757247725727117561423671545617325441344745166245277677645525567323561176615532363342346132612644313514316252322767124137311514255626367216432541563276241311137632571621555653131362225257373467556647136624247277522241117557434321444337753712163317322216152623751313221631736451413544362645252314645727223261232525365552276531214726131451575756775453512565517321124361447244755613263553333266412747125233647341651346563221173277211735421555654171651214314524555661323561456265354575237523277766732427456414343613547521142131744116265125643245622613717324321132667572476732515775317341774111316367526321673573435361572172143172754727727476132552731152376676175667673652655244447564724714735425515714273727354432135527212165637547167352421274411174235335222165275354517627377427733566417526457175546632572634647136671654521637315262451736322326325514275251313143211424245511352242652522744461712153561443472736335416614252343561237374735247163735625354577266371242745562571264657514165214744271475253424552347221647551165674735562135412636662165244352141645414627452655655163777334553746517272341537434143434361256454344355511775637444171531656524247676557651444477111365353345752662531526653334345574243667476554121212161424762543377556616473216227437613373566735624676445157763147127551747634535225751677767274217155251355631463272351362272722641577725511566176335464524727314463456231316326253732414215146515263717747672627122474715632414322733627727273274434146621773545147442443564715452166741152436244211465145436374523321336662527341426333716737471644117667252275257213525511542745455454472722657611272644731146674362722225572662621176512625676246551773453743124344235436317444221332611214537264617563524572214451532663345255757735211661112656143332665424222116636124346434531164453125547157744767513456733252611232726733137446316664661216577532143637333417232147726151741624227623546277334451444462566661212373551571625462437176445243474524212373464323476476354111542234765225474225565445414124272425124746525352122675456761527763415173764711124214141751132232513423632323525256664161215541731364766122575312117427632427532762462474553275535616763146131321776147434665337131121545357423614411444742516632634171545621311763127435715771274625172675626724246311124614735437237526372315741662174475271755617662633154647637241511427636326414677314672175222313456551374355644566366577313444123717131555251741716766712276671171115164622137127726711137727131243753545742744756747763756761226434777514671427213472111626732515376267651112742413623675672263714532527542646211472273763311572166442326513443524634243564655264137362244411253556273553351167473542156536645134764342577515656232331274161764472227417371165171235355174174643266331367476276423261162422117446412547576536512721231473614662532675766752622735251317772467744255145642234446264325325675562316123511724471326753525476154416222662776446571516161631436267322422621576445437446421474435457722175265722654521464544211666767171636447725527667235766754653674676643635571467513212127676365765541135776155146457671761527316174321132657554423313523774736756411534631777342614265454277766746112524714747237566235665765562574755466164176255273171617365636245713621221256267466451516362127637221352477316356233274144466342474533173134663515746563241216556321632245643315723671236357146167264311114536242532756514527437467727122564527664161642425561536547553642413572111216467347313377355653114554156217766712154413452337557336135655155665274545222455543516421127724414325713444613567741573724726561323725262754222236317622323373426137557745371624556641774445771513662667437621477454565331142222612171745746217146635472615727312422637324255364246727177713735217572545274722347342362363667511451734654266513651776344533675643756545273143522531555241621316623677326644336411657564545117662344417363725666755123411321417655325255557436343146471543615773535453131115751454445512712473156524141352767136573344536717316277524742141254123457234146171611672277524543265644667373274256255516551335564457746777427146665555333567346723227226161275164531374654611413135146755275723477631336717252565363177631532113265237242261346276527523767371517443551776744663636627216247322375744144141537314175127644776146553367673755177427232337721635624243143552463435367614615711674312635113441715553653235146336661743664231432211565221126652537545135551724246226751254142325373216664777514546445572275331277622421231111475432222332275336317552665677156733344511731664434513172773722615143623721126573354773364565157565766462414475622233652321146216624674744523216541746272315136612471776457171754267771231145146216377254265252717172235452157117631565215132353473627455774674752157712416743213675742653233642166156227224465766654251475662177725651773442357336744213713224226124233611146172117427121343775621233633737641151734136274574466522115511577774116433452733511464664456535436231113441745326554155712576451374425761265717665372264435212433165673122533721462711455175451752442144337723172273441162626734372416253246547777234453546451272354371624672663627354641677721265516617371577163737434614617735617417541622731243216617372265756636713274461515135715155275613576377636475556262673571322772363322216756623643142522653264333555216223716463716161347777424621443354564534135154312211243636172337625462275612332554777353174326427265475116451536137266615241772732663574331425442471252166176361541122556732516147275425224264341353531335415423433275736446173232515742423175331662555532333767231736167476143342417253515113127214733163177545616634125746451473177326637773564351773671546616327251254243532461471151245146771636143561143473653162226133733136643322347616374514736643247642446771235236757531224212535413757761714627524511633354537273577566677352335775272431373423674562562421744455375757777332713372542123137515344743743115317747235332754735562376514124755752116653751553223562454166554463574551766745471666235543432167556135335423173252275663245365433446373735445762214672127765531174735231176564125615731127663673415341462252763544357552651251622557715232321676444312471525617264265771343523456727367433233262611421654236565477556523746456656721116532512463347212426464262275375352632761435546622551217536276725112411564231134412424571337323144216455117233673246617752115512232211623756336762664661211663127431424721555454744333364563164236372675752631324651336614134551517717526613145443665656472257223233375366664441747535464713736261611451451715111164643344637466551637674716526736414157544672461545545245131123675213351632217474141675411614314244662656777757455565345427767414262361271416354143766641551531147417547671535342651536614657175245231212265122377553454153253761473635744466637616263667215524555257745424411471227427532213671415413254626756163144211443633175746365156655664177632176462671575343141146535256352662421722163636354567354113151247512515124371325775132553161224266456362121164765472766276427256724743156375164744143172634651654362767637447134551151234732121666756742116723577575732336641726534532743655224374167432227423217762367644466136546571134266421327555543313125771662674414246211276753275526326475764535153113334232653345276246756423241651275722117444164121727762216273424336446514113525726616131761434166143613425771413364271277344764761261634423553113634165722437236355541122561213667375771153275133677613261413662512423437751665265356515755345536671144342422341177762566423165165112645731256356465534366515415236413216334171741514254135776522462614557166263454111525424277536731417426456714424676341171145157221262141631274754727237344752114133336322652352663116743451652266441474562111311711616263441767543714362614736147231767235335411671441622336142155353417154515716243436662475774443114222612473227653542713614467711434524154476475751253544173274447712437161637434552236657371644636771126113756543767755775172466467672512121676324313213712361121171362674664425257611272531754175324474173545474464515777266615437161411166735375156566615575447347537646432272771667567341274243225372346565766256145171121647161531155734633652566376421675515777775711364752242161143133723612623413653451714134337654265646232573172441541263627615324221734325734261255263654755511333447171763472531367766464345372645555754325511637645614441372476364153516476573677451135355534452277651411471661635142576352727256345527657746731644715653256214241623511675411566371766414334151243634615465635664773644317725242525217755552332742435767171724116637635413757144217127727712432336322173467564225237242243427543576726364454266722656163524611262163632476126721325245427212337437133373115122153776451472635672525245567372421131167247423213475222772141423436635562434766335141351465636363147635172511454262426576371227545441352423667326562541472535571444562145435556426573733216666733521736411266232773415736635421714117767216222333663466351114326746735155661733214562527542374211173572461674326674146144364124124515763143575455763671331742554135633352731666575776242236414137633262364544513234147364225642634364434271543276723752465252455113466277364525516214554273547361721641567353743664333763346374477564644773217676432632176135576564261767322471245421641443313173532621762124331112267344775425777252467511335356676542233714613522161762216134734521145435125471611727257154551342365133545415666761726145422557726532225666466375471314166434445431543432471347117147555411166621116351422446551566533415525326527354526774652737515265736577463417173174472565557365761732117342351762321571366236124131331376534722255436665527423146372532415717335211761532574721661134315176143653151235416721227333674575312517136242724637141165564234776341363211424126733143721344144772231451624346241556152215623233447424617345261547555667561725461333134271636274342742117323753126443162166116533747147212577123761371676421363677715745336437746765746721741447432246671535632441356247354511565771771764641725252777146527576416576675462464112413537373364134614564424573324465141161417732433213656247461247154263345247623235523457426543451267415341334757523177733716273313463111353651725434431723652372642342311715717554226421626745343461722712514651274245326134761336531641223511632345171124514557423621133324527154664165547134261662664137611516375675562574424474573326477441461262157227162633322643523467737767364326435531752357521177263372231664527412411746731157266536753741344475757755657775115162756364537267155753541452353161266225667626625524172347415633162774474466452234744272143536244445316655634756444274411774611455376174567376254763335424224453274124674743651257612465116654265616376762251316417556467355163555414312541611543647576533243621463725312574651245215262675271347742472663341364215744124144271275446734351327642556167575215325161165524757655222737116642513213433374662661313516537633773436111432231437467742624627317753665727144327275263366157111116575211224747676516764672613734615525557455344216715515667362764547225253117532344124714654242625551416717664131452744531155247734275767155477445752326324242154675415314263347144375141554672462343714523766774434357336736315552152625233124677325451355176754372555377723373434273427241146666254674766437673412663771114673527227717653643215413173175575256317412471774316166467616576225166127467467731631517471451363161713142172114371351432476636246356653174475746213457636423437265753362723547461136712763327246733373576153112234236425767174617347527536151374226752467571151116271254161321653543722712226231251216536751155433636136341273322443326215322275471315233254626253525337173312761122745264565573744617616131446561765574163542731432513437664553741422231515722174357632622376763145451423334454212274457626525142711164426775525646415376352267467516142151533427271651776125175245253371555221231335426242161576415755122634741114647574673753624411232426124324131271751367542213436672524161563672771736674126472453746455434616216221122735514153556425267762612535657243633442721763413411772355753667263646231332672344435654461751777263217443543161645434112377561417131276443163257723333653722773127236174313631633365653266466171724744475271264523411626676577613226776516535227561565554535427752651533527343312477165642524412617163445472734175224111263635125235612352645266617321447643465312262417764424314347414511147671136471461132563321351621146227242171247353631363332535741754777311544573165125567643447655266317454735243166745132317464114144173417245654557454624553365613414164771676255312614472122722362671472561417132433712225331667157231377451465521222354111176215227461425574356562136631751662424462535314753642154141235335577245532263762356474271234161631676441771276425375126242757744733677776737772543444371466552256656665671572765333752137775334112611561641757673271325416251762363343546534635144217751617716234672245122514222753761142243777567714527711554642357473731321311321774675142447576646241473435567756357264332421216142212655435424461377734117231156316614457322667127114525551656676466244167265367461153631735616646672372237176735252536541422227276537653774777435771766141373212155253463154226137325143272412537446724342664667533337547712176243745562662342314747624736255771216156255573744542535237754545766575532213517163437243351124634414357412163112556574131234726577226276314735222163416432134674737551413215637236616453666367162137272424416343235272562521436743774246511635161621177352325322621246226313233335534473635577752217133674317552226765362741147257354553175252375164623726234151277566216133454274675271213732743131762676353774463313345737145467557151615374654375643346454122171216217741546167753216144567217321341256432342346771716365275337365512365522657647731571332155114556174767355341345335367665416274715414443267323267635715545365166642416635667316361163647516325313444346135265114133411561424354623246742561373725457435627345146354252531657262137113716733536374112265254273417421112624361231542761616347711653675766526632726336421344445534133542514411724756521666433215611264556321323711614763536157741771555311452153245543236155253353342263247545263651374213741266622753376453273661612334647676751256416354775353545612376275162371141167476144512312442452177431445655626532122452537766376352437324117663115352635645565433566637332332634563165652332274564357414657253623123711354573352716177555512275526721145426163365274363134365136732146721526265615435757517213216333126372327211155562633655117743466316451473612367564243653757235257736115567625773427715314336745147662431423224665566427743757455554726162325774553514421115254642434454515425713255737732751554711556131773513142734141346323125262216376656362466163327352674533144613561527177617352377577363667241636711121112151371362327515533525527741253467511657713174557141734637146415476665777276664772174671714546326316275125723423634223224712144675436242733316662324547357654345227753247667576127514552447774537534157247127121122667133144426472111734256152275454477775357227521534151157417265626536354316252424742251122241733715545275124466773312535752165465252773516145166521773472611451275565257175624476465146447615754424352352734313363172757751645421755372516257617327425532516341346217361216316241223765347374331251127341171735157556323343776214236363572675422561323756245277714553233423274543716224252771173461774247576364656517125225434614773421317335724565611444377161461143164221732421211266615524773716436741744315536765546232731323375211326746512417275121313455176526751566531712121542574252152635543612466567673757347165363556243535113753143357414314153432455642553751466734165527245521656453637245314216626572525317465244637653415136121662755515664321175763434357161362667352247513713521165423532571157215331411623274474245512173127231753134425645415131712233654566775317753656517233335561745534324746253447212344711556572446111524333661722256647735675333144126652241353672567552462315623334223441675274463342471142533157612366346276544271552655147566457775543452356166254443267356313224761345512412237675334361113545354371262524157141674324436123641412432614411436626261735547223253536631373545421347543231143472154151121414357413551173211461617315447577336216655775416465555426262363417331226127551426314156116454125141264265153237257675527365176523632362176521547527413442152733337455675651144217161534643746462341127716733345464437223436366513535537523766525271112564524476761544516126712521542117672252757134527532432625711113213537646752554427674265666717331615711517154537536346145757712174515666574367253271115713613133513373164532766376427112562716477721441733123752625737176417356362426433145344646532443425353322555437654522225762246672346677156633732513636525642542666557675661365445131712561754242131722627747413227227577575313635141222216267513445525514346623336451763512663247112573337312655523523214463127721217644514162644336656326637632163247527237435157746662564551766313456411454152267155235713722652317167325744363271733545146344465514646544263473577153677534274764452436755236616635125177521336775231236761542545356167752175714631744543731374732742641151552344442237532663466562757264253336164417463662221117425334153425445126156454677717652514133515343164773641432333421573325575433732431127172434667157473273136432665177727273673771142461614641741642654674373673121351451146133327416115454755366524562716633255237142671316255737517111674323745161342413322135275277376732436255413754416631351212242246413431272577132126165375523741672145165354561662511341214412473517336163533632223347572234314515547556232525156574553617441721415572526171577557235637574666147537172771263151274166745335242324445546766414424143147614531754437274113645416732347347113112445565276574236131575442443163347117737616342166237173261576234344257242265573427331656145772327744177225116442375473311277333241547673573341412252523734767314471557121465637155446742351313752131243322275222656644111353567164221562773514712777512546134244667146456631441742114217723547236154112615761266467717122476423447152342141261221231333613654221345572776234257373447721317632165644155761526556122234356362571465172672755644466772531366747715626216524311666666733112177111714625577247235124721233553454564146637745677511324457724373641376371466166231474751153613277347371546464312542167264554174142261236115646113322347726547263413636557333144516633746723641213575452426634475462166657335565736574146643413152257146213652555346143151311637755161212461736673617215335431436156366545642542723134551324467475224112667743334557225361637777512322572475632427542312415315256517757131735276244575745575234174113227322742777451154735562271723434367665154233241754523643155411136135554367515772454751365127134146624452433233372116144767712416312756223545116317234734734316347446467644556437343157444214131166636723571344312617665415127337123726466432272464364126732755177412442225544174542364257355156146212334271511275433761117535442362636347332451324623744711564714276133177355317173416271257752311225634652423442112732161177237462256643127373675171411417343423631436141717377221352334461733226364211312453464522755424617233262524644213652244552233715142452633231662341466244376767663142225641136452532446275714165461622427522561153327137641367127222463436615112433451545613626637777443344145222667644424116613723657314622543742146412214114425723745447735231445315447752435226634412476132276627564662134647634465735532651643522271424171276635441215413577151412553374515362745277631312436677754414356716323132135166321311326167425236151354467325157371523422473326244372741772616757132375455771524364462562144743645164742552736364133312536223421341145332625464267431714746327455563325516365774667152455317455344577257215775563512647572651414255112733634414154441432626657474116312614366613341374465454324125767341167661314444114752424126625742753141172547357656227522424212527725124361326315336222564214557561374634765737552465654376143723152455164666744114771321146542157335143743646367651173221274373346163457744663767171532543363617636265261667277377562755314676661511241346466436375673324115764145372335375247117767333133633351117353223741151166113335712351462317142346455554565731522156214456472637674353733546627746651436216511672321724267243146145117121621172333425154272527323744147332541615251766526667533237754771166346165175746626712344433132141616615325121124626763535742356456241773526727413213655562617646572773254747117442721516117764753344572376311455651121722732447164535774735174671774261365531546313113676517276416225264647733765317611552413463215134531535245165765144226454175611263347163572361275526475276661616354353632162312774735745544646673332534144365574221616674277166313475212732422244445425755653523173524711262326163626433122473114576211221463362644521132413134473214446575743221713727367564333765421372715341451754722171433722664715175643671177471571744447635227147534124334265255462726672534441534236652412126675111711264741113637534766112171722722742555567752635435235556551743357446114223326262626564451456614757571312645563165645273452252651637171366145445441172537655253246356525532327153272455444252517446232176237345566133717425777745777116643767556363653735635522422333337626513443742344136622253415742724575252457575221213321612576667441166425576227332665165235234211436261742664527726434261675335567427624214567552535255456111761734137541236225562377144756155352675542515527465536543231247676755643243615555441214647753754551445751364242616657334233637224462357526143435232455712215246776334316233677333562373535361252776547573154227417657334752217321174244562275365442414773133155175713461712447215446147562211731423663164321443317335273515727152551757521676227354775456141256323532475674527644244712636745617352432313674661415777272266756715367612162667727521557677675676344426644134135211365365445235262735532335651463523461235161777263637273151237623152115714273233617646145161244551663564175527271165172621145432631177421313224443253356364146421432414446167425643362131444476552734511317353156476723776337315527261413447765646531727654716577615767334223116661163261562441433332364727321137237546715261445171237731673116232125727556713522536623722322236451243231232414761553155221544312437753766346646634232754131661235234644467464357714311635714241753451711167425525156351743571577244246255327761417434632213354371734663414374555627474734353623617415746517166767721425243434136111575545665553654136554131633554545233111567146643637232227664447272474652766654247254415315752771352647746745461477151612317521756144141155533764613164336411577323721146621321721231774734216157443566461413516741741444255773641236266436627415723777316777473436444271774166751257277111751424251772213531426444453476674636364474725277443311656316166563421772463223367621615547467356517127277622357442434321351325277212331333471535712543672134555576743277536613423677377672361241755474347132475166725116445462567326164177347147752664432377566532431741176224133322755225265147473617111623446717216727646362333613725111454355376272256214451642344155123651521431567522357345611226741337471555644615134171553715671743774152656356163463641231722725415235422257165443721153356457232745471625643417713721456213345643533525213653653266333255512417753335266444732451324742534175174346754731445673146552625444355621536232475166463247534211736421574426756575455772156476572445624277176757524314432213263442325745155653645361733364514267313127625513777645642271562217361573554326736614577726115337255325614347332334615526536461517452243617644276651442335374566424752443426157145122445375763535333577743741155666144565463765612272275673617577574164722332224353663553754124265513276543655322612166563275515366617673162624215433212533415244245126545647361124455747221645352275762567616622461154116313252462271466347342521547347312626276416465213251522516444665761577532477232656622273156547455545521751614161754214422476554231172317471116315725477751726452564724753175135641571617671647215677215616322276247427327524545326456347112323256112144216574426274222332574722642257572551114743565611271673771216176263315621271672712163452514425253514476425525726324573154527254625375247121632465236545226144521457274217362631555322754751444412333753712375452275472211345717253562174324171421172422557451416155264636336361511753232376447366126511535464546644367417445513424465541211765652317362426176541317164216315764124253415445413543653473225723346764345111754447735364717413157657425346654221124753454517724121173531515236442747425116712425635222263116143361324134135377162624234456364622153455273732632233657335264566664343272465662776364326745414414142552131536146765427225177631255434637723546536377433142226254626313416662645475431755361217511542122612175655431637466577461746361452773667324577465336415513533521111467423774742516451332625166371447512722517771536773175613544621673275445456543433732423171663752473131775651123437712323323621267474415162315761752314645247455436176625166765152313771524553346246142661657365525216262741214232246534621541223145165263315737255121512766117425233151323737156661632721532674327726261474412361444646133213655642477631312557624422425757246134273367422576671334666454417313743213165255245411771745426551756467717544472233342356121165263742144721561715242477321421357655171563642744561722174347364453172252546153541744254572441117326654721547223327745427563615557554247334257611716552542133622576325262626527712666133456731122254612765646756156772336322345452252441346345263152224147314162316654112736454764225733774472734722423516465264516411727557154447612274154573363235446525443211273513121511741463121164747377321763275455563521243353157771153352573341237411645374512622647274455112235116262723474576162722551362674325144446777356365576755714274636452126737655624364351763473276744256153151642461237345616227134551576775271441453517371312234513662672313447536771141173426277577757321666642552557777442272352351314462356434732132166315543771732562617663267462771623517277413762164142512451741734414434476764273671261327434527172534315113632323531664636322343436257677173434171277753715332575414374324667471437424134651132673223766554514566642344143365455771377164646425412546354512347147212337123765526773621211546464674747651147732632125356533311762456453671674267413337224554654132717467557216357515546323712336636765644765623714467332723165762651456255647131611633126435344532517325212327317573126651526212572445357572553523135733276136475641516457636127443336557462323721261236222745121344233162434636656771624222733161615135477173767567761414517226327142573513172162157332773725557663253433743253557523713325114764471744257614153234436152572217647634463363772425262261347461456553312641351422352561516666144721253541667142416575667656453166373661661766231717615563441756516276275464277311213163447544435446375744475326557156312367732677427235664437324323265524437716762114613447312144372764421431231543123557521636267665341374536613125474546731557637364325671671224753447444432516546271672151272611265232614176143673672271221573532454544363362641247466422662155224711356175263327356332437746561163337247766421367322466572562612135163262735273124414364542222436245454767426732474232626241515332171667532535115522715631173546766146132374726671112515616173771625547771514374415755557367661152536636711557117776663624522621115771511567617772777454735321432222314572564675764122435366432554216556746425215531673421465552264153756627541214313656716675133451646441425547171566577451164531736773245721742137717156275551664464772513721125126124634523612457752242635737552554151633134461477633216623577146464641265523764146561363753657536313332223633237276246533227213134472513175431441474361574624237661153473345412653472562245657757166445763644223574642267654743163636535731544713517626514322621224161673667371642635527241443665374355663723116312253112245534364122511223625565713524632425244566151362565345757422114267774463267317575422247372473232231676236361347223446476647364471772725563611633271241245273654144246624316473633141154574262617233236757631233537635315735327342775773656112464451213725561635725534233134362627142344234216722514237553172475521756472114736216623611112363135333212525117731723474515154561224545136541545656317772516356472756652646622427351351442476447554543627423655614752116257214172646331373761451166361216241651145667727217365513433464317476573363475326456236562141573652544212542314252766744253344531226546123364212321216135372665171655671237751124345142762147661747646162157471724547737145243351244254472332434111314222755312446254623157332144274627725456732641223742675212532234326775667164227513114545121354777666355365127762472756561625315275142772473573643742727122764513237547111452146552754167355737462355466545151636233733662666525164543621345542454167467546312217613266323116455753132276141253353773525246174613335546452471136436722645556141463251716266462245741224172716156474516434474727534556266461476247721564335636672456376245376132235273736433322661527445275721345175572544716275251325744557774513364542253162727752645234333615354731145465766774152714331732556263376246646635242353117112461411651676453357774331652663132374451532311745634471656244461137475662723726413262341256736132713671173415367675242457453367667346367721466455113452327765665513551643673457371736171267666446623771472646776173773212221164767461531634625544736361673612317467434536311165662621677172434462436713654752551133134253316665231222426725274371723332662662314447613614535176267633712362424277162443125745665647351671253662772147362255645542417511625313674722667176773446721671162513364766264275765444335434543134364173621442257725567234612315744465157333452564333466266327135674373326774154621157676741653442113356346164565575674462657234537274742642427316176556743766443564267565637667677556452651635274634613576475554632471516772623416216566425214761321422321413155766654517431237272344466547256756653323477614523141526514633437224467146221572317363334111464427276372324314646774521133372744673623165537234123616632351655344537245731153656137132466655472256272775123572424321571456236545374674517266347773252221743721467167642552315426633165272674744662655223465246724342172363151446543467137653666213423752357335213651575553741662244651777144565753243622136325452746346453733441765367514446273516344311775241457277251534354725652322412136173223132335653366255416756264214445162414163532351722527546166634542672422166424617771166714767334535117426461153762161671477434217732174743141347666657137273625722122536234472361356373313614517632125641412647716745216411152235437234475552563467272252276512456472143521177435566674735626255715331512622655434324111612531333756237321517453126631631214336645552514776134355231233444711774542633322127464317432166476666234536172414464735717217266256112456475547317623423555615623443712553436561563126514375151335727115451327516733613444153325111731577643714617171545253426226233412476777462373447276737553576751237221267327765614521665346154316421437571677463254233771615345277354444623663277624333424151672637373656254565667212645362552656775473227777465576174533721277117556272172757621542115526647552436446656763757233355137123162254111117716425341716522533243362174374316357715216172355712442551212743677712444364512412547634156343633725212647227552636632447314577214134212133212575461645766565417212643757471561337414273251132754151546517655727172533742345633357435315374271177343757223677236273134665575515553151762463517347643442212754642257451736271244231475635724321636774766725743557726611324166253152543444342626522474645363311625173446114276252423711656321373223561472231156322634612534673136514765171325351545126313763416256656375321266333146776276636545334263135344117514314234127663537156471326736771442276577676353361147372266267343564354433463611634773213733667355613366724216413273624231431466366525531362332643225552715164623676442517732217522416512421173472357521623145716351243374516765324475461174666624751322763652524155633742423315113145354633215613315712345515526142677363614476746647165567432235536455156517424411531417442576341227644626561342315545512151726242145637527754114662432741243751274171143241542341575113226424645364461125173436577417623475262731571572422765756716162342152365444535761377774675614251557725462244143164164563364112171162641176412221537177446251357366654764534656132233277734753721716416152557472726337242141343553534342421571672635662166234611264611163343344636426535461742261553563137564151122766534742351436625331316725747237724537755112114747167153667614625211325237441134143242541432125655716643577624231656123266477164766752433425151255261617557576375313457122647675524674662542513344522525723712575266645133473641332675476711367715663416747344577667547447461471261542347413253142135163241212347415662533151466762612236467523655445637246324234315541476441147715471525357712444221457335543644374556214225562223262336272466136515426157637752411733663233746626362371265374534731336743337223252572741472755561513516153265413664272432541326317751775215757456276342627641612527721541347414235161453351543126237214352312746564634362545161673625442574771657452112265164165566344614323412457661727627346126762354716467735624725112155771676244646525511373616611126626627633327311152272672464576352354251513543667121371646225264412736111465143265215462224143614717641117625433265724256664255766663164265632247643361261676314314614223125242346665114115745566267573176633166166661211116575413464115671221227777237332212663343143534765176167713146371571724347634323732642534251117366362636721544136324511235346275325427422676212255636761426455371153235526341666443342414362222341673544411661535762124573717353454137612167144743366156457416154456437547654461727736614555563131775162251536631725616365143466676515724776772275766726433612661541353644665216615517443744144317545142532442244124771466722444431336621757214516315544356624476422414572532114634522241143413355437171344664361743351366637376741161136635253466725244747767675773126172531216217724437447426237432442625657567473247323366112255422725473353433767122347362417353644524162336634746113233425342747322721364241656576222564222526457753212637134623445715331513557666171474477262635537264254422572531561237246532415425753435626761147273221174434267166432223223327347773723465226225161312723456425414617155777523431472774432464144636735546542176355466223473126622516472245365214753775245666557741577115654565273574332721767173263275163443272643316621721742357716415763213517251142154357416477342241472753717715322161231272236444413721312423366575631141263131413124256411657527223227447653135436764726213266227551514513126573511173725235246135216761364253623743334171616532243241211635121515732551533425633161321374125266172241533714661311332461274134633257224634433655617767271673275523555231673351141147157151471352631464555123337444452571647665362331116637264337715365342342267433534537655272163711556712132174461145122743372564741543167216745272615211551127524711317347255764165516774776751453525641567467775467371171776244437123362321231171247246337354727742212445567671714142176744547634154237616617617416616613266241647372462243334315266167376134232261336664311651461376337344766316451451211217355515351325715747525763724244172763621653454252234643234561262467742141416234341144351136355514522135276112757753522645463345736233162774271217461744424147553576175465725245113311163467456745645425217735657317325655633436435166121235712643775672456741775525437543255531132511247754254736471466713577672164271317634341327556477147137446167312215643714153723127144117126241462356541455147453467772624631767235221357153122461551153456646662313542551154433412427275762752213677255373636371453563261576627321335165461317546135354423426357323222767127265771446272553372443665265166226116263124261632276565475225136751771412732224536425264676323211427562675117664435244745616347372441547452451224742545235253123361555523661773417564327235446116164636336547772752413327265217125512345332232447511253373213115677244767223466447575745457162551564274126565433474317755653131211741463332265545167176763217341544513146376753662712572733167243735232272117317671251364763611373136346657571577614152552253272515453337321461452256534651172453327644775744112337314661112357711175465362674147267567767136121121777527121424453422421434336551541524645611455637262445112656134227573464433335255422323412324155746276752315133774227571633431334265753313137326242132315667713442241563176142255462613372474137454553254777225164255625776413551246655365377125634326245177355412211737561413367722655466525365516712161241571664752631573332123734234361551637435531612235351764511247334431463156247553217415157214231613643367223161572552457477114315711246362517651135474445667217172136154336323346277543223353354476424256772345354242674122567121772316377443172615265617255261262412443517726227747437445365313455731272274717714767135653325773475626155667652361464162425234565462376264363411451271443165655424563373141573651171135454233765344715431572161372315142665175632233776155366515657453642443135352752576445217174743447775221757144435311243143656213373135224147573443451174373333764476111435515262647751327744252713535617452271476463434522257451724624773323563332675261415553676357157312662325476335315173453221327351657111572526346756424745277235314325514677523532464271121144666431272761644336476236331344144616125315413236176711755721525326231163743255766671165571653425331456643362267166366135124575321556554123232457476212734413144333372614247475334256462732441174424635242312145563442635212221665361224355663543216473113244534363314151751224534375616154637466631245442564247767462416163122725742526164427527575735755262363167342152523674653467256114244553527625211567156524653554371757242345156136243135623261611125341475312125652265156316311422356516257554451617415355317561616667716113441522663437361236431337431231616761247423542576553776742265457345473434113373261567376624562526355632433673222271347133611163222174347631354414652675176325647746514677725367745246765617374411452751143673511424222173144514753161276666157222553154462743551251217176714736223621371475162171121241142535466142171252157376422545751235714717131366575434477553351514376617734162142615255333571752513413317726133414242775356564635265436522445617324424351137514433376151415375231613242464546112333251312153666151414553321232366623155463662567631326752764335136533362667157243475373512335747524254432551475145564245471175167515162446427223123537367466276267665133114146447632651731752667667474114421265357556641745334314364665446455324371267373226767427117644523354114232273525414566461456131466167522153424166634524661474543463346663126644442223612753537776444432655532216431722227474513551114471254415367552615764346734245575634366724173464173621433751532424264717516156575351324733126262617327272221711546611415626635136252372624615772653123624411314233564746447157435647223773135667137524451475442126251451163642664746374544377523442627645332421224265631361454722115162725171322151535764221624134643236167123447523233654747464161515415521264236661246753732431512474146365612517625424737264344515232151643123376252564572137612335554642254414422577161463555611576262371753435776624173441243323242573712254153656355723157512746227611736445122661462171742356211262366322735124363662761125736266414257542375724273573624531347212646613252744473753344727155765173764273516147555273774122512421737461131156143664265676757312426574511627625324643522331463745515277361343775461633267325523374223142116416254257517542425754376714134776625343434412654452112123435245726663326771175643755357522435247226561452461244652417362424252365253311561726473733763235773123647112361352223527225542431144331441516545167432364247514721444471561546365321561314365766123464652235764526615646375273116465153416275661652547317231441427346516537436624771133755133275322213257123175615722327132363214334643666117761674225222462173537325773525633623234156436546123744445121514215442247224772623331716521772323276413545146441763164656746311532464151775533621241737635565141211625714566752215421374752657672763454245234365127356654243234432772415321656372426325741465137421612335524565727641456625431573565137712471262267435417163444133546541717736255331163212645251635612673717646472572123211136323273374765651632711213545761623232473272671153273515272661653265645166366464124465275474463173761616445224727466211157436137346427463225716656617615771774737573641252754743545646336436232212476535722536723476433215221442722666377644556136173334247273576176645723471223224556263124575324317773354515226514423746535261711222466137643633276513355275317423661614762245575356724555316351657641431656445214277554415344523627664743626447167156426354136427377724376243252256131756472244475376726653367414326526467623354123626513743714447431461462617313714765362612447423562631132174565254715215552615264451564713562211712533227521337715264566235465467734266342465575315173717456335331157723153742673313615552325257366367715213573124314173446164213243234155434636361177544342714427643362124477447457424252362625722351562253317264337144313616411637726353574534277215735326366453454273663447167111575547366233572332522165175126176643572425165422673124723544345342632764623556656361652337765631114323725473377146235671571253455721413244463517523322562571237731112527177467443175244534741655165347341317454764522114672777576343477422457767541652342442523366526672731737623172347524167325311267363466457262425326125761512641517166134254316157153661753247311337232757411427426725112537577624657265236471344256656243112215613722556315543267756773324656346642211752625155142743276654611614226214366215622226647634226316121733573524216347245222654614537633372555265233367772266551324327647115645557175775315212334775753773651336347146671421555364263472161214151756747112361221736376514726434542537431677122215145126622566242415463462463526433346331411434675435614144535471645667132165564431111525111641744643747157535367412564275473577265452477363221173441177731211337116255323536745272322425446612513342163536433354517751626577767414534716563111672571752543431563345647635147227511577153427516233737713537553634613621165245163365467753121574175551776414314552431435731172521377461441773361644177773114366426566523623362565276215526354236216757453722272633643336263716637436474777327422777433261652546612452252214265564531156243531311656116326754434216314141533775163173636525371623655272455155664174567453274465744414653461351651331415734374272633331677735133277341134674313577133223226742461325442121452132145467712726266327274316464517125654656242277733652374332722724422227135365351556725442654157532753167716543732634571767514577776325527414177273554762644314425257631671312221527125421253615344346437551723166117562677361725361324472573213725114374233335263336776346757453154475131564314647547474372431155517332572233731724755524771115767623263427723724513366156276775151311763754366147416315235244743173373562231145217231764471275416135325457574326432521271321153777542317477242775351377541667261235476455561671525566442737155162552416366465431371154367466316573734773533465626635473443463243547236621171652646516152331745212346122121126423264773336434365611534656771633362172536473741423675272171275635144317151564736226146366577472176421547635421343247116767727347323477363224367675716626622545516146116332677167552554546614465413313137326346334513266161621461622345361314256627267165267426521645464426243146254274613756731224754337243666515325727334221332241763627377367122525557373347563753344415345256537226245512472667325655512227174225743624253453315113564717127552347631347716357157457261264341575561636621656565642667716544524364556342427375762161252245527356744672144714614132241355147176163663171412272615231457275235254433144124244435267326447163517353551163617353761723767677357474163172353411617113572572441471216517755326421531112453726767227272111742724777211367763773614625246233546236257426425615276763526533726741567641512474224123315352563367536413673244667213634462642177254736315733412442746415672712737334365751443611114645535736231374624433576267271675542245162332114467647466525615563711627163464723117167731532412612615624263766376426313565137221412314643232172733675164761712164425773435736342733551347352461232743275172626121316534552731144241562362465416457433127322527143322462722462447474615546122746477745141311645776461256271315155242166316424214353372221342256714223155126457274545776133352353614122635673523377166713342567767413175565147411317327654124722113314262176247271243231632345555126444754672521736261465611467311255753543626123652617572532573611416753345247434636775152432713764652336153726511471126561663262561724632344114365311251456766345451154371723542313441576414242121246666761334566132373143611223336236134161657564724342632163317333146666763753365121215533774127445324223527157772114576116517564217742324443332544133143623771543446562336563647262467651351524767757372152346265544443671644452561517726364213777454134132461757722235753465774751453167336344446751456726435133261617534517153757216712654566116316363643652366471272366756661611457134532757617741176175113165142156523627712626737751551156674271244545637131734632176115114535552237114136342744245256661433221454466772737233561476375332755113661662265172367441361224422244522722231731177253312336777224577161315577521647267534323456246155326766157444364446711256163671434242267224644372172337345546771426735166454225345562535322221454251756745556312262354215331565324322435173735355423233715775626362524344757576347564165675357317472146543523457337746635464416565772546221565632545321177532471277565317456341534356565552723143122653732665742417366234446144566665351531436516435451236753421421155222375245122671114612163325532365526344256355467241361622366624517345663637575423642645275751541566265557541423776174623331426666525313466537121742344716261747533373742725731246312773721226372542236422235453313524236241277345571534767535166451764571521655546512221274713647155446631725563354616726437725723567443445325653343236112175617257224571332711345662612712513522454124257342517316567671341534761423131176356371146246274356166137534553417441456474224763671523667254636672757726351147437621171237713573612673647765737611722254146337721222677777463364577114522465466511762151731271757651233473242133242441653773761157273653171413646274471761376575435733233475771633372472541522366751415656456553213453637712331245277775643531142437113124251364126235613376424566567162527657471324226456427216165174456544413644357135776137745565234771552736565471221233141716532232316523472253274431134145721244575346517145365741744461274221761436427325753657664434653365464531473545244632631413172431277764123416324627123274514647171166571243265561672322613317417536327633154643623256446776151125766163567154556765552543467673313211466575242251647214453443773235314355712246423455113457656372232657452615651215627254153112336524663153641153654663377612245127616124522521215675144236352774155156427713134625443155614113521225271373677371235453333155347561313542143714236715347646412451622167413775331332765152724261343663633334276332537245541176335533227444163127464521375325252645356423733446414757111732461764421364767324375164114211666666241477115151677417122442532611434514515332523573576654336417444235516444735375765563315265223657441476111632521416651376222617563744764251434565452522453635625232631446513263131412651345237763356324374632245317674631354353777542113765213745645421566235424312633223155441145517657573345117263616113566764555644633371271137411333512517276764366625734251232456736221337137475467273112234473217132355212262731161362675355665611737561716112212357541267765657753623134134366424562721617515572265517214752634414515667657437547237352646141512274754751614672735163251265455675474771273564157655214233662461241531767435154743654316677747273466454431335143347171771715636264143626153766223233344454247267524116733232255671246523351261233655451113431222357241666124152537375417743255322357545351175442362244141551423751625543662337567123546614146353534412761334323334517512227764346621226453715341122774335234552563674532243677713224646461156445635322636336436751446214433267754626223146122727254766521257266662473121632243357767543762111767141453456673132241136525636736743172356337553766211753657443447757125742736326241457644721255153265772174137744771674467614323743542752464461172371147721564172355554732572612733137342422222356235647227571674221345627142212124721743712213544612564561112233636132444555241543121566771114577313646334142326547516516627376341524547353526362243124626746762754532461132761216621322217276514261446653152313175241572513465213367366574624345261231513752614233362151544317127232324623114447166273361131143757322774315761761721361563617215237347771567675671136115575436262226225315365265311313774647465717732612442261132253664357337131244434772122335563153511555462515367157362436315723375552232322151277326672543434775544156222531767612563757214623477716741325313374654241253555126136723255626246623357575164776522525742525451444773753661362243325122474153316777315565623741473124375172342243273742543251311634353774222355774212467124264447116475221357241771241253671456366336151327335334561526216244122756665126153526266447351216631236725531445716646413451562464417423276243755743524261341516351412632667166772255573531611537672175463512371627377763153247121241716361421673743632357563615741742761133233531125353341523336542732256513266271736362445111664271517467626557654512767467665214455315417255353623122771167627356217142771535727421641741742777721125235377113756242457454654555667314134235444267426564153421316447753467243552624573177462513446454714647326472263472442742217255757353315256474755323426647776663531152716657354276442445556335727736236125164473451535474346731635642664362133571654415132744231725273643245416574345752155611612523126444374263611315624325515771373246517337727162754325167667726455426462354353561222121121713761634412757477765277412623124434511241335515525334375577113655335342516366247764425375376564311155346374232341712442372251723722666517243577567744264423515121371253117556436532361132474317541566117754731514652765344166734723624633426461255455121726623335726413655534652521333335327553245316675447145326543767511577234755754412425356333642524613635334731463545463427613265556142765577631235665327321747525433621462566671476332374471453235421651747531611635155635663215756255341444435521336123611333141155514747424216341154556611226324216574645265113347715665121762313373671416337563564454375374646175564546471551747576237777555475243637667154151132156765144513337732712627445652167675573153375211573164242627226126666263524354534154767162175717675424177646212731327336646457341223143726651244475342237274231353567261766223552427652563216355734643153715353635623273535462155653262552321613465125367736355132451637162262532443272316343746325321426555131364724355111516442114356244757717521246757221165416734761356466331465363276426271163572537475423571336767633552561231423574347636672661663132427544617376134726676266355772334221713642545166157675543354577122324671256775573463357715365411642342451441231411756157616467463616265232245426424442423263241623552414641473446172333663317373661731534664241142266665316257547552725424151354414413244162246134437172576735417251564314542455211137221215765672152613361445257364426431141742246531251234163113655522745742276242361473213533112564772515734752277351763356766146556637543131452427527755644651636422515712161323375213767365641424664576775137561311511547434665355144154651726767247335311761637444141647633632656713653763155121546722725312571411667255452274457263454316577537735644433543311226474236276162156754316774224356237763674612131635277261513251264162553134357533463322372727136456723347115151417753122423337315171545546255325425636171444414224317255713446311763114141612254614733534117641657351674757214676461644255342531467646354314774534631466134477556434372122622316712141154434472255524126322554454661777443173232723335357635212761161125445152244617445431343552751174647555673364241774242527715145632616517137563773526171773527413574554571446657321232432714755346714473561565422644776377116532334774454442313416727747157633277617445771233573475413327422743643626437654133514246611643251444747673771323773337331316624662465466656711371755717237723522662437336231462657561414527262362545562524553752621773455475644727616757526735216316755436112624524421564566221262257623543736377752122577413531656641126532563461713163244411616574727673143412424722257731211261773752461731374717334237251477566174443447666256172525654613763772447614562522543735612214674273546541231572665162763274775335671654771142341366464725316741632627527524772721756557412226372474567633332444652421553774545226674561224462156337416627473325215554765335653476637432562123643532132776653334211363553666363646251452441714426466133433262665412761136347673542455127357636321617133156147324572375343326367351473671576547227347215447316334473773244732143111223761121656426735352655162413635225227426251154571766576756331264717652616633374414475213257465757755157742373154515346674733432536433431677114666433334626371453427153142253653625352653573642473322636254452133761147327715145477653571155461176273246247644514573743167637736666413337235717451656276361365364234561525425474562312157326156571351444216155534777224257165644163347762666543244165673723526345671617261235462271677363535451342342457674353764763122415143161235424473242537127542772576126341713553211363476363554634556373515164474543114142511175562632173723374157471274565516276551772464623241217331171661621475676135511245266322322311514764654457242356715637173344515173577336263421312214213557222643332455273665736246671347362466112251112461273227227445474552555613724374334656617754415763442243446116433231723117642357514721375326363625126337315433524321461333263554255212352126311144114246565753412323462764735232544171151665235571736246642455632252461457313152266314172346143472631116137456576527241316312652145156162127116672616746577766264762617113113112264262141151776476567467612312631451565713273153722762762232436613763574114512713373613737414374774363675247562723414727661222712341641576645741221614712245346573777156744631764164566113541431737746752446535144723525173245342446333617463367772354165311235462427717746376266433143713727666222222327251217763371571213273135251474321443442111172323734236154124457624271372422653155417216621376353762113366444653433664457517455145247666442241473171536527575371135735672125376515762744725555762674364616435426235522334712671761437721763445461143367151241457522635625262731244673511735714175451232652265223674165351762463347354653162714364672421546215432556145554164513274356532343176344362741546117527264731374615543272577553465431551355514276752372652537216143137365137556375645223516536543157127724713642445377542535412111123735426623267626774141721223344631412374733725635453454566132536677131534136622466744413337672552575751365356426422174426427666757654723451434217526362343423332321613367534165747716143476131354456624767415273113111361275433762563253323744464766725754511127375624156562222721514221772723743646364144466557532365375577274567517133463451445664414274214564635757337566742431173522234724327216342222226361572154411272635755574736341117477576356366643331212524442654613674521457445117131223771365747436711266143544661124534553361323225345361556336457223511247271515452271465322267373563517527712566717745611737751346617772714162152761541645653616611672212612237427514661455757747237367652274347237517664562576413552647167615637721617557736677254341451452145736237115112172727565622767274611625546467567672752443753764464567334172162252357434121521271646512233541656214267512764214371163415651156177527577177421261266641337554455436326427452511627524547526464137171142121361454345733116745461472675111331467234147462266135215375225242317233737716324141762421343761321354647647563217475657113423545672367355233765636515535271545325663611345733516461253112166632317677144641222161177577127773244245351735166375525466577561215531467573372331113651542521632526656645176432542747213565651724712576426252345551612262147253645125657616133622172431735742247743632522436137241514676374637534217363546341465547231167643736447516154721266743765114172565433513522123142147547351171247124475147262567115161227327355467237134163453374712245366335175127134544171441153316745617521242364641362425643263261762144152411275223576262621231341554373535544217657676161325453527366633417737135126735166744227246242472316433245742467355777735742112354316634432572637441554242552627452455111261555532516324472773753317137167336111461334175375712234141267233734274336737576367674412421455742462225722611647736371643711525654167673114367353223311711264161662553163423547173545636155454632121327761246265642346243171454776132722237766544777623223472272275311424433327721713446117327541272345721363364466733744666654763331134272421271114417217714514237253762245466477142252163554361317627133673553561176426773522664545561251545115134166777443521316174222366217634442351326617742653474644575652226464536317424772332727466344466336111642724324647143712737316342344441743314171115526712653627144422427157466611453245543225223675257156234226254611365777623123757656572213142523662463546261465453423655172455744314671611656335771456276443257612372552541474114253273736445455674252526567217636245452417154555362534313435331344122473472166535722443127662626432671231441424125373674563755621217343416641364113574353651453414537171164224544214643242471651434445643456742563267514145143216762467726633773431512217634366256514617472772245416641544362327371152732322657512575652322655675714216452637521777666127416116516321375552544654742655716526416342472251445124537726526472442416756114251164447552334175342513472212747147574443765426143424764226522635616363773434457722432243726311163732321675343344617734346166315711144234752325717672346266137731255611377532232223556475311314531322452325652763251222663124667722267522417577135257456757547542767143413353366113161766143127236343674342671573222321226527554422713446545716341562725577655421622175161663537776317751757722775124623112474365326525634525627431134446725565427362144437312256472756551431162232337112233462342457545672621234477317544114447625661561653116546477554315742733433611717337373253243673477672246537631564513232666156336426753626522611263676166774647613577173155355514765773574372363555654273737627227736377137366654433164467442474376336232371365132447176743374633467424653723625773174111347734473345634245621431753455521634264522426753636173311556422515243626267765361361622716742132555257267276744113376411376511176724643664572222643573543323534427123513163474577241425167432773724376614355144751134633577111413232734571375614126613273313454711225664113613336311541261537237461261563264611552536644121755124443432752443421714561364512215641214412567141252621761431752447652323573411635111326573662135134356736417413215457427115232744572416247327652416451452214512263523461422327561436675225676135521267222564552626676312212136777727753342126411262233354651461563472645246711241454722412467645326423241142267225721261351244166121434551717731534663717743563376433717117113377655267264643172635141261363732727546565251457744661616136331634611557214354451147227743767162444612743571145243165272462467645346533713236144364173342612626453327627342147665215552145337214547532666213273125614221753775462345645555115527413734133524273427313762613465427732446712442715756355556116762656232142317571275134123744632231755161532473532455151454146352567376541721274442367336734673152111766761211665225167153452767172377116327426332151757324534644774125147211145252457413167563252673377422636363622773372261517167447512774533236525146375455365433413674361623475372232671447373644425764156426156472763136276464227735533416334174472616525515231133717447473123553755731621335451761736176417667355157231475153253465266136724163561614154561216454373117721426676157456744165743474174716251251156125621231145524225736644672171772455512625317743547434133433422571442525466564757733535172335515651235774644461463736636172563361574374671451417123776777165514575325716243325236647637545327717631343351774536412467444376317364431175366641523161745466221361145245164752234433636477432677674527247746151535221171143322323675722726635127533752755412633224116221124526511117375255341762365227321773664775635452117315635576422523211512316153475535422271244326647131362266546212145374411153757163321451425456753424264272517515131215367736724476714445725676512644472414326766667434136627671155415767312327177734356357246365145734765227321225563521544572217122511323464417177542626316621542124267435115236272554415411465677317243763616535714555316555354474442731423216117575246115653324167464627147762131664516273626245374756775713116265646475167125654353252743354373771741567572357715442746375726435522771767326337173377337133715661162277322154264514547563164743142271323542357732517566274561216435561135373366647726536236356121611725454124771763647572337143333535312714514624311361524641174361111422763466221347431115236764116147456126747175731252774614315132176112626726522647147637361714314334537331314617535537556667322755421464525277363735124712745242715754447367326623444746343767361177644574636421676563336636775274151621224157257246471465364173621724145654613627567636456166552653457355147421517514452361237524173231734617162232577735261233744366363154262415676512442565152672537145564126626577733112737227413427217612674463467112376412352725755656137416154164324156325611475173175156153663225742774565635345755574312762324732321727673347146726356565726432575776756324441242111661463327517377314257714737342537517253234265115642634237375442522441164472314777354676636463534112127577727531556256261121474126247321322375554463311524674315141272224565443213454637326667474523146626454774242635551556516271616511547157675267656143615635125717163172162672777674316173515416325725245326526517331141331263734537445177663633657773136355657434571372477674153162475343122274643774235324642142423256572621316726543374751375431657647133375117763224713743617716773726346157165511212516711114613225143761761651713354266367651373211416616614115433262727776136366341332213624477115217117134764527762174576246247152772175674267365615274111744153253574355624654335764575712516145414243135433267675355146237244615442645522737637556374126142534367565436543546514333645562136476464227213661541215662452756625464116147537673123573157246147617322336312271573164471536332432464621552773163472152224757214552355424635155534643764561623262527372776613356143351737321531714653152733372277425641663157151556264461727357233716165372321466416255261215237532541211542722562471227441375462537667755157235574727754715643125774173727653543335223733431632544354555544117542355667222426674322777664274147466155117442342775276255615333413417232217435745465374165631272443557117154541316157666451571755334245453747271217116644735132766322251464424636636534246752152614133272635427314167614672127211624244541312334742743324525546642377163114347635241572254742737166764475132236653734353656242162171531454761667362111317445643763147216625714633255417353741457754115677571365772543471175143141451351341461161355736236753351347574747177136363265172716335372463776177122761311222324357121451667571613112345476732361312441437327512723361131733263224552624666737142411515627246671267353141135753323374157115174233261476613417142413121142551374713763754235331472114137375544336545233575322572773416455131665442265556417567157432261713263146356234775754153137356466125432357214774572312624752522433366524545244724345446233425567126661456112674322166713454233345245272124413145355166335251415331152464744351177725562377351174212542136663113716674134172212633117433323625316177522223444647162234655347262172753377544231256471167724744244542263157573522562771613317135571621326376751131322412153755426631154624612734176241447756632534733326616123522556734133616773565222713624377464366712363213453374415167537517237147376727466736466276352333366374243255214126166117645277525356173337261572571371274134277155656221137327567631162664375213671633747771751755253443763624114276674513712127644272612273625355336616327522617447531752343171734536467553135173765263326637724477355434136647256765427423535115743626233227245755521563735445342623445761775613364334547424351432217715716671236663357322746123434434246236251251417552747661325661325132151315466334731636751531672516635755534477764146755221221471465162635214214521535241473452611531725555316772165623153437732115116664334325423224523176162473124773446271754315771211121461663374652572671232731262474444434163647727271314521756217663345644232334255417761156117776232716522644273635654763764763625716662256716413167677216675256161157215176736356447357347176115214144754651525461427355365266117535222621173642113742617326237222645246345533143457537673517452656572336222437174761157623771265154477223565575213332324624644451212344513364115541614466762437641115656116621415516244153437415525374334227461251776414166221624444771532562677777652377313315763572655134215325374424665227725216573316756577421174553314477222711343251121264413152323153216316553167212332173471742361772543527236267433733213471646747224576513441623116547177364251213774546722174534572511637246477667244746257732512652735163624713637344372366646235441241643234536564233571365372145273366613275255567146375245443272631512742656446543413221665326511663276375332277641164264125677166417356213444321437757452252451223267112455721263372247476634167315427575471426146273354137547577433322263336243273422134122161135467726252277436162215737337353223215744355337336467363227364517127635273735651521667371446117713116546731637123171232415317312633576413615527247454514446377673254115566357375532113651412671125445215153213656171476557637732575327224535134133213161253356636577523277712335756365423742536477551712613757644413264552744625763774375712677342667346553244744454273675264337626554531155652437147447256511573551134352231463366332461433612171224643265235575542117153535754116663123646416252574611155752563453154351232251527117336145413762261637162277342363426232664372622626735155713252615531731477763264756664376713314751754234223432241136675467711526535257661345462475454233225316252116776222772351115532155715632243153165365432533415633334737365772371731614156421374637334452151472514666373246367153126455673153324114645272232137542421222426161673357716222556423765176352361457716727642127661352173131267446536337334556535764274477425571445312445232116725335675651437675436763417721722555444141215375147747412325321666342657171641556553525156622612435733754157224272454263255346413216514112143464732451666532374635475217314762566733124776331723473333375714452245667257313476647362721421156474362427462721726744147312531571121364443536747545362224466645162131664151745121747161441435233457555264377212317336414547373732727646277327562614565153112526717775626547636717576313534715516616477255337241331252534145737627466524261375547666732556361254232114642773651746643122751216523744432741427434331534141161254451224332565437762356663112237775121453624477416735614225447431353311613443374366162414352434562123224552122442541621257313261472124563714251426522737771312461764444744553546517723724154423422277563332725516572173421254435745633257442132172212553771354251643372337552773224572112236564741317644522121343713134451346144214162653765232644266624767665475234313623455632342243742731511223755441625412645763456753133164673436412362466365544532135453144416461536164733526213427254672244222275775571252173445364163311622342153734753364731471116441644771327713312651245425536513667271432422763351476147724666364215357422722347517324436126744476224176477546617543225131134673426737677763545621153676771451223736115715371763217677511655761373275117541757411461431636545565225745713121151237314467353123546442342655674126251617744356744522645244733356373375371147733425572326722361111547211314211652533775766336357434545517347546623132632654423556344735752135731353446634416755671313722236231257523417247756547662364416322457432674622736773772331673635173145437732234245446671772365176413347253466223157657246376225157314442712634343237245274125624566433533227544177124654456352131675251573651271172577345272475675314573252271422612636365637536467746464615147437524462346221161154733533231264245613251173311317114456113132567241666775326547661327321534773636736726547435424556512655366653765556524466322777757156715572271655521377332543431546431121441535421541475741325462426441615677543617761474636315441425576275343624713762445375752125666615452755447645173733541762461243112277754751462156443441627154555716615372557776534171362411157552553224462562554174234564663652746371751337476225542337611317415455452516666511465517712152713651426717575566536411412616221676741542513463346111262454375476362357641317644465575743373144772331336576654333112617247654254421565534413145467751674753472144232676456664332427427215446653417617545525167333414425273761332322377243763735366732551257324547716733322535453366443561622267277172524776445163631326477647567617763463336156343475345443432512611161325342367541376243526777351561533376526612633567231732161241423654636426723261114321531554627275662545556166317151245323714735415171556366211126353175467173545445523442262315252572432351746473245522632274633112456523611667215657254564166477746631333412523412346715334374372365427162354616144135717331172331173213437121144457247314414546566211643666763431555616241636624636612271777444412262217273274657442673173747311647162213432121164453164371443441547661134435454133533164331674662541664441276721264613236437725213372637767651111472236162164615255431447325437617132141257642456232277333116111723321456453522535166122334245356612147724317672477323555313747637245237777667137273462222416513421344255343347377636757331372755713527364722761654562526655153664147216677776174552134632541237555675465576515163416171356412551351137676541367527537676457626153166256234453346412513457442251576434367126464325675153111437421463132244122545235142553727761131443661372547462116474775674177245643663256116431377677577377335711467616721653714774754715647457527521524512273514373764461436522514656226537127557157527663644735512345322244222236211211675377141315231364717133165115264724632174617755357373771412232724537137422527355315525657214316662764656131266711572471321741641131525547757552741212353351654651643527624613111332556124122677175461352144355511657573324524624453577115643415514563735517172656147267755427171451164735746235233161267722142221246742446362215424544557763315441236573443653437173662571242675132172546735477327776366372462315526763666337361372321257531771552352641414553523744273256255433661255237714365672423757715551151266724624354144426634624572577736627321756373735621412153344456242365462331635536661217555122147276745371574256245367244746363213117747711446354172137545464725425423434477425746363456226527273134461147123621666133146732651263743751162366444351665567756765462767267525362121121677764564434542662535263516637736635476231525114467127567363356252732556742653232345214353511547633237143332654211643361752225122436552275474225321661756312724261236357211534466655754775177536741627531625274252761557261355152344337413342661276245373321136362124776333533553576347512715754357657523265654134151741252141476565456174673375113221445643712571246247636267111423566353545134361315371221231373542517274611437577331453576636314574513214351337462541737713544124676127544711741314326422115517217212176676673744416451561433463475726675676163534412551625275655441247126636323763251442263147525742745737573771327473721326412215472276366665121777371543474525375525444243145245166352722474345717655212536442362127421661424226325135222266425731673752235561512336242351122715715314637416571123137266372574464236621663542654167215246346676412215463657145553575413456246321551211577514262642524252116737715236416357617114465114314121331744626543645566345146411233356544145723411366223147732744412357674576247275121425527735315633633222237157662734516413254731423646251256255447221773427123155553462411436273315524757763311267525776143762324166674714356464356257263553124644425235753523267115144533735521364116675261476521244731344726165566457166346212346141166577576354213233177122356164372162243177712236555657775724365674121337421555532327327122657341144171253232114336371322671754152573617243454117741172363457275365647564232543637647227466575334121271624171474373414364243177521642623444475244525253511227263467563236617336111545117333352621667212214346156142764711357541621652274521437433743343567434537515135617653617323551136263655536452134231623554232246265552446373525231433171634252711477733664237164126526773317522671574272616624246722722244336426666226517463177112213521265226716747531571111713344726154561462366453542752763321723741537677136764357446765416422725177166162772327465363125767162772727727336572642471114513632133445541463453741212313664257564121665745313776721162451276255656656543274465477515163213131626624562271651331473221632354447432111231417562723354541666443476671724166755267516254354237516477463174172621672527156473463422461122422674774247365135414755235431612113613421367173744343275142134455666232277221526363573421725464152614245276342217571152145774473573327746774116175113436225556147572416417132732653135151746653734175156761365454766575672657353774473471531415775754654143272462242572555715625334721535246515631771366161544477112365221763467677735634722461372522344353712611613567371437577153271545247447627367236462453457177264671655637777622562126374314322723327114714776365567427152514126441452152552427271242361552263132166314562144255213441627136531667412171474123654131312215163161332452422244423245375537337666712141372637462617341223157145745262233525554756113145343461156776211464243747742356123553671461213462726322431655567136525564626174376332514672557474446126521431167124374764233413746762543716735151671371123465762777255656562477467616632362171477416273153313362353356515636775146766313655174422767642435244641531463167711444642625267673417664134352343321615776636527267367164432757421473114166151777136136612776751121441767564575522546327421425441674774764555337515447313555422412212777455121273746711257112263525615743666116413474532434754335727434214725655336671755544277773755577111777522413627375725636144714644135117452643774667362126621215732544512767476756727341233365251444234324255262155171244562327365177642361117426237343723264324743121356471334256214527145577213526543513756373325676613563615357144535132672324124724463143562417254651147211724335174472762332267747755615117543253713211455763177766457271346673175437674574173113152271335214635511417267617332647756113534311163234354354317574512414777541557214643271732773463735325372461513177526522723272664327151327571727773545747476555321246211261263362647444474363216333164213442161365333763432164716236667223424652415725362577371114112725471777347243673163212333745341212321364377761217421663371744166222251712112132175254674671411432661753164317627435135536661733232427146676667634431213272276632175172162151243617742362613415715436645153377657665123315665567333126744265264352164535224173736442436266715353553327252762475243416335327764432674623133364117462325151756412613415727365676744371115223754256616321351252745516627341637376257211447555663543425451645125643765222211617154527375562313167566372514614632375346126457675754614276566342512435337275165762474123611635715252175134634433673474675777672427647453746312712354743644634217263241546517111347644337614434354577755635647774661424375131576265354141734645444475246743122752617225327724567231644642353651732664325421216323327124243421615113555431543464127121546122323725372254322577373315672414735331761325167347461632322663367213323354774137267253425715244356671236746352367325567461224652632664562427566611377436561265442547317561557431411655434443327414536425673646721175641426741721475456237523515636323566462475646313337212674556422671447716614435167711272646527727774776776353152164313471453455464774764631247466727477546174542252651344561447432412566317164321527654333476443624274125145567752637264634577261612333741526613217347622273132314446163256236667613566177432764431357674621416576265276151447123152252534515465324145762727723441665742523363124632337642734212361175347176321124247243347177436556322323256257675723356276333117642265622441541244471421454666163223174462436664233416553353151314614453535515142512461125323563144522114756473553123134666135453235335624573141452755354351135441264166446654712311255573675552671377244232543674621472173647147271324731214575277457556245351277333125147621441477564512236466423734651643717261131611125774746243731725436555767142254754451415772713567444132247464163542612472514152116533766645444731222462742361613657166742527233355524122261441626534433714636365156651117244337372156356142112527615626633275246544412436737122213175663222135723554637524446567277766227524325764457421175154164153715156412317766621147644454163473111753113271774117275634443613323522742463673223334237575176432114217557736467735547517337263314635773117656761434516642552222615526726125633616467445632754355221123636311773651716413721556311412676457657146347372614152713154555314311325262222323641142467234766417532461614137423441726632431271145414674371353631722725351477625466166617645347343545362443424353271153251774141425165421163531242467625726533665313265464646175234326221713363725455215612612444317223323742354122642434524772523454677214342755242576162661134372263123566174611162611777174644763266634453245245435544564351756416273531264672444322611345533575314711136536114436721154637211753464677554554137131237623744253431111267645362364511574211627272572531526354413264344755146775156433615453124353177514233222146122414151564121522474236442666772132651126541513164416364462351475762775642634353625654212552731421727515611446641526141435522774176267662135732175671154727126547457455651453773474671275217263242126715764363723313543455575232354345134563165436122451332755313746552332537213725364526635556763531154231362674443115171556455747746573631231574215135174153546564535731143334766661472216453242715522737373771661631253117445647522715646355443547754265332145111322227765621316315734651765676741264372775237761573252251742646165614274737736117545673177263711512323126132155721621227257562642264577313717522674737145223316646427561163146436142147562234131773643161316143766262251365117217515714255253461217436675376411462374711537166371243143762745113332635127746667725242631235646362466367375263165621275221114634112641761477736537741462464267661744153334227212277357637355245443157523156267671646632657513257576552176725175262154343324732623677716621321147464122453147343533643525567613652454531246372565741414173764451527372536366556443625425735463655516152721615542744676473142421262111212374762375755725231574623135365515223452151752516756441764522274125452511577167665543642423654256715375466364253147333576263611622342217247665312346727545235326564715121721652226121715521453431132635136235451252362235373656663257753716453511646263723471477725614374353623727755267621171162662233751343556545373466415415573237535652246214655315255717477713166554717742546361715617657662271147552665132171163763642631147265243332245344464752347642657776533267573441176514733626214214177526577734145126533135757471231373264377775627474777615565511643371727111563643354234714675761231332344524712336763554253653166232575251742316114663217575215141227255263414235715335425147653115123652312645556272734541436137753357472676453463676454436443432657737137715455646673257113565764651673775443336217645567747635323523712665123743131516612517441712214472315512215476361642576717332611253744365235774152333143166356513777445252142567613237546474354665621546753143225651536365134422314352267613336213467226132474624464624624357167536561463744346276661253771611775653623221774515473437737231331226417142231713464721135257424546327334657151536142345764137573435461257174356172327136642531275654162712336236572615472666176563272462634651531722573162662451171447632417674767256555645222423467553724173572527415112623256535514726336677163133654147356342113574441342467663351764743667711461245263431537175275671357473431654414641123732652441677646113372753451462764353536627714536176464642617126645241222315117626666253544456464217323655356441437355632411266716752441166144317356133414433434442676725533364321235515262624461562354147466121155645573666434513651475335351467154734313157637235374241176235153647471627613747411225445362317574634737627325265421155624244135617414476537267121146732455251653713444411447341465461535444541152417242315353432211464222516713265112343262545765134557737631267611144563151557453741745731767751175564262357326632727533621637636425334573435327533676151454351333757526771534626216125253777724342315125312165625521236646742376431343173272173555572477463724776124334675274651542121766462751764436737646344522723132172371466143155742777442545261471632712625233647246224312227371454645737652246253114545766727775563276164422431751536335221227711227247721165273346161724747147173221123321142515335526113231237662714347554736561232254676623611271536514316165212336117671253463556341763571421565565465614244532565764254216365734514464712376454344151571437243624363765435272746345315562516211547157612343636573234613164674751166757214411451664465173474312412327342712157137516217666311652774137342641554535466356327474615332465641627414143111644714476241327174377347764475673364645661733733374437337167657176672351554157516252375315363312262431776423474322552314753374523116177731271734222563267521263573322216437642365653262253463742375735672575124671121455714221552255135215126611733771573225414541455176722772716315475127652445573224226417617552432244243477251613345276262346522136454125162144577227147273256552531143542276546561574435164733177223571711564343324171717424723655236327475243516316426361664341264737166612263714667527725452612415315216426737526611523352653114646556332246232222215644142563256725761115741254414362615753372174663714521735316135217125355574264475357353214716641545213763512261111245467162145332763472743173325432217136245117326655253673245671132154772413455344271452115576671116626261535373722161362142633254757666653473774213441666143467264254241421122444112267715263312737544627121374675735137565736322476171773733523436232212124657211121311525277653676727322126147262314575216273552565437732546664135475326157535714567562156645557337153171754466156145243141625651667361476146165771535132234722221151337243253643735432745357771717152116634122424171376143733245342553536141223624663571173431265654121125257552142521531275234111432435354232547731114334766467642726755517665577771535243213167472367741731627731274731342767727267264277463476617212345453646565414244224453435365533477165743525233654332676435221462571276647564162615275142765134313523311457165456266173271615245611353321237716725536256447374276225647764174617572411365316736557334344645435414646715537433221355121525361131636526423356511546452533372415677553414633624772657123363644435573743547122533722135564157423374611366271554265461237635711341622741677765324262475472363427513626127717651317647417645277351653655566465525572542447277235313761447425111561136372212336166465533514416474671437762326136214671353123673464446456622435347146375577171536174731732176733631567241261345244551753352265552632756775131655442441676324113476664675321416153421421443263443341722554615533264236364614251414616163645437666413243734442513214122571245333364521233577142472115365522245465151163553577737241716552777545354374743233237264356433654531356125513746462327766623317662631532424631661723132115336434611175446132121323535147562445227347774777222455647545425771624651657347364621325412354754146533521656626272444214433137536421763262243773241651315637715666675324641151575664736622724472473345622146326776513365467137361525411524457461432651437353472574435411265234377566632676147416162723241775425515477767573655573176412473355125564563453142521222762433661314153631276622775231337564153274631215336327637343576446163425217427164626772745316264713355776742141543444647462412713432232135233327754341421652254426642255771342441165446426743326313627321554122232765747554215155331373362774321427135122444241715245613723346571423126472126337144525236672453424135614217142146542276256333615212212734642267243463421353743675737333127235263633214233536237144776317444264541161514171113237537372436254642641732432534146123262325343127314417762256774617135477135537462243242556356147154513635312351475711377335253251643137157225365177237253171337513127726751576417533661261333273616511515576546423711731273634316277341732675547141155314677432253321323413367475623344144771336557532114442313174341746555672451533144471743242716123711667146133536317415733335241541637745561245775156663225742136113277766773414332227442246542463774713674255671133277533571656366666346775466671131174455553411371244335773554666176455323674124167613372667367271156711262514222212543743111227245145365445271333616323534646673411346115745211413434711475364736164176572413563127611667417223223533324666344666647645717722334627263552577376254251761154326712131326667636645264262417731732234377167252135765314444451643777521447465612571242717554642341423477446336517533143712415743715466432256237113417112263157551316243472315226656561126334412543467131251613462467463336716253522625644135565733173446236254437713616233671515724467273222675576251113374554266724155567761447366467731316146731456235123161227157253424337124262114725344555574432765411533162464766532311361634242714157475734344236571526723356656365236743477224163156757225773733666573133165465173671623533137336315523121677376577662245542514545327732713742612571125513674457223215515113465656777642242511632163744664125514323471624175272421115563216161522773165615425576771657217227263462617572234123723112132245264433734173227522135555757315735411773374625771225673372443341171261632323224335126567733566516526612734466222634622526766636621413717465277473174347246752733214416546467341747515543447754464236123752716714156542277115644367272577171771417264575526274533652132132243423543224166716363652164472725266633264674565534732142612714633726345134414267772217471612374677535237772637527141211312542321374737131423476423654774261412653265272443114667244535353325672232163236637225333627445716417734232564347411235626563365246341665734571642775467437775411236434231621776367146173162744271144617771112142155775315672334432732122243451565466336117443117213524752226416344176717164475427662457613553377117121721577242247476467645215116222323374437654724574667512332255371747324372774464753623246463224222354673114643431642357226631464611222633326663656275236124352654165361523571766126532554172476116735716461667562456723434665615572313352432422777562245645325316556115352633723763127714467317255267634717412112334325763623642451444244226426662333223415112367444152674447345471114354166435311117267744672551662231141613343545475472272357567123227217644331172743153321467471623663542374524612337553733674755353742163634436651747233524232767453513777544422625542124446646715365775661334516472624472475367726517216442134614175644713633545527552416732323743636441144337273277432424661274451426422265216545411644432451127262745264715562342337774331544473777536237776243416415732217667261353166257114365226733264244273337756565515354776773322747461724111661551317726717342555435637232331576731622524652737613475521653743747732324773377272543434523237523436662462722753337574255561654227216465657154577551215765153575527475363212753142152751566156722662427747345642766265343157143331573577645423632657375722746313554144221772265542473215473443711335741757366234415645516153553716514521651565137534424343511272164536714174616673244777362572127474366715366366623333352542745124444355115153635377746233437132517235757556152633627542115221473537336314123415117764214735216651514355171453354363615311241727112647366435753313714436552665666765723767565136326773551157736634447636714421462362657764752754512426416162221457644733441537371453213222444412415272546611752127452163331712152771365167354567524633377477526126255763121577463156525456547342371716317561446755736665451516135146771156324331124124572753667573374422445762175576366454744715354125363262313762621567375776435247116326646146437526557366221756156121775622555426475333156463272114213775243716667524742611132352773474237532421473711262316443753414736712255325126156311164463123426437765517323331162177647151534311416261323646754164252277443275246764727313212732356575543253766676371231653155314264157376714774624657156363214544142212714573376154262137542226744254566257526525254466533764551117667516677643471147623223662172272253153231661665661222522623153371615221411561471412774367614234325757211261437412621246147653276114245475537667752276322371731553367126611667776225247477664741477324374574674435353333313621157222542122572255713435176377376411666221572626527763573522662624623644715176162761547731326472265561252763612121165271322372622377435635337442661371543774166326462365711765255316353763463335264414126325253675554152522156565347652525333524372117271576356113772254117473732234163433371273613131531577114346156421752112372675661752163526524366563613734325123331546111654323363653367633345677155166254725445642371353621311437346165667535232452627322464541664413262254171357542674152645624264574732431566453634241425326735536122376454223675332415136134676417757525346547364644356362753635722775522476436113552421636311113474265536572514753335431252473154412465254526234466322351621127561121555331144523466713114337377512551373521264442344665427567431117147622132477645334165253226327345337633174777533143657312244377233227436136113426115157314633757472445457372554554363323727424374647325455543117756211512555226513645523316527626547627176537511716552722665666544527531524665766644245335724771352446417767575373716652364155132367337227211747352136364764516744667724144252276311347157531445235247553377427261436443326562316723612341474434567435766656177713314542671454134767466454374375647423514752454753712662211151555426777574632447742341473471666331231221775132336462532171267222336567651474527476652262411443677667744125571441447655117254655653641362242426553447363421216173467536142323162547425177112631367452357612122476441357462566535672731722344474342577637176653433745151214754411661644654642126424323344742414573667355643254126652226613763534122741634263715664775767275641254561665314674462173661722527745324513344624454663363465546443316756372775543142461747524572732737561177755371431644717567762175265276364714261365767746745244773623643355776134634647443362171472151425226232536224461127231311627662624431724756314411433663766664246622715412333175157437136626332224536277434134541514627512346651444264236633321473254346413362535354717164435514123657537777152771322222664455151436422412437647761123421767674741623164321314374427152361252655141466127342172545563712237325233261113257457725513174221243776326531765724726516216541756366231274412315617471311274463323156277747261753734774135665226544474462412611315614436215641636415145327511743433116121725711642556312473466733343366452363451635561127376313631366343512141143733135156116372332177541156172575711626527351624233321325235475216467243372374727242214137571441277334755275577734154567541574735177474326115171526275351542336136116641563364345275724211345362114172357577244763656377435273415124261342266775354214351777452155613146376166625457114125172311712316246266761436331142652214474536554472271345317325624755526371357621141215636772555264656576724117115246743732327137424274177617612326332526751163126457277157152474237513317427233767111136254314137111343424337541643756673335747252227651424417465653453176514622164143274754714612261567551355553256417274516266415574663117555714745775566475456246734256125536234743621472231165151575421274131535127357573721527617451572325467213231222514757647516777221767127444555746435412473472335345467423112516452233364745361135613556266447315637277514433557331625445311353231357342716374421513457121366672637764365144676651326232357341435443263676456354476432567514561225655254113152433365544626215442226653465163346675552334265732155752412121554445133466125621246653714236375143666136141633747645145677641544743765673656343347164565651726523132711217744461576254753165131344435646554223263212777336132276553337325736364724225352114325212555417113653455261127241662423661432454651316127332365365626275341675272434347214532277662513456436366633377327764213312563137674533426756711117431262341744134517262157767772656165231335757522451767656755253153575742456522767256145753617316566452727612217226144541241263153731323414636752556143257476625227352724571366635452171152153574622724565633527366416424621217663276756442114233215167543563653212211764116622343752626116515745357346666562716314416327171574423467357235436361631673573754435765122755611641633723413672355244647754546633626322652343567374772667454447732775162317567621317517564221234523233364453335457332221744777442155424161535463336561755455322647473123375735362141356215661144215626145747677123251263761716541222147644644646374523122134177122437423127414355727322555265311544576221272526412555743562413567251164373565537776512252523173721237661236123124764373455755361424313436341752451212447245775746516751726713262372447564374712762556151762471537115165636246434624632737361354465374761624566252755141261236675536346337717645132547766113712555423255255332745232241142443732674131656573717524657774232625175427676456147713412511344427231772763747744656327477523175221221537133121625551527573224045161254161513666353526576211535445652471451131775351241253345121617147224331531266333441675317477415336773246376231574655426555527353363617531364434122674443325353612272365314157471777434677335626147476241657637736763552425221236167723771663666576154425247363173714415514274164771434351317621231563444255674214347766726722234324761511272612355445241252476231641712231332477333241266536462547651715137311443751111764632227275315112253217516636127423755175736547766317472264267241546357144622721553533652371226412537433226421667142547767213163335212534466555472746656776315542373646225173652267756665517463622327143754232461475363255114517141264553177345414332756471243256475253472327277624721171126445425232571144765646452552674552223757227444232626463732333611244731664537342535313717332644667353443736163436177512535712417556113427225652572643116721272246161523454343432726231123243567516551136654221423346452715264235723246134546627255724335754517323637552246132257162415324665716313262475421645554125656335737762472553214411255672576322235343574661173553762762133675222655336124345732432621143424245444227723566362526711135517124661213225574333615526632472524223344667446212575456352523775426154643526557137566524117417361367653326374377267143553513541767765517337761117744221413757166166536573661664677421572761116736621467767247547612152362373375256436545553547641146476546216625677544332617774717751745555551252336761361251663571764553437664717627145364552143232727253141643744742661245542166257274522726313116267414271476326245727222242444473534163224366113525646753331717354763415134735326113722354346414112442276663524346741265733513314452771667133676664724527211533211477577512113761474746756233443473462434655154323731636643226557227363151567321624627674227274217266475654676671372473215126641666546234615416656116446351155234211144525475362274737656773515237333726466336645242331231413346273615665627475331555571743276237437127771732465643433637251164146251241455524422765441376576113131247475167621721566535574426131356316125117213362355736517424652413326136251511735541423455143475636651511751765443514142767336133722263277467334534242542475411712132551637563235663246376146247363432625574221117424364362175245622725575237231374742462673537413624315727154125511777361633775257611314333645327537455652242767151213757343116151137714137246374526213147452371314316612747616451373626166215446111673267377336357751767511466466466676645661627525734176144174152643627326512474376627544345644241423366237561111173156612576113264522545534545665164655225236564337514351144533442237752515553377357126134626173227225375254673522735737333233555677557465744447634421543275464254222261766522526177255465244672314543633676162772727667313712343727313773513612123171734444617212344633325525641451665222532663717374736411315453633445521116411457764724266644326554447451423471516212722725351236775752115464545566172363121344445142365123611467316535156213756565123546227477427314722544253131632227152211144274666154562715172425332654761521277276566166676741615774412553674615573372361276457267637275564255645266316536575533516546216645431361332214165647321164126112766234267327147534555775437231541354773645751644323213755772155223712376764257711334522422637551752372211626537152545617272157365616136222114223576256177415543333246772212724264122142173567134447456671163523235432533121233571545535535227433375462175327667754437314135111442327521252242237722653466276354515657714231465467666326137275566354346772147727175727544654442267734524651742753555542231666226211763462576174452346672762523345445113364214663217276316657335112633362613371512633673452526336522751341572763346627276461225176314341532731365351371147373713643311573766135663723137277461766526516176171571173526536515724566546356356447556131775665456126673641576443431334445223772774515762142727254327163516316416266165372663621363362754625476315224754344536665215574175734566321726544136236666437156753332364376354677513371344362357523143513557231321567624462621672315667354361422472475134436537751557675345377636216633375351256335425152571475416421647576633657321736117367731673171241723471343546551517524715414421534265322715764136217617462223316136752262157565415377455661222235733143451437172742116775237453255573747124244451762671415352761632147252676344533632163631246423737756257123661163372775221764457565374226775114355654466675243223762425214736554242612412237652257412133745514232424675737724243274431126676324565266662764577131675677677623211131736125576572753453432525746252244166636626115454721262757715321747623525435364666675214215631134127411365114472363224736432547362353571373743312633427373561627744334565162424617352413772154252724474214455747715346656155512615454165523347237775672571362663341747533156774174573644762362515523665273114414753457767417577463752662263644352711716151147175412661211575243534636445441452322511632112735311774741424563626277473625112753152546611367763513543125646133332517571637737317564216773775432514573657653675554275175565421613262657745425113644364733566751416574612455265553312624314323454344736273623517741132674435663327724554236421325542742475364527622276613655727475612152671363455665557245147271771227371546113673462476223234224445375442264753422673414141564321167725354652324413165471556272277313132531663444742521777627131172515172171444752333522414427441631637137164571724276447112267262444546556257442762746761276134262755744771635145443341467374734321135524721625372537775136432764271752553536475561662465222537357345633316147736114364727163121265752372326222134572263112335445252413635567764543663274547375742314667356464142431761445466274434114163632346611711154624644216621326513756651152267663246677563615677217274312431511146735123415264225134655122213411224736376716542264142655116557671275234236213341646244766633614744567213125341445463771653345763442463174542715645155253671476152211431224316212727444744125722254437641273734336414112633326555317264224637263224646131464541262322633436455161556462541135355576673346224733111161235367116656646274116412744242376224336223211131433415521346415437164616327434411162633161742575515316141215556774161567674245137551574714473472112361467275771666745536277557271337477536227326133676526515624751727674625751763443336316171577513672275112311666311142743232273574135646167365111224321644174555361756765713624645416574224772521737526227523317142122543243426521673436527741155256434157423214464736617725743651635243215546226612613775511777253667221776727722172562333532467147761272764666275465622266434532441661151567577335231356232676753241257245226342275232255445453717125262713741262714331176544235251667271666114215631741624441256356375365176511414427513347475324144713623675746517671126267732347151443734531573652665715617754762126522115265653243734415424132346312432362756464666531313626263715267526734664363237361763622124742723627416236552511671362415771373775756671457721221247422331562173667466634627742276152374544755234312216672676115134364151546373734356155344266171431145123153456276723557367177243451173511266117621166216325252627737311537431422541573326244425422363535411554247217531455727552711275755243556561555622423512114343737453141721166651134524735361655633346451561347452735427255443137464332571645524126571527453166136471642746621223113365334643545316514121172125545175731315672644425136136242126636442664453551313725627655757644417666345632654155751146645732314314242134421747644651645432752522347443724112166565561445534715331216511322532412171344717321155316267323677241451575317333547312241313573531676767621755223363576747227663764673574762425653344337353342642431631327472371524357315553757214366511561727213631671455664724462334423536546132112357266561237553336771555472573123741726741227453444532472652255462664471614651225772242436765533613462442741172763227353351135437665733337456655166125354556332221134567434423232244722371323555562331374147363617411641613361247464423247277461423617711346573533116532641626172464465523372755266153341443453612262134314522452457774151415177437534375766223562563277252152225212631336362632217431555664217637124257225423533616754654365251362711622554741431327125454212341642133412127253417311166517153147454125231345677642751632647365424736651626517664762145443562345741736231771761566714651131264111174121132341527311166212433143253665617144117251361212466663212611312425237165314536774762324574635217123142572156656345617377774424526134214521526364245174215566232255576151223251576317141627533657537356561227477352455546523121263331117333373237366232114426645262314457676333271125347113766516151525414431667172745646245226134175657433523432625333256771613235134276551723316152471271363726531241726717442367621747277471354571663575642111172166227166325665755435112333453663524432465264163636457614251651122676245664363667535526165242265545452242611317252125733561727564332557742162126432236615116775522717124223546473626526221231774264215641314155541323355477566126631514655462146272626376346367354326713541766725171131776645762434236514712775516623114717477653317257562161642544746437511575235154244344521175513557537677413332155621264415175543425426457123231712242614333271452315263275531633247332164315342674333763537633357323522142617117544132616562736167332556647647734341622572614613646714711714127564745124226176363275667661412577164666422221162521277276446515624414356512727172132253726711563324653533135245457665277271266612317773376124662652461517536521751751472414173417567631725567575713154336747377355342444213174774412746742773131765332653363673435742536146352541215364722422155542136732757135355125427761277764177672272214132655436326545554153253414625242526352314151735344173543136663154724245543746514114472176766373174431216612654265745255755525236611721521176436233751566341164755141232432475337526714641756565372314561721555647432226224263732354633145323726762315137567752477773321153445254575321216315456457172126555214765427657511456233234456444175474147725115153676331117654353232657563264162463227421426164577774753312111241563525671526267271775235446654643226115257217326316133776775453775516435566411342256557366224424176151626671626743732757573335155664166146122636343631721245742641341245161365322516611746434627245372771127562133625721564166214133343446334651333736724443364171424752725573636223124651327736717516721661364315527317343335347337332431456217762214157314242175241474553564563175423554311532356426214453133444325574235317645427337776313666331172535367255126162252224414446556733663631434352571114464122771773364566733471542754522334434535274653547776264572144371753337746435173714143414631351355722136112723235633214661136374277323224426742635266646662512322344567242157332161156644226461716475332641515723131135651436627461334621671374716112677652635773121522613132544446726624217711424475765312665232125126551441413163563413661525137533477554626235623166565747543636176153645571363612561474341734534442737511637232417651314577253621234226312435517674626217225777723545375632323272755616551351464737461354517247546231215242477774154371762677643476511354615516233564763262257536412556437112144534222451666643425673456461675457763332521377752543727756756513613345417661556643344243247122524151733632771715332166413535771417613375615716542757722364274246236476251152636743134364674341165134752161244761463233624457676511217515642257327742444722112752274266143372433421776371672711332157763323555231422361452763135233241673252115357416463653275712445625353464312252237536145557614516333573335452766751756533535175142432754533132736134117554364277343651424636132656466435764414552136261755671256735671417161635742772167666776571372432457544452651761746657427566722161254622777277463457333412315635652443753713643317443714345132536114372773366516554255713615761771347641176751747574376557466467633716126734241127667445575553446741755652365311467454325773451444451137355226456433156657215343637142771623567434141746751615171214425671161234531744533714435546327271411433717773567252536313155215446473673614272211563324722452317347541232752273342614477654216143237252556667335416257145676573135754231231363735663616475457752561224451577114772272232117176466571255227247531157314624524564344472314242235343274766441221565334466214436273613323161313372225774636313342624355674635376631422216757314477235624411341233476511526557231143546411544571231121373252374311716557525314341563722236557211472356331263737776261424473314564612556765367451377453113445113415772572247316447414725262164546235476623654511452265725225761514364347544225374612413246655127466214261613542344576223727643611633252243637153634547752145336513742276663717264741756254116161374634514774733336533562163172241725476766472645521276376725142343174772643146631751621514421664264766353557452541642133565654474272731416355532536153331236511221533675632316672611143357347353546136513155646236234651616755221134776324111633566255347234655771572334145132527535352216565465434771376722373365214534323253637427551463614152713356721345641714761131423137321755661634611672411514566172234323221273755157317461157676113535256476674613544513611677522215623563554355532372673764757267763352631456242471751357165714114451753112737176264333333233554132226637223143762524161374762514747623746363561143551522227561275277475443632136414666211261322731111656351564435134746265426533645143761137413325631641472466753467765272143475277475547175774454352272477741571741525446346674242561733131111376352227143144452747254556571747665226135331176373427776556563643464367734234174436426315274462641471414741457114756711431217474535617313457562167777154264334721511533277357467466573313656461531525246164233112762313711756733216122642276676716241651147132554357555714564565522517713117475123772672267747522112723425455266677766116213265376571143671411372271213124434375245261752714234563673226662323751616673713346116367721517153367347341531174175745636721135373241364331552363166663654761511244363737215336644544222731712245575272213756544327633736237343233743364661435176263476213247664367527275351162172351312536626245237157715124345412543126111636451477371224661531616321231325152223364325173156357172125357766321646317112437355355677425433266264224236511456214765157514233263515341222367111611325375732351532365511146151243315136741277243413364367376422653556354573621252427747777652156435463743424453515512623671727762541236412246631411763464665554647164145272255236446674273142447467263712331745773674443647215274113424747255166456713317322141463646444463271135745366221336576172645215436533336254717253232733237142624471634643354372616211535552645424426273542371553414757435632374156117563614172333121274661237636436525776416652355365164277162146127621663567116545464774124321243335515155756644412121634466613256136645454357712334536175167475271275743377412536272223121152613133737277337624455766311517611225511647514676354764625767757173565542633224262567251757665775464152434167415554572717615525353772245645775454145335236171536246462147536315632455212111265112147365242212175333264374424236444473137247561314633252735551415146461476465516212536131527651465234464243125635121725277265345167636362665367173314745655511221275233533262372533346745516632163516251561722365522435117114312563511761172321113256167777437717371571577742143571417311464556426675645652277456511552627366137121576373612561432426612637453555535376767335312644644726775453136766666522442527113676676334557456434417543137157547421464142127773634512115734712754123527723722375767361264665163514765161464735633663112471311553162772157643337716317566717266474675713171543445377266151167637336221442516252623741667175762735751235316225426124213122722315123135777722464416127441634275777324233225375145761135331641441574126451322736634731463551625166472437662764556343522716267776655712162271765723375415225326213124324543543435764524347172622344767544231464162544372212474747447414747276515763413644175611655616322232214113464742462153242733665222343765324221371675332436125636114473344757116377232415311764714465712521423464471741661761562137742313467125464461657647126243336577245151521376454462465322666546753661652723761547177641126613512161166477667153763757253254535643752631721635135442361777342137535711123376172756324314352555641333454613624112644475732221774731377777452164457721533146146653112713651167535521513211125713224415112222375241331761764675226577417743274637154163363654476467437435144447556364723411757526662655352137224153555126225317367654313637541357534457311742161745577152147264161626546754262271141757353272727112177175415744742157716437642653154163635332746245255221115313611331614547654672427232554214676141122517775355437553121441721624747221211746421476777135336522235341471466441527421544277153315133273443317361434571221146576423143377721667133414526543533574712342443633636271653541214455256323661353537567655241352131765621317445132777766523661175173776237173675116116151357551261572314224614315235144212357567746176521271643476313133357321225745616647134313244646175242464177552556453223556234155711157556535674652164442466774565612651644535233433276336245615517715171565377654264231164756531531352537271356776521537236112155323566527746657422615731743161713272253341136711261674171317572141366624137631141241747111162375535521323225343376374415424755647413536162715436375146721526372254537446556423354261163344165413765743632673231567716242641522723626221572716274115732327472674167121161473214634447773734134644546676736451755531522236541325672671574442547322515637424647347527777344632555147534616473436422512555332626524511211752326267451737473754737311322431762522657144723211774735171444443735313311614145246753572737314671431763745462227715464551622412456654367727351361721516767231475254513615643661774754665671757616471662455745145654432133347222361356414327143621365577124167316333315657673466524374416124756521243721717466337757522423232723246552564622555554535671333636163151346122371156542343466163762377543355615623676132562417117351325663454255555451741172223141273763231766443212426427551165226515732231124436617643537547451442165371412267261145521574453612727667142361371426261242726377513563576734174245775121232162143412773577277734423225357551174437736375235122674227155233252725611541455377467112121655172474266352531252227232555732452722542371643761224341416222451663137466464753214637762514153331655615663267527374362653372635113674353512654624244533273465276567325676164655313755415644574443415275724572342541412367646414764573374755212466547667764534143413754552364533417416416761674255453131467753325367342141221736675221377375741417434757762264155561632751457437473272261317115774777166443326276626136267272762472512355717547543555464574714353434662463556643121751322132457733422652246223645733777112267363735333451474751445745656215244541264632172471544352747767614371517114323564541365673513664324466517142422117147136321776432711651666142453377274245236273313471576522651227246773636447617151247111467421435436611566547565512622662643727552444632577555337522121216627564242534714672536411524745636626433616217717263145337634427313165547477472321745472475141261411364235375541735614755561627171127553432216223173661367441442654533275426357761451576552716214561111663421527566735514714736575615774356531526313274515321162752563121674165727357637463611777345567561276172127112262454643562457526546565667512131216563252336472366244624724227451231667722774132155541154666624741127732342655162737254644435233346242476664472766734312165677233152331226567766562322432211244643716121117775763125462512647333745557761671567262131273566433747616724775263113317546215252555557441242657362623511421437516464437664161211314765736272263223576666364516547346743652211424114164632474261226122311632114615225717247677723534776162262754416377325426411663474372532141422441574436217316767331613137162246427154774146744671672314414541412337641444451732231461133527662137134272736142265434647222317723636367453371637463261323553646322351236665761737366337675361124253216216775712247773763613125443775616527227434444743434745572213715656512656224732215672563113313112772357413777327721267571733444663211261662725126246225321666364676134323536231255777422632657247253676352314322121274461556513627321267417153375516445523375677733141723142511372146621352132144342554267442561775667144341554111466715141337321221134651726447616421236461434556551157362226311362315354427164143152217332353313543372743762367765226152471142327757244532177117721546117234365272116573714725111374316322651417722712374715636667422353652622725225555156641631772136514616112544212121725271261414456241152336661163274625735715553577514141737247457242747557436716761574511524662517114762735735635715465447236517421211423227114615454231254726771233275631741433111623752445356461721615671144455546135372737517712272673621466143167626123115115326626122157165463365361771413256137751156274744473341332514731545642661512275656272336616412676353543713144633463736526557647514252554251745273566357326424414243427135123543232151225156531254536532445633355554765474457474256132477273521317677556225176633636217237523743644512544263256453464417462655353624777536244723461143111377235411231175121634174327521761774556562712424511221643725725126613573774246737151246632344266757336735361255373526473547266774137643513732562744715363322131435531211524673117672331762164241733754237536237227364452763511513222735621643666724361557722214525712414671257743471667173214555467631317536444725213212644222777153125261245536257572175417626735257166113766614675214656641633562471412722773373213711676663451521673264355726357741141741215371467716455267715712226324344174243145713632643354666521266576324742454736114441141124232123744457616221233571714215557751256723115636743333325646424531557653374767764327653457311754143232451161167632517264115323137443621141167253445353165626133271453677727734211156365247263472451151152746311416354171127451645144251546416461316136231217373117626773645623755651515635665215361262565247646444414311777627556575644577565332114635745646615575372653722476777454242645626415246433736326126154662765641422356221624565416325714213661144271113316165735767561311711125545667237735642347227357542643411271223237114351412357433517162322334761672437461725667342352523746545545171157252751715244325623567355255272227516526343716677157224652472624775657623324114233146543712375615413365611331744442236536767641422741443616722557613466474552724222376667662231221576356734226642171771757272225364323135551555654765173113344113636153532716475214613315552253637645132332273113515235714232535513227352613134416121713337522474726764345552112115276542424764365163511466516121542527162661226735427565457451446727626175227733516554432467635446521341254267657436162341334167733176225753737773712246472172216526442141535444756363324444754535573126173541345114537174471264134346445733761612366466756274527364121724433534773543437361753673315421265541241524161236333632164737156632757733543556522774322726144627226232476155736237673276112664526533613531323136226546357537322366657233364711734611656623754214773727256747154544531425723545244646653461566143636672574751514361257626675612264164245652624453561644553433642462115572115442131226673246533161213173313161373536416132724334566715447657621364345161454221661571235333225346763611756472452442576331763511312663661647116363542475674355516665365462513531226556246573354354224773154447551427355245674242754354762336314567516322213647135663352626556324316142473156172671237531316332172627756275115274431473544461667253252112522452125166552327311435654775157425627446214546577643432142767722523677532275755142475622117123265645627747655451722513725136565343145751735413515766371174743671175513677342722422451461275456656346735764175557615755174753542575311321632316476374725523176357221342425666536477212764275242254271554343217166176316626442661322471734356466377337232166446511757763527567317344366614652434541651123211242376646436214576354541554774132363356132764354372765743344167226454467775334765164767335644756535374263136435154442575371777753413231435317124572751621721136417723277631733413512713326423363375714617774255546651372255475146547232233657344342572726577475241375437726652426766172151237765114656651556112711621747163261671366354542554745131345354672763232271645122437244377145425734246565643365637754314417363165513363157516412377122674723231173541767137771341354543135461672145353256267413651235551326417514442671627661146261746162142234661257352231445264452472515731527545673736272731577657722635777744634237151364534511513777476415767514632771343135216576636516225277762253221524245234111663514235223542165237564227722217552276621365614321376737122353427651552772474245275112215532714761245536117423243154275647231647175641642674227525255741165253162755752232765757674372511427745244752376475212273724214347243167566626476336657152664227245554623417366223271225475737254632323164124155476427261775722317652171714422252715135134626261257477571342557757454371774733151122211244422421577336326722236451573616467733713635571562726774153445314377761375765735331341655212744413413632341255711735233745352724254641275333724231644352117211747424655371612525623447642673166142627561561632523161256436136152444312461563746565523466473311545216546524322217751341277427615445413265521141147363314367457233764314176172315235665325373315625446757577132564254117636261252626634514617776534155152771716372154545336227172611535645755776214762525456566751224621435334255755237615664663776461543266714622335437215175375254327556547231465247252173623451172166134256416253371621113457451776773321363317541524744321476576467732261511666651445716157136115711137212467266334224242266767662716726275335177523337656555643135641667423242333656655442237533237216367615137326314257563456712734553634351312252777646274214576265452216247476765751512334714734411722657726524312574636331723375571765767753414755441474417147631736536633274672456517361276262265242134554155423414333552472627454561336155627257624261542625762557574532224243244574761264654221312764376724252732441466154417642737561564111215542531446217173416365434256317765237215136267421357234641562571335466212127762227234537617176133571532733151274317674764664611162244351757176631621217715577525143517615635531624736747617572327762654541213415712676671641273273461235251621533614613766216546775211747732215416766256261234255767263277511261267224142266573473332742633752271123627235126556712377572177327441723637542411322541621731154227331735672153225462544657176422356541342551172742227725736667235712145324345533766652554353367162376247775551257245323761417437677424523272436344176415657633512654225657712646467341136122513767423472323521451514521544714414567127242633111253646732333775444365323416127334632425551251735353224576417353135461257416471247551331162236653522737611442465452615735252247521715167143313752343245764217271463371225656265423157746361421567111343231157723242136156222377412646172271364127243241273534516163773233274775741376416163445343754361721322136265337336713451145665777123436265731755657134351141541662226135621736524447274272465443754671553566531214225654724677376176154543417537353752565255375115112566737774731337675434254764476755667667264427527364771317747655343421561142715143433663551556312765135151461115461747326573435734647365333544312427351231675467265223757243765236274316477347456171576423133566376141111145774714174137342721561564516512323135534141715376365534326176432144526233433154732576327137174312675637364673475565531653764416715417447247471267142137536271212754237153723143146453445366571776321337741466663641114745615616641174717246746322433237622414271311713727633666123455451722343473675267163551554133617671235475164514533121276772262262375156674256642253373213522741372117161626422547271631114411547752157143114371421574725356344443541665265726177341742671435272455445363265764123126376542373532316135353253165471257225554137277274641376775545562525272776725735422651552236116357116427321215661246424657451317432463415626414532474151136261343411154547521374433752255213337712216564435554331746264616243345466445721617453547466267113451226754465656613367347265266644655643223117613253327345164751455243655277262526751675525223251175463173232374313574355176435436214635241472133474742642615361272674511651174435141346527365417616367356465143741174656674556637475544574327615736523324111166725611352724116512464137557755751443611113514475654367344252141326571611253633311147775522136257231222431714355473412165477436551663146331757426167415255321166365661624623675674545354215315253633115517116677363211642574212614127772613673621353537627331432254345435734317446711714737213337163537344174742553754351572736745431355764463757365633173276774637775574354553572415116446455131741517355632123465165743677413421511637523145473113716216347612762265137545214536227157675777167475322375726512424442632332252223144315277167323761253516643266474224645655776376324776572312262574361266656776532332121443662752422547344345331455676144543732313461435252124153754762355742162541574431533352767456523311537774754411674232527555556111263363671453432166437426265275424743433677244563337471327256622335771352316764321351523532345661461627747557311447414151324113262343331525457624765314447251577145572554412413113644217336415412162347611151673356617743514456674722124143322557542545235774563376477724257445312677313272662212152154672765436715646267555616724342643731564474261171147747543377565177357727535655173177244514553273331322216714614213237612377726253214536536237641264366436322356517374141753651761527463215454424553151147444633725164316154425263562627573257652367121746327237526671667216375454557663625652523524714746766534222271563357453135637243132726347651731276354767554417724115153142145275142532617257161673371616722552365541723737155336567761564741277764175472577423313212462176326226645515666731272633163214736751644436325131267442142563175674761533356171226174312661171771411664333132344354725274325526671656371626142611224145561352332331377462371562773316166134467613634612132127421743753665223315772363517133164262467656511252142411772174312132311266251475613244345464126521662722747111671326644412224777265376613614674125623365577117126666557147421234736265746766672662547453436643235775672567561646234171543421735555334574654752674323377753156644467251637324425257621636235231561616772645427135236211245651141222233427152175611542655454667772235667565776651144332217575566111667757566465462135346336225746225124773732512724552416231734656571111675755261737271234231636516736117615533547457674311373265261171753536123111161623663322737757245521444144253356536167274371326277453767416733717526655376341352317717167663363456233163136175325427425424663332145564161117552424477141641373417267675176754227767614177127572521471277216731737631347463432713754215226732136132375234676277474215731644266713332164545454434266752156465375622747415164631446244552411251154251312232634772525272444563667425457764157657742673247616216347726114433512415774211313144611722524361731213713445566114514675261636733265455733623534215716436431335743521425676263615376352125271165337412173132413364221433263363215267516132313633354521146475627556521443664361715551564445226315167233433211273151137575427342151175451762121437552642314441656667344534656113761266526164342142715552256161567715651677235542743542757667756741637127252726124577776766663577572674622125146417421416276455435636311522225266347312321166733426367331463312347467623142735577326262432762137116171315521467312331574674221141141321172132173436417176622635152175274511632365147256252435232543362154257577223142166223146433652261725665527244453324622665144472565353746162437671464652561131411236442442616716246543113226361414262635117777615571122445314445114266771772764444556123654322232541542651757414112714312734157445623717214247667252712116634777462763113541536654746166663353331637132526511467255164163311655147754237211357475115514155334731156513624763723435326723646253367342743431723376131722427436675743136471674245152164435562453356663433624451167316761541725254243527222651776731527714717645462145156353454467433443755153612217626454112547414761375273575625671445167354326714753664333734634772612547311172476176422726321112363557471677752761624237161363432727176156365473565317226356633125734653673333622443565423426732435233613157431516255737373376442275667114147237746642612242127347146146564477574471763216521445562367245726617466654276157424264434461253155713711522347372121474732151576271561654771731234413217536616536676773413527643225645621512475257257627173166421225771263532467316471411721672724635164337477532471543736726232715523257327313443437123625557663535253126246514151153556325423667376617643615334443627642374772632523517271634471663751212571675141522431634213363657172243443156232376453273443741741266422647672123171311666262366416262567466772272344432257417452217557535335456713346473535612743721765521465376623473167547134555743536576435227677116162216554441114664521353344354264574561226327216572726363722352733412635477511371674443136473517751335715767231311755472231612727243655545561522536467623114327335613567347322576445526131662725527117143114465242134147227522373315232552322157352155111254313645471555111435352561371517242655326314215361125474444616724121742513345113114645331112675326514766214614235722546551157522563352372674226137316253362453542717337521254267237756475634317522555637165513445454214116431524762466474254522466127431315566256335215622414544445411542437245111632424774351626517665137255166152335724353555325424127255655572736637375542415247753777566245651444574362422256264654744571367433173521674131167455253523762645366641742354573441375751357544462346443572351625774663737713443671644115253245746534741631316767743555314637524366172276437326334713543236272542551117743766722322576222753337415535623232725147442365562136171653555261372231364433212526346333611531562724754537151424267723414667747232557323447573231243514213316223411433776157364511152612242255535573272127256647656251574113667547757271216174171716175516175143731767272223532734554424444242545755176327573775463147514242417324725557447141711224375621763625426115162265356517131723232534377321136246114155272374527773532554577435446155565125417517763331712664521346135537412363371525727125662615631514555623263444157262147243136171656342677244751776174231443353541375465511176317317743727365733764643514636766611625211256152551146411275764566752574533541626123175215715574562752446613615541147661472351631236462353545331445434674722225341111346623457524267657454677443544611673242215543532511262245432222372726251625372563613736412735265571515511452637113425365572311161333224252534646121657526661777723355764151535346434476365465461126616223317143116567535374233345247262622547261757122652415742576514767245264462315664145731312163662716534264434234541344575614112473356764531363747763444334154424752561335353561467124466175637325514757675363342355635634331454135523573442165324216673446474726572153426635467117111445225537577725361254623644665723554336327321267274677265754567754371232165423354133262751437424164117437162436733461676752725424135271227463277656736743134717313233355324655532425421745546411724352725513265341174277743624627545156637156714125444442734536414212276374116631364742344717561273533554275767717523656441437567753421731526537472666734761756164425522564441617777772572511426152744224771752162262343613766774177632323411637147474674374114514611132574677673654344174524276771724264553654131566276747561351553172677354177256716773142311457777277235635663674463117332371477321443237746326676216351521652714761476472324224736563644142344732212752114535322172367114437743255562773466227537616611255261517366555125646712613564623351532467256152755647237527223551634773231756255741175257312667653263677715734542752577422711175334624736433217374655537131131675357162145355316165657653175276734752456123755173562457761617422121457272676376745222321312354665624743144165763474737767336736531336632242137471775115247753646162745271415445555261674673376214422243313157636545635436777531362527757475561356143616417562531773111151637776712273253123315616216325512521322543257472632523445471353434567153367431534715453112237413252176435571654366224456672652371612455325423241165523412671137311665322173437636421651242366237317251352635721563552765334251112737266461163342636746672417431645674533753316572476466531614662461134543774644223153745735535673717465164462173412616512266155556625324772172454754625244752536512243643154431725421246654227711135521247623725577735522145145262753271152454244336711335152772177536545113547174716231757257367453347151426535246163367216256324651776141625442352577731547411276366173275733367441434622562623642652211774343317344745215416613267511612436677735431141723513132213374431437342776123224615111432763547674641232154317167612145454631721314421646316416417524452255241321764147112152624715454663521552751376511616212672547237512766165334316417331422776723713272222164625466332515115711212642374473154724666157557357472616135576124517376113252227257441343124635426446466715226254221446162554237714654444277124657723632172514535322677421433222133525736121613444734117152465611153757671753337124525443613463511226116314731653326173464734215447361222727124457466735431163631676712313225763631635412621275274115237652361765147711273324153463327276344543256241371523337576222242277643362317356441764154176332552557175226264131237634345311557724735667526221244141566436414577314173154767124531721653643424445155552261263647652741326667334242621136365743647243366264217724126233161656252177546364116271733646155344353574541477221732244522447173622211576737651155371142277126513134113717115124753767471314376772324635735657255664725166636425751354166644771667453172164647556673213176516775733444564341325225646157142131645273651316442263741746663276363112471532566624317415314524453164444427666562323464225776554754521163162141262631253764632447122141441664724377525735532776771226474462164535577414256355364517347726136611477531156624463243271264217711741125233736675222642162412313511713547252732563747247321662333445711636142421725151124212445173614177723355361176317631716536716526412147577717657544756641552523565763742744621716413316363634273762366653356547312742567144664374523572147725746143331457757376161442757651545363525764161731647124312217455275467376616172256262632163227741521551451461617536622237442555727175254213474466352414452647443443361133563133251323177355431615244356726431646112321366121112636274266723111112243271273324616545364257571572726346567131513576324742722771174141721633115365227633126325546342355441763432144237551413367214553227427672127533517751371233711233275166467354635732253375677722353272741777363766313545445447776316572673642337162556222776776637411111375522537125747346255141222322463335422434231166714631143376654277741225637167662354561111716336333554351357355424163375466233265444272336365146644174754677126763312454473126624434232612513523743222773414217662475756141512726442552714546444714673411563164122377571156732433114465554762574734115234727363775344113411672376177533335264553411721373462723634626252162457111114344723326511214221521677717132676362515376516232375465367473753772263624575521651521466437724336544227517362466632671644557312277722773631277264354541326357517512711415525534312766221157237211412542224111442741662717122153215572734445622126215327322641273152256623515717642574437615644152466462654446542712454457144661747777374657524736174652575165372313232527613477321715276725545765212465466137762774713514462171712161737743644153445127667176171227423427175523277722772712621654736317411173422425735226412611314244276216651233726451323514655361711642527653356124357542137665666164246334562473232215322212112721345261757131564615541172213424452211317424512313271372534175654175346422112444153214466716675225742613123371775317767561542363167262665334344266265354331461771136325752515144163517343423433637563377542267765256214655237623663212266524414232764573236311517232361133675422721411733755746163321544744576772142245534242251473641355735735143371244677736217664622426212137566513164276216165551723645157127761317131641651537521125733134734765171176364437422543446742555166675115755437373647314211456375165766474136265663715435574433142632511325254153544276166432756231523746464111456176716661165711264557326137275175777565714526735314355361311132742722523274171633277737272415672114455776516672131235265436317437265166746627733167615562313366474324112163277416511466521261721553253373723174746114166215326474633363675374711722332354776746541171471131632124467536226743716236265311573615345327153766461313232764734415252715633123771732245543157412336541233656155351415263671653117154216514422351332251652647257256511462135353426644732225143251222317513452715662465527334561714134226553665444674455472167361714527466164631337165745255213313166235744321563573217125556227537543256121167541171113562525511466624526745123132343643216677635527213217612235461755467246241123154565466512351456314242775171426175634625153121753571677517653662365756654177215655654546635114453151246557577466143636632354723347555342322362215613665734536773747615136376417377657572246145552543357316251117715766313121667144372233151263214273724335425322763217534654214625236663525251567112165543273667312311654411567571777554165665537767246626775764165733443322714623741523313213721424772324435217573564225646131273674735511332373561314112724145535142713155316776227631723447322246331646517377221224327573626732766163634675527741412472154667257167562262753651721351677276315434413522127515527756146765626462733415637571444432246255741711224576361357515252417335133335441727757724166715256223746372746242246151577511227252445415512537655653643624137764122772644726713572177572376214517126373726511277526517636556241154714475367311373344247216223441142521351313543717545665411655772143317542115426572251132221727245565641153625675114227532734157547334542235634537261355457156242175562176562245175333171216133343222541311645366221427552565122445612154247717531674663242654132613731546447533714513727225637112424661546531123415717633335457522272266232344775516612146513566716245157315726566446763544223733657366527332117145143537243536134263144167212337244626753337152671116626647213137523527252111367571464367271514676152167477447426565124253445224233351412356321267113447173525332776137375137257267435545227164353376426141267115262736562667216556411234354365223327175454475444215431266635547111237166535462723676725511355375422527313143456745547411557311253336566114443346734775263234341615453364131365372611447762327522351521334463314415652557123274423515542217632313161255376727461742616746143365774732653554624631133137133473163666155344126522545741155315734313222765371343536333547312176631144353273341624657234374675451576243554111313661615434224773764717465777227527711555277666375766625535451532434572222311341151634477355321664244476621156253355616634376555263642545742577725516513152746656143337124473476267241465571557475731743413752512646716675164724627635375614276452342122741454137132562453762531775211614643265172451715325671671532513371626546624726651352531615176436421467461263142176263454264237112351226346643754712257576332233551564427415613414642633555612356536311443155516272455132633761744774232536227136374111473113127516232575436453213724165575111262224475242277631334753533455564616455213542426553257533117657457226146312755532151125545644571612437467665347565577255131511613145115174732717677635447612612317231757544644724711454545635177113227374657453153111565362171112524554232171517127277736246266431125532163234137351355273122766111765313625442417645365677177127227667263131312366225614735637662652771323464623436131634411417565766137375151534457542214454345744657727646712457435765524341755544555531433777754442323657756632326773255646653236562767176653215225453231136363232547657436757563331755161737243537515562576556112277717722757322514273342327131341333345452425675414652273215343576733411754553215712132543411752565226424762423114337515245354442365236556711324666631366114551716543331323464163147175127514516552224467636254652572414365156134366125171735414574734574422335163674515717652342656537112444153553325726115231537414425561277444115671471334577551312752211166676357537664345322443751112331311257134213646311456764165431562717634254442474642557277754232434426154621767545724144151564137472277661161256657365772152655535756755264372167236736345522316174711421251471524426354736376126411673622162145517545252112633674764476675113574652467717213573373742633545134632171112223572223437713272674367517627143333645221212541732462553545662235522334564141135514672356145267243315754471616361157216213741756321127677171727745175617214413445557557466462576225117141613157736774144624364126641754136353365256753355674327323311125662227146155373174535566221233622244362266627237512271214336532146414624416341423653114531523727751552124657223521131624675211377344666275311663767161552412633567356275746145555453641711365655773623531444211667354566616414174457732117631737164543534374115564456771663756175553126566377145414524512121127665211166726643515357621242454354116325217713374131224251416245665416121132561115227654736652441223245452532742565552255752327541175733126323573347676574137714214117421453143317477347152754474116267335633173142277115413763574323356232453776311321163462743474132756324533474546645214421761465553416162442115113725376566734423765614747362112575245235721664372754467537747211145761464663223422177153157111325114254533145316537644242163335237654241545311273257774223456362251774161123152477467122577536654754373475713353233345524661466263624273714332764322775555534554147567777334632374675462256634347227137263557716417157464461716237253262547653513541577246356213327646134211452136216234763123446533546167346542463316626347723566244752776654124455351215177646563161372251763347175326137124663273433561757213333255152763542273546135123244466175722131477726314216721445224225637242223215155577413456261624477423755366114764736214123325674557244674676375111622324746446234141541332171571774127525462315113176132231422622335417166326121332354661744135472134142175116243517167364711561765312531333351621646776361546656411573726355337534424364352346171157352326753726561337774221221247276421335721611645744476612735756611743646721224622361152455263754142546552563345414533761476715512676643123347217762252421332774373161562137751156314547773263713232312615523721662445436754446173244534317622777154721527365365611254726777261216717253111757432551362362312442352461713277243331561717247315642217311747655327577571415556253365436623721444414364446225753422266751343577152612355271675347555464527762776356415225325153132777353452652471452274137546252442317755154315463513317374212447712771525357126311752721433511672163256115111752747152316676765315743643344432636744164165674526422615352715111114435243734416342443177412124235717544137612437775225356561213775151564645122212643571351371761517567354166227474744272242341423461326736667722426136352576751237373366275367443456214565552615734464323173131315147537274464261722354763277337254226257525345637776466716652767411327211166652741717512416616557722145254141356347411662453242333646465771236163135224353616752436416115441347653465234435243477447362725152231677533165723263227246457276531522575114616244455573552562345516177571262715464434612262336177177156275416354611412641163613623642672443361663135321431632335732212465715214421353327424657453765143745676431576131772567446146653361767625774616626176253757656214314366766451343352267576453315135465365333351616135175643363167735664526245246142661566124533436336177625542457655123646421675627527621416655543255633474613476452454525573247475362642432173732176667447755735775171435645241451341315413137721437562366113161315556211633534777667126721347311156771253447736135146742276336443352361646543456273216327143127346676173157426255475427445167125175625323355113562345412221233734535351576427676233615236341555141666157723712736217132667146642742747643354456411415613726514172376374723361233374165477441162221261753373337671377236273312434562667327564664613647651272445125413534523111673167245366543455136572355676757375323162637274721677225175774733555173367317722121734644444747326125555526527721235513161565627433312163645737253745454442224277431647245742167473332675121541614172236632752122444545357333534235457254561764147524252226561315763171457647254435164316376327226525614661727363271543362333366242132532525564115371531664322246443716372761561217373562214531474116636144314346475153416152232634637443275632513327761566722316662635265142423656754234146376265351276724366665562116622552461337541543172161537751643222362524471645155354426425522133373445125371227765431463145261617255676427642647322462777535627635436371456554416755366252745632575444673541322131651465772475555431227475646253247326136316274737242323716735252115121161617423437661252265713334157156337371545635754312773335243161714754242724433753254637544143254651474677442646275767733351766453623424357435466354241616716564146571136113662416125327212777424415621433631171224647671111254634416642144254366153754164373665336234347765433332747456277576423245573661334771274243263154615323273453527217247754373677272134544113374436562567217617127343611423662326215363325225331366667721217542464112455117734252757653113157436741315127133541736133344763125132163715121374471315752367772476725235141261737172666136235416272734651767764165264266712653513617374474674224652372313671251642673444224566163413553134362456656313636314132364763476136363357112565416222561167437342272627737176651562731251123761371463367411265454551775171576547676235276236764463452372343336326252772715525163541661136451414231537732514333676776171656117443517613764421117617521626637663354435635476471572465647432532176531224664625775354741725271377353315713416326144551554473444463134535776747545413671241624374676342162156242674174311374253533571726235242333752574744451645315311333741214621172575354551371243277474434127336427354733162276536576152564531573531335643274757721636126571651145217175414222334426331111365413243244715522664425352473532412637263564337435171726356541772355213562336212121224743536625164775354616636741253661143636564255124425371275324713711474453211612454214335267677371342716421421766427143763662622767167124177377241265554233435643642765374345263421276623156542237436267724553124134126534522145222751752521133656271255731246761256364647753337251476272327235355213611576732761241251524457225736411471375514627147112557511474436415654434126223244422312553237717575141653575723566631216522433573326415765567147133163646221472124164562462376412612166727166372772462727277237311531442352311612157353373416461444671146217371415553124456414561341466316437411365626455336615142327142125756215711746572364211442541662461413213317157417721174452431717747272632557632645164631715276174224577765757254663445655465315746416416215333732276753533374771732614625361554773672345674314571161454312371777566623513354125134312633253273243235626243655361712326745274637153534552756676111454242772354372566234441422444511136225543312567314161223467141164725473735313355753166346543563175735441172446144454421265654174561335434611415362725134711437177242616476652371672326122264315233534314361632633275277537151774247517156341545164724767674773521571427354547257551347241642324573645774341476364427555643715354157747575546466247325772314251677573644527377123146757317626715665362734775777424232253236146736475677471211354677225652566472332732162222347141173552732571134346466712345453663247434623647374252254312247425742726471176725552761412545411276412342561354241447513656636157621266334463721174144333237236337446373133545554361135561513336424343657244732451573442413747712346725642444573762426667464476642434231466166355526415544223776253675155153711554335273534124251452366164475543216626173625244411631437171554276277211474211562656712132221741557661731452642736631255366462551641744112466572476614353233571564672313653424773653327744314463263433712264554132563651211551277632343451747363642321442637751744361627725164467622777262357363112175117517356347651576134164475716526511446274372352365614364256747712766776446574724524342771565556764664431311113566313613762541437125672742243533364644234427453465364457775352617313737372337676335173113741133263656635152133176516237545751217676551477523733515531525314534433372531423735426173254125462124474741113426257177336737675721567155377531457566522335325121366415244131315455427663425237367342167613754512245223665422562526124216413265311244624476754245741553334643414647423763561314213262635213665251312723371532353512764516175724765356516762217677717557477262677426371316636527537516556675175247771741725766652733517471217733644757252642446633174155176763467176114362545532153557277217556675517146224777174563523544532423364371223534654223465152534766336775227573167612261616161677534335157137556647157257165165241674313335374271277124124643557657412644516125346357172475754741724271751673421246246426225732244564752153524541467241174761274563152476641416654511727427537276524174167137716576671743725656632342742664776756636143336233236453751157656553437335777534146114413427525373747174575667264275746222373144437431772557417137625656177523156732243312463476462251262134443255572743213553622231357463727454125431652356532156274253565522345777176333315534354772361152477277227153415361636436665612254274126245515355351313173673221541264227762626364415126415737126254576676761727361212744651764522272172772774132154452147247612732352542762375613342457573565661126374673132623357636576146634647617277413716353335236242136524615534676277144471334262474467741524375236333613246665745574417553324747663263571466253724474563114512571217676636564267536114426277466471562554343752626637472223351241417555321526111715755217536553615674425517421623317141214161464253525317341643175221342651137455126667625711312724161347462321243132115525746352757215263536542166476162675633131252772254233451212221311174417636226354117455516721261211753756762531251236776511521751257554354441566611511353444541767635463141216166337576753431626522461164126736752742547273275246326425147634433736322243672317342215731734471674536753233473441762575671442623266255521152436645714614757233652471252361634517322172617732327561526165251633764275465371523613755565212475675215145574166556145615456715464225743434133727624516263753533346243426223434425267716223615233261542464627271111123744336263522575744446477512723227163713354434237614653735137462461771227772326426773476112152221422554453776647441117721336462633172556247234171323235467237332743227254261611133466145262234342675722442432535275721641753427627311644727314125636723712464445316474215237741434436731267545265245566411376552325221341225654467356127367245477233367371176546675537576413344476624555775653654327377257515155157646435234612345376225377125632615452374756373133755516437122474251421235166572177552424445176425666722631572671676131614424367157752135325515615627172554313311317533364735636322443621342612144127356763647672157452617717315721757665262153462346527437552355353233162466736272155137276444162426134364277227535357361234654216731451712724777536575721325737632717227413233316165651723527514725756122335565564463556147722434221233456144714364733537642714447552231156651426722276352463136715242447236271273433251417712724647115131757771333657722134426713724637625725767446352654317127532114777571316444411566237131324545336326566322164233165112345721464316154727326743242153426112151672417213265753411617251271476566721152377216456631556676746624637735276316265151246135632625317314233775715432466372775267611743366756461324663413623442434541767776554775453724216642716562662552546136673366127615226165364643126743522262774154577417355642264157443772271627471542467355664412357147372563643627276224774436773122142232617171232144654221742544662125216136342457136551764242731134554577544712725614674337624737425776162552755535236673754451324225133222526373136116414153224546252675766526242154615424647333251432137112145352644515172735453536152154361125413163613216665237244441711122654273664225213637544122322434723543133544365741636347512745457724346613442237322267237425163166432422777113255374427363712332216341641762216155511441741314535462557555175724614651766221673442631526437323773572777622773347533724666722223673773765265532675217617673235415774474133716377721111111423164664533156557377412434644717216675341767644515556732417127151741676765741522317213555466475571771566463546777732327167731421527617545223124127261277374356441541426247562275234254315733511655711546634154776325155552233321733217713421127763661556662235441753163436451567146314213546312521127473351536543515136574345637732712356332176451353234562354351543661423734722751374763211756223513665362763271431736351565477751341776216646772164732177641657774114144722721127523134221216127531245157241254336533346476322376423222345463116762227167121451234666114552363263524533556713247625627215445774256123317172535627513534373272526522762613265651621375745264347312471572231117112333127556322254414615237331242566112766732156431221633666723373225425317536312424511227232553214646371354124367742173125474614472322467161621536145457336721561133372312674667564343215117376373742174353742713536761511541572776315642345557723733714177341541362756274161164461761377335471537746667376674353342572446216352455244213164622155525712632567145753373723575624467271373653766455126417177652332251311716476244165637646634267325557651631465764661564567376327175764241376174564732427457372322231744715525313727152126267312645752553245767361316532347312676314652315115244375147315456646677376526447155524331473131135116146732765764546373443767162614421423522421265126563761771361644176461533753575344544744213416117765751447716454331636247517422427335562673657273457314266241313455235426673743472322141776241425342273774377747113431637444426262422732572567471745737775551371542144313663533737443542226466453757411167462756733277531477244533574514563152755315351522557334515376744453551423241333611635226665773431717151576651332517243151747272474313573351574155774311424544174547116453544241151513556323743421533317763471625776455216514165232472461142124134762423475124541121261274526132522664325137515616735766441453636134677472364765751651436415162714365435673361117366522313222322762524213734244372155415621763361533353666313734342174677765233376625324165651315525115174621357153776324272233114735546231257374763636355612113616373316445315725411256136337622661123161722525375434246212314464615235336612342315642462623372164711443335462624471651144415724516553115665767431625133514326667635146645355231222146427151757734632435362725757364336243432434711264133234141211633467124357162222624257675125272557562121231452545264353774615762732265377436623453771471751641155313743177662336637777274462577221634334434667663673514362533665751513257637625314766314677266755735452446331272661533322441336242711365321447636711444511745752352472244371365366523114217725244525731577537366341663223216733415171141345273227475627341154525236454417236461521314442667232765724365211267341512346444471616472141652721744736263227566756736132231422417223752465354243237132456521773125423651525242575471147622722344117416551476675435652644147473724165643713612467345642345216617317174415116454312165322252734166176457267145566716532756352761612541677613563573357456415524715361342243523162531517542233645373521146322631215476444671365124516714557643155736573262421134675667354451157543432762324447236726653327426413747456511264371163751314367241636714666724543653261423143176273273562355132317636177425736565176464732444676663473545341336247716522665355355525172647162776111653242677545221737225324435436434741222216621724157512365222775561525735731144553544713626125565146653457554252526316777523311216273542637354537372363434674726536223476424271341476633223735621542273764425542772665327622414461772217753646256345176252533271212433532737544511231246432743173446613225273544677735671776315651453675525173573677457466427116353653545345634325273153115715642241624452246761417124325136624251434711324224274217742564456114347652715426246677675255623535252347547322246245346253745321756224311243467474347156453115223155677633212343677715644164627245136122453771377371266576271336141763137531567621731617541514422511234377367451555546614174545727743564523571546422313123467363377746421661755637162563743773242237111271417172212351766457623247257411552653213351551336231656663624113371513147335361323377267563373732714232264714245564624574744337641274432143466245747511125552541672446552121746642714725613267457515362675112776367672572122166241677271611172741132312524133661142271262473577614134326723421446655614154544546143415471643617576477715572356154534215362563643473474264512331714635464753331711362177542675627312252647213275443542627211113744361556567211645232535665766374742127717727215742316714673634247563563464476312634525215572215373542112663433726461212762223643337542622374677556677277511715437525727247627774574624574775651722523441444344114516276716463565147515551224626317231131167457253344722243546571634646746113731365171316773663755531446357564724623655646144452325453471367162454753536354122353222553722631167674161125441565217576761363463342761163537527447516315355713241641746332324361332364121533251446544417643371535654376562277364242612616236472177547525156774532613224137761111165751655566341542163467576617717524623462336414723263342223315377751322554536327547273516731567666131226761613777617362276264254766221221373672764724134663421737743274324524122624231127451664662112635426722314147153721277676126273745641272617615227337421243252567453473665565277243375412641227355635314763623547177742135367326711553251533227147745262121143135322541735346463477125327433741462656651515464724146771655262231526325577445141546536635453616161733523577374362235122676251161265641317341777333135224143361521474546473673525132655373642113153431417661244166355225511713332774235125351761735451231333675176522444162361374232256523272113774147657227446773322314525735226742141762127727262313155551413211515523635536465736234172133563635471764557526322255555162447134773713567652514731426235512415726527777675255542724537471652564346441347755642144627651756126653626654763556773356435522445333615672212567576233777651136761253644274454323337646535751646155561371146411745632625334417436126345343275212165267232574631632475331552312422251264543246323562224473724275522652337564325764215755241777643121354334675574325223651757135441426242542423764577255464466234315144437663361751717545124157517334777776425514615773414232122255754653615375777567142655776224721516161631531627625223123156567742652744121312415141453751636124221425231373634541525133226221553634351577774541544456761673752344711152262636173451341422717333744243372554565232367331643667264671347436214721357224417667527321346411423135253276547526611633171651714221155566342235237414713712213646643513551715427562154565616312217661356346722167216755445316536426654411423643763651535365341323321773736432632226373133657613234424637563666711741345542624257722426465763765172327713315744736361136636344163416321542455761717123126663472733666154311227227333645644214411711625357471413536133717521372374366223163234611634244217337666335257576123524671325745712772636454444446737431562376267366663422175453446523671731741717765231542227675546127242337437547473447763762647542566132266332311655655363447434613535745762112377775525272255546221734534634255256137541766643466572344647456264771166265742412251424172141761467576325131471537661412536725775144717423472644734774351243142657452415754151744464213341646244271441247666152631353676154671227465522571426672736235234633746774566747172773176733655447745656345252253553764777265722137615552276534111511211237133335327115245221542724254367363537473413336752245441765414544137717361515513636474412364732346457475466337533514254422216442371451127154237611237673123671232366471526342222435526741431464632563655572634171664577634613475754342122374714114553555156517214741162423125635214561416357212776724365671563324774145773133324316655535575237737354765417641463467254145672665623332763671137417434141631727512155445145153113766564567653643152626533341553162731426475173571673555223317716221374255154335415174625275267713243571217642424124626437365366573163224111254767451414344162754372723425662251115261714324533272363745523747152677672445121347517713665262367667762135547663744755235753214263252364252141545242166574314633252421237453521355564454776452112343477435711246125462271737251316756722534561563441652154113344243144421117256532727126536264617125656157116652253356141751341453142141241136353772576714151326742167174327265666137637444677463711622353373161675667645425365666162227657266466256343115643433341563561617656664411112516252515665253245132717552774254273344234652317713224213512136646114521215456551774324776111175775461523477345445717571412631422372453733156722533613754136312442511223441334616311577324255321513534117254545676757112427262453736447574261741756667143163321615663652471676764743167475737132612117346436335624342212115727212412547314246742476526721633663234412543167163432425337414613336677253462311754225757732522755656564233375564115714726171317164664377747435247741534543615614413144141114721635772446737542272427724246632134624172116752273455566174776271764473613622143517276217516337526167562153376541651571543416562471451565124117116256344726665735172141763375315244271662451265714232321151522356716166344463163626141357433662562472236576225577325442426714264335641431442212143622174775514246134116153363411174213713475213116521435764446665226621357171413355332221675565416277435446517756622135224112544475432377152266251374116637213553436655514633651717522425335624257146736323717111754215641433262176671632133245242664562546255474354351664277735324774167716545164621717431543265765313475262612463565632675134723454115543143273652535614437233512214777273633111373155532654334456745776373615154572366453216745553464424716535275533312722617466734376171653373755316672173242746416417414144452224173314722237167632614317756177426157643255165257541173277727611627623132631457434544254256236431324736123367332627434253117142214576527747762365231667371276426717761656756115631737166176631643531625434255132245244763767144327423465722535653577117575522345227457262335344513624674355673415464322565412772365755523412754424265345275376645434225455754536245171612553346272533372276553476217371546712733115555176763234256125312323626241135734633366715537461633214242264756543172112674634727441766124513561211323512416111145154775467745157372553134635643561161636643641571767364757543122231234221575665154223511476172324457273253742651212554733654715554673122525674724213516265675544124546621621233645235144545512335623615761123517324142625376523325517417531111233537733552535277667632574625137424437615261772677563633435131214656637465565746634231574317537115672741426334117544724455331441132327573435157144546375747725341413554727536553241162565651414554232634617676222337416315356144457654356346377423454316744657326514153127646721356717726313444436255457345356414325516341525362376734111635477231673727113741167774314471341265565761172316326327142522547766434334434676627661676757144733777432276775571567747745752466167733354264734123137224733373172776434752556251574626232562173414356765342261341734756244565746364373147456424621335243623436376737244372365746762617213656415512436777325732722214344523374244427337352154267511245726357775547562527736464555561464422422266245411433273657446516141324432357121354774261235225134355632166711136627346473234131455242352362415461425366611335463321566725256735767637527752432163342233743756456552533532114323746263676364143721164557761512216235425443267551677365363545676622564241557645635773632177677552722455534511315214561171177156442616463144216637415426546564522613652366627613554416462341723114572731743724371743772336347762443646142444273271572736652751225422445671332753133235123421434215451242375513716442155316563114751276437227431465673435224625234443327333416465354721553236762437761135367345773565754466374441357563231154765354153423452237355344566615474143667233467622541315764655536254452574144126314554444242616643311467264777741436273621122616346326455156754227147531554146613634512317225651665741135633423617461723756544633327542435176457437521137713367532527762471347512475617512251134327316546614755325175267315521262222177761457212723632574255474526136746224245441734215643424265172117721446212315747525176525245545431615447661474547356222155632516576443332371166125151266652233112756372443662475213233731363664273224471756237152575711147437356561231337364361532243447424542432645712751571655111546621375641136637735215273723161663123577673675612333154455765164566257346647521763311156556474253172727723166265435633621461127537742653353172564351633163315261365563212513771545642251412347366145466641252325223341411644714737566373427553464621762157657252221151533617156631737345224242365574666147254751253277112427756436125741157465572133243515424377273117215363734356573154716556676216131566273521572226531617471211235274734417467713775757116141153774417241126111371216211224342741511436531542613724646767323531712254137123415116574474337122124341655677341152733462236131353617765665532747154432745752117417417377153547565231446343445525476425344617667512756612266741471452217571671662267157476363444521144135225415524432571531216552165471132664456732373565776664164635731337776671242522411311117522325451661452576757112333345236561437625164244241253427654416365432414213747364522154142423543326567221525444135434132423161423372314566442245711435666376447776221516444651452634434455222321334416453742121323176634475637162624461765271242551345114617616277646746665673257324136516511537535422312211637572374357137274367241573635112161337155172132661514754447257467423531341564153134633376435573556133276345163466272433366157524421757624422172611255414432473157255246621221311546321164324742661475377323464651612721354151431512332313753447531623161516752224366631225572546632352432337643212266212761354231465641774172423742514723151574553437631447612317467252567557244571674742732362241451637616722313573277373521155312365456341612162572542113311742271757614166326566752263515672222331432231172662577625377261314657724141347536675776646656127424517133251234235746622521324476261114433556262666452744177537456566141427336636474667411464431421225476533516465165135275651113146726662334163771525344141352675667465112422113264633346515775553432232414616225721255226126564241364636326233724252175616666213251654615531744462772564544475133137611455652231541626414754656171151337114331414516556255533354473535547314354125763712456114454647525446714526315617155766435233215162672355116177715524467314625424534161571311413264644574267723575124264335566716563154613675155766526162742643433151541122647547512537624212564773156267455442423565667412661477616535513246511777675737226365467233124451431541431335257716646671323652724267343467225226213714245533646475531271124635467152475352656515251471723315265212462211415357115256451622532252527731111647751577435536773221462476626722717261134617527733173354345156451467513364457354764333757454432472562123567525233655354222675255425737215271613211136447731565431124255765155317422376473451323346764563272134716237176455427164163532761375175722643671362211716252561732533334612261321651751617266362546111573723255243441522551421664476455167376122466642227362452222171716746552131136357517665117327327324212536631516551547252274245271631114771262246323447571225746731352763112235277534624637545351476176316642363455737634612347421322264151416754661754445773754117336754736725423412156656143665521527333236667342457345363741434676522745625663231165735221463153136443135623136356141674144461774532755546274122747337635363473266355742761472676631725465724342271675175254345341534312714551171171712521375233315736247624124245446722741654125723647641343177634535733712514326614571736355341723616127472134124413677545362453743656725232635216616752412557264663565211565327127114265543562341616457621454365277136673252316317354437415744674676556114345215333177147654444134713734472222656265373467134547342635314426725553473743157433557754614367351736477174412345634732413141216223253373733167664356627145366311547766353572651226172227746667745754572262457563572734121626734621312537765135416711324327432715246332441364225736161633565666413357514652375277126272647336371745627475645476477336613656677664465436124763544417371776656556135761622212675246216375254142164654636267346164124754613336434212615624552571112411272534317132332714562633754335455622252355417627376773311735563354413731472575536635166352142371141444514164657533352211424664671136521337714777424646722377171125167132134523575363264335436551251273475751431261416253125774133252612421653713755713224725441665146322311772427111333146613611426462723734275116353757551131314363566161512433467756743747212631127146237463632737734432562166272375221166463677672356435643673723535555524224173442315772471764357235621232552216447251327436165111673726214545413331473545556266357553515351223456635222161616635524276633745424221143441442436222731525223166677723352416663525611162526224725116534716775356141257531364775416363764764432236464341477276756776415774557713742476457477314215747657244356542723661641512324241126254671466671267355435667214326345636175664612737413172213555571274774562264461442751263557231351762342667447514612132477433672667734134377362163365436411167267374727541616715255112663112232261662557647542377172372672235444423612565653172711142243565223665367555432653154371434674526124754641575162316736172672254776563251327127267254273363521221216635661673722651467737412544654641431437722227356441413551256744177252253415343311552741266164473322547212746477455663171171442174361411515446413372521737765116645616766743574135417472512433317112611514265711441412672134466576661151617472445617176213762741641747237171354135136767317513677165711121245662466376326277577527421424552341471347263723174255327454741374555571631244553371133261576645313163366572177527642252431226757366734514114165753312454576475443346727341147646277334134664331766651725122126756673475275641147745731643155662562123744431446342256243642537726232626272237774332367643737122754337156412333767226274616522736453461423655344377226777562156133472535123767527443432527136632261444167576547625167332335227347525334373357433132264431254311462136576124251475524367525366326532572313142314776345417235177163334575172423722666441575375324657237747123326615562631462224611625512633176161646732212423115476151345665663657664114357771437455513312771467555167634534567644525155366525474214166651331325171527446321151513223111334576477561435267476561172424551221261147213153232112123465242365375422554152374675121476213543272765132657711511323363214662123412226325415475531156411216517151374347777541523642414644616525755571572657741325576353734735444134315574477631411357644357214537361151427414646613671335356742772117351423777662251325243156457567615147356445564735542757725675765463321375154547223531424374772641214344252637652334516145436633744511227313271424275772656441756546552513143215634535613667675541437711225546342115516265255142316216342125753364755665524321542374321542441766375254146461656226752737373463434153576456643465453566616265521227416343121577234624576424217423464412733713737532122164424557135566662362666733154352734412315163151377676663111435731313544353577731122121321574367537715342623735241553515656315361462137432736553731222176731667126342314611577763224344341547543416631232472311624361725761756226213446677737223542645355562374334667647543475752241715563634471767155122472277424525465167531741645467121247323675435144237323421276372337451751515323155121554613553176753141322755264176244545232533427144365564323743567255167343516522152732473767355313712146337172416613752452316241553757612632274265453611751714172316361663173432271563562663572732762742343625245323573161347544132426565766674345726326463546152415463262153527433366225612531772431151476152134552315116452462746154224242344624256776734113317125541264511213631432325736367311156114555776362544776572431462677537276715655132631422656735215177211732637533716257456262714633655751353336721656624654164447735633771435221316211766364141155642131314147177132127767474472375422652265116211323412452133262124221531351112245525764217546742473657716137465237146561544351612117112634672426522571555222374615516611472643616776254176446737511421662755437357464275242135121372467676342417457261614221133154222312147311457365467122224632264415622664121761641543674451667342234432145234421475675434534561724356674417252223123767343622714352442773121444745354371564166423767267513747545462721271676452742772152466343713315446526664762272311657515125457214715665364524765142224726664616316175634316714422743346234625547457232564555137434671414215652617633123662315341727172512326611573214574625551554665156211272262573364767444623423131751172227471146436312175537143141357573543546523454674546644261236477663242224571171645632352474345223747173542661754541175246772425613622177276414161271634624756641233453413343742172164655464251464732272627233542652457316733162656117463326662257434455351651247157727241741365347715644622136754156173217346172113766462666663363262524542463713322361557546276425777464533735566624173266275741431517252566235231552717721614761131157426353767254355367341137153251124143451367226744771725142357571126363532553351742255661137211412352735213647745374764117747112446742653156244173472213126147474217566113727431177312634547571232217121424577577632735412463516741753125474455441754414764356342457663533211166154435225762627255354631261466474757613572763111547232357426456274254534633335522544772144723642261745447114667134534752444747357454132252757764446133471714243172626754252262625643373324131442623521246475567444615346751724217552716767455423114741536747461551643541415351763466443437515753151335515433432661544111163752376332772635117376464214434623262125435622344473453175647243571114646422666247715225113731217337614647136664755417311514546611513317214123517361222414271152343664614447617747172342163172436714417243244131251326524244327222774121334751177321214632374436746342475213432355475162233776762626167521254473153663226425214516516567774345652352664445276646637417411155753317577253674577564646616135523255336343742323472176667663445174626553766311761271177266434253645424723665763123333242216544122763466754454175431765316264776175445244772312256464126255554455323146447611137665427245733561223427475455572551434357253432665241217766545714247516635211567315336324377117535616472233373324761634365365451232212424655227635621457117554577117253652475467363421432421111214332636276646766341415766166222654151161765755622163571511534621336535643453135345634116472764127763661325542415272513542641254364653675462533453645212476635255543733673166444637561632614532416713213612557153321324526312443435676256535552175341722743127473363121115654273637742337653632351674115674214611714141226521757346657547261652153561614655754671575552572677175554545124723323374253432622631476163715371632372727253456542713531121662744374417436763751143335547746244665445417227616623166633637454144571432564645437745632234262616477444632326263167764126645237777745447611631137236531334141751145622574766112224261415221336443324625234745376114356771135772435716541355775616455345561471634336323451352153137575455514676342375542717215627711465337621464723417611623425517675421574553155526616772253135125676747435144736531421746253276656553637445137112154342271511366355631775421332556314533715155773677761422456734675251652466177556445527766771352277375553364442217162151667135345366743412145477325645633635472322237611126757622476161555235551173764276165156337246325157636746455775675324356373335753146744622511413154523443716615231226677752223441223561172173526637531647752435557146266475747644536713617245724721656515314477153753354377173575573553525154762251625346266657446724466264562727171626456444317271647556245546456632617554115146243212246612667543145724545351374536143643121116513425711647767452357653356466447723523777676544112116434374352343624215274151563773647467125251544275725444633123421466462221416735631365757373635675654277237142725765663732315216775515442455741451257452723544555226174251756224241227411175452275116534742553371424356455333663375257643131561533372131775353724552547744212475724231437265657234511516247316113546611737426451231273117151171345147432315162275535737146145313237164425134464237134241766517233243514327776512536143351223345653134666675647722546273225542441754333324171173467316632427653661433756476676156776763235134332375714743524531341346663366732271772565157424552716714335147277311656355437225317327754557511551645613466371234265172641622677765455713753166417236512574175263641553747351432356121412222651244423731176232467413544657744172645257256172351212476155761571776413541442761223452271771252351142426663261224451712171127356372654543273414753253464676545515163457167327126345714575362232631377377343456422124663431655752211343271455317522112555634442563717347316246122433672566334622124251323236252334735315151434735564536742772124537362276241555435171726415531114152261226214177617712544417442751271532364174755157443115252456417654713622221737664215123371342321732324556542523254656326453626632155433426771226525546474767752357733365354315371144725533432757662222751411242257651445777176264416613145372427416662353473231773663367117352433222351621255454634363315344676211456541765424277526266624373125254147237111422515434316745451277513647667743214656321225753123165552651745266663636641457751377266453541371266542446513412643552527114233353231474356736214553145746572237553613451343264653257764654167154446714231667445764774551261215553463217316343153652231341451347525147167625332611243371346574451364273375122413437267324373752771431167614744427537552212576111155363355661424371345516667771116534272667133474432372371471513567316515611267643772143273463633573454135355332542146376735312661235651517232327634474477332521653442512546112165554325351423627265446724545755533356123266552677445441724623477725647357324425452225327123363375161117753525264515251352621251177372216562311752521665241375414335566545677766247245153224754621576443243233766714632344643236377235551175363374667114611323163727465665324644442364764117416717656446267755333662361762624625623677527615441137365454757353145545511462345442472251746114427373255234367234514623637641213343772514253316666462765642113437146211546261751727226724224571574516773611717221232144456146125667666257362214431735414327143743631557416737364556221662776274456543673576546115141237427456115671352743537551355477453317322212341635237274343124251623664776243437352363737441757142431143756432357617222356565411755761367222461552465524563234232647117723372367626411167414156344454351577147732614713164471426173627611115722213525233614167616371463565467612164617372712772541711267636627146531662263353447631657743645642535624733367735627725132336114461252765214311774711523166711546565154715436637332313633533517667465166733715152374676252543632612431335535432573262111365652132474437123757337656266336213337477133254452476473223276711445424421746514765635247677571755426271316267566251117167157246722641763671667526726646654172674157356556535616511514472173272777626573467267241222762372532131734775354272311442541161253355577271137461713767345454572137721157353221433732666433112436527544563125261554654636147312354231116422257236634211225266414247262225343376373735257676641255314526444714745241776756534761522174142442236655774663657256421641255432646745454153532466332425554416714677356773346515551613571152754444512311645636473665145365662237617137225711752331245715563716676714136747145361416327175477476461774617514444525451457221151121122512663437113647116231257452574664764327431636756563627566746425134676653757545523215275271144667341245542426112524453173317676733757524175726262547157471571365762745364266116362371357421561256464222542542371621666721116145114626112367521673773675626623543225145463436437127371172165331554467137574556451411532737464652311435324661646717164377356743275432154653741751661227366152512454564253647645144375435343525672452117415572227546413137423213561773743613135123753367341662137341644226532453651177144322446473457373167424672723126552725765253214622664354565771756151747576136621117555345155343251366446262155166253717434362511747513433647367215516552211562566451125411557571352241473542621776711452637617136342522776271367272347522622534463634233764113242376451533126664151675313625241512456523246124643722653155772253337373637442136431617135725143375436732766211145245251754551722564476676417625351216314653765145614613644537315525447245544451153633211775135627564411166633652244576576313265234676725512217325114764624154767457363254475441152541134652257226356563224761775342455743351473221216542141351775254657376535761113776214241332156454524367267471677521355372527575347616725756157242366137422472227227112721636552611634677136341262274565761536737223773616443673733512271465361423113465343722235577131376146277412161624217442333445516512322473623714435513656324264755221552254556122764272223533232153242567134655246575716473116225651721143437355134645624236262747231255611756463151752465413516623757542737716314411761421712665274352555565417161257211313672531257355123654562726641262462745764722443622317622475636774372777573636232462443624511327151357437633547617264667441414531555631524211373233722657122415554356542373523746431737751322761346312543214522466563461613223257712366511262542431711162573131133463244412557733143252333745262441766436715722236454721425245421427363364766312267572634451223475435754563425744734137565721457132731427162767353777165651716121435416415174142452467365476272435115157561175454534653432341625535344423443371763351723161443216153615151422527255467165243554463753562533715123571672525114654152437623325131427677153653332646213175536441514573611216433536557772665422663353645755732216273213463134234553147655441672512232677113645314722617455544125341432542235167663153121616312736212376531431436734345536367514335666451525767663321274133114657335364455255243565726332743421373223661416133522414247455727156511161332156531172537575277325265364527135721121314374114255663433214211173126447116532346745421131663663316243243137353167631735223523154161326732657475461664326772327627161755254224752742514573136727725114732443752367637321623435521343746273612257254215371753436572167721421547564114745132516465765177143317267771416211412341151657663214243334474226376634742126115537353617457261732125521743745522557147175723236341134227615461556654665351774637133555551421515564242117177464477156734716766545173373414543224341335625624572322551223661222546762565447127452547773263214571571656513525554141731367512271341346216471346763176324376526654617532512647545155777537311376671743334511575474114761632152752167512274455326626425521747154462334654311753536572355451416744377155517724471351526255415321762716571563144272353272654577675777767146463213347671166436437321237254132344711711127164726742164712415742453443665564266162362674234642276654242737456365513113437235356334761264231167541261635641415252662671434544431657742537612436724225261755311416414761762135147653473567322562533242341554377354724274235314462775341316645674276736343174643754577721725677337242267577264562252254447327254317627577535215332541324347376126271152224655517175137574545446266414727425366375122261765432362232634777426367211531626462727244437231274142763236331376512625371324545152351715551672663156726162636544773174761251357765657566652627327737347454622717466534533625767654717665457547627514257552441336121226754641643613242316662735641754652256453634361433422524472617265413451655573557322413244334353234462466336724746127443217746271746226242233731643527257246775162124641764461545227254362161771173467676355442265312731357347451731122666533753523727144212357344545644627115577771116637164722467355636751537431642625523334514432235124316352535627473736576253515331651426672454434727677636116733731272162341113515575651562556762113322555667151641535624173712224466735635554641715677327622244522517362237534525326341333567241431457763756322264721256534441624762762456322631242356222577761461657216751235451527542133131266365417325347276361355657253213242673634471522451525374413644361662256725177335426257722227655155373165775731474423434656555452222641337133314657132621515444575152116231652357373565645413173171313225412541677347134715424734165377132426426554461172533227645365417643525473731137324747743473243336511257464677733436323753271525516644722372416641672261511774444432723353524477451776761157534367473642223563622632622647714544574271324612165467753156157635315724167451771537525733752745565377126273273445331245533647427251273212543171743267653351424442671112465776772412316744125462652763223123633265325322633473767166612115317736477122424165474313265567237133663615256565425166425165171214674265674664535255216735554666366175776354631565377373742437377176616535232427261112515652772633614551275346466571662567161463744423444117256126226414412651356121465716134746752532273562626622652562416713772164424163256231427577147751252577251661375123164145152751716256275563513325635341256454465314343112353625571246354322161532157557625221172115153675124267516475466211417532357637543253223774442363525612137133276425742431775244627371525541167743737112273737512554735612631736323433554166241426722613175322163427614333247311114315725557665337237752377231452123616563553426441556616732177411112651337772636774674571722652174371524533717627371157363462761347513166567562423532657126226442422132121777352524613726557315661275316515454545437133677642542553473246113476342364645643126214444171613264112457244131453473151577767416137376424226264634243222227272114245176531357144551773236246366173514456525631316527232147716717467236112514136127143451451263123246257341145746762321366575227533467415421327225667626517331215653625476532553242134115742772651343173766135561615415223323621646347657563342443174736362663167625772661215461712475344434633635536625147516777357114546243546311274712162773721722427353626667117427527127512725257124516375376341332355435536455467131777541576541277643526574434357461554635422643637212262626364323411374756243436357576161627453724144542576742716777775771145441156544713716121117127736734671116672313674626627632634637237431322552732433325312415162114266412556753226641573653562674212244421426752656727215653242674221563146134212223243642266457173263666462224335642335655523432662241717232664362626514367534112246357363542322574464113266511644671541117431521261612321113216766243264331474533724256467611677624262615755431734441311372463455164264163537723351411552721366166524323616572136171366467527436377133524474517537656525671543414417752333173167156232612166337171777242553262117724125334377271461426614123435547153615345365435577457172545213327512435265641321465465652564737117453373171343311157746326631642517241641665326434541364157244435452557557373337724243562515251127264352323645556374552732577672631366517715562512267564744743237356231341137312632677314617333471224441565735112273344155177441572347426112724254412116526663144317352374466114565776661561276526455674243254632444323572621663447337664223677253576756257237514531621443134762353251777122113567652625222637164312612525135424472575431623643413564147643414255535267343736277566263267531245617337375761611666616234127243624757726526676715667514336242544242345226711711517672324142326633267113724126277376421235366164522534737531452471344457225145427713515471646176243612634541314424666535611523456747223777722563253145727272457453366756662151566712615635172136576475364412652654134627437544625464224764361547253536672666451137651261726772127413373574431554433662154675276251511251533771455744252732552577661726772472637344772266554724713115115354532666475625572175616137631466152451217173552173554476572642451625736747334534123663452736275376172776733517232611266462413143663174166341365546666435776375763274712745175654543416226257755415776364375772341622643661567437246276626435773774271657146773731651443427127426146234141147334522576231142715723646353356423266346452477717512775724272253663421357537537622222125534661347723762635722123235357124513741142437634547641365222135625122136372376752766215731265641452675436716574212133727145642617211665665456177212615621325677717116615444253213475166327111173115115642261471147657512622633355755532662132246335276362555213611655754256413436156175264715375454262521461644652553413114643572322565643147625214554764357731453533437143736656225733552654712476732746442247272764353432243513417775643276126436173356574154535636422652675532443677667274761453325612211754311512511531337474636521741257522714254347473343147113311427521711447175245671325336767133176216454573227717152625624536247771745415747132146441322615632642646521324227435311333623427614262743274727773533657352714614334542152545454136535562754444776444652137516222164652247514314361757253233755164651276157611246443461674312221677126735736742616265454126337411433437132627121246615426252134377533556742764211161623641164513577255752261671717712366575157546555364512673763764133113531574463322672263471762574116371552327552153363532747111622662646711167414634221344367461641125136336477774516644272347334547362216256365637523242476443121156211236754641533261432466611616641655562367543263335575465566562541231567554263436316766536424712245214172537174135634677552252475127547124244541443744112337666311474577223711746442764317271142311652775365552327525246277273543742241771557772164622631562235541156256333234543134221311434217435253116443117414147361355177142777411454664736453412557477373613554613312725774245524473423124512264637741532366742411764476167416162766252477316566566337245216225534452522653521527463471332155631366651756333524662233457564351427276215341522271534172161627751712744477543774747451666161767271465734711377614762752551756765745547151371373171477665663553467144251312552252313371151437116122431673151475636166315362373274451631147117763713634474633152621774222333341632216757353657242343775121344437662661535222247575764567635477467667652364627761467257152712152747746275666756136753671163362567564413373112115712313422151237116661111532743534176451657673625673624661274441251725212163565245531331347725233245167477745673357523551652476133732773671551127171465453734636232322521677722632771656152655461633136227321674215463311465126222534565426427237767317465311133226665427471315424446315256351513572344373555337165727545574664244471132426261367163757621217633373577162611147256554547551543114475573774111136174651546514235516365656477522423721265157562354372171731612265476515232212556276316472574724653435367611755766637577161672251624343434442232234215323323631712557113566723135656372744337342617621167162416364335631275241332425534654115755511265376722365436222676421117661117657463713455471772643165165215163241552131761161356674573224743351445747147356416275746461764322377213331266241751566324524256527431754113136335315256522351232276315726342365726545437756711331161674521767563446113211772245254444227225374657672112213437154532243175635222212413634177126612726237114536257327613333446336431463564251167723113556223756531616166615134127342711532131113274223215627243467561654176217547251672464421651737115536557533462652137663761173215162636613362461713163472471132737124715434513673113543714136222334646572373554274641144556511635432323542237567345562137627114551172367673551615463777661712471571747727215476145435524625155235332445375235732515367752661324141475145657454646475474652724542611416113252735515365744367635135376127455742422341246675772474134146123717151426633523312541265673414115714255731313553721147637111512424731634766333646753746161232415127173672536223237433443566736441462742335261574557214572375242421636162611161435457127366224556742541142151224172115154776455442637735153266775176714415352117414376213433322244154525253575645216126562135343647412141521315235741717323166353235442524556371216276332541467722476647336175316146172445615616156163226756571525344611372263711616321226117162726327547175466667623146167176362233121227777655751276175115645262473425514413312432242753551366531712664436766323451645234373346457756312327343572665522262536474561333554572252351234453536416155371666446555612126555147711635466546522367162473252666777263741716567726145215642742752777364476355461215737533147334434664334172742162776651275321174453216637233433743631167621721477727722735312616272211373575735647742246776367221453513153757544631154665624547725265513271156552657347721516577336217541657644731764717267757773615761157145451641442461375315677576715722476654727267227657551442332726275764366475517616655731154456477115533514364456245757166545515425212664233761635423542337171744664165517226371234411644664771557377751612632746417516274674742172167267453651631622432232646156266325363761755156321455742647477342161577665312345412215363443417627776765536753434646415652324326226127762671245723674552725447373215115474622334733372674551477132642413276343645375575242322225322753373231434165644461623246627226556171244664557217363677572424472211435733371422551142212564134466521335176247335552664133557316172444144662725572761315764126636173621327613473612743652254151757352313466625226533712236645652611251611473325361772115772467751776251231573322411612323662667767716732713355617172434632731147131634245513375215552144356552555752316167427151626732476355644431673522463411573317666616412746246517667241312654552644414722545517676732254441727224665357544426425217436772276237615444531264726656714524143767151636472427233711713464771417416671432674717421422151551721661541613714415447532637626127127364465157537374341533535431552417255754647717335521114667644126243142535536673346557146243754561275351143742365153177714321177117646754257417324634646261361413417475733714636423276136266347712652455766552414745741671444535624161776554736432237217253646431757247136532475617731767355237345353475341521223325525652366322261447374567522153725513143776225272222771663177413274671171723543765255354564636256745156247515113631477265747676462367223265717372442377275254723353374734636566744174133551253631157554236115612323647324343735734111535437247573216132576162775316563427463443153776255165364735774347216653152551575425154566467123755632261357427352266655614726334137456414356424543441323715651364432373741573361544677172656716542671266356716764553474651563446735155714725514252531117376553546464166557431757242454423272656414223121155354317456217541625476233554762427752127657635611561414662361534541644522624516555626317545612355451145346126664456527473264322271425152654643411273133553126445676315512377632751374752364147721761452713666175225533751566571577746346546546252754263433312462566313277253772271726262423762241162422447747377572321674272335545627164271122171234424745177743644662471515725162524227731646234722252434237645236551645733755351575752515412225172376712471236216115465245557271531541672124756671447173742772156322523726524314557476174473517433775316252623267347256526277344544215223476136752771752672627475135661341245742352451657262323737526764117515153311416625257454547335157737645177367343151737474447345241236747676742241453323767114622145753134747355332674373313116233741345651777442532362733235241465512317371234421666152614533671352672543657332431357531314574642123416775631164221315336716412735276276751112433564436231773315136645544764137426151115324546451356124533236211117337761556524552465157472432554517416675441136376724674241425176247231676612552564265672654574311423424215563753461252547126551613255616466253432566734745724714433124773611145423336732525126552265574164272654217173364176165275754563214561221222451272171637336675325775137341621747246221365165617417222267442445563316554252744126251516554731476731626255663475223373241644625622714642322652414144561756541343544237463752232655335522476532277632711317534731673345414477721615215347334736716244616356452642364232266552542567161137775153422134364151436716636131722437772116734351525517512314317554553673567336511262232464234312661261651573444474627176532354542551736727353134427536421656222517624526465161542416452546562734235627575313461742637115765272614417476137517615117211721547722563432446336411221351453637723161445773645527732777255537433742216717213675663152117553626223546341262662541757271255647563246774132321575674714742627776212223526151332223624337412472333554147756271414616332414754171465173117731112512545617374124364275525521632122466267231652411132575366453665243163116165446552133561356646462777471421265153356547774671437647727262312116356422322711256154156176437532416251413714233751466327152136277225276767314673653614631145165177737527671452656141533757466277274261357314473427673271236267217625743615464726776236453471521524212673351753744671545715251422754245573617215765752554472535643371247437561371276474733377163424441415563723144713426147247613257231717312737437171126133724332264455327614666677111735236762227656527522212172123316722621142131113174426636147411374567673226237657422216124154215674655166132717743373375624455136623333345556563122553246623546321755313771746362631364267433376575336645742771364332141125365346711666354643763427634147676422432511546134534176772516476242574154131145521121137321152116276575321535377422526667116217137726662634565537713773713744647652647733522366377771271465263252355362733372243332353333242451525364667237443766334771214563645414264216264564426315356125411352172414242621214135663576251417727151515717137543323163621752665573755555567633316615276375663353752436225212633434344315274641346572433355552124551121642335552332615333717223661724117232112345646562174225414617411445765123617557767373163664726773561415165253163224433133545535123374774423121353126323516363775434235676112157452425176634245717532223125442321673374277724426372633146514156346776325417243112265672664312246146712652667167527276475135352276177455555664746667636353271537556615472152565454541415726711756546316633722557334575461261466344314167471767123573342472541514336145715224236516143313571662415223735557272143766426777755216142434122132347645577571476231144317132346612667451521572514532263276543324614552735714255747256477443715566255447152571265322373231542421357224332612632353713237415656725736462653146314715442312161174571537144351212613446617227347726773616344575757235126231175177777261235614573427341265375115115245451352732315232452311123643556225353547112545123244455651127152616364465552353677345123346353654613243121366656613436764521227677335637757745646212212575726616733525624612315326457621422323126371263745175541575677733255576547665363164657737516522156626422411346666243356231113337313164437674652476135151173535677277743643221651654352473756646666573176431516665324564262757547536157122274162524114643731116761775611131431714326712315517326517471573556657323133275647771553512573142737772475734432522671153442157254353514326171244543562125442361117562214234342625364417253511632572724547274475125666513174356541752437357717531311373612437514512765612623515736165456632673345443325527177614423462344533167743266641651731323661716472711616324122226214445743135174476576322154375336673576112633362143776223653427216676577774323737247173557113745644525535266553411427676711416273564356275142424555655466526347537265276613355644422152124751133153564474723576241465767376311716376635441122756725624754624126146743627722227732534331733535432247521623745752235662754331164327413466773777223171277734743415446715525724147457577674212543417212764476213251231332752246477521621471331757114157345563443514577747774262264611746524157332121126226545175566552535143276412614547323224613562145542272253545212154567167546753531767325572312537216126112177354354476266331675636642462612747515146674646727523311551141255326123623217112264625614711135661464756417432641434334735141641121426367332527764336123731125237372131265446446112725327423345215537557324262274576247322546477242327352172321712536457545514537152226436561761245213367741425324546312371517744565714172234777354225456637724463273124251751716341216771164544774417135234434371422331441726435216413147422243314637775217763613445763744267537214313743732333771417174432474525257564251423223364364636216651576565173265576125455251761767247327741466246251736544663763721142746174637646652536225623234232535336131216775257273776431264331175677121632367421132764112555665455371564634615711117521177676444314353247537442652634735625562212661216253236324677413165754177476526445761713472434753552271341123161576761337614272677736752265574564354411572213472374373631472167535315456511747217751344475734611541477357364416423651232124426573743661521362233511743256531411175464557576622314472117713765275144522512475645416627621336757553335516767563425217313435433412634515425473145556527762625276463235116647153642524633225645614121532517635422513366771575356177374565447211372621622611456366416764631661127313416561746575537336133211333465136625612572456323136566523252156657552622271123347115176535734521675772321424667712433476272545734544666732431522175335244432125572272275347523122565213767171752112322165141343623343642552747361423642557614367524221476713633115511176757526462723254154551763644753742133663175424723477667164571266462161411353766226226344623143712222372426716542453271672216671124264536521314462173273433414517235517463414152362673155425176733573652123522151442647412332134515263414777276453531613236352234663324724153117374465177636253541713516123524763342252346254441641122634317775443657114733476553575177532432316575625212552521711412576732274753434376455637641122413377626334671337376761765177447717671425214347317216315126264265265446151526557561532255275523432176123364251141314542351744417727521261777214345121247454125117273411511632276171226374717527441171263355516416531367752635612121141577467227763133231434135331555736664616626322655721443316353256755336331263551353437761617325232766622742311546723121213244657165761355426463476627642256755764662721553423174656653212716424173376553726435724612233424275716447236621564365757212645276767745677463542272116146424353253251641726374624735643614243661176373374225627412366557314662612632161614415357626675745423625177327511352227122712525267642351323275323545657252423241236353626245771464243277533751113652445262172231756376442747161565143551772226434264722337436416332521111233175535147472436411354646647174474366773153416461625413261177641271221426171746121753273423577721742113624717633121352524173165163473164476462764232514134533353512212652631741574755361135472663215414761775155443311315166356666547237231145523744216715542432315531655652443151672462257434764547626415662277267527155737426213275147537147175251166673645655275712174712622447656646332137741441741541634221377274127332337573611756252563724655456423765736336525332422133537376347756643475451174457572155215743157133313247261536676123645533757662323637757143734636432376514473725321426334746443326547517267463224357333631575136623664672551273742774457447253255533114471422726315144721147454127532263445556511414125343271723176315653441321563375131462554163725624261423662111735273452762474376734767447661165574252562642463355164232227427211625215471737276116532644715127172732561665626627462766366161772474554144735526576665613532542772551174461343222721472146233423672721471524147451631736661334524136375351174743225232731254647453273137347655276132344463256223554761715113544456614353672523261667772514157535526155444527136235236516115167541566224717723646671453264763751126151651552247137276534233532655572561656263266327272725411576345534632541177141152253125174131614477665716613121356757411213415156745435237662627526776121452357355121555633725617511522677136254766754641243645726171461374223613627215241735441341477447262454736761524617454511657635644213625515656361327617616161666271452344722762215116216125373322371635331646766411232144673326666752525513411552515612212735535524775666137375555357511175761443134632535565454221362413312457654446543331267571741272533777176434327653162753246376452663763537261367677715222152731326535211131351247231664272415431423335557676722137235666226172145567245335337543567465277211535214357774627514153221653763756567314425117762516727216414121171133576477411551563624476277417422112753123162152533364115755127347644146566114266616337145647674751556544345164165627734611611316555432176675375177262663744114753615734725464274224412126427136437234727475125547212413366373145262764634447314344576145175323252441734571422156537453253725343417524265336545432316724436152434525245671656421763574231157322175611312576452541127642756721321123264434372556672666165166332434162536366555535614533342274541256433461347712514257514144531655631166414325576325377714371466251367341763553515336247716166674144111211576147664527521536517224635745735633522214266451233345741546341135316637467235461116613157624727462466525531316421312617673266335573456232264235376561657217144623361213442165715775762113111513153263557167667457157457162244552262456555543511636765173327176214463351136421523512212753664614254612736717762244466655344625463145452242242465144621346742512216145252476645451144312116576617525254434322157364616136176777743671243664112142542366367266364643661361162375553711637556516173573531531171646246342421372123563156243443447365211564713246635132167423771746461656452176662475724657347343212311345556545615411175222166517141116654441223173214147346237334545333716142352173476534466423177634334341517611161734474436135132465211453544553666346771715421576431675252531236163774165747731774153672165271211517226714727137445135253774116177113114617524677314222631342252373514376352142272535112146464623265624663771217464264472257532252744433133154233663322557433762166542156415131421654221275665714761317167673144143455615565276566626546646153677256736516327317172165742556256363167147113734644163757156113132441466477163561277566514334737215444323333773732171763335731751537271624335641742137414277316563412515331715113436477237257225477747574615437663643676624737617575664245122121416775667364444335724542463564736635425554222146551226375655347323275653475672667673542241615737441247417217367451624252353755112337271133252337323141377515437753613136354477432747276141714772473715633373355452572577517211447747524154412351537771752713241145221636477725211227416726333551314317167253614636766662635273334655614623413115615615767511153532344746377771563455264345363747373116635525715352172436364561432132726612413141451523454222276512674665737354412574151474734774274663455324165346164144546247557246626567176644542156433467446574475245355241515123777246223264633457275622713616176234165414161435456242352753664527226671417643511447675312571343366365446424714252142563152317656526263235545353461656375437425377235442336154544543563447373132155732265115561355624351227424732534754555244411214653675656363645444733661331553247637326264541476711361324511744721742561345375215334477767265776773363426267671445176115225624615143326344425661511412235736411125567533176565736271434127671123572645254144637567524337326431621175724431135123215631563546637661563236343254614461447124617715763516463772362232266361662662372744512213351563713733232417647246526741215473714471723173251316152155117656367731743342771241765164776673623516522747357364452351652651133415377614632767334663752137353724563563257356322117416722767263733221637675631732113116375433727251455434326322543254715662254221466222544317665273674472511243471212567231216736327666247375535767336261223225247247274234627417333262424646552677626333734116153473734337215476451425621433447127323747771657515757442627173276237525435432514372346541457161114767524276446116233126375423425223276536414315331753624376651363613676456211745233525254752111473163137767755461143677275515666176472377576345352733762443333352223343433251636221422676341576117455111336422255421521366445461335135271133361724117246723663615532441555223436146264176575777663721216721363277127637471217176561522423553174225272243263312362343414172313744553111346671127364737546111314673314332331454573217264166317711441115352526276521446164726727763265722265714776743662374376324744447757461761675274535155116612357456315524514443126535346136474532464146521355567444111134674346526123115142621566216312711347321144446252445634556471661136251375143661125721365346535741655625531717132635774531414271357252724226322424324767131567626643145571422675326126222312474361676465527171643665471731172537727575457451556735614671117273266246114253437234634415537556276223746453717144546217253151111122326164675671256117126533544755311231527416625445351133427115736243335376351724652776447562377225657417356467256456313553612735432564431466574351113561752356713262635674644313424772271535536746231732425155437741251234177715531724176714557663711235544635327523232734511511171324112575336471625331713263375437141211155715217743244653224767614135242634464471114663325613613326143237575346467247461362764217215457527365333241227366554316427175157216732467573531426266722733541573467645716372443363265461745715365252143613756415125574667561336744342532246111724673273253315313637222446461473264513231471322626542177157237546227633613745346214535432455442464451142447174125512246414267447214311656677323273437272622675625466654435516726362312565665551316274751521423442523162661545677646343316351725216526726263665651414135773115736727532541137525675212172523317111173347544526216147251533153764173547615357111126754146354753363757631356471573412736563371531235137176736227551753533252246451275315122733622617354512746675125646361555246447465156343243755532471556413241217135763327524471657736676325555472311632635466454457457313751632172264451226155534561433742235345564333354363155425672116232776645367625255563436327427354563457116772727476732663546664352611732541633672675765441347664266352446532133423312757113163611647723667212455117424426645247434446736656234736617443347163246672465365317625575653126136542423673522343344735614116131116252543735263521333224646552653611166362217572526151544423727217437276317467633451525277463515651677432517474153235165134526374364337617667474621426233714645274536631727167452624557152555264551443646544622116575674151617465643336223776317276167476467445333575421127753772672733513661424764646661766265566162343731174574252237327156624634771374575254613725141757753536236475156614376567515714711264171641557441171661741432132267771275444327427626623777124433543562427762745727723213334771344634276116213715717242675275333127431442372573474431611337264476452526646236676242423466474253131373261173752777152412263712424543162113411771716357517227351746455566746151251227217131777264132611516634663674716623132152574754146722571771572365611717176565311323563753123472353454474353724145535733447626144522252517121536472275552454267742151442354447411532476654314471526753312665726712143131661221412427641136632532751463443676631272266372165352656616362542536555174625243171256141666253537324225626343743171715115733477342154547313771322312232625366322531315355755271342555751517452645665433337251274453251232277373263635357314425172427544764733252446375236772622763151557253561146676423432525734441526543123221121774241513225653734511222545547751364447771657363753166452347434574242132331356654263737374347716544746273237215644341371735746712327231554476163611747155541343664516754324244636733132525553752543442764527214177574666534152425771211563725334425114671326562361372561753626477272672134113233473642751343272223412626336552732527625751411733414766522517723164767575747743324112175345231556265246133147463273474221155132771625442755735345716331447243453545412527322156641473647775244522363455576624672652356446363756115562332334715114341315335543464234566132424234562722547333711435175611163476266457745777311554455246354634654433537231271355733447316711417143426342361421323561622424574612145772141413445724776352621372417116424465141534144161254423555475441711615772525134253524263743621733124633776671336627347544236331653245544324557351475463126753237555241614463431511341762561275253671762527274444612671267321236427435511641476756357477442554527463354451511316343414451646431461636374355577343773542635571731133753432272246556124416175372425714467521155732745317237767321123563545653365652413426334356472161446234563262532175631467447556613435174534616235631761125113763237157624216732625723236646246652571652564361662364777675621527116114452122227457251341143115136146425737152317245213216642455462333235153475412243575561737575631154771441271526775644642612316433143216345517426374162253324167475636462344275236735243515224365761646173433366161676257772432231324134571137646136163264426551773525166312367112621336612676177342261111441353656773673273173136446567734262646457631357766272247727134443721575662736635666272324236714277266156241245133654117542433163772726534767663241762636712417777211275674763317475762663733734166375255654115155754343556253771621446234645552467134422457156152326351656445675617361537445453626544732675464256215461444273664442134334174621551221374724474157364731537123367422651263724433562364351463613665243363664431677726553613214663316646145677167113771353613473624522445146245246646713374635326672255772525443226731567354777777115775166732356361357315175114116616436432761511747677427221732634616441747221425426361472476162442325523654717441321351641547614147721326717155216356432516511224137362272377231256723374255277614732163434446664577737545454356762272454721177657552547376135133463531142242331215672541555261627273321446662712663757125654747756211365153354634341264752557455476445164431225551776515252137661545455737143537631622331543633716565367475651754736362346642244133661621326524137166413216533247435617753724347255717441324741724425514177643772673547773477461743634455342631212467566127167374761335351555775154733744653713471444262446137554366653357662231314723177173161426415634732146316671321241641723673577173417341141364427616612161457457722746263222755755636146214362465673522743232646523436451727366246437734451554537273751264222137713175534532225236545763376622612123767552715631615374745536621233533511171664745416713466467424777367467566254125635215143225535463533511537132526356754466152721473764231136417244243523441534574212734151621656564135471554245576762417673167646462133311725514474754634334331267412134136617357144441215542672752255761652511525262423271577666124714172454436266421151221377322613332561143663534653615746172363626266373771265743443156176235626446416727745533711416335241633671552554451335645777642457653344412756434461255656642721116443114313356724132727524135247174514346614417233425371113746757442267741521434765637741244233276416322414657357242137254677331171744215663631545162121572544555751513372664752661772753236624432613133232731116127435652444127471774231523545546412267445256315316141113566244315545522331262123631751321245617555236563612215571616641166666635357246527142623674612611577563222345227334417127571673162732465622354477253174244345553257336112246627636245763437215634667677125727123741631213224717476376472214336523716147472163143713743275627513175772741161515727423154635625326127325524675416342756353255177622645416177751716125163571211212417151172167251172621262374424776614133352371311613142212555355247563127347312563177337675443361341652627762341651624714561117354343644654772161353645423545513331634432232341477773436124764331325177412557617626363274674337571211143437331313142463163427367522527274136361615165464736666741234353665415576314143556556362425743222163653624342627676544717613345455753446112475565341152743277136644211711351721554753257517534517141352571712767565114266151422446514155167356345266676475646124164513321247174723612563251272773453724232253654346625143373562147341165423777444326143464653256323542214575751473411767464673634372623313777242673672641341633453645277516633234414771745721367755565556342755336127224137177274744422366574327341464267116725514266435324657723162572412425377636673444743734442712163435265162142476173315751343462135744562717357151322237455634141636326617645664736252311173627714745527623412276223563564166266553246237777227152422761417426375622566455471415741167347373334726375152612163561677634174321732653477672277657741154453126112471141747277365264371755466417651656164175144774323331277137225414432133756355771443574577532474146261557414375553223574566727345263352323754632254434113716632441715247645331666232744254141414526253247113363116423741455437272221444556174416467764133675646257335173623365323322135426112741763663154414256671114647662175314664211153417467522277176426256646267475756616757261111752571574424354261751647577672761347336762437746254442531411611135762761135143761425517151143146756155262715315551241247464612617635365565427164311446324715216262737476352261623756721522334263465536465514676214216351614343671565424175675527237176177633314452234754533375322443262354675353665274657227753236564623272747427347635657666212151642271516447413566355463373512516635176644624364333161422163243226746633235764431746112221544156163766312112654642653714762411426624655267354152237437746327352255542452416115347374317332266515272541612623351412752776245226145323314576235377464774721643456317742422355124763573275362547511615141276717416766476136423463564472432323365273243256721361757526662224564214447754766136224266265471146571134153542465416736666435443422536343521777531534422275142514761725416526471544327547363535345346277151731115641525463157624451371316573523471464124543534263332462433624364533346633276637252432715377137522147732453257276453653513516471674517145463414371557137473332323713721671342671756163132465631221534634651241356355662137722145321714512545673541326443535651514716451545425712145711364161343733513676441241556266426734257554245434362426663512543357715164472354174436224566744473474273753127621265717577674344613234621344426435247236115633223656242465726672426332353236551236163443145144427363517124771225134471116632464322773716427532345725236723262645134336371253377273716711237434137673523547271327531423556612225315757245255427313544131113454275763127556211352535351573747461266562636567615771727771475555574563647626611422613724164731422177575566561723135527246633115235225714762265571353261244546273115725315624563631357365153673325716657452123415544774571272423234123171474656542131413522674311133342572177653165437613772544647374545165742372234326526113417537126624412751114536311221572555576367132421431225156211472646425465467743277332151762231525361237177773324347554664117253722154255165536263142647342367573117625343127636342445573633622143136552374257714352231515111314621416735464475233357541252413275255143612462175534571635777317135653235413634416166252162122137634251621273555454413721125431324142133154543221761352575251322727123541225451556714355713146447343721743612671572321231445412456741756451531521754176354115352257465322476467666365234635473722767522653632721551473177636332541413712376561657616325323346413565257327376474365221152376457736454517447316746667615156113176754545572633547435436243154565463141721325662645477335742321161675711733622776656622416757277361261374556757544437617676735765714233611426563347247341134723534247631712752316334367513216651316371471677131763423463713512734674644133145253635175477741244625321634142761443363732737265556271454172471456774371513622316246325135375442343172164347661415447263632577134453662325315476134154556127134461756322253713545364742554667227436251567172345313717175554675732667137156224645235244131422324513537434445732466324737112344715272344671575155676313314557362222347727217716516437772346415736252165215315165732621766637532351577317731657543146246242124351531451565664641254273731132577743721271157445673414616623174161414533632616466631222224435155225511164355115177132453116734446337447264615516432776311213761613556476277147624223165217615615354333253267273614323144735425364717346656715366122436242115744444572476416257251435362573476744535675637554563636466657117114566456141736475172657656666577156115632744726636735113672652671513316424315277213125515773252444774765327231261512453152311656265754615532562552111525766155614411263656725112434476314313113475614261173725357637567322544213673233353754513566556672145576756413751456226516563343561231146121326463276256135472747264412224456225645563577336553562324565224756454443613755632223444134547256124467752256143554722535112147651327325644567735427673475711616137262147435437273373754456646563622127772656715246533371175145326432441727537464341577717525346223351553546475221222322463141152522517253143566717132412115334516767716323672573627157471325715674716637331411172721162223723514375171124276316617737243454136557256562122643535631746225637525454424646143536433527443237212167623316234627452144212436467576652122146527576672414667435416375516133116157766221627653434373755677277115113736127216453274471361212232133437452473352671252377522655151535413754312472631167143332741224715372743213416415522255363326716547734465627671443661521152763631545374167146214573665163261654141571326224256736434134563761466555576512347234166673263551727674464355671615234215434111124275643377161363215727572174325746643174124352574376247561243151134544256514155524542531766463415151667551277651446622227757221746145223253151324226531637763161614426753367312153737123232437422163751227352566162715337563645754453514642722742143775666252161436711575777315431623421246556622633713524654326571753117176772175467662467711612711323433333533412417645647737347373756221575146226213661773721767256117267763626546146346641746765577425315767653567324217314473162744615424413152723444515246555162564335777275517165555362157656136462361222772772656325643622546424553666165476554425311764241712357747567326215551421611326516755764652574525474555735761533441337634724567446723417317562147263245756536462355736676656152177424213155725353157746735553773136656115711556764772766545154556336456156224223622132777424113746714622554275661213424466177514375161346716666617351621541611252772137127716611636737114266425724247252253244331244245674636321754113347664327533151551355177215717343231762746455642776421541452476632721335374751361232277455525512625761612276445451712167641523775674665716742621633251145337627477175616513176371527123656652523522413375715534716712377354546731373532432125627627751727464361421613146462264146245346315744776176513453772316243667432325736546427176465627544223277421315272754164734526673335754627142772117615412775666231726511636125446321253463352174316261354277133176225674122441162113247771613323256135441514724335562552652215643446313354167613361547735366162447471147566541776254247677625262232246225171212126634734625535741375227731251463456742543327123344166252217357626414771432345762417336551616567552141274442242412536525575564432756277745272343627661361731515622644647361524727777225332412375671255313365166767712645725346126245175435244253254341242777772636336172727355664337445754746341366215471535335767144543356213342153732116742431545322567411745263567117774351334157335476563312663513574232465113145715674335614175565221457267474366755527272613362115242177247677516257376671236557275324442432413242363162326364214155614766341575725243466424754562444753776766657325774637335114342747237145724166665352315736453541574522433252132567731524473157247523766413511776173255635234261343542572153254174512414241656623316656175523242524756562751752312377217661116467274164362467521751162151272251212722351617571616715223453572622213357332213573464226554234336551775141472743213634573326641527526344514771322515376621424661543517261571633124653436577376344625744725117422227564353214241533347132553526141121455116424511134151436712626631177671654335353167133724226222332313371133652161713416737762214546115221677725135467374472634411213144126221743673533314667337441166627433636327613244624656734133624676263124115432233522316123315116735346657423646221562465636547443167775731324356335613376363227636546343314642716477127165421374241165327124414464467565346467123233166112544213653723456435546173472422667222676162341224761671151413672643724633271314773274212343634137523126546671377637351516262714756372256747771163227211141231637666773717717725341262275231414372213614775671524653173635767431761352763452635313722316226152161317515153447271564126737666164236226734412321577122735714725557473316146217361314526331724472542173711523661112554527722372666166366442741152431222215355634643412467753777334365576444247624265334333632666424114752375357716552214477777531352657127556667455616467457444562167162251737115576534571546324423542751165166655432212476221774251566664412261133355624637721456544334774334351616417164267334112655455177545646417525145771623717456367253146111763666465551152137667525232243241537516354562674674766422755262356236165634115615215756254113331263163656361142763462317737363522122417256252442127262265334525121372426255523626754474136612524664221145621134131461215215361156571615461513336415627331266375364344214365517567353427437377135571212742543622767322266137152631153251434127316357677423327673111547612415357115275236671672224477471733477511332755746237462721761254434575632141646651536632137246722462265562666455627634137265167346556346534412265257664614523546425362135517725454543144415153626455661442345213651264644543136115574642275637215244641326742742532215326122144667254426232337772114756561675454573154167333324636334313313241712236746112445731654375547774275332147157325722226647525436155711236133265171222217162645454344561315634344566671526714561225664116573147516516551563151262162463452667647637576565173222521771245545443535514473273534617117345723676152522362613267761762126622121726371631231547555655257153264375225312325513451455174272637357213153315265544571322762244173234442773612466246472577624444756433743325674411452622624357766642235677357121266362544213112176332112756752112137214645366465222423731536156253215671327176121274517763771527247131272222235266746755245431455451412723356164772666523275433112343445772572312577343572345656713367157442773143217551715673415734152236527734365432634435175572117522414311256623217652361151371345615456464446761657277314444562452217765443433647651512246536665225135111454737625175312276177521344256224727123632464714724675143557413715121373643244737426224573633145646775363726322355316666153566263253112474347676337136153432362616221552216266712734652325645746767756217127621235722254132636446554574526422635437655471655622517156541312675441546377574357522441414554645511665616565323376453425162566437526321167622362246512227517442525556565551716332323446537414757534323211272745367744627577367233775325336642512415261347477334623456323216451531461614754726472156622134213277445447145536577676677113444654627465471154744125615627363762455523254373716511362164214612151622241671272152312531362754371353517717237345666152311575134152444444357424113711351321133652227564323364774416445576723317643731355614325156123572574746133426655346171515311762231635647213771445446436377567613116573624315451315261127215367571577271622471533353466426256347316327522152236573143616653571531573446653277757473674563242436475143621341357217577367624256736632136363427437421567453261173767273743374441324473551771727426457164415142315764333443554626674512363711232647474751335711667252427711145342471717742633622741112214327253314525521615276563615226661676341122774775524514214637516716533635725535221771312774166157733316122676321311553163673571463135632232264335423122311551737444247472512245726321451657643777433464745152563415553647645254236665263677266631417114172611343323152442472356537531247332476722336672142321163137155227557462525374632253272574523254332377462223725134573644437655411642621243646453732537172111543736121255632667174256376677754246262326721171213641577466455772622145746266437615156724762563764372777627662762571414723362677327527522572771351323134352541674565536727117335577712351534725365247153174731577512637723434374722146446743232372476562745375767113757765377521167146233763563474711716446521537534461777345526137331215151343427177166234616632655777516643315314323336747632227727171675326751512257743746361372313513344232224532537133763723455736263627241624277114512225563356216517434637467462153266155574334326371165133273371737656326652424243463275516255351436267256437155523144727534473536455464246265736464155742511155723553276235632667216113373411212571132745541131751653213464415765217314162264272461613253623534244214724134663224224642135512147477273627325631263746153734237116137522455257415773627224556667614757326753625514177233517415567264326114566251651674345226176735557467136654752743577233733655424373316314771116455417614213756415746577261372247711173724233173661437556626144245466651473712467454432314227735414262243443773757424755311475355615222415715313465154525776423124547771672434772571164753536231725625116452753334562351744561753656467235542766355673777455563151727753526126765546146125675313424423174721116562511422272634175651267763774764345317531724334232251341652357715635611623256712231476564622632516261362711711334373352644147411327367561671735365712377723763126366256246532261162413316675327346165121164413522753313274726753772614632464735233464724527434134426711347753667146541234166613445255313311161715762125545345672321163523623734423735471136726367466652245541212415346473375133274751216762114465313262412326646254475273474153674314566717775522263772443157456171456367351142462653117525564574652472447453723277522573463733417751234213624235111262727233564663675337721454255323526451737416777644536674323165441215317352352456123133556265633163535674133377313525274713627235512372774235356631442754446372242413573336754751126344772631155426617233141547552435136212237161753676213461357532345167322231437636541221356432676575541164247334212444512456645626573512335362613241511667655347327512135764165573555754133561513573115674212162447254757326372562162662374513767774412435366654754252423265513574355427266144543371653263754324742424554567255625772322636351757232617266474255656121224153247273464423363612577312545252477517746512747431621642226653124165163754267223424472625523134543253551177232564334526472614451717464575431716333725755146525626556347272413447731537343235717776542673743476473646574236141742636117323764743321312725642747333244217515211644774276772376323647267151772276567117117347372556515633124453423444446423443632522416121655127553121772357733124466267445261255751162426312614463272357267214173212344275577145456723741153563224462722561515264267473512162414153255544616544354223614734265623252736436314132464145557217172337643415446143312137576626637163266427365372633135126611574524232774152573155372213715274657273414731312517451672313733521541212524755246315414546152534512622775513236261622327234476167242553235657577762323247627536664232466253343343665312264247125632212741315742432162417735751544755362312226352471732136644611227145217523462741254567353135366374235177556653711456323727456416223744612611112256121433411443455651243435546764677742312546125673721474151757547544616174775665267447156354247315176626236125655611717646373434245126751664541232334321151314737553357555223255512245452524121167336414337565447664422763516725761533375353221116462752432223123376535364775721756264327642364514567326126731747655521415734426264237133736233232774155761432242766772275722345656275173246573172762223734352257116617243114533623234446276423443425341163445127443221251713467732566666222734771334441453712714273262714271761234562746231433262471771421421634324417454621136475576737213375747322376757764645524427532763566531177675764362734576643151321214313312172647253533527735166211652112323521446132475472271233317531174547624437767637761774235312421265161633523677676676432373456566414467153434324315252472746734664433447614355117535665773775354127565657324225117767577767636347436225157562312471552562554312455376273163434665153223361132277747651371734334231662132135454452456517574346662642264477335173351332222656545142267647664374621754217374261775124217311647343341161132657147674426446443561734254456554673653235773746326331146475464143342675475172624566774555413731366655335134337727716575436131271757623326162774775765421325556764746262261517111717552725674572275225345515426627616171672242471313151621573555456456556773242374721712152531415354331342557126522522232425466335661114473316361553167232711645333553133564423572227234535732566134551146571272323355142635123727474411472522654221736332734437311161323514772415632455762425467475631112613265147226114256735716671122324652456411222541543334135337562256325367411675143517222765744252225754635735633114135234731567711577172674461711314231645624625776726316755165316743227612364165776621436355277273526577247547457433575442262272664555662757615657121774112443631316175373354152174364615243546667527356725434653473163771354144237175166642336666215615733551364314723626143752673353267545714436127522527124315652372467151633556637122224655443713252171164541435456661356214424133252451146212157736175717361165322471615446644741557452321527263442532317273671167226457533662146421752672371576417256342622145716113373542613544662536112225726637371754344532112475326537243326345532276741263433164141274537465342462455514151571314424217255173251317271727766131564215242142466531667752772615774426143356426472467565165246657311315644427467546535434352136717232117562431576461244662715636643255143317551526644333444336123452156527416461456172357713515263471463425274442453771611164623264332765514252416117271411272422264463244663745766116267377753172642265765253662674432373461711265475363122312663235576754264323264714236577656272763561316742371172534474372233541237251255425425711442113446633145173222173656451525147573415623333745156543371564277351513464137325234177441527157275465745457423355656634176125254724511357331655554556357161675377151216142231725512337356447376324435432666652433777734572532565237714162151334524427217464653476561117426541333116226176673243211233375162316626442442242656171334654573724516453611144333354426125565157537516276324751415156651637346331313223265553634431426573447263435751266155351613156126463422174573632537264455764566535161317167453625765422212561454364415533571774662323635125372721373246416625215557234755474777256564445431361736652241121633657626374747765261166324546623127113142456365275415356123726221143546774642473235773575276131356522413271451763564144674526744537117521665715464172563245253645566652131732661467646164673376746743156352537561555475175325232126345362446516664435144717532145111537173755545311136546623721531525625433126641165151133426411674366122444441567364366732614173443354622265443462132136331742415654436565333571116422376472532317744734451641243126346116263525633425173266314725752664623116671253662212254666575774457671561677376636245535575314742743122232153735761535315747343631155317524721636774535432366753167527613225417421774546766574123176266512354325335172772552264525334326644316761662772441671252126567455711726114213441441577773561627532524545177535721271362557753135321674423311212341361556545152614715456127131465424671556464654444121133156314167456545323171546157463672623222271165626337474213361652134457777125621644773535154351453232233254736733344716514343322735261515273117553154746564135242771251772314263577375355652416626133244564114473533351156427311215551227531371654273322364335547244457443463641462725155617455311156123471766135437145546675547554467147147753616734427327164152631645652577752646312453353751344421216465474751622756325625752515635514353752745442315267675746423474742431655411741461451365141571215452546311575754133353767147372746333275344242756373671627646153715336752516113654234436324232532465274565366775432214257663146225754422362363736156613763371133731413733261665474375764324446734114411647136676247146562236233644215372414365321344214547354751371231362131754771623376335632672115245461656466642172746641142242177656745513461512116714117345654643537277657737242232542577264742325246243136163376643133152655717545351615614153731444752251142236174364156475111255654271216542442272727756576634332142274261425656157156637612465763213632775562471476471374552341772365564335614745677746315551657125665421121616567474446225313224223666767261242211666571232465117515575535642774263734266434345336271153651262617124442425143616627636223442533654217553466761653556311745131426151125455465443721761166672744751773642377164557645164663271565654241471416755753453151461447236752121363361266544742221475317325436574134352237643176236771722566547352671223121631564453665253121747247272614777156425214621334437455414616425533416226612755431476337731572355726647631146611751714771151426217714171124124212222713137161613724535657351613244546751751262574341735653155411155753251217457214277615334764212116325555524535356257112521133345271145637314153617617771214642371416271333741241324233463261411552373547243361423256426144115354615171126556537156727724446364656576672567334451252345172732337327211366323657716343164251424447577537571277312136454172245713753746637746777124762471735436135322214212122134544674717663567222543265476613366757551447127152337757436421756665634777723747363252234276264263146456542755173432566377227655253127165362761444722662674573331643662311412656451647131771243437715256426514353546661663626362264111653744413766645144337356415126215511352542345253615634515326251622146414557476776573355777624627233765434575376355673364466167773412345716455372263632371271311661126621466336565752311532565753265156336262142746111355544243561317333352576764764123517235424564621246435235734437122135517377151276132665371145147244234253152261715274744257773741354162571621721651265674714317545264434436531615743544235666644453236773555756543236752441435174537527775563456673767143317131573544554424671767355363723636726312171452151141216145331635541461761745342457467474227324717146255242175354333274615651352367274132243177533153555453517745666362516737772411665534715112111637221225114366565431733463764767772313735563341275472657245755154316613352716137667156773777476237227456667673572677417616767673726665653644133312254254153144545344723311623245462717535152427263755315517724654166242156222157556227777771477716633232264413552373373374545666663375425266544775435774552341146575441277154443117616365513536516343472476744465456415276463345163342611626364232774525573221641214316577337143343725414126114135676565632536763275136531443256156624471664454113537573657266113166647636474715477341746756566266152134764466335471565354343362177472211741565224463232576125344376526724172615364611172174642561454245765247617477626147625763142467466274375256247254136526243522461312632566374432135131165331666731235574345177314236234161267753216757413234266671534333342467671616551274522572544177445673654746633642324564751462435235624411273466732411116255522344725457516756651732142176552616311267231136624137254455342533475533547563355162177655422676245122375355632332653637473663527322552377174447525172152431612755123364464137711622746272373661413642411125736211425336576376346644216217723644116742622641476472113654656353713676261456616456767256643563163463372647442327226253147426745373544121764125247175412365361113466261271723537547277545213315563522741242525663624611422264644326523636217167453743125344131464456641653663732336541375112261635431627227523756644713524643127564756111763462455755546344745635322222231611755564437453761563325531165257365253617656364343674461477224264771361457315132433261247263712312351536561375557767223332643764233315374325713122745272455763516151777432334536123753122527211227336462535212134321623715147361233264456261364136132534441311533351726735775572324517345315371636121615524265427211336771631723725127563221174115242241235436642544622145155666423637162526512776351665413362143447446631673112137126777326643327355257341651175111712654541262221655722177376711213311774225456654357676626637141311311143517565333223116712717737172326677747613236656447531445566111617715677313161744127364153664155155655516137133645675313671327726573365211234522422252533765756647317732164547711145423211637614735141246733125141713425427417174617734546242656161323175146257631544331244543443576115732757634727552627465132312234637225222635774365344747272424221233155237147566222727737111633657254711115155717211215237313677635447547356751613133755711212264132715154162263516174765715145641752767376524164714473275111576774363323114624225764325125316125555771221773435235756571423234111622753163445262751547771225636121216625361127315461352514367212433226156267121751227377737167224646553363475674636756672717132436413152333214616515414776111254215613157477751643523314136154676451166746145232574226731557246125225131745561742474371446473475331733241727235375134261747411333441155257274743456266374454517245252161211515262771742376157264723233344425143334447617526536227454111453176533177161242736552637231477627674175124342555333626643112175264675317134312155347335547766576166637644375614451375151761731657443546277667325466274413427574442125645544616456365647371362646241645512212151671574535764161776172654165412663644321117516725525614423274453141472612574365241742514724462717766341632361215223373115556767677624176246351274443154733532631534235252227247514112675261445537342172313437327242422247475167135444616241313426561725166576621476266724145476366461367251752123141634257121761721766775113346642126464566765151166177771344132445373762652477417326321444267324755353732112253275237275734756565233527137264625531561373162752475761774723314261246416116413653551541253424232266137752622271566734142423237556462566767271366373776252614553531617515636764725225244434122366547521425434226651516151673241126171353715431327412311517745156767225517453516656727162276614524545416365646425326436656531323667522552245127742725612565726326461737163575673775566745657621551753663343223523312227725116274362771246552145466621632433263713323446335641311262355611341741214451413117247266525227455441663241324734647676542364321775255413745331626775661721454643562243536252453244644746213517157473657526754462155553315165272242527611576145463151522221141265551531772526356774156371515643422514674265134633341272354147523663363172714317743164433746117417636346637361365775451664666736733651544673743543417415265167773362446136534731261233761461567235413317253645675122327576665572533154773461267662135775774663137446246475525624226737536124547574321262154636357364237752545516351477624371227355672617764445463433324155271136726217216553222555127535366311213225136774336514327312241711242553376177533513146116323423647725355265241522237147113455642134573322256321545562663222725322711343551513671466665377473135337464743125415555543364434747573543241453324171555224657345335712236475647251435266645763436221554515311245272127174614256272267642462525335556557247776627756142312553317164143261361153161675225363524633351677126235654644355115577364521627623647435121567411262311772165267555522343413463613144144553211377162226677147541145562231562712627242732146123237716332321523725752355562575122123757122373665472631421161573776474325454134764366331547526236176547225621322657624677653567516353515377432521413272261451531477747566443114265415735113256325333373366671311151764575714755522243471367421547645316737426227435615744117354341112715752614566351164675524362373674412664252221336716562221352542214474232354477377347672146234554135447615354225363242447472747553221421147662311735373242456443756737234133374471127445773657246151265571142512535672463157774723132622737211473163443657661463667251454416545765423621711257655574652422377217753254465573461341737271431452456715343234473637124743117264431432177514164566562166571436762235556526246516575715665631541765642424442433313714674477543751436612446612233545335664552747214174252132466733666446113321342662417634272716464231243676633132363466177317347672716416262675745324334365212213425365275456363135561121642263546364215764613325165377363623366136467266656211121647577262522525375324272223344322373423714256725456267423756517747323514233744521531472676447645676251774267552725175364242326117735134544642144545474237353364367174651334551335775517666135554675253417174227737512662464253742471133752515411462747117644131471414612163533671776727774477631671472611174454664456556236222433464154173532231777655562424767346744554237343553447317552247214171566371346524777131116333454165253773231124533536747514251661376767413524177454341432767155326126167342162137465542137155577513412347666772652525622736426516147375464264561733416673455436242312251777345447722773351114742372621727755522634145462414221352545547644427714437167441754211475262157622624366275242351773152662116171463732652477745135353652764765124536725316272617555133331121543316212132662264131743217411565226247344532151465462112753232763771634477614164623734242666164463567137221637212616343621541377765772724117241423261644621151157747242663617163471675351375573471416574265373554744673632573142213754473332721514315567741254414713364737321423244614617636477212547352475547253545146232213344422567627574522176513446651224557725626677451661633116165116565467162163737237214614524336275634753262575627551232714546377164572121371153242274466133773113452674744152577616465313672223562741545264333435264715216437715223361117554116626337242725135747376426564115766723731142555442512353223623432425722736325151331565221623256521423626647356311651512565122166131523471436316565647226637251763256416563313371176717674722721435227265417747156651767552655133564613454541667566564642241145333114352127277355145441766172544165513736756615413261456277355164646341136127662311357377445254751514531544542664131761135554242224717164547747453561764652377632232241515632667155354151371465521736221713272227744453614152525637453554713236233711273572164551716274675321145445666356565252344364654415623377175733612436773432721372255524534437712266255521733264311772545111311521335311413122464654131653614166232163225641716474211476777327352461724671673452274345245217134372573274453631252615433154266536127546114477615227153471711765576654574255246151755336526516415364744571225134242174647632462332736375537352776326174166435572765736411456656517521141114764173567341517475366432446447235556235271443313242726254737765553576226564735442653462776274762331364243556334611361671532227454522236424456751227371453776645226533515244153374444522213716641614276713531772345127247652545637447352626726254765722176264756124141334237246544337551566174717324556213327174647625774615415451137767313233617772573363735673776614746272553664254473716676167757565514773363777551751647657546724564265523134172277374361356152532342135531251477431166325342424661764541566635711127643577652437547233313165767261366636734161146761421637546455614416473222235744176262245123714366336641163566377116444155566234167653653342272223157576345367776165563121352514123173147517627526276673141212613234441532514675636527133244446752446621173464456232234662326225461463564243527532665354517431271337627344526563161616377333552576573526212161367552522556124475355521542751211266542717523353127613767275416434472563656175416511111231663646417577155776557521653166166463323312321731676742247555475343676236572514664571116764633377762674555735435724326134511151266356734631373716537453225242351215221674743444237364677323651713535625412156572537326262547741334136667765745122243171456463425227716726513326433753121167442154144145136562436635356555411625243761663542775677336273744246754353541126326117242772317123722367634145717721656146217313574642635353153146344141172122373766353221426144767473513636166465324645721544134114565747757525261754656622446157536443537413341436113116353361344117564644267434256667635354521341321115523677225124127656337354527637313763625441252137752721563466416176477354311524423724264553413434264213653125576112622376541273533365552265745755341472465416162521215544342747665146275145165336451235752246346742672417225657625147754162126734334575527314415322416236442335772451233164646361633645623257166233455675451227413717672127127753311177636761743234334646651556727237324212427633366744641627531664527232413576136624311573567745536453524164776661411451147145617666351671377266431517723736611611436625655675531623525237722223376257136526313465747453564725355273377263123462267235475211156777221136351711326342223744762751164111756167123147462676315722722524622641753271137337277762273555156443541251273347257345466143652637273232352775133161741544233415536162336636442741244321144426362271344337264472435151275651577127154617536377553472513317377312437222215235273642714435315456732153375737557243453717542327312521251663552675234634722163114476424473271471313617371526726556337111432561532122762135746625561673145325517713322645333316175365612343215326642125751373314742524767421152157272767131552166441131273222526535745762141366242466575237322366273772117345172347226733764313134433655672522746761774273735352715314213364662462662322625553745517221667345524673235426365512452314472537323712326257127667747371751323354556111637742722125166263226654342144346353646762671527142127454772336373761576766731754257335636171732331327327224321157172676426622755217252264536745656145711672176631755175561556343267161151452355542453231325153572571727255422365534751112727317677162716462611563271212524456545645737117211267721742214762656343247151772131323336661257544311725643753266412645543552637462555351656276131416162551144172267625113133757717637126133434762164775222637541635637543725314622313746331374576362336537472254576213756775556514737624763217661673267776755525232225524156154333563563461144766111753367216651237617165373671423522262323171334315223144343515761316441157214534367774347521431463337435445232551657274356411566123165542454543621651316261457363561455524471754243273232371436616664545214312726257572122155647545132742414776624613126345142715431745216777663353776532445657534637452441441167356342517464357744121366532652527543715765412526157316253557741716421216761144762712751425521722575715575622327432736762544737226617461263435417574474751465416317445475741571661442741216656616564434232332432566172114612663532315121365527116616221571767343675411636312423424335326534472153523627462624257623545322151376552234322515244136473335454474462626341522355772532175742423763364212275423332516636533665375523344673446762133736613212633326753343626716233526526156343615473147441433255431474421346647321734771235652535716347415261334346757213771345235762142772135563577521727155567477513714226175456437523647327471443153475476354227212517642721755273653534362715635275172364573433611373722233627551277646316541143263565121474341417465415273417737377111162516761137561317741743164175313575574516565636622727426746661331111462341223715316242255154377311551724146451272237354273732662141133651525635762731541734233557554241323717525712767152576143132556672373364256454373753567113352342413651416345175313662612347565146334575541342113412672146216722765435172347547111311535347152441224735262257357321564331346614635422241365224365434167234115677433667627451216762412436147737173363455442454443714356164157157516766522176444754313322737156121736522123657265725357453467473476461663261227733657525274333515554654272325317565661571124616364752372633565456334423426226755454613217457434271532115721635514115527466422242324625421424365715457436212437561454227371731542417454474647537765421442655732163247577374451361222377564467616132173243671647753213262622622534145562763146245576125411572156663343641266212654675436617215174441635664475774363236221241642416473362743443711345267214412653533252457723225352172123565752234552117713436363574726376773226674126217664412172573434243654655266221317642162431715332527315745666711175324451652576761622426124126135766445442623522514757572224747646713466741223563372243574171265766434321453632362526765576526424267612757353611763771642533365124716314343723133422617773423135635475222414136313663672335651354725646721525565755344677466613326712724276745452211677756531163774276616513352613663771544764364723516467126216566275362152471163553323344166746765433147221431625341614314212172554251173346347115275737357461536354474732666717537323261337414342711424614674561613242364236673174335637417215277524144477366676333136161272131124521161221221143365315436652164546665717731236476341114162317755554446451675646512732343675664551316174254741533136372651351627142661316773266571447625164365374562632523152732275272717346266545737314521725236155266222752736432462145347154663511324531723676756362226135424665121574577277366135246263645444257221711637756663411446743517334267267464362351513647653223147576524653222556547245122535251232114663225464347375176353161324524213535475732172611647246317163514267737444655756333351212311552311474562246764627246456617776231262747175173475531371262372315335523544444715567717246365616563336722357151746651674522424462136621267315373372361744325665271773233264714254413511333133752162415723535143624176431645133342513225667475761521354637454621263424323462272343477773132523642115546775334452733133445537124335711612545213426122367243355717421613256711342255524531277767143243561462527155531315334423531755223473744751633655421154526525457127324622176573335453125117565667522324424474641426741643621471452775457111515761564751353413562151526531722617777575732214673772164156362443553432325555244435753352377455122376547225142425213642773747543774551673517752674257361554641231527727377315574123262347734256342333274145614437765123126433467624254651353217216112334161542623351136275536447461625443527673347343464147724774265621373254677535264617613472731413532261647624344724115545131112464713777163536142562337343354433226636545222236325562516154527243736623545751513473555452144162365366532431522151326775272621267615572134176313545445276477526577366473222763437275136776161732777757212527164125732532347344635532654125233644537614741115671354643255777365137111526647426555352567277325757152334131173152616256216152656654222635755352554473324222477476217374171537174554715431711752674634344326237715525462563761161545112534461372243623272561716264714151621667175377626116217236527335527516627467353454216222215142713775677636613241761613124651743443344336121454553744247734241426153416431466243541175771516651567137772151766332452263434322571425415612111755332641134677147222763464616713655733155634542664263443144645332236553337723223533217523227743376154311323656343653646167275536444214246643567156434253372255733343771765443452324653272531423651351467124563625472733275347735165234137625277751145574222315224741464347166164362751574145661365534267276225645153233747636666342761717721526424651344326115152262272316467233621754317332131451517131667623215274735767313562542555654655265715413211353621165444132517236147712232471762272135442723656654555111357467616123777162566565154654713151152164453473563531245533323642666265724375653227454146572267365325117447234651625342314532571433133117733521513447771364544676223444547122313657557576364755766343626722263547524525343141547414716711231574556231766362457431222733267246615641141671255221334636365212174671675756764625652246174714125514714522321613561625525237732423124666737122477672545277164436751536442554634714272621741513472465422617372714534636133374645224757141711372165567573123527341737755255326536214354567151176312416144777652412231611535736666241255545543723347421564367157163371166543755472443533252271217541651526134674152534153373515671155141144545252425143513755444653576614452116361165445653421115565465224335273413167654326437177647572146756221446344176742161167737353142773731714424231436654651676323432147131674336313271776156622354677623173426367627626425426555246337631273242223316151734711636462556566123245676625617322475454521411313747537321222165336173656626177464441413626244677417165177676756423675257173554635655454555553435715533553232535413161447224451261145323746131763263347361737766163634222134224653117736133232752244167364117564715171624346435671376446141717527221323757733422553526534525477522765463456747316677543226777763351717466262313214361714723712237442321236471731477462163465672735167214155157326465574242641145755776414132254114675322526722537426277713241753443176367253546472432434757156413132757116453423565131536644416723332442211663152755241135577512735173423473727226643756547411773424656327733745542147123165255636326161253457335552574113622476422247356734757436715335721271744367237122437414475131733252466716732645121272631354567715344334346544455576761135515525363727454441777656446562452224162464322765175163137626163426135474236345264774317412332515427261713551377117631712335425377436426115355255252442666447377243215235652471335463762526667613235657555615157627215561456457773572646341145231252122261146236516613637763676635741361374311273163447355736712426665614236265465132757464256427315167624542421123432467726571642557542236461614356526622572677756743255235426744726722262552541354663527352267663564613352535662352735653761767347637466543432767252747256365411314444317653152177464412351121251726361346663173731573137141366552317355344543247227623641166145216355171564271123226572621435356323133111621133445436527773631464766377472515263726517616262437736756726217735227127272131364277266271712114546657671714242673723532734136722717171113436731422775372716672163262213666462534744673164765174424755334214451164543163552412743542464725473412257575254314622375435137611261417377115657232552416232214233475444466343376445127632244571247614363126456333734631244635753134672125172726431134161664552776367711527723757174513712457557527437572513213332623314462451423366447621243565667321656214265535461452471151557572777622341224662726377315474453754647173216514177126166747314772365216631421132145165152713472542473366431644157667564665225412662321264341667745623423235716214435455223321216712463616426436113652573735756651721312153116727325675271716673716237455766572635414125225215626432467256246431172725446161652524763121745611637221755774171253653265351233235366465364773121527145714131464123171521332643136753645267327743362555677765417216563321444452627164555654425545335657135563655764552237712557413172174664351751445762172356411137241746465573646446646113744747174272131627275252146757464271311141244246367124321236276626741244361725653574127254263155152116645637535175617745374613422632617414456476167265625327661155336216564324333442143715773112636461356121545272326717577221514454421423671317552453435556521375736212662623671156432117772131745577155337717126762272212526713663517233424336335556717361252532712746377144771647551476534177211414243341147135112153745446477557273641744667472727323161242116747424611317451652573233546657663746327461426524116332616514512277732777143125525462664535226535432631555257643412677345267743616162256765143423622747567573165174222231146311712317477357776477133366573345536657727745654635651177766422265764766764562354141262277243552362672611267325132351577624163432533114142275621146326322741473766261715335716134766737133274563412514336131146555347453672351623114646552756543361345635163255577153141237213643677573372636517434731244275652353322563166137763575623352137364527117315337327517371535142161663763625347363355215467315624613371662426556114645325465157651112271653437452737671451266344465626675357215522511656775633312265164512542425577765675362622242657431525157531541221166261416573637721526673666712721641122772466361442323732722124321332532111636174336531733256711155242452555655212275371635536735562127314162624134564767542545324537452267553166555243131415341623771127276515463211635775522523134335445236165475571261744327733375133657675346216346542265262521345724673446361325113433152334567261542237275321132416634751441357545167116641155426372711254223277617627524732613644155272524244226121173577761246653414666412225147247627627744642372611543775572517511662677273524714262561441534514764354313656366115274432524175465233564252721721552314466216166671361776211374461633213133751651717171622153522714236651257434635546641156421732566354562534311775551776652154333267656742564673362552557764517737725722211662237526674712354551463356616164221163164554121577655214715515326545154532154343421242652344216764572257364127453671776342753652242456325747115466666432727326532611543446367245135767373434211411576134763776411311431664325566745551157456227552516676247117174662776643676744225126742754164453543546237244656461276563113541136323347353152622132612232617713655312351756251564755212562473162713251356275363651513153232632744361525345274572762267623116224552745473222772172332414715746325622372534725234576747331126162644163355151513253757114225124221637154752732451155776311213644721735434731216225114755277574476472356742254175517315225315655515133646255565256211633554252133647243261637565316412767525631335251577664634474255555436333365173253243737377635513267223442353512246532652556427756761445773264377363447635661577517544343662332452626722672763633621245534771235531443634233427771235611322345222377772515767667773465617754676136745216124723113563364262742566462224135636231621146655143432212533245132766151274153771335455531155151257175116524124257615577526424643552464246752416471157242175452747317745633714745753276417256462524411115515222727337311327266431212223775426721764725256176642653265564447243441152667566563151411166623757214322517577456765126146132546467213365444414312725633657724572613342176651271414371555567136237665166163113353714762447544377476276715425664355745321376137117131731414372731645377431445465362365546316671655525561635364134263746577367556337126372732534153357342377356122223264466543341517644174132744276615253241565756143453265373122774532266344743746315624463764265641166723527723755441117377737635744745221323127565775146741133537225757112424574313717624136572535233245427171521122734436377552376624465375541552156431351347671562232172647635233765224352442432765164451553365665517346523756155674343427155745537555436635643333167333447244136775537424321654253226454511314214776142475652371634412263215735336353634412641723574613345747674531113544631143514116543237327772114561255362633455231664627617722571626354751216741227722772175366457225713743651173174314625554411442234537225234554374176553315551674342463116474125535413135772111645175426356772554326641343654142753514453352441264761235612216474155532157433544342374755317156465341566532216534764563213222371144214776227274773452713336457664415716641757462746347762541536261771555663742236153753331423432543522211524136745354517562236572754166167574571426117276412361575315134175554737631657522752131762614415173675762747132347654653243615326716574712725262241646253544317311172413715534771155764351123744253434625471117215715454565773417743424275476437322166646455716723265724655427552671655523324217435247735411455656753646177611555412474255334122717264123174362732373731553264456416121347176413744346535265724674577554664635221566442167753343724112561254777246713331237564166476766215514621532756211276615665654514274757142331272321222177676357616375411545775137361462451576571321272346156553671747326565545511531665613677151256211761535317463463243442546776516626111643611267525162257246731712532717212431413212447475377512674366326462433655132211652724313743664533176474121431635247561266554231551511233366463377445465443276263334457116664224351731576116735261647642542274621735714736523352546434721131413615427212174322616653254267342624675527241514164162377735772364644527543524134652713616425645331714661353757544646337112777644734534661367434131755775316473777563142111744457556265737766366244552153267636615435347346375333127335655642533316744711651574775632536323576136734425512753354241324355725641634316157446114521664233126772176436444322332775274536252743252136662434551762571265212517745341241414153161332441272443537374417551276524647725145311775735467556676547325337255627127712552646525413436361417261314314473566542212645415555575735367137426363523771552237117614532545416346631242436552662653237473255123716232366253453731253234643364664671237766443731157462257525114614131237174576514564712764415117733756167457432211513112463314377514523571644155327527716337167251624313477114737623723756676623116431711722436417122421421322622676766751223775111353534577161251247756262672414542125675514642757165724215455122344124675362577517311632577313547242732461741622743747421352635663756235232433721244277234411166474317152225511634364316741767731363361613564656426766673161164232461562732527462361267567616422671756363436415734164133134616267276244521561365174521123514544575313174144314225716731413177656327521345616332732625166375354226312336137774167552251112746472423557453462111156214416614663725414343621133242273734526176477337665357572737146532124734514657657414455747764531143556237525523473331734144531545112736772563143377315121573666367674575743361722763476555143713113573271636131337767546452164414764473576521653653536464714444153513774645134511764744534171517152562266761353642356633452643742131357257434711347242516772367513642767633344571425576576146117514673667234774157747516524434416166565512211626613675657223654474443334445641522112577523211762337652436314366677251243563552116774247161511412527634173461761561215224366436517573214453542631151674332116767137441126374661776256623233733155124237276565676525516122536753556211221171761543334247613417276736247367457545177525516161272774723751726773514576257165376415271476471472154434362371231273712163724274312746415645771211422732335745475711653446147252323726152565346736325552476435566161717166122626641427767544412222532543554147735116216372634267442737215721625347377321423743111224245637733671531654625333543674312115112571554743345272566755616727632722276674231167236744535541535736147136553661514521174651644337355262141437511262473161165632566375522674565724253463572466544475267557235736445113475733517361117165112614651362741545137265277216727222617655253437142752612643445467741635554716723332522726363741135131676216212536612273742445552365354315236412314525732266753312757472225165426772614724522243352411733443415326416272664271645726223571742674544565765325572374325576613113567357247671347571234173775317675724757636774743267516227151751544351344353657317267213121325313737755472171731157273424447317514622463673117314445677355316366751227627221253717617555316235743255256371427622513561421345151467115735367363443133274432156314336142762621375622143576714635372116416672721524727317272676535657627471573765477421452631415312263234315624454436673767232662271633455157535267167575412611132215654462444164212252133325332554341611756566216534646311745132556641146636447324772744737454742637145647524456157453757125533726633326361745763122536432315517473745674711517223367243575355326622412714275337577514774632464257517712432155254236546222461115166167334643357763657562142163662562534111446547144124422537716375442763236114127632465642642463341446652664376463722516664224557524413772432477672762652375653535265466743273264563251311176461121771165325744423732762173641762262372233637372665775275473672211451764361327517316246726326431516676434466441312137131163627711761634464241363626532737332233442425255712252434417573527154311663521213437714344324177774545534176331514614252623344244732614224251341624452643377634336417242667613116565751372375121662775273275526565263433652455555156666315176756575141546175664472361223143732622546522534233673142354667264355623514157573763477526215134672364654363442651417373234757331567355124362466521661214671744123752664414563455535766346552255563662424172447323732677544153742331513113451374776366353152546712152473642111422352276614152752277431136231413657111771417526735712225752723311313322554545552253575273414754277542721315252411651412753361271266357427145426414464761231341577334367474245116466155472436576541366226753554523432272346227773722754651236611255515742674514117316773225127256731424625475716157641273115234736172674533234241236366767513216726225561724542764523512562173116721567672465553246537677121522313574473633477125767167272254326766345737371423133242252417752651525332471644266673722353451647733566746243761552263412767244256436233257445633151423632667474347274522577363762144531716747413544116366434623137512624512453136641511353745352332525375444161755235274667425551143563431151156713632221363751265454721225254156342564623221341225627733561376244523115537775736611615273443371642262736127532424526237614334321547232755122354735762652415146232146453356424711527675146553577123761416251763234135732727461363661743171266513325133425454524114127527646531174776242722573215636671666642161551415727176431123712112176214252433335355312313634734354166524761424251772334516233757557343152314741151315156171577655623137352165263433241262232317112335253572211564172217543665775137156326651136646261234534435251357223111214111627144621363711747161372324744146142525544255262162313555152665572155541257115335655144762161731246622151262625474321716226311446332546155251637461562524346572335523532341443513662133557547774656142477445615375427777654653242155416363755675351442436114541166521567755556414457634555323521514662671546427166253657472655137526126264235155173457331636442425336156463317721457422416353625351276255476512541473754522174633662676556426614653341623232716215316355221111417133236461754615446413226237477324631516715376253724435362323354747122134553312124461311543271616717223572243454113355342653753644677247464732554771626114421716575523573375453762245256521133113565145365242451715424376511113372127667415663763534265247452722125223365754253536356164122214436161416213732215253762375616263172253174577622446746215177626345562173542544727635456356251214774213662745441533311137175115616247526634571654216433334755655563655551141246761723367655352242627466513747646742377464133467661731622325373117347217723373361364565616647162115227122561716156535335313431651464317555666675441214135312476534366254133122567722426357426313133651474676256341523352423354767266226615623551633267332761357315237131623211474134151456625566323427413144214717526574557336371633775311733433476355122766625712311133136372742677473712513425555762276145253542413115275631415274525323152336611321741643715635417144541675666631126223513416141164552753433435637451633374377427114311664136613557653313654116727541526342323511617231436737741716112736252542723745112726614125136341367453656243164366252673416243312441156174312147176255516453173452467361621246146154536473114552121757152265172777453433745324626635642277117227376632336271553567243462374426546442665525614252176545114667634417777552243661111165617465452132122277434723735235735716654767373623566362664511215115663472323674364223323175315136636275441731571112554174636432335354717124263315563273656532665322135246575236614334623566145611223631621333233756357737745526641334427462716375353357354747623666521471711652476134162456451746712263253451621624433612556654665113522276361464121521777655343163546766625763416451647546364673357246241736416445432525554144463527444541512547212564241655435677754441512766621261624123555356364737122411272332424135314144672375426557672134417712653457757227763637627734464466563242331373461655636543322653542256423652131326113277521726313531473161313445465615667772742226475674734471141741421531144357136637422173416472655632746475317312255465626576765541756525267312427377162631647324513365224245321351361565542613365624446253626153274444132223662453137755457265726354667713372441754163637657442276665666227573672411674762635755745644467546237471661356452251164742432475412461557676644172222726261342113351337437315136442643453617737355621573624326254451736417312361142312614447466244346177242517634265455732712636353264277461443252627532143425372612333372456164267253577742672262436766225144664612252167357577742647673416176466724244162252266444443113133663474227647156374252526131433723472115262271141556731744771212661173612142155223737124435467745265445762267173515521263741646564232137457367541423542247243223647762127167154327564171736457735643266174211743622343536414427215624444154351644211464336177721672237755474561311347112613714174431425375664734262172474114415251234765654357176225576176641467623331716555456317276177174134125351562537475237266267276773325253241415455371316136255756317224452732471237351375123611453474243446616732661111623214463632447624616511711722275436174456724727517361551553174637457135121623574632717176476262141753666757231724224334214224537545224712136121652316727551124277721423647563647177173751172613615751444324617537647346365657331746114637211275272227266763627124735421543662413744653451153165571254327627251455133412627246725243516667515643467721224331133157431217362165434547771425531246222443413511465741141212766274735273543234464171375425735746341162457172537251322165667453327537716616151217441557256214546623714615414645512667614536123124526277742427211466451245261512254264271344464444323546366346564324634171437173634211251174764415212522665575261623147257656421131413573364114266613531636461515746337566276536511775257136111616631721557444414423131235755756653747714157432263516623331247234537442251324444715711254361224777153362324157462252476735267657564224566275145213344356765164754565244164672434671225235134642211126445235562152275121635311532635611434272327637443437361344647321464175447544571254174242535657135456314461141357767314666355457334366134151317276247626664442515345242767122131765761651325666524232527533756155743221264152725551634721225243147563722327533372476161324257554543234466452112252711734542621275711451325526654154361745221452242271233116613331167274735773117441563275266633751761365774415462441161611564751241411177552417565664155243642165336347425556544244643477174223146774147526473226734264273714331232746627567112775435165357713746233134714725325162671445337543576773513215757657151215742137417327761222716175122242747153713755745166471311733366653677172511374725764136232571457757161441472115615317224573652757776134273324215655512262651156155151572243565452244562151165614523672127516254511251455475356141331633673537271436474255124727153346637132243316266724425217126443436351516241777771443173216754411346537554664564732251663577332476352337626414177334524714147316345572463245754121573375632553511451521254673414565116711366557726762126577157526341142267256347147253232237223146253413527344452516732356261416434764247313652242735373312573435745573525222337543314634115342366746412123467435175462273641276113654776444521221177316624733644222632616467513533664557253557273477761537612314663442476764775354352345446771366734173171573331666234177171147733453754234457456472112121225221467165472131716767161413645351547556327634746634654116473332326474335411715522317732662326457336662434626472733635225357215252241523216266451755677335456114331413135663521726676542371222764745443141424527417365636652752555432645711563534573276263362447223476311367634274534552273357311741663721715336722467771236376463662265465232134314223357177647336665334756352674225643763767724673325133652253714472711477512272534347645264465145356516671121264621625535264712656531517712731533624461317717174761142233337312773453575415537345342566122173362746217762644567435613425634263567521626773452536216651455214553534627626256441262251427231727363154737746622151415547473664523241645542444643713661541231614227315763346124335614172314376722163662136131564356775125545451666255467373553212711423371266246154722662331642743215446664571417111417743136244554342127611652563734721324351636462515676674163565261424151254714375175155673252111144641175577241747557331667267415763272151174372361214212132273613243551671422757711542165375576734471461644231242336544465254167436675661324432774547327744553635424224455232331126741755544721572325163717242254252461134525665237637231345474211351463156735461554476523474115353433632425264342711674345647475157432575244671772263716474455252225566434123232561151722566323645324461172335523531744323155541413253253416272664162414632525655373532212131227626161464637435376741173477521514523662556432162156375536527512354664231163313511451334275366525213545745415751135161621461234766352147611517533253435673636236163371362454436754326171463425334664624262625433275276255437363142644462655332641452317152127425573252531353557625146264365431322646112151435427335343613557711176117436472254377124325774764113715167727356726722563364763373715613626745546451631277567126531221614527215254346566646551534746737422553372135114172667652447354325574243355757457545633761735467241554172711767744631237243711734722533734232246522656672214316721375671224531424722512733363376535236357134176662144357676346123645574617326325423157141775726413363744667631573711616626411361611375775667141431734525567635126157646446542525711363132724627635523567444525326555752364156742534214147632574542257476215722114625242335576252427451471274424277634256127646127165226455136447543251273151763172625563315362436645164511621227423373733471735512432173366322473733437616271763347556216731111524257157761171535522542346457541256264354474557332575142711165274132571231617644134741341457371614763117312466773476434571532612422744774254145315351641124314657153663477724465224321533174553471756417412262123545512231675266263234216425546214176212312231767414234177663725524446677233322463716516516217661436417332775134434316261112711243275141441164527351317317527645366773357456742711132173256343772612246375213513536745354321512773237267711252645442311752224334766716727156334217542546172546145136131146611433376653664247763577414527427552723622471715123663544226272367652164225336147427674427357475464714446161715147151514641611561351625435646444561642246421416434526463166633311465611464624411363122331234564634516764467121246563736141537333113713441464513453165613176131333743417667441727325776325341565712364442426427342253715651721622257625167133761326621425526721137122741145454415217242734725732155451556314766576634131432345564321577522127112164661635271156412661634766176225774271611125161357443252763725535264356451367315362777317671454212551526656621567751111712151562157231126121277214316517626115314227343345466327152123125735577123167525365236245441663477347262511664333147773547637127245274556634466775615152245267173633371175744745435252317225146542262413217673357265525451375142371642373263637646421266325144373371621257542536461627542455716456542677643227267251325654566423371671564217136254327275654525156236224735152667332252137421337253174611515675631165273344511436736437417371765273134372142274171745725156155574271537645165665163776573371261671164262677577477716665226245436546164454333464365154776642576453272737373732353277571464755623354446576772341551631711515266615262242151316373477467441371353772326425656526255135112232267661122775464345153767417623163241354654424147766265336327647153321716467765174622455311564472744245724114723326673523613344551364277511313546545721512146534564314275326674542354526644416276626245177167533672445331613632524551461377454153331754254441724461631761737545161276515361563122325514727664574513574343531144315266662667331723312747312427261717776274231234565172134467325516417436253416765574126567422373345321347511526217721761143273641473627611753713725125122453637617373265462665266112634272566677527256616216744656142552122671764712764524322116622116322513712573763455117312274315347621232372771246767121331663427573515745254312227221345543726115456154772342663625154542254754522521211454644345144437654242633177227367664211114561545372665215221367245676611476444315663324237265113614516656543265643216722747652253533413366716514144136244323537123515144655435242655671323517632273727314767675162741115475461612273135745736434643244723552642272625311214751554762564142347561752523734342517217466164332471415676363136271322367267723162134733752354314346675725721227543245553617341116776561373316364621365656712234723613743274134535554353255461264664157571114657335163412261211666214354365743676515156375435534455112551465666547356217753536314126313542437314442273261554415227762446512654412632351347122635724172163451721214433576517713516137435764176227654334215375556571444333653574663325736551446226373725413772461614517566523355226511452753212473164133616254175657714372723174413216611635356254245775271621261512514677445452176617437511547532113473556225425425452443721613234665243265631463331476767762424213737255742111344515515425767411115724631752216577447222711753253156442656771767624755257455613221175352363351343137766134525147346776324552627233342244627543566577432121323346573136522475154134771213445771672215267446345652363523761561752372722775723522757223631717226347653742554226333456643735146174762267555261113542556762677517376534573311433171345254434314435211761233466715133767332174436361461513263764671177233432726744124275524133523642756322633431243563446152533731335151333716144433177616762465437345472113727462663743553122664537467677213251557754443645734426465566577135273271754243655311361136721643454715773427125647166173276372641342152434535323323243473324521645762345621453716334613255637634444767451437131665356673567463226525553736752242776667456324637612371765572737327217244115672553122112663176121133267572451547252572762472214431647637165253272551641211433216364367377235565733131253227537477126157164642534757765327274353365272222517754441461224244572122733364646544172351362716556772275444221264574732171471247241352125556575356151361421654772136242127717545443512643741432554572714175762425776274677144331721322623511662573413123121653756277573745734314656277422676315124264471175536235144125375346741551231341134756464177631455361537654611623431461777173242677143121622625257415425535262453566712175466124776652546255533773714334763615326213466225117371611344134425251712452314124155145312715541377517656217521236753673173642711652757562543677414174314772172271566646733413364164524235445774264741634275543243625441115724343747244665551276467245257752526114147547324435275311136144316321646732764437246117224127662515513315625367315236341663752233714356247676731564411517175231623261116116773161433574514436522152264774676314557141421255141455575215775646414317462572475434324745636322162624663252312166517214761533742344734241473611562613373466164227122446416111166447771441346612613141122122141715115151216276377714127323626721533351572432562473275131512525571147227573742211531455426771451664627667255575663127562451536626417515634314272415463637113615655546323663373644323626627227677553426724454141574765761674673742215716355152332741546637236623234745712521645252336321244146372777561753251775231763211725654754734152476565311521142234711327135552611576431612625142442614726475566556532524276613156456152131571466351534243145363332347452633713641125543141617242466444741342546761535143235163333476763227323312475212626345672132742464426757226731324247147254561637473221352356427745742777347542513145173441272275673113157735316723633116127431132433751155526621175515526463676743241457251133243624566544124122356334241454711313753637342745113135563731531651267543511126646353131444617165323371561762555513736173553563216546634734323164456465744424154632524327761466745624522373677462555217216356364145537657147216564274327255713327273352376337275636467476117442472737161723143537476546451326656762177213511264234121757131617415736756346375122423521533625576473271145114515761344517262753622243257757542351414155275563166473721727175332313622543332647477773215325157471173251513677757761222744552613724452523124212221442546334616227666147662214535562747713565326475222271521264153461462642513444275435411541266626675273453717521354235413441424324134311672755713546477654626361775345426734545222163251543411572245121623367213421636113365534652363364134744416512413141615413533712515121653534714321413243631231471322371653453716167514176132173325666664322733553433234157461723613671324531215561214733661674276455621464425263324116317561227176677137472232574214154145167277161214344477751361117613322353473413741527635654175167522151437661275251243732442357333542614614723552715372655114236614766347643331432273351151514475265732627253336445714733174653362164467575247213714427737315755273743623346351762523536471376715313614242276314457123772132743615175523744674452565166413517267177652256646274563362223424433443431757654575254573136477144412764253342711436227522463577142457175522612766617773342512636763113566751357351442665157333243644332121265213457556453327653436763375425356634512441123727454452623555214266557135236442477145337675437146635637554431762666431322265162766562547212412571443615144654154633116231463643721412226114432115435457621114417467623524267472255113166211742621773365714656773614114744132323434153555332133514236633356611263672367732356721355333677552777461626523157142316143323417571641624675114731353356522754243221424125535341466615667176412145317612315231317312762112653157617772134566731151361471555264255355553142155254224463462371726654532147365214626275634765177774446774123653346265141451261167535544347535171621526573632152134611455431337522574465147264367162227772136277451237735163512631154163367127355417414112574167214623352265123764735546735535465247566125547245641425327264632557646461244351145177633752445532537415533267475215271415543336612752536764733455276356243475367454741536223671427266273433372351154236262543526654665241511146264677625213566463152577661165723474477221677435754233311327232563232365354311215542763136142322655174522264476342552274122354432341734352612447735144655772566612114433635163765472266761346327527364657367776556775714147673745115663631542516426316623123311222671375551623574335337742214335436655323515776423167253375731514562335517426562711735476273453133266156122177477513452372631144472327322442372562731351554561242463526674145413626145213572725265531537154524117123745434526446233275214665417332525457243111633364274574345267363731146357444772512162515325364676773547524224365514774537367746737215376121667431137613552565451513234146244271415367655233667157564312135665125675562474674711171522146545451337727351751541752144347324763127232161275242451674347463172514527647166624252252715744364544317314223214642157361756514172623655311621274423441557442152355643474466676441735114247456614477741326316244341261715753643324411444365322757177177616214646217565115636245145166247272666527565317773711535454362412571462542374413725771557375456627776353614244556456643564421424423252633267755523426765442514146574671216275766437447213455171742421543563373255313243671412615761344634365513435661352323573323357132751443177665114255647262536453662745446334736565341361444413771174631475171741476544613343543554347417121324455341123377644133467537553514253111324653747464143126114455714435467755342321734246267625427162642646574737134557367451224144437633674476472167236265477734361363664333314534546565336331171121327743364146524564217152352574637633273627512351673527766336722676325617662126276461576422234524357141236341371147327263526267615622646613634151112721372227122773371262665263373476636141263362733151346265415165741556165335627335372211163673367566375131613547317631647231567556425231423767731723221243223377241774236537533635356372635264311517332216152355774743236666427461514145644171722315642641413463544257744366467512416763145514767434521351126161341341656321731673455573624534661715273136222322551342533315673714534247152413672126211443334645437154163334743147751245672375747166465122425743742166666716623721661514656552756166755766551153243214611557665614523312276315621252644722711512264425644614317536723535737177337672566251721764776241134744766765335153345353143666763476116714631555173641345644644324335146642137641344472176664415742547443647644661441557456111624112145524417267233421467371363674127172444463327761231257327611232231566245577615742156221172334561737664444434231336461417734523526576143426242416244325517273444323241523347611444176651767235571214556723175141551456644571457412357262661375454531416276345317534554642162737423655414431372256644337547742714462154617737246132475542447757416624226221336153422216444331363356111632766714247467443776246614416462757561315264221637565546216165374262414142653737126573524524243771353667246453654433716452217421646245253737215751462221451332527443171464424213361614651724376233652712363175533535212315156763247552621121764256671243147747275442633756145664563721236342371136421735633522212614637473733257713215611354414675361343746263365676376535216575335552157615345125766742452443375164372263137542441255433766427235655274511565723257632342174136635546337416212531523147361174177545417441472554647343272372711676451316466643336253514134445634573545414417144772463167533317167354136577674214452761644315313352765744624346713112317747572237437124626453265576747735125331374317771637356137733147541275435756766163217733127333411557214723711527241254656522255322353765355341365573177143377123262661316252412172571627166272631726767716247356637121141757142344253244167136612634147145762316133367776111674276674717427652565225135736136466365757733727376112734421445314242141744255415327532375441262617223331667527453345666542762253114537637512641374273141236464174641743625721241661365321376677455541234645172252321762212272147625131435235553615713244454667652566542556234425327543121611617257253327234616431426741223323341355621753434371543447662124562627522516143673641215164417257441414774711471675726546226234171353763355526515421474325231642171317746511471244214636553551152222136617757275535321277655674116422223211221614457666654443755717231653776171655634421266673415427526216726113617363472373633476467371223735425453734164351721567422633246712557254663231233472454636254155334342721254317657736513531155622367552571343332344216553662563621667257314741114635673253331723222156221714734427277536162163416634656746543214235327121247621514172177644375622553555512573655476775673334236374563454625322762763653126631462261625211745353443722443237476634126637145563241643717443315117411475523271535612313446676371451612454714276751311545444415464656235525245244265352226777555134766441374122641375611511566473771656615331514653435526774545755234124751731527274655646434241165476264271342351757644427244463122742462525154353341712137465717314554636544372625636233123524644323725773332635522545267451136561162762237512375551267335441426426716341312552336465512266332375276744175353575553334654676746577474713542223712434723574317267237641335551751115626167421457562567512467575615367315251235275454344674653445373333352314134712355146543111642375722153477767225732576227324444337435774714135642123655616364126763564265612565617116776535141156436156646126717727611573421546472426225227121232324314757133714145161613536641264624413326726433342343626413632225665231723776334571163744336541247764265656512272211675241115331341676556421657262342176217733277256343125273332457777617513133161715436247512747157731122536754155637555536144141155366543331747542527412216624142561544777174151243213544336742322375715725533747261645272216531661562374166554512667426556423522771232547426116476352347323574774126374456271232176434455746446161622367327344663527276763737537631267123266655327351247553536422631553263757613731746123475241534623332547637234443244675522614366523717173236663126676352433363254555565711716217211245531157364743421332333364425442314433463166341574647167641525147523152467233474167277173256152143462521463123542562513231747355724166345661244414775311425453245665632322345127611343515463712672354626143665747114566234645726164655563252757661436263751652473751637254453342426455142137411626772626474131373241756261332333222325475171341665664512635171313655515325453532437771374715245543315147726262435437566371125561223741152671244727767747741531754362366455613314414377474467654273422371161522273643674342227757213544673145356652232676137126157545134447375154327676411524333476113556677515156736767242515245767244234176773616516634714631537554211721512374266151463156342327137243334655365114243562315556573627262641571321645324456244234416545733723154252714461225737412457253555264711113451612426567745753341161551663127313554434447336572717255435656771256731376322172413421254643743762555714547147321653712676172561656457245162123221622713522761166725153562714335421612174373412425232512613436311573613452614167672153344571432572163321522241221436153544526167367733715331453636535123514514654556151525663257232144335125573251276342141475322537273714565214433351564524366453512772461223655114262535374342512612262423612323642225154672754356474737227463766211726517624343123716641717415337433414366142455755652163124767623364724621376774652167473161264522325617637637226525555174313665117511614777632673462172624222644626721317313562122342525137534327112154224474717343435243335751773171632273615632175633365773272424516136426173414117437247451634214221163174446157124242221413745567676277654462414231353335733471572423317757231643172434341521761143473571425621122466132214314437167451624475521761513724565141256125337666432521612314664471427443165153126372463514372743224151471215611642721412142456761416566627472566777741355413412564532423453543432446563444715273546712351635272455335671363122566471636732552626553354573225475345547344632134212547136452312156523667344466727275111165426634616175223662565424225245177662344363716315554325751674475465731457752613472124732122662432134373467762231344747362451735252711257267373547154114361474322413537657617265214725365445766141513611513632453746674441347264336527711264521236727473521651474256256316667173774144337414443271226156755674215711544426774433545464452252712414652313324656334113442776267541246367113611635345623722651125251121224414676324276577774217725236352613372435164655655475461224242433764331737515313152732244767134433257362344215433647154444556232651511156466341726643321666622227362377247273476263525514516127267437564574234253535226717713141713151541375623116732532533731141457634164556176162345637334341425411216555574513751534666324455235346235615367765157447411157572337352154672771425563544641621263121436727231263152326113176335737164777612142347612414134666453562362263576724724266562362347627146374645641252617677226363345362121726474521611711124652326745367453433716716321322621242256625764426721521543614117224343244754316311474553143654676334661456121252422177414762441474172241254363444744114414661142552776224644127515235667377373557767612466211163616576525566144153134314326435736675567336143657274534376142654435373337255643652346175713177653374731257644222467466351577575244747166752575744623542632722435143242151431235537224376561744567214312456471365376737717124563524256523474642462374365367757331757533273677246316135165163135223317641341255215731631446652515755752277234756552545612511151565453773616323262556347537635723651262554415135213141233126627326656744414321242556572724725751736633273645652221772213614423615512122515313636747177551234624576717161733415213232317543126666477577612144775231552537231721777741142347647572757243157362562677673237224114312326643513752332232456571311643274762442757274437776565717273423211456554565347231116716627262522651645435252265215117162721173477565437244354115716635236345626774437573123643455351264131723533267136652147324142362675171453113727615112753571736326146214514226176621127476413335352273644256276261463343315557414734321757617535675132574262323726442547532615465211367125247653611174167442111621661673431535217236754111221274474665142234756661565366371531361741666771475255245763633116355363541342571427235654337752576444711255435676614311145732222766551675531227271743157654766374152152626757111116424511121652377624217715217231174445661756115277622622534467671256144142163613774177454113113137154572611172574223357672213437544214464514165417746125456632775537165647456236232755513516115752671565524547473671561252753651731127772457427121176323622226313435435673755756776741433665537114656446744452363267332622514426713651655323552777643235425257762367465327675716612326777626725265333764145545525141651653655465211427223616572377566563152721533616541243113453322371626721275555333556166434665225316322441126763241767623423246766712365466366722121124455172611623151621656452653166443154346541155236214262351757613332166644151514426254511516577233442437145226671525217462231265432716713634435677531576633142535725537123666457543612574711354167743665245113766447627427566265273661326146445273274337416245175454626532576427651313354171127555357133413455333464723542544622551473744272144513316562157443712761355715122673234714312465157255413275611111534344616755653617541262754115261514376314113464457667166566314466236777571151426514532312353113636656735733115667453714141553756643436342652552616277725772417365647614112466651577563373543663361452162342337317467716473163332561677235367421466472332731375644644761436471447517753257421176663362325166342214372637762112662337553373127457771374463614774326213632255122232362622272611334274462716522134362553774166412133771121174271536125514232173417671122231652645546327734254626627622245432616373234331166451442344657422674535761534642527654111576531122666376452245526514136275262314663424272426271151674535355516264536267422352367556323157532351244763146363534521444153755124231641345215652233311717224136561764112622511634366451313727715114515171452555274153114327317137522323461746566363514345277322465637276373151171452117736772331724745774222321467771665674126322137626452575753754134534246262564456414575273661314767313244414141773544273563533242374627272575716374114374756314643335464545456325727466265137423157626313142173616745765477551756751612217327711616415165134243247437652525627711652477213637265221326611373314561621642346366117143744214444713276473637566377425731441224535246726312351212264666134145632356341111446461617316312117712247164215341321311351212324224531451271645166126254367631444121376316412111132151527422656471421452333555657264336217515344527555711465163771526457522267642737541571316625172746112347245441314565526312332427341575633471542311764735251434351442334674657171317614542675343476533132531657772774557756414744631344527514714115552556431135537654337311772423177356322434227314141761161342652727563135561412216425444671256552547744622673225751435235464432526433215315737526673435275631124176417242144227717464314761212522362427624336347316647347551643173454336163721153756724763166417744576515777275513376174323173117557421232153724365166621342652727162115434736556375277335623124124345217513572423353415277412223556411363743125443714424565616364226464752214752352735414115135667526325645242576771652262776574557312266623173174351627711661447477627573124624243434545645172742134114425111535771464257771275411113555366542232311737136166727142411257143356627613737655651515157276112531512423127774563743541467311565737212413513271566153223364343147257431713332572417142461335542561634624356537111725264317174363345731465442352554374735745413657553611566623113632246733573271156551627423223426742536127447556444535577723265252446357325374347623563665224733276754116657213216476165517214624522223171732463422341113143535216432643146314657213325632275737673176514335122134575351772675565166756372223447226655164344223133747571123677512411217653365612175275216576547127241146576367511221152741625531555771542571542663672175266753247636114373447626327436166164477573415144421474436462311236617557131534275256721551112126117264177253714641532521721343154773573432223517653254247313611411761444666247235543261121572644643711416323356233452664755231635237377333567512751241645367553316355272567631127364351721766337254114252335551517346437447572421131651225763254177754721677243266444676474113532626232221435764642321177672154347362424656546132464563644752517446727326273126364144531246531466277323252565513321775113175234763135453731413144244156365722522144672165247554271676536447612115676216733711431522575342432744633545531731174366447313466754356734421625636364331261646535373377651134537376723152236123744364263467732673574113335246534374622351245534715525241765743462163322447134636427334443237476675337474527123675622355617651632354335117112412263422122271453523367167161341551133255575554325655564474637116211546336713546434273554256267712267122134511444255643257216317436441654335572221674323344266331376474127771123314147474134667111767413412624255553533256635557756611151453161746321745542411425477416543162166122317173356527367321216625123746361372737512641574524475222525554523717771255235717452313476245636237237355111672751172531455132764711146651651155275351536353561272476465563611527366533367646175256135673173146215251521576416334257737456173114541623774645512226133171617312156251561346717142756465467537736665743271773726223763731673716516312722732233155564157351642622464657153316734614321347543636264662571242144436251326362666476274465612716561377431261656437346124575176756216253313571354217123572322317241257521261226547651242515645761271262371524412377514165572467721741362533274445537156735275316514632716437273656653466276737611463775631651245234572423336336466165552741775617367523266731711716575772772562521624343257357542431221431612265467734452421475532754137411521357363632714763657756461543516645774461572371566564334577161666455234323543512572144425334422271123454131422613116451224667127232571374447137331326442141752676266217675511636777754151156456374136225615172663557376423362131655666467367656236165137367513711567426555443467217112252244544722765542417665616621155411165457755432763763564457675346554423427374674363553332222767555317762111572322516233446744631463461673254376467422177665341521151341657327277231547645473654173131235161777634177165745422122445451367371273573623326752373631415535575515165461732641761565535412171143563441443537737777443313532537116342576271174274152412755337342216557367517241665725234757124335122242224351337142654363274731452777332767133147236664315621156367322532534131764652414177224154716361545341357754315136751567277135312737166173634541546636556552472616525425711665633635413352432714665531343322216561442661154355635512645277431327464745262626323274371121264235363771617762534245565617637452212621172271564271151542635773134427537757136546554741125616231774741156761735623426552434366517274413221325211463437574234214145676121363174252625676413233646327342461762421614573444677355326363521631172363654317721745521446132325356674262624725723674652664117744544263454747651332631226541634372737375173767224526631624721541644774524113246531525627422516773373164566224166342733776266256427125615526146773367777635643424526377152177617237137112717351735764713313363217242254555423516415115446166421444552331712473335157723523565632217553655114447355257642312714236223671313171126654742174474136741331462772215772567717357762767233472612124633123124252162371324654155461753465677215534665726415124662661237717141634323135176671461756773614711174547153663564723721711211673123676614214672364775277322523744425327751357627327237353436632476231136273365426352411764557137142146766435161137371376165117713321221264114316347316326736737463514633353775633655427422325264445232566266752237712654217636313137316245133266371566217274235442374227734263222471332352166642713335331661323452625153351146456673445635677145437356615622556557723627426343276333125617774552645237271144575522233625525213577313334451237772115477252774263325752431454543765536554744574736534277254522221173651365136542426157165641763164452522335371645552561355444154423775141671175653132367134432214475322313523317624143147622144625357611252424576224531514732523261252261542332253736211614765313522752145361526212224326724456232336433372545476711333145512526662636256534313274441765456722617264122765426747414672357452552672273512345242212673141115363563174454617425655135443463323771312656337413167724552237672272333521555526736127515631632142314671745411424227111664156264525225322274247763673773571337172724567771535524113514753127131434113124217762373744353774117244655366627615255453172411133256545265266267774653373534657175142672427346347144464751446555263363424551516423253551735673523741323172342114433177274774356663716335452763336646767457125774416441325514247734733111123734414351372163677714326637742455715543614222513674245232146374115672253615157446153616223142544343762362171135743344256472747515275333643757655321747526134215726561265462457122216362315636532312421271445541111631252655532762235355432317327524633122615214341375742313234326711224314236662613526746373735626141513236226327672667517222615623775321133615675353245356557342633474571173572427654471467525711351142341537763761437617653354472515733716116425567667645213664744641252153635514473561472661375163117436632413253442672777231147352216212353712365546156272215334465315554754113777615526656513161713562271621222322164664554163354643263264426542167557235755273677216535376354463542576363713472334217746674332527176626236476731352467256673265275257774753657725354212212441361727117475163175724456667144314315317361717326121676465514134574436366477433345445374154461247623642522555123666426245724742643231412661513112755772464151355577641137221621226636265614732522616733744146362255774665362434634527725533552776477265623177652345436223461661627557442151757314751172352447423517545744261312637141265531475665742447775237433447476342472277715241152765732476345272453673764571726125721252116626174553162432445466151216421313223662271435721456366416451412645325454612373547476241277342636362736417657134274231342315662421724576664676336741176247727171364654542122765763162726722741171466242465764563173265267375474654517146645334733263773132513272652666654416272521121525775436624213171452562744156331732665456271512766146443252174271451336266231437344227635746576645772627544617645367443351147125624176763544541311245673626741534234143411165216333124516412654377724374524345271423164645223564667327271526245417726322135623413445475647574435437262514366727374743547521154617646736556452312116553645653445443345324263334634574271765333166433365615357643424144253176426351777671436322764471135336117146247237374135435176271135655651666522642265122631551664462257437411575724626712161367635253136161251763455367576524526445652661776716353112172154436473361466557561337742351555233113433411367356421425544612546156322754113251732275142544617525467666271616621257155221622674544632463455356473471333425715573256524772447411762214666551332557422222375447455517375353527674646162331265134624565333674764351367432651465756546372662451127257233411557366342212411647141176112463551677645166336513431637542612177277355264736171453436573275415536574323627637775452333752523467257612315212112746113412664244262353575435556743765246546352112347721473351256546472455274576643736715343467244115342263644447734635472741165576333553136414527114653156156635667246561523275116515212241734623747525761371123113525741146637124266175334337757421235432216347757676321165762745267744366223222272135354164451277323742774425536153517225773115746454653315262166546471377772517465152514343443437377537547722661515157423172334264341225327525575474546145412147575726652543434373761776546653743445332626152612321331275272576154526777626771324366427247427424166176157767223663635551632764413322332247353651134623115314756427744167136525742333644574312144231647553525312455151531252575222375364655417557465542666747661712641236117175133611717724772115461575327326742433444536146467126376237153157424777454361236351221243372771134434512241464223445452211371315162442776735561234772124353524323477766572477413273525164536272533542323462544155437346721637224467632272455164647674416613524373365675254662456536277757241771337127635234471354274161115315441453437152623757477226421163727774337246547135215227152371664574221255722145767512427751736517231276712325715176352346452444351417421542454265722166735371737171753127364174616714711541644745753475344155545356241235221716524154721436373747755161623126712427112364214422436356331653453526646766527453535462326414762444231231122151344213446417116364727144156475532364737572514443744742367241133362675756337714311116356472475125424232165167537632666445726622373126335143136123473246157733174575422246661414644172116122421712545163761222627446651662135336424224532645131175163142465211253616371665571621431745314734163555334414264456421436257744563132674435765522364536465353721336435262777442617474433172475641415133434462563632366775146623654477733573651153472372225177476146243512711225666127332252321146762353454676375371335454575712511137415165134654771657236721372515456266112567377555477473444624462321233322352337271232515167546262414645174346456573753573556565735513323757735715213652241727622563725323425216746345462474456635147712344165762516465534273275722612147456355546474241571727612773327365223676546374343566557757311347152352327146614352136745776133142316452566351676172716625532247361347526454534455767651524751621145737614261737536523576374375413225315145231215156447371647412643574371134356765723163156116214663333456715713415614121124155534777435247637312173525621336112511553417413433754335121254754335423774744321716353154171477333166466172744736773272711272224524464274561175114544646155317162622352121142652326723541312417513737133357445777563257217452532236243472555245335744675742236542366647125652425323673317623467636622624412664416777347222672565366652334612354155121244524614443447612374633352753371744434112445546716461126234564551225645773657567347543465254643766652463151221365252422341134433217565774227245765246573515152373453344775622521256237477316555233561361753326554466437471356262551777225551436176143722756777166277211165242743656252357347366126257257174412671615742777135166773612733363563643457667573471471773366546124412757146137571531747377353265737145342354325311325455413733637644471727552224466134615322614672452645624747476422122755146646273561342755726672173411115613523762735323236115237667672552124333546272614536461341347536642415153613115657527765122275172242157441752547623622324434345412716654161234326611144421254714276175573637463443651232266651572312163566445722417432657656736272417667644347517552151745741661141141224661642511126133737137144357373772155447551465157273277535665164273151135315714133354447226645366773117637441144413257162766535535147733776114766373273512365241755741357361167716346611157774171516543613712614547432451442753133721311623174561645172257366772365325521241517773514132177767127763444471651657242645164264317375553242221426542736556375735666534762314556332536514445231131774513654222155341212666472676716457745361775421653142712213214741156724114556745462654115526234451253565252257735223635421335763272661326654557271665437463271512761132617355425675551531141132322534736114746447215377375421664237734634322275326167236611716422435712544674537546462462562535771611176477244221177236526671412563663642767321422555427221471556245443632774157335277133262347254137424624333265715721256523441164137622456675576272231272545655471462647421271221453472667544225364557623652775754414772657471121575661256557264746336524654767156736144732162555421312761571475472277673211367141171411457511351561562173133247457521665647676145224334751365323375564461447265777442146376721351131466524552341326542561453512725764647224462614477665633325611426214337776361631627524265147122752575516335431513575124722725132472344116651133424245537743447626254555553666231644431544272174721477255534466554231314135335747217235112661647463434256613376427454276464551621174611561232265334654533221474523114263477726643241634246427763415143574415463627112547421411161564155525465767762236377551561541265731517476414521462537677163112615776646477263341514515423134334724727677617154246627361675247653344434527544351153214475131226453227661545363421133463115227176411411565325767263542743665675547677656522421341714111371167744645643625766734125637677117214672365657466471174777666771611472542336375254475764753543634764357473434161527225614271564264631762236544726741643262242652244444667444136144237556764261426152552525343146563637447765236246523675522136115371355264127133626326171314236667124654366363665516436651264363276765313342642423376354324143353363124452747173542461122625264622134672165275552117233426345631154544763413351462575147673566614251757221566635215712611261151476614537526572333125215445543524574251332173247642473356133526176614731352715671732377373764564466172127211177314554575163563232141354316415556234515425773326632151522355132756447272613244137435427644457656422543633157662526367365122226162437632156145431357427231363362536412637644516644516642767337622473656653334122613661276232225464752651314635117576527543165524233431562354166747721774212775511764143377176713625726547756621727534774614676277172667764647142736425727417237347545635432337632574416341374231315271635277273443213231462724256776163714634312743367525637456366214676262724121451324127255174624474323636447514557361216127521261735337265346133762213126117335431274322257753462712334154177734164526734743312613136553473567276547554252523773425414143333342331415132225415157727425167335651622346671552257252213712144633715352262336564511732244541234535264424656435227312557333456123753425713766572433721654321333521163675263254427123277632655331547141567224557561112165363126364411477412261256451656415737667427567521757274731727173577565427616552661677314526535124773646736515175155217553545357167343147131651367117766254173171747464576664723734134161411722236116456435137433137636777172336336114161665641255131142243515352274772172666715531645162434361511212422617422265362771344612164175441522674124564774731323631457213366557352741341753216412447571232117737333571675317267435416632153167224674664524444517361145352777112412261533311653611135574614616766276453175173365371241641432232262136547257526366474567723356416522576535426444324114717434266151321374755533375775315451171615751211616363622422252721221223131242323362554727245557573534257274547167455267175663633126543664457457436245355754351654642231766745117744563471145233631764255742473461251411536353645144551256435165112264436274577415763111163664415733377127671632341642167547121715334457547534677166264342363564227774742735414524343711241527253142647232614367624234352425552176454311661337222656413656434643512232222464477764535224171455736253416654425424717633433671415234515362135671321374757341672436116555152751773144553616677244745632461555746463747221111234522215553742646574777123244356122353137534717677267312626364167215432515177276336267553421131261144226747666612641727352575523737442256255137333435454624476762736365222736662234673355135136432461173276165417711457362114741276327647566421332517536657455676431535524557623773757755633513376342125613565176574561364535275122345135315225775354513377116632166562433145756425166425437212527417642266155126535377343275447527475733751454236176223652327311462167564632266175121316631662121447325712321251153123117276422556417327454562677322633644576764626762136515775627213517261167662651774544355241363653672671576155244531375723752236625716277124632515535447155471253264215126513153647425443374431657462274755274657733577737562576646266555315713117477412351642635563442174765377246227455651745423777321716447465316445142237713422545537373453175731554171771252526362333711322136374713124252535565121423554757671212733547134513316447736535524756161535531322553421523317761566574641424645733476457112121267256733715563376646513535147176114727327166325322174561364375227611634533316247567335314135766747223516757714752626556373171176712362376467266351331367611111623752113162271236472431311513575173324643174111147312444635125526161654263675612633111573314277116214743433114411123313754514516447134576222573115337624476156724646426342431732556452211727723421363316451554742511642145257523551723761146553144231455264256525736235343221444151225755562455341254111524577316431245125462236243664737436451333367113643755673263676632571633163273556155746265654441721774423143331347234163647224426527251576131275331637215341112763622171615145761765126544555764345565766563363562273261556264722571317366635275425644112657443633163712775624367153666743126413711223513216634753342157472443744777452772776464611237166334621431376415675654255461571534237274325277171655313152232276722742514235245224144563715245237434716332256717335114315131755721512454673473546251721634733444526665456616354321423576163446221211765546515146211551471755577121126774645552372561722737671522735634411165325613775217211264577262634653616376677532652711462427524312562522523576173474544676761421617163535725624354747531446472673772244146731556264237363334523724241656643727737353222556142553171356153345432351613262776243562611626253136375566274314332627211372237432472247751523267351363324646622252416525671326243413755433324633115666557571426151455211444241541227175165231256215746113437414636757566372536347754765442422175763152613765522636335162243543453757142357133326362262426674332627745212326752517127361252625717115545176164256257271435517311423117716616444261312346227351532132144136673312552116731766741245552166765227415616523621525742617236726657721413465657142635227243146734726271557444361545466313621514127147126152622716545416111264615612735554146246114665466524124776313151476412433733673464215716756365444276533245536715525236123143526355322646522312164627721437611556311575357422727421414541423667442611457431622774144611664154227311545512515115531223312736352222376261432153725746271464232565625643617234427334244324151326111666257373155771436167565636531637565515233124276714164557525627676461373526245146655442315176177146167551475222176533175716725723643522753574715772311172675571254447746325127626747261461131257634621552264356154263341555672676367436755423322152325364755344112255153625261465626556263621332567265767416555437324133525751137156644625573446371625376774227226724576366623543646315326141263765336276267545143614556462577176734663412561475777465243424444437727452741771561437145516353615721755143152331564612373237512424423331555617167443512736111343125441536227227375565171722167311145212734167731417316322527567674526632332324375327351434513513365257512745574236254421171452122547621126666322141622622171222567562764564516633624116417541111177366155427313565216261254457576426343215136316241157114752722675541152774546362571422126312472276414573361236517542755716156475336627346461431525723424241272126127165644721163765337664113436242361245656775364216275627353111346454143142511343354235274515642617325633715241466173612374167341313265576323562373675234742777157367257222562123413146443754751127255176454676131436223617226241356167745424441513446727152616133753646421274255621424441633637234631562621457242414167362646572255235526774121261671746324214421154626636337366556643576326652777463345212337214272651473477761641375735352273723272353622732126145752527757452173237523716231736644216123267466713164566412526323735646166235246555324255427361674352371235741625351176642577767526757112575777626635522712117163162762151742145627473674226235534644162367574266337531342264741334144472343751714777133242646122626267533743754554466124312223476426361165463741427431262414654626465664433641674756766227625311257146572275466753662525677432547564534653423312671253732716164133525374655216476515722432242666147717476126176741653725342442357451311132151756145451314661125754116231455654667435476254366165616423571465144221751777435335237263443512437241356356221165717727263455721655774641573572413475335713615662563166345536771341213614264164344664511474463437567241671477143623213342622256244251347417433116346673275423231656624765132542417317727451175173775574377465736156751127337157556327761137532451367462426433512545434547623767135175347123574747624262254564676517344365755463544174322777361353311647546414652372123333473537161166242174571141244517241434433642475676266463517371225471743421567457317355737151223162166532611777141777574672634232442325617126732222113464756472156222713116111333544133422473571433644255755112466111453713374536223631346251317121376667236673635312336253216337356246212263565316633561221144112136156366544415362551712127537743651511566146776264456651634737426516656572472337764643647243325375263144323646564352637665227657416124465153621466752742553542523425275672375453357664743427672354263653223777326514222554545672422611333632765645366635372773344536662165354141716762513723257633622731665273474472754246675577162356444275545174463127171667576134161521215225765216326374364277677762122534324145766736474125175113214577243656356342121633354255476266312571545314515711256664345363314675642572154746173673341166421277174264571376277676343352334554565213663123144735661217552121676321511232437243631253131442532564655677254261564624227364447716413374421241321772424554137232774424775213434445621366161125414167471331665433224362272313265574754726216152475134354425134525322634665563633456175441354127552745433313517144164542776323361476342673354352171554645616345426243442771426725774572273227662516253463445431141612241564553746763233667434651643256436714411377633223376664161376332243615136222555116714413553427733434141762247161661433612364356622347436764172172335737266525417764737746445766231635745521362471713771754642454651344227247416516217274671137624767471417351241263113563617571277247512431554772214664366245356313254431476276537117655462217252477243313234226221215755277314554611233576111144265173532463152633747236157354673313666135552245443565412541231572251765453766544124576142174353672772656156232543234737357126477716165172635222635237366467341341157551153764341765114763127144261351475764532621444132554557117444514423176372345752127676626664345617311137364262314375166156573363433457377116247676326333213443117554513424442342363236547225536574156527355421661373367312165646353236254616116145465425735442277623441234154662541314271754214376653777414173366527237345776426314614555266514576513541447321243644322141133612563157114146253657312536533713352571512335153547471743727237666247237363171464644641233247325143155125536515361764227434357273472215761653371411222276745754435757456634174356372632627325761656634411717556425577164725534612564146241325176747157451334625263617545571217215224151275571227612766636151261724422643432465565163766664775116541745311656345254563352243653431634465564521447115463677165542535275163445621534362562511455631451361635526712332527717145641627167153725737163344246364147143151767472265274521356174572635353563533161571363417227771274723471754463554672142274374324127457466224411767115435265736441316455277531641762525344237764134162672665153141333156613621325143334533447645711227222413636453726471746134645167222373657535726667163617315113136375554526331227247537677371715745524115132164171164753124335222664216113422732231655351723644144675415147253476564433534121545134715523541711761444621434521344736617164375475643224461742275561562471231111566121677614224714253433547641131642733633456266775231626572616762276672257165155671772553144744373264411536335136245524232637367716351534571275131714537623652643612164435664311512154145333531133332716475246237335143717272415642153623441473447245546477737534741243421557123141524574467543137353634722635331434213663636243212575377572336372724472675623344524443324546517121563652544271653226752346231234412676163624772334222466311534165356315766467622355523454541346115755545514577644525174657675625424361252523531174773351252643575145353546231247531266314571762615445731544677563623653324434624562255433232122524171542326627467624361614216417127264516371456332171371723663574714465436474331552572614173562263632566325752237417671227567725377757621531753625716131227213753751742214223574315221334454653151354415221412232764231675354672737512433414521147453642571162376446523163546662637225375574744571453762347335522634413253656236473773247273765151422141336463344745261112571326472617753723246533253474645777747247355551274151517166564365361315533421441257242241136675335565342774252261324532555355217667534735543613634411666423254334277764552132436711276742466213643633227434771711721735374216572176331314114175217374723546436746573743354165525547153531313376357544722422273157776251423653671747551642253461457216467756245343222425633272247362337335253721453515371631156224557513422734162453274377426247725117452655353531242612754512614525562751527773221422627312563344723311563563115256441471551116417151226516727545411662131253725742155125627764444633146354557253471273776766333716332451737756426536146135771312145474516524455232256173562623231161453444772525154754243644267377446772511664572277634112537661645655725215755215261613767146343141542463262774523523131757675212376644363664236521124332323153323111637236643635641415647255627131235247145427325355152177652575627345461234155714422632617176652726466671326221573766357276274467445236371323572272741657617365223257116357727341446445646565421645655514675743211765441337763256645526127714325425263325334653547323334344677542252514351146423455612236727764323473232245277545426661574474226475122356776162726525764444166637542677611417672663453131547533417716761731132237766373456433774615675611125447446376744717277677571271373147114643641232363462433562633237141646333467626255522772364671626712645225316234776216444134127631225151571434145176633346161165377114265422146555441115123241762613431264471357133254155313511673355575344573416744341112453554211657515255526413747162327615246324315133615546234353476371134757521333614471434161522362514113265311713454427136372542113534142713114542124236277444654137645136456234556163113167445367255161645662346355667376354174121627724573647675573523452761313576571262565456327572237435676156726255333211233122345321271227122647373614747342516341567772675161112513217143314251336427516326531611422337762526542514575331224224456712611762657237677543566127566456651756145177251244613535514463347446463273212356741424275634261245113434766213111152471275535751562235523555166174455475367775143366151527246155513363221217115544353526452267751326532162274741576752521137745167154254474171251256537634647446564113464275233261144131534472452273551262615144251675151631277416774213574322747247764147367232131543723556163117115632561413616763375763561113115667156326611511151747427641152562466432223475422626552535644212372345567137511163651133737562732276746163743242657653367445742361266164471136213212647514471537656476246242164324472562242326415264177244354125556644267522353772532547274615364351677742316511164337471753521247346334464556665231361465147264237755434773651414543522327456761175632351547672355741273231746156643712255256375211231555543561465176224642613433566734421677145656561366566732411374756147165752531557547342613753441366365772145434477344535723557726556265573347717134527232671763652417367733633647321353544533221373242134521116147276553346652171334441233444257371265421317527653421544711535666614457611653757223476111263142733611562651356212652664722336532212372571726657146336627154141263522713125714711643536643357317663263476376677164447325643614563212552312211311654617573165454175254515635157144645625335712512237571373271126513315131742213447321361777213775345162356661144277345346461761525344671451564314441365343343524251737725265536363413237673164672716117727514552224551532257541142753147132426741425671126213326424232145227124267767171111354235642157711123543431457552777333227346447551735361336424715741364537466353356216453334726434663337475224462423251413175157447674633566145376634774425123357341744313227751753454225147376444441161514423527176427223364247613633115457132742615731466712164467177536551155456242277117417166165142736753611425546566631656465272374311663746524372366453431142471142322525377127267724356575636742274456135131267153622611375172221657672426644743345526555455617716775347144532775547435375757761551415521165475352425254653741737712653112653411653467264552756751147457736277374634554341646645662647733563422275564121324371167253347536271421277722743514624651276252762144263166474744436123342251467673322741717324761562136345515415747245437351161141353327261732646663545474613717256417447532727527773652343644753534467354656541541136373677366631311347735631715111741327356152314447444136147757155217245144475741175622545534653363417234614372422314567444741377741675365115361631377454761111125375143665415517631566264316432252176464336716763241171631674132241117633433431645156241432134262573566742375572477324361564323663252156316165347362131217653241557164726636562437743774772226514423215711557134722431747373143624146756145741554716123143551734452446344151336631542266535741326463421245362245231457334727261737373426245463315555527223132445466647555235556334115126532716645431477323772554365717764354141724275321522716435146234673327512331763245356311125752442713765122231546363113336225461562277113235421241562125741471661121133567221346326631544515774717232412433661543525571362753544471743116575561234723241545113662157357247637143454161345267665262221246341255522232377226214733346562425432315642772724654351625466721465726672113316713541632672414453156146351513323667153434574253577575544515156456355712371716476556422174611646574216445557521376331532222327261721676553625766612166217453373376566333726624416626437515756325275737333216661552427461276737657343417132721716357437546353337375736631144345112245112131375344136734147574274522233647667333136132447426256722244547536573176713356222146741266643626666216117345266464377425413774574524435462127161427462323714375157533461612711762742275677337245131517771273372676237617554612324576465515745345151143121472644413253124632466274212613764267531255461245473334764147446755141156735142713336644351225234637745642465757214211645117623216214777247735167411576411462723544145352366166236417461527612376123761217236762734772154146316122517647553352565365473277747653125711756425714433312623736125337221327262163537777263666412334266312342541214124252632572636354325652726141563127413663756624455343555563533154224413711714453377664532126335756517221423767311311755366233737622535766276331562676326452146121414224244111167356431266563515657471716436445373236374354525424453445417354115551371236611464121576447415117764225331123372613164632662413411243665111457542251544144215457663263174131176324312116537375365614313736146771541652625655424225657343166777144251434323175627315343652461475112375121331113154621176255324136456351325446755436555514246751726645711555553237724675331146331335236314753376372771625741675721744575374633563673175563663576563342173575145455754634233473263526737276124661476263576257516751755616617417566416176715765664161563365326475345156156545445743222461332263717536443331164562213463525144446532377722741531652322714521275241417313527713171434535111241754126767442342762126562213346445146155712256554766656711434311126734436754633323217237264625737633315114566222444457476162576562723633331342627364335344534313534111354512774733576333677251634446473256455262442465766124176544324142617436762231747641361145616232323375265372417365513531313245477236145716356225616363425641531454352253112623524553725422665733477515226322773452653435733537776767612443634361477744547224124723723267554274453557335256761373615324372722567155271616526745435161521624362316726211162177533442625626246571512523633234226573656357315364444727324737352323521565435364732525676272221554747126771631425712461217543622237141151333576361441461546737363277214431177127174132377313331652713456557673672326756671344542743312251247537663457451516262467127256362346346525653734753112724152771245211154652165652275517325426652472771366414372622372335166664133324463344763345415751451457153525274427226545325224471536555121637412425372745667227364351264361321464214427217221362636155414446625247612733755275362377137514567373264571766616445514521671356277536376376156734614457547775736611641561327233523361346336242722215266437453734373537474217513635565427575712532115256776751343233676756556733244171662667635441631537515411746456555135127665752244226767164632616433136235144367123721731424625651375227744364476777273346647444565276273742412313432766543626415136766472634174447646635216141753562341635346613776751472417476765231415241743243242322653634433365426244441776223565652355722341122137574765527177666223125363414721712371264213263715327267437223423663773323742244716124777122364743453616313431721744444456715423757351272644657154422777761433121766115362751165421747637172475614425265554562345442535545726517353171647226454331414261174764711332417342321754725455664273614741212256472517212157537356646443474721662132753351335272266224563254452556764433557317535467737456213572461744422343327165271146761337567773334551223132742166776731617576723412633156444643653446546626622174271675553141525263746731614235664745522135227157454457652366164667542146672776134671657115634323276513373473417767256167753515745615356726466464472311316667673475432234763642473634775674654223656762472175235422131727325731235245415614441324527611644547673316251653431462744636124412461133742121553532726513424765245341734257336711274265427237153527522351373174424732615527525777162416437657322115366157232152152212146144116321171777633231536657165113515437646747732465431437347147527274162165762127763135162716751171417726415631627233142352241351532433415261364321736263477644717263634563712353555374655752555674277556251327764534223127375765415474311332331713545251171676641377137174331431125642662162646717712623356333534327527125322222114317545377763325571413144466571341216767755327366431645474363436541431445117246172166637377642627674637552565466616513632716361361654732111747631522715317347575564451671665742234435167134174673337417515313525261711633234733257337272134516235437622156641267112342565237753636611135723151263421676512417174665771414712142573554545627736416216366761224363753426127722764626456355417146544117621724423215763522454361335646641154431141656321677226353256144343725731225262341274132446464722334247453312446576112346326732154671637367534413225451324226344734137155732562125653125447214611324423235475517315617453575375337763226167652572473341722451315325557555554743274641644221343175662641537233654237433144212512211515757612271534516113624776336377166267516563133144347147673533542361231217534731564472561743411646773224177572641321466572233231247563212163357422661442166572537675236545713745344322621472764645477354154462315656742722227675456414722577621475413624235336774735447517671752633126433256266663436421512671174575542117626516151733274375424174752152143715533737347117561361665174221613475171735747715734233733464465646556662565467353617312643313127165665244622651351212575131352267151675377554522734374217256375423473233211773375726431565416262532166317617151653537616651677754272143134133237673574552631547267474727533756746426175352525654515326462767573335354112265163553375255544423167715436655463757311146613366614616452351221626757173775425316617646214346431337456166731452453441262735512645612512424652137475435721571165566131272772174245621312363562257254415715125642525555715464622747412212734531172657562321722227271422636221332526665237223545575737334155311473473315337574464151114422342423162312255336775413534116344625224465612535436211563215143534256726527173755667755376213465124127671512726676614443355733636231321413624535415761436122514541574735221573353763225141232777166552475456724422645553716217127665245624616261466434645656657657574365747665143677314162661756736466273173717361431147447646632411333652242272356363346324177342574161326647175724477431142115266676137725744557216243446557416367212215612377327245572567521461312623535664717743524764147316456643225125616524176614232264132135457162753536246131663772425547476424622474222124272413745431471453144375736241561733331274353511715546341356434637263212547221432316143311254547567177464326451673626151215762647651737351237431613532642431636714127255411364556231326672155657472411243411155761134713111717757321336517715625621321644735744165122712774557353314572275113511234434735524642174655776616151313667354145431742436237731746777465534131515712255272115373213262134547732622751561111552172321635322335511726115216264574745122645111673165616437467136533455744455654154756531411524461736623272157675364246421572342535431762261251717545516577143337762172211346351325777751156371411717142266133375115212411251412415521142665224744466727766226471163361457272766545337446262221437177144165365241676642561723267367274514442177366264444646365414524116544163733752336113651531272714761417173467534546734126146437727277277547633377274775513555652611622615662321451241632377166346542732522665122135332461571336213477661157561115731111257414344624523621711121615736754125463154647341433646721533342743522247633667132417223475622137521745631327322675526165651265247443247371334534426225122342165732356317444137461424126453652344613644671423373534246174452627321775366437161444167111546642614774533317426464773114361255445144521262133113423744362617353751542651274515756363723214231647624223332114621657253473726212265621154466147245453633125635265156174643451414243535247643563477327714452624252645363366754215347451126471131424244472317141675542654524737712536167337334514371667342145147312332264337612442432566773621551115225667752317652722732314361563326714722352241454657117546735267762464622147114573423571473233321571253456471262424714753475731112237576445554727321135575462512636715553431124165271742672762366157734367572121631746236345613417324163133335522725542576266531663361614251724137714354173755155415575223435141752317127326145775465311764662761221233366273763541413672261567622144514424734312554134363432433747521174577331516123561235572765152151652576767772257213754163777126313574472363571522227546246152122473242512762254567454361316531162526167365412252231677132724134315223142722257512613616777423755476123216444435715376276242647321132554327772613453363321575621643732465376566235674135216767145351411151747764443165776515613551523741144144527737731712572747232537644351743156743134273511535121775444647154151364615367454355466143526445153222623563447776536552744512327633236574742152145714177661123115542312125242455346776764177423366427532466725663552461272253573356421677663351637277421745435763626715716234437561443441314172455366257713467437473257277621767626534446715767747356267251257232716543455163256373222146375321532577754663127651214431357122274455453133456535665221266317437275734341725671367213333153237356763537522312451571725444151715625267354576743113324162467661453213247527334746317127275355423754377463437134765767727545371616256316742655353753754131651143167137735224752377715312417624144246232164552721711643714115432146773271757151362566757372244451352663167776136474213232566233472561177271113144465123372235676764275325346744523325546672462471732653417223764327175775234475517676247371667513422231755515367467223242331473644267264155775643564212545525272611647365155542232762237121542133221346764552774213546542735147553611577164364116462246531254333524665613352763621154621146613264664346763271564672473511561721576333143553742442512263362464544571724473777233525644272441736576511341747764336132442727232173163127315314147754331633565116415637762534231236672756334255117714124276633667456644417235146147542163155354331236677624431444422641146715341464454447723256522616233225662142516243156465356651563277676212354211626665332311376717616621256517613562324646615517611673712653654224466144634525625675317565163615243151455131722513453333142422346754732646641213467114317563711675417575561513261362634712414474346435116277515635132633263644277133744663645532444531241535254371575374161554111675112165714544634365764141563753455673574257532361161576764252631331617426512141357341136655241374475531322425654617732531345575245711153235123574417773131511445157266511434775456455761751116733661643175476354132621137342154353436647427356161264466314422157423411362417326355615657442647622254313455417334236726652157231556171356737154517572371615522766517735647657241231471452345433415312276265212335466544777443175547667626437673543317721654375251246247715114457713774712551267474432543354712114423135422657621454551176576721363767421526677736523543525536665273356442231245237625267633433364521555772235767143571556231557141236631754652767356535357335443556453461255465422465133176632311167546655433365525341647442774223276153625244717555531616226641167616362116721675561552464441557657576617572672342546716463532526677572543133411665557535112264244124312515156344123176777126653375735127646662314633524647434764661662566556611414767553527126624675363132134274613651233246731432157573727437727415437144651114223174515541453414266364161161674315675342516751416446144163363715465222373272254221726424754264734556726437674415511353141517373647551515415145617745363533573151146327257165575673532716465674721753711611371367533635563363674163354564624754727424172522721647266744336134537611211564677763712677343356743623745215574673115476333761655156553265655435156525461757246764732462157634443324764252267275562722421424167411121646716125614226462423742774227373215726617422277533236436751612333735636761321464677553542543775272175674127266556645321566176626136626422341337223754234745647543444427555612634231745541235313661422571361556171376154217742231213564523161677631637357244567622277551171251455441366412162143355234443567646373431372571725454117444134137662245365655761535145223646452551675535234722176524447733617765176641453766366151535422613723632425564273123731214756151353546111667317623237341736743172465377556527513735663175672223462313351243313626415715515146575147376423744345277172552465346253272754342716637747126476434451661277734244127224246125751415515735622445151273516431236361251754447513422431613656713633151346723713345571773467467764272326221512745536637276235344753325131373416373365316242675274636453423675645264136653134763457435777466162512315214431747425561351311336617252173437445517366434676623423531741424471243212755535411772456554625476623243551343126115452341743673464672247413716546374541654255423214443473175642512257436163625347114345664542622251225733425262163621326773265414436342524333442724757656275146413237411144412614323317337234715442373427252444115446572516227273333716743271521476256521453462636326124544636765623566533262464336242636313221113461245665735461415677632154255534742627334212264145247345774661255447514326644342775123634312341125215747635362553365751323561573333121113642221467365411167157373716131526657637765637646543514735641614561664662446332217662376262263553732321654527651747471237446733226461447223321326467472447443766634111222543516464325672647246752573616254544413256756344361277446746755342174522437464122343221124722665216557124772574141363366677257677456662271552355573244743152752731517747136373254677274512771373364362476246453233243644135156435254425351127432151444151667532357622546641525123177615674657715716353256441254573554355133744644473137674122561756514227625212762265355167247354226551633364553711646366273137653631635373142354532561311634722376372142456774467536667763455616546753337241676763553541115617675563136152243231416764116776655435732756262416567466177676674536433537457727511646465556455221774451336431521517466244112524635264447273346526456313124316161527255114441313362113425145745127245656423654172313645551456272116724656134653125523271446366571313112736514226671211345214255326636741622335234246413234653415371115317634366624455772567722653774735722441243721532717114312623315217454572174357451563225516751772737417627365323512244625632623116751152117553244451243735327537336354654742366143257543474357424262657354513326745711342717152671166124515246753444672213131322432355746653567145525146452614751216722677257363756554412613272433245536554473117756421511243316734617465236546635576661114335241633572415372266757646647473321413674246766216213167765735357331737344254265775325324721557522716164521131642564337731717672274113564611774264517523615625736457726516517346117772464265762537543415475432334343513223732216362523263136462727417123337661417662321635564167137243675554636634155442237536633567147726522315723677712176753332346342324655451757742361167622746714145634361566564623152733221122636432772241137633137242565616173146355672626771214232431213133541315265557347362126271412724271343171746764134345166136332162327646744653356123623536472612154137135433161163355632562653162566611564163273531334574672327667462537236656244366735535676766634227243232155414321174655564447772716422737411233342131516454564674547144715131565772163122661251745151543266335254462274374523537344422151624442731347176452725762344553534212424457557535741637274641236756127476554641434536656344567455461341226623667443437474742171746774137721217145517456154465552553275261323441113261175635323671112747763346446664115667432712233327436673651657451147114315547213246246633717745152263534421441175133615216324231456643315463572376777512443177236223554424674244733125373613735567255617371634331643474674271767775575536622254351712411147337347717414366524361463633751774727722774343124554623275772773474567177444755533134364254564724574524551266733456125643221623473165444563577735731435157242513211764454723127524766473421671223212766461773766456316751141363525615664763461335167666164113574466166665145367176175775425615455374254757526526547341713673552322756345316372156273274465133475562437362222446356667345142421367443471633177134123767674747166143423626226341644232221726636453125426342165352615137334311265461343177217135236142214546755425642363423326251165376162656532537667331673511727551471675553125225147347511714662733122617323745552677661751361664175366411725574164743742277375676545577672552251655252413352233126777767145373452311541125452664664753766537274335413536463553341137336411342776546232771467723237173135351561355362671156752474314626355423662412662667565145476262136761466531717277156754433343466356525517577517535534177525174632575245325376363145555537341743313741673333363516454147274371543257237474123374232756616457444151265244645316633121733677654362472135623343326641734334422757221344125362725672716532214373424561273131244734234717221657233673233437654457774414447444667377513156254613712364131115565624714422347732233571214325724416116551115111335575726442243614525512614434657431122176324676261131423175562636651261223714543647113432311615412542673265541735757232554655416673252461145342147172451745517476715276322147265364432647431572374324145353312132525712765134275526223151413637172613223625456127153462534237147342764266733646755323466172727164352772574272167612362173515424151342533352567651111331672444151326672127315273413547636113632153754155277137471164141662344553151476326422363471276475633371626766737563731372532361255516617527413472676136311551666446341312444723213227757236226763716756314717342764763115736545737644675477345544244554241224137715415245312166623271735167663764434252714323215536741556646134671436637373525411215463457264154126772143534265325153522447156561572125367726441256631776714553543145575566533652534633535213577173653341314672756351734557126146325661713473671645151535547454416175276447737115522766443417142751577454451553235523471752776175255343677746213656336524634643373126516623445153625677363747316627472354732436627571526124765747717334137373275366332343152545656721425444655423266514112276775666731475274156414456151262171651564544263711542316114233453631117473233523617741753476154537531611233416777713111461365732726171324775665576271356415271564413536235725574524642513342422163547373275755447235417744125525173142562251135251712675326262713227566125147765767257723743354516556462215314112731743341665255235174235655366662166523512447354754477265725724233215466532661376746765671373736347116772252321216125576735231264215215534675116731571314247256776527374763415417561731444473314366236724274756145131366126567116742635446253167673742665633545551143611436145736333611474761557564155327144651523275355154122277526241355752143354211115431751633667725434641315627721675774271456441314677137623526126735345323277321722724116471424317244177436462664767372253524165272513455423571361237565147655315675153525164224351431135114645335242613333146613745152663341714541141475122714227125314642753431434615326626247253724411715261445737471453417436731472574324471264243412754126112363632265744274522254561173715335617247153564345674352563763527222346445134461261516754364757611244713416266274356155614311313327231413221752417335226551172335351513725223364437242226236473127317672435764421454767623573125745726372762545622411372762263177614633143337713245316624154454544141445167772417151642446125572116353163263435353557125127667111157465175351215463515317377227236174774541653533273635656571634555256632231414735331215166262737555347553634236672722631566762636374452646362362564757235133327467136432272521777316531344717156763625255531621563435663264371371573437274256535772551717356516565132351616552343521613551341217123441541416744326471167223453476734217352356617561577433767441344665623157732127271243452516532231734341435547661715363653427743245671735613611723543147572417724514726511112223671114165435441123515576676121471511232174641762444215774717267231455574362477734466176671616542711567225466563131741631723716327366422251226432546543746346261221263322355311575562756523533756174437664326465334543534227416226762151513463217764231652622645543742132477132122536524126213167566672252365467654447142164374452433551171746645321245545215563125514724122117541675552273762364255557252463457447315544244472117666715153522575536224731361711111671427162232725746453523614715115256356513115512557143323735636463323273573365544567723436213751413633224643331116122365327515666253614361633644646115656531427366546275261665353255153645171146623544273361237546264467361375267645375623147724744422441512442425255641345357755326564545113255164567725543441373151546456614424773175653336457765142611661342653263151413342347255446426553157416614145473646755521573462667627522326767465264757726455643546631163774132551256261137635312215314623227414533452666662324535466161522473256633113111232726466475547127445227632232466761541571465461434257253516745645131212341727253762617371276163566671135247264554746175224123373352466213131516324224656361621266335347563754616322116755147156122747635133624666766764612636541146732555757536436445225322276472375654462344311154766521751612252147675742564611377362561552717123173721261551622751137116376421742333463432633132255376127173376532277554637352576326342252411464524572265334423456412641711261642413643566141427467564676116212444142411335511441526317332142427134376422473456522564426533175127647422653231122372143627341152237213571115137476514217253372616636327422326276157672637266547344375231563313321322574532477444164727176447163214365757321464214576626673672314755552424553275656547436126441146534616364714572357333255212317252654522122672121165323143465574761444566145451576332645324175424651236763622711654242675375156634661476151373461174364135542526214365215444712732462274651234155614435163453667225355643166574264721547176575411145643241121667453536547417357365151416612777736322276231366324142323175474371332661425644576313635145715455572757232735416446723547431175755163216321263127133427464515373123454426645161274557525267631343621363251776117554436365461426121257474415315464751627556721623751717561231172566767755656642247241321444653743633631326324541514746723472116372776221154431521316117551763633122155354727771122143731137423146363221614515637244547763636334113425677451244251644633326343763345245173117636623425151616325653466377511614577142641141772467736666641731511525723737137476473372265362443515217623726766737377416345613255616711474212276225377234715344736636776337656672422446141615311115714751745736271545653743515516321125234136757143722226676461424537463775673577261423313351523277235535415616725166431156242671525377233133634444427526432633775544651153455222663746513175416162641667244166366752523143674412667666573321356144246643223665254253134475524532265151414174611427642423274651166615165576376543446771227616635726434215744131374363416577373175741573271773742467132712252571366455776776473552665766123464413367151761631117375265127456137467566576751172142561573551473432322361167371515774245413554226367527637677751457265737424737766741135124711156216773654451346154367161573721551443641476433452271221467753247425612152735413635656725124331472273472575445731426427233576745365735225662565647573515176772631335146646124671552142753564147272127614625416575622237517134254456457143614665546672763675223162737744344134572572677261724323526624261764445624115233335761353335764774537333133545211677135367257666241475617264116115112651776664412642343452252773515173163762543621274453661161451251561161334637756513714132177325474572536322231271763366576631371741335351513532727457237112341456522341531775211365211223557715577144326517342367211333522513374317643614751117121365636727367112215477274315327455232145114116337111127551314351776323134546372412525673145464674536153527467641214615311167551235252525465551672372723133211343262534473151251477772325637675313466127325452622512753637537471646552424373465636244621615644742727263733372766672465457255642144774377626736527157624742437733343774755662553472473167433326762272771667746316465174137372362522712261365236115515211252577752164323443175775667372536117716335671335645444334264357352264121727742537275737467225342671213275213456417223271213641227351662513752734646275327714727164354645144447125654527617322321657344161624637536327271232575654627346442146213234266321667356142177144251112335145617266134241367365123124367214775713637244412551263515255275775616372227657225445625453213624576525657656777645347226637232613455353331132325752174757773264542216533546161577216575475115473713766354353353265244725627376767266124553117547273675457426235354266544265232341642417453216133442437755417735132373342672474152415312762156671132565765236753215757365614473616775564427236651446365746525777717667332355342476346242714625725775737275742373146652375776461272775725632752276115544233173222342245721236567561255667371634767314726132127267325725154331746167561415527647712524232755752771741711614672772253716215124223321332423113313421132754455111443576752262522166172471746751734473417527772322232461675474467241572655646177322472552431111135316473261771624275552736146353113763473513715334772375222257462171452722223756566737541166146347414576131437277113266376313247322773675142172713222262224551573173373277477611344652215662142443712322472454417216526325532176477542112447711743526557234344214262472546641135326275317654415125376552535643415425157244616532371156333121561232141765567343413511644166245271575615554612162554631341274133214114663555753241625763722525256566366544343676162551164435154733762556324613511177326653461164564663614264656757772677346456125623174534222221131437353321143724435117532755771233261614137342774515662166775717345537244277411251757156656561424371435145226235332447335274257726151676517424257423556476724625534733713146564446113663655241144556167515555131133431726544562247255146715421544171212157645763122635526462546266377615671511112315771747325143714714515766211531242437562216621322113513523666132276255376252423624376552142754314222162721162454174163217374145557757242361546257665315246753541637755123276224223143777716362465454177336252674222621123653131767577543461763324426721376622111177144523723244637431561552654673127462775211765641137276565264666736335766276662775115674423213116632421237137337242642474114336111363421523567615111242653415427456131113552652452417616356211366112133512676235515515334265314335457132232245626477334662433166634646262316212143175564737345241525655117727235555333136763616772657561464321216631145153445444733113143615625412625334717455261572717477153634116743344423332512713752167363163761435776343524726323621667276575637441466751353124476666716566352426666574622144714713574362336572472251553761551153434773236277447576653362337555127521253274231211276545761146541633651361115145366252742166744236644663174511457364662117714437423123423775242112612132733476537142573114532143443545157521374417656267753177433121525767737371467417426745712313366267273244312554417223114254614624544111552126661513135642344137415235312424513664271775233735617424255437177466227326152344235367625461461541464315434567223743144614153331476131773343375673316111526742111123324641267771222134275121233345766362522511633256577311534161651526167342546163743765757467566531541616752671265675463342311174361343157331467256716452574624242477675732171737637666146621354525524411521724627716612475534326777542625716472374354635422143654737232633613154471264136233532236261454745463722252665472166213741726513462665273461332442254441552454112372122471624157316654733317721341564723116525666464251422424551627333745626426474222465636274477433127523575344755325717731471545167732421155644577277313443621336333565772567131261121467751213156536236515532541762121236257664641663545331525525746153717777463543221163245137634642143242212666322321656561444122345572112372333556753522776521646535647211344723527113413364442325214134372764347462623352135361272525255444262337432177213141162454272756376632575174115533653217541735616571652462213166453774757755646525714163223632667157666774452344236545177562152251256145624141473351171157255562517434215712762421647645674343634661323713323666662746646364666346567771433613512725613531216154723724751442724225175462473512123514223276512224134764144426627212744264244566211611325176663723321747374753774114336155755346771175746544735555272126623451351461364131645323744256141327455624744557745577114631546571656337144423411277212675152742121664771543725734156455253466612611477454155561277254662242242532573657355154175124613137264537616264333237757671252666524277161211554261166255463642445254274315473212232756516213456214724466345557763172763574152172675243766653653373461741467616166514233717416135414712161742667653375667747554426117225423623711231131725112646441474347741343477422515326672541627255143211657532123546346724725733651111266252454131675661352166453464713521176412573471537736614252742225436377651131373276266514112343277737635747161331361132643716337424427235334457725722127521354436177124766335326212534575544216125241537562245167343714661213334242335276522341275676265327542375622442324567777571327251146315261435766356447516651567614545364331126164641522516666551344273547643651345427777566554511247624512117244117777165145525642634326637554275216125731414372666347323212722442445151332172363126151411773157415234361567125331347417527236216123661631543416633575656713543556134311476756642233727611365543355677741546433667151253371156423314311564422127735252623132673333765134616712725542135437526153551264764766257645247673765574762212617476215311125226515476174336526566427261372114776546447213755634617725766371177765533553751455246141751571511627363541155234141755152223215366316664771625221327136441171537577465155347753225247115226312261237756612511123656771513334652775673454735751346246326763347567461725532321365323265255513661736732675741177631261716577767253756236743153156366466337345353662515511227544473243367333162541632513736613453716256172571766151323727711257667624645116224132374777677726716677563265127442773462363365356146225556267345644113541717544452475253712137523245511711765334665513724337212636327411677552341113424747772255126161261136373413656443443672473413521535465736444311665256436767343436275711655326475332114174142375235725124655526352563374177341154667672257133767256526327463572277256575612111136121644723274413331221172274411322437121431712436461667137661624776111364474652617677713762254655577527367765145246331647155534323475325333736654476464571365636466111743236225574554124353156714536723256211777565277646243153636531756616775153674767525722425361477262172777377766137643215744273233442652772617414511131626355712257344535735116556572754512413641715361765575464353552243415772712631147521256623361514146757257344447522656647166341755663771645321214571456576523521327611664337461137365154727372423414613447425441367115617536612363743471332267335447331275176345752412555715731674621657567434231362641451365344147144213165571731316454412247754761472721621125257115446772771477541644135256773675453352562732615713427254345545412641111414675417151117633326161444666736527271216537412154173157436341214343565437462767461715641514746363741613763263242332737221725654151352742261525142455576672366175232525755137645122663752112112545717615421526237447735146441635336437213354261334327745712175637574614153571635351356166366152231523327671173531667475345344477652225376415762262231165623272357613342213113231565674476136275355513133444171346737416323242716471774451252277214356317535737676116544752272232557312465251252164741446567612357322567326544753347423362363521654733165641257615666325454147134531131735262143643565343147152636753746554172556144517224131535522136625434613431221233656122664217173546331513626752357352553263273557513563256254421356524143413752142322751666422466441746416725221464672172734273137345126712534714314524737447253111632634171512334725427475414735721214625615141543416546271674516637322124631114544412343342634526552773467571255717145412774457425545213164273114122662163627563341161676336637342541146332411745764244117763721214211244315423221646357356652774424442274646161255113247236336671454764352351417237555661535434412217655174345261345735212665346561665375632451425321253431275154234765561637111554761234455262715375163367261355655761426155456317125554474621427225461316154715637575255557113734663724622334126777626413414771376762344677313223316156521222251257335116147371723547323534663771123524541561673241113455165454477162437677776313333673511267726624276167757611354755237365267163573472417411537326752612531446115556731712256221725317472445466335341442667572614436515663521555311545724714276653425123465553373557254754473461623455723517241427645243513252255522335625732213261774365613731524757441244475723724342234647122427574521351752445222545132135517457132277466744565632555172542427533762742646226123371171246521465773377454316217547556613656614323744711542463537516316714676347754364532611365347211221671446533171645247376743764115365542435754252777126133342163632417653451216415421334662161464644733411421453325447146265434131534264346414647475312241714537522232651532326365117344345722773327515671142777572537264175264626511467413713164347375616344136776756126526125562422373157552563462314165761556722352577556134563613332132327231457536624437777472134341472524562656437162273132235762133374162357123242363716233122436667367625747255525715741353526316455341245363736436243262643674552416632451764537564223311712476547433762177564643364726127257144216526726715472131633546574511323274276717657753136523373753215536245157134133456321667176421214722636653355524457537647613633245532336655547326272156241533161635267166753175635234161234643646466476374674467174613746424621467436367657426337732325351644623667626515557413426651576663366556557421176147422227367256616475342224435341374545564512463432157313765422653336775556126362761633332113361633644312314252442546261412132134517242474721365553562532136352632756136421651545124317613532734123145111377354765525417164276772327232453311127662433543152152314441575147143121215552767176341714765671625132262147346466314324124615171614144367325373225676522112723115522161223742375766737252564165557176127526155663567615754463242342264346154743332324231561225353512236154552125356763252363133473527536213534271271436665467646132115636373712243316274634622734144627557753316631551154655742466242227235575452431557254162327255361324274751235374232751213337277243654251473334767254215641751114411146217653241376727514673614255462424371635155161731522114532311542213316114613715261372145376553174444265756251177247454474253564137665363322341475442173622167514563332663737266734344636756121611154442656776771336721735651132236573172772572745551553457562776766477677166353121116354443734733774665773542243365333176472266567267657344471141664273144453433352356314753166155675121657213651117747445754673452314473424723234131275713474643273644327731355761727612362767426124546542677367471663721131762723561454634673553733334541561152531576373664351644111656744163355436466655273461212261766476734616544433363543654273212253746331325162421114472722454661276132154773134255624237365755114737336637354171574417356155665371344322366766745477545353243663126562611516412363337775411771324272453444415755211331761262333143211666321215746171111436662366721217751173577516736713762242735146144255545417414414774217424247255764451333264534334655737353477267545667121513237615521547177117214764175156411463254322332343475773424222273443167621155312743452723356615151367443661413611246451116677425663731326556151264133234725171567763125763611637443757561462431346751441733136273411456615151115112357553165616256335326744146766235273613514332265711524242141173614274446771321212275631256265656366133653176236557352566325713742756353662425573532177123743241356114512754534216336432636344411333713212775326252226321366747264574136325151115221263231735145435247762511621453663215227125571315474566641725375616447553232374134612577672543234162236563132454156436527774336746263242456733551524465476132736766373652465743714364234237544443273662137643135675237754121575135414627613327177534643345425237162653555216227313777334116541651747435156171143432456267154332446571325236332675144164271534111662724636573164712417737214525723116613673111611753755117553254666547737351442641147747115343733517573532716272327325446273565156126573775626251113767616255173715756366242767711377277116726327216254262362352573522543346317232147656724143414666134511331364611667571276647246243525541777472457436667555561575251645137266334217276243733173621715531451474726646674266476161363146114244655453433142622632157565516124421375647245531634242227761513246476153211754751564627716176433463272623727436474275166776651217641732333467247667517476464516572675742412446445525466325776656237135316553426261737563372361314331751636362171314464634263225547645741761112333112665214635522577415623734261571751411175746337371752366775765253435646344276137325664675313137564442215536451314274653324747737365576352326461272667333626721667347174337275326426551734747125153273647561424275262356163774623234627717151421337576575715576233634735644115341422261772664676171674451262726151271411776357267456225234527545676647157776635762513346712757446344461367363753234767662252126164432577536233566255254562675515347427573436116744572251451241766731112455477263752376343461656663773342111741346465422172267756355613224427564333215525644652577472634277355622243724512277457517714434472255513725515625574556657323772331173365145721511267155711217552651311135721171227235725157745324556661473474635661464363567333671567736376663461637476746661162351443263262641734715672462611736263423751335422233623272452665514756363415371614217536675255126424353624465645477353353172673446275466246724574531267476557233154623557352743436545514573435133525174143456722675467237413327772613321675467667536652733275375661223313151731123712375535464244266526234341464764224717455212631613626254422221542233217741244425711747311634717345566673637372172317241444735172762553245275425746753731425254442737254615446353242654736445121414422224671537253441134171514666431644333537445711225624216664437535261544571212324727547437774757677653333553726421466432541157137736272547251713253726164371375471232416433634342644663222443224437677554246674167545777344775452442531155736344322243176567436664247364261725477613124174156646374333742734514675317127436232272634231425216516441443317344563666471644565546473441112135475173134131677344315661172274145664361673163131552251351571226714553533262574543167237327452442136313733212676376433364342477773644446667161611654174647117177474752747147131336137433534554524232336433447412316343516155537362636412157727262215467316173732425256454566624746575657556262424242111471252757631515473211564177472641676275167132673235373723173351541461211324614337771373612341415564714755547163273242534171242632444741726635245571755455513676233537631525343112321167757346262456342524342654126246233167127474442623357636357374221441552531265357724611645776417464543725255124716517575375146215563176633335146111251771525446226637422766572572511613664431463347373611662243524616174656726352413614774311564245164443444473533234734455524161567343721357744267662447123541737673365433526356256523535121225224553337612631566457624545661413161434435622672446542126115255466631313176376543421532344152631425657366225172445411755564766221626654667576144524733412277133235723673543547232725376616623355166546134312335527357232234461311265261733155741777733367635176224733246564451552466115712531543257673641226463743653464656723352341626757737444622271665561226362545444546572216426535314426364642517163144464337274644427445142313223636376121242546177745651173426772642444671144755761467677343143347414274311116675154743171324742723443174115176614321531762367552135345156557347162355344613752165721527515453451677453354543761552745715662136321376623316516574111513472515547711563734716576217462732214772763133545246235166126211533134333547135651564473474336572225642137142631727456736563544755553177273477571557453432715415372511632171251336374557747621447731214434553776547334237333376413535271757351234157413546166141533343351417433242113476326243415734371542415132244575446474734421767345425321644224171137444117126243614546624346156272235756761526127574466125623652115772512163674645323334727326436327617117416374746362175236712744736731712633347277317244145332136753154341674625767173426253476374512145135621426426167616366315777113737533674457357452411233132744446332632316445423653767373667234171353623651322516215235425452261226677265227511331245111765114126627756562553616134744134634557342446326673175611315121515272327563425416136627751563655474637517262143746641657747435375761743761364672567755661733464363567777227716375274672165534273442552464366226747556654431257525162242762724731676474257475357257513772275567757631345314252267157557177656754656613544252512537515524513572276166553362452724776557331617737657636365443745434422345427533631714632476773457211346112275467462265326226575516653565676454514724566521511252147525317164646452731614755213311253214114411256353543251762323451662464135362236514141337461137225465172537763734457574553766617556476553551265723112471177677756616554141261154375645755745133114663276436545214177516472116516275426473357771412562431653535455327377625726767157314572255633455524617572412536661341566452631412214365536721711734113742246421541367754567161175617324551512577637735425324523215347736176446421334266131472134777173673557523765424326367674374473764352323622364115754144614255544312545736466761466114564221676331674417456255425236726357557513614246314242714631523361455337722456377114324127173532667433535672542644217711721363653537113612276453213114326445124516437732241717442743414351164444327412527741714213663321437775536577743147241763241463646736412371416733747236462632325112164335367372676523371764116731237162532472552434674173435327464563146315574157531241523356424163417457321635727755126364137547111755171174566663476435251136746155765775565353724666475621435454243753622357752341372765227174512126471647635172433541464363155257137233236746272566624364762521425441663661511767652412271452624551557236221236224566777154356724161225131264726516417315152753353515412547253124665627444531257547312456474116416362225517646513653222172574554313626471464455753464614164542214665436614263161321722441225546226772764512127153164432563356362112471742154271527353533161721242512677126545736753547747242365455736752527422327763677714154631534422613546711777277361716361554227417765655746176146346316353175745144742447467375221153731331145653357734773124566764276333546435763176566172567467126752336312112411361211466526537445671531142213451673651623416542343516713244521712277363643417753435236544236427657627173455563126752536252135123214135413252573562654613235647361765636165345715114675211615754264646665312213135514336521236744332317152274626467123176332335762224333462154714137446412534433755311567165677214267732324157466417476526416446165171232731726651512474356123142553715213414261353534252164361657261612343673721213632137577766615776334613215446642145136225125636562252474342245453277713425317276314665412545474733635217741151622411263331212614217721636134237317546212224424255241333237664535622532765437144761725432427113664237337112216575711554637747446752126726331322223271764771735643244157774135341761161577673467173522433746674663673153733312223775247544345635235632146577633232756734461364727413737676662116474317766716311452755735635156127441547542473547155641534352253231325461643127135623766424742466537377554255261743442215712351124265242551471615252413375532645563221477641632557721461135331271622162746743227313441664321347521727135142364436762141574541524711733536776541331656136413475366373556556534661756651513163612531726675651246344232474722214561774575372536564216447743373753142633373566435745723111341646364646267445417126737331566663512316225172642755551624173763355576332143346635424416126426153624561776232126651232144726633336114114621132131265462274751474274624417423745155624143542613223616467323726645321734421673225516365431724717443656227417643515453237232623571255711752156547216623555747336355256265514357417313677465531565213142713347212242522672345415246463754371342566642731366737454433731352525164151275424227275632234473665465163323155411527323545216574444163525134614667521265716677244652225147422117773112613674637335651364537641741353544134427462341476252356442577744451133211436416434651515775761547662272356236172461432232747125174333672524423761145362466577317743222475157556763412667557512675331677316253243625124272242442265244315244762244755416644177435263614532337555254734712321375223614461514571316121513746165626117547512261333335326613534225137213174324457673544436771323235167416141417477753426316441775674644657731712677352272251247731415273176377577544765313447343514325645676656742541313546612174627414264163661236556744545766547421251757355411357255731637414557674162731662136263675151133621521326531522625644243162366661152174756241444231555263533431435646345261344151246676241424651554312141264773726775533764562537261475535325536537314612452734763224716541315371432732367454142463765631774423676761317454762231637324533276566455627564264516573645227647535574267245775355346533465452534415243261151516443235664342624276113442546631566221772426621447343516664656135656757123714141266557555154767565563575117533643522567415175163633113723676373745235366771676253474715366235533346276115176725356656526431375551462373123624543331213756277664133273575776543117327635445535251467141651426137752754622566213463476554537534443641333622443772352321114771535122265457724335663216311711753476616563565311716437352443542121123661356171312154223471755277372672736747161317242571675434465656742756756121134314575347116774671217174717724465235772623623224444354155161536353253345737363637475274722116133357725411557253222744446667464131133666753672224521256136714317522272771471623474612536346177152473712253354524375562425446354624325534162543214163226152627322155531247424734543774613177231436223256212616352553354764711153776334344436464553227526326335754716453737765344566552424461275677535247135763452431572357366157232657552462737363454571631657572157745324537566123514717275175374312254626515527272672713632453714222625576357472562154346513725441632522357437617725362233644422475657226261343245173327613456635534555374537265765437323157643516264134427535345171142447446111746443115171725426632177144755752726241747152534511627735434331524557565564756326432534471723117556634512171643627762443536257225121461762145531441714371135267662637137334217265256727733542541634757673324453211273176543616712516466732576126236557423725626161747653224135172147713414367176373277514231747144255426244164114535626242245163512444261611333177661516733653343471117372544745644225121315531212232273346154551273614755642754277336764672457417771475451567277343252632761131732711661157767135543646255352466661156254264376144447366225373373477336754474311766114727461121462335233673335433353166235357416651564764327173322747654511453337477177633652225411516366535757111232116463635467551476451167272324547317712642736777756264174247724774774262365375363372622546441761567317445114644264465643621136216336314224722441111115367474425251712534327464575775445515157666776343165144425316262633641547547474724537112743552654332326463434136672623116464563326462331664411367553764724472725674737237671631717315771357653434147762762246356326127164252626224222537156614446452577235421443766353452254731776147272153111421455714141544634453372571271263227712525671456133374453574632354366531231566462121467747542711447324457527475771147145222423577733377463332222336453264537227112453413755317434312727414426441715457664415562232335416241115126554653224163227362232767162674563247472212524462776374214513153477557771262641131761411761417161136136145421645643715224415413535432455132226723414246626457742576745642173116457774765734137427434111432133667677216773326351413735267474762743174174337374346763572452751366775475242173546434615253572531437272117217413447342761447624161227431343323661715124261254754765742176531121122745564712371711575625561663116212161553714115365166544753354114424561263615444143137534163513456745254635312627234317137311756562476153723275231763765737724614153762475726641141341243156647265665235627525722257374672576525314236632624516644763364534416257674666157542546136564346621646535115123117463316164522424571363115511232111442341714256636766276161175435462636151566462351111121337764644146754133772237352555517627215512436732433655713261733725146521663677142427231557744356153734223523437672725173171545344657372664221227433343653626554132171267724746222456743346314721121357352647553131634161721423646673637135224421574323336511165644357472313756735451114754174572136266316726731476627315126576611627462573367447342374215166661754723274624671545176427346135332645265661257443244126743766412117526325443417135547555753735335217242626351375162137545141764525633234163222722234211725134526322735454616371414146251755436371464242642473544262716114651512641375662132416146437351756136224365154377541564321457564461412141657226272452724153131461532746225257717345556265677751223336352267161235673732512626632274133352361323214511751244137456173421567731453723121255562527447673762764232445756115754147113114313422255322126146535352264675226672126552163711765632241547353343455344443154153747164357325643217144521226644231151575641444766713455566562176324414362346135645214674652272135576335562415273134414111331533414247116267177312144465617773434757162711722663261736527627162661566171264462721714667742667247215235455723135336135123331245377132661364716443455351515641362275564525325173447365555232467721676363115625162231615433572623774732342124543166347113474565264677725237615223247152412271721427522246236752276313565117211263355671434433774525314225135255522313555331627213753366161727412632111644127151546275714775146332644647443467644554355165763536122417555734717574333731641124726367334737441421245552635157652417443757113356512257554462446521554261173631472637625454532413561321531714244541444312155236516647114125653321464724323746737633535347734376436147772217273256642567463222156663762212333551445715763476724713212533167444521322112562465156517754462427111353674145313122762167426762773132422326751262472577653663152516761213272232571762161457666236146266627133224424723177167724621557451375717462765374412523116265323362164233333274556127427456271527746562226547214735661745666742755735146124745341246333223726124716434435132666622546272573426117763436352442423717536176451353463737554131364564551562536775234626514226346735512662144144657233123546564366246535653456133167361745715355162755633171714422562756441316116433317531731473651147726156161134465432545775373517613437447643222156343134664255337512445532154372326543122656372253417372611347563656162247277434776726327355534712632265176142641444365422266677172311231147234461137513133723153374427645567337453435741454751311753157536573537273771155442574673277354133416447731755513172662223142564235211275213175375755216525773427237451313522472172722774474147163142373565136355467757321125744441672261174742517615647652456123214434543141411462265264522345766332715422463523753671344571377233333115263646244543617467527433767211146424442725426555536513273333337372636142714552235226446761314355647665156634161672657465527254132212627613212423671557331265772313417467722353643737674123632273633512423642347633732445741367654324577264411375717355752221275636475525257221632751466717747443473345263116271411551441556533164532351552513744132267454336545112436525765372715225153625461313545437127667157713517761541773457113235224243243525634111121557572724536363677342735546561736626721515543234162475243731124716721211666372721267715317422135747751236277412631532264337532246253277226266442546174427374637555226131161136322221673534127215736553762775631243443126422443246224423724617735362573436674337242624315777764423673246137472417671432231331764354611525565136736762125347537176566732627424217216537474552461456453554615347472254325762142377136323114752613741513271525746751624236623275412562713164751556741364157561341516117436135273217435154143167251252316232653213257165572111237254516432631141376416266467574433214156432447677537457436327162324641675141732116254111752761333626116623136441355777776266321514434336752715734633632642574656421765762262155447743337417115641151647715213757764217357362266473451541273671577231376446564533722266416766257113232266755521132262132141757177332642556342555114327433642542574161346373457261723677353541631337454424763122214673632277362335374755445756177667253363423666436733561375176276213453726475231143433652573322333671373134767174347626377532766345565112577576243346365452657425374115375346372641411446534516357752421244774462442415263743677676147165616445513744674261561651665765465421312517377627715264353242722664115366227312312242667215517665376135267121362575754716457457117133552564622172771512357215237333521777473672712252476437263117562672642132342661737175124545515774371474641227233353164547232123543612377333446674113657712325672174424466633624345644735367767367632472275666324227514243251211265535766465411733714342677717247723522367122335527353542454572565156375521653535673142427176346164734677666252731454516437454473775555654472516653334217166625335224773543713512234665613616331362753336531222436235626271243273577224117242516423224154262532772125637564135767312726446632142464147125447237151454332224432661316211164222141376642765537727151113133655762113716216673775123135537124734136436451337747443155531554347754537375441435472717562651415514156126562635415516566165145717324227165362123774754664471272133555664532645345743432162213425715564336635451245522731253524426215642625364511473676634227663673476761527172252533536251247542111671142263577164446354512655755256472731312321764533273471117745576762114345445127441772122115654654776343277721756247361573462157551324644656154677737727457665744715573352177557643655643632337147721357566445433732615271344341433661657514357662143654717554631221315356125174411616321376153214246775616526251252214344363773321232612665612641272527366557121155346635416713133324344233235454127774545447743275733555161737341441125671566726522711611624547623726415665477353664646747334426717661341711157336623511453115716165332343441373265646114534225244667213567531166665665232655471276211567543652647327243331711722632112166554741174112434535641743355564432246456767224777573576234713567175153752674274263553577212677711436734324654474752433565645657132626361756416125367535223727733335154362244156516653516211313645564224441256247736426241262556425247715722747754616533763157122756147552246343735612217524647754751655173727423215335411264272517676516711163414141622732443634724515416624256772164457625221613473156747566365673332424245347611325122111147541213556174731122155766117315461423167611313525633322442414142324623613745327722465522162517751442145541374316654437756226224271615362522162141413417233255715275725117425722764346472611511221134634716572177633513764156262414171662642751145415725522552722533733217314521473275767245547123317627561352413643441565442443165767147165446632317466222475115513617737474371633571325554355256537622563333426776237616455273157241431764236725642735663413632645711277633436322516215647234317222443526172735327237134156411544717352262465236163166415447533145273521761574413122763427414137556132337317151453652235276511561574721152177235533646477347536625327326435552344641517446431412344217262137354737211365147371626357216512647244355424237267452411441323577535264135551577545715242314664657365672466546513324142373771456526416564457422765561632132317163133773357523621577662116341367572263532574775146246556514544524652325416115723656434476263636233576446357163467244714643237163452227246144512645347734366415653214331146521714632736366337135465711225171171673777727564476245155361171222472711714663343267614643754115346641732441174324225611217737474451455722721464215616247132271747114616122271712474411433744247142643555714174455726162457774121415753564265633535454613723345576374662312775362136532234461341263561122322161474461574362417537225231472712752517671226561554566412461752167441547663552531317142421526246114367445622216346354636772626537275133736267724761453444537314333246542467553162326754541471735252236415554152225222577736743677125765443752174636225112116317421117755342472256267711212233174216273737211435355355475621122563474767722275632361222673127415744445457566362631642143565435243771546536554641135442711555471767745627576372375241443432361351455141127741222736272654773122257174277174336422252546336751266215727657472344462757672577637552363351311535314622572763756134273537652146566352522127425321151524523726515554635131173736254327771264146723316222343747664327316436253745376211454741631352313356163551321242411274461426567114734413444477742752511654532454167521165544652166351336112457765641161645424533377544344573572467515562525172342416132623164434424372544465621173677272512165447761244722415615176126367516342251216777357231752563423473321556617427456372577666337577233372373344413254434422245335361522752316251476242674732666524517124456364434457641444643615376317145714462126214261744246775636643444123226251566674427227712676244666222756735725467473474555512372224332235137766137377166657271322155317234232755715713717627662267732746552166667372662665763212315522461677656517177376764476637422751741736727627657565336212264352467662463467444433265777336755133223463141726462177711753741474116456673775653754755753447527222267167467154462151676233314437657566636543213531511545765532517665552336767332424661477263343433371444354471653343373323667222643626445775174431771333522554732334311122722464565631223411274347177211474644423216221651711445556666147423775415241446547724571351254237647572337463457352732176225747124264341271646773276325351754167616434563567357777533467475224214241527215134134227467336162613331314434347763415544417427577244275631264274544222654735626733453136246765342173272514475471747352216215753353614214644525722661113143631377662272177652365654166362657116175236436335653452767527126736747562336371167425734117722735632672145175174257742544557743546727343143664471316663441445132745761475763544565464131115722127525766466132522361675716711222215113653656142461661473374426751451156345461521716246517242237214321266134326427244236143477411143362175627462417142767436471415134354147126261314514647476551354713426431357421271556536514541343614657716741757245111672366414714563655553752775577576136676316756443231426617477467473274235245712435517461337376346676331145547723573533676737764665437655533535224561261164764444126213677264615466475613211766471222613632222162633325755265725257551134361677763335143652364173751265713773713347753457517227536564366655366513421166256162255243563562327212664763577531645462152321462523712471162144232711226552537213574755154471115426551426513623315673411157367733627752743335766566131146176212463572777332142722635653672523671342442576173215562266445721217445622271771331211331315277322366151261411454766731161712644773672131263447245742257442545356556762222456462367574632717734523432654731571126776562164751533176274677167272173141361757744454314773773622232537165164267635375766466661224577517346765142561467326325556227271244753557147125161113667513624142656234242255173114573663256574151675432641341761331721347226644124777274231431573666132755541244754664227454433133135432217435222717433571145467674331652624347431575145262721121554652734562625615533352555766754441645433626427263621776466463147345772374236265547747617556264327227366773631424511673541471122145173174376547221471156337352656477116457234356437646663527116756657626552317162166745336347146134717675726144463371124647764661363363766614443672775471511376436165374356733313624365546515542442211757552214616236623573457535747154141453733767553133571454352267613142456754143357637715434764754461635644441676651662545235633262365242676676575764241163547277435253532433322211746744432442475223467744215527613521363536777521171276737511573256326572572465774234127712352617633422573151642454266177325576662125474621176254664613534314213514365767261115614265441272532213543441377522373111566576673113577745115166227521761552541752431526546254317271361355623631214476253212632561727166741245356616643354537725226145732156623625512247724636542576373427472174566213116511465735574746717327615627121773142645536223133775176657773774511715561373717226725724713322663153642712273335141732322655753352746237567112626731254543247675172125774175261273321175322313233345154655315425746257622254561136753547311753551566561176656162671244316423661157736157145645244262712654353351465213217715431161362657375644114535766756623641117275226712513166666574557154155215721732173512571442127726445355161253473764143311624717563332151117547756552223275717656323531651536633472123455255244165452647132615166361737554372712667163765147775725727616336647127725334252161754446546412375477373237664172217665432312532471432156745455775663337667754213351555352121622411154733137552217265134447631773772415122117331361214667644134625776511623766726237535621244627421312574163775522575461524316452422662362672465654324375137166347437757257525273745415322431254336225242115744342173744171235651674412732437274414711437542441537173316653512343644717764327413534764653243461155567467223264546236734457621145724773616334622656441177172117712513713647432536373574524146146411622317452626666247632336254124271331276562547465457724632253764731257747214363727113566724422134143356211646257352532433776312127445375562326345641725415456567625455323566523317421373737637712461124573555127762111414416471746762453721632531143214745614711621166351443635732363757552253354462321464767663113312376624151621263232731717411653712763412615623357542652614111523713543743536153131336521232473115353767443362665122713236367771437125762327527231342755724714761673512645727653126214676577176277542145647624235257551331351362456554341334757765644716153212466345171235543432237527546767336363173317163447662553621436562422621362262425324662345317256432523142461544315774322154263745231635174251712511344541251465222216725444444615753427545615447757553427773465364636613573351346325551567146676363265446173241162651121144735764374157771324344631134151664354123442533675432735332157247616321765141437274417344551676567313412235371411162126414673653614165221157332437653533222517113611444441364631616162475766116377533211347733115734215724525465442162226332744446161552345124762171432365552235235213537352641751214444233545251712366324677616127663217563312422761622214374111177531417142324522524136476317337313564671124465157473353225247372567357362641547527156577434454633751726122377352377157712451243543554476736155224223223572517154442121725622433166372752323242776321422114351776746244417724335166337441217417324441712174431157112166321351314747251572336454375674545573734432561537164733563363736526231775143237256661131576763657562753471734643631755125124522412776347353147323537333256637161472425454667533775143457353373433664633213275566412756115434716276751272422312164362373137422451247371653114422152321725661237454414512134675214346542441564521263644156447361135713147135617636224532616645741652276222173267211675176153661655766727336645666147666565144241151664527414213127116764412227226424176151413114136635415737664645355363544745541534217772771354222751344651535772522433634172524723367665151641223565152461644465715774472565611166165234431766667476246326277236235752425415475444361312344457212121462244674452177232675234166461646752353137457414663575323264447256525142176246545126757417745172154561662616563314213255262673277165255346234575216644462652112217736674411167622625364553175226322372754753755157716564765527362613711516115634634513373165724326736171173665352132553761614235131742152351217333572172252575412616125352574536216426545736677757773421571344376137115621611527617252342567226733255647132213264221455625747763372776172212632253411314177167336536345577754172553774314414356342216165153513761351112554122156376116725475774133344522244442471421314754663377634416542377446621144441727361454125771233117172276544747115154466267413635644175761365377114562417451154641452157417237141627171147355742217434576431455631557654723527731714555327464341325424226477514614451174154677753415237711172463222433157537524176613724224473125271476453435256151342775545741577632517754612516554163631445515572762677351542417127412456227111276365424477742153725373236136147115641221335434736575112736654554432564626463177656567164651336773242634673124172762771365522421636233612333644743343313254315512534725151555251675335554225177443136653137666756572351172711756361167562651566545714714216413242461331627615653443745567347665143276467357235412127667614674311641417546673543754154135625257245476353252527124633235717645761542361716261273765312213277767243572574324353653513624344354277541721464121517761254771446766143246315127361266415716263172116432273725744772743644473113214247377772566276473171557151311726766167347277247441525434664777676626643564577555737414174674664555443722472461154144655245533172736232462642761474151576341662275122372567765745452632457657116121457536436232777263452541442464523575552475766125472645123451122413367421331132572176711256461632267343366412673213273322152255364417756536727247566221437644413755754636632567645557732627252667564167153432325174766352267466445163761435556466276133263332165773313557345214224727255677726527257644667311734536454235341333252256735766272555523347215341556174776476436624476144255671667576217157114616446362717577677561511627537322256125326377461537621173176221346362223252327475467576127751127145376635256326755746151746267115744736554476315221135334162173567372346177741464571434742362552512736156144213653736424642247411625522536357656252225612135216212163356174162727243735257171633133477371121233357654372372575111357311413547275263623252422244361433575252172721222437713336676131322151351663675252263516515412535752111117577316545727767547114623725145126156134646556622644435631454266714717515372365551114717766414276717161527757444666356454224755657655631736623471246115636444322227123216117451566417174147564125736461363341527352411715774477363332562736721167327511327157227443713227232357212353315534445322724345351416547665237772336172373747576656634522464355622632763367341246242535163632333537135375443667614776676372526112215756632221272613613533726746161766553774715315667233645442451446315514315756645562256613747124155537161777653433747632241362761543563763161525733117444473772176545155353334237451536265565775643452177443277136321137177776473742151216636543314526431422371766114446423211441123166132471611542376337552536747257263344425571731555542625622656666123464245247426113315167354233146326144677742643214723741565212745762353457644266571166345766374173341525573313372323247757777477645736626267421142376274174144122524517345326524745674315711434717451315147121526216747642614415353415222234316247255131333664511252674117552416523236452651232347531243221462353765724122145372445573134274331621413225341117355136331157623616751474131251326233776114267667476535242367522334634556376255335127735374347412216165624453327141145765431313633532235714345251375175531772366733366167525343572373156266534421651566651314664135443362245716275265153225773527263622136636647476213635344726635227433326314265115572226737724545422764716454165745271773676253125334136673323126545746436364617542245136551774667455422441142126453266235324714172544111136441217545562325727446634236442316437413263425227164146771556776552623352524346464771772256147736232657232576336146346454452465422516422713747565421366645215156226772373571647312447345366764776516146436513444521665413312611672516352324571262457321563153332612451774363312557673661176533614262352617332627777277326372663212446647774256257361233163442674751755154574431561514133477661375472371152434512764477747747777651212421574164455134122137746135266421561276755457263516424326255727275226223772112462434767715516527432264664275344527216127577641515745433753617361413336315272454367723441622661121554316137415743155411514764176345716712664371776457627337741566477312677347536474466622626716666631711154131171541533125736514576611636432552727774416171153533514516553147433443114735233427172663541155111566766573317662662141426433355435344325655643742246471254612456112643332127423657627735537165676764416632563762743247132731532421273155335743151565517174266432541157514471627766656556316151336454436775167167744633663472745612256265774713717563762433627477636555445146456526135362654525621566343141616661673542647321722272126543544544534111374427432762265732326774556217247773147255465372534444114134157157555512352272455122532336643762141611256467635457644367255563167162376356243127223552567456655763133151115321433127316343142641363512712665632234266212636123342532125374776222741572755766214476771442142164371447645435466136745113321526267433421364733647544455627613732675146366173556523272663753347426342371311557323742142437173756574135355523565163476653652357246563327113462371552436614143151147312412662112356423314231447555615747335656773746311124277365156663536514325721552555215234742737322364715417565153674421125321442771362133123627327162165636773273223446157353414413732436236646172356365324656431734377133111131376334166655411514244251472576625552367246127261715433472652555322552516317337427262642721376141436516351314257376563175226143276247175246675525514723645651271116226144733425266661266144364475221224521252712677125743361137562615466575776167273176436431521111641427221246277516462246437531716751113137757732771325271344455443555151265372472534354422176633211126256776256432161643143736461514521422256222531634242546515665337412537442516611424611562451215245532576767551734525614153214727614774672661753535317735355661753453142437436712644637476355463721335561534345631324264132677213345725271545221453213736117232466371112256112176511213235161447266417546541667551712326734177727767654521617575675237124434547435434275357347746662665441716151735356214231245225413241451267454212132546663414146564542751636251453627526261715555341637112741117411574514574452126312224421533473753333723362674535646322464133441774367725215557455327466763436626365251171557625457426325661652512337457536621365437252652746321463432324115354111135334441363341775147572426237344166633672246436254233416341374124177366612446473137572335566277671647521766637342312655534354444521512711675631263461234752437113273465665351572147362151234345565134712551737254123422655372157573275453567575217662747576714774323162557427351236334414376775441147326362316442414146567361244352415244475342512326276245312757337155525262434766527544265362424522275733277676567433161622163536756562122773553427135321436712521577671213551133156672744635226476466617166172517377674271133163732633642463735675766325431747344647224573176777575331214377344741753343774563544476437751715521527154444732577151113121132775156275641355626633735246462752471427124253734521113541576675255211312136332775715573543543377232352456422723425365543111357472521177131342573322117322567536622142756773163526147712257235136333541431647233136221446562265232615751155277412445472351512324615313327242223557327655746171552313755772224512445424231741126467755666271561125667224332433373211161672667172761624456522242573622673772722212415743725342422173374714375635716623115533725226657341612565375351552436147562561416517665434353341515421471156121773773545473637111552623127743143443647477762174241544746144451736322362371517235372116123462465427566727211324764375271456726472457353414436736557361346342121466425775437442321361424252473433416215641626142277242777141423755676455636642153711371374355753542426113777276617736777424232526662772271332222125135767513765764154413556672133635345426125633242514351143255731676457263146463753472626154651141776134431371715246342347645741252165532662752617553771714622131356732232431711616377372163465524516642275267367327441567735676251146375115254175243322225676615133662514321732656277431332234737237417152345434355427642776462416467474631464231664742352131463243172675745371557365414636166423644324721561647616541143742615311733335513771761556562276561221323566447737737215174313262224447735662675761122621363771233776773461667467572775133424557141657327315465444734567722566664662714667425273767445456535526216577255141757267235162755637551321257154261271333733137713161224351467715235352664117172421633277347351775624122632644115261522656513723525237522716321251424622573175451274246557512527761442612333162111536373344536545611263525125256422353711463431121347633546363145313614752316431565662346165412233533221543325575454677426267413776417575147716555256311147122421253243766151646473424432543614723351666465663433775551725215711447546415273557156643645566477544521362212577475362756546376353736165326565536374473451217255661461422212154115665222354271151136362523741542322144412221437444314557264437663711441663136264735414432764164464532631354374777541114212711466743327364713473351461712223352465621666351631366436641272537766561666615612152135622732376314254242243744242365167572623453272637265561316455374264546224645132257637752721462377755677353167224471316672757177276766714333354115255736124245165763565221666471125727533357167667356172271751252664751316435514432443664671617176674735577352724353541231332252742435325353554213577623746263466643474133412243522414272732472475645452733256532113624716247417174753256514556656231542567532642357675566234133147224474567645274264742666462715731411157144755473177376335427332473677525324754364334266743715264445537361767426752372317571226764451317516541457616247137153143511753633571755646664676714331723712374665663561356157652224425636256745544114352357245377132635443337313735374522457327323577254637552345715457725167111372432125173321132616712517532772235447256472525716627162154354567344251232325116777117215742522546265471643355245345377175357424333714267534362727557667316267614324754627455647735113245764666421115611655352465165572462761632154634713451617435226455665761365761562147242375221777575375335234224431455614427527577337274711442115253734517452533567616211245566314611452431713353345375333172724424561635735474121541474724327661347633337777423567741344176775132115532442413773777244544344246441114467642242541565351725532477422161255411555744671714567727772171336767245153633635413316415636152661676573265562333664425312211416677551711667123472253674135276156145346335256616733334746666476312156172536417314746352332271743267161344225346753721244565772321437674235163161462615265155321364453115624324373655514413145375632264145611241547327151365216613221546427635731763761121733535751144615562365463163275362644441544246725256125424744414611354532356151716512455153633225444116434353453344572327673335161413447264442667356612763325135216544454137427355336526751454315252621243275133666547446525345764347373114637127714141723541251776735355741154154572765442477467274721626734443232332165445315444147323136614121255473247171634441575117617414552222657766762537117522423555143465642552561144255136477165673251737324513611326752732642532747144777561152116714216513666174222633672677221733364235523544265447147231253356774337113677317764761114143517511254276656611526216431146527467625345243134277232714231114154146673426132653577711534644452766666232246534723724271664323532517444651424736441751141672166337373172133537473512616777216731772371425177141422572512423237447671743543667723214474747462437526523277566562714464171157313264257461541427732312723737762322746775163135222452655251357513616517426731554122317235253333514475557353542153324337165311773444221267543661333766765536627164626635623332355663553345337351732626521143212777366523456373317571544547271311437422757721351247415773123164341372511472541665636346641267624664135215561547343276174323316674321731511665532762773434155756417524665645537747346613412126757141537235117225251232474615624521775721632744463476746441222775274717163451127367364227241551272672611256371247275611745713223424676124753777737621614425157421112635223634736622113465263245447522355657244145347625346762626513147736642367123115762557143634241334132467313734522711115371125252556115757452125426527461573337525327234161314156732771152514455337352762224642555155253343771645662272325111276174613246647144524734275677137646447765553556241633264154276174737727674153716273431237557466163165256773275214467674762731646156614575234746426427226422526545535316721536572354416251533416163713676162142311741665151313332543243243366616673163767132366652266524162154754454753177245723343224744351646425113522445351715331134453551332233425562437631365371147325467574255744311364522262466322771142576313134254545754224257356574753713437156533437153477436327715426152757643176214564621453455116124433326747657437712267425347251625266273161224135344327255173355714624242374717655321436145414115511326465167245771133751622343233356134652677511513222413647172527444142441511673234466154773356423146223275456711557455164313354551462122551361545514322163317765135456735774252133565673334433256723526437255361647347773337655657142116125753141275264431416263227541553251765776526371443363715772147565554465441377443172463273417355244623457477453753323752313352215671336216154562215413755474524413436367265753265635334763356117353312342137346742675215552453521243377512547344535445143417753267521572166113476344757222327647623114322124475221737752323427373714436641312744146755277641613373736633755262675614424411513732326322721447736511353724116321654527711265251133267563274725223775675124632755275353672415247537337132636144674422723264112165121245431344733516772331743151664711545612476157751314411636125535613473534443441512254356253635535165552136474554163437546743437357124241217676476641716514266115127654776155714512174665223335147135535334236626227576341774517413365231554447461442375376746731377113271755714751312152746642671612243447131646667114372265446446774431354532431341161317245722732465532275447414622754761663776345711241775157442737435535226142553666177674541744721574416214472172171771466454245334676527267476517677155133441264765546676536626717636431174225733411377173154746132615626452254516656576213721625116712557665456235125757451554265265443442127154567364343417746665423161212316666734351733737715651357327651651443217314627531417436571575653626151223614556627574445514373565574635126674567546313154524713674367172663451326361667332143542261312511155221146246272417665114145325534256464427331562652462716541414743621252316376563623234111353756241476721661557153476127155464321567563652647744314227345713455423562751264152623445362172356222672267315734215643412512151763252462423335657533114365673613131377453775563447147517267752264324272562331716712753113277327763523761235226727436741263314424765375411344247213227347511362652471141265613635246274244374562132146375256532366376634465753156474243762646115136712457264572431266665762662575316455563153336545434142442612433311151476621676542266423713357611737266761163146366241543272353466375275423627666573767216345113653464146531517477166721655565153423236712264143243165244623537773426311626343761366214517762172445475471435144274116567577726373734614157754564216166237242272675277724113662313322156162222573433345656135476622236136467747373736433456116111234247117273243537412756751662726354465315732416357666655744257214553214711242276354253741475317164477277234464423247445575346245726736763441174521664345111146547454443616126412667315726122616754321723525516664636332255456344715277463343123525457676353271611531577734347521267351115535527673153156513565725152174657423423721436427667572277511276151423136111644633613744114245163236532433537224574112414127745251143311673625376116241664657576612332333724645455412577166246736153425721515253624174213127624543216127172516211531352555646433645441561633643736153442136163567435523616164467375731155165543527261541461227157764773611356137757145313334443541351532671575513421143515252536654727317461252634751223741324211524554634761353751113427541164355733527125342741251532477626253147531544267576523667747622641266241424754126677366472474652771636767574376177135764233622133315124263633534547256712465511133554364667244722637647176647754441711567523126222375225123231676116366331744615746662414727127137666412517217774663144637652656654526671621731431734411416665452245236222425567773435415465344561474236462241137514465325163631672325263471525515243766414767151312132512754534252551423222347311625776273757475763735251575436622422342647617476611547727573475537665252353324216472475456615562562321645117632413754611413173463524572424476651345637662312641233624255525523647523623164442564165413276767355337713221555135644515135144172635637142231153541212734537251333235243371475151173476163277343666514233212711231572417631655344326643373665121177441433632465211714233633335555522676361421341353276652124111554153671144172357667546762372657275665613423757746624614264351461147741323511675476161477145215433537651243322173123364372232675142247364637256562211547664253161275245727745734145222321646156266723426523317724536172256173723625376157522514271277436245641132553567652143554773746563446442631327215511277567264153327365662614644516735674734432663723523174472163757431243576776312764315155363561635751332221162461732537356644737535557773123453465757176663365341126126532161456255266254513351462414361511545454312131612337316566336371554334165361441674626516551421477233742562647736523564442473554517173353647552433723666137525176125353731616162475754667632442354221524675514753552147244311647252333124674363752277314755143161335746346176474723745443351571624432355165135441734612246316312754172721525362365746162134164263612213255114443157177373722431623243612322151475415536137313516723313554152133713567563434175671332616315731242427467742552452416577533337453635674612166424776645622155123576266761171133642437232356162432262257477524772354371635454626256473544536335464224277754456573344722414347116542163172451327765357621245257234354754122153261737111136765111456143566615333537547753662373447355644525351634671777267527163122615361136231622111247211121542134654666623774125342264416463776375775756256661524744375354745615475273731527772567247776472372143663355341341621544644425744261556174741115267354747512376626174725532632362417714165325321222735417764123375366775541462615171552657274533253162755735225726275352472165314723112724545347357116467665436131444655233767136147715764531353517375717426342156256746523567151277612655671126144747633371225235325622413626533231223454565322164656227522475117232617256222332126642724163615731311357172435547534736446126532753271221474147235527563317362461171223362117122513563133162432431454113313226511156572727353527674316731363344353222424451134714554541517734563774347625121432221564736742511711546432235311532522314222574565741523147572554136367123262542247331645615173516436541167254671535631423222573446223433367141214716152374465122153527765762124525523654332244353724634443756437212577243357125311113666264737741332447676717542564252277714711243371377372367655264514614275311752723144273151711452732561322536127444754473473441545123166432255411117647127464452264674441766446641636541671347466256634634477465557534624141717645622325615744432515167514716613567132512417152434354444134734324226411652571144471144441143676337211466655752532756423531122655715154752547134322263547652157641565172467564325444127174321376444365643611343117431532173333371141534716153455437515734357711114257561466745513663365134125337644734162777657137576273714531426221531147745152722751263746722545521646742557743151361554556733616612477655753367535534371215667557131127525245127162423654342311423445331145567767342521374626761335277325114773736333352644533677427542342653356371536733427776741735253451616637723727251152166152777445446322433725743762171127216364721674137532337735156367212247642642365331573566373122133367445643161635624363233445752321354247457643344764476753557123147564632616253753333222527721246225617172637326551174276261474217611711213235124344764622653473564675615242745461167551157327666346147173261147256134331464444472337336666162117134477645423754316242747657251354634742573212543677713172727156542336426131325674675315417424362635517423555345145565347421151454224276664411215174732673122256672432321151213713517671322431432575136135355657332321453636172262674521466365321453632125135345534227475224147216661174576434111733672535241163661771462335756142423715422642137241327444251164441641524677124257473451775225771754137421443767146315315247646745551433561772715657412245232236713165545756141636671735547774674224171775622725575677465565146661262463244445225126264734657437666146364741574375325122416563552566525121272541464176431226514753735446656733212621666612572277473347246151463765254145225445425752715532773372127535357724667365576451661231444527246257647677467326425557733475422451545436575621463352354734567734171754643435516133272674353356677165443715656673223314741377266275752253152732344675213433364213617336554746314675535172531162463517465172622422276625272211556147216717213554165761611743712635757541662146656445435643135331226113372415463232715671115641754566115356226633743534745431636476236154166663266543337712315246761766466364613677124735376214122331277735435126741455374224537662713126761663471545216537313412673124713264534511432225365725326632342752335625152213642534465452516174347132731161566131461345516525152165471426675471651625475241166365136377277731236317161115124153777526645652165737746157761377716672656553753657664573562632742632731615323771756446716172466662275376737431537473364214544444773523435562545414653374152526125476633511755416225655453546352222115376565347261756525271137362574343213637576765646356573631117443165462451347724662542235247323643412746712615214571724547572115456544344636457141243521672212761634272775654777115376377412717774535735423222334764733615116115561364746462615314717412222133772732546414675437241172333547236533617557341213236347473167773646336314231242664612662261267455211232765113211762351476525664315447736447671167415465447346611365452215215324366236114147732277135367121643412226221644741277214633654732362525531535232242362165342146475651534571323541616215762376346734117567622277362313122362316322634713116345465517731357521443736441742565344216121246212355761624722212755575526644664723521614416531646427271264553255537621363246342275125334712337173275435651524734666313723257367717453141322725474436147475424415463617142344213661664643475257715317323557272657657433714521423365217665515674771735325711264523454434225715414411244144374765323757371211743323541166615223645344215325423774342551331742347273524357232441266453577774242262544373316562713657337237654712376737461446747345262315374776336331277235232356215336276766532555675731564111632466415215777255656542637231233513344265675724521475662775732422667377277772465536324414331472771742752752132674547212744715315572611177312412266211374176526477667777641123232253273623476437426436513715341566127511752736672554436121656736647717116222172267742565644457254344456377511741135413111556414241675546527733146671223317252675666543536422736736241471537716577563135171215177724165357342332272525425546467463172727764116437511355231117156365666574116153734262716227244773562532343267475224425347364764342615753462541264527454523122556631345724161327612751423735213767145736436577572176331625345755771565332311411611533627454252751121664124264356423725753461766717176511136763636347745425515425536477523523217133141612364735611552523276737634342433752365367354547167652754412654153422141116553471477614355443241514722133112363524524342135443633336542752221473164513726564167532377515146126524316511461176752272163766771644465255325335332563761476467554224743675341273351751122151145651455645412521166264476614731616755642322464613641321171514566573351572752454147271372562252231466531137315611741112471615122371363377331133427441677172715145273443465572234217211117472127636222562442566277337452523724727532111366545465527556647141533616231266143622464353246163257641454513421113343711235245673551627311764164331722154672372747742174213513246232541331477715712213733214521444732756137227112443736457141226711217123256351415121767765126721252364571436511323421421234145263422273346226342615657174417246621131354217244535335344626744735157116741675341373727422416772416531525624361521714765136737212264347722562633735445161164115434162174442535142677325433754617337557215561416665521464763454527565576455525324217346655223565653434263155611421566454175465363636345664455631776545364743662154122621356743743737557263643761464655614621235632677626374514744333135436552334525517437111574131444127765322114655617622772325563376376231332636517673763235123543314121345447422471777224135412752575632317452522712144447221535776472532616757262565143176341252722115365374314664577121646773364414334263625425765167155764224774521141443474163613631321142552224231314644464164346411536774236663725512251556314166431331765653355725244333354672434561777474732425342774433713366157166146552714651761624136456353472416364565264352555352136715445676525115733472757416543543276776762514317746245227213457621637626277647635663524434713614777162721776761651122566277571361216372571471466667247167147277211251432562541541664664717636761716251331626772151651242144233244172246432233541525643766573136545171735367535527324624565777665564767417654336477173542253141726326477356622462562757364512674637566434227516157364432273373157727773535525423363725246515133236135571262724453156513474226442245125143355734432214653475241566362116454357722364652312747135175377254673675234522744252275774635642342624557231446154264775567265411714352375531557161577256374746246715344211365375465412442156714714557362437361126671236354355766355373457576611677123661425114731472156137731722143422564375712251466412476511634377566236746254233264535316511252131764567476131567233675647664271366755735552627642343227116636675574366253336232576111712765565434774721445262551451463763451325125527663612167236416616363424227773671262471536476371126467273172463411762236716745757726756366535716274532444257755151656574456366121715241566564472561441727646771162516765653323661745137735734133224124511253552755662775471175431232524553131335225415254465231245616275617664515356114554376434216247621727371136147625265221642466552544575672526571327231326574553746527211462341414336562542321524565425574632163437426673125111561334273676275532574465176727177232653242162756236715415327447363667214513611543443315147114153432462134526573257477325327645412551765336127536576631553557317675165532553625576461547116251341147622771362133663146257176223331322613641253552776624744756272243524711137426736617423211742156641342455537332125276517615332217344412375327643373354454177412446111351714171447665233733174351153471472772245225761455655223421777736247564417225354141774247446442476445176211747463654221155711251135745557655533211632756561776722615374353246466463562537637632713662431745775753332425411465677275541554345733375647421551351367735123647453614577641127155315422134332376777461445647766517342665241412311446414311277162137326252422554631672332653673176747774336515217211453731321741556645462444256376355751124211475471141415133664621426531252233163217452256655337572446575737446767735244731664733271742655512411524342656144431157365642334675166514111616461416446124466767575546167341277347215237677516575453271236447363435251242333272656376321256126552377535757211476435367425336175346223111131211744573554471411354217512616126334714272752724252713653255761714415146454556274475674312211373144751626274124475255527757221536235327241644413342124733145337344715122227562236447154462114241552474526676732566673232354171355515277257153421277534772472447312142167265437551634224575742673127335245111775252775355251452764616343245254171372747555723311612557274131431672275164775227421716647242425675726545244667743133126754235725537325131621624247552347663556242373715171164617656122232671434665166775125476554377612112266744463373216755734564466766314171461711441257754524162767512312567652737255262544152352442573151247542461216473111346524674313341326665716656261435476176631275236125616515543575346256232342775727572463236676542466373541641543533612324114651226266534631114367667113414212344262236631632472361372653275421251573357552113341312576125761226266625674175523664744756565711646637427137613271615314273764767643714731722232533354174414722116471214225552724352663435746247121342674552655314613346153677722157446215323144445772617217373621565517351666343134434565615167256647665164727244717377757667575571571317772737427566464454435215365325326633566655734412155576426161732715375163657327445324157676172373124643322245223664473373273444757453716244156354725455776444141117472325743671413157751624232442513646443622163417575551315562134427353556165325465354414262474737174561461232772536171627166673574252412534745222243225133114413131273457254116322555462174444157377655674375337626455575132447571566356727553546575254667145214373321233112565346155443467122451713235545724651456134463575143154516463165653122744423712416134514443763562173371144434616632472247456746156615732366151654724332476473231723616156665743354126276237542655246144733421767462411224371656412327622365464332663116445634675237233453231655154455223126516342464732254433151426351654546572651355663437134117155334127661155223113355363175712456257136244177371736465175571655563516444355325412351157137135674255131557321761216333337242732551363552473411623457123741243332561156425776252611612216335777145264235625653145136457314774722651263166654262674532673363776255314524672221417275465714314232663454135367331457226721562226425653477226252321454456524745676475745767725251325773646442132172777616571325351257553317632242452434313355113231215537533747325661213447361624134711664271232717241416535636342733132452576717124374141734651254551736317117132453277364753761547542574416421766326446144454531616266521573672444311326764557631547432572152336776222737575551646511161377543532455567737425673555665125171464622577674646445713612325725163566746727415262773455676412312751655647622547656323114764335423612317411656543576176415741524175346227474461731542422326477721665627561327424617761224265371467341331464436721127341171621761136252437165767171736236322521633552714133622543746763535717263551753566252545132622314725735412627166114361265561712413226657233152173522651337437672234112246455654331535661534625237542666634323166142727213774517664262756512737645756177477152141561766751263241656666736154361447457245363611117717614621347524662626565247362362344645763655344536474323251527745432132536263655526362527663551433547723743337222157343421727752441352656213225544677142344432767735123143476242533547713446735737553757236254337614625162766662747336362276743634426146455335541564432643656144615533461225661647412667355362652534713726414511543742667417614751651354134516152356545527617426474742345136734272157732713145636422666472265714232224526234736562147777236731453715461314717766164275122734173574443464176164114525427532253623357726447367177561323377614315535537514644553531662222123543421113274652246611611343554131513535254642766752152275564171341634443746346234453674542272227423251465322356624124472731144125444513245574467212752244451764647311646435214134422657326534112253341124735551333612643415237544771222526373435227324666421466276211413344617543564253735173714634716333735711271715312721432116616452655567516711452754136347122177375244135126173271675642755165135642266161671332532327515434156744272771111345437762654511336322643254475432375275473264311134431156415251571332112422242265631746576435516642252515633151744731522555336222341613465664151664756235161623266457725626235324123645545536164123715616532365177374242636656451663563446775575636454557445214412657333344224117646223451121451637673336641352446261647641716173173536433661135165241135236257476742624314427235652175632647516524175647373225724233125313264156656544463626427254456377637354233276656241723137515446432367113434322347353567547424357626536273536152721411374346715661553573166764377337377135135525613353662562311245215321724627317736315554626134764615711514454546511457251764372764666136413771751217125225666255744567522231346557662525423332747425471615751637616171632355562524473455264347432241434573451623253632467724157275332121365441751443522534233354721133361136245273644136653372164116536742675415173415412133332664637433634514215457337633156444131715471141561447362356573531243443223231316464314641432115142417122545576534277673136241744324237473252147666555262726133555277157566772662641571112626273734741121621271566645645247766252756261364413563441145751741776214123361632311746152656164154175521746241461575414613611436247611726534713163634424616152165767251245535144447712524332432347376514251774532533115437714241361351677776551725445171212636757124114213762263747551672165764666417721321451144223322432347735617671743171134547272455622525425316412733135623643712664145717641412724337124471771277574465452633725647753323334554433214752134446222331754316663447151446763431264526635356155632637613673246265651633372227112366266667373123617714254476416746675573524245627727346225777613574353735351244236474226737717276745337177324741617323226236267253777117152546547663226741767124416537644731774174435232442453225772767462563272746572736315626526625654743473666645142712465441442231544174463457355455735672635252245755424651725554276157263171235133515274275254515414342753216122312222642567441123466765216117241564162431414516756745475416444533241375435227136623373245222514231452336257152655325752464755467646762576625213634442671316266242752332224635121664255225233241556712235521344432241772626332421412545317453717335334626453725156333174142454477143644622124532565776572157517435722573625411671411451677642775511652243115364444573662566757521516643365714551232632127715671162746315727475621174315317276224512534246315777211551412443464146423136671561622761241416754567341545545635716226333574372762125313167743534565412152512117312744462466633311261467642152214521157336121563522761755273313765274346162332614723121537172411231755753216571272574771777351414613471732672723373773773731172653224426726322542252553166375514737412414246534762231447211251565645177533417115231275347355345221142714456467112343267234762524727122677445467725335247647732424427676654512673536344432344615261142146637131524542216452233661126244126123174552772651165364465311624626346635126473512247517442643226143745567431712246231374457173711316265241332665521651227436747161611434571766631126251215221221322456745143126231156277113334467625432345651665714643754221756743525753642142542227536357365352646453131345432155147666635474761545262426162377723113116765454552467622652773714426636624454241317464541767251733636417256773734774352457515672274155273163476266624162142733252667377626376336127537755261416165736731661523325423511427477327213126225367733614176242212354215617622462455737547364476743365265251417564477444313154651321146764735725554622263672467432435525237742417273421722261143427263676714156166432644153376737747431321746565432616334663676714656612716565447631565364664555142144444324767763143672461255763376633356666755363653122137636165152411376115754231544767663613517661132153547274352757155536121777223447114143511626525462413424435612614221672153646516656127464355547273373572176751636451511256144254514263373371555432614742665224116425765336615351643341431373174637436271272627715442625645365642616436756237242116267765513417562435332156173514323232113453532665321635456726541174475653227416341344272115763172633431164134752125656167767211474147365661367412377216175227266662531417537511641763613425334334617741735617125224515157624347121116313714725546231635137574526647571772415272215222725776441336476575147676217732143754511743613464312261712176313611363476751226747157277571432723153322217342257355315454421524222464616742271135655524166351763231632536156261757622341115375627113357274213212375531652472175276535565276537767434531172221732624473122775763127413613134231323153375514313636766357764517653252522312134526326355344615773221414644247712754512435737631262224617445447635325552454531556112474641314371242631277643721643113477641412425737241234537723235614562723175717125157634725441232112224535345447176271563447663165377764427275374123273546525223244144526545376771431716667323631456741725554365431622422454651725733734513252114177352517325331224427171425526337374556472324456212241473256172232716667723471423756115534544661252251254435576175716662346146355572717363144143655535772715533313525653166414162635446536524756437116435316136323166153724331275216153624536467717715221755175727726217573441553544465664414226117732772255422776445335766311231335524653535136773535325265421454125724371173673356227657411567121724545566156415326315466645566762545223141722545516345221117777144766374515762433471134344344367666727311776353623746462737465565461421531367751365124431317267736771153323222457363126156265261172221544176254273515434464213433644121432467111471335673324667264666143371373332576356612417337135742272442666145173655125262174762212365555462311576411147446246361516473143264454216432476413233225255562171546367133312253716241755535754242261175537165356313527374711536744255141747516547112143553735533452165272252147241455733246132467515445663176233211176412336475557424213634567177216751375254143176427174452573425432663311734244226226675245427162442774266523344167157664346265631132541524751567516466123151534747235277615765745625437135212617732453443342757641325427242334236513751275514577743474511655212163467421312651646175557746577615263346466654141762651654535427255672547346143352436625467232257747225261176523676661327343562466617337437323674572725753342527371335362333623272575274521762133267736152334654224753536526132451443462524213536334677562465544512247333143437354753733262156631155111535261237545237567715771717532774424637513336416316275316372461142535417634614455466221161431446711663646347115654676625152225737226514441441337626612326551353476266743726243134126251136264534343356557575721523441553472164633167146125636672345434674213767375373125617621146771471132432463224446237121335135276411753222534171735656713526356236224657134545631336336612646551514372214661555527343335621576741412623221467252226552435525511753136367437445577465622573254443645575647615575544445515244711316155733733413361626511444755115623437623374733736777734341252735317272623415621617624262476763423544736271174156231766235225476263667626725544467576332245726654343324337213653733675123725724361723556477775361557473764657226231676556655415472441751637563426527474352713562137344421416762744674421543221535451214275263557157513677223315153375134564242167242532665135743413317156512231255442637343247527257266741355413241433571125777125234241467147464537777172612723447264323247215551661671172364642757413737747636134225334563357455416112727713516327753432151136617521122714474347434111417533413474675217641414347151122116366747427361345376143142255465334231374232366237743456664344266622642216455372216453343716326317516136674523744611356656512554535442332615272673137726771345722575731222753133456551367415221411223246543157426364442574427562673231725432475245621217742731211544765421772516317427525127152346744526725216141112175611627154651343256176113124444345527436134372627437231654431164546722535365456523557744371326174675251717455436723621452424324624531523472146137513667221563255641214464677473565755666146575451473141441513161666465413362727267475431613121221276736366477526566343535746273312215254715166644572764562511742164711513222717561776546626724343154325546151736245113614627364712433327124332265767461754122513666211334151277176745253554125314234256765124126732447635441271625454343764567353621624357311573441776375764732425417256327477633122762452164426157114136766663364464731131662511532234134123353131433557557131213346162565222435472251145242263627635124636171757174321244374775762573167617775725547663424123713253663763763465142237513114526745233523122452275432513135677564227673114463574447521133722673324324636364754411464616171462125456242111576256426776626175417156713224474322363154746657411436327643372734153562256153225357223226557153672167316133444363526757726735215533655467144674345252345237671543231671624375132757224731731226632732123553277565526223327542326421743312731627561524746223356231435765272353432614311223562315541241167236612173534667336566344462462434216436772477343212245775255417142714575736712344561462127652766166646452354637276455577666164714562436765367311355234134743533223367366124154272716631346613224462522333741662714761224775231727162224621771211771122533366467577631323523553754767343612657737623146417776474174141343521533534231773714744454171324517663335752153564152431241464144243467365773252756332465434742455745714475732131165224156563732635427176512135233166475454151343216236176413146555525373611645376221232264411275741567152357126141165475756216722162111346261275315255753774675215326454374523365123621222521332764741572154513224577732313346545251331446121542133146367624412337562647551526132455313275757222161455333426333411132562451362512646513154617247364453712752233327361567367414535272564163315756776165724755437266536254475273273122623321174122776724475326555257452715124637147143422343232156125315131524537545726252666773774546442423277164666514173712372765733275616634234214514726357665452773675457214525211722566445324514175642754347277272457345216661371755353727737767346414124114134233771463367366432362714425131565256214653623556715317642565734641473261452131632653561656453137377617765371475654332436465717736121736667636525262434374175171173216176171744563726366777526531252773772111667153233224165152171417677212461327732244654553673633624746225347342667254732221524217625436272227475434727343424246127573533145116751353317552377122113355573474261327652747467372474143532171527752751156214245425122315415677665263371123646322143463245744622441172325573445662322645442235471621243124377266411616552775446641756352621741613764653143526424621467561756147557145463755737312557545744652727655424122624655233117714473576563346651242547354616711447721671344143156434552354144121233314447253472434123441766362424755311327766133534162357217451155627763161774467275444476344552345453671772437451324665531227565233632622265243265765531763152665157342552316624432217316514113521556735365261623244276151461732211724553262254672222746226213545537314533762443565671632644227713735427627273443143355543376366762525626537114312747634163713721264745612612354552535254656267475713475767115662756515214132773663344732754444142132644347656155572216414261576771376624523541222443423133313212452355147413535712443166427643211346262233517322655265137214435563521733415451635555262212666535716723455214277156674715313257747753327152572627427111653211176265627535115477441453641261312341724611523463326575151177437555756451423171324214612132114262667734717317443173575711231741156143535675533153533335557544761565251647524152526263637625313473221425561215571427613765535266527762632763643725726525217137622717314572277612423366727123125237251542151141473132743746362114733126235431612225421726565775412123655522573724567662657357227323727561152354133213377335461533726176214451154466727774532715321237151425634474416376161463225241356421224565235176615155466214251113236715531332323741411433761211644535371544767474654621221241424177641624414353741533555672744445521522374733337373662462655333176261431143466327725163241115435355411424173746637547274315157674436412213476452336457171525576352222433612651115753764135726554776353555133345154352666562537246275662575121635374672461745662612477746452454375674253356756157227315143221763452277434431246271141745417516774214157432647561514722463536325646454326624774255757225677423227174637632242761455477167233564564357444561166145775124141326166524661341566574213116532555473346734172247221642353126475154572315126253375453677323353761432662575332661537131262417716261351637373562756661771152153763127273244612117716216333531247562412145427747152672544231356325576722565472571771254771235771642443523472663663712513635535523166343622111467761252535411373572547721331411421455622462412163246151375346512566342417762261525443672447511677624765164323476444633111153253136635444716465423176517535253516463221632571343644416573221661637262265435561166637577731111375325533416266414477356363415636577364535564325765723753424211767625472147513371113511154466456551427535675136357631136675444313455537312235153157253132517231516261313525344741767213554417651516747323266564763624363643133123711733363351751352777215511722433537165333421455566677561563136572412354536775563462532621334215347614356267745213567151174525363243561527413244533431647323141374564745677333617262356312537756345141742666366275533565651647523427524714542572445125613671562225217672365456712634515775164416236137367235146333714624443114621643772636433476611363736337733727411614561232122351553516412724166256635141264431577152723225633451344252212654135253346671364742176525155344756563232721767464514567274131436316742134332472263642571315552423327642265545754342432663531662235222332225623551633233416515132653216341243617773425767557463667272145261451553224122717146345366473232217355577373613611545473344656777745636756257532715456772467361275161767674767351726736265224354163271172571627732624542465713423742152442534437623217547352723227445673155532623354342476572734172663172764157475142373343555366545765154762732547677235622551526235754442636214115247633127262115622475552513134542725337366611374533422572226712225742172752112565727117432323654341651757261336141261244377654322477515424567574522736475464126377451234723664446632671547363223261314125314751553735211147553773245546377776743456167314353663376743714773662246145175535733353261671372762175613422476173532162151322521122623166526436773112337572754166341667653416327631174144432157715115162334366262362115452651653563372535275113452553427716763343662256715517264432614775673131531147747622557214415115766312464672576451735157441262152713352752222771213212156315532743262577122233253664213136522116456637631154513211723337211423351354237356726446632274137361637174521455367324311527342262366266531716445477232213137355515434321412366137243363617646626372624175223237155574174161654523727436247674722461212612117662164236764153545625136431652632151464364771356241756622716272377546215575642566665567762612143137641322116365264752151342657162166221342362721425742176355364662525661111212265751371326766365637325425446775414633176766544337363135712713553147546455231664632135647241426744722566413612375622475433474472714363344634765556627563132613774544167543353737723612216576277763372456124321424114246126737626355634646412454164512423426312241133511541617236177251424465511535227264356311211146371757437613444364622552674121652756622613351776372651241643741156752253677661631235243437734141136263642552756161616252244657154613261555153762263717135533632323552641555764324516633525171334612177155654475167663145756211612113121626366276275513312122323644147341271221147722264577641326134751217323427523752322326561365664614745421574763235561456515375175473355425245477357324315745646327764546353123167223753561446211177553511124432565762331565326537425116332666244652216356111664736546471761576373513551353351744731777276257171362731176445652355445354313313451755765742427744571345117351625123732545721714365512434361354276662256151141571253526144413743643157766763254212675412243641125432527431756517176551775462574347432576614575475453453332412237273563355744524452731254525747167446675311772431723161544352467434325766255522535254321767125257623331267133325132564764675524616143371314546451622411717652354272531753447375576631642721347776162351734765445321524736254165714133135635471234317613632337121544151654414637461462745211223317125223664262327366664415537161212634322151273142121562236346566762413717726342555724367235173673733424327264542335774716516215522753526545222466356667552573256565746734545124743532426777226274612414161763461644216216241161642724334634163267617622556664142354711363773331223376554442257514125254555127342573457125443314736654343255211472756751425157562441215623334515613611763461457724244635362153644135325674752654261764524722311133565356643247777765647341513516265122127435644554332277461752712425726763547334167317255463753235731531215147656677646514712435321314335253237231224276677143615146413237564671732442442357747664435151741532534712347415322472154753767743326636254235777347445143341456772674533257756722767563741216117261744462361252452431735156766715722567725134413557642461367362173241344256621265253422451517617344572217262227136572657137131755534754774236343114211225127336721527221733751474734247662625526711743745444615217633533125561461666173747447153755437741521571157666164137246453326323574665762641657274137666327253624312717374552413235225157275466221322252721371513435243253641654116434646666157424351567265463774531234133632173422677737476167453615217624734576677763143743622272134216522362261377575712473523145557442612737151231641172465171657525176211325351555665235645733115626437663521576465211714517121713567646211362332153254635757247635523443672145442767463277215267152437616133567167136447577217326451363315675774716763632764717656724244143544246135532727521416371736442127544567343454536676437643516632717467324673345235111175445341632772733523746663474523361234327537623314572561132524142375727113775426116376413664312631433443643526321367237426171354317764452733675633667633642616331447275471771664354256444645512745676447547746564211155651323611577444432435324745254141213474655523367533465171516214246526373164424377636445537552316167131437212531535473366235476325422565616773146716344271737661444522373272626511345775277257433715245566757722157667317536461752617567474566715715146733661777271351227677772613311314563773134351473563654154515645435736341616156446735452133627463357115116715741554412634217365613735445345153347772266611647521115562327234461561177671174146241636172716454543663654773577425521527131667355544233532211254645721633113147635451644175223611513516121345432166254763626316351632545571455564512311762524551645122613147636317631641222577754567151364341362346442575164263541557725343572727664244653361556143234672251354342166545113173116523113332517244554532232652173145457124374322177542666246565173652764325767217163462517466376573762434143265113551743612532413722254672311722371564755332563764213773244246476445253777167565227621245571541325133444463343275357314764341472276443123551777536566376732162372257672341452544323354256565735263363611755222664332661536333261526127225736336651247223257476451473516213346144351373712662647171541463627433261221523711276316364524116161377523774276437372247522223131172244554315252212335326442145364422267727445777133764742346115646176161247747763262767224235623622541775661677225435341764665157345434324413335271646755335232275751474755411241445343116723243732173577342476653417737621246541162342417641526161173766213161367425765142235235255663413723161143532257573327245633375671116312666224215651665461117771721553132165675452452237331232333517724242122751337442516631764345341775177416532467657544743511444445366236111361366343651222376133571434335464633651245461517434114256623573355543577446521413114433434613332727317254126266611354626327754157221146657617477635217253241756771115664754735717541555273211277272762367762464441637441771111132332451377647414577665654766271333573642646511272357755544374531277565752634764222137714453126147225723327736542764766343746753615517742134722117577343641447741511526722434635715753437674577662744637112575416225567551322327533227232312253215653732155216371722746171426147534237436267711224517331513427313125261171212324615751122363323636556657612133525223424764426613657647547654437261424233765666155253146143476436572334623472311135432355726561442514175446517532466524315274342413733671552455735617342161515157363753123371163664721137332237375663365625633322724137162226145734464255642274476113212434251154533141725235615616237474731147532755241673573365277331644152134441256355635364123247343141355121247266162621333561624332567272415345344435652247242765135254326262117442331554517177523432264722322377533611461562553736346632164425377651737277345657613667176442113272374324347246346736737715235545676347715123766753646547352147521366467273461467754641617215371346215226575744632427577632452426441372153747343615666752236561435554173367224626416314437416453322122457413374256777553525472625141317351772416326375646325521325467524614166711731424466341413252133634343345341324153711151417534227754271746177626127126351333156743474662412574416431476422147635315764235516366223273255552646377776423374133146565712667154773713666316732237175677156274575275664525521643754533652412171522412763546543231525213354664156327437125672226371122467146653515561672372614654766234252147512371367636711577276133657165145366334436431417531353632741555374241573436411664722425622167517334314761732121534775576176757173444252256562555165636656454464742557714654121646523327366734441716617514127314366631767753436537522472214255575471516514741743716156377124764434515456263257561577347342132574256123733452441511544572715164613434136364637611165545757575357512136165557542662536444414331413736535213371576753626371734266552536457627167675351327313143627273137232331337276327452766261222525642765722141173132441377531614561667372576625343571531513764444522561752654517257243324635372645224332526217325432764462131335141573655516637464663442554617423474171652445515263631715467531112522617254646554241341221175417551752161564353177225337557417466665275455113433455321216351321327147576311764241764224142115236253344215274627137451265417234261415145676351375353473233357666141565464323552417656263631611625714552123512742747757442544525436275326117214417325253547131665476351262273644776435711713173754671737251545245111613613324621312514423676424244436647372654724265641231174637273176127326727547344371521273324534557472413351375646127146563355733614244612743641452566455613515117425117314567546116753555127737173575545225313113721217121734134525272124755267653114126321735417331553257715174325637551755436562646164156775327123171276652531714734543352714126337351346523625327765332533335261235253225421163153525761314133155713226157156574756655616312637427752657765555343131731552155226234522512476224547632621236652614376557717632416472764217776351717664665561133712111622732556541647226125331622143335437716674651774625447633747463146237127624635326164257565625243165171164557311337645624416232451252457146167312317112653476744273332355255227357351556135133452616144663374341371566371214462653677257626264525673444656325414763121773633415175551136752434733335446122553374141263252435732366242155344763371336755221624763777177643452172156155666761466767161765322643247754454452521526536534467643271367145423765757722616444442761721736671271776611163631374563776212112232323274413616756525226152252415647261542223737772625623741312176136112435647647122725212454563575427752466543666157663147437771652751126264452376356664536547545133355364642762721771364151245661217635321531133133173571634512544637462656762375714365467232526173252541356515217656425331613513141316354125757144716552543125521743671323131136646514767413175373664125332555341222722174314253552154721176623155441541272526273412214323226633461554676767711461612245667553213261151667652631122356255122444773777157146341444511527232576275515514431254531172354217451371251633416444116221555276244375522726357224636561536356312633314676534447143732116645575272432122766544657244455352142552635251567343121245514343556125322147225263575622512346625637453676622451721523713337312775744444237574677762363725767377765422255246737135475661556516526472727544457462221121176151742572764742411357613125235254347621137425767125116331164611345321433415314226131655774374532353527177731553465644455124576645311331345623251155624335724717652716253634362477352624426237315625543737366636565157623555476362135531577353342141234411361317433217376445773227333613751212156577546474373624651143541671216167243122443724523731376375526535542753331634315711741672564341124223566652324735231422662235347172462456672274627153443566333443721255246365767716453633576133435554461237127137775261541454727676355477413427421257434413225315242772743416551676643314645366123314727211157246124464142771713254651661116733756314132322423742536735747644341172626157323731213176713717334454745563615222233644644255111667263231433344471176464272622172727334516154535635673233315635727154445353136633314636256643455554222766372264425172637724261137452552512721572413515471237434472766141344415766347221344317661157774131473261125257375636534742642355335655771515646431324711274533365764563655442324447141162636166765454642317631314222431635534344771475747723143676153255122566166345242255562243142376212361276244162426165412637177111257377314114345354716211231331366235356751324243534356511535664526454454425231575244115361151542521256627343524457762621737125376324276243535174214575573614435276737745331251511251142422276617522617452461541776113356565367443633571741126225127555434275331515275372314136752721563313746122631461732535532725774426713744231461474767433136536261263476312442622231113417372231441117642217463717737377241563627721125455525127712151276344557543666334216137731257461316173751346312643456562711646617627126152123471146734325323224315311237451111136721554215447267122146113335347242311631415334347555365722465573145131371744572656326221477247444167217324174252225146275232367615646761311137262776616441661653446336372575433744535562652147415431471562335731414263451565537272543522765552712431776155741771345617125775167322433242145244361163114774414346672237345152522631242743413746746362436145227613637123354662567526661666327471775726355143433514413462335314525317145763246411241431765436211132757645273254211465463336251274462367211426157326174421457476136365416552577542442224353232246115666545725712246577336552766511477454166761114663717664174165335273712771773561273153663211734563164464665144363712261513716464114552332755315676235375617445755334657755616517422252132777515447146153655546412646243554545223336254633427361464472161535266423457234575425574345554631356332577624364247737455243626654627167262512236231276732313372164713122373437442473215557117327737343472155712343675552564635627654334531333671367746336623315313135512756336374472325217442212525417614532361131364115162274467337312764234356415217735266745677722132654212262114716646542231334551635377516627431425271335551346423262343145172244754126715753725244317725436662361613675512774522263355237726245235634375516377526164616771635467244614475335311237612613765444562243622465227352442633133716364612174353175133211563216476345726237664273717337326631467425221144722453154117241244223265117124437775372714132246651211721134677576346531255362357472414627271251175152316745273334674366416435654373544447171543133773544521215746422756277264517276464235265762725224135154444554534156666475717422144643326114651266156726427362675473626546334443261163124764363124417374226663221437633434262563235264517416642174217543172241675315155116714224635673222437616356765671611324711571122365257215114714715731542621734353111722644236736442536711223741343456732356353127412324355641116444347616544141112454271676126763411412365773114362773173774613345315543242554273412723223713231772546174452163434726247531164373541457124334767363221365414734411656571335145274526645416112563752742776612342723611342354434131324434226553654455522751435757772555311255444211163262334731141327241375253674114543666472716747175135663263764357556527617525526232731456745314471344236311264721133162175637266432266726245537753213512275325172317323336113121451623152675424547611134746351525617235516367145735137635462635436551333261175677313567247544317355522737151537612352416373143162634231246233343471643572125535722545763616252522716277521474277463262644451744344275246476736165423671457564121647375334246246627371535414126374343176522537431461545376721752316617561155721751144764676714234136175372773272235625376216734346356775216645752643474445331676424415147123721126467233765165746471214227511524462316615534237277321733614166535166767533267276141234445144737536545622237147164177643462164247235116232257356666765323542257372774617145163662667323766225245555137144643342537663263214741526322345733366542542761223726271132367154422467654153315676526623252271544173777315646435471374511131215615224266753626457616217423554346151416414777654647561532211634552633465266153637627712324321765367647455274671662653215647137565551527356746734322663351363352731213141744741464642311346775377411135132646776474634772772433575577424527527361655454664247427111154635626745243612271735666671726372264177614265516611477471462233541267147677542443573543611145323531655756724277441735226433275462647545347756734247762635366124321365133722734451467543561314636155557262376135173267536777463361167177436342763373356355434755263313256212527761336264146643353524742654136145111731435222641222736224631556366562636451556567174726512677546426611647634625634437271472455321111466462244737562523752331752172252721255652521112411134143353672774121716172323564761475723473512335437337672167557636422772264416362336416634713715641147477242177334265151542243741254335251351424144752737363657675432156324476173411715643221221174222755514435617117575137243463175472154627622523672315443712323772311712775256546171645246461771323424734463446347444177157357312655442227564522456275212131271576344465444225475324245567517657573153736452232153417355447444414722215254416725365234161735476111443362743636365221627733514434461721325512347172355361741474753265211771246265523241245516125444376315532347723447674546361125544316261416522765755523361474261733651622575674573455614155414511775161451241631165667476246731731647616123126335234274132724116175266772313247162612325536231247676467631154264556717563577635714662565673322767551646227173565254442322664163242327351461731467733356645264522144171151343313225553531361653161561716733463626573266315472117176271113362665436764614465667716737747476764431327622467357242145752111611453516517746163221325232543744713274144142752263335151226613425744352775364412645554711573244631377516334666263141532522136432652544376176725221514675171754352526165166771634775476371576134315234144744227627576437477314656571276712525517667443673644432211442342635477456432733427752374351516161531677654746377316536273454252346445522137161223116636264623241725517133231254564451317171516612462514121357725474644564745726176446252216272752437726323225136713721152763377645646612123757652253372411742125511572725422571636355526632735525765271142424516335221273477261751671774246611455316426677715223314474231113161621564463465377542212745145565567656414762613577631234642512462366331626221577563725423774244314336332344333323516467767474245571424752315736321167275256662452625223564351313333352277766344636561136564615251425636646572275143267136431247411315173654274672327322274331263423343641267767131764314156315547214461521437443631373671542327337127273345322526747341534656524535455712644135123766131417372745625415513325221426433615655151734464356577322374337721576323515154671462435774537542622444625424115363626336172745237464166621242111464326235332165233651434661111251574417264563216673157437651175256727645335547527135112217427146732727552425311424146356327334237542437563423564271737672736452326671761324672443536536722567123624122345635212455342233412525227532776552473542375421773344176153453231561155226762261436245262531165335453314213433516434143436655472256417231564155712435612677431655535651747555257322323672646635537316423567336277421713376373145166141417432361334545715534141667613645712231374747537314132137121525316543562276252314716133246427142125415735563115427343777541666772642546334536477435744717766776173341164556427463266567671661471145263641414553162757737215266313732416567135444651755676526447752213152176653347546345211165764225524735622257334251172127717341123527212546572227321442544577513155715251132443575543136677761377711637752327677465611572667621733125734356337376267241421424626137733461424463372436472434726722745374456726445611657734446342655416163164641532611714361335412354252667264437521722351413264532157337455122113115342514143515623755624545646266134474727361154452354637525454357127422557766335652245231175543546521775164737526654516517463147722122631335416213653554624241243556642115655676364652435152216555462562267757677364641457711657326575235233332362166234224313456246151515747376674527353714463376225266773733622315433146514744755615475112364644417114665262771462323133363651331332631541147125241564213572644761263346344456214463714463656266215443517245177536741311777725557334574612532475463633723115762624215717252433212575277511371563215125733315527776536576626716447141555175761671663432535437264211367117616616164351624577427137377211272163163631723473455477521432562772222675777337725454536672152452613264674641632411264753372457637267747344431772711417147214211137135161544733235217314336156363416134212575222142773547355215446461112362124232542117145567345274325644757513766361265655622341764441266237545565675473274422631216334251344123624454613446532644616345372115476143635211263462743776446761427235631351561131325525562467523657342371547663616571247536672356213554632621312162127273163212243537334415437757362312611142466642775335212376326467641164224227427163713354377165153261724346511527722457111136635165366723674746752227231353347755473415765561477612646764311327171431347716256157434343775237147114231241167615757315724437434445161226324435124254657312466733633754617452265673377242572374652357152717346127367524663734633752756152725627676647327642325623711727132535624417633526751533144137242335236576653325232476623447353537242232236452276545427654523265323546761736256732665764356516431725624726645547127627255246123115617371364141254236265712624135635675745452667314333124416733626316313757257371743366721623175147167375333264457115717272412327237266613342671511422533675231253112113331612673744217677323342642163436417677274615765637355543151523374363413274764667725412737173533171543152562241254736321441614233417614274432556352115262454777357332162524612637742577156447414457565731432516614275272147712357345232315575367716426624634763726543163643512472454347133641143726336632374444612457453756762465427312643317772247275512322667423554147461461526547327661167133321725775154246114156154354376542745534242676677326223662311275561245772272763725537136256417256314113333631243625731566531557521243615172215511413573556644616733224723255127171557246133424427731353767573423672626531113656543617326366751432634527737416273475536376373347634225311453273652326345174542535266611156376763326152663437622537432436477375721526125552445117154347271231132215127665252654663316346552665117722712426714572143611666245167171373456466737243644744557477477637215744657714272775364423574567512326714675435535463146416166146312273774446233771475336256772733243644217144343574331256765371635212624631356736462571477321373224525212347353222372553475546261543464532657172432677161745653741371765243163335627636632521215354354272427754646543557621733571246656121227574562736137144314531436337563433112215111234675462424361436673324536352474155523766434561561122575432673371263463335113263365545321671241357635171672232662435271352565624617537611144232476335364534426127162744161524774627467144426337347554354346735437375313655617655532251614471253214144433124212655273275735253473271635257767265727446143751237551644351251461172246153457564541635374532661712325143417576354346267652142342465272544623557214235122425543112531126412667711345146322177521673116767245247373722754264135236647456363227352654762511135741735712652215332511226467513317423215463723447632653623615246211732411714451343442124425242264466637132466534277413755672131476463475544527257217525316633663641212767553567511674435321621225435645712272253343776541634755522376261527746213514561764362153424234316373334515263253722226677324154725351132657316527744523665274776533647725147721115477176516116152445457155167272752752742664562637474412122242337646743332772375244516132246413561475721132352165637553161741427566352464721121715762312416552637675234637753243653325455344436526332125133461155377146772355347374577414653751422435236575342462142274661157232375237211134463511122411617544175531651674434114117261463436157523512711353755576516664331145127511713157565444326116531655477462652277145722554455341547377356544163111673751437273441461437313711333514711165175551521574545236471642255463213652135224572415355543771541161466672333125356124562172355455524414647351177611467717145622475155533567771671741132147632211615571761152252556563177154364456336536555172351246665673243777643617476376534667656537163354457737117631524274271244143412756663773666741462721235543215324323513212121266562715662224745376661213525553533634414735443374262422775553246532214717453773433576165654367253575165144545177557317265724742312232146412232211342367163571732155361133455775133263362751745353711134513273216545765272366725327544224444164137647376626527463337751436744441536466561454512746144277714541134773553617261566413734745322524214662154212363123436222764256777577726337676112554417715433345424416443442363532173763647273136411255622161435644244647671375146174756264337724432225325355771712321347162175542655517355165357421566566116552151543561477246212461341242731247423774144167177247473511724141123512136444445562442114126543646126332176653323576771423376654476331642537173352352425755644224167354537537765333574362156417126754547612521455634362561543554463136727313547223563142316674334657662612265317777214556435172571556641767521611643417264115264231226325217362565131141651317742265716647616155671725174334241567471355356254754166176433257345375434252711527236247722331276745672321522673637543554771227733524156142242645523177571524627312631544161354147447431514116231333427127354161145117262613526562135156715535631352471753346214531246247713476644123321556316172327353345624612223545733564514146763321122673736223737427267514323756761342656517214265275245611316215353431421542167527334236256161625271334472722773737552317327513342576347443742245313553615557223574437515772235167335737615521267544524233367265132725616452472667233565233263175271161137211566573762426244545415514727751227161376642566353713564257364377477446432522356767346175123664525461335617755664611621433712463243366241356144536731764466635152517445562511255167276646423241312466246526535243362145121354416755672463347775433651552517351166756325652742416673141213242451365127725213544443751213426776724636541352537374661112365355167744637766252213573714242171527415117127744355546747465675157122534656552311265173143642557552746534412643162671226412157735353335777373613263415275474577335577477346737447612431217651725474545661673641531175126215326176644344524727113314236152623633621255527131241572214723124571773122575621735725357142473154354666156641635441275122352777435724632616711556676427755256213714411762573751637511676514444646416476656263257247321272656444275244133753417333465526123161417245762351622655325271113412554677565734225413245765776341626225164766421362615415325352345356776416351426676551312741374723132674631713673652613227341754356657353544145433634256214423742731666242756423715533455736423526576332527571212655324737662244115657133223233532473167246373775463517123547232372711736666156736217232427534773265477366215777622545126162562722662627547447332626342252427633711214271236272455321457721174316536257372212451214361262464124111735676216564576245265644256667763662414462153777626314622611727215547125423132725756341643634666434365331554146754522775262662626354771265673562143433153451533472163222112462675142566145332661271523644113274121277123546145156222526146377711121143437344163775251765725625731245512545263564312521324117624731612777627376741313344146731444536745727767664716352156154237773577412421576211755353262675665156136311351372316734464644325133746617745275526633471755427134432343457177763747276475231255722265522542557745154634541775561727463756223337136532226325276271246554476722134717143765615546663647327333446237364564466142132437361413661573523211647474671733772144542512275515512651332446756373756241377142633231465523321347645553722736232754714575257275373261452656512717512162717131667217254532523124715314625627717131745432725327727662254735637752747624226657663642166473377374671774416314314762372241467336115314646517237746266313363425347167655535662556576436165437364272371754643222772655566422447171321436712435646733612445613722145221733376752765356512313574122734147476315513331113444135656253656536557237663614262775463317566552527454544235664274633275263152424572256673463272676327747464626377525515155415565536423471254224116761577337127672556117224637461457446474426576163774627324352526474343774665563162655526265431317143354132622232521214232177131735463777372437671732465664616713543253374546446642172661252263541176526324277165464564713241535554427361672617441236537144237724567515774265333346323237752665233224735544416633655312371666324756452227667563151122241321354652526142747726245446564736254653146644747132166624614226245633347223537654262165447171726522155267544632251466334245341222347166244621246214141654312435662771624476422443167255727163562151143514556613322451342252447745152343111723256524541176254141756224435637265247724133742465553415152655613527512224622777756316235432122575557762565675662533456323645215672662232722412564143215462273773372525611153233141351221451751277542444451114312351513541535765143417765166521757727313467267175536425345127226211152511547541223266113535667472616752245223255714616313171752142152276111357257642573773217425732252164232246334523734354417113347447173311234625311745516421754121741373325136651765536417515211226266631533532531473255435367573332214371744116267625452317351615227766762524332324272333451552266355364445271534343415154233461417147623444617434616523246415666763755422123157551433767642447337745571713422476542152246312456453334545176257123441755527164733377643354372224671767652671475734631375726141547637736115355752444674565314557654646551376274452141417451146735511466536347775222374443546452233462356372213135374732216365517157474225457163523326657477261166237653432337622265142223141367314273446673675235742374611147171621274165355261675225616723743735246764412341432343735527234547355244625152334451154547552236274622214713356723122676554771621424654366714516227471356756252313611456341622654713152756675736421565522514772374772177161673435614375557357426116216336316663555114763627771611543577341237576326116321211473656327363415465321131154275345533566414665533465462617247163657335177475341726656731664574262216136775533726673567666247776127122622525311161347435353253765161362745565565533676534752362167136423172762546745512311546656752634355654732645536766244141657143711567362565452261175473677623214374224512456664713464653654366737553134271271563242721225754766745251772231216543736151567367364112223335346332635535713742771473714256714547132726427723323473174521523271224326361273536775475756247651663345365374667471232631664643131376125556344414427623112476613153754643467241713776377551553151467253523456541247271256323642771625267644612636746174737333533626444427222375313222615651244527453237241312242464666554571363231645563634251321127165556625231435114411127362514513467353166123744325436466646327566634232245443175651637423446435337763371255576454547621256123656654275322712657334426645457755734565216521726752425372131745651227641634125723274135332345124356253446161554213725442515411146663241146234656167735115756763553376313336124742746556354263551172623267172676113171627445723232435754674265176375677645457763126734434243763533413371245244567563125653241634265635642476155123446333661744472356154433231753336363652757337656473135552557212241436734761666645251137326331645127713513512465213337461223317721123473754222154416555577232144357537235557165546514374321645274266172767777565457717541625546175616215325375742762636131776515417222643574312477574571562553213336535214536766155636724263424257124535227137746432234752435243354731454466564446673212544361526313561131176454433154242611253125474526627564141567114274313645475756741731435623535265527213764462267562636321764522415527215544113752335277317762232614725413134542176525656655262463155637252636245737524521341571727612531134647562433215452623634626213316673753126541325471674467227651441146341227351131312767722677144347215331365477623721713313227745165532567447423725127547172177677554744117252554377255265575565643241651667245676623442222717575222216476324225776434556761137542173144175536227164543551665641252565166751674613477654144531646125645532612313744641566131236147635327672133521225263216332246343714764117562574334745761226153463163524562152614211111224141321727271666275365717137353657122224355345455114615542566265217342766524262712464257447266176723323314734234573232276234734746413653457273643255414337744447312616363272466624555321414752122224743364443445214745177515611222727265532375716424125115677111374332225445247213624436235256317143354122736757243726544361242347574316523412546141115555671225215647421772255163173651552675417213266356614314734332416777542562127747647411775321572511665135431445422462562424414674162775641615547615174337772463272572356437225215125642742112442622146724735467361755344566732233331342135674534741565154647172526564167567342646626544221341614663273252117464367243566732714414723342552632257264654446657327633357445727255375763421426351444772645557564235733465437365443153241716675431144573346376233431755167766531654224651511335672771426325371455211665157113713114346217751127737737645666157577325147244355242455342231156137262667713451375643317633741644573152764342562366626713276474153472772345515143135135356326745474564137621335731643472334237777466163155221724711452575231331276275524345341741115366113155275124616334267364375334136453172725515542167116657572126165314617557224342554442313634534475165734757524112545717473166636444157656632334477311447657632516223321375627271323361457354524436771231624733766426464332723467377313576162571433313745347515654674255174344421152366114776653354173512246617716254156666445672313664727621723547366245113773244524136227422717156672524215432215621443616176714614256667344664457525225726727321147747714572342215636541334576573517517157414535231726262531422164145144124561424636454537711317623347742422563247126471513535527264171343522147251132372566442351671725376514432535176344211547546737471463737324123651411566553347477535742774477775737225762236266243157351727617524436245571527543161127232334315752615464537615224346353575147635737616353454265532561242765652455345114542151645225231537225473337757525753156562226462424375632636612417724613245725261731413576511153745445153754463565747237211325632375212416256546332255316332114455275455474451374532473446661326147624573331462146427664652725633634414747115423566465253456351644215571523476145723441127656132473263436615633426114325213127366515152653546772612344166411537611336525171111272536235115171253476361172273323576532333153211642417717231564155727264573224322572664777256575361471161513245324623213222211737217237377635367151472125356452514526467542311316456772437476746322377465715257115715267226724556126755457364376117526542555133745733411341161761744627264672275762442516525714711573522322442252415566551243654125416631176323464244122346553156526512623455724432154472257564457231523161662436645375624574352314367675763336334165751532157327165755664227272772427663772734742547327753112473554634134331735322265354554113372156563225232754212151446741412527476622545753465662735633113255235127414271551441644541751466112735765326573757145511526666517613573254125432447121363262133734475722445321554476547165461774534247314145134664651776546655322156117624447747544544422416152456367243777775652436111342266524343477771712577734744711346212657327321421572574172674727751136171123255445536236536132236353252464714557442356143156272236565134536174147476422721757164732455721732356336177313477416173357162255313156756126465337346574623132662311125731677543477461743366456771722616776152423552767215263163164454355164435724112144654272512147675515151752373516375624775323313175573711247422443235755677131442122433646512766273117676612166212454632712127751262252244352262547252344647744274431646263423611535162557455275537734554127517673424672657377263167645351443544716576665625534253337175232476717767646342235653217221733214225124172135251146476312326756461273624221755153623754125734762723424737234743354753356261651154325732746443771566134753147256617424711766355435241757365413273356747135774641475673631312523257755172661355435216472622215424433143322461344155636132442225661215437777243652455361435651546657423534647136373122275173146745627362656773532145376775423221622652237227413627557361223456551755371314365751635765171556344432263325153641644452173251114561116341747224312157376635746535536573761624464663624627435377164743343345614474177552535356475762336664456235735724276725575465637536274737523425745751547476163235165661542125623431425455474721527377464676561133164743622213466537476176746751561165446761447413343352256754224243727626762724367726253162515233534536526131461573412121412135412275241754124213444667721233176225733242653265641447343566267722536743241661355521665143753754231144561647616452557364672176623636575673563543617756356575477673544423613266551556415454223322517343725253232211262627253674264127513231654276324417345624443165236563657471232763736431266514321171576656662171475441467247713234275152152372532316346413413145656375622752346577334275457753642572264653116666523342121136323513742422623621413131253356222672375541643224375671137376221527751635733446276677174143775167254457162427241147161576776675623352477752167113223472312372764433573611217121544714254475515347631221341364437222556415276623716142166234517633127662512413715712321255625722333432673744454255411525221113256511771316754473344326242254611563564724732373737371325554234374563174671247434474557434257627277537317335411152646572231312442414555612353471665556771133267431716676125465664331241443672636747547551321117544672735536112616662541713224262662775647552752642137241663473672112617755252546773126214565145256656545462547546741673451266723671655324667655553742317446247741126657336324272477622665523526621416353315635274366455241422316441316541343163612551375546171744775751714423715362533317327324734423633466776426711232364325132413765444235217171334564225132272411345167617631754424136732153323467175167152351723346343551713352363272326545641114631376317745314525657635423443146267221135757422227214757223537466571623517453574635324455732677556641313257641344275634436527675772123352446572122716351234134724136555731677212524451675321733435424126227242523151252614716363246651573617772271426536231267674562541223132353416271224334225674261274617135417236452214547241556775566573343476234454222245222122671557124554411155667724557672262347362736567515275371766165274532461665635515335176214712643415664744421211755655416216472743531346112234432117661512462676363426426653315427527671151347216441414212643515571462777735155724264615214554434674164277716511137632562147613414233553655436553447725233135576111576154627475152754661114663514654562255234142246646666346726424273421155652166163761736521472112454672467676526135227172141463731421667651543545267372626164362533523612765232752223375113743136412172361224333665125737433747611737257463236435157653616314274271436476722756573477762622243172246116627215776346445546174315632543444557256212747525524367752226673442377127425417263621636162142576726651723564513715271217433674677574675265645347176211354655236315776624411345264225344622455216126677351515234655411174343164775576623714521117657161525134524314267677441463461461453255631352772662526765334573557775661726226315566476343712351461257363275246635676632142461441557526235743645545321545175251447431244143437124656732643377344316424231575516275717265614552312265712761642553263223774563723253744253347526236567176556162516114533166252166646745734532612624471626534754637445332714217511342324111615272335171363114775221443164255174241147367511371733111417145646372516636521752254474457574267121411265257355464134612751317422452511436464233756447634176737376567634472126423367253753655716666661242464326665673211576471467355513651413262142374544414543511451646716335444773346111576757214372273236773364632532773617521362572734734363656741352642525753343445142572167765223377563372525163716176425534245576556176262172463414266131455325314325153462642273532534572445176632347617163423775262732267617662735727636171511436523143734714127711715634175141232436743435156167362755555272324671575751577377425633471122454133314122261332214717356572137552174616746271333133772751154132353153767517744456746234353767235442157231344612616433262567413161366422545346627573721261222641711542736662554525136354417764774162465254441224646565245235735443672337115236632512335161753621227563465227113464627447435222233311761413523161554627773515631372467531174513572364253536332452637713233674264312721575327576662563215575213554157326762142721216547426141536255111176323516521515446464647454364475436111773244111167443421167537413214224541351361326671677564624356777365313543675465656746332757657676551235415264162657514721677671555777432361766355346647141731215616762211311256613661774717132733631153325332232521512313336522175324545472635717271532765646147712577331614334365437647433357461531574556311747513576442167137223273561422627661257124423337442762252433615573622733475147114272631763353744426522162576616347623611256652415376526177667624677172326224556276261261167152553672724656323353211327346343532711324712644162412645661435211312443235321727171364254227731162436142515571611747574116113222566463734413464562541253274426665444146472151647225342662434224777513464672767712546135361124434575253633232242427342112125477261676362525143416343654776445563654573776613154772366675543421776467156737355755175674551133123173717715152647367161546542165575717172617163133242427315424274715645135745467714257177743464156552465372732133661611775334743521771527122246624624124651344737246221134461243746447136173677524556773533661254232336247527522267176352742766312645452435476716727766252352323576463637417372314374233361623114154546427441521351774333425146544112163221312347547214665462356171376521742316374324723552727736756641146366136671264631743147644532636466472351417713321624627464657526356515757767311374175234512663521523317216357321122545226416771243473325442515726162724666465573143515253534226136421216155635133525244626351174656771676472316667414777735745434343423263424322474724117614467733466126361125354767467452731144512324464465324123772147353356147312747327243646345452411756752713326461425622447376647654553755316256327121475436323371756344175724767761241174636366554321131744333222346456153771657222425611453667233162116317574536171662136625532242343274264657567566171754637144212443151555424572412616273117621775213477253623264346366617712272734373427723332777646541431663167536272374637131736673737125445337347571264361573363676622466211346326455715765434614615144166224156725615425257551342165665571216227672534243132375524372363315127211575212636166741373621363115146225647134154151222425643164677521425542166563614156643341732715261735254744434143727355441743461665474711353166462526254352631116757442417636675156715533625647634772233236137645446322615571573113336752766753531452644415565216532441747536121166453725573213267324531515427535474165636267676541324475136712662271165614765553715345161773373414632434733577711636456645374547132466761363473456413211631526421767577136466744726437532673556656746142722617311354231522271265162767272463434551275366577726435735755223556233354723713776652456264176565411147532143554441627455156745576612675773457725216265173717557357537457716727542461277572457425411445456257334414423572751712462537375133266627472653267262341714634457176771642231466575642742437116216777274317355325123227552573425325244676635471273524473754416331765655442311341523372517352114314261646167125216535725153264735445622432553374151763677417112556447524772432157265454416417676442513214451565674531313145225171243774432427221664115332264664127427163346367456161535643441754126135561337466465447235572777312225163235375134517634515674736161777314245761453555227626432357441511236744172357172765631275343324447344743262272412275425242675352375711431651131262733657141665136626763242256374517776122112726517527735354123715776627232524315457573231544234145737143326761536576132217644351153161534423475466471622526364362611163526777645415567753571236431636222722616557237334515541574671613725116165717633425212463162344545466465177264645466535155311666545414233143536376352167611717655436151476742612437745737132227773677136144234517414321234447456645762766313764126557612241215713571171142341162741731365376276457677673141257454557575446455334314375722247124673563436265127662411113331342132321675634346425576617343361675231227712356213172662725355554367422424661613112271573432171537572144533634136465655417731115165373757342765535333164156261776537145762267133676274723742742715121521747764363123615321415726621613117116445167447213353756532732244345222721776126345753547633266624447743753555512271654551717772346334631126667137216755756155213746432455445467521326224121742457313571436276347312334637743372333722175715742174327714727461525217416221114413146141553521712523465427441272727525572264354537276157734154345231117247565351361276272616453217312435424162222332252453421142773137771321642116345412143247456773674146223443367741354672647646335653564141576514632433517673546324612236476456153416666557133766357612554423427762547524531237264255532214546544721174667612522241623144521415271377656747312425521246611761672631737533655731673137631147137223436322777412573227223226341473735777361232523134155471244413127626646663144361776636664334756137734734257617116663563236634537644337155156157147325651545232225741767575373311344142316742173761267246611241276622744641751451576514475424653436532336535572652644413166453136713245122572171355616225174416317544446636245314764627447211743637513376323743353136714124311524465115136544211625525131573644434256773746561543425332311717453211727225263251614351722123172313474517245674757524515631337567131613536436144117561463527475412474667723546356236374757627562641347233521446463223611674644747174221572757716221622113467774724447627124714747722334673572314661743656477264277534113473724522616314255313622775426756451733325447274625121411252251126232574431347142664634753311323236525252217313662265754425556712755573134775564714523254743633342711233744512313655173516173427512755442722143431342623642214265573347433657333551154341572222112535572176143522727454544776217364245356272664756734571277121141574223754332131733473513634752122555262535631633314566243757354542251435221324745534451746165442771734667613427163631135755612212215713665137256543756453234465677567261624632517175753317745646717745141533124135522252367244156153767732253655341675125233557555153747275563436426331245432316235621641421674646513621363435447132216452551346327512637212667672135172367524546436623645243243446167315476144721713471234542115735676546554257351631644437532445145722667416354337434116253336243644144174632355431732647113127434147441243412346443547541154726523561715466614551135722141542415775117655646324421222436512164775576474161123475627174745265754625575274321567341367755575274766445366117177144372477367727415362231152152176536777745141711652265272521732675674511415427624134654225332422212753125776751573162614447612742341664363362331757137575557154371371137366533727642731526625255424521557442645631135226271625567343421465551254451214723226115733375434213431176316722433333147477343765231341273175341675323473427726551626736355113314156517761773641743646473215645353135733233621124311252673366115537254477161213644162252671522366375665775115372117235526672222761661367772542742774667446562672157317316563657161646513572673131161122162356466643634215475711127231441577555534721441221721134751134274262736547525637743255654676427747354147212116123431127616442455313726151352363626131723667146676271227454613315213315773776677431662527311542453624424124775751756322454641117372745447241755163116354737232171474131155152762362231634657761127634142561156216532626413512525617225513621452346537561742115716747517772251314261247443565266762143732367327147175733372231737234647166131245344757477533626653337357263316142556517674267144311437365526433711772751371316156213143734671362362667127157766726434737437557625175121235235137163577542517413323145151713617527266132414554715433157367742733163116357735447372621756654257566166734121764635217476274523512532446251357743675755676461652226462227445553233637427267464676545771644413627323366425363763731637625476662624253725565153467543636365355557266571467266645513275744663341377251426546343214444337717345415432575452225547213547641675437173343111343217242637513613547446713425652264327572463144331276217641445655371352537134657117647535671567421456732754443444531624574764745713716115651226712274555343646441733753441674574115473247625671175374557547227621471724717477677421775152174177256357152731611763173722233633551515414527722722431624236522717251133516517112245446163735245254457641412532757434353746463377736632674751346513157544524744141723223731176146475451223537134331762275425233272757173445563215275545312244455752163347227457222166136253632337657374227265227546443351744211115245777627553537573742146561613436326321317653523237444232314567513334574653236541516221552141111455734513147614165617756273414542245737333334134535634464726473532444411743547322175655346226573756517524277223433327755677561165145121557662135466554365234354157763747646163631517336161527346346733641556732223257165351375132726422467273434753661517537553665527657711363151356627513452151623622633152457515467552136434427113215612767132671656762744417417641322631644725224133336117742745111363467173716332765616674177711747226345547373662452353653664752773647314354653211446135323737231524556215772324477474247444666131525557247562231372126173461365457336362341574735347257426666544666425663732546263371344242715315241636333517335676733341541471126121744415352231133467445775227722236671546663176555642433144257364354531427731511474637155562531167633175162353323716725473657775761461277426752353364724422522227467516662477635264576357622155225176755235331147537515561176721432237754577624561641321521322464677616266247637713155221263432133213142771763774412235354621144376112413422621453665313716213542352714355556713213144545355542711221647325217641155523352145446467665726547434552345562676443423511273256333717243612212767421712743361315515523125335544617671275533665335121322766642322313434116575221132275514471523165521141727542766216766427612131774711123261567411327372364616716311522251237212434374634234124166142357512432666426773335741547564632672156445371312734531516676262441766634465435721515677567415662157752523275661142632711652557667654245456355462664166265533431537155733551427516435265131314551665361746112174737566361433117117746134145356751747617142364314412325732667466663643547717451112234146435573353557125336273413537245217757416773716642472633316333154153133722334221467663134767476274417773346761727216432131217727472473726536741152615231241254333472675662455562754571635152416745246124263731337611773571752645473215634236363453464143247335275437124547476145414717434467276143165532512426161472445715744652361744316552461631275177573372537644466344512615725624515146421325265721562752565357131755512753462175364563133671624612572661341561327715412672154556625223451527562573434634132526412134573656744223456152456747571125674172666477645642221116176311161611276736724627233443263135235325436442236637644112531143567333117143377163166611765211561525725632363373511574672424572743457253571721412552153314665163537455736142273452766331737546733771574511732216426442454522534744134576672723764532766552726412224774664176465251461335621473724424273514553311557523476456742413234626264536673655136613611753477162671444234612536316717215555654753227554346632454364315172751366611777434316555113554454652112672172755515363264551237615137227426624365134654443665647462325267261521445733467646533413754564422613147643211276143524121571152443757744375535553725426617625161566574134721465177543623516335473444156551521447324676251713552236534522775741274763511613261523516261461376527215577667327462742671747311263113764663615755152441445566515735423213515313137464442222713526271723314746263323766122323615446647161676545177376311544134777564673165741557416441515131522511211617415453424377542454547122152343315742416755152311174777215432173577241757565126126636657523743223241446524325241743742715472734451426471134741755341451322425163335175212776175533617731264712336155717177777563753766116416753572472473313352646356177152147336476735267524122147667574171733614417346322133357336226736122523254122164467624761623515431513132655163522615423624276142322544732551143425277552312215347633347514737373122171332454227213647522424355776377433611232343626522755422121142726317442667262243441223444652255715142231146414142163547236443153757113331371776125572615463772417531754224314247711313241452623665173426167613625165373531223422221664473575776475346622745217531726377647346317254747334765641144773161725657714417534144641754564773276675676256323131424433211621332121622557573116152635246431665771252536527721645142666532711477536772753656153766255141233273346156444133752357376772236465113737714317775133253763325163615272172643534456764374535445735656765142546114114643326163666445255171246267571265617626225262711427755674565674566551473231443515413473761651221176236463627212764223632617142242766144537552147472756346254571717634376454552431746563521211473376145773542724731621263314544115721537115371174375315757444755557634744615726545377165121537425511115575471255116724637114145537631427351415215727514525243715711743172253775617751343156557251466177224624314223446773641777235145171553314146314214667176723637446624245652522333633734546221274157565363654111463677353115225742712457645455525215143565316122215364467326177732537216646657212757426542363365641552355344464561523577626265653142276123553241334675611531436632762614374617144534325571533515625216635336444717452133316551443264151614557252227533754742177336735126413437662635234737131273176611451124112376321613737166466267345541161431253234631656616645662447456611636353757154734732627765742524726655262171514316461561364656452357265424574244214373542241177245255626477223655314651265315432157653624536223653431451312146454552734427233527264332563617656334531273336571437163343644621653237256512553745754311675266345767725716275471315747136656623323414376225666137734647636531162344165776676571513261365241351524232633623413653313553371325416223326671151547272447717743623636271761117364474552553661253436466565777636476243432727135512457337246243772627363475522362537565421434744237165546227455637717453627224747666543364432125236375651514217117174444271424246276655146467511517364674635362272762616455325517635326721651771417561436211152135667563657761121171333164171475175153547455657667624223742773612337675762541547523354541757242475566364552635727246613722137417156116463657552416461172216141265767646245213453323522144762717617674521353621353534131637741732122574642144262445162355441555757227615131446614433667335512317233324737214776541731164555776122465771111522366572511165766677147557761233473343524743453233457445443666147414167565732366735772557137744714413362275345232143311423321121663231441314141454614656321323472136214334157116477264736251633135766312126237761711413231515721526461573516626727261425677362454423613266761772611153543573751412713532337336521725213663161133434676133255247243174364662116342142756365771716336774454766534737334154554756611417256745522135157776344142644115233727662715633722567415761412225531411722616172467437237467713555736742323142223265317466557744537434555762314633475554422315762134413323454241511355611252152255625251425142222457152266463521213131263117232467515635665156377722732453365545635332122547677573777334574457344177421516466535745771362721165514647627576443157766114427436116564556545473621616531263335256236615461322724115772122446373325217766132324725624747374133466317327332463165751454415721471433464427557275763232773575655727466732127746656262352622411222252265476412466226554747322334661711457421651613462175227364142254222363551732217426352317715243765135312676741772731161252615215117552142146147442462517712643345333457754672546116266277353671335612721572655667417426454144211172464654152741772754622337167167437734443737131435126452452471435431215511435461262141516646722566676557522362412736776663566744745612664223374667467366736643347141431254423172151721734522266272436564237541155257264755264115352337642626623552517124744556223346343526422766251352767435267614651124175265123361657633361452147263663513325564652636274333656665364545171746344637557323571561337713524732676363337273653742174775562264344313537567156452561372351477135555142122131676165336554725747525432544767156665527516212615666522176474371277743123645736635516626666337557665116574317264655647446462541421141112553563261745221777343516732133412677316323136245112564466713354553515447653466311667236221665333614541446115745735167112171645245712165776473317115116336513247637157746626357252762636411124721135143735664612122415266277763777774277176567162222141667766367351612611461571733231417375334363464645125274276621653613456225653347762572333325513175353374273421536111253676361771436167676252335237254645474574657567441466631544462166726516165243321371263341171226112172712646261321551724225256761111412566414557626631342251757377331421472257341154217526645664711264234552477514346331224612424534257624164756572436661362624476725611327126716363142117363733725527662775566414132352422614317152757246716561273431762164614633737754646534564226437546321775417476174647335151713777623134564535556134267664166575661164544227165177427427237776665714461212231732713146761152652542221332566752163467375414672166221445725512121377231172562761622157752422644765727137325525677226113246543342754761722664455466417135621454552351352541227667621624326573141477445613144733726712545314732272255147454257551452736577274525752656635343337517672562722375172451253111443513413673164423122471436137263554216616125466173332514321242626331331134512533255326162225371344367473165347556412431652413447166236445272341223555742114567417323377727364316564352663343414446766771621461246715274637212657557447542572735647376153173261347315371652156554613512722452527442171357655544225477573142423377427646633411223673655261334754625712575156362751447165331726372712253177626114341267712115746156374523616427755313275515373127161532233167174634255746617132131275537237157533361256156151364525272214233326556765672427647432341474227542527327177452356311646116431575657711722751225257333245111272676771763362373212245573323434624623632377431753261751212665351632136375441646266453415773527574227161644131767526776476141132465574661274564535346316224331517377766225665242175737662225477446346367247673214711776231161744772637755755467171161123223237737223327126755675624127432666671634175211177776567363327527521574314144245154633762324217351351772326134641235545666421347516676241244521755531231274441511362215323115113777123243616761211331174315137526631276551556567524734476321273171217174142122114627467212343652772712437633143445574515141336536137373266414157747311224341334247271537571226312353375134467714133315376321351416156772331342165317247272231472427217543611116757774725351421653623677362412271311723541613772253553612152473433524113273473621277662177437773467267417757352573462712645746374214254362226566736336424322142554212631162141145762743466612171422716134431535235332767561171133444256622775631464675653772226553272163474277446235634244456434154264725354222134717543211144552311614342174216711164316534312533635372512243155364735577231475161621711336654372774564617747565541732275763423624473154253231724211521326661163532257666211323134276321321437723251341161223636256112245477472736253272325677535546173544575217736445717471464252162455737642555423314454634351461735647625712565135564167616166251656742643232635575224215115734221736322634111671413744556452765271723216721117142556344172417237422753655766114361126637777733766254642351262621143736727132431266743112347532635242234237414422336651775167264227344756726363636513634433462113257554456426771653256513253564173741426461462647264156574143443141222272351535564373162567145453466117255431276727245414437265544465422256375261125756331451236614565174624554665463426565617572247161453731317155517366167247465473542244215134774744643571641317765273723447247733431712175245345777271656562665132333553366114714644121712367273357624144165677374716316447461735727435145625764366227254224236637773427273111531462411233555342452623744255332411642755323161225517114443216347544642565214347232333716336273351654234666423345461672545556724773525124756414353443737576417117462313721762421775462441213323363524137326561677547673124367715361174126115174142142455173714644143456257171626733267611311715422761717136121115323325356567322637733755661761534165624512544731223531426436513132725476662465421164226263243566771542531662543761474434647337336473746146233531672434731754116657345152716352553617312421721727644472674532726277131462474677573244543216411341454414665355434761355776747775743515114752416115253743647731544725646233475225743341744741125537315131572233731476573211213155216612763126423474444754714333145747336657412161435734526353667464331215266366542454126154353413745156566536422557271177624365571376365152713272121342325144535656576423725445661714356774446244135677263726524516345254521444141647757263144436354172464432257343442467775551527237375152276133411756667545516642561417736553215223211265756732273363255143555216537756544456767235554467146667653641536173173735512252276155254441634543153357141266315324132416572146564222136165245767574754635153732455761611424234314712565272516743653735171625255655125545736623217614314416224722523311123776337411153533446147223754775374336311425677344252314612212152516546671471525353415176311537771564564544717645326736761253244224713566261155777613512536254676476646665712512614155241255556415312262663254544153571537514346211521626236612426777163134472412465467414375546545654257536771256135176435123167665373367377515331132714637137725554223142214657173215767763674361114537742541651372761761252627121474511166143372562661616117113354744244761231571667141762773442137555253316555555662162372746342237746416355242732241472776534157165735653477763127361457333632747453142521611233252227353746235273627712263415722244312616632343745755263443346574335636521167453167717363721612346131113212151366467326112112247753273515713754612755656767425334563243134443745232732541674431727254557335732555152245336173274133527664456535333661434434645467741136465452125575557313177557643166645574726577264216436574467167763652244224242654636576156255154533666412245443726666614432247724214266373257543442433716334235757417247555532776232633576221727167774763545745772156345257452367462771365162753171144551527165135345463213517131134513775774527454123554135237253534125626477446762346643457476751574377131265163426423652632441527357374323242473436134337573555613753326634715441364726676254645333765651261736166657557364771635244722157364174661637677216413237633141276576174361341272342776662166315166116534571731266557356476426246146724413615124163737571352366113115556756652462654745172342263674453451347676775472372445755445112557615666565246575641657315236473565353133757727525772643365126575243666165171742633737466312162627275215625631114517566417616112741563345132153735713654645557644132467174421716526274572466454766344264635127612522373451437746662321713625625117331515757653543776776352143654726111677754541731737516714312715715174773446553546636447112372173614215652447735621575625166275657277666143245741121614412241126767147663221124225327651275317315324314645756472343331462213354216637224723662127454612744461721774726512171423477752266526537736441423633776435543672644531433416467754363227775464657334377657527724362724714453742176625514676661331622214763467676452333633513745126451266425515454517174564752474441451332173742432453722521651315563525146534616244656131227252737313236172572337115721153771274346552373552726737533637347571324163322577172776161365423473424134567756177317217456311557233736316274224244276143175163275477432362674323152776416114345725251376677342651147172723547242766127727155442467571673247275375327323431166424464653271311152524646121347113662357616131357441225147364276674133723737164741162677647361247642354651567365373764767727744642266753743172551257656547634247356354741241336444421314371635773727325433566432716231671163673265316153442315626643642141457766527546723244747623117325572562445511423647445337742614553632715451712217364737135236575161262256342664532325331754733542612237253353745361724232646112413625644271574433446163257761432725471221212744422437674614747332712135266463234367461251564511722334153122445274353362347142253416225431775626343612147153417747663546536421256546154762233127326563457311447323327716341553575564731763237172435447364552243612425534141251314161727375613214346231655763224633635565356511356272377176517164456236715776235254423432314412161715726536542271732315645217526731532516463722726267154615671563656237716412724652661442141122416323335266471756454413736141222254611431377415243734227235366525325452412453317613345353771764525464646724246246673421732231513453147632457273153436522646731476773776233144561735677274111141752261175512161353754163675713121236456231436675372612371113314541316332376265725216557667232775736762122151553475342342364564267167312627665345773331567335664774635216216752652215364316216676372724555562747261627462472363114426715463667617713141312632155616671357746647757355417763217112671141735731636763545454116116316523525211515473167534345155175751332164335166514461224143553457614122566476346725147544232417561314672442267171616664416561657611471634154274474264636615762664143127646366737556142743433733441753751617572551475662235531265262667641622171237716232725155675263161344554577572515627525275735344617356735115267151123754656423713741654466125724247434113765357765143511534336153727532137775675473663136413321624616713123712451751355435677163454466777271547744172635525623271537447466642556357552425111537724657637625113132116251172155156654547532353666771535735154651537224376445723632616411336724261123454432234527111662135737541663231613747512522622124627665653267361775756222513625427416114524553763651673144347212263113566255565143123537315227445155534351241644267544574346224122766535641645465533222655616212421373161166734427632327217133264423122241745516613246157372522165571114331712113437245164447566345347714226427762126644371366223761162513356256561445215344375614113275633561456514344161521421122552344634671653216735111252375553711463253442763565377414755533234213723466556744674547434121543373776246715521312775132555642163653616577261433732635123677136425675556514661254331152543566437116775547345454127145413761743665655533467346751676551757164442247614363217275474252251266534157151516241262623341656716662377425566522537723356455356146316341121763255351617454312227767725247446655512763647461623633625451515513274464151227312774266744225666315154563614645145665572334723654562141543147764654535657463767447765132556444233615574543742126134747224162615116767434742254166563514333415225235167575622222211562324675431244654743634267411567713512345472271674277716647126121471636416745126546636433536342423615457453255242726672346312444625573637266713316117435256434116677354473373744754137546421723623767322561165664366343214221613112234423631537257124435167152472626361654726735747413223341517173732716521425312253575732212223617721762144765123473316537161443354544162452364644266253352426765443252537657343173711235412411255614156155222432134251731213442233542456172445561177314434771325571757776143733152713347156271662166166113515713223661677511617737656556221732465153232173265171266753776773332736353574114633142656246256612716743333745331536123741766657162667322715451624645343342351356454326511465452246763431555714552224175335114237136371457257635161517444355611514554523651654572554637256136321766461147144513162544412415357457226323337111527765446627455422545317753655147137615567545376644415574162777613774643637367365136777476676561267565242211246162762633613473511677534655772671217372653233415615651346765246276346444167431213712146654462222256112531663175416514471246472721543135324735575566146154133435411634566153643512516435137373255442127725222563755617314455172546157143665145442233364733443737645652331156733156415212457164157744111337123437372223571626224312134356271434575716277351374126523147776143632323352321457172144362472476671224552174243262476146315546345557345556174324565571431226763542565434353726415175142354254537716463731522373112737264723365457236631714353654257116611147715141134136653251617731611636737544746462341666166163154351344321614554711777717726233712135457641227717121212114641341545212365431322433555755452615751512732614647113467265133213711261455646333254633541344576267325563241714432114462627276116151726444554227321271353313335243344311756511554763121352615322766327415465444142555623173645134776756616564172446237541736642252156141716536674611774261766224542556657542443225234644742664357436414372655371713377614173621773634475562421412743633444647131424254643115245453746473177714155574362572427275673434135746564444273364636655444611415123672436155424116774551252423126425562471353753664332461622235116776137274572267634263255372213212726656446556651461715557171412725623567544342372413371311563655546726772526167241671631171376152744654127727153234236437571417515472724137734341774741121252145514717412426252343646752167375745556527172627244442446655615423272155154456373146224272762535254472111646516113135546644231657316531125616527133777565321425457344446247111735425514336311155112457314325431164644367222236151426457111654663457117243376323377345256445145414525443774645316233161734642422764651142436356112312575263335525273326551417231571642462714576317552541773635625221366561247272156442433726522233371241375415533566143445436653214441517342124514322567433421753327511535647417153442415747155527477453241372427665235633652423463447164224467556262155454526275652661314262231161466125617447226415457165321527655511262337452214162712453635624374532756733254554165233425211651333533445754452151674256176164237613266156623141227555555515331332551566362765171167646536453476765245113211122242246122767341347154665316332655711723233277323242632463436515226437142363425733235463736511444216315654226623145775312372435156111517321223547331271327673522523514545777353217237363462643715477164754771232266226455551264133752541131365623436364751377774311564717137631273132556617776447536126233126256452737731631675747562614137144722315311475464352332414237243636167711751637454521153577423117716771117173232723242411554164276167111232446652366541716436146155776211456353511466456422346254653575644673153333177143317225722272156556756421642747211222714343552536536361555753663726237755344617663532677365565271133121566346247522772142522341344657147665572663753176241515642337343333723272661211246216764331365721333662152264371233233766726422654254571127551673227416311163352166445557625616327271123332677777144632634426251371513151337341245622714466424454646343367433551334635215247615411236565542227263646577324376236462342226431366654533656426233213537151715154141424172145671322515513725432145311131245145276456231532276513444547675412232111134126446226464151241712126437433145122644614331445555161734111424327613214746213767616712412465211171333747657267257261533172634654121424413543462427564175467744565547372655225466454175533531371165224413334764531337722465626745471232464254627764756336321315254271456214667775475447261223141561636556246255724452571733256324577566514331124671752256513455236376266521724325533152722376232253771563765527313611713353275414774162362234374566571225535316117426765222642231227232726561561444443264351665777634226214354521176514251441132135556317146621637421136312426731427451564356333414531453625512664632771445472743416654146721217573174157617214556454767773115174514121123254633461171267571222762365516143527275215325215426625764646562244164715441162645636345122171226646336273323611373336142441674567433454725417446172626254454734771446732673546447741761425232742715711112365343237435611434637231633133363216442415276342735141344566216421375657477444557355571166171764125622562526313247721137741146652344432515536764156362376314362626351653336245553413643625364546415663136152541272467751516254735613226224417537777116266275617472735641313465476416344265751121424111352512451222245773571673755477524124252324542442722113527366342654363645312656751273545473447625364647571657555715253634317372132537516115764655374776336266573756647657556155626216232262251557444532511525411351265415543721765541722174736763273755541252241135327541344253674113766773321535356334467116477117316215651133561425175216756661722544342445724266776526434334425673337475216526536411453716362241615666376361344225353755724142342727667537555317145554346754277513663746635566513361714623244335615213115665547165277652326641443254566454131231657755226115451715455212635151157155771711447447416147223741145163772163241134266162125411536434633244561613321341452224316253746463741131474521776231662516773643137344315776161113172353354657274322653353372374774341777365414147324662341511171645645774636352215675131211332416312712575334445245751711253425255567637562147563462472627352717665662531754744372542133151352331236374511376646723326535762126331372752273156671324376775336253423727351557446612233233665624377672736774752742265472662564123774217111515712241712211451173574234144116717333535666124235514131445257762134511266212524415111266625634756536566476762333244464267643257223112142132374632477215273437553173211425756353422443374631626327557732521566732377526223325341236222515553566616662614145761123745317164453244234415132542665351122133577235667222736323671437543155336463151264361232613756724222166135342562321453534131634367675522265444676644227634731467451322551426716713524621313472331363641773514315767441574233566635221332773443233117376612363146777234323671316636665567716234134267623312454246134773615647264612675137466113626427111575624426616421371173575357251441343775666431677721261736665123266557345112262263372516375117335323256761117446617257177612654476724724146172773137257332517257152444241772273526543666131765163341666755315556344632647645565112111627541316353736323217155667167371244376243547462623641546547517633365322777647132535522666651543213644234122746311264353347414635331654466573323533161426466163516714564343715452171133112612213214753326721665165211512224354566364626637716436457447751415275134426422514567324271366547467264647511172542465124244332471311174766166443712435252615244225226735753637222565213414221643576471217663725165526257612717467337547536121631322251243453521455422514427573746173326573155332175256727712276216431221537452663517323313453364231442635573163334477121476745471546722572112454235137311116756233725315517664417124144364272114417247722671352463111547357571232256151441516754466532551541655113731165257755524466655132221731233433361257642312317123445531663347765214171233453474132576675333332242563715263622426617576432666113472763621214547331312345634455125414777227674537761225712467271743443355335721137152763123153247674341175671714733321733347674655321521322523226461464711111476241424665747463421461262372343261334612526565727276325556172331453755227277711733665532333576655253715636536132332115332622571235527423327124457551325516157123776151572524263252215175774626236744125466225443774473364167613627432172613567167547266776667351335434736315325312332331132157313766552323246776122355477515636145722354511412325553332423176124525154646777243721365427147153446363757757113376535277116123561317626624725364237751173624363334437212675334167275475661417753425547721565274223754643615622374741153231762473117475666351617425522156344525725166764633133165651165623465176736625212624234712727623163663475366221474216621733126424774244712735274517461674315157657475167473113564644723455373367337247316637127573316654474734676632654636651641271256627414715617266652631725165313276341741441461266543746565425655673671734214443227624472235132712311475237663326271751374727211553624537536151711776726531562731332616652666661161714656734331353644443622621727727315372245264652326517173264276247121334144421764554655175625553564727334111276664342762644422111672646346366254712227415151352353637465424462154476446154213451733613565324442172147164616153367762347163547166364263645564723121345254531536574213677456151473621456133216766416717164763233415562466676616551562567377522263143373214264242212457417373521225466716345152474542623744235257146747613522751435636324647475511425575256355421324255732711563634574232251633255512376511666353624246573676214766227277276124427755534213225524456366417222754761433164576262637466427452651356433632371337512462335213561526452645716332274553117537116362346524336351412166561453565525651622467215455675645634373265663655234155733614372174535755654133775323215667437557323232616333632474725614546634666373475341624264566347134617476427166632615333113647644345426271176151354216617115263636572332332457614235116221747244213446673151132555466421425542172546337644741216665427663436557723756144647172767543642216263265473411216116476463157267215525375757267112752532136165116761532337357471666152314114735635217344313353342451511333736532244271633267434762154217614566713443636165242631156577567137742315661617434521635676664676613754654735717462475256145446441156643241152212351227125763641655643377375616755277312211675673566736176551565425367672761553122124743612677543411472677156361413117472572646117157346355375447167727317573415524561437256114722135165754426261747222157662475571217115647467575617116115455145377477265344223113115736515331161122157575227641353756737653771114221371724677625324336315515717342562755455556412736657431342415763162637475445651536513556111676315571551315112366346625535625567351335467311536364356743645414351423363223465445712727213765514665224447627554254547571276751437262736621676333171767771775142177363365345277511517516617514623643262126556627671762753635337624344447434426527617275562234235653437363134177161771551674326225461431743554463664751742575316265342345724562151546653134576524462536321771225363361514253136674756612113235655215465123426416224215316721726457227621273245266571342265257125147742263571337316355573327242145152411763135757715465727754172771352452764653554434145234653164221466664462641415731555332541273242232561765236631717534122132566612252267674666161755357574744544753271273562471676435514177554352662713373552643517357777766414674214545722316616645535635566266511356167232122776661345135753724153653615226437315463166673266714373575426362323251477361521531261441124142374612753173164137356534655363412214412613233757776742337765246657237522256543652447672511355334366451775553147475476767215742417356565253666647471376217125356225764611261754134154616621547371117462671617432741541434572441543621113214241455421665244322516772373623341316152231665437677511737223657721527753141715664645632764353354447445752243642347224533362536313351757273661234257742362545575143252173552616323231557135675512146356535626552374362365145717124153135637625746474633541231354772215772153566436122367424652252572313521116751664213165544772153424766716724223645353221511737371711522413245442266672663156727117271343761644763753251557551453513731447423232547764232327466147354317454617254162616151217115152413542142271627211226237352757222675123452534464515432466664515675621365432211651434762651342243735153626136225367776365512635347746447264176536636664535631565573431446766751646524261764133722355323231725212765515573327722157712235337162471251641274265313414637462472542667743274523464724527456126272362375714367625437271247141172422561262721723656616133141347573652717323314773664617215343223611721142474115575255277734266547653767331152622437271263611575573212145352544612731767342522412632156715252644737735763246517674112122637724411424224541432512234445721624464537153641713254471144745231571343362766756375646664467275364332762357355176772771447567226772111347364215725316342327342231352515445155766611446671645157325576343162667641625576672317443333261567156744225716565137215437155244242755371161741653574237346152517175644153241426175532556365656665452767414557357224312341127725652162134511556462732377513414113412525276453333637267137461112553635555323645342251274344555643336714745233176225344161637334666671264771317242776515662735433312431132163226427272761254717442716221341654625755164211723771162623147345637436344656147557777171425453346421256554463447447456531476632664622676245522556635511647544723424674532413772655436434477171443143626167467655417353624634761315777576555542323367743336635776576467345723154512617243247747626564611424642314675632146232134713575736332654355141354161465176446243715374732546564374544253127145335164667743732362646264516622356116666673376535632662443436675525474364613677573162226672552243123552265644734333455355533767471756375172674327676423215624554652672431717533422465615516355653154236436573754324726666626515722456321372677443155643647511372657412633722756373171564444463767127274616124754464432767347745147271662473271646313413551454252213262433152237251533771755564714344617115431457534744743632343171461463247476561265773257513124172342776147725245644372254567116454574511473317114545172642563522111562642214225772521176255647151231425645217771263473322115134356422126746147276546277512334753635237744752113776521562734533735642557354555154227217323166462267534462747655367421352752632157123662177256716751225414777125137426736764656564515457156167564645641536234773564232157155145443326363326717576122447556362246472432763675644566142727567113153236336635323163616172267171576732656551313612372223453472542546135672143444765421665134412765571272477753553234212736417676465624166165534766377614454545324216635543217675546546225763524235131525246331774752573472744451275346272126237725215566752531657315235441464367111767565151146211134772131676677616766664711742775465512561552553562352744137346176767357525172442616714427464414312447312122457657661223273553324562532145324222371412743321763432625242763326545727313555753227573227425161756547462757445176757473364213377143212527574274212253621241412437152323373724456775257375556632636162421724562552266337217712266276441653342416646672713624243172646735361531535425616211635345432445164357523364157711115732415652472147112451266261413276357255416613635112221257417731666513445347632453715142774167356247625351245523723536146566415322313141255131343635633521561234565771137734172474361652622154522433546632342512251235431646232564257144371553661715661145777167616722441627226337115233722142223725363556467234146761363677121524343617447573117115244544456531364546524674126131746522267753112667652232754671674457616715336515663727225616676335435336772643442745157557546313247773712171554741566443521461175716477717174561647514256234334235176261177555132124542465127454373123143112634237714342755134463115322634736662564311416212551261124237644533112533614535613143256662655331743226611264766472127725324157355671552511111751263176721547614465453623143242371622535712663342726412737345675671164565145411622664167224615375414172527261353643352374764434366777151271235623151371776451171671725145172764212342332161271277362277716225637253376625745175125446441462354272543545342151664547375443572223576253617114314161121665245467641656356271733432445523451126322371345355351114267733471414355576732662337432151255524776333224227675737774271311173573546771423413216315636761117451734734777447662612416326336464477262672646745227467322254713363412572177173515555617735426776437621231137322277651565337347174256373375441661645125667615624443262523466455542355244335731464634217545524371546473126622761565125763646475553432754646146326737646343174752226433136143615422427344754442765531154751342224366433741576716661777315342674233276472553354243433364231517144573444622366774356614341512437176343645264765422314151222464374332635445154516151565771146517342626572377152777167756774764622273763214323623722621521117762113572224565251553735227447331652222434724632716423245273345322545717423225317362716535762624111612763276141116321274173356671771271622437531572612212537531642752254337214353635177264346634743157573624262656466424162145552777767343673777657513231446214413312337631127215177323566422253613257142255367117241431472527112527634262711131756232313464575767753371572615113725355635316136134473454744545251616673425247762522777474142767752741214742751222431571115314413611143546744766232572533464225515613277773563527761153521134615577116726416761757176357473154645646662533322431531356425634427175163346761143236364226722563674423156746264516446261164252633215614417425117163612131465741471263534616521421722234372217447577763455436512525747511721756146744322775756241745125131327234121564763461424521333255217243646114422772143616652366112145421434775474511263761121223446121354764524315425124155367525546774473164615557262516445321215775455675465144262343317153363764543433272725535762322437657367743216536147713422654237316245142473357264365537726431452376724153522442167753145612667127112431123477516513717512672713725261413642634575117167467551153612144442735415236345314373411712327164351132744771443162344554116225663716213574751271545123523446225635546137444664637551734472334717655577454244531575662332565267356726774517173344133376665414543446355127256673227557456337114442316122736717243122276741742517647561655667774215345241365636524572171566566121745672641523516266466546434456654434731724464412352335211756644311714125654235563726646744631463553274154516366551455451154213462122621472432327455213337162441642144313547762746562135733116274411142537527624663175773323243614112274345247646146757273637221633164517235321346243374566523775414764121564611645366755736346771466311366761144713677373226236276227466465413773363423755762721634673533473614252524212121222475265642113663311472225436457731641535755234556626151624513675762145753475253245164146636126736234732372231646554172654666551375117241574657425234332711666727531655144422475211653145334237223372776442621443541165721554576136237215316554132351762231711624557417332236731177275531522675352332457572576625636411572773432775334324575376162734714313756165621354134663671274515146435454246414711317767777541365241717433573215245233244212441265376251622242176533246671136246715634126244444436654643657665465342655612267723711365762742427345544334562555146216774213544512465721577755573425335165443725153656147746626372745543376611336124647754547577773451122772155757554642235375366745146357664462536214347277147145563517676246532454223144261276764236335353235513225523152272161525557315532412733576124344554545414456221413615266277633312776636273127371561427241334665264747767473553532673631764353272575574646213566756453541377721111661454276656453421614145737251247225745733571144235742555573517642456262442676322225374263445542677526763262124337267616264751231323222557152525545636465252276331643711137311165551416245555511664276273143351146321345733674764575536752311425356574217676466257723611241222161747461461341355351542677132437444574544617136664741341344471654225711512415224711144372142126552363534776537232456116314625673732314715551614143663624276757352613413272352167455647467365234415656376443753712516555673525166565514362776261552336726362211167641477576536673736631561721137114245234217161465357441443655557315737462561727446522566154633764476545723126155736216234627226665653445756773476327142525567545333611316217646571525771556434366656617532525466557357535361137714775772145715662537673443546547357246464165563147227574252736763111651477165562525574213315115527624655753543716565376541362134726513312666367237751734772376711561223411456562461474274425235475631272237216456625246777534464256267423444422374231731113444163113165543214534261253374737456671317165316163571637276673647647762277631451621714735514711275275425511665741741545335645155716447222317215323516332736644455313345567521363544561765653227752375165141376652321536315537635165614422541536672764725417514313113656232226277416117572642372723411235566511551362452556617112354577356337375434661147137731377767725647771444134351264371622537441346337574121647766425471564537763736776527714714657431616263372774775766767572166222313333673213514473213363411444565223512723315146477636377543213135327623353761531633563537252555377472627316372466144437446634575435626741572137654316454347116663455452641755153473452115236126463142336434431612367572325337167513646522256447517666122655555536123775334262252232254341126572414725657276323631755421524414665366144175726423431373445225575233247657463325761227464276157673237326264637436541517231146737443476434117253126276333357263237577342164773324235272626645167147214312123344161727273257666614724465717335755766177316216217612352352316713471412344366277271447665116626271432775433464574557646357332261335426273541212661555523465715247713724411642132227763242153676611373745722335551646164412672663624211722266735723733574163352534156253471475276673254552171453372211561541371352676354675653473724164241417535635663453151531133532267227314176655324542515611364513546666276275727473663565515356542322251777472532737575257116662225342542522165371341377317265577245422673723554621752112732573617361442143527212426527733322614644717235471533666641645317571355667712563646134721216657726154652654242526442254376373275724412767513766633762511552173764545755125424311616761355454765542331143715345536437554333141535162266456224117144723556764156665174752115426443755323223541536247745355121764461234656133315133121666471577247473161114335251554653523573617751266367732551637225676165457545565533437774167122512531315262142525277167616522773156316145442633354363345126427745577423261343711347765416362456136771417455165222322774722351174175257224624546611117413141152663421342134572574524565172217576137175321177441133572231343332245246717726164367541763131374637345156251277636523623236377662717434363414461542135352312267372335763445723161474342413622663135635463175415544262442725314526412342661332217627164357222764635164462535145137247614627136512322677743557463427311174726667213312427775635377221447742631642123454564347177132167263556544165444112547657563112731316262612555155242327316627124264124425564472336561512514526236657312171447673652742334775621417557771146236525633255656542723617717134151133526155743516772362454476713115561476263545556674243574414726675746665253747631444735416271172666565314517674732534375225345425314235526526222376735447273156671223716661512142644422453157131153564342434731214767244652776213453221573167222621554233432252631343312722643135122656233447743167427713177573235522445713711331262363514565127763336731331574523153534223634124347354321577353767244756252655372441262242367676723521445744415661717235475564476741126712364164165211751427277174115716355753471132227373323424745546473262633156471431172435131625454113477115745212222566372453331653332343141753115374334473746224461734342547742512236677113226675771435672616267414373325536527326371172353273255524247724776632662172331662277661415521212214563662236324545534775451561612351656273734511264654532511712237436446642222352737523674275331464321125347675111263563213646116532654427477222332527132535447224422754724256412563617754621744525624335754625275665673275313655457113611413133713573234164472247357652722346636217623332771235253341443776563324417743354376223557623324264536277263617367173467462125653236156716477326436716155466153376215125756727764574572241246517442353152744744445715132256136773341655142656413174626154671611235213737224155366652557256456472424627542347177775254223757731363145131266317326144555762165315522336565417341264643451767612464636514346214432225463562543722416357115745421633372761146447711656657365136321562751175143153242131267724645134233453167366713137257261556452215444762122713436455373561437541316725136231513541371566722776141732556513573251212471473663517614161132511746277436617176556557276312554767777754644564453432351223461276277376662452227552727741412421252312161446651536731745216541676127336513361545442456316252442353327362627614541627447374531166511547622623411672557616372571543526512115447546735116155236372665646151726772675476314237777256743751763563163543474121131146153452551231446723463276211436344513177314351263531152614147674465674625444473757265465173774442322724652333731647426326736313445651437762264352333255161712256153236226345174346665473574133151474325353174527415255646353761722563422631312353172766525213226365731135255424744243235157472442345367776642455773426224265422547315315211345256511443263635213155616427665523314342771353115413113756745421151426615753454225446145752733737773565472737353726744543635227331627457552577712126663155511655146175164445556761647266157345162173711364732641744764511656454664265314121225311121463657525115533365771122654155134522564476262621321533732337154436775346165447523567262326324776667535453212364552612745667376266333717322552247527733424364313237531574151275341434767436266423476467765225151115626661471453112161766611326547431211461525747245334335357234376431566632445472226742417443264147216212457326551545617665374611733553132154741135716614444745241537252451244357152732377715542734651127235663617713354356144246734246262652253353712356353117614431267454613237621766734334336672111756551773756755741314137736137246225224623537325467173266772137141574255432555434343661561173711172416363552425762441637147542661723762256512227465451575552747153442676642774153722762546734151326626674713432723332417313711153744525337663174427772642344552756537372362562324414577144513711565625263452615455136242523214373765424162254621525532124445166476351766214516672456571244154725642741562333333461257315122624312516574141473743272232743236751223113421657365775122316742646752264646645673564376542445633641177665441242621362346415377565775173531764157325543513244313724523117276625647535716323765366647257261263641733524367566325323257367516714216451211217731664221151242142553531752712726214626735161315554247436536131753454341756217776313446231245432616234451363373233561324542376676633262427751273762234771142731724252534632663161373774211324517144417163443661732221743164545552223232577165267423617236613462674141411437145227571415415163244767132175122645724277641366714613527121742347732562446575516267652574671226131376544535375115273364153265771222216662322245755313727347256213543323674737425366751126745655242575155457432271267361354754577767664443416635763122147636326435314167532325134535151245771755416235271522345627535541553647321333762145362165131625163567423645345552312617434535345614756233771646776371433716643334732646355342153712146457434761473651617554162463571556421227267666757625423663252331173215235133727133576266424747756471225647243455625545416274212743165553517146737625375216727224433327671675467551327241732755312754143234614562713127133447312417714426721466671272116543674134146417413461351367611576265562317152233471637775167257116775327344461741223234143262112711654677356363576731536146261572776357325263434446523521357337627556517346721355347712141174167245735173674131774776213324153777574373672276476167721463767366446777466711651567413441137177733635774666654724774451554665667364164563351764464231326776555524222577145233613326657467246127454624647564264427276354312114252743342317126561622556121441167254627752153134227375326462671737312427546253775645377255545737172235322147446223764622517313313656312536573425125516767121353742572155744317221672611614152446637136732464476565757247555132725741535113453233137766133657151645732432716432755163676363312465261345556512717536116156576655575641335377577542564372353151621315551377241324564334552276352423271331346372152616274414433515235357415355574756575346772262175634774643512277767534425653254657361744325646646621363167515174132245576364257142172311362273525633514443767764215546575615271163545112521421251726675561321337174625167343367573453243474441442133742177337326665121451235212515122422446311277721167213744216131272537472612524723153447767663622266347522763464663236125115476724752633722451241564467112661564361463656134252427767712267346165143522425152415413524644611617324717263617251723415772672664737431347531656751322732212571114167214211366274437633153434444153114636666626351355562226574323633426315166134152647263152623126461422142744453757677114465611557611725133611276276117557431515417673325676136145157134111363243224455256271775674617231466673324673522342432323675631776676242732414747224455655332422323337543674371214663547412664215442516175436657445723654142663437711521475273237133432756335511612163332751315412655752526417472572124323555417574473564525664144357721377131721451147423311636454455616511723172176141462654433761643444636335555362441621453162167433137762631457544727276415633777373271475634727333342214616375426747216713374437663214515455321225247257427252132544334113635657375313464372616154527327673471437362547377551476147773163533576636112253147217215326645311672565511135351371333275772523614174645741576736262473372554335655342746216112732212542726353141675171623635147372556651516223323133336723436556143621112135367774436432675563467162264566237346713746145635264212521111144762773461274171611342635635752572662241362172164222474171677156456572732231451773343653144761625616171224463472647324642241433323124256716357553426272436511133445173774622611263773257237354621531232624114244545172215253545722144227642466752472713631115771115637624153752321512216336727241625626345742165357567412325431634426354747367134722764335762765536473771131145656264516317525371131541755272667576366227272121236313512332612571537361411624157621372535116276442411541744551553513176611532476647724131516664354565555531611514671423575473722572346223324414275437721461172463527542174656475231343422542117363341661255126643771343626137256514513641543537221265647442571353725321315757613742537415754222524257327727717315457537226657743562423424326447224261314171266444517261714561514334365774224757541457642322572136465265516215362531535151231534314132724755424777763661724261631245547135617327326715721536522746523437227362314176711754727233115551424442774324215223726642253132273551747413125657251155473676717474511542154542567675434735626567347425624311466646373715511551525657542172241236167467257336477166143352676612532477525651512621435762353343527766647525677752125635262416162757753737526444647542371632552657646351325171676552713175443651645574637446537375617131766353346226622666542513474427427246514445431531576766231772144762644222165251421217243242567256544277315223265227244672167225163512552465775437463254373314324675252422321764732451227467213714622165227437133461513461523114476616542574427767731217471713454356232473135134141272242443121546371642266762417427754322633711647234362352432415413745332532627654472631214456327534451634127224655152373132654546325311634655444262313727116562325255352641414133475661571441713521446625676522761651147314314666733726427361571776773725456234141443425344513572413715453376723257532376751431773213662212124533576746634766257471176327532214475461265663612662712754731251737577726475166366577774477526623672673554364224174175544637612113372757515237751467145631632733264562643567665624632434517724452747324773761644241373155257515721154553252236763713437365347142257634252575373715372427264361426313137311147433372633661411543413737157275351521613361533671252665564474142324324663137337566645513264611143615313617763731634516736527743223144446345742244616521514577231646323267765172664466637311234322454763762573152431315346452134461157566657255437572335274426766175143132767643532766615347255166572226315372654162754511636535425646512352531251456237322276632627611145222447524337472611515161161166727255131565524716277627635754557575412461144636447442324223712671432572625412247123466277512662144225417241476327656417551737153676541455625567645526675612726415362341123612667441322122215747576732745336525563635237562356245152455222173753246162141266124731267121331636243152465425427143363375331534452657226712645561126551213366633122135145222611723667712341244666163577412613716275276444567246755446477662362122633516255273211155736114242463657322257777322446132633461737535651776676731164217414162276241726726525432642362424133353271274216777654747275541353511237351662671157453374347376666712157267446545412143571631431243451476444331112426776753217343612752725462563734735742263317712176212152332534341735263615677711742256413567313426144636527412425543514164236467425271752114245732314722434214355766773215722626157452736547174774774324115371176145447225324733533156477327431256713744477263546265735161225252154351137757435463277715237656264733736133177735266376113217127622134131351344254123733243356342554261325451217511124447116143211647761447672542745322522326541634644772151245642315557123617774577261316534322643332434634624364223365242763151523656442234764416745573672317451756723237725357355254434574643741753466377226265672356746533121225576336441271762316212754467573442215242362471532453752527477145375112342612674242537613762165626336663155354111354455764363144711677325153563522271716446754455445417325674356517721654452221616546571377736627622177455771161635616646752643645745114624743136621516413677373177612465171476467442313613633243343673422653413361532114477624261541772357711357422643373366715761252327422467523127441116777475514157112271353675633743643613475274276536674253757344632124573344765642541367674722424537372735434321475535524117461253274477143566645422263575643661317751774243137771227611366665126215224541255156267251421227122734465732347766516744175237331536374111435545435321732555522665625337374261624467653141622122774447477215371146735341542154344727177127751765752427573712336747147153157366264536476717153161264273522657416252213124741457466217472551633657762315771136216727757345531116216456147362274775712156633754665532357375626236736236222516175652226157751574577523345416425324435443357537117252475157723554117645313467311326677315417666416474335763733175155725666746516566132732235646443146744543425274127413546434361716513377632353174136423366725127722441443762261615646176772624725163136526646646332343254346731647152125622417452617234672575752671274776257215576523322473361561672412231241731514246316656635126366611636723213621552547434247775676152165316711757224271515415314224533374264473426135127677432265747371117656117734637627773142646776111765617724577452453161354245145254156247527576153553521245753571215122215254151527171124713363424337547265613164764116621257622344222352143452242664656764765313146314527254362662356257665317714654236253723311546565643423415213635453765325574352231412164774257125423256726564617652267567315326277515521477157266374363326157766157634773672617447277631546446555631231521612666776714151735712576711173154462363363662175576165761267416254473742442643433342341457522336176513766252525172325464536673413474672621273712354114467457622261661252273673127642221356331451557766325514117114335462316465552641464144656666433271432362756233462717475375347567743363472334664266226667323473516736476541247756672571644114564467337213341357247526614235614253177231766723646612674426276625145267255751454235536117121773427346455363337164741561673173466412451211543553357535636246574456623735121477744711614431472737721325147211115616776542671715111344241173223775614551752163764211625746267671352746235463762513665372311312347454572257545726376245577137265143624741726731561425375377517234627334437324372545214145215242725757422465734372734447267114216724767326721562165542551663234225533666572657177553122121443755641237226374424411724337473611575732643613366636142675535137317123321573232235253342126732673714237427752266173331553456656246763636633153753416515152746663553257733451656322372716213272557275271446534476537727652272457477211464241622664677765315554523645773527711117661676427164457143633216211421511577343463247144546261722755136227344622136254531547752157763614532224531556231376274422411112665121515662514735775347512732112725775473745441337164246351562154564444141515552652475323312416176533247331225323454376731111132715233175226157536166162174326517342763424423565414313514245727654254426277457322162445162774773517163613751224323667376666475746156451647151422611652632671476414341445454425727224321571741511346313247623515427262242455447664516142224475257276433661544543215131453123651777652142236773235751115311675765753376532423756443564326426135623262235511115662331164626441344573736571512317643143546574637311724513665125112537773754357412574164552474176451463661415366546265654713534412641147172637415334212524716451654757761163145671312664275233321636726134541241472561317134557652454467235362423772742155524411665334341277452643156354237511776532377516465751365333766741747734163136714513643475164171376272621335247721214564414723253164465532445347462141471213442162537312551324453761132253611726213244522664331731134261553566616142514172546741264574762357137653135556733647756447245363477464111756652357355223256176546414225223212447474237545356222775526352774141211733712557463673345364653371422526211475434135371231617357312674516555432234674727712737161361742631475717471114224421331467573156337721172123635377543522471117734737146451634564431723263414511113731775772551135327657127672713316427217365617454331354233525166137742122713747414631265631356353361662754457537114333726754612237227534173256176632233141533156111764474112622515727434627125145245525236432613316353744157664472353777652732363121335144233514143342427622251574736644267647244417752643352441144131456443367747746142571645743366524471641746743667131225123462354715271475212567675127543213431232663123733322413126172412764771377521135451612224735277376167227272215152234567263112151771624743375112436175725437634123226632362762346245157613575311744547267415731666474556147762265652761642545633674342165155274772171364442334723352677576336126246475141315677345634514457352216746654124514652334226665633744752731332622311563375354737344742245262465736714454272776643331554414552455246623343544537174263723312556374266634211664565323516137215255615461712212577322673576431356737516621231427552741312364313216267262216347415512743261623254174113343111143733131557653271621223466167125417133272376525776722471311332173226646765656557453623754117427741644544322376444637234556521535622376131371336123745534376561443513426555171613126761412471536777442247151241652567742311364274233577474432631117225546715445262541512376551572523267252735545722273322271257431171717322117571621354674621775274475347541531632757451143352763425361345427424723157275522121474123161722173475124745617123262615234237546126727434115127447547463716653664567634256771737723153364363643421414133642145747446615444642115256762455571465533325262556166525324652441617354717525113713775431227454634573315261762374564446477446122612143762752211671334215351253444667355554676766122543371426653341476344144654556144474535434771131656463267536553224576443732144233112427514373714475441744251775376552632561763534277214732123764641143212473167476437234446634331435766341556435471524162765517654453517564341112274624722564663341612652476411647331744224722347447726466231425452645377661137113225154111343221315136136231153566473775223544575412234761267645416126532716577331564362422476337132725236115152231661233473427434546363173627154342456635367434177736246637755471647533472535145251115772176737234221511765413231342142263267274526777776536163321535765273123416375416263271643616574235451131672532462673166556421134612635725211446647266734676114575771572223476364373376677612261762732264524562322644624625733241345614365155376573266541255672146637266164535425734712746547753636646566241614326711215162166451437325132323665667611437547424661524336562261141133116264226715257513472622626132343372634625332424754245441254512232334717443575274627364522213426652342316677436122162533154527514642113773645641266342557333474161412673377265273137325361627337567751321337161375326165267322362461422656774125557566215157476745721377176512267337351176156153764124245125255311247451276215514236743445373124347426456367241653567145575111546677544414331527175272162673757557625357722714735656176266564642623552566166662441257777755553646315674473552137256376264131435377766347636231256715545352426356256223125731146147724462724663477221534436543451454232525274555517763326214541726351624554332712677243263557643517773351713275474532757335323773764311423133573347554516452641141562644157537173741532566652676156353672765664372445514472773777626326514364124362153523713373476237211731442272416767362613253115236243427646111716145337766276123147472476317417334161171631553261221461233264236736746731227445661737162311124137125632143121717773723263316711114516634347531643145564724736736321413251324511734614275762575547527346361143346726447356427274365312352475723725552611562613332764313452264456234536514175432647372631157635552135127437372476435611726672447763476441461747523313526526654653233771137324415647321362161547162372416441111776142262477664573232373151371572416635176764353767231645766146376162772562237537662645644452312232521777224211366464367125267522675765116546566545113226155736326725427374364237151563361174125727573523262626723162332452155756735321641123616316653117335733747661154276666521415627544457763643652472461333413314463127135513722261421455737367725437342214627745277446342217113666623254755763412557415626741326222557254163324512663356352414247336454172325117375534462624457422266776231142772666245531166741371377224332631227155637747644114144257512675721125521527525325742457337417322335216461342765661736751743175347771741715325713217276313514457557654755426231641561411174541627614413165121376365547747314515567321647461421267743741713363143165363332574523536233324653377526465721171664247263625324655641676571521626434454647463267653644524777771735473167736256343731414274174311757357263221755451622242752373511636555277215143235362557721472465434154274111344172451562632111644462772424551367536675272522626256457721475634717771522713264222157762133725327411574614323154463362675167633565655245717226555724274714166356143571362313361762412223532361376565724165314324766111563632163631533142773444744645714417725222365661171435242647542273165726254755164341156354432552772673621325235772271145572767277357743114721517731746627215344362367577262353347544345261614344563543463637265233666474565231711256616111137654132713563315476634415226233337154354533264735621362774731375272721413732546331456766562711541134116513766631717676555157243347157621321213323474363172725462567462615737271642367617722551626576151755675662722212113252444344252347147636141353473732267623242417523417424542212525744745473754625371342736341532326633512177571432476571436521644647227521417644713664737611716413435571551656246646253345447427164645732221755742776324772654653447143466464377467413123321727453577246716335415457162534535564154267261135666533543626472253567226235447136724461763724332522653567234351353632731333677142447711744572127422615742451456732724737321624675277114353411373516211243326625436436253424655146766113446341124657476142537245144745423441462247121135371334742446327553723137151165715152655723754642333557466615377224371214472176323771746647411422763274655174126426423421451534722453241767462334317643622614327565121111166423244231424714347425137352367423647363545337165727543671137262466535271124123525611372414424774756475571124416217437517353152447277161274644575531572647145421542551771366135622173257375746223561672721744636737264215721542312473516612364351217731424521143472664454724442663657722573517767346725526263352737642213654662737723514434771365262522171471764766251723432652372654154323422122146147413761231425734566131343541556617217342314221666672747434511363315231573335334315522564136364616443623257673345127466272721513357753461462135546674515717151427525165343447233113663365373546621537253621643253552277747334217363421725772337775225212345767626357563254426426241663226725617545623242525556474463715617412465361615276645675454756547511667416666515413312141645533674763743533515356671214472355544344541234614443442464125444121655332455146622156325147524137225752227745527136762477561275227735251244125722711161146157672515432456761674175115221147731222755334334323734545266374317442741513337672375652317351712166354444167767217665236374514623662325145143164774617537112674373445343156575125576663614165625261727336275127517576776416272627233267721534514563464435455546663312274361631421177443127665565225336174171344463421733132717523456266776233661155341553754235464322223245635143517776314727556222544171754662153142173565544576754363552132457775375554442723617347624147375364114771336647327364357663732567272762245732765133551431643122343533757653142644333576573115333516224271526115547116757467233525436747222133521642641521543224751766127344717714362333427741556646467523315225744211653567745723661743375121636446545125221624222416747551544411375177522614345517573557535377446256221423157637521267154773647664577652261364456465414775472351132137466525252121771372142217324647576441366511572641246477543136226764124765244342667437574126642651363661516353432415456171175263222521561516762232771671117626241424513165775211417677611774622163445143542453435515516775371477144541145474636411261163722762716463666326723773122231424744145613263246737237642275441134641343773216723156243472137353737173564774717235242571125163367226665276761723437711124622351212211131637131474316521114333565715121123237361121772213656326117532744456424436546657354316217274411747722465432337356126731151422526621176732276244745741756221373365475261512435132741146761122467321756241374227513531346542621642741774724456421114241215511674162271564252124235662714555634354563653461674427116416163557315765463733112554555435234611752642411723244423172734561353457645117312626372622726374332677675425347521552643735575342531527362136111467553267151574657142267514426455433141245236633651167231663442125532547464451136144172261635757522115255713127635444572755464445666415327632536273763352121666455437251354637567275524646125654426355512175244163645233144723365234775225733541146662215717257173474337723311415313445337344444724356352673664326772624561226621466324575173444444546234347342477241722422767545111743511436676723214565155722543541221314274267522267166761235621654115534254235353472371323276463164547365627456117347473123651377765614575653665623653165364525533324765662142633111521361133625257756435652155466541716732223741636613577715454432423336657345442322773775653217543115172236673135326725413644622343743356355551424216151444147263667235153631172514533576214253633555453646155347113354326643326614353731537473414133564461723673442734111162422136416145246537264311112337663175747653471353414154155327311627524413154222654371777542612665736511125431726355356432533122636616111564766514353116412714211261763152657642466621461772522532642261455453512474453653135471766214253221462743321776221761251712537252311415157147773112341441734642764245162777111322656624716514624432157457552624112175477351652416534672667753463674535562767122215665754152331721475164453376616316213612154357416136663133725665577172316155735731621234535323264114245244646532734747524455775425153776364251463371354712572455352661612241326646173474654232667146337665621414215655344766256364237315167241753552315714743773315256174117277555616527324613146654563375425363765756777351765564134554335156564271162121317176523172534343113642157372434543535744226654115462677747113577252656371257677557731735757236145432361527417575462464372225243677135371453332271341171332245426443374332575715152252274532464332561214464275112331562354513346435556226656557714164312673321363241114162746147656217311743712436546356453366455375446444654126114642617146173732576343141553564361442466315672241114432576165514662727562551716721564635563445133245334414514516565262751225637365117551232513562321516541444362273251475666245477561445511251461117257637664344322476347564653654762767755412754323341237114313172422317242467122447612613443764325647775244156334335425673312744632621356764621343716775436543236512557456231274515376243126442412771755662612462223246442226461771165745245414636244177233213312321136542414276224634761311632764217764446177721376116236223531342252737537542713614541353545763312674567644254445212341635534174355735723437124744271274151477235232635312315122643763572632775611115635177511164474654157347127237733544534743473161415553455412515272554251522247322216555326571311565323415532665175163725616731127653223775365775614276177774116114535746674314116545456456161712354252153613224211155623632624151516114375737442456341734337646637541371164242317254447174757653541671677314445562227346635733417476576521115763116243226722263142111774776665315132554547757273514723524474225741325772677731213714355126542447572473573666727221756562356614554124374764766627716665232712462113543352741524634433345557717131415732345312614447764652654657721525142724124652652346623222314577315576217776164311363525757427551241262362177542662243742724772736145474625771157315711124613126743673474163372433125346621232236436767315755311714657543576713655655525432263275653727216227425273665531756417215571432343415236525317315346467147222456127533425256317155715721744311222316562477332356767564771422455776754225142217226276665741376716724345264574525445235131353155156523241722374141775517645254663535161354513231427311274112671154572731513235211231357171271477161374445762522535674615744275275255623422573157757447343163614431334667757474461346262661162625662441347276756273731211337513412645712634621547743265337317657745636232525561675215657611677714561414665355434366753735225236576656356213667416473717543355156634563373171751512214261426323217665236536644734356765147672323212135712676311146145742642164326622534723654777625412666176641532776371677467552222512332217352653524513652621262334677122267355736527716311421764555561676644541513623453524623311757747643417472653322513366727715612617142212476122212651542544345635563775154156261466543717445321216417224642572731525116264717127777133527777273354277125637543543545326326345774424446242215463767511533376267643311124445215413564647271227323545766324246617356643773716637325114146574354373377677377274335747455434773544214214144153577414562226636324734454767516167142517133736651254622431412421344434541133722151533177141314441725511714426644117321335576234435126121564457152124267646653236132155234512627732557654643175122237654344526642111276654253156311476132614467712221717534143614755751142621733244456322147441255654762264476734372335443327434212712241671563134467243515452214516732112362616366373753522743324316436666767725556243525723365717543532441453237743336232577272256542717254461375137754124254412356667675455514427535246675345474363354131623356232757747564334173542245521755722226224273547347713231774711523744657376763621712346437131324627325356255647652116753677121414556373121776174315274673525776363213626737736477221772365165124554241753166135151351417326222511326424633635444462643616522672145677373667434224472753735225532232273452435146526134337163737253412767232157632655321437733662334432555753756244775242344643167542721527135143452377423116536473716167173717266526461772745625316125136526556437277316614417237143676442427363313353345175732146426374546565736454277621513617652612257137643611222323565167166546754777764245477632372127136773672372311734574561721133257747431552122115575263355471725622766155456551331256614365566462761515244232275314266635523462667652515222442373623517372541131135376221474524216471537123137342772615755446151137113225621555664156565231137333254665551537316725673336553475734323271354216127671143122351255626247465717521621745446564613475321357161753146232676666467736472731636144451475575554333245225411474412167226176645471615546327457237336361277155714116553415353375422251371427112612551233767317262421551614635725375327727752711242436527113575545217372261462417543524446127563413332662621773151333177771667231665254447656254327637521617643132647315212131653755621723717322616641362675163357252354555616177764123314712351476534222774774763415747341716246731552641452741412226263355271113151456513727167433452611447562116344136422341413742142277366566532235177334474617123444313253246451262334765366471146517146453322451674413241221235725123677143371472142377512735447343733656377541665225376513467315627324255221226751472452727762444475124647161755135413676674253712635211231335132713472363721223477231443415122333663223525646326232366727542115373625171674535462611523577771431122743743315254445517177266332455742245567335761552562627454722626132712634544532171272351152353271461765441225436565113231466125175274741263635513235551621443343172616136332223645423615761316637111125661212476351733531773755777212717222472446633227226415325336436552622166753464327362213757614661163371317546217156361765667357365636157123745163132322211136276761677513211737332553774717737635736116331443367545155666652546442253216252611575412167766344111336757675175266127336436362612756653544443372114147174643133422227673252611722536537234447113245135653744157543427443227147554377276562317255426464716732711542662441671737471447157153365541131276476611561636655753322766273324163655724217274613245453463136435132646356317771225173442745721524127646676676131631374512413576277115174765611715734526757437267312211721471562375757766123161232344445516675136744653656264476633277151641455343742326155526573133147244512247644777715667557754267314756212266677771451445433752174561312442432421571634417775215665717364547173262346611622543341153113656777316554535636114341456176365364316273557353354712161667627555126146324351776576614773766734455452313657751721722522231725473341413717175111173355561773544172242442553464415754623722377716233511655414156663255641171171734414413345154643277754165275271641422746445731367476114524344541712277154571737166616371725512573124732322515415465434537271562764457631273153523456222152347546214311537135511767773227454531463223267314256454355576645222467713443473127665423164151513662153327677213211763462111272561676322211333554663233444563732732774236352737426742375764251465555471247453425222463351677145545476413551733646724341442447223663444113325673415242316553476175451153575375736543615662243162527746436266753641242631144364546554317246235422445632756576263231573637552415572464663632561715276562447672462541347534173314233772246241511665733125426161573114442365436535331632516524675316743212665632464551143714415335333554152535615464677172652416351627334521322172561572777242176351314166137451536717116253364111342752666733727712633551216531765372671474116171273552613665666335615766471371431726311677476343223123762733117221243422473426742343643257472333567722463645543616475113162226564567127323277462322123432763533212135276415555727233576775462713236146116774477413763663542633266172674674434374574274547734454374664353126456747566244246614343622261564421336315242557547364567177257733267117544712677727515624553645164766152544753755635437225573411111625173511775572344367247527742723532113213174331171716177163256533745366766432541742541657315361675524434367453541736235176745744616443162746434431365174161576266224534731663446675315114315134647333625125562543373225646342747712215126675153323735631576673774224737721645171464166336136436251754766743642622441465271254762167556452747343516645475522232331476245553416167664425217532775146154631112612617453274257466372271555675257352437757416455414635174513422561644633613552223615516171533612175452653331562163745654727327631377674231277516173671313344431477457162223373214574545213745724173114245466717567344174472174673224537416321317344154524745434767452424457411354153635331775565432774442414551177563225416276742252727367635756744355237767765212574433327226722467213372317121262725267313126365315756116212441633473434757776441336156111344421162434231132676722647561635311527653466612763675251141323753234123563553663354762216331647362174553732437755444766531725644764533135377476143533315617575114656263123153777264635416565376674614227535136265541321261621527371733677523441226251471673654615117517572746261717756735423125547621771215124325233147673226112765164215726462214611617243743242657472114153414766256274471726214254464273533241756777547542453111657367644167475475343337616316475334422731671531266533523444374147512776775161211164355723363171161453254772224234573466734434452611347737241765556724617344723315431334352562346147632777412743477533262437575522616117167464724717436672743524716716624754456166143632247532142132735542111711734211444417534747244711331543535357324166251546672264436573257614646356164347131361133714322223617655664221335364466771334666161155655466522252722732166644563672577336111437632125344122671361547573413567453766432744245315462332713363437637563711535266625162353621255257247532774434326146373666725543676753244727453377137527432225516513141642621341264245322433315166513661263311437174625262514323113572621252225234635645716532753443735753174721413367771655253411713511131532613243152346254636621211214261441175323541577352255365416245223422265653722757274724575521353726354751253541562365646321656242776473631375553712577442537355555535721251627331617655231177754426232447442425416573417636523275222466434675455426776751534254776135117566344226726624176524114737452432466111112775425476171574652714163174176415147777511651445557376676425255173163153152215774743632465314214534742357472312616263542264514357664113252413614623166426767536624336565125376772322353153236211655523235276175437575213536561665331674424344172261712465345323167351732465216335435565432164514541545624545411343233775225766334517413177541575211621442251125416557157133224156337314631754434471427344765413236177662151533363536563162633257276174413456715461236546742367316335177345256725741735622762113135745673431424137343126334646253157747323466161225631574262217535422554133642774667641377611554325573316573714462567536517676231111532571773531611573555454316326573743252426627716465132562534414622346522425526455272361535317172226171343124663523752146676515737741716211721362767265755546341446436271463431521546445132166332115145375637124111156662171635145761621315536247344243544646364153256271663676523251624212141546273715113562354713765515723771621333743313442243442133735236337454651372647153431635147774647775464525112737463646464563166166636421122315363651627267617426511342555676435733115233214256721275543334277773324147577316123352735472132223565212161213136363577356551614353773323544747776366313172373631342764332745136776621341561264437647472577313413274232422541174271247427361641161615766233353614122765744227246341747764333723435635442155172746244242615177354337263412133337254671161661745372312753366532441121241441554474646154573366643767174152126666353161642371365653674411524473321641744375535224673443624365721216233752546457751436731557361472314513166135734271773152727267412273473476212732742441552671633752333713545731245513551741235444511771465261325165444552664421112123362111342262126514673436656752327532667276411362761225172171242326414525376526614146547757775326271653523565467773741657666421341346731217146755453541431374432666551613621516365742176246523672461643344436465253464377251542721125443176154773243573631716217321265416415224447721375516326352412263225646313315545226162121371416122526447712456271721323352322336617555555624645157171346472146726175563356132631553616667263766767555772616273451643631541141136775415716737464661144121434441442124634527476156252675732516543744321162132747675155741222775471134143446654633452256371511351574212665653256615733773154211371122272751315316122411727331577673223322363225736367553527766157373735174415121157735427316325365551461743554663676541463425144531761175453253453326577141566133442562327536213556436332527444712267313477431175752626272246747356421671734744541134755171716743615775161465152365752562673477761652471631556715523673262441556545114111255246131311746114371365167417635453355427624456176334133114117756223175252736546462275411732121652272737333117667177752145367345666171134435425534631756524661441361474147722565352567331136374532513231232312246425462674635311671214247561626567435525221743142373727777261751614566327535742272515475324511513272135211715236416146611353544765371232333156726624516643111626457572735433324327762566211373241241545217653375415753613744472635113543622361732521111516157442143521174322434517631772621665172544554117353135217211513661572656435256173526337262252652721227163571422773726756274562664277115466447556241146765445533343354124761157773211717653346773431153653752761412414413156747413421176515674735277657165173134416526467241544465352462171373744616665673766545373632751711415277766567177144613277365576631357457246255163654314443222777744173137765564263623257662163171512724623513123574732717227536677722524264516757563675627673655567141561333231371667361457146725641126243417636616755734157743447542567737722714611425123137574461536532534726326572414636677345412474641354116176337722712146577737524553373212156247451664445541523311542264571326254443137675657427515723373545464231443522231272352755425171557164347613146366623232764573661717345426143773754276316767355466433115222432621451321327246626672222635217472446577622646632531642245167727374254347543536611176312232134754313146724377267476232544766465136343345765615545571646336115712656212771672367246334351272763152773174353521544511245364562271471627346621176666673342132451511672636622622411462737343417562742245127212463643156774355333531755577521761455762673321155531637416361471436245434766714657654515544513567573241756761457534236772454144125552547546523576222733361174427164451435321671523735355475136756325461322471464766625364271776747517541722257657632361777712525676544755273262244413615715177676654351171421756431121523433422371745156332437212424516751413734731647562726756211761667137544131334214515314345444643547613437463225567432176633336774675241321552442475515577132724523351314471644115766446453764337766736476674214174742776216642632545525575135535241432342247543617571242744531355511147464331633772215323715133525122761323425726131762262176461174263336671572516515645255215335754411211477762634531256761433322764726267365557222451247323746146641567417174137464572633321245722771133753475535225327742265671211324723472246771432447767657777141544174411221254531536614515611274514255367425111274165646347457723457377453263313622476322371314541512657277547221472435754725473464752173756771232464363775535713412611226716242411231537272713344646651673636767224277321411165643542541223123145675527572777675151346457162517277161731242222627764532632214244252456673124417425112376527354663231722433265327732372164112561114216362711633646267415235415526251126331423111121752574246722546672634676177372471541374267454433535315135166435522753513447114471331155653626417725365543654424446654353535577671531474773445772667316672362442525556356623323522654533712246522317145137353645232526121346322452566213341546453534656613555613152113357534572166543444711673111433771754334632477643455536151323714222564347611514252736754175517222477134115166723137124435226247471414124634525241152517241255235266572366747654653143771217632461351517314463252475116127773252317461422151467531441262173511753621763211441424461576126477576761267527655137416656561531627437557532637434415473362535526672757623117152633374632176761661175161473321774344727331121316426335316661751514217133245266342266127725122373124137354275731357163775671131532146264725421555565154654757144441271763435413371127515223237715235334671453613735176637264355171634423662264567317363422167567564125615234672643672245454423511134724537131415775322277533273277772454456521421343453536166527411655224275336464143527435316357435367721654634251522455215144226755747226621246311677417335647534342355147374226215157212176742516133747617423254171731232146326232647631672121437642176212144171355331317632715761312133456267234777142735325125356463721731664363377673445247775645141354454113553434777524624512327365122532177554263156647427653511423577117776414731736661756436572252153164645452644433531376365572621327123567754526212453211761253426427117275651661236557655714246221231252141147363342326231665617633761375322361715251275264145121346467331567552416426254651354522367323471467627673427214433224354315666145747121373313167372137552457355252154224456165234347436515632357566221667516231766722772456624664616716656511617612712341142632214274773644745627237555672164316725526713511414436525276514246731613414166236562443374155661566656231747663542726446164552732526442556446113226264162551754225272441425337652512131477514227147415561324312573676146736542546517377422144333734547443337475357416351655222515162226562641417351326475316477276432327475755622644574235775726662733173667441746516142742644544746266654722226161775212477243557576363776427336537341672535113153113322364327263336411663574112533775324146275421462451127532775215156463412263432517613776377132547427662217643134126426365461645727726137125521344226754533711523514421544237353766663255667732323156344666623323213437335432554273126574466132442726761623212641262143512435761363162365617273322525117362251377626256747756212563275343452513614632435323355423753677146336617464547462137673317667715542533673256235451447662657752637713473631565332576475673771274115545741226752122772571772211533417325346245461651737147372466627751426442217216473427457725521426677535756117747312361252144227216362177677515536176134437261273142241332424171121633377335546152275431762473425471731763547555615561651222653433526645312461151746244266354627263266711361317473417246174466526234246365415365727633633313375111644673445263665767344775336737235615241651256655712473345252315776432427545533324575732651171571343615761545261742554133253333577261161356175113357164411753334453562721527341676616241455122466155347332476566451216245146226224742715246225162124157555517532237337255176526141445414375241454527446256127733761633252116255637764522325437137114342653467364264745211754167272546724374333752456117375624734211114534177576744655616417273625726473114164767465357137247632444374526136634614433446363357524345736642435217763237167435527154756635217222121444553636471326713717431545766234712274235266271461544621336242733163677337346326513115347175461711461335253716756471124244774114243376734445233163115632333744472722634367114334754537172367136332525355367732446112122461473427571426366251434346652727766221111364322137263721676117177732254413735251261674755575516421146416113631751147546415277151265125146422631746722765614522557464277153435532445734526371566645265262546332576311654574754647466326573436616437635316774472541372353526416463566426337117254324642134616546135767713714141563251553243121733532423124447516144113536751155437673216743734641363637555753437436751746341746214577554253627563677675432645457147225743244324574674331434463377321216444165636215742124552223254566542141644676473616273615133623466664767457327671447122725321666566254333365345431532635567667545363716445213655121424373372245774315353164462274256777346553454125642367627146464474347326655261654273365272251511244376155614613533753573621172226646665566256523231472774775326114114662517463675146345756472324725424666645246743527415455611313255644437155153434314252144174413277544661367523373621245645437746134423652535166551615463335242255516115472371166341116433256565256271747261216243365237655635364314311431463317646462357343272623254417456727113652727143552645364626775517517166277114452756674217177557637637567412267466356177126275151246234265414544312322224234153276723541323767337662715442747477463637671261234313614461664534563747136366412154345714174556325733756775557155422333632227263757254244132147523145441763112517445262776274256462346445147232365115314224652632166733651513733544374637335612227134512572265551177674746531653776456637265632753143647524623224771774613576174322675551252674274274765235146671762646674164474125625442266245355533523222671424276644772626454246517133232464115613422575454711751765217557262662223574243753741251712757676275316777534722336564665172273113535544516273446325774523733433727614254275642413324776413747353433761621375556272511543731176333732715145732743123376523722665162474111514177423663655351637546777317461172244433131565751626625657537736253637334322121223126714767673612315333755317423144745535434136256122321751134347135711555357115117341457452226242743721446467262125363242364212476117155123242365124451627541622622557452777225641426611655746233427456756612616747631726423455627766563463663571654667623267162262752411717456435333216546555165262523513552536352674651536344773346527215572426717474641574313647433454343474416356243214745233375554217461231176714534121754315773424473515734646311644732563272634214656452156771164577656115471231517455662662662351237251621734124162662247427556711726112276521331626134275354264356277511373546522535155714322161127162232516577654471363635144145255371561431536115335627534342257627716243226141613414452225334327327334657574575145614745662434465422211162551276166673573646376241452672751271721677241525456472451631236345351537563656335365632635751716653637516264736565341644452653532124215726531521345433171355742245775571363534652534744272776223622473531115672166453273573426722262645165556154643354634366161427623323277115612237623242161223275646267177762214367514124145466263272112212333152133646254733751377512234377616123577425732327457541755424374227577442255416455431437172643366435573621563521474547661754312245114417567742272566646643474511413144233136346534521325664355316534346553527413256372167524455242675654126176524555664756324241331226542452443732521215151514747763657125363656141251267247645733237243771377124133351476452246573627231457462115353513552117756252375342372514452723371612517526756512143223661263533614164347145616113346744764437121547364311273114452266764427542517546377417622477635445721764356243164746132211364231642747476312631344247377427132126323363225321454161131172775421242512244666145454667616317152277561675475311756545446461476727676176546377575451235274255247247141734675645313335256613326353371464174651473746674465621656115345764453523727617345247235155773674241413716177145753666313274653311462162713736525124765315614335314514125412473125515356231674536116621562632234125563577577343165157126471725441336677667734333157152733135712744734124126553157176374516371514211614416263672713752323364455276361622551251442636272642377227157252327445611115746232562425432447573547241452355111357521263537627175231365524224352424554231212133745165736462137363141575626131335144637611223253661747522335362275672753165513772216251474244473152451757532132442377451176535143511526512124263512567677552277551624414626455627176166744375242435776471336127141667674223647213724553626532646735725357745766367645241223427314116755641551577564412424165127441435133312552541312465164676553625541173441536567145545246124417273313741215714117764422433174213554141363273573563345417737541717534673213563232577431333416611664363714363517167733777347131227645246776467466463763727743774763616417455424473113326412612577752533511244125426667631721361257434714152664437435317313542676733335143332714646471641125224217643541173374161741725137751412465143153514212317521244353413663516224465116441314541365547227677512262712757217575524417343324366626727234145225716447514245675457462374622654354232213647437216245576371555213737252545622652667351211356261674522717561655235372322451471457752343322426352771333672131117224452775137765275441643746257372757346173273723566752266124154362337346666262457346656471276646171725714634161135114753274261711114675277777713434232542362352563155614775177452176353672141417134514314723152361125526642174776561122534232351474256142363654623645727343772743511426754352135321734172561667147221127464761423636356424674721644146775575647233167643343735132536447111674631337424751343165332375317477172236211675623442166426257211231555365364277635253115744755271356726456215377724436232731451626411467211731733576422525774165147216346554647221153445335655562523441435712134141376123737426771456411212414112353176471454364521362423765577625246117354714455514756456125217734655513214543423232176677422426224176437125367713112713155427243752515437275267417622126652715324666431452361232333656445557471167134211431465737315262146127236233563726175662642461675676633567735341252151235414613464451136732676124342455237627366734741645244157673142675551517413226214137545535132212171152133545476712166551354715134253455733574475715573642334256675133746227666561337624261675664362765611517666613715534614472342531433514513465715561242632256423557232523273663452517612226262657663154373563242412412645664752132446177657113255517114664361575742753733753217172712472142323716315611177537541751322536767372243734255222316324556722531557114417236752273744523414561755757431455452573116677131617625514566625354544156735641132124715363347116562267764457674116477325663574453673662241341742622645423174631231421745212377671755636347624146122226146416366414277124227523545661515346376157567512324277563453434272121746636717242553542271553273316513515316423611364415653113545426761531474766224776455775462124724276247746551357126536474525311727755753637776712774645236257363461167453462364563357713632651137346214453711471125126313561614647651436741217322135155345446743122165773224146462161725452365677126616241665523132124762131617732723641736611115337127342444536742435441423444311223157343717615241725257533153115423556251352167263711654263613464133151375425544135233563245523336555676457225637554132467133456433124672734436514331561673243176612212515161243765254253671121172334575313441631546153533556666212573325771173157656333721517431727263763264671777533135276153344254662222573762756351771715352117467721162361666414524626555755135726245464453414277771547435151553361137615157676565753727524612342354446165245124622324266667714352617635543266761213631521433157452446234442251362666137274421666733655233562512117724154436614421115737416561713775313146636377412215356236436647577715672531672223752575352355226336126272472714411573347464237163175636177211742121545424241166467353263134321432671453261226154172332644366343623661221342147651224312747614167467611644152241363114221313722767752746354671736351763234425725133327266656753717117542115717532154113611676177721674215627513131632232323333345435167651643145242466621254412346154741235453366635427655325563362765112567136713466453116754313421323613625617167746446245577731274664145747166152717634474571731311725532537455647632412153355316412275442427273277431537254125677226773145266576542626543356757162762416245726573656433251265175475546552454243533415134244764524217256433246532714616334732524335464246664657747441374616161524354711776353362235366167777162621423512357115241111617727636231363535773714637141132134227753273655456757444557573726532547767355123122267644634445412656665623445761216174671444276466444137475215225246746112532577345741721652365232125737312553626425527624154566112714636235417543224127624314315577374216167135367111163634464345274626647543312332452745474231757552537475745262536733673326425562155716412342525521712343314764363763725263535277417544165674334642245163436266127113523474246533767676243152155775457127435412627776724342547457115217253135236137123557745174725547675277723735641327433133446233322142244537434457412735413246561776222765621476437642474737725725547147634713647733214626517322216314211771376261613374246311632553214474434463564124632572556743375735412141427121573664241736575362143346411324475163426623573322535763734176537345627611361633727617324723777644526427657134446457372675366342715661756753437364325424343177412211316225567526242623452762734264435456134126133235673262565124567325241762666321127537616421277132667765264116131374265237347253553441266771633752571324451377765232462363365653245376735276275721257515745632265626622332252764172152747433751634535752211477727125423375564756433332652733725747513743532231214441527132425222374677253576517354346261434265426725143323374323656575641261133645452124444115314354251317424721465661436736677436145216251652131637763576376442456277744133336421511171742776145765761574241713165274371661575213123172615616226655476574654516117431612514535433265134632372223367352632215141476173567727251616655131362177256257647553417672667473443652677615763751332313573533277474775757657354476547137314633513313221116143574461565436722413155366577314763432612365261541145615565516225561161337256232357231116571523273323545463376543566671657731361623167735266254633533612515753246565551417345131414765147755473251647771145647727417324323153372575416612377372442416247446117257137612132272347627444522342361463544661111336431465131274342572147645165122755124737751425764112716615427726542235343314114526736727473514462626442714524217113115266447227571355547221642553174714567672553711576511675163413115414564743344324265255765326737417165553217642352116715451445325333221432526764176167745112555377712166452257777627714516773422534143677125126227111673462745231634235347152774615174354642465562374132147336627541275763142631767573717733734112122617235427636626216123426237432534667342425317132153525341415661261214457221134352624551632311536752337452464222315773255527773762134172341152324733462334224622745455612121454176435671324677274742543154114423477276422731142447534141653235565426351464671736112535624256726661435674263277272366141665477257432222731471312637554634413541575727314453524621666353734372551354275534216577667536131562647165525412222763163136651231335455246127332642151565352476532371124726762247564532251531415534547443251576454746355531562355143277436576334131166633723267265575651541414111117714317545655345233376436251363363124111576344266437474421451621324645134767517352322154232324457753566266336375646155577734571416754714541472276173762176445615414325762142361211517126754655437251661776234355536541547224777715773214731475352246323335736736647351654124652175741375212724771637735531226347234374116221711114717654777643566226741552643743454453243127417443446533737444173657175511451535773556142125626214324775753235136313321433335256512212721333256777532576731557547661764116443354427671615173147226435747714452123223314724421544317275267634147462123535211355626745415462175154357644464411213111651421531446275162527272323634133275261425355274557466722226721331157323767516254132125256261215424447655736555371612347365517362637534427317146121476535377335622514267211335236375142671644527667415541513327267174365542113214266134224556515434163637752474723647261647627363612365372441244431566654635664255474234511535311366354637535244724546211375135363232614661515127665515655352271523615414575377456141645573714176571242621462321235331277472211751115377345611644576516666117216327757725515671241123722522544475574576251147364477661153347617677247265312231777657175431434413547466217542542537541373547132475455416453736223377341726731171747411466152174325361363355466573644613511121553213451716656435133614275316565125454464442327132534153625564375754423271523446723321713563213121663123265442433764175354715217375627246723166466277746436261212224231123442471422527362312544155561574747211352524463734211627366546143774232415163567312463332377114424137312737417441521265414325771475436532613657143351722554373334177764254653677225237576235672212211647224515636452432455245366517663525316712641214442275135116776361124114411432117346243145755724245557311364615552676274672575111777127167542436535555246537242242145253341415272147775547664721225654322464323436435123171513626525346516141475457262573754257242666641554615352277561265724647136724161643312632621137722326232234653731452656147344347561424551335641776174111735571441612461433317417437731145714162343613665237267332334551352677134416775611541574741527646136242713512414551632346317214237745137322652337523746571632444341164136213355337625515612756523632344155323256332774675772745337553272133467423534214114411144712343466125257642353775435431143461746661477563722322155731245425533421662637332673712675713666351532627114136236636727622111636722214334631664451452544165157152274736522671355433621326744143373776647147275132413554542267417717575513642356631116653771643645624575152327272423377711364661363743642274135317646737176656115322717221733574457354354353253715126131134415252211757514721322143756163644362524611671263326532137147524242533125116235561343666663654213555157667523363436626616364124361277276351612244246737656251527737766724115331756551637566647644553445156712271765242221715162647324742633164152777331333242446462155352577316426342516123466324533361652672555521772515143775362731217376654336536111525116656141371331217743635547611523521346376431543657132727117263535752522364552737744355367415162557143211756261366634562434333512635155144173232116565131564755331135744354776311271615765462315421326764464535755145543223554327442361721413377175663324572324372621734114434535334666357623452645741541114651424124641743271374267355455244316117415613223463114241615542364275357247573243444161163746375635473437577213471176216474435122671253234356525636756637263116276333766414476262157133162563323155554535365223447454764252675223111465334747313462261525176612212462114532664142452524433215337677712464664477634127452774636617521667366736623425412723475367452542672415477153623225465325362636727262742766352665543216136231223353551767725314762412226131274633311426521253651221352267426222552635676135324335574732715626173576266162714351127433733526536175723733123552664747353734511421123626132421616323341745515641662243157322313354712275147623713247656517752426117336244137522145224716123456277323447763746243664376217545375221655764367115413243153737666322527317747677441154373715174126311432345235371477246441257753674637174737566747654622657655246643542346226213271774262167614467655271134755315574233552432277376125432737467351764432575736157612546632612736236562152746645635211775266472415274471766664351262362121662232662432642621266216455651756263561745241424652413457246254264554752565641226576234367215725574211451144277166713541663455346667736754515424334771156425243242335243613556121517735671436162315742433171632674617577644452673517654255357641331321475752233513612327154142315447527216543134414646554362423261233275743255617474252722264673737447254512373333762363512213575553471141372625233352624755336713362477636731544212565172736537175355342244322733213724336173112661414621454757271614247151551137111662741436457657363211276572522512115157136123253615744623175455577425441243661142545237541477266231664122311526673425513643662475675417651723514266731334724275755526513515266614511554355175574356137521441222774763511211771526352443677722223721373414424676425671357453614126255527272652525315353417617312347221247426711643417741741113336342566542432537771776162212656513761556723366375474414636223165473652453713654323164557472672541245314775373635233611557151235342213674433636452144132231253111231521265567326623446563621222256331551236472375642622113336463331517644413734537112224447426161143736311124576577122467442442657164135146526516521171135313667617214631624574566765273143343424346141233522317217137335771334677414621314646676773136535662252333116347124624634331314113337663115131144646231774725437162142462175322776722723534477376614753173644234226432614453423374662313716433146722124452124564263425116153351252465134457725445126731655114331577374732644571223217374225647127251665742533654376246757444667674652451523112532465353341726675463731723434521167625261253143613276317654445545441356575122473633665653336214761117761462633236615373535457256367366336743256246716363241256725155771615234151152711234443345163554755571215324525541316744552131635316427262533411431446723247224154717745241672666122634267372627432336152244522334537265216412445617625251524767543561313263437231214123316725762242473643315337561214535436126353633121542216264425161733746515167523661112641413123216673664473666154265541622345667546746425174621351126327643322217274756666362426427261355671132162661457415567432461626427622131311367427276242522673444327733764234166326244525614351114117516342662514521113675442453174256212477652325646227754133552361111452447713466322221543722351462636174275545466621174316644714211121541214764665666436423125436541524646445224124657511232675553544442225131642231122235426374561326547464541773175321164633322555433471156255556322431734475753516766173112677522766761542336777676416127217371661477653776675656531543464533722761657257157755631615265737322431626755673667453665414221344537713521417177747446277721756421523714164264261145176762176153125325734453113336245745364162373136742411722255211124643261522234147211324453363374661226472516223355527274624153633765635277132467242261543261645255757567573652776125373722126744442427471166476377247543754741415567621146776647764641346633715563666674674661657245471365766555754744533223377335175124714662577114467173433477277623435135375316755766343772733725452274725556455155121312514726676135627365133752453415557362172775467537232641176547237257466767425571435731141124251175744743626366542335452654271411125512275743621154632111542772714676225613374423115326462563164554475261531362672533373662163551311231213343423166537225545732253377431164347657624635523215524165741147775663756443214546222627433547537336635472623467323414551236211355231771274544575147614631452616331542651335715532614311556757524771356513425167342173161656647456415366627337464565774261765124174532425567527217127547756561261644226775141712124272261146265253674565373413735354664661617525725574345676271146535224314457263742577367217414377132574331451655235174216241617714273625764752675514346164154255574766765473563445272211546254744553561421617254714235371137645323662724224243745467221245321163553666317145333161124231672111357645677573435655166513513124351255135725352157767551142555112337154756414733722617714272612256374762542336547721733453554113732542716233126222236564152673117253444371673634751727435615135764342761752434242235311762676514131337435712426744564672253743446572566466541546126476625221476467745715672147742623514236217266264154545761756147411144166125733531315713212735777113533444341533754455166262162214676353671153341726536464774334615642342446113215171647457172664367515751653374114211266376556224314712211537251673711631527342163453715757174264466553524567767245635344345164633427613363351275772637474223517742132577745156666263233755435443556736122731637657114511245172467373274511674753773355511322671647271741131427737364155177471464413477624766662527324245274244624275366655544735171616445263655415233231126522442534477336534376222456671553731313754777772431254422211476171133437137126263427773335474474577142155251311652762224174533124131435255315474663134633377721333577236167636325621224654645712352315213116131633765353141631267321233544451443241616312376424456562747514661375476326646421266745252142621641527461346322441256763216572667752617255117243371367621661241256441466176234573623614714131255223371121135515171552254776125647166217424175725173421712714471511432514234136535161371472153244317471224626563413443413722255527676717471461723456127323542433322233274442655222125256644117342564214661156561113531525236163453165554611651773255447253172547157625225474573722465523134311325217733563143535615567273544667427412172316673574443373751337212264565737737226654324612645166215673477363314371134424712411431131571547271621143425226377343547647633744727244516337261134512575577274717734425351371423174354145264655651323751121163573232745463752647172377422641221544732577175373313532615771213367664134154125345532113623735364464166515226753536157332746575143543414336234411426461764544362656231653577342414253342136655744766764443476641255623125113721311116444114177135727323243636757771744456766712613556773465464374371136135637221566476654533254524646443345361447371277752367133437415732671744775224223362565132112615115171571323144313552475526717527247327442755527174355226737173236367245542335234772624531641275124141626261715526677463561611423137131741151724523563242332474611733131245357733411735172451753745451475332235665772513647155342111257774241727636171575513361662621711444537522633773555124314575515762535427714215654576227661451356523375366626575154176766134253135455215716756474175773517335657536347752741677421112573637324471234342536627661613263466423253216653135721621122432717151367621527733626727131315426424654746127132415327234466331172567154167772353176232611543664132251567661735436261552537215521137225115171745573641233255646152764615525612363651173422125124333733575357516115115457673515242544734763645756461337331672426674416174572367236563435526757751311337771231264233416277176275237362463527535262633553563473246364434115772637123472757331564514157561251345356727125251447717536474432776445437452377444446522363745235212656634174157414466524721533365653545366763145513356261246614372546414213611371147755161652372467347171561617633721431615257327365374442525637221375477314456424155511164656612243612564231172677352471166166473655134466665256225366475223163347164532312241252712642455673221347713355511626126313541347653717211437317373327261446573661272113456321362715643777567156216537765726266366152553543542473256266162127656664232676164324652471421532437416243423332664551632164347523655471133475513151354574227112561241345575356773122561114235574611756536464264676256377132572354561344213743342361137234423752541766421725262531545667243642215375341344252436512271336622143614437573112456327651113676272563237117421766612576576276726276612624575675557647531547541362342425715676355251324371254412546121631421366723246666624456643456642724143154511367361721625372157461175413164223242545637476724652673445763515133317174143734313674257665346143475415721424165556274272146743413154557712421177726447753561222537235226462613614641746225447623745471457631222717174737564566254133261255317617527332222712626231651717442423316442653154247262461662637773444277466713447466635714177211444774744555131167753665415327365174472251673173211617341714743553323551557361512764727132436174327675762712162462254277343253676577265576626264412132166413764654564455347167631255464335735532312147575523516634314737644526156354435117572555226632517272717745521343323461324176361411522537472635271551613223163234215462432515446523515236545777421361435717573345736443331237273432415111157524321366621745765322562472511572324354257344153625764245426476742571225163677162662377743722527667722441721146426656553754337326321574716722755544422737563425357431722733332116441654733215143717122324641251136334726456354764716241726744267712324361217526317233445242651652224643156147172726252116314562723417726632632234763273143513175435441234527743553112526116527352237253645643221631173724565524141756342237562645165456145727534643411733613171526365372214357143313427717421412451271422751155417751761134274451561143352356121147247352773557637744462621632147763721322566662666444527514217116521744214173473246732123434456327424146547727444447552116653416451165143756712557535645533174752271175563374552425123717431735244364244564342524427121173165623461216574227471755751157377273541653533254314521337446465426662167443661413274347473244115765274257536771221664644351672562213737614523646626424252243531763256251522226222164412747223421647674151412235544224511443676174774472633767544266631774475226626276563251145565551552323244226147715234541336175262434142474412374137614736756465747545725465536142132525322362767755647417362376421763635255565572367347267411262362755675454223453416446477537176274164543155523265232273367367217716362511354714636147576444555546415775234545127144225771545223273664576164516623434144231152372771552571161743317125431556126327565654764161522534311576417453323121626335411665426566531665227542535561442521263242116174627663257636172245374622244754545435764757757115746542676374141615513222211232147114374324732722614126457474517527246712376472752475332313675757674674235175272543367531227625615575331752473756316462515517371242766173443631672641223113743261451271545232232417443643451667126365443255571743127324752757153621555773553657161213621726135427665456744222141373654166771643532461264727225375564262172357632161227711734563432752163411315413634636741426152451666231361732336121615167765233322345374417754565567465565427753317131571666254143713653335543163177251451375711322771343127436746765132153654625225242664631435444147456643346257115265767733576223252755422331341277666711251112531636471735172131211772337447614117767164575727237341575541643254253372762474417554624411576224752321527761331317111453642455154375566665621151751227423761576147625673366563661174746246426343324715454224623722527554435362625435174535227523776165427367541314134426442323734533276345222453267531565621213776327254715263672666644547672162133151553411171256753531517636142567736216315444351733115711636114111632664531167262674415672412223326614357376415515347127271613255136555424356147714127156231565461437113652666661412317343521367533545142431331361533467142263246533241514547775167421444664172765322574167161776152126624245344117457776125215134346321145622332371411333755661425341355246372543675727334134376724762676435611212614651453174117615766642543753164661647351651752451336512111437116312337336533772334126327562514335777645621321545156122167342716476572365327564212125233361552332213551313353113425152577556611233417542117411152656227114724231572656777751255354277311612446526114723711126764424445636712775575217671114612455212716727316767517571672373651463673474526435416477467621215455736316177734576535514676631575362234743156637424264765641727566113516224217151671476264366345266547452763711112241267526554212255224534236247573713764643363511434176412347316711376174323615741351223561522423554575231511416653165354436712467237653743124673472241714614162116114422723623153477411762511733544375411164373534675775145341624355225334764256736436253671163631344216574232235717624325335727255576367214337231133666522234242122751763435452474163746262526132337437664421671327513423615517754716176431622653635376661451456257166633116413765516315453527446456442753514214776646475661734612556154546151551454413173266571746744332351427574235754264253351346712346312371724522341167525553553111742112214755212411474363542253256466626315147312451277454762221166751713617647116246314774327436444535137125237753624323166721674351273275611627111553253756145574523243735127231316734232146717372626223144161232135561176171747132155373111324637426536435433446764523145167654626572346272557365141544263357751622255116375444167134464132737122451162133666274221671373577521767116412671631252352423764656155165736136213231565137447735652461155177117442532335311414172457566376217355541675436561217346434255177136512772555325455522366774674617477671145711545327655455246527671577674374351273377755672554535614675444212233572671467636422214515251762126315676745131174225716444744156121712516333433165665542336653675765157172355665444332554443732532346366514412257622767534226412537567347622241132341334757727373443377412626723261434132144264632173133335331557612326542262645764311744467555547171656176364272533737577445223224311231751362655361337274125541172235443673761621653614316274215437114575173356353644376216746422534313723442416662322344247721315636242526667666137465772114334727644737635613536574314514131644632434336221574364125576322316611755471413574232744425346571562676556521262515772554211171351451336322457622433671322542561636152725252155417711232477666751577171511735416517532163752651131247422415367131774324722317533557622173732645756477772243216554546766352656353133134361611466243132161355214526143562552631654371517654474157174343531134123543533612262776176454731245556244421172337541541526112235624637513524157123177341153315177474645137534537156124243474314464152665751434442455171447771441155354241225661125735712612267214752467611377423217127312531642357516611652633255256317512667114176767255347576415357237516521221236145712172134552424566457463677625436545241631762557316465156232165762677762772246371257664671121616167255364671632647545346451441462371146627773271256112767134314444451453343763721622121234664327716144412112313475711123611254354271641152213562363316767225653373467715227416746317316227715346524514437367274136167771113641432223655615746551467571671266423534243125633427667637637156111315121534331673673766762771612143666743515666265565463563654162457365535435454223753332527246415343227752526142537174346464335171313322574522714715442317744543625347537212314124562722227574275733716737262573361573116177511473114617646127366535257266156227532212276211147633542561415427572724244154361265642121151734774366714322151477174376525617426146757321537677617331112514666664463334526576567514536721576455125351723712752632376211357125631575671162351553174745764675672741531731277254666362751351147344536523753617467225524542566622266251566751126242723371676552117746116723745652155324573352563667672464162566775646317746336715165234734114124672643647563473173716323134647231315772752311637222765377755617651557645177362414723463451153257224323232162433236574131357514536361625144277613462716234114677537711536255247517117634456245321333575324251332243236565471344467757522346363626132122673136476563456572542133157253552766545414142731226532136265534122716456174371633516621641415127212261267537613154656142314115247466474451452756453277531132746124665432516675542263255262477471151623264154642162416245424455562554264671466614156772643412161345775475643534242142336777176134635314271553111325552541541555341712423677312454241325473552216376552132254312736367131475635476454761177647744663617751544424373772233111224614215114162534265575727331444234755476375477127517372355513125513462313763165266127554245446331717332547257765717755311166122223246333451461252261723741163275532565132362411636142356454114677245662222473477473531475126525533523645115454515171241753634521762367171746327237354541244726125354264461233356324672726531433372631367513142163552764646722442524762644147457635235522424757334723326744172166671463646335472764225122623141721277573547277576131753346563756177166453573443366454721716275126746773453611346225627717641544457357615217245367742753137323162721112633667415423637254176576117221415675737611174221732623434446676366773754164616672253527273752672611217636316217435111737244636227342235176717643564667524377313341473312113271557346337767111545524244565216355321243352214457243757437247116737765415645313346635512535567354452214612435761754535711776644211533334571271417274676765751571755211761211352262561367275345543374564525643162357416447264151317157431326645173744717727425576414477622477317623434537473242124564545726657553216651637265576256534426324472623511775635574513355737651323525166467353743424763465454616161711747776373645433612557141757151256256126522356657125142267366524353365241577465471126444474356724253167146775556677534114543445272411515426314174257667345622431613655436467771415415442345512763262645614724766536414647421521157244146557346131162456431574622656463257375122322661535616317475334651772614256435621313143123557344555737355222723745461773467325172766724547641265624125364426136426331775663721623426265647554436451552342745137563413276365737575743417675311471632262221624713527157241672631735265477572274665573621121215412347721171222571461164175327772225211431443733123322632454453674536561646234555176362431276456242117374321675316354537647525531654725356437312137522517562445744435162136156373365647737114621454273477426356775673676517313447157431312246247637211171131315414461432766773675727737133374154624677115676376177713127441166642343243144763715725321376374362536763511111571214147116647467643552222344335556173773717157145433546113456235744455767165163725213214653476312151767677425611542174551737671216375375237122276416275212312532453122645651771753562423653135465776364251452456656211517222171562431756215353251272454315615774231345356775434654722344224724551675334345227675217464276612367541314651372352273151662653113151212517541115436143343621332547652142236247123741465667614271156473626643664361421226321737756725311275474333416447471575513424355365134667231164243424274447264722636325341541164537251735644256532575342427447323337322126445432712457712755677143776311364731231415377666457363772523662355377542312362127766366642227455216352523752155154723676122767512351622116425144635225137336426654646267122746322145761633475453757776121314257475264347637465162263164234762631467114176135755265565211576172241262762726513443311132223223447575775366157523154367471122467357247777715667365723774715345312337337337737766661262663531362525552424517526425654243425555737515757342435277774511753632435426325351625444344125323727164747761426611346114515351643762456345421313556367642476674372531476357422661626774154154514761221766131236317221627355735533546744641674625657142177513455742657334533226713627231111467255532516162415216671514726254112756126745276636627617413222732221743746677563546547611142355561675211277157544321473421565453433164374413377732273446435372545363733575724737357635417347435355667336721345363466147764146565263215271434263432345335751621456677511644363746262137544736173764746733472766615232175412411727534341717326221633254725166271364711712734746142566272712542661363373677374222411321522776365324563253213726266421512623642463753477621324233176257551134364673243345476112432357334441271661115431272712366514551324433633653427537641261252547571355737225667644647177125372352527324456255243537531552312541124157514432346521675164316573715423463237463356547455117667277751321745724362337214125115234231463567472121353274626541255771131527467662737351154137254655162234212372474543761364322127645762323643223567266235561764761666131425736326434267146356764142766147534576353712137655553161461314451142776371613577246665734155514621137167157331465354156665446732734154161214264711547326163766273717417447267671145717725335256646721664724714127637623555272257751247643343654736732217146255353467555722217714627757654611356625775576731722423422517112246142741532534546727462634655272225312565631425236376662366777231172441245221134774763113724757766224441272417116576121533227136161534664125736726637674225241157223723425221132116275621456564616311563375521732563444612471763725274434317414663227611251467762572255716766555771161217345345625753654552527226324536573337123621215662234267721575556721742224456156461117723213152653667323151776536647753275613712412434732322216773217641323723373456143376627421751234367663223551576746621663661174634622244533572415217376675675362743277643124355175145625514354452111265477137547364155627355734134142623626614652271754121525231545731333325773322327742123746134637762423214457672775227515537213122465777564455655411473365377513151652527166755625665223143134352537713132741422272733341554322475676313576657771275631726441631421341622511621731534736774267232357541123215212475167777316341517464617221642712512512543317577457247253257461642123371741711155172217546575662175444447542657567712765645435644371756132221216471517374246632462667413736777737172151466352511717141454353457567775153771163273221566134512552541266657776317641721644424673147275154154726713215221663453656677575214515316732554752316514573553475756636623717416541512171566227625571564175255742224343412434425266346657375272313157512654435155112177236657111426577665221147667761774662623765534423356462447547541127221617463744462231414457435457571662637343713227367745122666637735231355765421351365177356253157762131631462621757567526443767657263456435726714774756623233327346615441252154644352343667211166147725753267745312545235146375222215772231226757234157564433254465266421553442475113162645363732552524661346575226525771541133322573263327176711563473556573235416125457376271361621416466712652565434464423562664124773615164453235664237616114617316711527266411266722124645337462472444452222352264567244776756215352127243572627477425736723644412613731411513653516221224411162443756117261545137762275555754231427337356335247157361146545367522465423355763111247354131667633711644171711333447315121217264474461112424556134174616731747511167372634211125644325237335317335476552213536214646572636466331272166311753714371357634573336556765636145335615134217557124713621575421145746752473452465266461643374521336123473732311237266364513275331254513226361574623551323553476414266417356537121416632316557531241122257723635165762314172154372313721733316726735256677114445715377372734547552277266167545246177241434222276436444453541374315342475231357323171536223342113647111734762115424511442661271655677162571673455235312662622611571577146347515332262542623724174264262115267734252326612114624443172213132236543714664715461146355616211434222522221722662765532412244477132224446451546746543775232563676237664543536434417611423512112735114471653527357341315677121413215665153555573621162653774736467367165442123326534623323617565624533467663235777563124426476261753411417123533722334175756775764336576522166457523333127721531364145126336375367722236331523752366277134774622514747514776364633654761377753234642734424262665244644614672335622114541176466323771471771324725336714234262134425575574626231165675412142344726566445131764364764646742116427415243767175625215562567611553624551751767443364754224114373666333542531616235643455177627226742425612773526323752551545556464737627121424465652141216774753456331543614252741254416215624351225372653471766723474415316634666426614245445257636461212176575547531266633362354313444655635423367575462131377637215712566427765656516132153167211721261144233731623526145463474575735742456763254547455223563243736543111627136672741472747375671455756157174665262232436476265342741755766454214427653533452176413511417356766332321774243553414174156273172146371461325572144545372113333646416566711461716454213415662247221277762241332377622364162417432551561714141367262521137311345524773173511636665237343314531413114324714771766522556216673134355127637347336227474325276472241163746772746667737552213163317417724515171676672547172371631713614465176256245441541661665156457226726544562335573672777616464415317275653117756257466547326767427541236656545563522376322321273447474471246726461737663125155523564333551464343337326731556431722345724162526252115711267122323461263573144771313115233146471747766445642352473114527144714171116754652116346756342456166416631637314524362267225564572554547533565137566725757435116354737724373715165757565641542311715126555166774413563346423665767571356175165635116442475173572552711537446322243716347147437776367454437352577777735743715715645673255314564674717473174515461152416247626216616667367141671117367115267221111677746743134235363214134745257347353347663227645366672417124162147464443154751677517741764573126155531137635615666664674344665573347563546247137727436164552343761647115742755751723733311745235311323131326234346733264461224646111513656463126112531277421716616771366345567471555575636641623533652515364324512373156144145512716377227661333672277125432323434463416374641137351463237462724463744574352365423551714144246715311761527656432771111516143733663152245224176377312574327623123522146662311331373442764167472163262272332566625251461176247345775315441616412226376526533471271722466651521642613564436715136221477365447535126376632632556371542511355421243162766252536476643133152634757366666513765745522125544636333373272752442355127342725472347776237345613237652677211152325216131175566173171372313322544265771211667717317446671242417136546767767661712167147173444557435423522621622221225145412267243615277452653176212725467675633215644622177527337433372273165417174666167241274457677221547411431127737764713551442553641673155257263173414151334413177166375222242641122647663434134754715436762241464651657233646454246623621255413777176131426273711573165122554155265267442272462543153665153671337147174313451746354732551737262275216537715212151544622135754213625611612533141216612116615325727477672155451663654765756422115276355462247426774514373235347757675454667632541311147464227226116764354342625661164233555671523532257624776674614341625516762454572665375365146512515466366523214514253673371352534273232715437171416115346313667227533135577516657461326156544676642255636526515663635444431121116335217712764453145723366577721654365366656333641533171142154241667537525457155137457656163526616563435214311235172267176347341321674525165371721147151716152314364756464315417525543644542113434231716541311364251545223444711334536412553523331416341774416451134776344735361342276366141715231741564257727264414354261363115273251777112721561136645764214134363563574177157272255755377112641126515125144763271176745745143256126741664264575615421216724442265171361126576351113335347774224644114225776735247472137131554352153514475311726775312426423257466646427251362153723355126335414261143752127445647274777742572132346754166734521551167165446741216274574571254341466576242237461277761452517144312353126433362313423561741765416654175737367522173362457665427215724426566632752417657645427437243714572556764135224112653627754245735213272525436157354547644261764524245527262171236623617437547232756521441762275767441524472514631574752167217125163244623775467651257566427432241555257556436414642611463526643132657636573455131223463745533147424321362547252476154442326642575346376664573154661535757543134561531516277415714256644722434124216461227372712521435121365111433372344464575746772515745555611131374734423117121313716574356561622436767512515556267146575354546112722162244132647745724462146167352557114526722727512262575475452621623314277411352517651521366641634275715655125475573665113771173614324122744414254542364754753445171512115567125672137625334671417462764633555355561664317176241326636213672437117275645655673644627541722354376325713577361644335413626744415436131412557655411352534431113645662722371265726153347772222425274316647776672417144754377552463134127127176251366774434412661274575621522557616576352734222332622515577755645637655267672136231571361356753656555363353666511572741767766455343763331617562752256466454423256456712772662276423362131573221175776266565724666335642631244254153713653465154126572774221557365666254523342644635136641136165654572365711216772524312524424311671247741262173245715276642364564621615733352517412122126445734526577214641142172425536364177761531463247353573744517457171166142321545573754357132777127237744316363243557226221432454466474724763411657711724271335115744347746476574414517236263713477134132712553325766122742332671525241531127441151153356413664757513657762736253352617651347645735214222425452717272256213477162623355621465666715134165426435747266151227725617333142715642355375123256347132176513174552126657371635653566115657251646742726667764643333133731156133146233122231535261474717116711315232644761154673742543654466621555731441566247453731427165651726423657135753721314556466364476457756762666161233671641416766624521531616525747241426467375367752734116162567614156726656424412625436436625576324216775657421713466422473164126547557246211473652523754465166753721745675146435627335764514411773111712636563245217677467131142554556731611236656157717212336614471214465621526434545457733515265315756547612465242721713465213755643437421171515616121357267574252534577676167551464431541431266433122723722177146622777243261245461662273572427473573516146363232232343632264125316577514452176421756241456172724674664342651533522445424443746427226653131323776143624461764647652547164135534442633372412265363541557162646472515135416545465143211227515356446362124711661474726757722556434352613415574644245142155442375644144515266653217125343116447345652434362151573514262673457574372545163411672144673153331327157334133415564772451767332473472444741411171661736136761331771235632713222212375311137354373516473673335657117652176233574154725426151746751756355262652267773455453457446663421331615725735462147415553431712166246152764424547621467132245554372316614247733625165711335113553625575322225527327111153765254635325747271162215337445745662245771515445654275627564361151216177261735633244626716545663724624653757633146642654421316717473172467554772765454735276161221547727164473613541143662672624112113123662254521635324614776427531244433752334527353644445227312526262667734416634121656571531174133312475745621444631412564665371641171776562635212454532323753146356556335521342517263526725442267336171744111362212563566233462415236524124154416675345167325677532474777525366255722427563354347577311272742651563645715444277151111132446745114411322767471417437644122615436777131341372554416574176266723723746272353621263232653571514117373334672253363526123474555266237663452566236572314744522357373262636716741712254551144412432761364265162363571157273734177417546265174222472611541234655726773622532154435715173136625426236621164211754445356671554236161754153413512267124724163626534722431773455563416227745327273715241441616366747671514447451751516642734674572652743577446545635422726325716163477747125673465146432265765575244142253143312136172322721611335153217515246342353515617771134743374445272146464744445446653457627465174221166554337213271437531466277533642631254215624177743112132125413675724454146556543163477671453633535174671455433651321411456153336146637675341746777232416325661675451332176263713136267242627127655122232261471673533556752663641464676715154255531216774272677146536531347654547651562221571615657534767646432511576731272262157233521626562144123135357477624737423475465672325731666537611225356637366166321734113176151213747534674613445657372713612133437523272553136725154355645152424565116373617773471136624432513363174633323414653777662336526156575162534166554254153376362261137757232751627344762333252477515522556153146772572124452532613565153652275115465571256422522262176574614434363754171743126444545524326661311717426422724572447132453452423624566547143632761663242577752254644517624117475475113363367524212562655365346116721357616661422572167617543364377435417375357537656741626266625752524453317264361376357116767676741416747171531757515635545636542774521621714722773566453336123414776772113474675274732466277532332142342713524233647215746632154367635127471134531543246241367717173526567572355333556573731733633315263254573336524664267453757411247564334577362741577446144775721167433272242455626772577277772172154475733277762551142762162273417151754263163452665165313433774723117547166534614534254527226722234317435277773355664255262273527152715535625153742361221347112726131715516325711251372347241444467567242213615233263511544611451326454675275712347612776377546572456146665577624726315155242112277214262753154441213731544666116237547144343127141543517316337142227334162373427465757117733651312235744215541671315227314672624251644365231223463214336625221635622467274437766317143647551543446674735561651523441124712275442232734523773144427433145354231365562254753261633717423142654213173237626335331732664372471223523155236763625612211632211234616113746755336231341446557612364275412316132154121356233224454175656226123321143271724447715526314135747263377627722466471243275571475425145721734262233361611472532373277173176526143472463522615255576575726771516755325617112626576347251152244252674356476672441416434552175412613352121171366527364743254136417646761211431313453256415721553657556617663615253462443334423671756647626337756334417754415716774667663516616441213317642653554344442712613647671331326515273527353575765343443465631612321613642122721565222571455457721113566712214363114364523371262413752754215544145675467717131411627224546332737626375366313343536447234176373356326156126463157715641451321667612436342212616517474543575673565721755316471252221766257641236643152572443471613113731726151646153344671141243654257353167375172545136254311566225152372441163237152766436516421146427653761235332432575556321526467466754217734316657325167342212257156677613234213246165713333551577467461114545272717612146524713742717121576415525617225717417714316432522354147731754456426521351224375623456443551237771644771124563447114142426541552646336657246674524231514461645743576563526471762526676336424331521461653723733324174137112545616165252455141362713427431625477225143331136374516251334335266121625251374124615543666231147742244753124536217764352315322437653351763346267376625266122365353521611354114233235754666124653344546663214537143732432333132476152732363755773376541614321567474771247546445676453644377365326126333327153734673267727756511332256527535242641371273271143177436327364227314434564173327731665436576117252726574125566453643326275127155347211523471441644176736541565322342335715243231742544522511333577143743657213377464247437564754661364543575226175633675645433132251745435241162654243726573117345333276124343527335541517232155722252164621173227614766711237723151477152263515415715726142244452612727236477351261762677213571151253376157225334432731644313332457111136751513251563666321663742752155752144561541737751146354551166674272661744757756254211566575566115375472111115732354443333273723652523733744557716453726337641127461164372156757716317244137353333433163467375417341376722147312756374645616447373343344453413611537325725553413157574251513773257273714451733451321146236536154213575162356624666174626672517237677377534527216735527317571523513644531313435247123744733115476653346317753571572117512123652641215247155525676116161374672266311236154625416327147377761117132264172664526351474334333344451516325514256115164617353526255335277641557571226671626117136663512517656625746737212732156144414666653456262255177274612426266665454133651266616747522654513563347762256376376162255343724363611626744714733753171735337665157232146641243542262255677577524541755733757433651777671657642416514371676543137341331436432674544274464352654612745171643242627347716543631322527327425652743771773656353426771734767566173413574172736417317514224272712353634435541312454534156516117455642374152324562155563345346373167331147311151465254521255214434567775635643713537222447161635323414266664364647671135244427163523132737567155245361215741757331535147216134641417537445534566653457471315711263147223716355152526566627332547165276577425154335315371443527535256226272177443115744777452437364177736337364614311111246313232752164621641341173215223263537726244735123251277612333664336422355152764372341333467165421474531337436177333576746765441677354511565365421171775615452451577152327765447657741641327575744762115224677654152137361342136545167672361276173417345513726674512462632751661333371152454344616166441556755272531646113541221141626763671521665662572246272416467277677741221617776314144374344374353257462553553524221561215644312741726265653235651737252747577164175715574137535621655753624734533445315737712675654551155547124461222134236515374742166534637377422724537321141455764756453423355551325366574552341757715267425373435164133622167264356174747617143762416167216135554564272153151566637637767612477146556773272247232236124176355462336147457513537152675476233671125731767751325323623454267467572476576563736552153422742211161442222762474344452113421531641114247456725563247352724127275426244121114672215254466167121653667272314673214742411221322411766127347747251744125346372644653664621625542747561226266554143533225317775312352474333371614361573345454175343614346567661417571134661472246626353342231372351375754235541343362516122153312441241773441514242324237435676753177166534524237573216163653557177227174555277357662517776454464475415763514541531713122651316647521426111564747251562157177175761243143222736144223427341461361424732454566564176552427655115156652717466444765533114772574321116421477234723417127411761424455417456573214556551532522674251123167641271647625711364563221433632736156254247751116655216342525731736654371376326375225242336741144133563613655615337245471215233736226611165657412437277312244451212164222771753325445577615463423742454654153326153733625564136433777466114436344547242727534471672632552235253537553764137467657154242564323566554164566646734733461737461751637345134721725537767162132321423457173675667333433342664217262521542131737173456713273735143426673726722731217277421114521163145347253447667577653764537656264721145322221272377666454531466763266622154214433533311163233241451442557277554221561661314631166223571532526137127417551143353264555621772626741622667614342552336122133415323524672773446613157751375646411753354555721613227236457244776214532177512673326341375313124644421637612221443317331261614362644127221334517131165124314734131542554777367473573225655351765151335736766635375637515452552366433336335121661564536364543172145377233656134123676525213412627457563261713536125771611153444313363771773465276117267276553374642152353632342353471432216457145452617162437775245477632611615453543664136731654525622212274742337716423336434177662713233737263275131475247761647241574167217537344415141731134252232652773756113553251464417225552737147445357644362342722745622116133771647523243517712315711322225635631674331573613144755716241724626727543724216513377712645141634545511214645416731741345242436712564615362144241255471235561351627322152465173137671614563531714146364433334646745227617272414721661233677265761613775625265551747774454473212474763665474363377471156526157411127476337656227266364156163234245325241147161721751476474711546361114212231433437416247742226155265717233316642713741145277174723625632262266557255252771622315776673132257235354772362565137541537133267313141651711361764651734737266217535713124344343742134431557413566362613431766463567333471452732677751425624562132175536614127276314566251537154374141742454413245715734227235566374361546177534445231553576365115545621442526163777264644472324161564737312322622547224765137547735447471733116362414174527614576243313526727666237641333215656524154427332431343431563125613464112654626163226663743455156525336525377376532517114563271163626671431452345426541217627646247122264343576351325365341436342465575241522441664332375442277546227743226562552126346274424361224121543313667113746656222752174426563225514624231726141257457231721343114517323435431567535441552726231613736272736224261746124425247542134665772524444437354715542516723523422514352725162552437621533114347641416511237516143725112513351334475356412572476712623114332466235674555634175175461761533163676566333126646466334334426125414314237653441376332775537352124654211375542773535734777746257636461527414675161673464467315312361334474755675665235664626551726262522447321777632322124773164124377543666766642714125536155657276363552541425636241134641535456415774247313276124237525717656637331756727347242755641342437313456454357323257456354427654725454322757123337316133474663374133564773774221353175446135365777256745356761236546314221756451515313257257214252112525524663734475134242374712222475367767254635442165326627143413343441355141625744676572416757325761717635727614474464544543674362474561262354625354641324715355635473533751553272767132433271763444116424561222422424777326515261573454133366431573263236277127266544357675552621356672532433463347175266133235363353526772331665615325232544214531214113336436317153515663323117127437774757172771361156422722644611121535635736765214256341444236341323277163173623242275353167733774424424745227654175722332324535216742455111176416122455577363714772147762763744656723414532243744142257455653347253633216422726534651527426764111364515451763637415571652457162217672547656142173664752337345657657124212136331736334561524313371312134446273416332712275526157127425251172442377672211673612523575213433777347231443443124367551313656345472335563246452277366436615643513655644151137247377242244721272571354771273121261116342634154444462711221644753164127324133466246346561764352672414536332512525463443431266566637223147417754632266442461331325256572443532226334312451615747475355532115337364134263365172131677563675437567172511241667174275343533317366375566774764163524361544276136775565555164474167415573313336127775643452133651533424654227122142526265512777262624223745661264457276141341376552364672351471146177713241262256477276425676622533443161217434415434377257152425672377332275645417731155163226115336263522226756163172627342243176646212533431441741143111334645632562746412656644162474437234726216512354531426744374641654256177741316653124737351144233651661676136135337733162217632131317517313335752765474626672224366337362624522732572363154476124161737112664151231557766425341141253375564313346514674456423521655214763413156126571166127574662323123413711624675723744124473745457617322514114517723534215571345436361643354134747322632323567224263457676211715631134367546667326654754576776662716436422312443432146637447436727654435667735472675562535571363441725614727467547436673463433161173753354433477543434772355553672162437112442427774473722417777316453573731314213753445617517547426175572633365654311262154237313122772365624522244375612226347662273333336727245775455771636626246612136737153663342233337231264745361365273652325532765612137545474633362757271154264165371256727473741335356554222622461676671552245372236275631222371461253247355216331342125157476546663327264115632166212617767643543165124635532732652154154147523733546232175217475713527125117513166713124644614415751774614564173774317613464745644653235523333633465365735343237624241732276561241667553427733625543756376155362462436112715227165362321247767235312313475236246714236352352365125445726542466267724751216445351125727674142162174562712657375477213163677227436774315663533474524744434466332343763543136517262777434112755171317755272243162462435735222643713172731256675134267774627123433744157365245761471417773724266674271247155654725766116511146125556764712661373713724675721733621621211411537157542242654757341333465647633647625731336624661135575462354741724437573466264277166525763356562236216476414745743636426175753316221777537344742434476226724355266277264211625251612643535272712643761312314122223471753514175462651723253575736467576156476235534535754445347227267715745672445131746472127241377217115674732655641622744761221341452141655232636117314714246263331544543376561572633436742662236312177446325466652416223472636457761644665544432664415754346275375371771444217476737544271222653572613757472441345423142254552723314612652126363125341667334641163444632145774276143223265742161336121346735566412735254151256423236462276745715212737434673637162121231245747667274151637224142454471536323213332647732165662136517662634165412715621246725243123723375724655767643776662616121332653544123722127416374656577522121365111574115757617476246321644772523713315223114243171734237521114374745551761376727114526612613354657535534773776626312262463712417472265655366151612132411713244214432311236744235452512722255767332663776713437376461562616516551141367351723644523563775765544751716645131536277651167566432121232225732175725774713762545261273335242451142743334734221136141573411556674261635237752756672162544522523251335762757366167467734326571725257755263222247277163414375577344333261613736146755437717651624461676177413327136662673562654422523443574236152142321617215541724467657464311526641141163737243511676546276457346452662166173363544531351225353111476626537766453736164216233555515577463463231633552273727465347117166435767754421742353233767672721564353461733221356773313374565655324653656372347351671141411377731315674533171735126243414544436571471744464551373116567244671567626734573252222443312325716165167154634352414547112345246155664612275624374762162237765574462744274177521226426743141531367575314745716242723527135227447326751554256273374756172634661513412457276726366765715167665736417666616511447347137556536443374463253734211344347335312155426156473117537564311343176313765573452153236314635163513335744525162377633654237157521253666442151413365642376424316326714641265325565362523455727761552257265721511237572151742747226334464357337463454572616174235152521156773151525216477411733631113221132441523444214356351655765411434762753417741416335413112753735535642274212352215757261357562435332552263432752447566515474751574741267443637114153134675362432135155232425535253565255615242345264717252745653142756651475633453154772277764262567555624571755453164313213741221377151622637516114556211525656777174267344435357736657623527427337156224667415517315371652725757675527216257631772443637122527526477522341334524771264367551543574666113147632232361727675161542237242657643176435441541256434761175473556177734677664723777565577251527536642223312725424372243362353227773335156361724443677337554177172544362311432171361424471121132277725267332531671742473524636267173722644131217215555236633651662353457262314446135651534733222341726734376732746433517213645113114711537344751513275336714614126637674731446627357113614365171663674371444231255367557326236225614354423255274733712744667522423251623152711314716274663655717445621347437677271122521116731765661624667647671724277317223423171274662647747151661514535111327541231536532656135217663563535613636673666754751411467137522472775776265262676756116233125356567357376725215212324137441367145712133134656476532244322457374115417613472332335443115343372113645646317444666534754511241462747533563437126163471262277335533427766421344354634742262226763344433276343761363167415637547115542151715315354752614576654674452571672423161677161442431117666135125471721277127364537542637443264135236256367326163746123771437143566424343415413611633333417313762543211542313614717334764636225373633111233633323367156633444315517212346521764432437313551413163315433314524166333364642714223644327557332137173332127417143427162747112326426742365327443616515123144476337245573236172564555356573342176224764521347635312131731364614626336777144737661164277246737312255755162675655764515631533565723531346535323733574261334712625177323116142455736444511213464115231452457734546414254365635455361446624521374244762422215153612757632425455772461643174673273561554117555465635122422223553232211732117646432144327643217523754757257354322446217263515461756564413451273466276126577446454323675354474132652665455412357712412257536332527717666347666567141356231173345456436462451341344462276425152637574533671734151531161734531124114557141254663746745141434656457735142266555152167515561145114721534752641465765745513731643355431135433411411114676374467725567514557237267412111142477513353553127733163144354467547522157325536633253657275664637613127152645631365644565453156137552571765667126723372147554571645726236614616611151264341722175611623414776757174134561763172773755227736646745457137145544644341164177153647525621545313117544753453572167141124172734346323727356736145163366615212547361664732725733641167661512166126225621113676252262251442541453215777121412327636165222377346767477321563624611421342463531337377443622274676751715365731274244212464625375112223761656665312732372675525335666164343243775211531137613346235235772326736451543647721365227733534167762747723477473533454367743543462755177547677264421261164532217327127173154172545663612475617751163773271721116775376546437344544143574666717617447314151114661275646334246347373435153174664113577334161114755312227541127631221364772174571343554521643626757176516716476533711473661252141261731643674566161142531555153112316374754334353467743722637257571447746463127377364776262117171236332211414543523213142353472525362512662447721453761136375651416576676243346574163276745634675555545371624465114525313275556443111647733412332175527136625552164251254635167477252275177744264613641425245215334453372476235626222454111632466125365636541432243421142325673577446231115151377741255417176457424236331255326322537211321356231654611736662433777737151217242327111114164247636642651711724367462514334747744731216326533372431523165463576262324267233572736221431117476226561317234623116137274314245276155216333614126622142472137657665526342734456452657227532537527263236443171745133765731374356316633516116274127435221361717751634124635656351323146274316373466212674463422453151662433274634654745423155233631721273523376664361133347262546752771453114774433637174232427324434672213713357543454261343314161457777371736722371111255676474453353322425417756161226776647575744215567321326346557361264235131452131263436472351317546362175233457476142613141211266115334141515566463755271422651462124642634573453752512654231277523377573153531126317414126337411732771327712715746626341374255351452524425636534317354414123667726161643446412754111553354553545365453126761275515762231775363133671124122143534423656766625331521633235542124557145654636451543626242736151626633321123752235631556761765151654226337727252134213711211127314735667773627233754265426531561265754153546561165614456322412631437245432371427321757622252454627634416737173234443344474751443546177173223446273647317774252525435356671354175551523423247323275644633661311167241413731172413217613362333542466547243263524756737356422165235121146354627434337356237447374775173747443476742767614742111512323627553224121321421126337511643325213536252314466512645515712234755432466527266146223114674731536272331324433247272473254656632552726157412137757326635334231415521526477773111743136552375346137313163774375311615573133667613535243542272744235624231621511274612366415722336221734727777231632753535426762515777314473417673177454137726377777147411153753364421734747667657674635744251677252546152141126116673376633124141316133437553564343774566171515646662226275554227517276116267754732245176664276252271173721136431756667556275223342553766713765263153327141552227565275215574323641174372361612562411232772544122351772127171457622154345432234572671713723271163377135611135615774176411722241511623514511411172522363565612164165536221351561654122512373512121614546664144243565135355645151251644634332155344761616372221347334117553662526134215145477623667361357535776733353171631722422442676563363366614224327433765142233212441117661324757723423137362674752252152223611724355562527711316624741252554145464252344434516462266215512317141465731476256135344276647217224275162331147762625335133254175635554616724623175731565773424376154535646221641334523223574145152637313245322455227553743467175462323657413657474552165525544315447735675263344722147722577321174161562421666351514617176121142647737261357216376157176772215372416524762614644442353353413344625471767261756423651117351175577337436456555326615126163174753616751637616342242755555175664276165367451315442746635346135455374734762133671174157724531377736532242455755765564555347467374367614742456355135424257217257616677465643672515367675637644645535464362663144673654457335121663443273562165655144572645346546222543221332216723314517334111122417622155365271542212246771173334436555215734127441765574575241675553274667313346646426226633133677121626751215273245167662364745667762657171612346145743373161661767265275477534547235776215475564514225176152436552353214753522364727536334676555123444141532753554446413273151664237544517115363747711321647746562446137232771366367413516423363547462576765135655627167142571154133314214736424217227244323532335776317722774525431345717453627417341444653425352416327267651732756224521262727272725153741144442355647157362473715422127344671236733747777356557221544661452515411126226143731664131637166247727131643651343541275267377115137152336734152446656315435457262316543446744211166126573342377621516242746571616622672235366452632446553524525577777123763547122266243536211151741763353546652171126311232337535744462657644755167627763216372165435723617415133116124345374525461163444326221623445113643414163272646312123316644355642214732451646677122443446116762134436775261152753231674625415621364174623142257514774456127611141462164562727111571337251143351437656435741641732164773227545727724666462551763161672123211674665465433777766416466772412512261636563753162123672572643233343546415114323635325416612224551234715616452734457337111344131153664566523616365421533761374373771547312774644326571217237771371366427621476741621742175775125163635737167664155353563362165615311213222122537364634272572263724746461613766136611241511647242756615775215217762216356353376673565354215726626136155632361252621466776617611435433126345562744122623524574741673224152532125447732374165661651273711153376342246516125774772222613632362116443225246631341663245632752274142574212375342531756632141361115365726245713456664557775135247717672526337676554222313136663774654737663652437262524737525125414176716265542561732435417232773413413243127317314651421555154425766423735166127515641735433175675437742652574555243255731347137673577765144623357666371434557631171277625476143223753136523676617126222672575226635241122311373316337427677333415221323664734256171134133277547363426775371125745152565214162237673472242255151675265615435657636276512641447636346246712516512422474777145722767514416776656122461761115711211262644543437453513723243133355374562245521665257462775221646477256473265454262347441273376257166736454232662215153363532547566473237754152362111441723211261327544652276436757715121551576622677264414467264367761746737712313233764532651417317515421533164316626362647111142133765157457222113742227242355471767516644555766463716733177746145236124412373253644531747655652414317667221435622476463467246317132731752126721157617265372144251464472675516514675535456662321467236517277162543435263763325473417452571421716251161377722561242271442633623451677737742221334655122376662341327334331453627515217531337653616742414563754124656533775663264252334172321624472275665564772537162613234245777236725563374567517177414747631564566344675444525535565373361446715652452227671444233163421455367154332544534671425643315444212221653741414115341144475242673216374761142552317414255712371711541141355433775236564466525616173227455122532456344174656441261513657464657124741557256123232323727767455367165144261762426552263273341271116634253353625514733463726137251235652121474255751327512525452666345666626353162214266432276465422111714533251461216142363242724235335772236214426333563221433155511411635466237164454166232646337571664433357475244543575653625576664447166736642237571477751622421754164766554177151121716262344542262561535355273475516446613257576664741667326777542525377735716574311561533323371543412316126777537617762324655722254526347337472454463515374177435111644617541116655246777577453254252634521532421255154725772411136313674661224451157661572642155717277615721476576575745143352142164154767236177766552477124242561176675521441337325675571225314523374766133276322211771134565341671316322651514726115211777423524654516714254566561222421465146533315115644233271334676745463355671571255711247473153751531255754725254146172143541157232451157663371776626142426534557115332227657651543367641423272114537161147235373643527612322533227226432346377764247337561745366371145413253242576423562676425257465336554162441224664753636564433156744463527652232531123672335754642327662566112375521121444352747261257446257516367512566314611537555522447432257342637562253337325217344477536573165144373747671421455126162653161714435731631173242154763261567572335147142351616125514122361551615331356674175777457763212371552275432412123623751766321657646256633175417611277377232411574422215625376356477536553623773345676451111747727773742244445171772631142257151247635142426241447633747255172327473211563511564457754162711444314645715356344722737446751214556342232761526321543477315326113647764353645477463124164627447125233672257736614317737523476522246625134737721553666631111163316111715521534671277253373312643563775547632313533552171442731321717565661223475744254421735777161141737752222137455221433133242357443531753266145657622355561126163436534153677456441715454575474741634432732611555645324773653357352116312512657334175416164432576177741222577534253735743327566576673714275142667262157531417267246552261616174134333275455575432477627122633345171332776547212563555577164327721254453341363551737416415757163112647214442627113765746544653363461473146331443741454422717247515655162136162476545376517535426374223436336616653314365352733654276652575365244515334761173452212767231716635225152557661446567176123125117542457535635762757671512225635712251335237137235326416541334236564521334347273146771665727353122674631265324731631711473547262342735164615411513774155431447714211726311253333734532216453444275376331366512225661212157425155675531757542174563714323255762563446634612112571272724253763341615571261474563774377726225652753424652123471172622724666444652335622223574614116312677535333666367413763445167721221315141526356426735463372275327467174247215157152632261421145223244661522227336621741113337742455145236461415266464674147135214112534474636466445735531556316711173653247115642445322576426421541736463374171346211457313366432446474723433617627676641266122275146552226516472563356374377531346224436217267345613553313356524446113124742117671255577146137564514727434634723742623536452442214515551345737444535122161234444135623747443421273116315421166572474762747321431152713555665445714424521663737144345522412166757521222271674571335127461677476441553113313673727631576761137615154376627216521475764673617617526266151173654125523373764664646554462562766561243673373763357235774264362252376666326625253227717425155473643623655457215526537572417367553246534473313116751147323341337754647477732342241264316743117215672652646712327345716574115725416773267777322346237116527321213174422532553131743755636673123433176362641153157565452441652225536575753172521666334461655177753732431147321372344613772621717313665712734274327622332413675646236736222632463456621172573476422214236323673332124344524763735256663645334561674337723421135553443637554343534177262635131525162455433167343652712266763754662731575173147346647167667174652256435146463526414522517431135444211115764346227562133277372246667671571234765754351617637744734724215227727624253443346333146441252714176752517243476333747624142253654561653677257214617524421566245525722273337252544635367355363155557277432567744447175744663111666517563731146472512226776217477241237544741621162324313135274122346432135121336451172435344766314146253265217166277462217725747365413632344463224352613525411446271564731577131457732223754227252321734213336513517742341673711254361711435226666774222221633147416511644566365375711143236444515566562233212731543657274141433312161425635231416173233537712232452613476132463274626173264417764145376321461712573414643415315722663424573714164536223564316112372553334526344116631216751563624771435177743445441562557626327717152663671334277466544546662653771351651614435564451145723112511747736137573342176224616231412616513526416753254165547464645726617353234732447167144724577413313442765571735753751354745175347773311162254752347516123623467471742257365164331413334517167226223341316216552714236717736747662236366377265566112614616514512646675536665533334535226777557754644427325762424771524433477516273546567477533343426762432573324677461531414751433222474745377667726173243752724457717423144142245755213671212556541623121544152566416717721316373454167155563642613625627741571256555664342647221613374412563777666455121326431422753423513212371147751222155121425151443653214421337451657572654552717316727363525474653543131525117142643773254123672167413555375373466766423145526125766445174735374373145551432245755733552255615355662446573121735431726343145663362637517133127764265732446325555131713136447357767672136762656363565171645713712671275175363121511427413313514114334744574126171242174545216736453257726437457474725372133725673311224257224275166525731333132454475214147676376341155271414752533265762661622557654415566265437166556755241427416266735563337335324212137272244763766455111755616431755775222622217155766765666533621337142344566673463412261754331473421755534325764235553767424465146234111542242776464153114564477224724772226517445743364754413544137427651522577275534342773361163146735211467537313737241676616312125647716762713317433422413234556443344343453725751333673237614641215653237631336452652365366754166653116262225274361631456353762661261176432242511165132771477656776717742267447647353652722717677471315634512667634223525716776757117774554143747551142654544551463562137454141726144221516363342511725162677671615242422362515116211731311212463321464722164714736132164325573126255656776476172776326651331753672366256136145444477364411516716335163276712556316244777267777634552762664131172717521437547533277576165472621112264231374251577551467242433455763527556375355444613536672357766431427356124777352546535773763736162126742541666253737636326523342665572745145752456431464347524172652746652361547473542277251667155362251521614555221441466565512331566751741446151236376154736263452456553627535667611535331151435663541243327725117262126133277776354511733746567476722536257266125566673367155126111274722647652431327656664516411647433537615162215273252644524671635221223631263672121425766557744467612115333624236417327374262741733255771373637571622541371565777315116246531411463737261347137161672526462642612316436552566574775257726112414654511476645436225743645556136535315354232716627425711577513567221755572172664736537726767356361375256365545157123116714743772732667415373727122533334131332636724765634145246413745447513766551151533247164136322166246536574772765422322144666116732725674315474246511134414436341544335175546373265467242525552747462371766616245175122475263356215535743744567477212453261436441235621215614644776333653735673725521633533337736663352555345541432526172524621626244422256124176441451634426571414155312215735672147233675564626244116346242733237353744433116134644417433636253222516252564417764445511265222435575432772343343716677626337614373256446774341543523526461563132541425416732126462643623172314651734565362674644741422623263662154544372463747554516112421727324761532761476453745746322433355165347447617444757656427752371217633776756734542631412416747152754355254267644731211361455373471236645464451164176234463222572624522362736235555412141454645137612131343256155625731277654376367574531167775467173324212752572662235435445215234655377674265443665532377127554351112171526353653526746762147464575715166115472745653661775754434325144756637225624113312716563124732327322334115527751251221542334477431554275141147174317453576256322477137754251277631577261126742223335243762112177357376427424546762627236447756615646517541225124377333271275257654524572624426161123544573422326172652134517417531175555127361361655151641513466617554376335465443252436427177767646376231167535263427213212111266135651767154562234254416727246742537746754443776315166762175613277274173637327362111111212173322352751455377346546547772273435762277436156112777765155275457257467442341253552651457271756163143116334362741225473324522341754365322767255277747413155213317746517677125555542522221642113317167267172756433726241345565117235154165352236632457513463364277125644573126112351241671347771714477256463363632666747113113314754762731267542737545546167327715424717736113326263151757723735576271214716337266673762775377757616127521364424474114374734742633644617756521272672232635332516712374512464513764226473445611472743313562243633365246513473454642174562177463122546537767444131352637247216511776751757724431565761725635527716515613615462451261353746627632613375677546715133271515471574765225126173674321731213644233522435151751451773116327515327511145764771135347567532524341322537336736751616574556132665127473347233141332112676622721432573126143467614136316211574657237553471756131543375235476174227176345343365443673435376226631731675443772635226472332264147244433271617763616656712347765123465716177116467465267535643546124726636631411546465551235512423215171155235223753637154636717421241357763614223417514161672645251216325676431771153551651144673624656446223323431677275273762464142676637162534535455375514744341652535544731574361117661466133121374142544536174175374343256561631345523276725445166632256136321555346557552335145631166172745714641636774137745521547456744554247244234637644527573452455134651715437724117453434211366273557661525436137215551263331242437526567442266316165114436654737773563626245165165517363441754744233424332151751642571136243637362535372676615772243357274461537113642733625524652327237617773174362674267743431752616711171311641237756662245434734735146177375321327216533215512375222232161713744165631163753213734247365557164663566574272523126542672557466166434325745111414277571746726634677321726546771322411516417213664637222776676732172363225356746441454554445452671721452217275132277666442227476612667217237144265254132353323325523545667614323162674143475737421164555545271516776473743545527636414261612163763634231426361264224733135354553246664725664724536232556473762416475771676467744566155714424655435336315365353642647552224613465331253111646243447514747421667532751252457373657522335471561543141267434564141134477247227374722751634373717224764127143174575172174545746161567172226427117611231776512332472411743615727111243434275531671253367552464366322675325111111226544533762512454534467277471512477152462633177564222352311453133752321515725173436653225364676374646721433243526515227756355326673614657174565347153151726641542722476427275721747356467455422624175157766672116135665122564165576273212212412424224726316615555316736251411644475177127611567237134151122217557367361453643556562267372523672547616155431626516125165331722116361115742134114627535472413734654674572614426111764623773465164643324524155177267653263623542225651232657556676565213574762224172224321477367256766247746277617133574735174111621645753663664767256662362713275372266666144644553441711112522371511466414177556124214434517747227477431132216122543116677615626767743255367223361763552542325325221436376317757146334511744666411644475447454462315117113572433531362156724563725535546236413665735132734424127614461475245634536343646427133214563723457252726563157622735457135427776723315165473375512366273645746531162612543714665124745341245722221422577217576311716443566367673146227231221153264131327267251654617624656163313726161117145133513676273722444756664775712525117571427631276674573362164336757727752156317317757215535252156152161466226141735751533357456464672731562566672571553112167726427614772362251422416131336342223325736254412665737752776634765416313241522112724711371174513354376533775325431121352461142376127612223656511534752231334575471452664362354547236451573354723767267736164547654422572247543752172175724311466742223446633141442651363134263177322766643256333412551164572222254452337656672254441557241372711366632737611136472567575544236265752344445447326576565342755615423747374751773764642477716576252546576215416725473642735515543717671621463264735332746427173476456642717426133666152715735576344241341474427617536141644413341774141112744635721534521373527627334444631236737214676736311314336614461525321432733736561711445446176247613656252564353545522356366174175464323471245512364522541461712641273443456231466152227477567644775332711734774713346415453342151714224227722533767522257725144236551372414557166241576562476122717141221717625652722611252754366364415426312217413664123231767526157632674124274664465611716162667663263516125414263754756775265265614354277151567164673573422152742377717134273121611171533151246415417412223535617136313717134674446416631314225232262453476267634475471442263177225373733751654334165241457761612453756454453275515232411327511155364232676227762426676752722127756363662514414767557564677111277147336677262757626565264164415312356256274362554344262611442474533461321157335161411771256417272632713111253753223334541322241545745247374672114556124255412565453276227726247715627346716354323543576471234325177124634512334612161727153626436442135417743424543645154346211156361242147412177454362727747256715222546417621576335531434553464377453425511571433176242721256716653325777157112443357652671462457613523537552125554542142171247241633177265417275642755165323357434143773445464252466275131465541156556132712531716637433413361365344257567133124617654234453422366615564666162562441163522175324324174553463652126234517121654325125472142437641565355371466211134664211354442511257126154116111567111256714166323234753555375445457615617237152475212566235173641742623555564735545635661377774777252537326112557443232272273772737214245166335273625145364564766171534442376736321146675364173713776433764666531746625453253444753626325614667774565324742227725227253635425424112755442575677531646233776442742356214574264146333346656514621146176446155572336764551421713221737173621561734623277353564116122122513663775551111155525247151363545135544333344562435241166215673317165617255623276714722644524165174564613416136627232536111421241636321763675571533715737111135321263352553433476111573624627451571135413745326226317661364341521624456754626537552447516142224376755664355231211356426333666216225113542365416653426453131653515215553712563352124761365463733565353743122561762462637465662342716314727376375545647616666733334264665626557334111711771614237657346221176232644755245326762147175737157663257555313246154361472174212117526615346662477145215335146246331311745534715621542316122657512633631414215617164326131425367643147327742533543215731264113761215347445617265516321536241441573436462144273754627774711155245477447653474771463353654163516366332231667257416755253652232177134356455413545453161467514124227565423273447314634774764467114172655265533564356146555325336645132751435125452357335257723511423621774515244521555373464755711374474164722314562213653357152372653273664215674115564731156376574733232744443165634241446276145552764371755373157613647676424361411241236165474465653744515244324431464373753532337623414142564227267721436612354257611324573236366257314225543367252313163516344362335167734353471532252533477726353761153412152126334527751762721337435116314636563244252267563626663513445221167414142471557742731212656477517551275436473511723244443213364243372246127461562727554175424152521644656616156461346756522247412616373255164722767665556172744324164513332735344233122622336662412152415621346762475677124722364472644435672512751451453765314754241725475756154132167415337145461654424223722444753635577514363557223744357634243737426566236514626134553557373576447317342124677612361555576756723755112434723175224311252176761477111465156577213653172313231463314552361341372561212542766134475763312447476766777243532445725524155333214173712637323451253135434377721441642136277534762375252612614661145462371255754124732134315713227666127335143464251473735545151256172725532117636616312166615623622135612734117771732141132623226422323526147157244451764257671544776441265262326764764571562645466222437267512411227571757135713535772127262342455444632745535113622244355411157534236422376211472727454126335312634666225146117473457262115655147527542356271252526544756445362335371647677725177755653631356523364452441443264262757432461442672446524677325645142716355523123267233532653557465776644326731366473767166544613514462234137255126325345111512163532745357275117752615327571717363467316246167264466117371471331676721656565415243775125165321412415564543224653243165514455526677546113546233461166551116751557525546223746325325372413212361254737663267221164523165516636164471577737743262643363234136147476746752657115473621355651654534532527726646575271427124373666352624517413373223365277747335274565247217441153322252157213142522246167245343576723342353677752366215121666236141575634214212447352274362226733274166417143276344555214527532754453424542771725513234717762371656312175264377247573215273543537562661411257214354615436722376454544725744154413274741542773551226737535133614135643727237574537422416323713427315526431522266242522355545222252133717261421335521155623545673216611636712744626744626274664315367362364577363356641661467111651611256525664113767165323345442634652444332753252172723341724317176253616173431661753471613245345162554464731236424114265422156674253522334367333734454226455344753345417257373676444766733457166514364422343543577116672241266747477742365552723733624151167774734741111756262565251565615615412226227425343422337327227721453614536572336617135277112123252552335326441342556365377411137324642573551514163712433414616651245536773165664256432113465343471243754452342661534734364132561626123472726215262665435741121374325576167721537127672416531761323173612713177212262332325314445766251451171122332575737561244143671757157471625116611667614421127225244323514226716265267632144176624246416241151671526473527327321735611644652152333364656671532635527774572726152422177651743246721122562665663234555444447164176311461656356713457334611717331353431617465456633766456452514733216461446316162461327275366163425363431452262531764724553553725455117355475741751453131576111766411435316113221466713163774262134367721731363432433641232651265615526623152436662245461666114576261253651723612147517766577367316433723135426623573673452432553436121334175776366646175452536272114241652361326212114662755774215732221351373123535134242751563376612136166412155561316413663233125221247712327716237712211524136543777171322332156261421572316274563473636762316325376446716546316566143743113146575444445321243122135433734332222166532365572774127663255772124443226454124415726724253754277733345223654416211173531136565477636552746517321441714131771447644411625466512565767413674642125476651337312461157237527225327157136271121371426332325336761776713534636167132165326742152152162446131751673113754762367415713341165353354774472271327467152576514444771311152361433562611752744511111253351626673342643632247622634762331312372736232426754636223522654615256443355637624321333626113514341376543436411253217671413165521757534717642167522573744353735724167571564614755325522367672474112272242742356172555175264334135354572675733733321241657422727455235334247533166272377432745622436162625671212132372435621422755775177657112314555732534766275165614713725157624531623313133644334136537256132714177421734422754471345272736237737672175437546417535255561313427421627474561441315743612654315347433513253436667373655162614352425766325561456426125533115554725525467157215257771655265144436322757174716545534633343167634456664774575361235621356574657325214574355713346731176666443376226717445257574471617515353723545436572227316765147227154357623477247574434433331352351125171541466555132674147266433545454622171647563654371421264551426112311576556154673645175462635446611771656673274551271137312167751767266746356135364477332531546635663567436231667327354647725612477755711535734176245533525216455353255341734534557423716447476244562216322616463426727575536552121441264554324666671661453221434477626375131436217375433165321671654614417442474434271617433522717471253121461743454534677162363354461713752145524111561517731475754745462667543263333524637667464162547737724352726261645734772572665761763327611541735421132373571377466732112266372154367527761131161165275515556663422474574626634143572464132131373532272673467175346614331534674167411667327336174664421415166514555735761624524213756227637571256152551643335146553464451437456354542635277775642312156133211147523726645656534165213216537654625331114111754464124546422317772626657361567335147634475746647232736774744176614671231124722645147746554165146545561674375572317314162611416272651142512461723643461652613642141256437675761265625112374671274532365355265324225626157556616451621567415151462355363261143112273362323231411536355613121433552221463716247233172764477443632244413724631655364654215262565672453655351436265753574224412263442746574537461275545377637157335521577254313343117636723732174566535654214641353256251655765333327114436133252517445624412155571612346262421772646527272417271452517536111217415367477541661735327262174224265614745632127134755615226631351142637422535641445237161144272226412355542325453217225323744275137464157223762323435171465724622652471422122364621441517413215312542513126255747115275357661321674766467325112234754511467512573311146217132254642422477542742373327241263522216441527676273533155112341723144671164154114357565377724125331741156555275724612441444157673716113162521414775253427224115325227537121161561415647572373745667544547665744115773662213616415572356245643464264463724216257737254761665225745424726457365362217727116742636361763631567436667651713516161631731423414456445434534275115271414446221575333276561122734464535213126176741352131344556125567317133643447675121346723634415356452646313213724261763356221756734232753314726334443711632731634346545117471335111423516113275742716521577734445616277211432235337212372375652544373424461614447372522751556123464126566667335364547754132745413225215164126654242137553157632164775514127716532156745454536645446331742743737335231717352357224756753367753716533723657226242647556275313614467663361473227415452213733325755654212343765726565616371733432226557173412125163564314517163316274215456677577165436211226551561223777571642541473333456543613644234323426574734377734621372675422164525415712442547131277357232351132674515163336253462431454622734335615524741675355421575261463126621472277371726471641377557273164223454573515565653723161277415231515266547327724435645766737544734542447563475232136646441526122577744113564411623511354527442622736451127462453124253646772265471335441577655277716212113433172235111152147677671532143315636751662767374475375452655317174671766277237767636474672523443724233154217227272141532173567252626244656667516624116216564613166622476265246237552574563344754555626545361115262542121446144522314162621742561745257325131514144453646752222235753616332513321166353367573626625126162253675674643271251654637351351516217677464615743142634563621712722612652332245561645425717121412673267334542431625467271112154443763126713257332271211333647335625351241465522633755221416551334761176255127423722444616463527227436464177241543127471446732163727775415333426127771246141257563552423356527543642757564722711375531275751144432537527213414433417427336342176461553514145527252324457225536416653134542324453675333465242772777313767234771261725274717222411442152114515524726546151263334462661772552345647514532547112652742753242465253144516664715362657165422651567713465464754614172772643742712112351116535316616227373611721121456477363213714637667351353464623573542154465152237165225563256627113412157575122231752527755737157311617771572616624266375112716151333442514776561371232733144153127563134434323544677114517136551526123675327615375316652774642623635134667757517437345435121223611333722727771645763436141354754217512714714217777253177246553464346647241662663722233261145575341125743231531124347667664355171374211434617621455534424751571732462525226327454331663472552655733216737651626361457616164363755475212261364222366367277726334774635755214547676525656661514225727615446112173754643433524236647722566416617124671345536353251362632572564577367524476245664612214464653433462346115733532324444123611264523161761664147362646467151266652367365554262222426475372427416546615552311524765625365441571466267745276451151744472257227476425423352127335432272536461442413256415631663446757232171245476125776553552237735741262415255257656635124431344232367427355774172755577333376713242125242652352557341364634636243356773351526773731167563366274642451777162761454574543171632216354554574662137417154475457712557236715375577642551217165267346372272743413576754175175614751527731244415765763412313715423564561624476215775345677212143523173374155665575233624744151324645176623422273115411175573644431152753215544156626735516723557575613345211637511325266267635715416752464666537671436246241733513571651246122112154172735232422763162125621222457171373217462662261472274226464575545767135435643724234667647416153662615541236627354734131763562252552327343125263566261367757264343674537154662251277446454364112371755152451517721654522367762241347747324515477466241476467513746154775565336474232362332322537544355234157626352421545611264251616522221113132463551452462116217163315325742172466435674776737136451122727241477353143653655752611732335252223262517714372261453445662511744354446356115235472646545116322751435273274137577765631453315672755516136543622631326473733424712663416263546741274744357712323573243172457263413171645537173444771371547477151572655542641216515645123273112361456342437457222116632142563712141165237375427542524642737237543643477321264257321176371233371777336472422756727221761114535634577447773377111224423524161555334417311731643175536212637626361123163256455665352374551533571673211527565453322641225312762252413575564233654142274145444654114474352175474111241745611476771451176417357751115222173142143211421373231327442164464711336656712242665721765315655446471367251414664566675426125652522757776741547226116752763451634133142137115241152646756413577114337654766672771274273744424436171177575466677716527734476143153362343713672664447542112637335564112423773172636613225437453221631114475724217261524256225447643155424235567676667516322175162661334746734615613654527646555745117415472162764242635712661474316466136456754472774566666726441327333172177647737516514317355316333653274257264345215756775637673172511137165422243141141545524243415521521372537744341325116622353745121152334241666737451442662255767175231765155657735112467526215236752257775464467271431572433355253371477337616736272263325663572132212345236242753212634333713217521644477314512742126662363524667765436477241456611666116471267256122672727165755744766625754613526126221337125533322225122573766671533657662556722134545126425416561157147315211335112623566437216424532563315357762254633477421364146316757515723141534274356525122764552434325643637466125166671176565747473351754632644444243354242746715344541225521256613232665253764621276412154311161526174612227612121673112533751144744436561542765265516663251576173647515664264713564352711152662346231137446747426754364473761126153165722636761667226175315526524733535732631711744553313276141544121624116271216664235644552736441543255276416275621516374477455531155564326346742214134413541224332122665612525147554135513735471672117562644561646353744347116271511657755343537557763437431467442527415352726163773345312342425561542377673574163317241516767657634273264533142414542513321477372112531116422563331421764245175375562762534124541512612325136577445554141652426466761223137726754643466464625565553626331222221515144122414352142423365577132224722423774443746122551321333655367533733576774726263236372766426572174565574176616341171477451241352142521347132776216256115322567174366323337536442476426142332443161733367454432571433351623766275471747116451522655224376675535475472512341522622453174764547327277457714767352426137635313345275333345144171353376251113441361725451156466523163111222565715727454553332225543253375564455246224573245371154562121677346263774475712651176545767251314133343223633231237115713121153656324636232645677721423736143542415167714272651764245431366632173513614333632727343221256742353744235661153355413735153757225512335724142511253645364652614476632423247511546723662241532272165221546616764677255313565726224146234725735524443314654466322727752445252633411732427267712125122357275472732125376315416531342576637576612215744715446323366447532471371513327111755727255132776247311462125735243634642555155662743712324731545137634112627517115425547332411223317617212354455116774137311323743645775332767672413117247313771375114637137211471712636766267227737514637647726217514373322355361452145733134165237667223572227366673576723421344433457126257321211462473745112655333235754116221476555143664142675221116536462523477215573227577232244117756337577531271532613726252574513335425461531714275561416676467634575345427411242722764664623615265133665745263355664253546236756561751465373742531246533346354134343311262556622745712256174627363534742227723237721346167651611164671113226441454571537416676115415416142676144435577652441343115656673763771445326474551776476175165464174351714543231431212222641411122547647224651614134357553624137214171234713724327265233534337442161373775376652767673275547615724145565215212322313623516671462117757517421653214416751737117417424374347545166521535632744676557327164742557543527412716367156127237634712166342213514444561473416471112312346567242516365424776736156317634423537622557223733527535576553234517612757711414676752521477613465445644655126427225577736631377735523127623574536276373166225231775326411772554414434644475321422165735236414745417275554477653761565311252657331441315166744454623365523771643617742661655332715355736227324726723211366723333251645476432223724346475471743451536216262315616333273753257515662522531772562427147555262243642123367467647223147114634147444746216366454377623535311736172667522567426166157342214317117477553731774512417354674335357327314611711361533461161614541474545225215455427777225236773244617433365722665575611343253567152225655366546436111334761231357413367725773645565532327534773643163275165362141734255342631234644254664423746132551374471534321746435171464471665617451633266362335145215646724526573567215155277115736533426211151531461367136131734617151172117354333561575511513275212423644763436715265637611341162433626316561562211114775241251423726741537726337451152775224376772566753654611656674774626446456524533721513577571267661546573356122434424115254274273357336655677144525336744565114452415314163177442374171541261636261611231537614134655733161363371463425413563276665362577737266425771651147457455324475571427453363362465443311242712563634613133571641415156273514763346736453623117362776727377176433437475767411431541543613623576232172513643727275252544235414437741232427131242651244567232715212225571424647736754424556767572645615667344441346112457466537733424324351125262263342477254247672425763176724134471731765413464627535144637454724117215167335631574472275132644256261777633537716457566213566223144254236623513357427357527442166473237222464732714742115162311342675616146432642336641457627655134535542315672245122267242346743536312563454571313542456513521113745223652341373646725617361313716431127343514771713575523665155122143271642352453133576164612525742461556715253456127646331572316445633634551137732726661642272156653256734241144446235432642761756274117524531375222654231447456417727712466515431536253417365325231242577472434427254416556371234351632611145671535375364115231666662142157747732453323124547637525132457355267546267562257253335131367435163131766147356413635452611554472116115722757511275752233321667262773674712173214621136462667777117577171417731422646575663764775746765137134375571443142557251754553466411741611766414561676615453733674171263372143522712672431744435235255575122474565156333546273636544434247427177724641134145457435161626577417311176222627475543243424373355426636651255124771225561221567432315214421133542764633656144116241771342456742332626315232553517571654323226553755617432516156141236761214162567252115475474421454442474122371326541317241625772547727423652125711141256341741325326462661163553671115752257311732662767176455135147754262112326576114733772575322216646767322273175517217461222444331246271421732413544413636773546563414555752124471153437447715764245633521744474523776133735524257744335421261753253157452135663761333775224312637356225442347536772212124556753711633311545632522743246635433634121461644321572766324277643247652711774537737127151471475723711273313176171214123253332235435566131351352473214542765411165544546673732212524217427251457243527527234454627431513441576514177151165642333377442726276257577626145521655424472774524442523615521373512353132333716452735226671731421546162324725573766471472476557725643116472261566447617751535541234644575134174151141136223611633437222124426233251465216567663236357451234741475434164744733357214152366664123577275772475743753371637426122411441141412126415754257223136267344451522134616373122133556476433171363467257711423646125764547251376655663565731225331746532641611665565745632754477513457744134314262766452661322473742756352124433723672267322452156264113234716212511621553142351276511234624654126317476774231351331465157534347111247241564731165434142225742763177214373766274131555776513173522434775315335152227631521121463646445216652456772156137153323517455317114462353667563511143335414145165533172357337611116552223541356221632166222223425464627213457263456566517742475344736767224354623611463476646313717616741477762443512752531471172173667147156313555163347327537631337353361322711516154116152256323351721252454436453155172231163431523642277753527246646262317552635333452442734741724534775762346172357624226534526373772571745757124126732714377337631271275173716537334624465317472423634354745521653236715436566122425753347232221655655437316322454261426542774772461224365127575224471244455244413536264777766611347375142567332676535336234136263232636225251452235157674476225547144767526754317715174645461345441141132741362374113567255472147355372775135375616265322753377325165365272632424444165474144176615334264457622477725656363762654421136614671737731626566165454726142623523527422514562411346651555751333615557131411762115114361177234525372216461666711622252451475246676227176155756231455624173521517433443451157773242744455747721175442177226127445542317214226436373572434436373167332453176152673244526261232642514153373271471636377247454532123627171422562564425641677273414677776151237417252736127157321127231146361433352556472317452575427645463547775262243313357621372455126572513343656117355436477654576357547163361373337174755743413352427347715234567571276772354621154121722535325274425215543244463164256432264723455377165312161377636672727523777631647371627647643523735177311374561432613671775257654573625764544526127311471246334673377765533124727167121256111662221121773224737745141366116376611133144377172175622752573532424427133563413624415624214457723475411757431634476267627376262431272377334536266716171227747123352412545227146656557671616721257437614447543342331322412424532475576142217554717141323455242311252175327275616624155434241311526747661512313364673546263224477473363444615233734317136561222251621264656413175426543322533162354473162732232114762333427725343612222325631752557713454365122512735276753151345346574333154435732461357565731564355177426252745124353243635114642363434243451252621246441252647277432266533562154172645164457517444664657245544363477327665735113463151175763512152273273776677357766775675145452513223534413552541341231736575165417762334721275242374567357155635634171572623346475145714121514477117266551175155752664266347711732757745146765454733353217212225413527445433167574132452473635477163726472712161515753234626467566757631142341533221654245213252767154267435577133311644356765273311636761552664216272747547276631634534721271722542146234264157343736347457452746264276625342467762635763752246175535327254524433615416713221131724466574356623313155756212436527275766514516731457244175231123144652534214111255111611545557265562145456271237157341526315325214421375226342257214456316151672354373116152361323757612537711145664316233563624222173556441565365717633211673326537175153232767661655125316747614535433657165145334155775713663447114513411236762476217177376744664235416642542623633754616623321736517413761262466154655436751265757117517535113612216153762217725637771764564156217226436546532335234333112431461474437324371424261724225461536717354415734176626617442211363375223574267777153654527642772421144413142142261547221375415746763445743261517763715736616374374757645374446445635542343213743341435255723567454231465616112557612537333621756312551232753337321514641123122143327434652216352422125237552757221355653274142375527442527725747776514723546777552415677673467467247653347346315466366465625773731117443417432212257215711571113215253423567627735157741122224454362545123715722536643645251536265552354755557744527224733116144622751445333426711133537151756547656724557223724237414511577553547542131242554267347612172751435512126252526346264364575714156631254711354277731367157751367364312612151461564534642547777647211573127256335722575663774177232373714722655551632527131557672133433235323212264457563631631734477613556167227674643337422536376476645543676565352675547723653512416274553432257441326431726371441451747413622775141174166117273332445576762172115124623545566221375246155314515227173467245161231146744574255177211551415324446463261731466276221376347212557525164351431341363434371312466552467116351315444721447571657635763715533653421222267237334421217527273671254367526443316147162233264543661421474257522427445652271656346472551267351423377156376464322373457666524656225235264743475634272152743442464321731445715671422721135312641472565643543334516672115556752123473366543267757541151627434756226655532262156243357533577214146634577636244161527613253275622424165161715514676551115526217462217737147512212271211263715775216311314376517746767176417216741773733553545532332333213243231421634223677443717144365711344576562223514567757175434134362642522154526174713113657373732227512116452372713314673643336467542643621151361613314771224173357455746155123225467156112522241215723621444765644562472765272223124317554264152427776266626151554325374723422575466426417335473736665367733113762544476431272615564323437657356432173655116476356112455352476344664261113652627521666424675623211741152451542423522465744637161256463621776147531177514361267425265557647465537647531357516452271767655733577663667625567535165364262655145124524675364351257676435624447253744325163622736737773665231357654425245636732745154433156324413765671364361576473145554327751266756225543734563167136561477526334346733535114534536416566531574221734327222574251223211163144556663424546726545766217226642221117461146741615375236247243566617657163667752511445362417165747725745323331412656415647555453456243716332373661533421377244612437747563634223466131277125617743757126413744314311341453344241647552523737561213357424147565652537722435374536164136634713571165166332162554464716673215454665474337557134574274264414173652312156724726476726435277526114456553556141112723666577451472136624362117231433712772631777213214534146161334636135322322442752545362162236723536277443617716364122322655557733663631222333252563136325173176566153315431167245642514233544532357611554662526474656372757323572562731421712752447377575421171257444616627715352272262735144363237622673513332662217323221657272315566257614712224365777775726356736644636236551171661671363312225173575427276415565564734464517221677332462334174763455714575431621555223566216714253165645321572661423762613513332757634377551747112411673263637734117656545641751122313542726731453441324112376421742426732525773237472273344376472745547112521144224534177427471765452354446562213667466542671171747165642532764463343137217437634553447613213741265517542524617265523624236522552444411774464423316667323166465731463573132613255145776427366152132471724216643441151723751557162343435257744412416621136325223551224632746371551434556417243617642435642671657124511542675157253517313474653575356423613431356721143512177461216751433776143154262533143222233141374614522736564141445756272526657452723337116623671367221562461525637352474256656775637716364347133162421156154745532443462225132557623742757453237575743256763241334637735174526667373711721235471764176777341347267672164222771216636527555621641631141664775725771753631524617774227477176512411427123265566566311351362354425677612232117676637665115452124674664727332332315414236674776466146553626151413343656535236115123112374312443667366351176126642252322143321711747665175677674721263471722133136116516477366657115555641153577511362232372277321276664772452423564126346467411521326721276552137432465445317551624625655524636112262135766645626411216152454456515731527474117147362117345174166772165125656652722132177711536526625347135624226541741653735777673326443245566442557635242142133366322736435463747144752265477747573767642527734147556676546543533733721163276513567547434312664261553573113774362447413234424242421711323523362646717344726343625717241545765351243177673441723634541714624352576116266442545141534735427264443354264241435243335632514422177534354161144762325172252735355221767467573312443354412576443255355434374545112456716377243463331164415171773247151111226575141247622442532167164215421317113231232567754262171533374335436762724364352671112275436271135633244774442633755274751577613417134534371464162512117361252623547122554633331573724143111364757762247643175365661466716246644633251345554414272442333347244741267334112644274437573131164651617753364642261745734341466255457545174571631125617455624653327364214554756252754112675352725665375764572521716526727555147545266176565146141622723761575562321232121635543544646237477256421655166142726212716642613632615662411335631552143746137533714414756721614662177563417462773543132644125524744712463423722477173277571454151453721472665224135456346514212361553732312135537416233113545163252444616223616747572773467176415763454315667553444754412423375274642212162741424733414745316745321652251356532225565163725531473657116245227332121737222714244443453467122156461454516111525262546116217535574643323335327237323344256342712376731265116732774427156173475644437666367173313146164674335712566455475315645243761467114626165742673525321137536514726511437243432175546762736626423365447464641252626624131714756216662727524651153746561753362373171374367764271576354553711132443613452352661137776345545752147421156314412626726642436125442424634565145421432327554477343426211651374257222553632211135416336435454172135422174314321162135767426246463124334756521621124632775712661272636444226412515127431222522541135771522553635557614745231374521231313652355232224532454515266312553142377124456731266647476446624232462473131733143651711544546363542621234437135332423611365223571762724566463135371752121534123212425264233447416574775253565226571311124472432223122731221743622764167536663725327615746144537645445331326632454645343367133731676421552555633411346514516123122655734311774436562354125747352551254515626473242516212716744313447222624463727271222323337162345451543223724654767131675573637574762325616375773737117557253244742275665637447133143132151376763323772566432435741445542712672223522172655221625152557157241463745266463376471117475473331576174622561722761171147611244223233634174215515624632123147573126512123654335121613726234213536577722217743455547141675436721562474735122371245263364221712371551343146416644462731542554614162335543414261636743127474176514631415755415562575721657467342134275614545335415221326365433535366746334257721542674644416772527335271716671776356133474274456521431433414523451354624334712663127273535121556525276743454642255315652573742524344252516113432352151337526777535253324256531656265221324135377126442276743142161723144667327422366515513737146342657456477432571542313716134161247224765642731274346647653351416431227724137247613671666215256131254246662616516276356167726642767424313564454475332262154131337312742312767521244562616423447567775325533576522362463425772753152675557241734354513765665163417561457463565222665273753573134124361247525347737446155425742455114137221156742717726667474542354677612136123315421277347125462153145357352714666675742744412521225663712123571452345633374666672471763175454532767552113662461721137337265541757644246635714217322366375253361354112666566127252417457266524762372672551472411562636746531331567157325454737717373161163316475414536475267361212532657312252132574553272421553726114234342454535273534766143455366711536614461321765374222667426337474475154275315746571657722656725356173524355262231237332636422357166547276634141374327523555623521475415317725254511652231622273444215146752577351337452655775451163561576766615151736324715552762252331331331736141772414163452616753216242345242352614432661753767372215441266533115441741235533674715553711763475253346463357636241127327537167714243173527524557662534616636527343564741722471457633334327112247616333335674742736352123724241222164337211614227155366762426552657422444435267114734642114151247322566243762612416113334131366227477314522124265166422746264276356311674275615433316422257762627651757326211765417361625716117166174235256454216144325217732131751574223251713636262114276473577641373722724216235455116746336433664156361722736575426224241213572271246241543534276237765776455516523451635371632556664365334175667344421341535713512231753462162135677643727512762226224454773326175773414565673716647325135356157767232517316721515647552211236236363454524536516364333664611544374652324167731771534114666752413117341747754144221731511316651161126224231645366473644175754163366212635722462422615416314734274225317173451613125756611323733345715726253354666365366321724242744655474743432472227163254712227575455352726375411521745336567451236174367126757142137774762131255755514425324432546557245541777465256621563326473357365142231211747621176341211547575313636766272175376232353547437271555464313633454317646113256215353722553255534165241163421332277572751277142661375615266413642712277236254442472374122764257442552615633277451711422722357413672173657317456657623214453335715335533553532317472624463626337153745214676137177462721424261365563414275121141276321553311331221562274615733743715154415652174143464765667174565474145633132447615415113132612542165751254532434364116521122366466263312164347716436312313552512332663772546431414234576153435661157467734516646373763711444333342417474165154215413723251525253323354172717321172414123314122344724324516551662142663123525163655217562547636753132454146755343165754321374272575753376364127437144566536346537335675634256322446115777735611645536322151722355267767153754151724665272213532257367376674322435114635265631167216356136572754657252617573511543567314375572361216417556151226416431177651116321172757754217147124144122243166276413422142267161576217435743563433165222532432622453526214674146556367652116212456137752442766635674562113733172114713356556443232612732425745157661125164647153454666222127726625626526123222476265111312475277671644565171251277111153314143143336676517634665776724265572217442443314367167657461126617231276453173434533533671674775731147125326672356631211422123615633734557446714671123164465767542746535462362163264414263661736343126575145364773545253441645563116776673541237574213666154643344153743217433314136335344731466714311742777337644676443136266177432625115141746537573717737631574157571475513477446747753137221536516657432171745733747354476452433311363472566362577424264742315636664334514432722776415222452235734477161545137246277723171415122652677744567423434427146177621777377375743724361743147651742753773132536232777714411476462776377574766773162164525665445645675766364355554163546336173657456154174521217727274236746235313131741414455547477224721755575111114356125572551664276263743555777544447211475654364123527216777653426331367254613335771111711775231173244152553215714726137127744754411727314526237732734757164673245456317773635521135424433114541276231231423275477253617231525635641754736355125242624551722525213412125764466322415272365541371633156644324145436165414367331514142627362667543451233653676761464757725215252621743427621626765574466316135327424657763156155735574344341272144633633251156662343716554764221724417734134722357761657347161163534536243556115113271335334343726473436724626357761124657224527467632633327344254367654676352227223516251176633352351757716342363655662712516234562576571534663267656257337244533113164237627235232147273221613233543366247253776323334667747373767216743761462315747347334454163114721337576747434677523272611222614151721624776456322733234345647356467552142117151255411255133771646625233444353467352466363673667662514741415765133361221511211171351756131731433762214474626135154362274467434743274545346143752317447275242647157644311334642163147177624217226274645671364674372321213635746676352253221711532674125512227276734352674116253452165646761677414242533244153331637324324313464121374711426152235167612254512313454254225224357166257374666227676214637544361217125164654516515536242217637667572322127471471144171323217166265511622562632146556617142261716657643333636733711573621136147726122466641554146336527734631644467735611766413235717212576664322235627727757413325246525515141453345366365337662416277142665644162722751574573644463511767664313674713154524127567131231327751231732247632234273326442514571624721344326653414635663143522625427454227214444131737245611212755713335457134541633667552573177671344172714571574273147331537531555375617367546366512646722765253624414352427356237533326635544136471145471447372345711514452164735741612766625253155236774113576313575763765673271124614435715637176616274754415511212754555441452343373672434125236444222776744372522222466717524471213573316136312425663464547326346717257254224356754433711132677671637755377735643426731234525525672676537423311652455571243734625715752724345423672443661174656546343536262734423771351471165632677352172475157557614763112775366223544615422416361166516777637443136611362432572522563553456513745626646223562744223672256721415277165117366563215475723524756466315216136725446226711263757627562472225127654575576535733126274335666472466236676563376627441214773643172735715775236121275316715372613115617517322335364136737571762413174254117434274716613573712142561277717155614316267647141255433565565574365126654642755774547236615575323146734522116726474437421117533257162645156651621364326447323741667245752757142361124757721326415542347556562622734422415547511276524561441633745517151644517146617477534517124666514767552466451327472754166556446746724372131263232437237115741755667217532652364647664575461565344376351566116662751337167347275645474562372162557522522655676463132571741366535427713171761636252432536665642514475725225227235377664553357622363774517332355116264543211362522712572425654474313171521557121323573144733412134554635113725257436154657317424112564466671426572477174125171671167627416662441712621432341432442434315365441643745221546772346422162621475572116627775575622675773276347136436231322172574153544374132745511425666276365164561117622126716762451471347347615126121434424334612742116133135741653126652224775213314331644537636157736261552462624461465732725743745554742111414143122635137523226115412633173511132325131724447341112315626371423757563775341416436657553474437144114415252212266143221562336242763434143373621436141227463271377742557727422664472624662313453357636541612771551733533164332661664547621231316472165464111316374762165317432213521357172123664463711431515746311556555751357127431664255652512666544442677513655745562357437627513257537421726424362531575777652316253225436211741323374174171322241573437267465516247667261424641732465424463244162147271333737734213745324631351566616653245362712376147545772751742541176634235476214377166374471755174667414244775435444375754253662461521236646513461212626435644212375521326311546557751615412233563335377327475253377551332565133456226252323141471456622272614352273132363577656615616226327765376621161351235247731654517525346242347414441365371456141113651575641672455515444613626737226475171261427311156457132646777541347565747172217145151444243326353342235246466414222256673235264627133151621661273422412145564366262671764142162545715213173531457747145542661256657511111363331445352127316523322363474544171244171212242115556775256722333347766111234536315224143744216554443464476273124556363661221275752217662612225712642231263413321543632134247737325551616351673757332555172766111577767726716274227515314524445625635626536467772762434227564357142545511457451646223745124542567755537674643641663266662357736635421412177464443763763127114716551621132177545245453765667467246431644755721536213473271241174746124631324571322762214427447154266542663244315525746322366374712677166674245117614545174735446637755535262163164541341135611565552245773273422375332456237417156374175526777227153327352414312352662533344276274545564124466533732375623342173557425731477252664725617244554132774667741767345157542565254651157657144143766575562732556354372461364712372362151243332377737366326736356415613647314644637756522315334216771375335712575474355527444764763713456357531377146531574114573265443362345315513315356176567216762323651321273433271121716636636277465411631275425637627524521441416251453464336721114166531515646554532277534535637345222414277756622752145511375433265526145253736244441223463226454337155763367223567723261514452214322221567571161163523673342463334447426466676136477667225464616464435375375171137127142572273242525245174524727132757241367674165523233615317314511535574565273145377761433553335511477756616313152262445623367741272176171622241576732534263266315536545521754134647232652262123765631424522325623645242461513773677642433756537736552111372612171175447636513625573715246327647656424577362563442654461323376274235526656744372666335471722551375151755661312617453323526673143541655443615767746477153643247434522476757666773543641236643525371457467455364642226442246612443527556534352145361236452333571753142624463516436553411654325434732133663243217266431525357123617732427744275324167253777622373277441546177631441455656747211547414651671573741775674417531515566364445534231331131412554535325354722515237264477541626372145672375447263322151136117657275764225172131452571614526514544233766576111147437427111653341775474254255473335417421627353562232761427256523253225417355524157247472337171437161522656542346272343565516761666152436414537461534214775564752766123163437566552273773562161256271517253233172432122461571737556721755477721264465634135327215121226766761717555341164516646551573562471512557474572264747715174354623773241172653271614675516154636245653173262472463254134752336263141462177241427746342141313333641716227144325312157363425751345456371375646561676634366775742676545666342422471365115725431622665353331662143363175676443534623361735714427767377166135311614253445156612521541667564314415732377125177262357435424145626412652575375425562635416114615647146325155627416673434456747545441273112514554445111546444427275235536716464141642137763535645371155155125543731153753447224164211626521315772116425171124623245446212453262374257666171454171534466724242473137137636115415417147142576137352354357257723573571515764611535774422557652131422513273763156756431776754277343523253553777675457647546265223476723362661651436523477416341521513142231427672544724155613164245543176352242417222641541751475263572527654226342445412616656576755327224756674757521612617557366711143542521226371362654632657661674351444666516555134536733713272541725474356155762346231641252535637477226243642215732725252325211262313227625746641144662234766225347763745552347544244461166721655543151635263241775444443455442327735131741265464121576244617252246151145274143565655572163221555453471331736314113752272534612447127153346111632136447633333577572526144156242465433315641221262533357166614252615246734155364551216225227534715642535252712466517533354227532435512226431771662735253516573735576642614115173276114366345647421325676417127456371137674351433564355216231366235241127666621211646367123253265723145224227341435274216633163756472225637764131651413477725323272424221327732221252513515251667231754776111422642724315243222156364755675647325531162715321547475174553456522364314674437523452173462127111241771361135116365765343546466613624154176771546446172547526571762571127111274141661245227271377657672712133547736753515624665744644236452725722711211173662467753567434646557743774213572731647226363746625712321142322635122745714371373764137234577672474612312133252552374231771661742423674276425673724546636715221364654465336126532215772512324553141671345367342453243334665434751131265623646223541213511465762176335727475327775226471657356676522433514457357212253341376175161325716543412543657314345266165131731575145321627547315134745557652633346272463451511244631316365661135156236665647163565627677556672521553433237157426221311377257322417154366473347272432451567533714611457317745676141327567543143445672533647521344576544442147423273366662145261651526363577433154414313636546724215245424562277542114476363266627433315155374451573243273432314366536445276534724341752335667327312346757733445112221463262125245362317274642343676735453775422162434354141216665462247641413633275734357467367127354331472766315172446436364477325152122411242154322254122662635532734115232537271427732322624377514234167343363524631274356127162424223256616272756276635636746227653311163122311132624421315147126556664217531654756521643556571346334764741125442314471645436563316724517714567612452547312261523334716176464567635772643271344677412223261747622433536755213714755167426523415542225723754344642462323275546433545357656314772237473722677552236764152174513627771272573467713622327541211514574625275553643234567445655146436122742426113436215362741755621643741113725361222167275462365442736157462221344452512242517354451376434666113561731367541766443512446244155535532777753753526271556462211154531641647344636666134614225234716114277245731637634315631563255215535651445647732363166345555275147644112566552627346262761427125122623273761254211731346317413234436746344562113317453314356672445241216755276631576247515464631456677474225221312325375755541717777657413135376427251755643745744733164416337171226335213421114617216566613533656611423764716576521411463636334125356765467237211352521725651373731727566423444572755257745174417573552524771441656574471112652642227573212241445316156377466663176256566123167721536456525413133657537531741133215763647317614213365331546552163773376231332154372146223171221611241275327425147363314725146347454573426577325254515316223157126416142621743661253673616234236117624115222671726316761624347252153675436716127751661153517545663242625616422521626724316352237664267657632214367261733577624773522421523733553413676145141657233414565172541111511426334411525776445364431553623766721353525236773621365552254662554712255771617273343127256544123514732642633754311514631416227472776262446144415556152334256336536354732647277166614247665427473342134332252371172615614466437664271734163312431514264742775775315671226551713254524221521412152733154133143462243175141211425612337133357627254453367311543444677613237232241625254215363626376367714746263355173524354555516446437744763321137413141435377354116124612235242314627164734662214236617224757212674773367155376633623536145276455146475414244141422716734553522425476241664372444755771466631174744667756426674473162241135245532331326372252712332465662326273435561511737122455544523664414157546716223135474367633113663372367252113426265714776321517247575524744376235137537462653616667542145666523325312452737227217253477367241674544712175131162111451516443623271763214726734346314455433715445454765377313131711457313575443227627566421145135313335615452673656525571514221151414115644153532415375357162216347761655263645111651575525736774162166715272124121372153667566166365356776317731762261656634534572221731562666264324473365142412734131217576415251617257754135347142274245126744135154153475131256575323145741464372677351774221272743257655123662263227237662773267524622535724333755717765276515471162335246612217711111747622471517743467461712123135231214463544641121277361664116732154524711476621732677167461474613456157326111315476514554724414141767621643173554335713425175473573565662263737373215557266726416755453512776147452247266171742637575166375312351415524344557734615434375735464536211745322516111763423136764531461565321511423421763376114661621176732714256421527241761546732152144435154635117725734121115233436173772474276361173676726431175125436675435255375766567544745457324124566325165763551625333177123435275756555244631714556767172455266663641566151353741747661136656555152132141175572766765177766545453675772722672262161662671665323524423634134342652731237336271663225417134661246343577523442621154615731336544472661733271564671253166133177531636133453642232351561513223277374217455733255514774764316626656261346743352142533242564455444473427433662777363676265633571247613565265556534135145731322436421116624424367112636322454726671772675346165777262133321724714114474131631542452555227431733553212716172155314572325457664151363663674722564233465224213727757356737431717342712534166557566433427463564511113367165654523375747677255637641267266743536165661651666352446574424432774574262357537414742533274737141617236575451542137413644331445445462433212465511642335772147573352626257516371366623433737677345647464546465435417663256146114777756523372255116265474422323723121664223551351277141412745247641747372667625646653624222636534721652231212777765367712116672363552175227436526256251571477647216325247124166115744713242335357122755157476477373614132365124146343152121771722313716166762375333751264464666127422247147377234531666326714726751375432462415261266111122524422552326574645464613435531713454644266745432217767344116227665442767565232552451524236151146772162247164251427512334242266165414631731355537512634362672421361744141266741723127645236311531635342551465651272177722762156241714153132727141341254542166674175673227431345463521275475465165656272235351231422533312142661556415537455571642226566614772157611473342132237552331221631156241212647162474352615747234242266411675614144612364762115432661632631522237531151661712445643747143125432425544723723167655353367713457622576171373622777645265265534435616426666161362445365114671334234717765613752127756661457415237731731412717222131116255236652755741221523456771713727543432727534646131365274375671154437622675363175334164623414433175162452112431265613365146422131657125347412522222451165146242437332175746212333511627333351515542151664575642332415441116257755153141621516731312156377236223741365367641445475614544567423621757426572536316271755333465166155227776353125135233667347155174517626644256752515275223147751351333227744643125744567113273247472734721576127725364314725342223525237411223325754324127653116361123154216441355721433412122661774211533411445347423755167355545176363624611555526115633572356266134417111165741563346736174614626361361511476565713776625325671527666756227265776367152613472655545552474413223143151242523177765443613255576113432555736356446212472127677621263441245212147771151453454536556213331141465455672747315161145666323331576455145332474274311277242576556425331275554216547661715254733174542652427257134123134643365766542641124741154567272566725623561155167574721361271566472263542551371457741271232311341567135423553531625155262522566635752424173365451275225377456443357423234562341361273632617545112154567156372432562745235213124232671725545112267465127642254771171163757562112261774171325726125345643722244452542162224125646474157553176444632241373615371332166145344212675113253434314551656574421153353165412765417264262251514623157566221426372211731256446122437326342514544675162117643666123764627171544244753264161567372777363363446254662117527716646736165325552611267371464556433446356171677267326356534313255512546457446464527355347111326111465323377355127755522433675616744576746163665654526672351152647421324233522417162763412517713146211744316667675274435626637245276272634612563423157552545672421241443124374645254343527371532767733345115672537254646576663253166433144644117245623514472111317253667364116132734374645765227146525643365161363713571316121144617564122642167371751211723247632672325611711751767171373737614215546337532736135146215672673314172724717372216724654534734365775161671532253176663447143472272722173167374625414141245424144346646164135717461116122675471246123643555446375525347636377524325712276734664437263355315361632525644657345722751276121661644315773472325237424655661166154415315755111743776575474472321763533332143157442431262632165365541375513137115357467642161521315436117332342777146734242435555312324267415624641534162424113653176526451142637172411753373557271252121145431342614172341727157214517534317454545146313475424344116761423561234142613253725452763673145323347155345563264732221527125667115743666355775377633714126774726432712667551221313514237236722666267465533665615377133765151257775144721217172731745243147175115722413455455641756572116227637522664342121675113663264276172244443116317471272571117537451767343654515645766135347324262567424712414361176723647763332571642343614244253255553542775256242517167614241556454621132667474764674666322561545231343533664363163652414564731553716462641211426715345735431527127757244474637647475371144226131246173643346333264733131654571636556735361214544257663742532624572515244376764511576164241542321563317756665246426436163136452621163267256174746511337643612765273422541341135626741735336545255522175142345227723227154127644627726442677411324155273576562255241225576456522137741231111436353475355113155471566523543627545725552474713552622564751352227732616146447124317565274231563465657574552453275164713447415165553633477555276725326752724523412674335324143735577474777462133234751623226633413363754732236651247321644631162431737443765544777133221714713356363246544332733145471471113442477634422264361564345416527764135212754363632711555416271177522432547366561773151613533542535762156275264454672773256634226616134653561326627126444441752734657245514636637642627454461765443466241644547644225364634132617246274362656752465324127433734741661317414371641364766741443732237462333172466625235122266663715154222532171752574427635524135734556642142151437171255741463366744627145252225344564351431766563356353171434161757326562551447164623134367716114245124312456466241565233125145663515245473351176356711433231136471214145514734663553526142146125136654445731426774356263511332246145471214367276744564146212535443124355714734627477214724271744366624424126627661511224734732567552135556431427572623325732127266461156122375254547172774125235275324235455112676577771522436266721334273724273164254245312131132175516722631357776414254567664213175677753272372243577247347657256156764415636762242376224211347244153614571366524753716336554471226577267225111426727553537371322273222234155127732721214333465616337444242764777262222564224725541614332537236266372667473775551653417563517525365644574214673751411571751723462345636447136545616165153255534761663647553446321136755374751467656233322575531553551311727176165777443713666654322453655675613324557762441337772357656446226652321436674131741265363337152147372346235742745766615341266314344611535222526435237154274124461251434267342315237245554277647765227747614154667774563313416376121226177515214314774226676637452563413465116536345771651534412667242571322276143643131215566756172353425734552156453664542551467626252656433757536735413767737231757355131427563475157556562475514531344526566137645623512752633216453735715521526471752166341672531253645527571332441556473664157274671345326553126173754432147261647774645423645456663426544653757761345177473231736362356654153252216126766422625564113771626134355251261743344712534134116133457176326323546241523247657452121132764726464422565211116245556663172413443114373134344272651637251431776411751373121531135112147272372134342511122267412213331347617234652732143473333554127165245377657162377647173551373221746675774612233236157425645277414264173465717334351333227741171521231677372446173246557665664137263363413767577123772151557264322557132421572514213422477535156345557731272343674135315357166733672574725143422755617344454367746136621345627215176742411741146651654711672533443237517624621417614225377552125532523574365447541162122717322276357647367154227347442742615124653646775672425551526713373716573766766657222677762653214614475175664653665165163352774475244744544333523341147516117456373777475221473636754135646515446146276711762255244551344325172775616577676734651436463235145244736776767674361435463727524247744654653543362446116577451176274572266553173337231711756267177567675552161535452652657577577555545233552525372451746136177155521455722214153422535442342247123272774216724267532465522756262512612444236664546716662171116457652117542332116717775176117754142354331674775616675526431336754322655144535335135771734771676422526222717433257157254563763626111624314361776614732312722413324327151517617472275547732113534276213365356337567243347567134753614234163126765622367245352641331163572275774676225252117265332341122332152543465224425545467534737113317565134756431215645722426346676666373777753114672464646472361347377511517217676746324373531776726171351263353256122442136235741751717246665114115362565321235323533566546466761516156521633475152432427256254225123116311651457722374231157562275626446634172175435757254233464246123626336646311216144667225753655257114611552663567266111616214732134534521176466475216371331633257522213224263224646675632125342424646471217442146737532635572643447277212255461375457654525623366375336464224363131126677473731672435375127556153274775145542621274643445423433663453277764246366762437362735224762312222746765673155215311243532163414512371172426231761116461671243624755264436361461562542733757251657476242177346436672165473337516556414723651624415735574146221177731533721213655441231635666776173146451572171755161164643553453761636117237425243352747334612211474276332375731457554577371422562313236577372437424175136211466737364333263446511322735765735631656273631275155271415114777573662622115346743664735546237327617772224147654344746534451573665575126433322155443435114255634325227753424521476642552111765336742737311764224727366617175541555662712272634346316366267155223722123434626452323142152261773416621274666634256572727346347727573622421374713663174122157151241444715155667156465217325443551535336145733631511432473236675757624437223526611743113445335244225677612275265271673157124537352133235445165514774211212575622226431215724415174436556137731244111232724574325151647664556673414631154624445364442421175765337713137413257116452625625434361273516467125135763154647324143252434314316221717435222163611136412153415337531514326645326432373617261734777251622617342316656141256361762171252434471642527344563322527727746223574662243112657212374467475437727425542163251362521251231774776642425744261431513732156255665542723517336413553267464223721665271452576556735444374736357437256335515374377153514321155711647663444314654672364115213715212161335157555355613213744445155265431246325152633155561125743573346463435232436744513625413773237117452367542346726312254654316236273433517643546511745443765521532214555552247122117763362153236357126674711123235224552667113141154733444647263625463663713221435742425272323525464753243676752646127737252544373771335725722177722116735311142552524326112413524126731473677765336761612163435157644713474372136135136345612526673213644214537333255711612764645275653375757723341151332532226647534155563564121235352645267254127546234573225441317514322347153721653434166543764754326664661374471155454447747445176755354515156353132415473356155164532373111647342412353517526325111441162167113365533224277142644711117326337767543175524427725325536561424514562271662324417152745623756537126237425657322441535226615567513545577465436663756512564253334611377337173772317367537155422274244267271577132777144253134343761417447521624734151577712457147121154247243535155334226574571623632447553747664316732722313564267445312776775436444635167446166732462763763425463165774642641453533132447723753271662465643711275671754155445754243321175476545225332141614421136467511261234767632136131672715755745773227727612125742133335124611421152244125337233447172625311362471524337773737465315567322367627113446346742611342237373441444544127665551753227343463637713451752151747254467513162455355723232451555563341233541117656567173451545315743156543744731511531166252123721247234432136316462512547742434462514156463234174365531536773552633441411634435763546613623211313751122215751451144237423143214512734266753232245651533131451133346664463176324771264477644651325224773373124535655335312111242674263523747423371745465767125414733315711663223316166765617541145576377567112454353253753127344726656635756115542771216621546337136732526447125414454536523447562455631574615347126571463131716355251241722667614473652355567434252515671167261541235363133775534174565713132275321157464675557151641351755276131246416775454572656123113742656773734544423712362363516223411211675263734234554714476217551512774523726551137532162623761253463156441226442525635236546754232647415641415766462216152661213671641535516316265576315613645335322475366211146617652352735571323574332254277262257524621577534273636145574534152745526617763424616613364147546152535426525166566441111435512517753635477217155123335311762333341623363415324246462322421645211264633364237554433665137235146175571121644632375664477422227746536642646321551447111144467475441246522366543717722146575554222455227446233623715131711567221456277255111462164677771251163447261215635665274754164372321755773124516416345743351712154342143354746727545443177312436264567136633544612566776126272212571673577153654124623444454775155256625544131633215471146447455272165742354336651422636612541372617374422165153315411262537676157271642151777321271221413373327231224643744715135357321662223357312167575177672441564762175543564164133654644177167665176652241651375773356167117765675563111315345244473412413412373753464515252776546726251533152361536316144354321232261435642272265126133571233367515742435746176672526116332662654447614521521421514534456756243611671363535711261644272276733414474642226736145233763113127357721375631425443265564765477426537771663135511142627426266342125215363617461764165137757673125657376766746255553477564565267665625535532447235664543122632721514377262427442232676311414526671332257532467673162714166457441664172254524513113424732716764143464772443733435761373664662267545146314716452242372561241571455373333735763227341526154134212151315727416722766152757463125423555356336222432257354424646571151675521564127344271744441327525526312467763626446632215346422275145313413614552436767625666717524255626117665121131114572474457116677427516322524726375646215236116761132175461253773661513235237145262561226234644333514127654557417566721755332765355661655344416374316374236546365163257714556316236176433416446165314415362233155156733274151767437172631154472371373524232337313434717725454624645327743317451613474415254746543274272632667661342174622326263513243535725715241557144316134517743227111613346415522243166651544175116371534514366514714661646355276226373764513563265555752671431354215513275543263651555646712247572252572246665163232726731244324442731366146755371513415443275652255313321225756247412366611416625465731753662575656114276347143673515633231321115127641676623174465341573734145747134114675136576324413616422137234734436351337263534234717332355152524452435544131544254376544342424253535472115262616237123657733342735465616336516544456134246574767537327344234217556473116777375452413441265576664644146747116665136463513364164557275212112171714653234654264541672332642252343721353737567155344511774322657252217513563611346126127651736165275256645246272215726114327135755414372225755366772674246362157627451513371147741232665513721723151332672717713746225676272273622145325626517714626426336466167264716677442454157112646625434562253743121466114116313275767335654171524652564215747356254321276626177565145566473342356121241232151131555435275643777612136152367563557434254157351443656554112162456631357764722265552442743262446323441546251477265521736256322354632716535616734526711726567635321522376176713454356447317323256327551471461746464241363334142774753122262365345661137513311571216412632172726425532712332312422465647757143125511672134275636276672671627231713773127656433344143433725657747351772661643111534717473151156214415774761271443254324542761611353243731761245654277664172173341656142252376254715675315524177356163421657515316116646423742167717352341332253773556522235444446373547613721427616671724552326156433524136272374264465254476325352533241271531257526444115646565651365325561615777544355152137514654516365356146133671477672664451123741567515427671167147336674115323573543215216324322554454766637226474725556417153421777576453416445741537471516752151741617157624532724653745633751246347346247733325773377163577724547575343356771462133133422515363343277544434612735233474765514147457443116467762515166564255551537565176156765346254134651446531617427335234662427223711154747232274236143532613636131245752164273537433616116563577533337545376752625215137176557433166144173777162514427441315351557564175475573164547415646474553423244623564712557531226156624277534125475775354247461316161612564376245656513247117347266357546277123612472116136764113752125736651332573714617536337645757644632774244555237322355452366263657741574352775147316244464313717725165513124637717725564136526431336121324721721723563126761644677612144646751253633354244337731732246635543767354672335752146342567553247636564355417415633557127116422424374722672644527714117121674745665271451754427431143245444751637467536634477442657213741446431561544447127163352263661636411662147423435444112421727123673162267141514442762325426427617326546552533371516632413455556471455343626367437334515142511562641374656625657524374712312452745715414266744736476161331516773573433163757364324244367441241631374613111347672426756714147325354745466624533165162663361324262556435412774273122221657623331527473334544275476737116217543736665222566226675661113635621214273726316247747537737233625145556161713537533527424457152677555465556132125477552231247436474253721644146726773225433315356713316474111773662324251422357251512542163164553726435617745154226474612231515211154645642557263133423656647551667364242426346663135513577566556525343476432322744636215255243225652221765331436111621556372714562124213736272722125273133345124235746352363464765416733466172534432367515165554436441677421574347466451256745517344535676666313363137366273744111465246134176436752777636334635174527334143717524723117142535454727163577272163576211134311145651666257267417167622724465573361347364224374314475571147721367415454116646316746535753155174756424235122652657442346743644352324741453542136113251255453211433127274552666577335354231452636237267745235226143777414561754661617713537551465776731427634423414425612656736636533614671442714445146424337423316576376532722456313155627663213764733515117456311526311316727437724214716163113166627667663635621341754562264662565564653136727155353742257547136615362616521637364661127113115116536631513667625425547457162662646632713312265127673651757257555431632362612325415772177225272645741271552614547247461412233536343463631132677535775745372545472142425531122114675362133477356564637312525646525255571241176144421361644447322161742156266163636766262537552167254363211737324332161353341647565335547753716433741765431526416341724733334261454664347622473427432245577126265745412474653215152316155176735623554724313733542712511331344235674275746232616716371443517233714344231263444346316444124136441114641656223767511555166473451661344433365654646713422463147137264727365153646441123473776122752555423242526563576136447342557625361714266146437333277234321313252253662667432476126742414534143367666246112453265162332726523753151775576155374213346657423731246446126724653215552436512116132165617613272623477543533635457777661652112374635521274571356455435522735354752433654334362247773565261627314551745472221344355533453434475244257136252476235612246522273116434547565645652354572553773374157634574267156313673142441772517462242671726741331646113322562442656247341336472666477722212555753776743175745334175211531677375615473713611534254674151237261141521233533677336116633656775173264417662353315127712467357767315745145363524347347576545545575313216645237764722172765532273144465463276315727126324161422745325253474435136747772421654757621437617364177614713266454152243417411536247147532267734443671243174346374477364413577364744157377744674244373753344262656275236232723347271477733443732551474227522767117147753426733121451714156266267275212445447761727231636665424354274351135224436552646524367735344712235747414451554527167152517317643537511257344117736653236277373647641756772474477374721542571167143357151421171721434511651767625343351323534637772442551641642467725267643227137365652137234514417347423146761711515122135626277334365773571672763575172663524656325226475666165454254453726324357171152531447215744371712665322343547624761712675246252547411645221273524725117734762256217275126147631223745652357676526646351374457573266765222212163657625654412471621631343674713312464153535764267352326776516257416235517327746764236246726633615531212334347137564477313317561445676123567475463744164514414552432235613664322637357131662241375537312617233527554456635763224677732112235477455124777516121471513614247611755651341331234315366751464364461256474446753324253151237567236464335611677241666175327416322162626326417434624545277241173422774536611564346134654611627272362165757245563516264656641761332457355361151531341736633632755133167627144127244357233536744561777172176421446215122515423262373312623674742554317557321641172324515266764252523462534721121254745455454772355534716417523551245723652252577363664625676265372113561727111246546122771737561671157352373317363115476573542521747615234575534245675564232323511512225716552267161556362425176347573473262421327464422565475322363623242323545515247536215637266452715357535416124711631535453432533461455325331641735171557212476755233655517675117511676531777616431737517671312364563447457651425417452343414644223661636613756526665132512271512277364255653445434341512131122353472731626162736562534651764231562175256166372141414272311633713332751667427644625336567663375621227315361355737574352452111613735766525653457436775353554646241737513472756623634361646442255462354723112714466726124651217746214675217411146742653451473576431111132773221215373637721367242353557761312434254641753722647175554654615261676363362653257161746324716534525546174471736755743715477363154721642313316313111411162231446251346661241163415446566171255164327216234333613457246155272122455466422755246574631436357661125565536634567451243227265154276155531325175143251613531447166774541672573226634616372446556445222223462725671463214467335362175237576162641711432717753673114636615633121231375475574163364761753447263275335174664463622432521266114334767671276735337673155175675337747137367254717177475225614441555577535653265264235766441226315774761647375124437345213346367777515773632333611646567144664774155545731265766163642755345155552236132261777576272477345143511744757277466357376646612517772176464524554322242227117462571712652233711454577723745715155256544677272436216212516416235754527227357533544465657522444233726741776762436176664655122646137134244144326327125522423511534537353161422365216161433115271654511227353522353263336741567546336362411762227646113727766153717655726725357355365767776514275273674417334373142737727612331141521171245775212316372362424642115136453152764325156324657444556263741265564126744575254321167627323451231653557247156512632623556214331425774737156127212474763773436412373117734646677241646245572552112414417774774727125652443637141312154753454157252737214516412654251566225542567665615367247436244313336122461461162727635727635367634535765224343635522423516346331715424247673356742214565523557757432266246565571613372164533431313531546535275276647155421753125411555521351112165774545653366746725571135245445245523472141634546346441266133767442113216212777735571736643341276517732654263255645161145371522363466564373532336234342161343513742747461144276232565775223513727323363416237153333232655336541662232513426433767273572325321371634274436412721642322465126267252712445327513616732361773632757162425261241541454774175571767115241167124211466157577241451352176276212632177716655613747115324244166362562663562454651661423247657515763343722156545734216422517567277624226335322115526372552632641634365322753255141767256541145342661533737466172172231714222745145227424472322533756167673777624346423752223477114614764273256723665273336765116417276637355151446266521431331212222225143652626635427664616131264576373761263247712162464317525214155444572117217511661321373115632477146467372443521763712434226367373243372446732121433775327356316643263331334546613172645712534537147412455323333544141541125517615557734667213667374451674464446324337727141437377145235673247173536531555511457364117771326436622575542314552621443533566333235414371643222524752225615551774455115213444516324436237176276655575237563255126654616516437336715631611147561547127712766122622526777774763257162274563475667142631641341656676235674244143141344522545723623547227754561115241724171614275752674563333454271463774764415372653442675342663722411721552223572736137753351664124325374626275572325424651147453275144437361241413245643757224445152626755712143377264672615351267552447247554714143423714541777745123136175616213566277554755642553166117561522212122176573371456766676667751373575626576136114174775673612742323125775611631342733524214412645356156657733261463156466341525243152747143462532141126154237155463577573142426634645654377274744223114521753556344141471521324647357631737315333647131113335721756652145116643341353474731424631526734655443771145575272354636111124571445656162531461625321343444135263167667752121274737153332134653253331246441672375414756273661216433546524614755616213233411523565153726527315715526351632114364272675556511371174722174276745464655544324455674465676337344774573346712467246615576432475215566732732272226117667644715535425237522152374216116273674467242674767275535356357117317157175365173134616443472314455562412242761474765741412752411156431545743273512315456654216233267454172413673135713617322155514542351412612336137417553662442116233416711343156221275654731242176547441474113625754533235343663531515655466667466142474322712264456245613412541556625451743171637454145525173357143727225426623551175761562727134327431313165543664463542634656311255325745423113652136333627562671542336111332717224747342337627764221132314475526134251323316374727244474143526441156222652413226132412126471344353276364635341254435737516644513733672476342361124637672676346553753313146475417773163252717764371633337276731141441776316215635731354213117224362372332352256753717432753175535774131456714773273256444764547337153232122612142466434733527544563215431723337516441155426474752373147151575446222247112642256477725722261746557113114362516547551254374567456456167536771656634752523163721767516561553657634343514224435625576564642236213637227643216171652537125441463667671766327137315471513257416615566766627744775555626343314264754742735722431217611446771427224531125621164375265442431513536413635321436156616452725276562533726567534543524372665316356542143721114561143573753523542425534135341726134523122374761224117433357352375646341412111322643615134262331225743224444477764355172511744276773425162522621366175367475215715457165441524763574433413325727575424367452242422164544767463442223641625233315414277765745221343531712446166551171171664317435727721264775643763262262732676371473622333137345755164457757527771453615221265152671347446432441476776632741466647114141723157231121174261337334236654765474536557751471545677234233532261655522437661645525651264556776263736312217474157744174461461321713645776736554451171556615757741436225732777446556633624532446611444336456513471374676442526417463121175155426556345213554436414717737435367245173724373746616471413346716734545147667264755626666214224127514321211327716571476221543355236761711243254134173125272431364154366473631334754356216562627246674535137164661427347227572525315151673712317543511632513675537346435637277255646622114414367224157653574612365361673353713744452537126571742671661236636132611153176757354435425557444461741767471317334761544323366134121347316446562212355717246263666712753727667127346157215723412314421714113124752677717523163315761272774277714215217353563124523652252672513335155773442654346625152433724347754654121326752645554726222656664243756117615212757352375472351715373225117637226153474355414616347751572474416334615434214776544443522773344371772644276765533271452752427157261345155655547151137346612127746363172676462661675742642745161111322521466746146634132447257461422775133736743736553126144773155344257454467764731232255756363731546425153162455413127725554256332215623322477351653556443752615226627343413547626213766465657513314437111466441273672651456336776353554613451711472677745511571645212673351452512762766547637615536636364432623133332117113213757654673357441155311422543753462457131465442641371553727336764143256225761265225474777622432247565376266224156717476372654177745515525457175777746677774315421273155524644354251231341713444674212764451225533767233234512171611131565626574173716432272322575627677571541167567344664116277651752621716714164231617332261167354447647552372715267123451557425272157244473675425536713252133653272125676265731424415144256655274416266725622664336243552457177547467473365553227733312551462546515554113661213217641225274357232717521777231552547653313141173315357457413571646533274472423153711757122371575462111551123341743341444615675634735122336774171434662442143646333255511377727773461536144447473727572532534545774267714461422735714161344127631441352121264557261767145551643126144366425213223322436114212513431277143763316551724747477642224353371771222211222737776764276745315514537142174317477215636634374754541545665335366417273177447255632676475241117741771411355372164344315231342347446417645315423261732656722257113155732563336664777355151365316724437776244133522667565635457352734124152474767345324117565513716522337477175732554375343135446413645616615327676336154466244274551343135666757613522177134553322547763452357442623743755423155423421666134162255661366131456327552731553363517317336342421242221535572242534654527455727755361343723241423712474443235232762716222547513273342127343266364656611175156377655356223432362151132341757177774423454726255573617744252352462145312675632413764671326544713226761361744324514313546334735451467415572435216556324267772541616661447772424413246164154442543533577571143674131656455132415751341331336726443447316731362171324347513476453717651563613122165513574745772213361356741254552234574112612243562637635152421643334745235443732135222726262257612416332276462615437532557676777142174215253345227272367467351276575226635372725134474442571637577332226167362776546322463455626551114122152262246167437614467456461112411546763673646727577435425435765133731422626512552646471353752665161224315277465653423541157336145267632552522316662245444317314144237316651721776133671333455772415566445456647643343577136546727575432277175162417767174751663633316626136545717717727424513167437224327213774716617651432657625751574424125516316464531735131545516162573346117141634621543631511437527255215313376172146432413755751616426366627526144617251456353353226764155131655455363332366533146764563267564221167513633526233131677136715537545617324677533746146152763636624526647437374611436433742235227611575641611263445222615141664656136623713243527251353257346745542543735361534562716444311376173246643311554243455312753224723247244474563317656521625146651176123553342664762634626544321541563242675165453755531475747235213627711616465163736777614621451144145247116715312222214675744247665512622434366521141431435763161643136411131712726162226725344532144674127222433453775677434177213674417442616353642523676275237727352536617445742215464316251244311455447325221433111654471624245322166727453516737226675757474347556441626117122245744543513147725663756676621244641435616333244134433333225242646711611543771474251514736554161671152226736767425466171167465455772215171611562427237455415263752214115176264327444371253761257417222633561223261532756244373455567642122353673766155773443171656554277335726325334134471711176163472536441312735552132334434333614277733753367235457613357113415124136444174727656637275115565271675442362665662656566311157777267745263563261546325357565474523421346635354427373141127671442724752754573145215521633612667254761167637154775566652334632661257475362317721677554622315474433572347612723712751543663433116356513664176467575751341615225153135435134174164662136111534453765632354155575253565566553211427372447246636355734713771212364314561515471356263654244366624356746226167235353537345613666234147662667634451644172572152115422421777764432525225414733334175351447557114266172653457712313241275363263723744131516417647155275133364757344667137172266314744646374772646325341452562523217616535336513455273451547622334314176731613347261527573675737372712615176453562545615266662731222622424351521714565475274377531712364612174176454316146517453664223523123543322163167647776274716257663341663712311315416235746774173526626232463535376123726536235611663625755222151773376161124675774365353116314414644573674475114452317622553225621471761427347724355437516142633713773255172213647573655472554265466713534145442423711551647355135635327625572634245332415364276672533436216512146671244113444234417163124666272262416711355771442361662447267476557557626425663731136264314455243321422365244446551411232511345661732357114542437677624275241141133263374151423374477237154167363613253561723464255177175613643235653133346725432241361752535761546263427221765372421536722632116736271333432252425511314676771673424556731247423263435714714775437776612136711321763475266175532533323527417553651322741747424776247631563552257472617673756346164246426114332262443344732666516134776517233562736273666165236753353233277646732762362277114722257514233321325533763213215616143115447161114557266577232634537252625723144613652522645747433552643456773554752124412215371746134571371547354477247312231235141411641136765345252323546752576651146342131776444775361267546435631555672774557347116235311263747715675114472537541474225253651761452373154326314344166674272367546676373746766534142733544774152731672217125172525137575314613726277421343253545367447162662174724777134463137577534644743254655455371651255335211766462717416245775272331163614724554166226154654514637755446141526245761775463734341345272716171725633623453166432556416571421523375761337546512761631512753146467366523516451551534716214637567437412663631776763463225777167142174372664165616256617311326242553213512332112647421452514341636251532154356542524662144472674513575114532427761351654435535317676517254525514752741575351121712762127463245643257321166261472572773152466363577633742751127371477716346264655742335444547576657657515445132727163726463353332336211756561163113424464132566613544742522632333516255562132724211675241334661341257745152454714164712745334457676573412761451276571764531217377161541137276225275275152273323353446553574416347167576127453621355233422154711721761674752243371114457674475577676766363611247352211111557441321231167551775132244355443577622146166245235642267626362741743247265173536433542534374471514241261261453425762256776346421244464474453714624231231165141155624465142434135452675715422541342777524151565432723414266542575716167576654411712264613551632532552631425257341677461746733227514667632561525775754141155577451246243522574465172616724564543766613255446176716276171651244533423752626435247757777756112465141545747673437445334342154434241416112173645671345171426752316547361472766556773423575574745513651122221175176442121511375167355667721732642616727112341151215675676112217461372513636644756656436241571557517757433331136114756113164241221235377644756571377277576134145371721115414474523553644641265125327541312652334712465262272114646513744242316177257765325636314375671325566417545545377264226645335561457417375241712121454241114753237262331747257453637265415715437456711226143112476524365176632617612643651462532424144753546127271475774133327561316673161112722253653376621571722522241241443762361627512763775351474621776374644625617117517445516271372352736431322343314352243763123347444426542615247776122421144371546271156347274265177342545126363223332266215634354421565416335657213523355232516342431112144742673246613336627645772122327713374637511755736723624735361373734336477516213224477214742172476721671761622145626637234544113776177276477623315171124577112512623544473556727627642323344535111474144513424317214446712575216447165545171533563331131322143111716473373556744467414635753463465344575754751427471265763332772535216713312553634143553216526661411213653732424122316731572572552173451164337152214216467641125335775273647745176617656742755617517222725113632423371315412214264217311113376541722242614234552273245447617664776224515121515136552217372261761673454257242145713244365613713714441761114231133467116776461672237426441173215553465265234313547413446466717654224143655417765645273252744722454161556421326713633247455751337655724655726721314621776674727625517115627612644445546436122223665676467442646272156122735156546436275353656466775711215733717753614352536475467371322134426534715543726676556516641763536471113677172163657532416625261232344623643243441533615677416532666262656162537573173654536412712541725643227267571267553414514772115672334343433552436771351162372162225662225462746555613132262571723572724664751745537143252532634214426776514672466462731214461721554563433224463243546567346351547115462114653316553533566414577411356571255676664131526457147111256335454233123646611555562675132765524257651135726764653344157457232656535651463473261636344312235513567255434714424517444215347211577636473173535221274614352474553546516727474335366146614744433116777511442175633557531246722224224114441561365642725743754175636357615774133627223721226546332356341247654247352554666544416534571525612425464751457324774751337512213446325713151124523211454426646124746557155361642273447713676531335113241771766315752764344226352274521731737762666156422235173423115377312472571577341674313746366717762323612662617676441144774715774245527125217211145141657242752575441454375325332757244372416656524761413235771176234653125723675364536742652173716574717621172747434232521727421372772163114471553176461453525654145353764334411632567645127616214732331764345537726674536616447744117277644337422322676556424511231351355721752274565343215666623167116717724235715431153553535734145647631465166533141325662554172767153212731635131273751247667366273525721115527656145372362321137512375576461455363233552613636717247631566635464716375557752754762754234221777313342121735232532641454277377341674115271734226424552272143166156671521624346327166216513132151641124225652474424344216411627714226637435766547164515367552563216172145754521631272141136316731551764551244237356564777732624613771557774327455344144737231732222471577243212245643347462664176457537555215322135353232421122167742121542374516455711263475675612215363523275232744262621422213533353645274721335154337472733276535121651263435232567636722252126741227355522344524517473531252757161715651124667357321613622216124236124245625553625616311432355171714337213771455146667734361712272534556166325731716723543653773347234744775417412425163351667225131646336176257512231556754177523617442253271353575564451152143434311746267425666354722241364626361564523555345172575111136531571546232617345144433135251125374342476657724432774571225431267736266754147523722572734561716773632541155237433672215575767657253421545462334525736635325223341623677536761534441435276622256531731113722276543777536321655533546741332553447141723756744627113177233422765712714472217573523244151423523423723363615674167573277553135377563331511277727676236475617557436161131362475364231161642631613412635155425164576726713376366647132757612411262254156426355253177474474745164222637572341256576446716473112645131177343462252216126776227574217217354514142274776766511661372333352143541677367157741247271533271474752151171227125332363335656115613122241463374121347613411213164576724262432243221373653713332122715334416624355575764274441642143676246242566431221542315372427126744761246213336323544415666671565263221232565321525355135134274634366572752625616443347744463256615565763256736612336344622241233611517234741522146174466722235437471515221472716626274716222755636771442572714665516316137334131631175257557255136667472535351364564313267216112777641125744212567322651712512773761212727441537753251442522123432554157134127216643677162415757335744756371433221677527171666622426125155337741742625625625677153175514446433627231724525316214424214542415767623125667517441173534311441341443754532424457571754414552627164362735311646615724474253355363713125746744625531177525162521212434421335737573513575423664725271634177573654246535376666462212316615775274511475234124152374445237721657437477223746355615361114127176253212245632477261616126642562576727255741311226211224112377541443571374524557512524445574542727276247711557537613346135573765626652563732714776242146726326111177255651742453276513416347352462417375363637151132562427565734376336176472527524613245225727457413324263534517217535457162131271634253426277222275732651254313666273657417522641445733762332611543321261343537774661167333514671232352476152153632647714254654777335516314632124312412732531332465346111564776547717324576543671536446524335112113145525513113366134126542362563211673544766415332733621766445767156534342114751255537746622511537572136351745752646644437721173744351325312237524572355357367764532554316542514264422267316225677155477253435765526655777511411416357376551357742636536521661743771737515644547753737672171275474417552346134123525526726146616456545712614436611564376114115654727427521365255426265177527425711763154372131714523443425566267265613234557741424761343111737177657214672665147541514724237336223355154343257324375717444476432176573147566627361172246516542661532256126711137256574364332527614221143645752177147416252425325737244531336556654536544126662465411164211776755447225647535773445653275475272146262645722521256754264735465761671274177252377264724431271671162312122747171221113666116116126247541654775737142327322142155613751255745432435771134252456157356473267143227111313631777714143724333347772712143536657541366767324652641752365732636724142651622321416524753557653544142336422153235117615162156434742375241556273623675413622676472523351336347541237672374564443515134176125711724125345725351643657277273673116617344257777274552572423123333215353167166116575745227432775426254553473475455142665631231714621375756316253671266763217211514733641462471671727736347371461774451437761163275271146717756257714167266366525434532432346364256774113733524357124266533573331147542145537266172537314165317523611136711727637114256565426411163116176177164266714573235177315536436246366115676457712632553435471335364165766745756131426772633165624434243147634451514423616216771534161576651327472243544565365431146336114245135443626275144571716742652267112646241171614363374362446776771276112332423753422147225214724743555111442657223436461173674411777622756254275437476627116751251134342166627372432234256243451675241567341277534161526443622772425664631667154654646514176376451341725124221617374366665526464637731442265456525145644537477762766744362131773621325772652651257764523136137511653554651746763171444157762734732471166363162573757365364651373543751677217477766125543343362656354445457536544346234651137336155631377253237675621377373535353136376334551547432452422675433747676532317364326574637236773311271164416534151141635651441171131256617573312335512216364465417645637576231364335466415154635612475564416546112741622437224726177745427465375513665247263566525412353223743523113637755345126751176537725277721273272145766655776651653513476635245462251245655533741312663545363122351465363147434675163447366672246216735342426775624257217277334355352125356257131457512531575232657771626645552537517674153577175715267165633127112271526776116617336454137452453563634555456347214142656633171451145522351225245572157733353421525217546752576365513676135516563314471376447377247431355725114465126145122151766231477112623451273727523727147664123234336665714325471774717117432155477477272743514674214415361567346417441534215676227772622117755717654746561251712121374426523424413727765714124435666431213545277611571471714357135762722477137111371431623347274164376635541663722265357616535143512466254332735243772752545352633262226542145563173471565323677236441336634512132473551212613535473435331612216455634754245411257524347447751626312617424265423464132175713165136437411137771231644754665214717664524641731164352667465176471566252656753162517717645555546615533131736246431522426314157652535132235263145121373324132737212127343762266771141564166473433746663262411322426617217266533247137555637171255135757616672316332277164174322724633635534756621131257661222435212514461765751165212361424666516777436445433432263433575163135134171744427154363736226745452155665653434543273567411225753277655544126464113372244476364523611566177156551717443773733515216456276323361512545256552143653632452224664135323137716232421113362614413117541154165111463614233425167477365374623524573253571153763622752622323666457764345372761364463764126515342351175544154372651146461332177335446134632261457654632155276331165112464613262156632131671533643553732424132251135342431514212457144316723357463237365455266435533164777234374636766434253226613223613656477172111644473726677232514171752752363467226521573435616327524623253421443435576741533475447143557723771443123721273552327333511674223357571274225673235152443534156413472622344234647366534111627461141433771323171241223543626676774146537571112336342636322312222535412461613147664166722264316461323572752366356676661217547415651121436665614513462513571532427543575573355135315665344321563536127676344252772577324247326673516517543377472551613437353344515476364614744232423766134451743613642242757372635243146525622113561724321262545361776657532764443436257416564424433332477565332516425566355117464136365255171261134513351163232644474222723242255726363412644122562313416744151665515155451263352474156753471667541277734143471151455564743143117237232557236243222177465171412436442731745761474524663473554111765361455153314776475745422223222141117635267567436343714221642146261354773763747663263715773221336463764373566455774475375527644513222643231216726376225711775456177265512724615544457262451216117245136431723466245353521543554612435361552732655314767154342724266624172375564326715734357653272715414743522354166762437526146336717574366414134133365441354211272373721762576221461324563173224443755243314135375447225546167645233747311735666343465142762146663267321515214141426334533646645173235317131536617643316513516327532473476563355452724676146171264333774544111667751541375216235762461246557756754132251162635434572725613612527222336545631414764356137521673525652636332473112541555637737272777252726275616173241724737157351467651512363272527623435443577636524776246466741743327264454537323124747515333531262122566243315627425376252635655266455472742424577231165452246676534314517763542575524462616576452713564464747321173652753723671172541216523655666343467654334354622654635114613437175273637274767154437442743226326746432351151165431566764325247144177345543542326565574125641666365222165441613462242755543641567421621475677245563671556742121173266436216243712222466374576527255711733557142373543562133724632443646134251321776254451163656733317234661713273737516615263266631745343443764461451442271537512577333517236766144111342414465755671363325114111523666721571215716245517421131315663576746777571536276331354514214574462462552634465312431112644213762327475567346116343364557112477733773563627441466725474424765751351641333277455357227562361766214411433163741665626675744252774436412121435415167141554361467244716217462224742751146465645662473225274517115313436316272162221654473153165627262133742257413572342567216161721325533151222611735213145744245471164411424714171623346153511442462732214615325421666563244271556653114675336272367247664324473471113472244264523447537272733273415664712531222657734753346667327717521615626214317714442337453464436436111742463575332455523151525477471415744424167435127326572241312462166641266323724176156313433572711665733755461771616547274663765164666364132242233221131617226744344363677234441173327417433326152722272334712123445315357722541232363637437143311142571674261215555247224227452565656136444516273117242554633711617422361141677212325574366561753634254261362412544435153133337622341176336471655422146442765751216325352211377233356233433421442374221342412325643566231574641117523661121362266554461551236241333621734763322176656133256274336627114422154254151754311331654535646211525344152157612644133516373335411344743261343546352534464126661715411747165342361654313136114216751154173737277355727323234666554563272515635654555621234622517256517167753457726511525216471317277216174551544534617431411442363373223661756433225157312345674135546127225161372727157326176521466471313133154466375447257242211151273625333773722477535642762116137433266655147427313261366561515657225774572555615234272252444133144743324672473326645274337633341645171677731452447366712715432425346445547526763722623735472654511355122263773465557253123217753727531641257637325353665316415671553541677653616353742563424314371765145244534473776245621243722717635442225765274132713242443753746524647537356772274612766253651533241135152162373775263112471655312325732351672271717333672651472644441615765226317443732217361554221211717533473447643165134112635756161254423751145465317732214723622656417126133712532626157641244442374475221411773366163751275741217541362534634353262577721416546512757333627354763153245337113665264116572446235444171724634434343664635771525471711123527252676265642343534265476511263121412431216353635355124714134456421753115753236114626236743417362461172666213124476432425776135274413573525137517454516425221757412172344151132377652423335343424623267715121252237312756623265667216316111345562534731622342131152713634761746224637222567663762372565263351313615621266256556676165614333464764667175624573573312773537177675353454366747217647151424444334173431257754176763172255512354163436555562371271512636427556354727576355575715167262224273747433513447211712631551162413776751323766611112465553563733434341514772773114343121517714356114265565174374632354434335663614423173772532115453716352742243614114523667112646241166373521721543114572523677634643514167172155567156421121774472143562562617466575546657741527734212451644622673357335443425517131316664267357615632375747422546676656376333325772231146271364244732751525247657714137141276633335644115633521623345452513476733616331224415671135773255524421713546557121721134635243135576571145134255341444237665217757647765577114741127444434154252347346126731546747624267515233577623526531526312365723775432721714357232315255414216617464565755324256571236717521413562151747472226271333244217362637154142121442363326652274232326534347463521157472477536361534477125363645653624154741677152523535455732537222627434613521173447325112265327523565347521721376327721361132175363117162275334267273421533243672112122252115533453635111425175217523151362736413716527762463323225524652147627312273271541775236111466714665731147467645734451361447247547332347477554257735754222345221364631671556114217716341664427646341422611531252343217265637634572755136223357415126756642745315613427241617651473312215471343734267225416374444176226166313715435477237267544355176726667151725564517427623242762764552561673441223375251676274563252532521775237567425626446715443616762772636624677551426321174555554655151642443311553414423212156555464467734365343714466117226273733412414153571213642643776525122464535242633653356535134715631166442266452656213257652464357467444664522727651375374542367346273671344556534563424717357473224523651446222712345656674734377743442575336621254751732446165272646126662764713317514747667421714727675173564734716514513665767551432251621334145727311777476355522746142276513476546636617456327425332661552211156151132116632774547746224345554451464676662763437544566113667226475174752251435612267161351413264113471737713664713722151232442262433635646336736342547762347456732325221144151614171167414463456511334441246247566615657325654545761446574527517462167722611275765143722365435574613615117336136652353423156746447722633576512316534215534421474476563243725246133553437113253723511235531355271556123144451754445667543512331417421635374512155535672264327562523526457741355241732351622777143535474417536253466623616125143515355716163721477261643564471742617422431634764112276555325423574556111115624226435424245111452146741262643475251122647457525643647766263543371512177135711614261177116373732773212125626117436656651511114274625746642553535513571561763324115723777166541332672661257422732644234342117243333532667633737323646412724642216553741124537462667637122626147136443556132171466353465667575572445724627146126145514362342723376177563511532437217637164477637647726477542125747133152612615662673534572725632636153435636426616372152244146222131414177142733572616234541463767747466365667137237243637176375472451426176211135262654664434375442614533344567215513363647416264545127654334266136556254134663441162147564222146715534137637373313626116431744735412226313343673165776631746431311444475621122531347224421264226474134727221365431444215325156126531234146316741225545367724626573615332272176222775535547342222513347577777631121764551574136277635715616571723124511572275135132623414365466171442432743465361564135464133144311554762227267345742621435141473551167212322265163345371176356534752713335564473136667117645621335536172651321543523534621373547312231426662635327763346417764716241414362666437425163744753355171143572771533416216513311545356573754253426776721613244331156747344672345145151232455121236123761552115513332545624536651664372352552443715263746432317577231675754121522457745627752142265254141454636764761454563716225753456625317376716254543734766564141733573424425233726233632571125321661242715432133666351432553216475432143627723312257424512244175642255547642174422453733466771665773451436756411566272531547527321766143637562531452635713175127136132335413657135232733242155761514736477176172626231456753563633347311417231514337576373153455171142173126377743624464213447251474623345265353756435146413442411712445165722321164771642126451461726634447761177477555176155234437334667666766736125725533455111244542532431344265751743217731244521174337475134632637341345361154365721751674371663527654424531371772117271727177351357121575734725236365367361236364365544247143556525354374426475725472226224413354211742425454256636247273553132443741114741377252217127515227365762114472631567177733175716656545155435512671672714423115613567375131713212472513245567251637671313515746276556263652616763152123575372242237147434626635342655236777223535531615477273621215732651674156733214645775376331234422512117224536233123552425537212362574535272734437175356133253522173456316513255366714627246617137476446337545474265761715667672653627462547527257746151631727316763652125111125122737733745167177465561411423135431325732642641626466427661314157333725322477572451232322443151273416237511562736763224561116227567514556624221716342727347253141231777563275216244367414424647763273243574334352127251534121227741275545217736251366451775236334354132654751575734662172515547375111377665654551251467652336476211341447146615642672767324173134261325243223627227426442163475125347173315617631714642267437332766775337122225436114242224341446347172124337172714347651276452416327541375225536173251472341672534512733565337356574744262351545336433111545563543356666234312134677377555344632356155167432734335466535372766213131731123216653532375145354175471675717332336673244747575124765255666522765765372677651562271716666561767566227517415465715125775644753722655626676445346747651446133425723426315363221116214257163546341613454313724746657215315651416577245617172616663524446225316266313763114376255441216741472211241557262722537415527334574636153237257342524676542414265661476722136164256737713265774563644535743662376213213542332722415257155353513445667355477712163671615354724362167234615716225517577446131567677722312113735675665642555523524417757272514375253647215771442124712143324153671376227627654277712225566164554775637631627446447562331157645445231233425362336316631657654431363376731562734776553741746423441212175255367161636333337312666111221757626725722545177142331332363451353245737115626742166232451727154417214334117613233256324526424276317733544445177416257732675425356353627365274346273266566423151726311341251515535264233266474675545663711162756464271527367741514314715715322161472663623627612244734436157377456536217462463717313157655724661654465535113474425132721423223417166642453723365171364447172443352346514117456365424262112345714241223633677525371117331554466713125311772154724726751137665665271743143351153555363516475264175212427755173442311663533452173613155764563247467556142317427611337745513741776155752122264266321334777463673572371412741467332465175155444124255337533672535175615433266611445161144425627527221664174174131767175647332475437627347757474563512216333574356452376274343623274434451632371235565425242644165637376563123147625367274351176573623612114521512351412141151151443733256737172347577115223341415717445232333676567671433757737531675547674165144153125614521615164532633351166573124776561651351244431665173644365176145243472526352341151555323222137763344525554621146124545251475473137573462153357272647476436215622673351457724144232261244775666757215344345762515735142552351346377755313221372265673151315433363471121343312621412626757624253612625762433515745137144127555137323231463754562415311114171675547764143542337472232454263445222337654321464534751236645322135271356121376152457613411142356225354266315333571662133257525437374714656312762151375622665542562364752714122321451253543217467716314576217552627745411732611772644224245113314411153345546636214545252773335166313636423475327613447646372121763346321652515416653647611123222657511676147621517715665711333611562553561652122732431331375556725214452456652146221455614362365115454633517125757114516345564375144647132144641654444367741571416173716223627115452171216417441342753515266266735244376336374441547137746664577315156721742426673625523412271333142753741324215466352533743215522717475646261736754247434664547747711465413516575211256754531445436515265536427131356155527564347211737614655572736555431426154114371363752532725714446421426236667115313567763654232113166673661573434113712371715115525424715154331741342511673424377742542251713777234525725277726634721345345756713565266715711174416533361176167357175115716217667443772711511555676377211233111254453755146335114745766112322531117514421244164472361112234577722612243371177551177127453724136216344715115172312333277673317221264576371121343565224314635541657446367472637117641461155641637714633714277112715144352745241341745437156176371114532146664727325757666515535656332637626231252661661641435234176462345261377576615763137664273232466376546527517415122211547263442363146131722652574726173713456526134746147246535331347751227212724322335463345271236335557467763436671537154674737752427366465132631713122473115112345314263776353364765247651352627452171412446716416232121266541626145226453454325141463513471552476327356625351175253525775744323255373165733733551134734442164422242462354556225441134671721462676255314172125562516267351437637645416715327765357215143217262257111622344454311322746476416744745737375633264417614554515412176772621424734374475743335277476377573644341772442347612422463344413671434545711145137473742216757356323771512635432311576131725743776317557642516656145162163657267121177755247724732637755444463476615724451363167242351224654334236127574643251176445557156572216121711475133354227775722673215727137211714332654655556647152563576636737562767455132127746335525411324314473541363615523345236171233753433711157531312557473273436625361763771155127465325656232114654142542651472352115673516737514132576164135252463252444451332145224224736564734342627454521736557312614564366623276244615677666517771551121122443257651543531571412667713115361626674751433414665164275575234435316724767432731656317757613355717772312546652741661676657215127126456633421724724724772123725626565447722224525227737232534227275643656162653575471515667222333126515433511161631173573634151364335772453662755156545127534674227137375663252672555267364144475422453242551751136766714432163735113521677716232737142524624326741413614614627134137321113545541523714314166173416547551225713256667231131647322176165271711437325347544547663212722642753127142616753341437747353437746457455656444171144257374651644521557335311632746474434233321173351324746241356326762475746146414546353167334276115346153771733426344654711337242117635335442623657355647773131251144671466667154271776677323331556356324213237751251752773326415233265615221227345442643375245171311171624146172646144474121127262262264771571156763442163266214433661357341557366623132551312754354572646614652635132426451766413164341143427773527751637635576215542655347237623521715617471333117415231265341523626516467623135176623141764156532312357353776516471615624321315436675743233214245237121554615462252145472633347174715174656434662167741233461411123634421355754363356463632712214617352511226554213142445545777462521762715773514727254732652732174372514213555266315112366551713432713335712431462362522411622166356722422776145415556721223431265751322633446276655667712254464373326712265275263651663717547277443234442153661267445666734654717244677126316535563461365762554561152264335111767227466164431121347575221742731763132641315427654534346433647756351644176641645311646613116115753146557534512352436327631552356563557534376443716541624112247226415577331115316274257751216237112572625125645674424423533467567156251653441337763435612357437335353442716742152435137365421364223576662676115357272132674133656235234315326764115421511234522534256721444352152634176232523167616617655323532734534447631331323213172734376413165632625141314534754347677642267663154672223667474131131235345344661361512272132546563776424241731767241471714261256446327656142157265244235653761635676564577614734447263661351555234133413564466743763461527665422724415655335122537715261356712324155743475221464375133352263426743541121743113644466715244677415161274311521275534546264754125524745366351471365132662276777543246116644124342146246575374452777717714425141446472243612457761762652425241426356672274542432537136262127262136727346613167252355415726646762754711613112146315155541534543641442632144352323737624617454151224417624352414727713513551267471153145513154556646217575624554763277767214562557412451352631437767655676465634575753171365341336335234273767556354764234777734757513343541416455153576165172511552115352333312116466375216466645755614141471672657411342121776514364612741142327462426541731511147747135351624553725711175256373266373132313677311771232747777236267472743244264475637744734146775755342657377141534637443751757554311576536434526122776474471446271367344211663676115754414561511551675236326676477214656436427675765427453352233254742675456447237712757226531765563753437474627531726251735135713311664654437472575534626433124465554241713154445217673446652417175632642341114634714261267332442226322667667364156615123766124347271567557615334226632321343617637716764746672434217452675176253263151666657212644621111731646274524712571512715461512714272731573174454446546416577771412514765365744571355326215215446637447377273663711553474236174761144175725413675742413145765376372123525455145653214532327167131342534273176565126562635753657774366126337326747617213627325236655657522454457452364756617543431327271556215362531226731174451572522711641361654667672623461431614125172442426215376471737113365717637764247171721672716726366177153263617627121321421324262771117436727771624746271443762212413566357251452265716154563114266535453411566174516533272523242115564125215115566451772155411613471114624445224162362611341531712112515351113611157457415551761173354122132414632761741517716236664376511753556755761242154767666325276215654453351415613323412234154175774342671641543215555711416227716454543631626247625526661513423452745422635452553436435416761436533476653337526252715555464621513153752416467275517365134617667376713344324254735163677272252322224562315742446355734654272335551346617373657475111615326552337463244314763734554634567554617747475246546241537224673751442547577314171725277121422127254431512434245241657772254455414246236573221744733133441716667475437411632146553155523535533473246277373617564173756232115465712632672263342163457314415364164451741167414722251222674533152617673112763456774125314156473655555266464743532255715534573252647565335132426753455337717425733671546252426223661314426467254544721656121653242314166635752347141137743131565725535327725362366571415722171514357122134662111652133535746227566517114472714173277663367273262742152533124444773752321441667175323665371645444642174341537547371766517573331136357714157144714172144734477613432543152157657277415111452632216452777216165215165676153337552537126147666477225724633365354526521546525466311173656115753426477445526356227337625547444616546623365323246212264151725377344245565321746677717514626567425131721644751547442534235713754457462547344422576643366166454123272456413245415413641461425147351626567125657421626154137733151144122724612564665474226132441564217521273442137711423246414463213156315543767157224647421767421727561446645764776353335444515721777144142637241177433211761652143167564647764114156477415613211427516114213624231112252743465537417422142434757277325632361154134267364647436366537224453677212732772365421371243375753232263576665144777241265524212536754243132645446562512453174457246772275572437225566644254613731527141637164125675562326727313466372565674375265755177171222461231516376137657545264314527176221312253157234222652413756175611151475623536357555115425224726733173675163131115626661413775711321722547142253756634764475167331434517624242447232732562412336512263146552137264567736371544325634252141455473743736756743414361725223371747354551566463744473675421751145163551637676214564254726723127737315511562473162477212774436423465236374555764235255466131714353767527365274637354224736126664274265325156732667472175721711437166722646532631771211623123177277161256232324425537532134553664512731543775546323216423171461151443431731614655266742342321426454136133325672622535654116362121543457112673275347345757576123176555456757276734767675756651167745424412333235645735523511517513365726253516364276752323474566715621557721661317325547127665577462451344452574436214216275766125453427775244721641263214112624463635626453155242471723434726465161753532146773134246421114163713111564712771315642514635245647167347641131253757222624552436445561464617726334457551236313367137217677673546274153217251516522634533514171612327541476647532115561253653754216374454342314435375332721236747617346662724567311254565521416516534333645425457476244127162142734477754636464444457262111216321167266551537174632541161372145354272251333443727313411452155524143461623267671522264441647432136316571737637113331115373345552533474576573514741161617155742126465256225416775213375413171422272116622562471213643414725761327437412562141373551132643433575557522112216435714127223667247725777211331275117512434123147152642664737261671662145641266273457756362372372367514461426237476473333562713252243772143167221771533713215542766377513331344344411112334771316346237453617554326347562163224252174153454423256712767417732456676374651323641442552614517766645616265326712746335526377476264745773425326624671462312353361676315761612515374452513157377561321236221572223652243467517576642755776145471777114463544525411525226224764764715455732525256447273716415124525463376567315243463665445257643571142717742766325615361116212454667261365564326117646657517146644562612452223745121717777125612367552727242545261463463576366626713126143427255325553133772755546251174536554475263576276563351216425262146427236616546416144275136746254235252134617651475215621626445767616222523511667412274377333742742655747431627761222661515213517116514556632641153352443165436546521115772366465714247676353237212232743371331122457446465621632255462712244257526562532323317624373575711537622672764327667644314773514761742143241763662647411771341736134441675175354662622712757743756622721521366754137347644552141643234417546554361234322116414417134564652436166371143253115576672262746213131172376533246125725144351372625624145737365371164772346577651554362766235756175566733572671766515125747556475245247431112227772614371466335163717153275326427527357526563311572511221653626517546622417131127472423513165756143726116113225265437127336134747333253173315734571622555562355312637137477314175156343211357171355362332364174511456761225334472232464724333725162651613447217333512273737421146235436773714651231467754726132656533432735522646716724426334631573767252634323335126671635227371777135231763215731622275647671111724547746261173366577353453464555343237167176534413352717256735561113722142626461135326355151647742354562143113115651677325511516744423547241463351542515366547345671154271447715263453212256113713731451626727546124556163615275577645137722726622416214675324775173616672213716256171567223123533135626136447375276254317612376673475271256375135153525575136626366727156617422231623464377163123725643644516732233562111131533745542125576513636315637643117323277311262153456377252255667621161212442556223163171327176163311423676155677315716147751676337373572477271222113631747746663613262442362515627313376372357542251424654126517652112742261356514656435741633711132326445613565252124622125517513156634425764512624427621412554761644326736576661442435675754443641462366145145311654334241716412441777514421152336773437631462736146127563612134134376363441745651563652132256753322452636733521661355461726724266534626523214264212762164156515352754136346276537137257765646414622336264274167164212171676537232566315626334353765216376152276444276772735364754674544463713557311111374243542232726554745332463474634341536662153721526252421677464111264763211513655574655656715427545254476647246716473271272734622546321176233733574224454541333527542563376672261774351735251443421617247137266267734746455612355455312316445275267754731533172637367632666425245334727714423676555547736777624341743754325775553247343244325652657365737437315643671335657455753712575457521315775737416564262673144522664134526421572442777366574265455157642474663221437566337756633351334615313136172241115174771335362163624327147454465276666621451676351712735763523253242734272271227217524432115343757263613133345276352715225752451477151565112641617717433341525664672152553657247251215553624412212517665364211335557335527262512753742672332455144267651611151467665254321667513122721212227356456275736725665371562714247216254163667661367127377612226246763413763653221233254244466333133573113472623146555113652675121411131512763376265775262443166347464544744374123723452717436362431716423742464157434535571347673175646154423122175562441575655265161675331754173751115375164624322521365553272667712531447721464546714553274554464651714127356643553342662231617475477212247735473746325552642672442463617524364671523417564765232572253344614274466626776574237327635153654315743636647411223265242767355715522115771751764512337436464265647251661766266547763636575124611627116214134677676272753574255456452472216575576515124313641516465625237727516461373624127271156632456441423371327773516425733721155133266435457661231113776312327122542474253333356571162113255276443774432766214274413614222641616317752247772632263564215613713635542667767343663252574454655241715213113147427145225562351715276611331756122736442231567767517512555743745151126343431331371353631436624442644611145217351576162235227574661441656377434416225451272443752726274144777631464332361526223435256662261365534157226411323756524473633763636255217161334623514344641351635463315324446147331766462521573452713445713626652157735326317756346524224516415624637571531445362233665437412273667536572655524151447214345565243117171477242647113144612451175517531661626124146553234472612464537636722545251126552122474643337412425512336542316722153547113745416266332275446431656144154562224144776136714647736653471247563171477323233727124712351464434143113146471773115616743173557254666262732243553234221632126154532361774122476132555547153677364623712434675521676373472161127472773357636522512551127325537511721446343314456543655511455436547775541171746522217751126662546636323333436372622721733722117163735372744674176277314676227227632361656257657517637331252175757326475332216177274226355564372325274726251262213536563343172435165557515725336622422747257524223712173615441334675113731773436741361652436651352252554665242256374453725574731157434224747364323772364255641166132643251271532232572226614723626273432643646153433655656351653564246433726645217516273221376654361244535532454535464715145633353411173666225671336731534337765347346744766545512575552225224267125611416264144324113246771416517212254212517242752476215466337452511121413541646226151716533661152275346613617522536636513113222541374276566542715672654264527664135544323477562462547167643542354131472132122367554653751235463176157563676135112571176212162461317356756673474754773615213453623652567556726425234616341676272556746713526467112664431531557636633424716746667367642726163256133374774672662532435731537264267427131631211553735522516434253236331335565644346122313167515731755212671355172715345744724621725537126165675267634531123615617563575514213143745412524115617766446211553156462323565116771616443455443667545161451271162242227565322511775615643662172236442427263554744524472671212435311654672166553325156256377444325474763311267512321346317264716557177537745637172137157715577565474346334227347563571571452321761425353616743122371462631253362434373663466772332577774122341415244534214714347621722323567741576241652263721712175231616524663427676244537541152774157141421772763577253347365565374377343453643223261515555444213534612246523755473555432167527213573137623121757336161371363374665261262574672745554625143413261611741221521115663464172452762254457413464574374533343411727235574645114565325771345676771724575352173652415216342222122224774433633232562214147254475721411163457172242463267327667461533552227137454634244265255124271655267313351144552212727533163351711743411515264324516573722341432546776151577231623572273341413761667576565672274454765433514174173244133744354722532375657451177325142445113575751111716654754727434662412751567661773777375171144543615772267267371761732642656333724434754172143332426513772645151514222532146471653523124311246316642134332272376652375746253774711113647177321217557353362662352474661611743765642766217465724255553745231547243531563443234652341745462535563146325652174663236243673267735242273761261761274137531746652577627235546634764477452456454734627753527324724453331677644331132127473525237566232332216753765217361644466555362524745653143774722115465232761243531425732321634245114546746252545577413546722356251534557365451321361646652776725112556524361524764141725136741452531522151433721546632445242371563635753216621115761225651221311665572134717731537653457473633131572114616621774762336476673175265467741742743332565536515726644323421414722266455321161674552124556731332651425147157446135346725637673251424131256233745573476261277636667314422434141721462211431513312432114351176271331462624676237514124653762572745713165665522573226673213454657352677457242411723624244512117346445513526661164557173546776133666341533512632377317665565561257224211653745316331331127677725747571555763634651613726715111576655634544226615716471312213263752646322636527427277321532167565152624317173145155127174223373112373735755251157661517332662273334737435263472357441574772213556152224654323452526676317622226126257756371746131112742726247253777115636133646146343545452317571521314327614427344621477721171163134566546171146632111113224334647326174124341134356556762534222255266571325431176644654131452767516366522355465362157552531147121767632161641466674663235252364474477716172132723511135764113753332333242556767442546335166365717142376654453526164131531576361216556444112564315121214265215235113161562131672315445275715542353761746253344675443262663447575114211136562363126456645212273725345362257417711766543475616371745515133113115213177547332372376267663173514345665732166316455475465726461134612416616556325266745537317312764345247714746566362246176147357715531533237116156373314337466456232416632653651421152425563322344614471575264346444716454726144626476455214631475267245547565247716655465252322152165653621355366354234653215434632427623752617655362766277143535711773311573461336434465563757641147472563242264247725565273267374545633147276714676566325635674442134552471473173743714577367725247625266446656364555235265357714176735661567516264721656375316737522421616657676271465226166152744326576475455314543375213222426257121167635376152313223455717636752761153613511151364641443537425534741242512621767354511174146633321445537122121256541757575451713257732735257366162251331771272426412716544664412737262462422754535136723472153256265545677776562465277741155573433277161771756216146234252223465735734154143174711735462575154757553257775275616772442721436224112526537267751552136241415331651224167126114272315132373727124246756661573313544361517123736453357257346767344172354355761627265374257247175514142471266452477221747163774455162441461336676532736734443722647113262416367263376263527232326437765346266215434263535562715752677423453364141556242631233721111153531161464443357652714277411547112327367734372271572232363356372623652756417647126252412157126371676165136734646654735354265116217726623537114772416343672574325437312675676216551324773363135662623112663524573534335673375263366576766341731314141537177727445236245213275447144237237322277122745466727563467112246362421334521476277155525646274122465632224365124231714572521132572266417247661375416255347454724342124137235265747555323471162417723336442371265254726356365646551225762323442256657616546323217423132454627746644735523545777143446524176275771565356644545451116777471532232372741734427176316375456521634275373466147267721641517462666375144414321437541626711151346167614356111255122315315313357357341116637645461622453375743772737137623717566661137461365565767764166451431417612662711477376475174653635666651147441521442411112677172561557565641713267421642732732322477467254465674737115327633256425474413742542235257613616334116755427724271424342444635662312317162165514666314641344134364626646264636424465762216632362155752667363326675573625627147356753243273626525315667461576534333667317563446116676645114661334622663643377211761665477256222514763366625746246246675724646726426666661566572336237133516322274273152232772346262375557511731467766321421745574745533514611757756577751156621334717462153151257741755162155221522661176414543437534453571413675174214155531115762527217352543352673312265366274367311347423652251711137677517356377523575174321412634625615644613556247147413545631424215761353732755662742226722164414124363657765464651173776214645457115515474152646157556377775543654526355773171115153714773477155641476366617627435126537276175751732751732634517423475315426225427615712275765637377147613635411412213533321225244162263547311361522766321534242761217563425664736344377362117326337216651556253716536475716737674625514771726337272253763567647242734324327352263511726464452316571234577524734315516466225455336453242125421252644713526313247116433735411626223513276747453674447643574666572774413321277656423427771467441647272643674552524167267236273451312565254523765514423555416645166255762445145625261436416263113727427763471163772766627657167552534423164263664162164753762746113765273732222531147644143351363552313675136332436433137574624172334525331364431363716665557267424115652772455415615414252261343655542742271732533413232462517174552155476473765226642177242261646263624673162623511121246365563571774554164367751162116756525775215653273732637636251255731521341237551764351355262421113276344456435523262226636217212622566125767453161222216136761344412424124161411443764661616732314646461777232216515215465251422727757756773235175635364123456557656544444766577374134645173162251725472712753672425773424134341354124434642243475276551264512757372634421655314224712227572177736133665763624247751174163463376371671511163527515624344612253212413465675256242143661263517721372741531247173271671116371314434631113137241671767711632162535121223547664755143753257466532455666255243632347755313342235313773721444131465363233551774534245541624447416356771457457243777565547275355374213442317325635773667527456317737473533666453165543435673434327356533221257575252635415657413342335566724673432614465153225653775565556146512773431256612476677555423241121321764123114243134122155512533666756477677435752464662433515274112743744117714243633715367177521135432253245663367561426337323435211536254654272251334261312566471543451256517735161516541136176153532651531444263334221255256275441746123256715242765222741657335532454673664521636342555634661543111611171544636673157744343536147231347524127617224322665232236162126262573665627452641564671516731641131427222261444534235316212477414657572131176661314145775146126615565777121616147443134757573564344743156157774151555264353532356663371316225642112542167452671577747262223111311564614752243434431456677372342321121616234617244212272222346621743235242622647377517143377253346772417561766726116222552661134123275245453245756761246525541354773427156513427427555331214243643324443224465531576331343777375626454766445322411335562173234627665354222154215441231547164546445212725243754421635721636414362772314137326717264656151723441542712425557461517276224416753151351434373431521452363144743341415667421655627174444742436164135734165244145146613316563473126632241176473311262432421662174776313533364625635111343532652451313166435727523234467644142311553152614427412744473567115356333631133564545741411151162637573266371761455252323521657144233442411577635563625271365472734371542721715563166625654525627361434636741537147631516371764232376163666152155752234763273515135735334251555464527215544736442356712441425355747752447242726254156322374342236245312236531556275147417734351274134267244313242646676672331367762531545316523727611511745713613257445275141453435526723413114533477227635772456237241513235511261274276717255772725277413374413534265156275615117631612242612366725543454145755641732255446776671454723421126623726254711711562746441115116171514422122214474561344456166117351612733355714454427275125146165167252627521256632663575412312137766267233452454534125755111233232751114343517314726515337362614113123661143173575466213241431243466745262472753521532767724337666574223572177341536124137462452432755435634673745667463322551123431264757437645443472723372323757176473547434217551763313544233243713467434165254252573261713221612141215635542267341756757461563771233625412531676764752731176417523115755231427327626721233273165467174711252275166767223554162732651461576726645555677254553167265224474417265752542566355653613336115546566365431621646444135472213766146664551743727765511447571277115774351444757147621656745156166567336413377225326415312117737725157631151274136776527641755757465557575735532332314312516314253142133645522666121661143713442157462656542747663643146441124441317576554751146433651615621364326477464153156623417471373322164744712316725621253323342613132436126267263154173526764245657122635553613117631313211636415427723472162473567637242535576242334614712263642534651233614637162544244574751143542655356742651246564334723741325414342145434542437763566763215666233457312677133131421316541321243622542731745262433655441612747421575171376734117575353445751613113713144647462441377633431532253545262756135262422426761144372656375573375235471734523641471556526376735652421615271564723112663523417366432424334313614216415767421557413564121542743574545253126263344713445512717376142577112142316171454325526557353533555752314125262614477244173556235743315736446531317224744334261754216712647633654717575331656665416316414467765377457113172757521451433273272143772712421537413551734353764171511612145227261447542271566217261442667412441575663213262174132217417341624615563173523632346551622567541242627231614116432311473652536753136263454764637261242726212117534463637346722751114277222433326666352316212316531167112345617676634765727261233242264437231321115424325234266673222565511753253735451314642632245534326333757354223254641244572256511354541616431766554777367675565732327511364573442132271271657442773145113562136353564513711745255653365755261227615276577664322211557364724246126756725715557661757715416143665552564355244143347231172617275764332161614221645771177372311126543742242775763562671641772215261676733324133311572765276326156237242515111542522121631414421355461652463542133246433573156323753251437114221654517161515536745453525626452446217127211655661436711664421775616623644732522554556634217477362354641344516773442225755136165222516533334124451515312217216641232725457253532622463613725523735247724133475577745347741624227633734441711451566323236312733736322166267356525447162623236522464714633577542226126332744631766367753442311632645611715667677446544111351544132624634313363346215625763131644136411241511145156551441664641363233342522735453331475573271236552217571675343777146516235352246471341541314675611672415344452333467654715476177256531256715151331415176657466425467526327145117241762661627673343334167115626744253542624715353575325435131744553146322132557147663547364467246453476512171774174461517156113167321363572573324773154163773311454513763344716416733442742474642333622267661532445772216556243475761211276353536237462341266525225445476424766722767324333214147625454335735547155271744265712764442166772546563413477127721326774214273361247611261213115241241571122467424516624744465322437517631717761533325622471323565537523735733115451253412555134711762465261513457565137324137531541126756727464444257313625712266311376271251726343465667562712642712623157343117446146224325412633216433551251216133644317252454776551246254415212677447356524224763227136576421577445513355176516742155735577556633373742443434442546331721116163332137414666432517454666767616253457417115752334361161661752676354226237135367137145343442532567213246152522624741574242435673735251167351453157327744117561265613712741275522545453263232351151353656717553131615333557116234372661552646353353277664776523362441637233262427137727517462717165372315624176172214175735335255176336122541342562211615341377211753666142177246576777444675525532221235455413353342426116561454676722666536775343574526474633223135424267161625116657427224635152725445465467271167144765352371662326756544564672716326153212262533432226775375676632441171421574131463263133732716163162244423137277526742334624434143371633355465441344511263747465114111356125662131671621335273674415443355264561647633665526115656423761727415463566265646657355311626112753632211227624573547362363365674156511622674454631676126564353772742134435163566666672441116527624231614423772777651134246117111625616361752351447452176621731224716745753371335473624525611632544341156416642473165541321425763447555535313673373147163336236572547432364563213527537153716566744616235523134416463572773651546146752543157621676246447744212126635212637622733756733637361564466377473467663151144441476454143764143573471125233677647516322632355626177371124415371463316612737532553472625355716164516371673567745215566414216235777536516275372133521553374431127173765725645752344523163625641551256652545444517262467143736774732731114741332367446664156151563776727525551127174762471317467161173154623145144543713154224122342546332645453127532756461174337615541635572125161276155365621612566642332744463613421247743244412467633727575166441566563726566626712335375213161346136547317412473536367211611655571544576557111553423343535614573547331375325365727354646431177365431451223153545674367343463513465423655253431231661625263545114756445273547662142133762256156564522241625515112325523657666545336543735615326541333737737625457444647532364242476772175176544571176251411245415226437257133514724562624642524456232257152535121666267665137464326443551135546536344543246316641625273416154747775441716631624621537271117414424152263165141642615735746721562111336646553646721624422233272312345342227474417662425557217532776534165236666766123661721665165152467113113171712372474563472177436451151351461712361647376415561335543662657141267364414256724161635325572427647675436163166615661533273455541442115725333313113256516164631176327212755417121547421341134355116131237177773267122366473727647454416417437746751211242454431417257723165172617147154321665145153265565365555472427142242755574113572432111757322227554651532344634176311515631163741346532755452161123264157157454627463671545754166425723132117462541121215112532373216522723772257363474125561732452235446737355313554275754251415622365377336167445174672427551454573234377276143752553125114242611135455474322621276472322746127242171552324426537427642255767713224463515366353334412527345437661331623462327742374666523457355511573742213271342727623252217652143546667311354657651177517516734217276331366164242262234315312622652575635543267526652313244427525776562356675647445716342675757451236575355142217771624124712167114163631355676677152574277475527225672746545546443624345224777121673111664532415161526241741644245445544221571271452376414611225663447163232371346616551131343243577616133374542433317424661115576561573134571643114157446661531317356763343431742467545333576737775764321665163442516252533447546244777376726362632556133516453317111747643411665152765346174435447453531121311726225152772444272156543644776217723527721264675124717265774614627213315323124537231251777557242352513446757524657116175143176425617343357344722732641546777741643576134267563776363541437344521777722341437736655131275332774715171424666663541365524447641441367333611761246415167634531567715652352342577351261165647136121725243517161135355573277213336341355635654651515365624546272135264657544333414133736422431545365752745572143561263745372555315774317257375763772415344432373114536555525223534716534376636146634572363736413713676237214232234514644446317511261124156562614466763537357341462575312161252121727373322467635715646745273324316446171341243755532337257512354322222366313617554627645725363715121267227611676361366162627217712142263145235264432337522552664267317625451217543117173347646255326312157177265667616145231157622663262112237127211225642151153451661712336247361373177216325653751263316243262321632762734412611136476214642764367466752423624637517531134234763742741212465251231215327153541246332452732547574614357364641155622266572746136421256115573677363613562766772654662613463653712464642151742226614175354732244524112326532665446267134621256737441773547145613532454756275767744734421326227563742446476276262775457622444334737175734744564154512673147662375325721525175514265355762752312154747121631471127765655264326643246251345426631747626435171665122137364736632727113755456645461673632336232545556743721615455444137464327513367164456547415262615644476357677715453431513332524327751625616711456133275547712354443545446436576412733417417754322775442315354215412753624713556656532752416231113271563365644443315524764711213443612352755621153636234736246424776333642324531224747554412443754521174247623144552537261325723476426252244542227512431554366746627535652436651533715174643446441515214451356522734555142526363534366645112665262736554626565137677475215373231325362665443156237376137566111333763341725243277131133772723246655212424147566512625335547175753565726543523414716433311437134513226763446721421375727762775547161761435321462531344242542417335525777523573756112547714255111675474447136534345621623341263463132617522576232135237475624163475766652232766362125274657275456345243456665423646455243164741676422761651434131666573123626777752242357323735134114426722731625744271242456362773546551643135742362415763522122416255331754441777141757442655125143676164541541566764732236752475766666433616665664361514571657556554427671771551326311661156144132563563773242415235444543367712251541247575135563426714434345774751265355152741374214667325114412542476315623644366764117631373567146161742236675663365271431611524523521655554344664423575767742424776173647475765431627515573745435345743173572255256237721414271726522723414633461413526551217322264577241734313343735574634565714455512575327565257747333211613457232512444333751654626251343511644726353777265263756764231422515117756445355113521521353315556461575351117632214377524166634514555372514677731577643351245515373734375755662742125453571251711224653452347455676344724742253316174451676644435372115413741411212566657654427241452234442572724213211165636754123435712363574315545656531346152434226466635457234732616743662124637616472331464267451356744266753633614157136656723161666316374571163562514412374723722743714354463132224664215777211426126455233446762557171762614155771747453646635173124422524142732136175371375116537163355761375512411141271172646665333142371151323437567766254134676274333347572246225125143657356367622167257563524237753351216145137356314363646372366534755662575444375735411251371364772561732515245657312546667737336515711172617414566732722624661552344554745616464261463565354532676345141534513232361657525162463337134311661223453432473323661134247572761713447114264617266312126117476417154765525175135157472323353234132641532233156575635767435741365663635362567557344143126612651537732552641726154567163653142234231516614126634374522711336461273365266661563224666161225763214633452351421752531547772471722416145372445453627115274354556137634454721655351352712547225237222767463652477536626214245651513112262446516662465325743541622233552626617577737671576762164316664157141237244323414273411142741557555611635351522352514712125373452133326745237464655347561227654171424437154133517355224356455255331613722524716145771436273722566567252435246264653725645351546424542616422342647252137775152734477761634271356313617617414621267267343773132762354344216761717136274573127215434177511576711624653222643555322641623764765151435161445123556142245454153651635534672474762766323161575264451134534175414674535255345265622646422721663244631556422147631135166311461726321477241365452574315345524516441522636774543123563221712473241422515315171474763476566746372534625566216446254425464351227464255634654432446221756424547615224711466251416341436371764154566371347264436362346275374772561517555464247167223142772513653145112662376415337654255535124337151337661522366464112676317144152125274467727666377667431535234356217565651647417366431425341717622617476552533572436517445547621112153632114475747521666552435635244437551317774167366134416163777453437651662471437334774623314251533512711247323466757451773431523214326544515155753721122366431142614472143741446741153422265463754413531125253141266621136616214745322433267675633415523423344637562736345435127562445617344636726322357113534624262763727324336272426321624427146345647573345154227263355736143777554545111517332262616322226536675352752244361426571542755647427355564727346512373556155552625654432733761642162357356733336724356651357453673127166661214725464353511566245551666446677473151517152247265743132717577637264446465622641535151342333335255722757441535521436464721244173514173247334176352137622746465646355572634335163316471675444342266156241775514156615666642275435333267357131545345246122333375742461527433527363216131364715623171344317563632153165214726617127253775664347465774526217212223241541447163132732414345356477135121255364616713254712431472414135363712474415743433516641172415334645224655452724415472471742576262614362237441171651727214564413673343466523543737142274644375765213671644231535641262565325723555746232545731535655234656461757644477754467633431145534472517614245143522675241366141412663644471276561742676635542773173471157371267455545541314415716365313543561627414267211753655414154522717273145655715214462133552224334455171656361172657754431562136673412561421637726123467455751551123412645121233735364341137317531112216712235421251614137252145346477472614457675776312431745463442472762347331127762245433213456726126463416437546663536767234137143171453315471467743642675421446746723265734764262455745677643537443161673414223361265745753336414613712453765424534241746412342734234472117543327654167722155347773343654743265353673764173631647215663466614443122427241534527551237617472245561724141223616773737111751175753756574516211777412423531652356765136411431541612164446535772172615466552636721126473466266466667437315667661674643222741526516651622371477657345757154347321176277431511676643332457215137147757133275474257623762712524541551653114544371254653763245722177256577263614752441646364177377435215134516223457454414233174147667413164616154132614326546353232212517272127644134456443467724144336455671765367646523753145552114142641131551645527134443221342747343447614612454467234445671176733376457257325765127465355556462632571616541547253312157636574167336421414561676137346331271677634617661437411334477223453633527322277334316451727753217574157211342416741575776673336315134744172432245216616616343173725323134261414335236126753273665437143462443276623635433164545327344774252671654257733451126563536327755244333751153311524563765511416234676274212544526276574365446452742672413676462212252511464323537126257457416746175466426161343255164242324222231777653651616343163511743565612123717464666423131473577256147252563443223764217451732757654773263536241451211346332531626327745321346414434652624161364135123765212153536234325135354667412711532731323246671524342122172364456743774437421562125237537767444431731574436526721555621631575251444514261243145323716272352777234616346562167612223243461111124575433211521412733251631631632423356517563534721455432525522164323374452736342317263435221437162421266453317452417154767753153335544513743121371415116213422764632273411124253315325257512721514644316337646317742667652255235522354216214735133312316625441333562172722426232664734616463516154274416741775153556341226577416136616524614322677625641521662416371243643315516571476442441711641676164625375165225762245357544535554136777625447147374232216773562317176261135133764527747741327547477426422326646421425533554632512644526762665531773446633417761265631547137713774451245615615134631175772163473742156547431345637141652762331724243137164321125141226325457563377622642365411234346271146735355346632262743776532362466362137675461111325724671236475344647747416521752444233357221164452545526571666234577235341367734212775744133757336452227245242773372717414122755623245271736236567167132543742445153672176122661617623277413761575776376117367372453664744242322231761671722151226525112647772234223422525734765637452746737252715266532336644441576773516445736465342676462145126717277255757616554644473617421323454572277261236623353553636171536215335364517472732226612522764575442211752743237362353536624415252374473676322251417152655516324564134333355574644562157622544232646311646426123572126212376722316137234277711351673424644536177674636357367336526161555243742743337365314447432351435353557155421456217755712156112751345454236364225323214431344551515464116746362133445272436714255134436432272514251171244144453476133665124375724724141555334763666156772532233745441537472161457366365431574177535722761367435474233166245665651463662711765535261561426274773231431723122515424474655415224541723115537612463744322274716472575226663754123526361577212151222733632237652244173154274573724131534751756113714332161641134557734523532652352615714211324773766451744123357431343173126625134773176617155112357656363165661472611673727532667755725243723273374555157123422331233646352761312161575421754377322627554743275314455326534155227412467765475235714546422147652723252367137653545232773376275671227356461567144566766327357231252221767336243731131752127734162473512546463616112321522636244575156333263663514735717312146617326161411661333727632653276257223141371561724327473671127736761464435614717452413663615721737167643323135762333612214725232231225441154554716371643246171424445323421717327341545762613744322253515627561616762572163357123231523314362454254543642217222646611152622266615371766217242425327546627156141672761672735161733776762176713273371361555463657266265376376637166234471151546466374245776651561573154462546475346763673461657641166525712753571416166445524511637512312616166246255221164544536611752233753717635446654331724715173336724324317755554126413724534277173524246245123435476671365774725266114647543227767557777417212641542345434755744733734715736123217445211616414276513114616622154231743144624245226447241224532164352666351115541525631653436654413662626731615666353351714512253453546552733512457125217757116554342137342624261363174772124112636152716277637766367177311723275122413345437346117716757242463375657213646714614526434552131352246171355466747432415763265324637557626454262426556465115641435312464342671232111161762466622364534362562515127236436515561216673323572753566423455345134145144517157355634476145511334752567357355313176556464145312116475423362123524312342166727121661423752174446177445543546542647672371527254175142736413261355456577651671427225431461777246773573651742723136571547741764565744423631132444425672616675464371744236252526161741141122571232346172636272221225342545736162425225521551763125642137524443615431214361561162657272165632113666727356545745144263411365575275767135172766413132572737411447156161612172743356627724156232237156247556763237213124423455572517444422222645576117563127717172136677222471267771151474464513627416522163122123347311656426722152145244656762215447445316312617134542337236577444312742714266211767133166636762533741343663574664616215112722315711135334615215665677422724155656152625416146636517552644362156775266741644647421567155524143152562565563341222271311163477714363653541166217431572671251252622316662772622666645145363411713134133423616174772516344625716232745221673413212364227712574536734455545777411651213314474147744422275716141347361622373111215667117511526653623615244556517466366351543431112373121666457527366215471743144414716116154136764616366453151532223244151663463255223162467543675213547626365712534233461456647571764167625526172414764223111771366115776652551723512323745754714724635412677112464536223637432744526371661613142624437733766174465425525615123315752154354274553325216767513143642157616235614247677577567174562771151715677225375254143253742232447631437361712431244573776222557544516634736212336115424357626562244747544355422433264131713672217623567336111343573376416775327272661715625643333653425434365326514675471256622171554237666521311272142177752373462274273146126336534744752372557661427625646563555252547177255344315417263244521345523522557475745615734451734161752225413563277162755422626324331654525174433532637472754627343541213712465742234365663365332677111323651465511237717347112411323544743212663777711136741122364643446177375676666713721132272676233153712512412323614727336526454751363645775246527231255131166475533211617544426542767573673543327631633771352226515464754342663567762373341662533363771435724214374643216265531171461544336167631225545465342541616164511437414536323272626774166174546573653427351677763762471271765156343615634614723321662722122726553143627322724356546641264366134551744166272621664552711347354122335735664155245634234377446141265771556275113516322663727733743562647656461752774172474367615353646535514671772512763423423151535521212672212354664125567715252734255345665223522234774115533746465122521434725331642453137535564217561545147774171336542625564216166343266156666711765161637351277734253261157767157776751127236243767227336234332242246451365322512633677422255412636664633576647143534476624475651641343722517524177641423173661146173564157221742725171477777174724313117733137323242313423334736576271375621564227542723367773743763124677765317455657316315613213624223113753122616642563364626171522144531154435432512142523543525731416533177653123251544711463167332116537524136564537232477777733254741713426376161775254345352717524625267137135146754312157352333715545557552375264735243217334745511267345475435721646256323626371536453234166661745673525177137212251614222111225774367166113724331323654266321222647561561774427662156675636741244324312513155244363352145743167623253545742656224453767564773155374657364643565333542511221645466164233626266713476541664647526536241434362264524471561256247114721275535153426266245474217322725244621535771731646425236271463271613756566662767531355265345766746345224224312215443263737435223261673415757117645164567443356674775337725735633342122265524314173635727522426763375523375746356652545417762651111562223726653551125677517765116176337533522116322771161161672572345431713124745256365564643135361124224426233757717666265677545651373146762477572452311711765652712317226455326675125237245722324466477435271157672416432335567245716153772711762252116353722756646564753255455612124151364671466445252671346131443142211667747514231511645561734241563642757722554535723572575232417775272275343736527111251713244333153364237434316416544554171525133573116272623554332111627113627271612531713362135356332343735754754221423661165722655123325714411344376764173675163615347241522766425424135426224526443361552651633475277753566351116535573171274634364452141615715762543743274756326154271351772661136444164461434242752727136425641416134664146473761274216152636111633413227756356565277124326341433773326324262141662515347214346547271233653767265456273223551545475612367576515452272535212267146636774143635364673267671236244737546344746574365723674621644341344217775576224125516272376633151411511361124636527541671673272244234453565352223116366356716344776345634552775325256213125151457324117474775526453215627325564525237217717472341763454526466741574525426466723212461142722716766541224263264576146254555756756722254572122672626655233747636437656337643123425374116413576352456323226432174643245225476425662625247123223727246667537572267542376211544135152741724764273261517431514137635242243743564123374337421233327134361675344765216642623746472476234333171566411276461175135316133557266354326457226436233174176364274142664522454437244663263711542155345721276641676355664277453572427121152635726764544275232521154167374477312211676435142435444243173442413634635677515141616223533271441725521227267765756612265615752264746177727216714715134626433652346355367321113673427123666354572447377231343544276421721645426563632545513276626452563666422472654242733353236215373561533664752576662231554365725414457146454633623145112642355215763717645241622247761346514245734324322147332646555711663327112555311424567645623323472734745313144337675751445776347642256117434156147735212611555543157767142651674567371573657433732742155234414762133273467434131234433366721427624244523566262225761227133265261675261637467612311524546156614775623717747137271354631646447136521222226222252321724172755752643166317223542173215614773672165414245361655756276761562152262732447376463372212221271376635127474345273632744266226467242745775442252535133662513441576663564337465742466754244622762761247764743531176675331714322411644534337522732713655156471642125612244237332635122726667754377267374117254446261452341457717735176511636374233417535774716772621512665526252413576416111612113373552444363635124155166261363633172446274651362171611636766451672745666354514724176262161725125332111666337141552471617713624457662167133131316555546541723561467577622324366143721674717356436515477722352275661651452417463354215271545674564661736217346613425136224113663261454415542444775522444165546774253624462736347123466776643452171462142335362274435444232561117246562736654174641315737317321435325617514114671133535677632776631332372123414627114773166376253415544156537323244754364314243574252777643775223621357771426675434633631221153546673674147631573367742774112566355744452455445163752362723162637443272441224123422651743452646623344522543345627114211557743634252534621346232244165134137434241436127365272526124741365421745221734764624777572317535277475217323122575214255475542272332263235547111631347227764115342567273657777254411422421232676244255653552611451414746262462476135612371572637717425434762124736431767231323334475231727343641423633546521253623456642765342425171365156265566144721127763325746274622641421424136141146511326236631725261234656564571552713636522624544777366345725214375661643145723313442276772512253752237553344715253573374555172376633611136637565236575154655126122412636532611424374122611312235416572456546712533154244416743414354632526521665273636367353734472176457533621342634673642246626247715161343571674465152377372236247765112563562322127257271433351356271541726341543577531614351317336413625473556137223373647112145626371747235237251512175227323125745752115631767141451363224536334142353147245261337466671455417114344651675524767636536774445545213671761654242335312272655534454644634121566112654175373245573277663375453255443253613227161417417746625233126444145466477541672615577324536574217157127774175356246362744726456463366376725564417246453256733661321257163731562526363712574174335354464776756222161572743552126763533133237253373552757336647435111434147265425113271135611765516652257166747441171214716115665643172711615763173335637557336234543654155744264617312466423346623321625332151442574753715243135556552325523677251545156773216775753374767452366354271162314323727341157124254122642141312635331475514426245657143357521115541511352133647446353711152264647132167263661635563175313622326422541677256453233542374667122765351441557525747315645234146245774137376341155276754576214231137553614452667417375775717343457535126554753715746555446313652635446415272613477264722753251444117762413663223161653151516754365464545224437165144563644632371147634446222122746526712477647754747515326643756631542113717714411462224211415312466667271173644113434155126761236116147356555366621326142147162174721666655373366321324542547751453552537477735571734517764171236533171757744634641212277676134716327324432215571732163254156567312455737341731125443651267246211446151275271413257545675532443526435644474545253231721474651333376754434117626242444514212334664563326637622546713555216443242631352236131416317766416354777262227543555617447557321367666716231215552454312471422461461361315535214441273444475655124262424166111654664337711676421136412737732716516253254354226333264477462773744662317754565422741411361651156644716174564437544776144234352237537551327664557351265611345551435522744143421556665465413371355237433137373561341117762421465112244657522267334455365526676526734323414634561236176551541522515357531313772725634622775741333161133265664776562344444342575124247667356156135463137673254766572671535553366136543542261677541637114661321343211475713773757742752342575621143214674274672516724352542225432743443174654745747575751213755253521142636224237111676726334252534657734766422423524415352667243532636236217452723374222421535217313347167744241477133314467271342666675671515665612152627642175264154654126775466614165262462321736633235225715675215144413535647424146662464143674511141325272254551537116424614354561634355572261335246217511246726173547411526763526336427434435246433564656555736672543517344271153343737715511372665355373724733366662664435665754572432135627176155443717566464154427733416535534217622571431256531625376352236546647737174213165361721556161656634637647477727547742726636124727413411441342417374517412425726176546673141422353734614156661572555536152214442655346163753233427274113434172271745544252676141261672335635266262147475756674122223357242162717125176774574227531775633241533546365155535346213422225542714361126734427344366627242737131557672465247173632425631134737125176354171112465547424636343344165723332534163761633216242566276767232626336725727251265444364273136411254147541575715561221547143125342755732122622411623716134346172411213426571151343645551315235565616357141266413717575626453132723641756174646357326711756362564261251261665622544455763533113522751777156651236775664156561142341347466463576467257664743751314352322367556516433333721435456225557617674544521154557532461323272162751446217235773646214347667176375352363315174472234761647667611455514246757527743432537625725154635353257122136471655551452357754573717733247117365743727356243533735137454465314212624641476761473117165524364126371676755653622243351134574216146346144633234467715212763414431366213776221776711631741413746276726326132232132216423554157711513545551164227542574752561661642226715225656642123531677165252675517223611676217463664673427711461412713163675654243634177167246317511227611477123511117747753775767112263234236627622725623235133754264426743634727122724331754451166532545142644666151525532277316373556473661346255336213532564324663522211345174736757234573135514766227345154551546651221644335724756722431116164743155353775571375277543754563377527344644324364273177465155574555412767322157611217256174554222763272244443333544574573161673113422556213456734475164573563274447725546224226777476266546166632745531443776665746554531457233526372547146745431426773247173456427573411374257333343557667136161151423454373335651347235352257465537125544767465613545373422577364376242542622472747577153243311652565143424563171247356512242447526442674264613631757737255522574342632452753436543536644426577323517745353517474161756511511452124137765336217726723665756713325621626464324427332622516421752535637576241713745241423375372566343334251362667574557116657235263636264313611752447351256372712314332774364552716165322141433574237427766555767665326644176367772155764731631637472467167136746243762455542535675245143146743667265434221514365221626342347526655421252322762513774542175161645511625151356541731514625524622572575414441336421413314161462533123654222554427572133553521215436125567746471552666254546551433456224237117256545363137626771435252674724731526365663764555631546747331625117146645145622426573466423526447455342245647271761347373565433477145253146777316432473152624274317136454464514347626225517147671715663321613447331363135151247252747373573131174333646365372437634673253656666322616654475651733432757336214147247724575374377643241264726433446552332161522515231351753535263142374414665741574522717372122546665445124722711473765635157223223766672365575754344146653616437636416646326135452166755457213375257144776772457761777535467117745742352253421611627564343255241146214521173265446425152566224222262535635364722663411757772334544736523342753343525512673746524127172331545212553235524732713335336662647561746472154657741313237736324413517447665564572542156762624275556514624562133226434333426255724515367646263424351724375212724465235312131572121222651372674443176721243223546567746175376743463255362623266735142653513417746374134325654541364541232564572532144477364642617265417667347424631411337215315444215373337313665737172214655522253773426566756751661221516362526216443422337124114125316345537441315651114717437152714651433477542436431242115223515113166536522776752765216721463214523466452751545745676567637251633373131445412326117655742767154415137175656211211116774113222673315425222134256456357772313413634677312625443211346255477157452133275467234455672436366314343675225654677454235511351311145324746643233312126567735776272725532416143563664554551367217513365537333513263731317555671651111764637327645232474442332327522517213145122755215552115441413665527233136323155642164627752341232164561324732525133436524661124332112354647122625371154643656212424541336337533364372756354176351645177734117447111377345665524527437423234272322353377765657242275241654475537154424524212336556514571332126125677443774341125177456623124747426454664417433332371362573371443411776431474637267215375745772234344371441145163726555443253517144615743146766467246122431711135415113431426365411234577561774545357622764623455617256347437175743635234616364146264212166215673276712414342167676411537341231657552723451766656617173141254451537732477465254156156472431166342244573632567164773652124233167224715267546466257444657413613746536255333271227175653634236632476333267516632632321614436213464317645626611165237431763715354776763544436646553535535235773464262547322316355527313137626376634121263423441124265667663514376717136517744256714464553233574316332274271727617467254471151512354674224426311261176636144224353143474237157317336133737361116323673426335466413425632567662535224477432112744475272547637113535374331751166437356424571512175746573661171743672655235426637443213512612176516664427261245311543213315615556356117146364715172414656346225174675722641352273335123667622423722614112246565731435135726351573163575622671573747453155123114533213675274356752137456252672345656156766534323635572521711344123642551424767342143314425542355732216352761725321562235112246643153111326527253333666467624521146557523475513157355225317773177756731371163461336262622722343441354315523753117627131324561225344714457165476462314536235347274566344254724663124677533267217756623442743442164444516735166165757323531175313151631535454253151114366577231646632115563417726237576546572656452653541113215727117665554133617176553664274717122711575372672722511166627312424736116747136431621131712154237722744541644521622124216524256152455742137511663174436477136635163767172762252453235166371273673273113412547725241157617726417726241573167751516634525527561462317366515574756642434227265323554624414364754652114537556212571362742571317665715562531453642612216465536616326264446525112412623473455346171721466441162323616255524452462464543571627152443262154612142331714365556465731262516211415647752411265344741266347267232126124365314131644764621657713114137466227744131627222477377612415464327323146222143314343445617456111744447351476131476142533462362576133262442446425222414764124373337545122255721632174572225665321216717325736233542132355144565725516533255162356551125531121712565442756665122671673465516672167534633612513173353512472473571663365557741457116451632261442537766635641136137176371411555621646633421533545466415557635427413316552735313261243717773545526747634232162411624126227574356243346772272442635351264244571526152753313556133777735353642124622211552737744335237165362674475527775212215741474573343523262145254775227724164534172463172217135634556462171555364423123465361154623572711766526362776234163111574153353563556415615432741352531145374753327251631575612147223331277615157275262452332537451115136126633652572756312555633145541464367565256364215573357653541511347336144713323273521427164255411434341731275624217363363722653636464457521273723762432623222474452721763123335135377463174355722314524147412215134715424752545717472775745276773514246743331132772211726636446726444357613736227451642435372214262617672214247214362545475637445526627141564525354522361264221724616633113564412775225343766167552445745433275475227655364262351525223176415155767666424753317373136435465214772771534341773122344117757471172471565222411614132653641521731211456211462542366555133224411531667512657144374361764325167142332323671524345614113546345463636771352423251742443121754624117126143226543647124326525277717721645256143437542223166617622524677536533717165376716771652143534516463174712543545344333637214575533142644137474141614371421772554161446761132557641312444544622332515515611175163223451146537675756627512632441772431544411517314216261344621737364451222212234665674142433535665234456516132521321125461655544467126677622274345351211416172532635536437657373131263324243537125667443421467114232475131515516215353636764165422661413664336167725227717511362462622321145664155516611673722211474725121521326711773272575735175461213476421431432752242744555435466125677752326425742136625451236132623637252234621745731577613627713315234457243357244323315671613133757335342666524357512512562775412434172452444111263343523134514141662131266616725462153456246744733357367157663432636275221116512246265174273556742772413534475633442362611267763262333726457353516736136346244554121412361316577564416344272661362444774135715665346364725274243577367773574474237166667411124414434534114553176125624655761421175541262641261164675363172235256133162447475675276735444761525332741316345136755562427725177742346377144657556444617572322426543514417115254137522562134276262532374326755467541721124554312666227741557225371364576354625214127734272135756126576424226136552454275521316131611553276112767345765646661615776164514324534467265653642242633451723546332661677565762176463727242417332531611651467777755341256437564646726125273274211135352136115571474276125457767712531144645534674334237776665775251275663356745477214323223714622651451115671551412155561161565743221331112357531755545553733626252314327566532637513277673166114434266244737222264623614222743477136143447472722474164416724464477374751721233464712563566235574535233335547117421776446253644427343615573675756745772631314667725227167567356163553167117677662524534412537355644343264365354537374754121247733457767425252645675263714221124472572543362665445363565376522271457645274553337165554375157467446532361737264312261517335464442314552756716446654646671456212344122321221156753547347424445672314546567776513161124167433324555233221222173422643243226552347753316421732273466124446315551651211764767117566462245717665753164363673624673742176517576273513242622225624212411361357211572116312543344755337366524554633245176254617416331271753441243557376335626751515535633377314773622756647546617474376537761362663362146223224364624617676134234652757711323742534126216732554151466377522335672224745732117436575544537753534166572376511654444312666663257557441671651647423144333123541627773154352546512725642263531733622341667243124225113231625617312555735662263636436763164566617774711466626211755755273751534645235415317322541237157465652437164734566521764121137175672135745347117762171513526437327533337274216314415476161753776761335445166617442223732236435333556433142633761223425642425351637563176472661774256232473331324473723762152353771524764431452143445135453711222365173636615222676511251641613733642246146772151632261246446653241574472471527714233461225123336417256427572574221557571312756727636611751247753131711252567452455246344477516112224441711767225742517241311132455732224223235721211336361313641343566311634337351575534576252427717747724541515776442112647272373261372647721511564616273133452171127324327311551252272524752252365316751122267415545716514733362724731744373245731522312115335646232446165413115151321623365753716242153723235143376451721635136754372574237745474343445422335343774363776713652376743615752526226555146756235474461653552634656543341147153523263441136422117763422535552126454632754625127136677754441754511275572163777723674612246453744265636154555566147447774643336655542367145524532415425221545333272447445317163235717622165532263336313745143467267243362256466641663276623362221236465622561366546177162317642165736527117356133654552724711211723575617535451146434636436551554235725171537653526212755733221734436246423411162714121615346333176722654225334425136332155111412214573326151533336361476311651713454125624616241271351212267567746447222514347551725135475444537313325677244333434141717454727167433223357122355162273242754653726341516617244754374631726424126654134724632436357643756627333131455146643727646542237723746362436253137522416473616671115754211226441514666626127721142756461513467631331224145257264551431411741735161224641566425164136277463567276321125164136635351261131617631573775424236732566676632723776765455337643545124175671264474273751674571765667411277327766427124314653163651612132174172155767411115614112314421621341557265336347121531151533536654142771623451374467576741333332646157233672741416365373426151446443375666152123771621274722266734464252751274575757177572631634363621237366135544544635117314733336561436243126673455277332635362131314221643542271111234337257573633356553726345457674337356226521167735347375253233665624657422642746413533247664152635422465663257737274621777425622554734613121234363646147113574163555247553675224521435546737345723446425776522273346123626663556712765665451561216121312211655457757446373463575377347771767625723667621467637371336435534616327617713742746715242714561252123215275413516527335546226245456776417351544415543227232767435444215334571152636261215513466224654517161267562471432214642575164644554712652232376616274553472757555146435647116661422171551646625433315163175165146457424522523357671411127527243711154536727465546527622775611132331625621566343336221417261315652143535514441173724276226461155262544435113233446355361126245764341124725351724551471424541357774216521546531327551543327364356177761135122344312376621667325136136153754222644115777256121744646464673415763473113132754741546575174655344614336641136644627666327175533323147624141735337226267276753224631614322325251274124254241474176361123266723234657275513753473343445174765312777736411717367514762511377131531544416617646731341421542565732216657552436422456531615764651763762637222165233716116616464664273467473711444145645746516375134514554755131545444332222763617457135643447623577124437647341275321175442545115236673767613733655175641726636452331731132335714614371573376234517774716241653445765256515543113214514522627263763411252146347777351133226335744375324637475564633735457314777446212575455224617113661713324277217571355177661613272463636455315456514323323514124264666433175752633256611161564223573445244643145473454473653314764231144642246625253734223553252676624517725611537222654233541132633314326217273125422154332536621253535547576772655163635772665114476253123134422231524423522233573421143456721244326752424657237673617245157214656554617474521571262217726742436314715656431521637242345142215256651537372453647753171725157674661635776145621537131244142732427614473437112355462515213416551552223656676235114365217441327476631326217233644373223161313464357372222136523153565224266635263213345651633351621434162155613225562377464111274441167365756472242312461772232576614644451421646111357367672753644332716261355367424463443731225761162111246674757516152456512327446747154754341313312467332573631544542137674145367546611767545521315421512116655733524642611564634415557661556442614377672751444175742742126654145516517615151661365563675662317172152752571556116664255645266316414612263257151647364252667531472253513721636134173617777753123342712314317324123314474572214452543674345467762334774454666333417717434274274526327765555327771771754514225526542431327741741241246727432224167444475573677613141733616131441475754634224115522616276172246317136412244655536717537547775726131613126624367251335323213116612613336227646575721652214426377672235746144723435513124475344325452256153466721412125465222754643767676246741122433213745244627217316234132145477732425232624756777624437644315427662516712416426511144132572245225416271453314265412716255513336176136274536256726337264136371111724643326355146672637444274316417114447464172153456513143565347441225365774312747721345735472447672327137461156141216771557734714156261247346343474214362464176515534651615553123553312452261262736334426373525272524161221237523367742672355775361767122354231667564743362773541631652776531617676273623734411465542753637121117731424736467647324622225127341454626232111166231523146562526775357264414634547633237225411377726755427212766753376221251377413222774614224232463314332573544266376761513235474635371641235554413472563777456743512767173661441772241651526534724233353643726717345433515551153515144531733645671434624573612363277553646232622176411162542711221366754677174274244372447747261331236515515345662321566563574727752542534351147472651536117412417573156514721761246433444315555536143735421536753617143414252135741455327372267651676157576773511755417431661756145752142743313422153237227314221737354461623354573116241163616113731417471746515736752162553454751722672776651464352471745323717222322532517555114363361112423435671163344323733561736141413747641666214656152331545451623126174172234612437773147625176312223643155457512522126127637652713471677554426711234135321377417747141725471262225542564615557654751154713143474167335127514461176215576213443262235737711451671531322243511127342156167235326372544651243355412711531553416257423213341615447542715173544472345167424415342235427237513343417235271541316441374337271635377232142236461344373735656752513526744277246364634337135133414766664424351311714441463177537236236761336376576243272621515532565355672441431446776262432126374243124267343577317326552764735661164414537127267213777417724473671352726641767712222353465144435663156154253254477644224721464344552557275433264267711314562217574142173645175614676136514135724532141435355236536443324137543316523767634347333277542244327562535125177644711337274527353431514437151135536561721464421155256612517613476356457627362371215766257242511447325411447716127637545472654732163645622514516471556335514127326712413755346227365327112533556456737445113134173726636171467225232275126331757342135745213236652212613457645671114621442165164274365732127517622324551667566227665562164145737271647735775621626365665362775724271113775617662432217737247731562773474154253525657762717614773362622341656241726624226271617346441765163721123725556317472327273373122513536131516447417642663224535727574326516363234321677132416312453716566525251613774716367337466661437422241233632234162115244242216352575632215447747367124531163121317112322167274124146532532756171721354563573216622416763477311312337126467612574164773242262224561463432324425223523137466617366335662135676311763317345147276242132246136761277437464212341165471635531437457523563224442567221413177232211252632165633712145117336242574531114433216521125527562416767342553226541422535411466737646673167573457432724566525331426215424565133776317757533265447257733512326626647755631261734743156426561463341345732261373177315141137165523751665773133332263117123142625223372772316643173474526132315147516777337225534215576572644561431432465427374625575445642427463637177651671273163627423655734331431326377541756352324623426161225261232275214242474266421436652377532753613237517225177234722363257545727353433456266372115445162747553471754431257217521355754361346577515347476416462521437265332113113631571353421573646556472523224577677734266456733612552135341132231223752516513114361675433545652614373644526146575574447625573773442737423237217671334415166466733337371624745135167431341211214546477572275711521474631152263547427577627531623773467574715362343313415462453162542421223661136461123662131557723155277577722761174462675643655254714265176265475745234131415244555365764624565372725537712527174734544236675434547314474557677373767473362747523655325614664615413354574111272451224174513375746474164515625364415736477631534414713573266724467373334331373134645116545351127267523257227544222223777646661776761417422415346452763156745145144275251421346214412731625321236756514655172623466761754527742651632226727312652451655247145444526751764724313461447374322266552451567152674352437461132451336674663611262637162231253312554443243533653146755377314756124671314671266564471121162677522372343122251237567612721217262423651354512625774675167317337512266225577673573272721663727777335251142742222533136325647531474312425633165451754717464441417142314266576334442142272556637644174625675532167213524772575652212165645317537567132423712411142341135667553521544127312562766123246126114367543264326475715527253256777546414142565446147631557365174147632335625462216162357377117415511655541416521546675634645726571676453424467453445141645441421511466727477345712537613551533674642645675743444726721477442632436722513411765477462621676773246131422163163642711373463372625533614124443721231251636176361244634446723425431666652662632665342176717252726274173371654753516717611745141651461631726415175167761754672677747143344226735445343552331531526532166511474251714463525777263746155736275733724674166766716373321144765651174663271161711642275313111761711476126356346543163524135135345316322246174757467643456163626457421545456753112116464373565444416662437334746251217556235172443231474437135752175162776676152416656421445153453273513462211561556327555272631261431761322462547372447166362411463663625265342272447477425766746425117636364615152131164762667431142325364755473516626314514657674227646345115466352214674251352674561515336165233355655373437527216471244154671226615544727773134774231736335567442117622723345756471565437116243565557643161775544514347461226674441546146135722573231367322173656122647654556735242471322643227122426524261754611751224422733656233774524633314532745316513177124433216661233725213754725245467733454254471762522126512246114117455114653653744157141375376617755677354732345154777146766567666565424327454353663677666555444322274637774433631331321165743365615471462236431664627645531171673643612225771267751656433533633221512635435564552756622176472123264457332722566674566716565167416165711323562553242142737431562477111253433777435531734116356436537665241452515262364716734516563642367535615334474276773453432717357232614556136655456734471773641753255632545443412315665155351357776462747523265427226724652127721666164747376147163665353665677666676364234241347636365653433533512552114522756732572467753335677754374757255142421667655227771716536234351154227316374116227337314137575673426457326741564526541155144624366144267263352644611636352745475321741657374571262466323621562234421526657437457735761452622754536521476442421333232267363671345326366333575637352662532121255177646612162655723371655766125635532412632137622141237737652335122462756171152467522526514761562642247157175334426671643241221515641647667434167756143366472453151346335411717725522161142377624752775455557552335554657721712511612546434473745524212223425766776353137671165757372633365755755674227317337124165457175573471352715745712614432217211771441617122615516617354565615625163244255347237111146537331123733356715643556667774751613126521747731525174763763461663274146353345431251647247527615236744571735611745123247121722656542222326177213135343256451646422634276177121443267674452637412715535545461524154245513266147442135671541634351766556765612647162652146123467567335235126314433511115137366455511344266117543135235642611546332356775616754357773667161236252327337737635364374673772135165221253256352271637437127334153565614241165416511645646773317777461724235175755243737627361457437542354174513447733735174233465351517217171354451754573227456214255315316454212321767412457361726457221256511742151112467327513551513632622627134236515557421166151443636117132467431215267366315352734546643221365325244274134662166553541763212745661372724413723571155164474772652711224754467731145563144653242344555164633537633423141536264517266115561154131512116162127462422322171316621762263213324473744176427441433532752374537216612433414467623277465625312243124477742517463112161654315432154524522762743265374552223777274746521631225445375663176516435223775267312257116765416267242755464124264512424314156774711226155571326777352113431231732165164554616526455656333465452761671257541513542247173441227536616743717177455672622166317264155652344354232712264412254362117614141661323513732414641211413574221371432714371642436466647211632173145447271375631517463414477676123767117147642722762334774674526235336244122424733256547337723655371336151233536144231265251535276442247462145762476614332576335272436565771511141723466647514344517367267431444637277164235562253121137163247634744752476466573125341351775761565164444374153556423451541357427225562322641427352536674741673726515157453616654136726524634126761416564246733546451433715536337511457173617365133275566342224274333244635755471627577424555265732256742541271273254317676526321646433716137267625347346132774752624316222351332176123136245652755577332667623133755362116763361731174273255672176745145654373417621357516475616572327724545127272227212161742533754766435336256472524632121414612411364711746516772465761141433774723534631523422762561574751247763247733214465755234424231366354711615126515474131672236354322713274616571442764155477445767351671262243377416134614641556575554714357511443367157544522472257653477547525254252236611151276274633577562427745261152267327357634315374537633442661121252317373635474151753331617731756377331635474213217542644731146767113315756476612756363755162761772334132761763162717324234433533166411611126335547572226562136455226327433467243323545433647515427362435675643265652425122214757175352143736255744375221532147747674121324252746317221265411516576317353177375135251211161133714644772212242165514545745161453746445767214323214677463171347644422327342613343623673322557634317432576676324727316531717713433417667566511122752146141141425176154733615736335641556674137546355141342755771465644543247123762566534641541521315762217223521661644341415677731537161124366566663217462251254347466667437217276537676735154521671571634574515467441453262643143112266655425165233471727114527742362256722647374733735146411524154272164351327624137634614777575115325763114277622525277766156551424132433153745237167767664553515337574123521343263251151636221753123534116144563122337413445433744411111735425136362344777543747571513717661374334571267254661541622333222453226665715734422566561714446724245145746452113363152254731524347155541525627365572731433525242246632174667626477773257641455513416716516577561462116262337111561463335126164143364274541552637166421343242676235756523511174114656173337627552361344535734446145756211373261617753437233771524312245274634726723365312713764535143573367651454713654755365647554125464343427112477114643447425241776434675727256171665221364727121154454347355375474336565177212216765521567421161513363212332464462255323356464547276531663242611135661316165642553436436742344556345411226772361543517324651227265125157147377454725761555517426331755753122261663463541331364331425234556174263533126142312144116743431331767344755773135342764751334461576644331122534262561167223673752735361574657515756775727417615172731112477441447346741773763574767171452336563517314424122312722733277343223565537312615356567163314357611361733774274722717726441116116235442641271714314326354375276133667164234224764315344714545553743742364727415247714476152637133421677371252167167646455641664331317441575773624777634331516252213247227127522111715351422446661216242254327432532376557714773135752267613566642272746751557253767376361657654775373211455574773724763241246635476736264134535137535743166153724536556362146552525332551565767344331151465353526363541517426364116234214741314332516567523571173727657263414151223212265435656151737165447344467627136713571315522431275322772663677472752713664137251723113272652632131242521333452455165425524726323356422455213561261724517321344561544622554222342554236267313173161663131643111455172737752353772177524611122257761173161437731142124575527746746176375551543651764543226324123722662437473272411754417431152355543725766317647735516443647115753364264124712726666633126241145375714536237531337214436444451311722364227274426441113141515637621751573423176742762377357242135344314761377164474743671615221744475174244144674267551752464572351262675212773322471515755546673722272732223455636616515452242543763166422661563364246714131214614223164264442177435325732152644266575334671171253115712126474123672536225446463175665777737442742314246173752352152751664622135367115135423651175364352145362237331733576165274122461715454566612726466366216511151242727415477611556516331222427645246117756746724715752173355342767761666563576267774275434361476565664554123743742553425755125764554331644157445634176774417327776421525323457243563554335371371242424256425542137416143614733767333742723461773143157441145444576174265644634231646713117564344154514467754571775565271266614321171431547347336726635754644216427674752675631432425233611252215115673773556633275727372626151662353652331226545346226472416476743242565721565423454424556526423146436141221163427752447332274512546462524633166164342415625225563331413166514324751123615437376541713232172524223444734571422315477732341613345612416265431562432435751743471273444252125214367434322437777127454113314125565547364441437552621231452265754531757333377365657662737357154447546572233371155745251217126673647446552171227214642773724775362336223434667671365675176677336662414161657547676567376277134623275674772756656635565516413215424315616774672666444315367517262714676576276576342114635675635245635415326365231441235624521235731511444274726163326121562716421561635356641461132733122224275244437265142231235531153315624541114143567173335712127457352727732646134144471372624662626212325472425743523562745433635666722573135733275564162536232711623212436321541317127264116321614224466321315456551517132673155476245171241725674646762252666327255166174216177564563611766132156765516237247126565166276712321311771634641663633343462473536751761244642737312657116466751646654172456561522711123761665752656357536414476717723222211676264222215746416316311632163264272525746433314246117273412147457742545422764421332442623746114122266142431713156213576713724525755763126337735566136141343726614573125762755535442455523125617471773672777663341516461773665625735315515575241323262362661544237777552423157271627757156323747647724357675625717116124756253457362131111674575516521136164322441653765155525317352374272644212267575374166637657126546643453573453324632636724636574577245634163335112374276751632322236711531173675145465464566622134146321432122537415345624416633357312445661145725742424215777336256433311525231725267611477544352134565647562655474575536512341453132635725322763432316177324372715371272624123575127736662422532353363645457647441353342575661127465753512575542517244535313436374172554645411673721473234677436157225622462653244315531311245253216717146434767512376426555473613475421265563655275147135664245626361521416115524342345135653434473556616616471234372226613156627374165657617744565716571216271131541345427423174665755767577613766122764636457747434344224215424327526332361365341775337157512365357112457427254354126734126444262113251322441775327313134662472623251423767761433465171567141342651733422411564234734113727244532545276457546352655257651715352545256234321147425253142342776253112636457574437356674221427445756242127167544472362773756114711636147147124574734135632443733125121136142432225651534661175527222446443535161557622412632313246523451644552141743115471542266151417615372676714235164131467274435336156347247772477124162111555412221155112772233355664215473333456474375515743377177417367524261142573443251477527452517561121335516742457531672531722761274236171615244337417764275564713347351351276631613513132571363627556714725511771253575756275677765557352734144361641456377267256133161365671321525664524532467214622142743216357155636273442474275423617237166713575535173443754526127153253755446211731375674357372276624333166611124254145513533163756511121111224741345227572111516356571773725522657562442743125664643134347211517455623211623411766472746761732677562224275547657516714713115316376521231716673564566356571322352234456551442631427345324367625252516565731135276234157526611426577446131355274221626611572654524672425663313636132613763261633414565444675371173365674232325756456113613534643273653215541247274724424661354675272634377424344147411217345735565147417452126624575525552355243641612657272264534325214342175572572661711136673336247515724564753453444666646363111163665353761435673472366316727127425254554627537161236261172115757665453135727127252172222523422312757353156267125425757322654216323452761577622564372323521232263421721111262432163235516632141523726746756313632245736613137212614472416351543761573465772623274763225762236536525264164266511126432247352346237657355175745751633741616244167254112722526434516213273211536544366462743515376117547152144711446426523115734655631537743555531563445155552247732226133371154244521426374521423636641261416742335566317771743346123333364161543213244143247573525267517137173525733456764745221136771123734426113441346144767763774716423154765332367374764674275715657254654517146716676266615316274132627361266176756515377231252574766725244154753733473537646135524535262771476762443136733647523167725315355155433736651345217537521253772527472176173237762154726145344447517727637254263367763766534371252254347265613352351547533354412636354422314632161256231555125211357621242746345374126115716541716677125321146676211222724711171672714447565454516631144434655146351724613451122726122466244752776771472141254555477746753462553554633747766345115172771447636274671314324347762512712166152672473523254612612772374512426627276461117567662273333115361244273251451321337647113534452411747355513746273267212564232564567634416713733253274364176466736622463455661316636475116154741543711347136177673534454261756744335462515416476763347156364351615455645476347257473522557116377736522472427354435111356376325422314463725654426327355124746622244622213122553415453156562453771452574115264626473117676244644672263564423116666276256214761462677161532744733552611422221467541651633231643222572654166244211316412736733454634121521434166216151344157526172673766723541452467425144115636217525431674653212243167472375116267733123517142276675755215636645747253635741171662557371774657444572256654764163352372411166243733241137526246513643713243767353617122175122713361672216614652242155476117412741731263154441766214744555636123236366574337447361765443246741255123712336474532627475111115344755356512561144337471172222747434262143322545361441542673216143561716332525443571546746476274664175632723556227214722651611361667464665144156117511675157325375454133757466366351357256277141677313711756616635672637641754745716377476466442142334412576314724755136776642157213664145776471266771661446754776275713422351511312577735553344273164345414754126315222126443762462237717316122643575726664273553767167132134232613514474234511227126241444771361642422134626731743577644453473576141364745641746336332117457731546674311166374337174474541535612511231351321644663343716162653133157325446434223466756675174477125257114151564743742722442223125752653452422136444635213434647334622356432746672356177542227162554673766162151317331224446345533323633552667122156167545472256521223461576571125645733562721664625256325376427315111467662151552411243674546767511667647166334414621122576465346424522622545125611223313263727773454657725651552575225655256246515273316174151441174652367313265114356365714241357145375346766471255175715543667615446362252732766667372245635525462227446643141136177323776561321552625613127222243164575355577565757641243276512112572336717757655651666325166361537673613612611466566417316144221222613374465524372243275113545766251517356132562137446351545254262253322325515727175624177635465623254417261663673474115761636421756327436436735374716524511543641513655622524254755526217464752143337223465712571253214343752256411532761672253212632357754263743127426517125365542171175616323735661653566324171412421322244547347425773535245326451573131674537572313767415356234324736737373563624413365122135477263266226566167632261613217767116545351437257332442542264163115151526653561525772266575215625333424472751133543151641552235761332712171225572221314463716515752242463614475716247527121713677724162553123624642623636741321433152421734326113374771615747172411752155417322553344434237247521625734515657235561125452577552644557242726742421634412562431624312325521525661154415663246231662134617752651756437127433456445757542446745733665617553111765552636774771473163654531242431226472413722273572256542675133244225567171411667276744353167315747616525766765175713431747612415567352142757571361645732744114764722236534473642146633237541347752175741521116423316642627154141351765131352214645432534641255314422236374535213656242526744574245561421165726314331524427777525474456676417341774157431541613354132733673631137546421514675323746242622325321476257331731554257114317431264424251375511576115226557532762424753314154145756572467533732275614245654471176755234177575125627243132512612421353154244757543577213464556122176314122437573754764334122725134676472555436123523267672173577376236323266772363713173273654624436271621627766477176336525277654675667142751721731555546467454234633631246347442431326154743556143546663527555137352171614351166543432714162576644145245664714771334544253534337745652352754453427164522267522636425752151616251257642262164341212727236316244263351517726543575166212743677335774744156723373113724211571634443157575466127347632354544637314522671557452425471747424711742534614761737272753247221711726361762461664614723241252353666426424764153534337563672137517361233622446713457435715232274142275677735745413356161714224642771652764461332667515616432226337515673552675165146746713224266151642337527427245752744256766714261423476551466275471137747557361342123661131162631145731727165132234632756175352455262565463366522126423343162331167336216536472624467133543776224262272755726211767664242452465113233342234754753132457735165515132575712316724436715172521212135215116247263525527426511722234755566414522714677541522634747446324276551163563446512715472456311731537735314651643253734171133236211125765344531157462773215621453664374247715123152262523316463753532145146661267427672233161466731346763751171242143265564644637755664372522536144372141645332337127556727313327666163367732256261156161121443432242561473712542767567671136463616177256641135434513473516556741657674552776431272433724662577654755423713666176253645235425313111653245444345272666512264125536514232717443273353224552264141113545137774324763225664223737731314211221653252573363175472315537262474461115376746346226367134762223562674644432256171137134642764444533217662711632134741535643371764316375517772216624767663224324665626477477527523323272625451756647417347333424147357643317416272234271344676322367244616541577734445511273734263227611566635651315166326522331654734713677564625434466251614771474176365435117763432361341742171621566433245234516734711215316411576532166572354267751112644615674647165156213632622122226671477764172777631133535631753743714722432121774221563346553741442744226422533345415153621326373677422255541114767464747213732332364623317517275255761671216452621374644636747664464454776633734265563256163742471165656442155576365612422625275323212755353244762554126227141663373572441164463742364315222511142423657165434131257771433723727373672577254656715776153545257317567746763553565365313551476421311475215672141761523772142113244415137526142332513113237352617441253146143377657252614743143117135351355626514623114671124625527364534315276761263763175657442472255576435334464762413261234515123573447373142457722257314164677161524565763141243371433751532657643412322545652321465672766344421173426512377523661352667414267477733513753724223441546512327351364645232535266523777661723152117515237514332125524474615124325475132222555177553333614415251712435656245154231474764436355357623311346144467647337773721565567212357275644637664663275465234256514534211514612272511467274642414176411472762413565723153537771317262333642212461174571755154116244511764225454575145343741462416161161612557346764421115264425343443444612645635216221737473136674141622776652474426512663176266672753364154414145637116436245744342767475146553347367222157563316616567373341776644756373263613665454423761152646445366714275655333616374521726674523314635513446746617363465454736361164554112716676635275743557475575162562153652646565363757717667316475674372577357216423414464324463164514174242173734376144417246655247767413624326667664345273151626625665356672677657314244453555437235654644745123754471156433376212177664271773312763167743272133333322153253514122432426647162416751356574255667132364352271553351476366773552565125464774241517546475276654223737575116634715663632463257772465456177153564353546126354344614452371316655323777712546314666443663743632463764166242264664421111574777347736335161421227673613754563417324351171353374453654241611362434161271426765324711446631666132441671132721564264337224224226574573616211367626463575217543413264554375524626554735557643124442711547423774742556243126541124436412544755562137655376244465227172366775543155155614441226642741367216664363177552235351254461611631536256565633767614742427477674756674662356755657245416367441147146426764752646563434373457464362444253541724714357616253313142217744221324126453553572243541662555367433735512256627733316375663413556762442757642646167137625267545434611176113361277322275124117654335456476125155277537333643641374153732645363273265212466163223732235512351611237151237246567173335177346436653661723741627646373114141714612162274677663746566277513625315625735315413771561521473165735426322164535146334477557265662445366675362215747571467415365641367251721332145226375246175562112746232375412334374721531337531645661721672245564376342515577765543666165372151417435526416474352552577327535675652445315254513162231364246637414751471227717326452511135731711576557662572424463653757463653724672662142215764242747626314617471561164425213651154246276557627115114546461146164511421326321321233627556754664345427562413456571752741735425151523562743311261377673676442246431711215557766735126316364411354455577365254777671442467732161635476444252651552535164277426471242715424672156232141551632463517111563254451416733112265524115116274433177352346646775541241743553337547614137115724477525723371625673674326421225655747632261254145435777742264663456442567126634561267274523221567424613724616355315444126347516552244446736764525252754617772657764441343152624452647332322526536262236643134573771134266541524344466352665446645747417253326162421246445373176573633762233741374432475226445435611311533251571153423356122754457611655372363562234452374661446337416256315754261536676466433356221156116774523677677536413731564611532442214575655632672176264667742276536216764561651261726526422643525355454732131141353324166343536374732535142165234555263221663423125362115325241525345767146522723664764636544516454144167133246634444737714476334752367314651444271615676345362677237361665131562752442476236335441471577314563761244415337172747216466327776375321173635545151773631573673533476615177765474675161357641225655556356466225726425564652615513351127165117621554333122312763421442362173154332775317651157412567125234553326516357334543613163115541237561442277334111463113314761123771254415441152322622253653676216423265641756322413731417771621675124517736657721423665666761142563255347245347411171677465613771336153177544615726175255737436472217611675357251172716523457427551642132771625634126111545411576574117376551255177617155737717766317251227346256156255161763661613747161726643451417315374673775272271413277556617631372151561221347472133117162156227336514546673754367517537735657524365161152567226177252266755646416225334672534445563112621324265217653334626474243555146271736541455172554325742327745665751636173512172534321443551347146341162334753126652735414451466313411556343666545631573247325145477565311611564367346564515222161231673164144562537476157672721245435743561147413464361262575711565353721735177345665124373165243762264357171735634436166576232732151617736733625277276767623216434526633545121557667576571721765456432616527675664733623625125562425126662542347743425127523271553355243321666673236747122352531276623366556335552466471547134144146564542317776344275263375623237117663214123647457217436331755666564275617314453315252225413212177627522564223654322443325546156132224562225572145221653437345252463141463154461113261544567225455673231536265366625712451512341247453546455324117777256236574722761355334156666567676531421112212456211616575464544326557771233362273365155734471143721117332671212552371163543657252264221421642226555565741437444764317561566712651521335561446145517457647647235211434224362375166144141734146771135547316436346153666773421427424222142115142657347351512664737351576771614713137775765244747714264155146646153762467324712612437236653531557155333465267471633767555232216125667335265124322627665511743156546611441353715177176647154552447222466514125625644632651325572624772744445351734617176142621224533126565322434116231744147351733255134666133653567574277236233551354753766245624674325331164441571216515641324724456222342115366317361744271772351272445647376341316313234325552613246744115642662633357712467757465261772575764351715616264152211141341417226745135615524243465512736166127125527221174622162562154654677172555517727511631126224713573514662534546417672613636436716357755222516446536136323265267725133666246723677673545154713726421121645656337337674423223416262464461255212145146517723474233313742167521735542333435716341561266316261474252316642452475566776736764125452773571756315174775517477213667161442656471322713473634555134154222376346461663143536324737534146217733772162516752774327363161711625315534174613274736664264464566211773574275426321117537365644675775454264646577677664523421727511245765562332413572265427511571636335273346511162417162143224416241162526411527767775211524164712127473343325224224735211537231533473747372133456251712174136273644242372414762511712311133154437165215457266451561713216524161116741576426473461663373265575525521671554314762251411731617472253344532274664712243345347417645363757166546151375542417451344214511527465313434222573432675426717262232772336142211665746512413543755256521536757247735626177454753617464557545663567362172141446627766443427276555423724237275166175743275235274756451763124533443237661324235743571671373765333655645176622316676755116315131336233634625147747745656527333475437734325233357344232214247617553655327254421465217441755756124313134153535573325351467375377141445273546326757416655725445551636445123644642724722513361746241126727225171214575757476524541743546671472632223127151143516614262141211465726237357463635635244362413553354211236374577252716435676263432252374235575533634676367216552617147553443236532213252223172372417466632356322554163374725165436365361437451747355725521247712651571754621125153665541564666753332321614136634322166255544542176431532145731462512527313771377153226533337565757242314674744151414351714653562416636437744552722367452141517161644671625363556724772217267265363164355125564367766317246366125444262713653272312233256176171554173313662222452576724734635623332664353476644214726423176551115313632273276517223765364244355726422553262144177465234652317172154332651264775653466255426437744571675724515212651666441224211661657542234645144132777121552637725772315713517112421434511675771571733544735157221465245346235225331625431135756226143577514346172263735147556511414775757374214533736644712663734545342212643316722516317516114567223554647272265456217367362651513251754115334762633662612117177437534335161567164343536746666723775441357347445172445243231244445222356314261217355212535653336151376347675616653475652447712727141675565446335775664737741343247447236713731442327634621765471356371271575752175177553661322557326537627315525335413771233421452546531563256112553153217552721264247416144755223442173161363523231272226515341624234542611353515736142723451452274752243372562456462675242231447245553112317546424614341653731764643256516664436127553742436445232566331317652573651355522475122267243274173463741176751117733263217436255413121141135341453672113767725577272425432356313774215514416376325457323551412112533275755516447225257546677111363613471362147262721164654666624216547716222231443553147647531252147147762276363731256353237456663676775326164567516533167134623214113736555224414351757772455716337724672425775524622512151653525627427653472245537722247346631313365354723137724126253316272443663537132446457163621343372436135312325663441567261315634171115755121771355533452524217721132627542541665552216551112774126411356552732626747716726226641512751635132313311312174137723114411474127262613753374771612313164225746164255653214674765231636357765774422277637327727543526555665464747271263225337224615664544213716745765517333366657546313635146632547311345613662655517174617513766731166766346535416425717761361363513471245232663435347256315454736367313237416762616624464342644573444166131637227113562315413252435155151255261312671232113322576423237356216237337443653176366231464533344257312367544265124141217762237665627145123651563377312417734622574411124312561717153334327121261633746417765166115447272275334437145626625425446123244455212676513476367743577512225674416717577237756763243224537326171171752714773611336561344317326537635126537121244224351771633616671414376212345751415576573263253323153774137745715666546774332654371662275112772461245156511777427676737547731377434343333432575565367444331462534262424757337716545611455424567316462261233245213614751622372333373422644277712373671653223556727273556176261411162161423677613642117126155117227336362562652157351364162774626653671761247545473633352442145632123321545523474656214462765461513245232115354753675333543372662217743344772467766423177341621741154312112352352233644617662667165635146314643766443734723322232125633563366766623136642164327533326716244233116441426644317362744535362726437274437234766625111573322535471437264221626512214274647213663625745367562432664374677712217663457127165342647261771763223372641753672546123253353463774344621627227423526144311756257614377562514666231246517774723714433323673362115322173174665167534175356615236752271672371227213513452353765663713314455476336671367515115775417737565236271772247227132743474311556373124123357312426513264525563523135447116247411353771364242524141675726643573642243372626262715166661655326723346516172137237637637134567451716767777172235321415311176755265174765776231773334776277275634533333134667766313722753764666443777373762771632234532741526552161122422521723236622125117156475677143235427634646142762111651541456712544541324232332633711765234144321774137663227372714713647354716216733711423354655267644672314125127322564212677535414275545141753615263575174741621332716622711311131572372116111245455241542673126175426621631646325141116476711537373375561756527244465325216352421152637726517633273144756724166214567462343346167313112674314244614663121554464425746226757375175464717755524267663516474544263133633647311121126571352126455162444641662115236177134337215125263646747257614614747374435341256554341477577162555624477243262136474643523543621374145272617734615262754337521762517337521625416156353777662162442576557743574422246656645164241511477564755416544521326224541732171241545217274646717622416411632145132642773476267362524564741154666764364523553411663332126134512521151634371554742376411325665137456542263457745215165116616432571455665232227741456371353235515554452276411426574423442766546435772321263325264645323622416351161312431763413171732425556324542663246335516226333564243216562651365112772624451146463113753257416111312665343446225636334563523444674153527154616463416164357533112621212217617567121137674647161563575735137216132345324111121277561253156261714232663574577631616735454314515132331672461565655552431762432346572763142331727575151256332577441631335571663544441666423772747252276746145532116266137541635552171177614551761527533576672361577717711567567551423174754314374415477646735612765466175537257531411476313164462232143635654657717267127436716332756233127424425354357434344316513347543615341215754721365617652225213664432644542133372264143374135515361456123347777215533762574456275353174532521443337525617345356725334111263427752725626663412423157667627262267473164153434667374364456415524665213611264543573232167627512371113475523211561223323425576135337617473633712724366541322224151242271415775277646523755117636754374554254615771563372774171677336775514114515773324513324313247247712433223623355646361723457414425671113514253656625111366437773662714356113362363765134177217466777435246675134544267777611766567632467367163541367256251342231324563531531124244273217445763725474146222344172511743127617112552356221545364446542154744156344413444412341775652267674473227671244625143252647167756327743623157631446675252372376341235531236121376276735355414457613465572323654573415244716454544713564637415775346273775632377117577263234634561511727574735156226145551253633774716166463117723646415442146336141657617237242436477145451325322427312325452635565673341413335467442773532734572462627177432312255455122315676145337246313433661537441773463377743677727263652144772171341661666265167117414612412623166266344254773674544346571173311321164673472672357123714213453676624424764244412435645356514215117651361174566121624553445266661765224225714537621466733442342437342774566141142222224662136462537626465313436761212672726655131132772534711716127317611476223225535622324324327261252423444667434426761343765625153215643432576142141165473375273634321764235754267376756426335612364452176714322362277741775551716564775675331561177114374163165733533323256225436346767517226733375627344277733561576651673575735631665425512171161756247417323177175747527637137155162144766366216114755152156773513616416245277277667576714624276576431255174723222273774465214764727165665371632252462247661466262277757511714143421636635614623732141122314637173365152652235641755277422725135365212511144527636545411622435374735375411153155733574666743562166636567666274177361147133312631433273361112522567514617143225471731251462634113174554661223753165212351534256566155734156455763624152226754732756453152727537112521154752455752717334536613623275213511746554745772554544737247171462667544241142237774517445345524112767524722244235775151616361761271352653777524225622172742747277225323733716321122244437625755661532225525351374627474467274663155267632571627322452721647347644563567756132773342535732777754544714771525635362555442542641224625316477273723217153331526547143675545565167311326662154721655345121576316356512471716412517245756137777526517761161732114231635441451443434323331425745352335273352426762413147373716544171512257413411543266117311376175267414556126274412424555714525453335173715735417662347732424261524343554341112177225232474722174622216153153474515331471214324116331235464123475322571612255666722737515226675331477572127616472716667471352125156245467341332423331361517631457374733776141525757776241144272222636147173345132142166273623246432347256523226543642671174421464731746631153131336517736512642444432435553357322314277161346573251533227546511731452461526377625612323311262355333772144614777577642363423647413173227712522462465734366564635246671663744223472365734723417143133313521232621141654356627633246677252216477674662336227274621511526156616777466631543573255236312227312222161645211572117742713135257461617714526715127125426731547527717612464365216212153656134725116117347766411331437734631342254264312277242275452554351375633263514644161312267434261413217525217514223455574547276441162754674555271647536374425371371577267654575671563523156576746116135113573474443225532523326237153765356715563125661144575432657345273775643164554672253125213237147551246645432122341544474631646614732537263575132217647343527422215377237627323555631576247111333154216177133432125314122244476625336257264636741512323541271173736554612266273344417163114334527415166425244572353353773325711151561433267747315633123565466464653735364352322175321766536466164457315754216326167256132712627356321225635461276334241342543472333456332271232155672137213553127464222541764112773217227616312371133377471221412643576651513642156426565771243336725774765451667532437327334577571272511345544522674636662243123343535553426262362755634261413757422111363373643747544363433721764276224655243547534263535241337167722517244517673332776523766675776351314766165437721674263264665633764453353235127327736346736431736565133445367231234252766742144124646114743665127536755641166511264216612272713161765553752632662472364613114434524311577154353624153445157422214544625732571753462735444416547313115571162167536633517242235376626367516635671573154212336766557527677473364354672413637545442415314464114643242523716764447712553331742427744136531431214216463617623276264716562745155577536221123542461162741355753543415441443137316415723147646232414447526232162144655262256711361726171124234451745566773615753165776177524272315264775457264563473424367117257777416153213562142573243145163272143762473662175455761375124435652341521177427255755115731465262337523733175122721633426567376532624111411233535611253132764646242752723255527312341653263547573772113522274435672666216463554144364747177543332621643423171426744552451436172363441114315566354131216453253411165377747435464161122767425757277641756621556466471517551347461465552354353312242233211445425665443572346777214447151326777656313773156745777353461524333417451742356343252121367531173454413627765613121422467544564722563746754544167133413566135641137535333727526543113362365253365342266671654537741311546365734461711667656433537767754724516155346345543316552552647441712637555312156526414672156222214517455217434377247746255266531272251762644475531434463212256215522532126576342525363615234764637123336225152344174565327726472424751614422756567145677662543715423615266475343256147246413724456147656635352617535542412713562375374267726271363131212612351522353172173723751455416667126371636156466761476645426375427367364311247247217264745616452512557211424541462521125776653235423443415252331573625535324737413646311736263433626471224631661365326332367632314165211663662732653417646631153662413473662274353733611513711277451621317426265567261351643164233235456332367146176233536146751275142616744151162624277213711231736337144642651253513524135362576421335622217335616262716434714546612413524666357216376253544331221452735535464414445353647373425674261153522253736465742112444333643641222542744772417727174637225612745222415126451553464246377752256672733655423462141455325413631621125323255534641617431313675661164536153637324515452613273173272766514217241632517662311511742332213623651734175273334516523167377672461553264624341122614332362353611666316671436441523275523142343422444344427263446675547255421763231564247165443332127146571677222373116746513147463566467556471722434227311716165345213261237443575131262464262126651166213257527434563621351552537547461636771645313715142131474452532534525522363654561173243612255347712575633232611731254646154522622763566212465457615212221762155354643564122771653414635725324163456145451747245676473174737535113727576713126527557767573565467772751552754746724634774364222121421476713571512265676424746361523573463744214434233176514432513173432146551133567276146522613334676273152175544463371343544216566576715224172451111136424234713754666522121265365512463176511215715656151121767641116515477517321215714235244221341213153135277311132646572124251413117434245366312676645757516566767143571321261462346235126165774112361433453631755772424423214715154221666251367357532264516371726451647464622641523142424344445324417365151446421734377634312255515555362535377314144731471515467144674156717141446743112273733157441257257264422336547161573172156364221341774137715724765475624444275332433746741442251622513147477134476763771735352455625123163215654544143147665242625447666211165532247663543467553327415447455232566444122461446171753617545477645413235573651552656257245674762643165635323377466413437321626114433216741212261732475327412423265577465675234247476241223675113762142633456173153761222671412721434521115116333733765255427621775351571313256543151577252335525463543774223276474665723245111547134435167377451736642155777254277632541511545652646165575513232336614764151746333332222662325651432142556653616152464563615514547154342247522437667355646526114133556172164337437364161633644367654555264627652722321623221647645423342724723416557552163361344717453546341713562646765333551263247635462653242426336171447677113116545743361432464375452432343654632436155147476737574746113572174331236753714727611275325666125652676473164566657616532431333231411267577366244235721253317632614123113142765572414431163267457154465711226675247573721341425534174576617417323314616754215661577166747631773424125122444234475323317412511144656461635467721664135266446664351217373253254434157667445434171333374711337113621611664347156171547342476416162252332775773624112137316141157214431731431114425741662577616631414477552775357143222513564561522263247547374311743334675343335644172245316646144376166624167645464512233737733373312363713767427277323626632172542762462662745675636322174425571167336625723512274136347121667617543535327661112524442353333433521763535615626772547774241525266276553435337147424334152233743673551124551575441263772125523113372474252332117335636151723344563744451715135151755562765221571215553144566215473152441263453474261564234254123442616735363633262247764322134462642656374761416622632364576346634111651361531314617146637474451753242517554726321346321471245243571643731434466433274435552477146144551633463345665341727157755172551653233461347113315344353154433527244512557567132665432641213665612354442521544743577773145324324543321574742346727627423165436273535725422567351464326626471311675466222417455524345131777721217767772154722613236153252156111216177314727212444443157467211231142114616526672447755115245261475616367253152426433344162617751553473431657133675343141233321415656223417423623557153277632673472433676741242627535255132432771154534341465746132647554611221436173546624422424621776572513656466644536372435737137776257555433437173134271614527631456534316741662366715176662554723617337325524762553373373457253443517531273762156477146475524177541434665255363344457437312623776143531346716343721653673275465463746114176752245433644353233172377221532326643476174531165566726131123366263533543126334714725522735364213466743444317111612474777436257537433771541542634163672536463546412622176243546265444722577245217511111746332251125537127155566446751145671227341145146253643527515623513636563776613441124517551343515117717276261444567337326443135547647511621654443466521366762556433513675763337716652627637714551243532337765765754256142243632146332574674373771416333557252377222363163513123365321517435664677246564746351727543715767655346352342146713115162563361257724644217325115537356435755213114772313345747512637674372212433223445771516476753744413625262515253764734714512225656351277361117417723415176227126645154714225466361633453265217213612322755514443526174424245256457623111562346632541273637446333426726716342234511732224362234677462374341664236422654414646437316556374563327151357112576342413371132621142167325346516563625345461742766275337164656624315743423617116737562677276167617515767351473267256436566314366441251276435755614546336266726552517737513472262547572422413363654647637377526173763325576246444721615755127621236663343357113526721525236322344224567115727411372345177142276732321323234115235563274371531433756727233753516466625346421573262774721327717745637565427417727316721263165271754734577447552414427535154664661465744712776351112766475355653123537322532566661277146665354756232275357526526545553542277774611747416562444311277453613514365471541427664426446513174555224774141322312765621512233722543132647611233541244415731342516122327377533217434215721154436432573524517131265576371426261225314677252364573244273256214327761542576635275623253661511334342516766652412364621212363525153344243141421641333554613165112347164471532726752431723332132476315756233426323667671124331572444351164536362751647762515775351617126572432527524523115615343544546326662144125611222773631214652423321545261743174374761772561634275443261365516356155266445641261135364414315134662571355742752264734565226733431571725512127357752422255757422412573465661726624266523221252524113351241434236766547261327763363731165331665554347267421411651345355177267636473333464546644771646346456452323665124671565375451225263232574763514275364123752714543277547156426257625426735226613343317234211125127653655471312735377443153276717675264733115371241274512122713714522235635376513533274515711412765217164724665251411273174235424156254757357265447466777513246763522327365324251127127161326324617142261732446661674614656512372317545632115165345727424366535767644531651557314177153513366274262654731727161672516151427336765263557762777257347355421444454272467456655573547575446424152473651626475355531622356321137417674765726463247431577533546516617215177755313447626562146737711633453552412166747626134736137123472766231346143235741454257363643132764117136551366423151217613226315637753522741524132253233444476373377763276367614132446123673633264364614542633356513435726411137576167645247566341613526357553524543546254332167242534461336722367634662215543552724474527511157134532155531226522161634675723737512121613735677226411172614311272575775471262224755275475127256437136675125331747666535347364141244745657514721626671436564317425223621673275461347423362122265117472572232171235271637152472112753334466766721632725633163274512136415475426573775562111431111515365236671552151737167233364436365271161245354557566522147622451262372435364643621574711614241477642715643347642121523623241471474575262627614126361753317341571261711373464716745733574441512737231371647451344151521274266452416536733677735543736756514353624471374674777455151765557225577241362661361336155143611742522546766165333566463117512575756234732652425763743244334414321235551747211711474632254736367413351365325525556351417273741712347417132625574331413433736232366346443645415751221565151673243776644322762661613152557661315615611433542721212417176265226721421565132355466641547567313315367555351576245123211366231463332276724114131544254274231217543663466216622676315146452572557146426336332613453351136316664571543316341633111536541473452753121461325511111254242371751145567535667541552617424665752177755632521675754245217676575624712415761757655373725124675577161442341356435354667313112662561745272346272631331462662267337545356512433736771147247465432575343125351544453557574562226316253654413471245534415153476347274563325664672564234142334262312677322711312467213712254613135234257553723362324615133623227662527475667337561263176351714672145224624756646164364223323113321132523122116124453275646141512515167513624425274535411336477661561642224577431173544776646535715711324613755756342741636512423133256656253142716213476251532744463257774412513545725644626213753377371153334712413317612634242672523747364175257577671264621177353766726426143144123232733734171561472435263576122545142554175354434661321661512666513657371135571367422411651141121377546563432461434574653171372533577545712261334725423723763245626663564713256551322516125452233723472273411466622212225762225527766216571736637762374172225176716727616113677716246656211722722534636536226237154743664766152444127622534567566362541251276332745646114572651517765224243267364251173553751222132754311721166516636315512725342541211475425365352173564766614777131272134513331432121527472112226345652232676152354435416627241716664721327224453726667572517631511322344266734346345424566561743774341677473137764626416476563773427576555271277762533562341757323314262112233232415654722216351512127332655117357146551672527677113256535356213321315474657656761326263711643216236715565452562624533145323543377211167746135416172426241536256117336333246627537771735717737651775631246147222323425236342436437314441365327654126653616153136761434555417574126713265272574324466255717767312372731452742564133151552652622743157326532711435134223517172471715741625136371226542113113442453251434157771213176317732466744462426244144366576436531671664324577414141667457234217316465216576547254333211324655515443265155722146473723256644334112522246751165136341757744367111354471217315131774173776437447565335356427144354155365341226315231767622737464263633467623463175375377664544354537117163431652512451431115432126136155312516161225471772466572575413353634634667541632267157347112351744536335472454514623657752227234621653422661441733411427531655357436671267323537161132726273142175754714145511427644156675322521237741354225267344761551372565717774142453373247535724745333735135533717351574661563366733447142725217144335723112332346772625117721746571214525162426215411121223321171311774522164676557562515237267412622274412173747726216644672734125435776215413524435432731223546472372123675156613456651674361131261464164673474632517717446452611161566347526323464475431316517635725643534556736465342564455441332717313172614654317657334171124437377517177466237115247667673437377361361346152764511677756333352312337453471512272351257212647261334373634124244373531662146756212543237551376146311517714522543637253247467263735276377652247533457164123253565226145244557433612727333642217141766622477543144235371766311216415417557524237654433542562513365126113176521577253547615277637451473613465666773361253113765744274564745543453271236547256152562131646334671212334321336243413637125761357472535261413221672266371116145215367217361634114443373374327137577622541743345613333674235242311413556664317112455735351214456427176114446551725532377322167742142664427476472354574647755162367666332373252376157533442367416415431672126357355242576625777657434625236175724652132735525413565357773773575312415517363724412337427621272722373254212426266511644646767173322637261532362233327724714624247544563636276412754755567362677654332636667531747556434463753752415712771755152136673442656345515477616775413626516154251216766637521512263555546455113234133126211263412767544513334747364677517647221421414155427115255545627724645711151567342344272766442353141741756126262527151446314441165152447253212554761735665333532257414443763241737123621553137345327663262416512515767245562627461357176351231422332357237321271447447365312563616144267132351425352421152421723647465311447623452624132315577774634575752734212414711342713772576255642256571731433656771262543467365673654651135514523532116355473273652261364745316673173732573232637755215511253243453757241565747755666441675234571277233373171115665633724646226447462723343353243757342626652415455661114453172576432735623175734432544322621712666161762373175551625467743254343163261521737674777656544262527235463544741141552646623243525441271564362366554651633167332116237217655215764542726245222533556417414236744522614642473546215165727563556122323117357744556455361256625631164375432325713752472536411214214755427552453741322475347471231626457445724321444674441411533634561646337162246627275355421625373566523431754647666423366351221561553736225511617542267136347421475161173564555633752176144176256175275455243137346566462713622541351235152554417365245355641724153215113261733763626343141243651113714443557147331365672126315535747574251166732151652154625562275345763172115323411526227167316154642363463335666751614733665663367526276523471316561173361141417472411263424765735745414532773732262422173473275163544316425111241512112553712512776327362173226311512167457642141612642751314345437655614617225227574112154521454461143645767571562273511113342777224571317367447676247457674175127571631661644634657616617311132113177266373166544636537561613214525644564173151543517475566176667455234544252247612552331252241126632336154371362457624142256372176431336166116463356152311232353225352357362137576476736753312535472536557762152113676614236522252435422312536157356246663645763335267432616523567515514161577134753715277163541522363172262265552753614623176252511711237456225434735427746674746751273147172536242713617666464271222545646123746247547537566225451534421244542456434516555311245212754217664132115456245165121743241651757373674343176616537644151257456415765433652642424577216445572354143716214371552322443327767225531123753412556712267511517642326531746317666667115167247335467344431372277767771626544667336464731167327437427421416165131171475623546611654625165775521721271653341141136432347241722733244323641645162744261315371513226561245323132246775126757127453242465321635162771523432334373736166711115525715277532765535727727612632475216737713172766477473454656727542435526747355126265532111122276352724532677512322716317332543572614471657721264464236362646137321151157253471757612431726542674613131757211325475642144731222513115223234376136124221734246431741664227647464365621734441314372571113267236656451753417553273363574723746745523711343427741316567272517313164576722364461523572422763634344633426766335516156427616272626222675475241731756511573522616541122662316313571463654135327214327476647612262331516112753175636577354355565731273125233643425275243672452154275417344631264714541227366513234715732424544246722744114664326717624166553377263477171471132143734544431767117446456435432746262636371377521455413367144441256553373544626764535365212557675553722417172677364214145322323711313644564755125646354127351661622317166565417174133534572662753324324214745754557133613171217632475715421225514627172421541645174576341554234717737273357543454133761236663464377321565653311623323457336676426461557444665767312767613613456325474557146645616275167541726657431175172166567477227364416264346355166366254225356275735665312347256125153576344254751656326644663616524164717436734213155742541122663372774741653475713527774116416747237644643313714475364126656554471575352523123453223724623611461431266442653321753355146441576742761735223455763211724162141635135237753321716231252152255342255672676222414347474772237174311163362273345713743544667566326536764175542443747324673663614467465216654227425456237636111667646556435766741526443325327317373251136534547721576147763724155573616473171264353166276411216776461441652167535255764736151647617643747157232146666453257246327325512631563277255733342375237352744321377727736642376447372427634465436521635532762635664737733363235111263745135437221724726355571312332635542316437532224153744764321424311653517462725524117437252235656143425374615461163235244576374272644374154642742476314674534363641267776462767326151552225563247377477347655672677654117666324245275342227116267356767766711525356114335347376235234233134217745756324257111753567313536251165753625334345452132152426453561267651514152637243361624471746175175255774167275533525365352312221647536354375752343161537172313616573431161777135444637641773453424776115216311766541626635174536226741671433631424677454373646552466465642135271677736356743632177146543246677176762731525217321326222637437437447552545357372345356452426361426313666425355621347224456225461321611653412175222344622533313445637135467676332756341525256523326222761652424713746721546521753764163361424234521524511552757347677325571123666151431526715133232375264277667564541612634351775224733563552441125237512156145561375645114467514336277324331217246134556224376641572534367411534431126641411365554727546426563337352337417547224627676647636253227554615553624377471454447365721776457136521261337366733772565655513637471627643763676265543232713367341433527227511447125641742412437423766117162147261646744315552613123134244361426474411142537111434746554324465336771115261362546142721444212646647757577637173611214452172477365273353236256556617356476746176526763316334122123261127133634616526767615336633161364216672364247737242664651167117547431761524531444524323422544421474672655331374157522775342625675455742575545354437737563766565424127411364222775762647247135661363344463175465274452517422311457174453174644473247521474645672723362561366636263336476152743135575764713776525142611637724541217615327626511416571763765542564655527511561532423532122676165564245326366453724467773174724672237151121675167547537241553143477315511677417573467574553171437372262343225274554524262672646716135453615325112455214514672563415343633475377654316757457547127645341611542421251146125272114272136227375536555763774614136545142773122576565253463745547335243343755346314742311725573535452127325252713517757142522115764265131646157422436444737152747476313317326372445421215134432371323563516355512364514337764133366644326164656174455321427743361356771517374114563414545541211435346331451762551123411375526553471443472612177322674624416465635762343535746767361644424252665655722374271161227324655374573351262333152262324255643574253422442774213322664272775245764427573163524167455176265123531264133554135544673522532234617745352726442327111452634761543557324517563726137166252657746224155637616327123223737226333245663357347173225441755771733351157475342453774552656376463121246176743111412171366326174417525444342152324435673426445276162746312517733516276557415326345532563754161433362247321242716462742246766131371535456464774735242577575372321413242722431235761131177631173144551654127244642155365357566712551545361415172421156515664665233321256237141372411372177565212444663425442672244263313452314567147422355555762372742411641311334477624371271347445716772234376146722562772736214674415731461314327465676773723414164677747277723672551562174436156445542573564765253432743516515362736376565375733416713264246664771741611541253515515224641427237344426672637322772535212364327443136717273336635711542772444572224215145511365175343654717571713525342123252772737214625516676252716322656157343465141721512541741613761716752411216311563631724126524636423774116746115421515336172674446156457464365146331763764154531445324363723637463672262617353321253622114467547141257341366132151432543313371474522556626622741774262524263243625173176767364574133315724347633353663463532212715455151616663121417167353513615543361541432654625645564145446314653737273351744641527134611532221414333762266653724641431524136261525214343332623321463656371316312222666222414145225674433463444556136767232536467356623172545123137636643237765633616325563414611714612225115711311134774454236337727252754565616632433717524341244361667245726722256461532256323662141175617612237715762377142547645155536527733133741263217463561265642634536253451611332271746776774266743563237332375625723734643252247637164327466352165557143562726113722355434452671345552242453454766224756324513647336642776353742574263125415163135722223151546735563166546456163665227535623416374674661537435735446432323675635225673147134726574447712363145677477115137423312757757117525275356267763135366563551672663474221751156453213761457541736377133347356314646154312317573543445772127651346163624154735371656556161155323141332147544415613561367466317535761266353124575253413451223317216335174475166623255434655215245772572153763545264646234165622512763217576753673261114513314665765276345153553172214666236625534364212731475725245635462443226665326522653555272254632177424412244136414772423532325645617452616331273662145437663467352421622444664264561243343711737171252427227555224351624114271221346512433311134562663265725237375246521162276655145475217134163521463611232121734475125121531212362553775111173644366112364326646113413334354731477321557221174616351573247544774746114225334135753733461554154651462715442254153366724161515373443654331656364633545155336256634221764742712565142671423342145467655463574154551157122547664543431377551365644661674142147515767116275235722411671225332473172124143665471632121234776236636742456754624626142375666421475412541346142434442561467243413143411556552636472662721146376713265543311675444743335452313176434217631731476713447224345154631351345541612623156161635454136265433277471552171177264721334364226437517555114216335747112651273256131126736561315171123477427244277222115774225745256427571416326237457356612476324365244314336163737165165435357776522364121746243152762545464365241561213276124442641114664412247317441667613247344666444715431363436425515243117665523324157327663545326142452342125356775726776362714731266534637465364266266725236622141733326465133543353265611614111313544574416154413631523614214245532312643662423625761341773421213535633231463666565522723454475652556771741427265756351516357156223122325461327725744125163162715236551311553555451774512122223747624166333521467556236541772476462111745431566545461356567131676211424166145721561625675577577522754363317223262463353744134116374144476417757116535141543245275672343115112123166513551214625416743265675211517561145167662444437767561311463442457367245422266265245275445771247116724676225744671422265166313324335627632445145217346256716342165667644722625457414442253127427116274665151736771436653274336357367766665671661735513144677635565564542443632734526123423477366755431716261474245141523174223137564774524573317224267611224526666276742321751762522412644226175134722264362362633115461713633557353571321466563314755757453131776266412561541761556264332646736574434613767276355215731234127117543345653573541463167112435555423756535725471537156751235612464772745556227413527336452252312721126774636777252315253371644145156657343233267421257517613217136734162325745711245137137563565472271433227132246162175753432371532675331344662567767414751372545634557625274364454425333372647343112214745514142515332671165122443764467141655147574165374116253543322336323137227525256667615263535751522245257142767746641557143531514147766612221316213251265441633231347121454514425744272646122556673625164444127714343521542721627273112466272174627222277572574625326475415734411342661641121422155735517373735761251235451412747543323243635344552516443424721765336564742515273544327753454553276255741133562147511677245512231766464666255573453543661351466575453143162633217564244312557431276623322417737717545266334477627473134316312413466325162521672753266727657121466322237311473777416221315217256227434476656155137761113624653676743472256174777715316512316676414644273712573614336216347331161565224436677271533444371433554733555337221247232667237462751353621364375322354643575435733767453422143716343631217162766375433715331633551155115235534363236541273466645153515327173542156732253521525224574347456733242164372754236142533376255142517625465654366274347661625523614665534323752571145225316152452142624456644724241773624443722126417145732534252251634421622244715113576742571627614447441765465367546445725177277634512717446215152137632453512416257461536456274411415653235315224373345213132663745533246116642261535366513163577263517422216535512341321531112731412554115757531175247433454766127416116514671712537463747545551511413375165366652531745712556647112451257726673167353164341246246513632644645353221421255471235717472667343772323475413244377217146446363773224563445762432342446422252562114573237146371445513544761257461247474417431415355642242477546554625275332412157735362542516574177521453525732246664131423364774656725476173427216723755374114512414245255636656442747511221572142665314717765743241222334424631722764554464361525647173656432643731317157517672465475172646723337561617551551627551367544446723763143132226427375334412156157456663377432363423266636744763637536267222361734253146154442644737646571141334651366275643141633721611724147546766736413127114475657752466543444246127442354134723622761635463727522565722426717311521613542754726275171434245376551552137434147177676752367217276343666532347446337344514436556413762655222357324241721474342323532127653171243567752221766211574626714225331637536751141163333624634346113266252157375313536132625342352612637136755516172716367725252543725722536421337541366472117464777613767721755732771731353322723723422414623425625732156411724235461633325567462265313355346151631625357736716235175422267176262454112176717542351114333343272437257367362255512624257625144211126265224442123415234226632453576325757515747371115547323652242175612654457517732575541147274574364552131222315456333337466747416254571532153627554126165173143652432425632224363615534445741446613154657211741332225751476543434653451372416532753552712766332627265325575552657345546745767263222165554322427455232146646766327527415736212366112337223123755141772616641776671243165677165773113464441451442465114563413313534163537674742122732372753323576216672663476671764334423746336267141336615566776421174562325245251224224164773646155645776625452515336146556243167744554446115375232147734651256354622366117657573627613417526544236466311375345646541711163741464434376327155732616726225532762534273136763557641553475262451534354767555144232276657576644637456146135651263413472441335127265113625322557731562645167573524325626451627722217363273254655211674741133136256316536364642562663257463666674645511457234414762321256656557243735272236677277532661457435353566476533512433515175143226145333374256541616257157675226134757227734672172737646637453375764735622422533726113716155414224717663745222613435736634316137527577274636721473366354715521614775725511424473122141452224326627421263446175527735112345777771734263526437172215617243753152356674257713734255156714312727246235553654161626423325755251315131626315733714667322721646771623625656341754542574616714625776371275732331714265641651253654624634557173274624517566124412774577355365715517152251154535745525544212713564573727146621434276744464666254545156263145217536533173553412175613522147661644527226575736136127373627575662353315265171715617547123173573121352177617617361346361662241544712122274164234461326526742237537752372621454723156142635162155142313416653456775771155764111616241532327764665464563463174275212366537436224664442772313742564724576653466265622223565751231633314262541467342465134632165257571227314452416666572155474111161323355713163163732241177412521742417172522141444661163144336534774725371525552251371515242114615227156232721235364456273374756611536543655171537375325564273255341336634434577447263641471126653615577344725762722227377472377762453577371771263314245215545534712273323312531162627351235612413543164336612621273231343145376653163626517761122445672226755733252543324324546773663115612415724217743315752663352554245416322642737267176265622171545325347443647576676634417737774445362246632722623475247343233511431664461762245425231254411162335315154154417242676125676725241113612436777135214136617512336631131276265171632446436417542526542752671421613251723754742224271416576652152576571167674726547672662667765235226425325727774765155443533367271144676421421121646413775334255362143615757273261133532266723552766357154175533557724343144422627456474274767434535163467233334463442163461545212727367374646426752361541724545651711151536471217446633735522326437535721661123756752345121353235222614713214423411546451627143555157567211562124211166241255633452527457637231553761715743437174347325411333512712214121374414241374744117452753364775136417223444157661646753473274111661512257556644731646316727321327471726114661374477421324366631661663673253414763735261636521571771277626267667173623676641732123253245164243253444745622125331746272112636144522225716221764162121422575432174316721734142551152115366141441174115172625113211533372115353473773624727631143325566766635175416162573556673326174714767477357157346725624146156647237316234353217272654371176173127751715332672513772532554553265173363727226577211374542131347167427723144725746175553765233353326321535137534444133442356773246762236651735472226462737521254163277775261732344123317362417236667677427523751453125753325252237236367243541617211726442176233355174231514716637122157271234552311734226516462513112221345633773276717571451631331464612415724444245325373376423672362534335763426352772343224473533725552251533567171435641311765377145474461156165222776141341177225156535542551473674411454565526435311175442521172544621471262234176115653135435532215466415732332353741454221773315164625511655173417545377477142647243124211732273361112761766163727222743246575745245444634453755717375633574477134677354132547352373275555226232622767514757124253573352213137331522672211114431171527647354216472762312323176126361466534165736235466631231153722252224643457272742534766175377524737425754714212364164773634516223365264655276436235645222664425154672257717753676554275555136633333551652656357336666345252745311765754243267324113761575673543531446173422545366665744543726213447366641226154744437174516537175135731764761465141262732625635532245343643173727735322413217753376733437157342355277351172716236242516513551777421465666756613646226771465566431416365264166362274275344132776756115635244212432142717312621637532415242672135452642574676162145217725214527264551132432447564415421143626544223435611755133674456563764642363747537645442123671557266552132425561564331544234273211176411553433511244421734553176225156235571762175541644232542463261214674773273757145567645113522644344743264463577256243153336634357754413262531557413712355232566665235653137316256657125647737716643331753715634533645342455476353717724536312775363237416165112524525367122323261514545363175366742567613156474545213752453111115374355662433177722326554176117746475263536756741374263664515571542267644551466515325523173554741177264641171661513254664253761711127523724723263422272717225425431523125637146577721213244726652634246121245735721143361162741245671514522324227444673113216424113273766121544571172572133676417136534356434174224475772371232245112557422732464243732173326533345422464671147573167416641615331723363753276146565536423623347453711216435453431314157543777134324455422377533665414551767772535312255374451756437776174715362713227667335433375416226127555645271271235771441223145747634421332561725415562715311176761433677746251621411721443653562726426424341334515616764352631144175757474641332123721547143157651556527313446651262447453177756223116737474471421765133442451373613626557227472572315552126256557231117242172352473267311246124147267275324641113333364417432746156215647334546771441723155471477227175242515426653764274144214346447373446222111477227645265622677537275726146227142226645541121174224637553566512144741636741167513375253733525123426612476426466737664267541344626576736777547342431156134361752633535425573441115222146576775267444277151435436147464453244174241571676651435242211566222623346326327274451165426575327612136151723754511531272353115115222131333537312476536754255755617114247633674144716624351157741151476452742556151732577575572677747176314651567574143233623113726127651336416475112325717227522534632656637477277433233265237473155343346417336413747465321362611445112152726757465343166235316364115322623612542415114637461211742463665257445575377772741173276356646553431172643543731257611445431426151262355642266275355533217351356515734631256117656521152727155135532326534546433215423635743545432764756424367522464757554141714114672643273254424233277525616437111265515143625231667643443216221351132546137664643731366617633752764251154253746441577571665163262716235652157725175165244643372514527325534526337255711476737327163135621473237245636176713754154466261321754712516616417715414754713256343744244725767167731347631166613311135546456355341415562617512253256734761637465535323515675712341354663147725472234615364276544662367765667446673363733552526115445433213261247575772366632653317763415743151127731267764343613513263676375327314523432265456131351751611533473145422547415421557755745712461766641125267732117276773415753753731153762764116237727472266574217314514172524546652523133113444575345756331625773164567172545224662651415517417635215225372215724313564234275251112535375627521151426153674432632126565246312437563562151414771212761525547613761341467542352363672664532532732266425313647116376464251425632757633565751653413362117341734143235614472666237577617635141464117577141437244324216113716765566447564727643377727631132131771665643345232673674751174371471567364611444743324731237561747727146647724411254546773142236341366143155637155433432747374222367315614416413167533647566312451571373134715323376762752773257221467764464337676566763152476512661656336751751727526744314366444643615414612714767673335663531116476351132343753632366144527732662536633167464771226244527622112376351771157556612526371264575134763163177154745136167125565212672317521546232755753666556466666127162156113311716576363233122144764312312633144735753417612216524265316763267772471131123345226744516374734135414531643376122117557321134631572346352672524135774147263655124463227316672274174621537236142677111751741161512263356461276455366555751761251477645575745573441316114223247411314255662352726757551374521651623442337575767675664614476465661145261352241232117412142712667615444661115231333374617722212363746435536452716257531743154374611554437416677625511776323764345433777147631733424614456145672456667673666763334725472427111445244134522532764477247571522557474216663135325764721662153341377621617223156546237337546712732734224256453337154227264764261474217624472636754365324222652621433426266552346116551264562664131472212266324335313353721226642612244353225751613257542675562163226655276714165412557146627135357335766766475246435543525432277133732531461226162645121664174726322765733165774162614712433737772262675315275724226516153545546765246726437132463434462635522412327121175177455722357645427761124246255676734635273367732741163577425315121475234654667274212663734465277351213571366317737236423253612751162362411542445567542761263561761226367535771541615123343531737742517663354541623344762455441436527615345711113547157315252326311272145537551125234276724256111232536212367312236556551167117233316131471531654642516736151165336353412465553351433446443562326253415664533771233571455733365274446235612211245615663456115736473327111223456131616265177663543165177223577522674633453543736334254277551532723516163441653517345164232214417672571346344735762477124355116116465513451243742222133661372322161142326433731242365744274326634751223155567515753557277643536234365774442523221616736724277224763553227513746127712725455517216575111151364176711313762532553532244252377721642762371454742415543267421533627116456524221563337566632775476477345217732217554433426636466436472234231452526162434237216144723337652131213213567322354267763417315721752313653515143472567742773566773134522764671141421334524114673325771217577625766233615336617352252274363455154177367122124753311447177344253774642755177675226273372357716376672161611577423353573131731661457767151151213547131435651737276275374321431726132225773175226745466122174367313534325645551444324337457216246613455251126173636451436456474465643361573312716545627554425154641217257621111776467445227735422443561443555755734772623736661145415652247155562362464156736243114573721726614733111526512346551321623626676373714165737374242314477171661631222527534464211543213122271364425612754534264442673115425655231212311753364137421741524373146157312317757373334532573324647455515656653714257722112546222177652446344735453356676263774114212456413216655374173713272724554613553275162523132534745256723525774424133475721374712436322774615246671242644774574651513173473111172325423223663451442643312724143374156472752436464667222425742361176745344516555244277433246366417413151633511425244111436356137262516672143216724546772641463472544544767312225661472566544374562247546777221611161357233664443767634543556741756113736435261477453741425312317331544516426675545232315746211335421773755635511225566364314441173213577374754217165124455213233653234374613323442144672433757335751571172333761214675157564511325466517653352464163662547321354212274251525675373753247362337152271527772562322637355374647645774166166445671774122563256234625444353217767161514762316342635471145366475515565265416433535216223152733574364212754611165625557256452743572123427772212614461516455752322425166177422512162332317126347523322342373554173347571613446511153221351727441764653744211263311623761174747147545252714734364567775776413426474222323726356625634435477732712325556162737532415267731634224356744143245331672432526521344611525422756522672244537373427127312745243225426532215356527433565762527731674557711546321474153662733147336674765152774155652247455152714764474172473227615222377775116576345666246551551375534545446236264164717766135364741324172725744462263263265624412455274376263543153512722623465634363722642326644136237423751655213476773236222636461534742137757321231565477763542726333556454576532722461451744337152547374655641232311457653417326662723421374321552627715346411277461743163516773116777644475625564661217572462173613677441232712572632611157351641342377432724275467661165134227444524556162473152241257163425553234523522173421735774774346225442223616136472565365175433355232364746562531621467267743212124243737527174255333341356616117435722115234553226644711673523566462574216673324173615115356645574765416215631452652353211176767466131151745774371657277321311347262377574415256333344415636674533163254536443315552323717777362671316761636357144466177717636137361267363322235674675575672626544564622255311277761542432514462157633262622653741226351542222346422132214513726732571645176253115427532324515517767165716743355116273445736627616636436332667362373151653545537523376241537476747445433117664536265722165245752117743254332626444347466373117322416734361554422255234164475447612475234411155212136455215662652723645327526347453337141647244557733656631465544276113377233677514273277256723432354774731437622353662616512755322623436412574131321612564763525721455226416122254346635334675511556371152764312146742575266137115756174562243441455625453256361175626466572256323716443161121331133662653761623333117527742164217517665354447662313365252372722173772537275364425745562123234535135321351277642347236341773346263714251261344612625562661136155456164223361143245715213336344772711434773171315127641213147547741215524223365116264224627665772713674227556366376637412513272475164516554423353137211452612263661252221662221525655713274422671735251247571764441343652325414671536663542751435652241473153634727515173372444232456425144321133114724464541255532414417753166367162647325353727257522616234174114367422246541567461543566376727356311534512572547636315246747175747734576166352435267113721131525621372211745212141752454556642435654276373224431537164453531614512222753215747733633411174174445167356526323435632274273622475113232115656213175224555241371221644756643574174536323136177212367774551231547214746462311441761671456611666727435464545672271272341231427231213643336226436666723137173227341746212143676676477112743455372376212425126176656567173432253423554736432342331217327764121564743445422566113233366356671141646123666164176321747576556673151673352177417232527511367356555754273513554516152123162711676414145325674344162465774316476451154625414133451731532253133777715511341155333536511747354664576456415622346633625711146535124163743435772574265667174757563361567333723374723613623431371731227163455115517162464626177164276224652374744164433126735143574436215544142667322635537335726452313757465643516162645772564533673161137524214724211771357725314634641524354756376516554657417263667753371166637572351156727137335423163164156237466513376423365227537255574427557347611542717532616533373755623657757725226212563346776474176453462563326237526262173742451237615753524441424342552756324447341267531376552215464671623371346454547771555776655236232551724573156246224625672516341427623363677524446247727171735211272451131723457374476326523344364643645757335366727661644177747524772411553373316474562213376251742223371642273754522744374222327542161276417715477674433746271246356515456457227217742256277223142632477355366427314632561422727324573522362223264641737272514636225671126351676373515526716563514415527356546476166632442322764425176244122771771575151413672345766723425535736226634164365613533324577454366112174414253144426751541616345366467131567164646634177251225743773727115715571374675624735543134436456157647161457342746632256523461377363472457525122675113775353574444124473454165446351651325776554166527765314257776274246146713321314374146574575314131756547113354114422371752423131325173125452154426757154316632664575716453662244232257612615175644345312772145651177277471211615332773463516475516427556671762626145415175135616552541431547643456336135651442421675732126112367232156645721153354751373224353477724617312431166465426631476747731332463745144123754656627623731174353546463765264752755651354554121476444654673211577265433172514755523321672222471531373714266664446677711143314377427131457346623674774117431271144146375442234615276631665125122447471234566341762744744555457535615641327243352557354732571563256732174721367634561265436415733747147552627574364323266731544231146124315376125457777712776413416331652523544473514414514554726562751334517341532263744321114772217433714142235343731374515216436472714517132576263424775526373143433725732122137613273766615131465167653274322472723331213725164763761372144214517152273476314614213454651272764772223652413775535162551712227626231437767371155664252244466357314546435565773462127435713632573246123663464134335461162567746263276565134446173642152331225235666534351626626233532164277124512465114276771634317435256162553122633364264357621565313232316611114343751417472551222536716561773447646177147235457733523513623161164775613645514417163545137546565365767363735476575152665633573422232167473253724632722614265537753262242556261754267351177653767417533732751156466534554632122272156551746254234171465141464523141726224732564165334751127611226317233547615434261676122272335256212577461343763163164275541357371667547665374572122542326345276354447421247631132227542415226164637613746723746471345436352162754756352245451421656423357476664461327545323565753624153122612451613661432772567163577712314551532232264555735744233344475752246451611357254767424741477315433471661626745343474177251312156436424527515251411222341562771533516361232767141364517667766152424353477677614252624713612521173631271272273627112613274467616273333562613374416517231771652513245515615336167657773113162263677447241174613711172473113442742616734134534245465636241615773163155572146573332134751743642161577456564544711213722235423741112767746523224256651714667254356565562544176525413614473427766735425663373366237631262434533336277177347716632515744327663136156267224134711271775426416633547577513225727757267722764667154333315537433431346351657247365111552324461634761536714147176511775121761754353546347163764756755571666774342616453451161656465254344143676271745313532527556224641466665674612443726217257271775734533433213367672623751772162675462624356616576171366566616175745231765646526437575455435256142576664361234111161735572416334513572341464215314327276341373665346572641372124467577333553252775665153312625373244271466774315164613243536356713523573413234743543761243272712355734215432135472161226537147315772522375511467677122716614744544136277142121122124234226522277572522546742253365727532314634624267453456675134635712254641232662637175166562164754313667624222476416314164212611533733624437766547361777421712156361664427316363322332474665214152147622554474736371551231653367516561146527223753232444443712162741165757672271624762536137357444662557457676171476652565722677355524562563572752631121722211346122572767251555142264256317634546727227254342157366115157244521433446374121436455467376213565641375144657112761421567472751445675413277172467544632663161245744576736147216364147347646674571352164161723751466422417476766114224733134433472455525456354476737423646472153317762737576346242314611667716346456643624561475727311411511446473376661347426222354325516653414654653771653575724567331236511276563255332713524273236353223353141565311413664424741715321647263343165345545217714724557645574227437154742552664357134732411733117116622111467225127433664771311243745346425336232115574275337363776524365131145366145566323261657622262175272741645534466725773166415525355542637573152743554264126611555343545616223431115643346151125753336227752415526324641656677515731664561744616551144323123275161367746243535412437262514233643712176724311141325353444266664174415277731746272631314634613434274635727124745242263667452135444147532545342266316715643766623336313576324543565375153561364611642121164547227657566735274755733155363757762156126733642241745262727435435642654666245362456116327463246144222611625363432444216356612626331623716546111456766634526177644125537474225353252155637447345657523563275742251566342375341157132411132535155143711132776223136377423766674321723745346162415245337527517251343551474323664421243235176124361747717452747511535262161673422616527566752723716634733134477762544633432725336322616332172777364747322514247263353227331542471265337472226335564217242316566615431417541475353673621152622614441421476547274665356574676251516561731615545235663533342356331376313564257172571145471646672234774344772772361375256332342556166623222413632773711655271545465346567132534744437434244332277634524646723547373247654411537624376764777363322756745475561662322222722757323517415144614773326651752251312574534351153653276764763421442631325153272556177775515747114317553367677164765774645451463124163331332242742541236773232644454716251476513757214773437713352663671151632236347657122114542731427535627743776665766217664171134116667655254244643564643352476176774753561315713351755314653464353151447612572721136766344722457656733114355651763663527223577676512123652347346135321334513663454766353511555562323546121577256545373754743611732477223374411376127424227421535165127361142272115757463535517436232371374634734431511755545411424745116562276752223321775566721336236125455342665126316264157223747652427243523244276225644766373453635662245573312135521221157525771567713673124437222454452334244433435114437173125362741215632364537351114733355774277331714244637564776372737531167213425242644613413353555522547672234651144636171436114766133223437235452235746211733422346761444311145351266716223575741641676446554413524335357537234427621564553313665221756732765437522512377521217142257153252126271563732724744142366375734236156326512725321136355335122455453416371562334447217232133272156411342337553227257164371721236277235467455267124244674766122732665434311227143576366756651143342176547553677166114112767115552153621626176125146557757761645743436437251274671556455464547255511444472522272467326174441576346473252433664123256756432572336211425762457161317115651232565417461357435434676626573537175756635154736672473254235527541437332137543522162321745436574547572715751324522755252624665451337532436462255564271474174532765152226265473152673743364736246164315344774323573176444141165674334167661334513114157463673573226635715147531152451527227466112775477215361375454536641627627126576521246367245531326321214316166141275125733626742573633355275772213736642133731227413141667471723236713336632743174522611767753416327662564661372143225324433765527617155554724221654316152342244124153631342755232573511656163516113517543741555136317514324674626366254551745543414454227577261127144433437373543312733674624745742515267131524245442751544141655137655661634451326423566214371114772661144422544476756777426447247446544225512343251757713661614751635361241465613611713371373171363233246215766467462713252473642354561432242171156452671252645762532775121332557416616634121536113473214456525666451454756742754224455214267655534562361375564226653575113112764454672632412123112462274525724462743245516732333572113465177536733367251744217567161437256233137477414622343332232375324347552623573264321654117441113447535117377516351456777134255532576371347331257425234346175557141762135177216261625442453147264363577476531356541226454761117446126766732767145276245544745122634432537646763673511414722424616363637534432122513545346617271246523616252465635323157732763226212463411657343276413517127342352532772761735446336771723746265431631247242717642543745252262746122145163475552146434261476614415633552222677275141461531512162764343564754174617757732214324624357637325646327435341661423215543626661445311354772177342753647124112157717245646166733322625636241445457414272177714336521214237275143224553163264527571633347271735341735434143426576553271221334267263736433116755744265371433742162575442762661464123553627334443713461767146315626374666712366761446634551411273234734626765664722675353434565111575167665564367451226752542262432341241727557535646546722151414652777112161143621515316633765553163113413521223263134626325173512122563245256516713514456165457651131545263334346521255115762657762746676233656421436341136334344557637443637612766722137753417114277255551541141633255144425447276325772145342446763411243721147172561115543177115565613326323322512612477716727675356717753315577157227122123212741653647112761766722145367611225472677621227326221446266366321171251252465317243427337155121227466523153674631272246165777133211763411112565624131156647763215423664175245136553651654654375746445265621424373661656453714671456274755131667157346114524215253713512325314422457261654365113524115457172665723752146675326712512367371556261575712663425435677225266235253444234533776552433465314347766332154527237725351537461726125667166531644655424677747752663462512454452147673372367467555224374633211515616155424463332264715461721214766573455225561616471261363515274164431353133234175323352743554173536674371613234156415621167567143143413664121436411162277257174472752332155232162171422541467247434567174627146366432676664727654344353756753711664166744535533361626334233535623433236673566735117753416663555111444335775717512527272277446361324161767551643135246475552572544362361347423746674434222562657476545772745342121675326516774734627521615452775155517577571174667633135513712611473353542662441445641422632213343623266555123256663126322653217572141716611137735441373561772162376317461575511345515263274413654424554724414452122731351723477161557343714461714271335547711627176143344712112532566432542644144667123525736322411454547144541337453636533555635774467574352514543246723371765664344433251343127334347576576375143415124351553627454334325264761242743412571162121563325734534662157527777727331417743657433131247232323325241412517115743365412434677221756121472523411656421665454477675521577142314462234432177437337272262365636266431164315441423543661111764624667775547274346624222434444246534435321332767752375642216634517353724361466575746423654541232257553212352331245711275763715133212543662126342734265153445361773256556161625232741446124752142367254763244171374342254552757327344753377171147665213672277132767564725146262452113563714711126266672316335573714373764366511337321562326175476136436274146213245323466275155162736655453315632354732552467365562346225655432766472757226165735162113671555645615123736754456165366766244621423234547345722641511476423726171314771734535133113344275611637662361465247143375531162753236135474443377315745412637246562466235523243313177751145172157217133714447162412577614443641672615227764164244415477153546637137763751461114656426333617664576574162141362147612544734114455244744161317425576654256176434257745363426577341227546565441257244714465235262424312161635752777412747573433664236444537255546576764654327615331225662626412463263751524414341462341434314642172416552232655734261425766554765135123236425231656122727675475111613237273746225147342442272112374731752475411126254327641753374171376536477512431173257365615336365232172153437446754723625551316233552761443471216711473157122156323623757327451363522241163461322714373345324453636243361637662164525243774543735763323377576115467223513177473371624373444254614736421627777436632352616243645332263266365331233557642565163715245574423257362547634714632124742531164512532116173574266472117252471143436537547137447517121757326434676663647653137711124312253117511516262271574565776521755457532522332751732332723776113641735177342636733355462671613261473273146333345764544643134353414144441214641341735312734572244547215345623261263635147611245713734551464772112425242344357257464733271511123254771235563671556263573563664223523646435716273722473651241562255453326117637332573171215373511365627532525651232541562413775133635771263667174461557712322734337731147447557236314425657742516521646713652615545117764772354126322322521112567477577217545251713336627731227367351462546264365732525531764614751717355274544536722664153554141251377736512176167357756424741277321234225524444472477434747251223246661554227757227373661726747375273341773712725744435436224254614342543133245743476251174532334651745442775413754671111464726475512357657527136516527767361242124263347333445416272361327343655364532655222753772231263227674444116475127415616132361514575241763623344476261114442533314731147522166536566571335521241645661744253237125115142624647135723137645252174775411573171223716441436344464254635125436557142775142666446755452153726563511172727215253761627144357237671121214125743352535533277233224325547252766423677345574537741474347266565421117245636411375556114233112654765113616656727566316743254442241152442336137117751656113661774723366413335357354533353731142453673745267136173667226432635212412176526642543741164746221741332532514311654162377713526733175452533264242762223113575461777635717346654253475726366245235222123256144473754545574311245756171316224774261566435177113572622653576316646134667567611211563151331262756571357357231252322636773232431217356373226454616162173415641763127647173147442441761231726135336434554257214362451564666573245212566173325764351427127767424334524335661567124367471311352775547213772261263633663114153453131252562117327722221522337566111247416626652645266242565654456612544336324627546573763457226716354726562254322362657236352152121414373511352472771115152261413543224465534115424626323643113461712552235757411174736423724363365542777514446666262144436166526213614564342132147265727747612633214774522734142277663667651144566255741134651117277567564662347276173116575625745725763552627757657252142735431243633372563477556414731224651675371522772441436277713124512773534626726154236767167313774265631222735742365375313444643372766171414127257116537274561221317331463764122122716725414537762625763373714227421324166641541134542263474216361433142146233337613243473235755237454657673136221454725337746451425114214537443421113536644512764616227513646212222517575256445225241231525547662253322747624457373427612476376623255463456123143526571147777663112567234757465747627744735125445514647456314112115112616421164646433561323134346767257113231535467757212424753662517522135311261265277442257455636711223155174122753616224171664555671277717432546736742541741426276227222255341254241426522755665627743161625742467642623127627313417626111626765762245457531672143224136311121626744421565655171414136751172265271552722516336467713711122457167244457532454334345646141226325242727163242666332226733155671434645645261461234546342741531675451355775234467733671265341542271525235742471375774124661136265457263777357511371123571715645372322732666756721222413525471152415611712676771723255551222436671362562652643754474251314451432571657156344632312627147414541721716734772465525721634776453547657553344612375266363763637216175262637212551277236436622753674323626647726257262225126325615357632536532456375431233266756674551734771256277752176425323213671115515633542556166732555716577517461155522616615611266676646637576724466567641333351351236122172763442317315431676134347252472671345477537214314327745674153354477341223244515246234624242616246313336742422146762553217471336266521335616234133271522662615434327354734766462613765243435271722757463252221471717434176526612127275514725166266241642633635147156731332242161114362464751454462466431656755165615154652621277536311466414114665413261454413467417667527222622372711755437175746735677733215356557766522422236131622734346274752151633216421235236532156175574121224644577712446421747547431132365141411421776757755732775121356254326361571465573376567373457475127667161147726456446466744773576666674117723751715554451252442422322734136444646535263317555127352655472237733575225656745457426614553677663353216165151517662543331612711246677475312374462657273455656113662543463733412766126364152752252537177464134344347116614713347534644624231755472424375176344426124676321436276541171611655427341631554627656434654645132564641724212574453436713417325413271473724365633377111463515267616656257617413133144214455374266254772172142456152564253673332147557767273551456547364654216323477417326674133726645233754526257237163163566257145662256632667573612237526335341137266242437411772324466323157374232257423575575736575437735156512127762441121515375151155774546752757314527511441366474113561365474526362252426645476126575645424166635163236223663416467253625335121727343354644225165772464137152154222447234656365776346161166214725173125473443253126626725646331741343224571126337323324122745252227632311423366422655466563412644526157212657534131561557211414776714646335327722272267222453763753557473134237541661722256566774443523737553631637632777745756332774317265551645631147155743516717441477355442135333347134526326454433451326541366522536371143172645223254727366131324365512732217632256572627534767426167363673677125115277363151224142117371162774576236274613634242562623132222611535455136533276444737233376556743527344112331375261225564543451622765516653722532663452127454447735527474616253352737231117553567341421171737355567674634713361234367567673732517571263654222356224163162455537617737426757314126645145424371372315441345315131114722474135174425273236171624135521771523232715536761771163575361372544161461354163362371762421661134443522747355775245433715163277655246534671472226671373112532521344237517566172672141453625177335657622611521722225253446355212716762264246447763527165724544744745263631676665147266767344142656476172253233741776676623341546475314542255452452431324652745576346724231717265531662461554445271274521722657443432717776532262373156257446413766366465342667237435243427262671436365232321343416344616734335377137743315453714551242236761421544541212146341735253367256431414262213517544537445715644571651362512254247614762654367147234474666174417511371655225331254734523332724714234222144577736531274447641351165516633424326271412767653117216667663326651571633222127521453451557211717166262514737772241515763714215324243424247137364346155565115657465147653657616333252631453237316114711367441374723125373527561563273222277321113336265541527715224651177231243677525373365257112567611634157547512442771526537726611173421465546713274355222313215226557736413414744372224346777413452364236566252712225653562643272337744532551742365154443536256522536373467655224722366742671552734765345434245647115773363441754564337172415113224135374732241617353263534455677472241555772163121447633361152121346533434543264222325755173215453325752445654417732531241512446712521654553223127474512662227731374363131352774744325624737732273521734263463251623474117214443715132647226545531171622644417712525773124772665764157444774165457151463264352752566544255655513537675215742151341334143541313666565477174423456521235423563143722662672343512464517363641374667156446673365525317356643672372327355154514477121165643332563734162566357717632637534157547733453522457552444747633441515612347532777656733531434762242734351223524523536711264652176371737152434116451263411117417251444543626426365524766271133267245613216152112663462312425635762654275722323422751373455347146236756471623365464615163626734767556415511237776377727221114613671543413536637457552413625316676762233516463431477657243165764573116577535712153141275575374753354243317717336642752543273771337763415427452347546723242641674714445271146473357152317514563373741557665526254252314474764413726115273155663312554113612253566576226534212654122553234342731571413365627315622117422157354433614134736761563714746353221764245761354354343653342117421537245754121647374672326447473565523327623177747431754627661147621252244555561543632224214227122337464243611175462674425737751375354117361571346546271115724244713523563653621575426627421756566731311675377446221113756255743747211261137165117227515344137444454514637656367412464327734161547312715773532573641312376716162214326116473652157317651452371613346261137326544566554632162353711536643674551326216561717145436623611177566521542311512436311374664165254726112353335671443574372612426122732267623413541131451751133745142472553125513526675663177564412651137532314675554354773744324512725772334623511346635233564355651467714315657773667524714532421466577231735134434575115572635715674521744447213664465245537332132624717555566264534367734161423616476554244163636264261611642342173152616325677437257331435572122421611654343436444476543332434727772256514256133574552725452763164271163572415765543654413723221542767451533332216514244636262356556623616242363244672476315443331124414222561214515745677445177212563226476417272765555532232254544765635567526714513455662227764363266746637433213651451672661437746643546612144431675676175347235232575467715357531237247673737552743622712441425451465466662746254555767324376233213152652757175464352225754671211537715123723661237562257747762245155757273652715153371365365512337235364643153561111257726517753676535322537116231346352132231531424356541562416433451575232276351717663132473256514665577731666677667262433147721321272264444443522452634332225467426646423161434773375121234614746543474112365665314716243643331124565276535224756651476763227442111631524337754733174764335273314417653226424117521131464324565336414656517322365371447711461233175574345411636467535645614137347317655525512451445121722424461412416152722171334757241314753134375213416725742557463615213516256117441242157344272674435717634534573636233277621171544245337123574767614434425445632267613714464274256622354232134262262554332753571373432356451116324614331646117247624142627131764656322317327345231735237233433122743215236454116114746173341753161511334362614726433332776764212263427766347153716342532342173333766774642646236164347514623366665465251355162111535516311746646425134261711231224716737725121653567126321435656466263276677774454475346423172131157377271271747311135176326522631667617747234366371172735617763762144247274722553772275666775214537245264566745335566354264775367475224773716533413251711427247336751542752735467725215266314256244412527123753745477317137655512344436551147534313434357435116443715762217153525257515442263227432341652567233651722577735347224547626115132526522673667314445223315227643715757246546411266777322154137341156174152632742741774222626754161711525677214312511343646544143343315215327652234367644537245572244754676775212551657322457131444752542543275453647573642764732427613151417156332414117277672145735544574722655235535666666272665541132733122754531417216125375762274461114271664726146751521331452221432152147452467255447664732165327435732111266225151241643153615757644246374235754111215523714523511226146663561213223114526111551572427276656167322623416226474454716147124633565747422233114541351276171564143651732266577155224433353432156445551166656564417762311564771646433532521416347246577567256343227662155115744151722177725653314274571223126634147256241747361121412644267243547574422637757162243436254161446426161464452461625161725535613554574632376556631541652535326613363757111165761146234327252143562767171171617123747462516724373671771712113135521571753765334514625117327742425676774373247712513225167255436326116556263175345561217325177631543532462671435324454417227212367744212473537371147611623644214317632372656625122722214472722454557611276761574115227767262541116216327246237731563562472766167722754711643636724462743141152753253743147444355713371524122237655263667634371162523515317443532367646533272311554154676664347575553447756217476714675463236216754237236261337237617367773533521354371337352366447516577752434663224456313653421462351367624473646214145543715254322551444273561413227713314133564753126456125277523523254757237634346214217136717363517275121724541451773617617747217141663775442511711212163357261314473772546627111241456774633754514724267273173331476476172467152564374233543176346176176355364642373625273622547566476334273561717213742335511461431364715464476527734266757236263232633473143625622441257362222435542271576177772136354213535771465614755676766273731552126536675466175765654565171266562455335164124612417277621236125372226746457153324444346553365234557354232347712346114652222745313242774241231476417716321534266523124541674135176117743126635427732516515312733744741362256731734274154717212627225454671413676427144646671152213742333514273136153641537655766472636217536253161455541526336375671412466424123271754237772621477542172754356667164677516767241334545742376375215664644544652674457154225255716465252626323514253352615522332372137323155536353671172554727341663515133627555746156334735173151543356642617524331264767617116363717663165737574624312414524454645635353167237723365635216755343137674323256342577373724733666173253524252116277337542344523544753344151363212235221455221615212547166325736262714761674765426764713554447366457266355145621526331526263312261316135742434427442525543174322342366754337612756347725335667225563462214215424442543266755117655324436757531374441761677427575327774672656715552652152723714537546235435236113312517713413167255172745471413143324336677327336146242123164361713455345477433257214516125564656334767631564222152523446215714547156241322645253335711643435121126153315413231565477574131752775772343215437627456337653641152662125536473464433457454653162257461254115455727465324122331456526653465333736774637331575642515412162714271111674631117575166641246547361412673266377451167163121766715256536764634763172171532722634452326136612471722233215511774332665611573754245362622464574337617311561776314152253523173525517552521617651256365756466752523612163265252461431245113117413674214633367647614137562263223624335632461366467163242451663356113616745214762162516644144412412774511323721337572476273545776316656122335451542771621375766636525427662421614715776137727723665536426777752552363377373364553346271172277455713334263424213446377516727675566123441114524177746737632622571413757272545255252165251345534664272211366725744162717144527326136351526532237636246163456371215242235271323227744644322263223631354775231552675453126335567264312122545533122761312236625744376521675562714373345661652467111772772651262621256654133471413523723311447621156644357721262543145577643525732617356461477143357321224577462654722567541645373226357731677266661141234321142475433335535645544752115547753133666233115663457256361134723356646662273153432546315412215542446334545262526773534474634412666621476124466267643223726561646442671622462422317632224172266144245336665231571455671321647555111545434367436515415451634773513777454124167741673457444233525216244655363377451726163417172712647226746476455457356731731343526642646426455132161774271335516514662643471314523624454477151131531714364516261553237561676122214316744515434413135225216211531262176567334114427242163774741271311267323624467323631121627647772237253534274146532544746133734246374551371626562157454457774511331725244436316514552237346611155156672446476251547152115117314122622266726744721736357271132634727346251145551565413522645127633667415513271466221414777614576256326772231317233273613664254362135125252412334665355754411132454167776157324112756644214411756474565413455776363257717562751531211151425134754311322371676752173171143745543215437677766574774314432746514144777761777566366127572775657373774764163152711624574774662631132641357765157232622313772264411574632627545572764226436764425516111414361247546162645644376261762742572525563612777663324334324637177452341623133122554226652345366224542735247553132463552675535356134221655733436515152352235663666321415121554336253522635415765737771613151424343714211162572464374474773255773474725724314543274654453771671137543355176543273571236646645747734371121766326615722626472377374745157347172163665166746367221724521566577776256775662411443555121376356356265154743125273751462623651415334243637252112376456732227361135541125153365525453367471441563231445263612463332661531776754511755414716255671166253453351633721572373111672717745374632725331427756371461562755426272415232315213244412661757631642173737251613347717277475377555776272217311655665675545376365255115227261357735626514445313722533366375443557452424777621224311746767454131717352651743155526533523571174315252537644252735721262532652424151435531245541342471744242374122155537665332566726124531771573621375364726316372274661751722414663332745666626147525623726267546211514414376112166657153712765625167637361111421476425635125726636523641662743273746641443146131712277366563173417363441155661152412452221631273243616614512611252426541644155471652564144435544626564657476135224464177543411772652246376122644412722175437446723161112623111651254453326263166564674176411576614352615644142122422141713163664423775471125421563676177426725557741611623554733333234375217765772154256435121463121452362471171416223177612651262446566136146327153552454731171434214211136151266544171474614747471132155152271755465446231635776722246745365553323266113116576571724731556325657367272512372153354756125167564615624766335653173677612321316277652362234121532722614245377217265335551263447532133467317432351224672121355342445624755612751162562774223656724621316171316335613112424123125571632543613456247652123645247111114452733211246224437123556661611345542173326242575471165644146113767317742755245726125523347241557517474773527323226711445462547421471261543576121732216756322373552671745436452446776565521651326626634617445512312372745722255747743323467241471621135531146653747372751765735231354121246743337371567775472326553376312215642673763652533175653172743274151442747436621222616337545175612765262226111135236272346165657155675227122346771637755165563671552214327554345537545455143432611123664633366742737564312654254471656452672616111271731127634373471446627121743252365477374745315541434346443652277731777573334221364121774473514617121711445156315127121657241633635146322747772513725773637724327145667164274344746537134136552666355475134452256233135647535714543474127675123745262647712512376647462352165561371575577651217215254512131517751131611677632754562253456531535651741122214411761275652436613367373526637361466511375551432662631312115234313355324173345435721761311725547216737557715661354453613125663673466554645324461737427621411661351226713556126322373465627627154277112356261134374532415317236756657724644151577262424166212176764675372111162777353762613123713414234554563654711411613115577257674251721236727272353675455372463717273235231351516116545416755255275431344472553464452213772426347123251621166435172324725176124245552534643571411752365764617333111463161541513777235135446563173253562545735236263166742712213541117273767614532751744355567753155115524515262411415232112727436347712563412664724657262574547464476565225423736514534123467527267756577352765747422224573565674512362427736523475717461757531222461634736522761562542737613744373376762745144223517774765271122363161456363615377267577437531767226354374674424344334376363372424452723474246714347171736475657316617351674615342353555315212342224352343143667235473345775332645373437153553465346563263135312142326324772351275754414627351654176742432656766575246637575563264277444633744623437313474243572222366762456747423554713441722234474372547434376753565221244566136466642616346343511424557146141627674165722547737274663776524725776516212557463523173473465766576451261347377652373542272612662536665722252156475662323474663747735551677714645534765337726335322166355256654531237164156123564673621547535211433442161774252652335512566216453721336546264452726577756511546141114752771457162632747721114713133642753231237432647653653465772366573726732115463457656225125255235427433634473142137652554312724577542236616313526514163424637427314521422453145727435771474436377152224353676461424235465232161175327747446315551313152664164214145253216757635656364563372633447264415423575414334724353656214234615367747611345136454151162776366145732723767572552177216427245253655151567452726226241174137745333243421466677523557761374471244752215354253136514413544315341136247775423145717461145467133135763763644247762121244174721333143532737354463666612432233266612156441316155344135372525133123347375535454177524454526242654217347114151452523272753511165427444565362421614233342712112763721416234477662225652253565653256217134514572735523757427115533445352143433736422631762713565123762165331724676271267472167661371477333436135656175255354344573553616153775672472217745472251546137746246125464626623474721165712175643445324625571251543753563664461635551352242251335724372762341445314342456775747653373563736263625351537447154232572242454464166524771644662425565173251736436317111165555616575276435631673524546554442243112632615461557223717575231455765352432372461473165734567726434353535166326465165672347453236754247256111661477266414463115624431366277356536555517366667461125263124163135624566426474343566316727447742533213144625453142713525662556132552177672337644155336224313326414614763237224631574326157572352644333647562365335177176167314611245632512737574313424242362764271753245432422154426152272577331327643417661177531457616277233354352623673222177345236266271537364665366671111136652417447433553243171167177424213463441423161416627135746111522262535517725255157754567471563172265755657415314412761137117527746553432413145526736133254126213261625155573364366212536252113422626345716444114135311337447123374237643477211713555717655666237743736277332334712572471257172267473434567633334575154172223543424767335422154434332751213671232647713566765341175265425115132226311767767424523353124635442674635635724667243511122676454653336132624423447621133214262557713726222564127222326647367445556151674162474425646634654531375174364613242524417474751535575325765455773264745115423667441112722461267417113514465145221232534772721163765366634543254417663354666764464123726564711462451177576365145546147137432671255376455315122617515627773263312241177747653143134531527256617725246142227533246621673621612714441265421314722623674376477762337356231362765146447126776766321367273232541246714625626624445674725351624742732334326171455335731565757454541773436346514447343332131165442442125761633211236662776774532717212772275625742637137646423634656157376157754156153757712375662411442351357774671216277547447722166215333243644774724672735137345166723346634233635436542445372121724341344661254716673241177322434152216615143545535153162225467176431332135421265773212533262313245262314146375766316663223553171621772416347256727717432616317372462643617646451553435626647516746344537623672752234735613673671646433325726214341743534134515611544177511533276372556271753533626427317464674624113143131414716741672741532125626143357421131725125322576717573426654626741234655521671563433714673475372526113675774743227437237477337412424613512217533475521571524566621323714325371551433672755535321463654416146215467141446122655624321653476431167775131153331723445634214247366376722227543656232126447165125154666177165444266561544453365713571322437315634414661246577477767221375436211773351315275246235267221773515626244416245162677515647656341232156636463361562544331425262515625677645365554631374437365535437131214154622326445211151725657774715333115246114736153146643734336161472325241744541266753457712632772235162155423641646315275571672225733252635112316236157627121342246654756471631564563554666633257255543422626115455142432426744762556122413323272675151413311727175117251422231321137377522613624545552735147471525454527722425171555142776736221756442354627336415432531434445645422766542414346222366541216172654253126367134645275162214724322747262132134631562467711424147335463617124616777345357511226252632322225627617544471453576433736251414265167134675144434217773527671211736643433141524244235417576637722727254567531156562233213175171463411166143361131365626336256234665675671231355425117743762524373263743276335176627635223375644364563113756667551433265526323141621132347326274351777551413637112125462314234662753637672374415637476547362752257534644763625411442435355762117764467175552323571633462251463312141767644777366341717246475645152247134625664421623631467164672127242635524176367754712732522124732226161512447444746351444645442765575646713757554422676273136246115673464164242514164713327353155734314234541722342753415532257655427132476562736143573247555564325221472241554477747465444222544457436654731472415455311742236765747746332571642427252257512572317473225416663136165214374445715644277137736453451112431276676564224137234111445566143263263153575121244665633411425745355763343274331627573754127734572462636166511713753442255162551711275123113213612356576224512524734456756411162327271734574156442121727757776222251454743542376627122721711743251426732476647522644735237244563625637117774657143656573626314517472512522227234422462655476261331411764216222674234313764722756136325756571667474146354641255767733621512711751355212717726526631223314574673147762263265141634756317171667115274422741456651247211111217212741372567745522756761112232353466627177764667754764715242576754737746157546655443154661751747563577516564351226533323437635513162343222567772566121465551242652216522711771257152222176223521732625715125243252515635657221335517221142677235417213767713135727733231537663434454644634151762766313367455621455741535153351547511747675476535342415233661756726212213742624451623455754141732564174372665333426765572316473661371631326753435445214556316775724231262351534477222777531432235761716344521267372562645717124632734567342371532621215617733425721477424765247343354256152434226365331727534667336664613745467226143245232631755654434642411543541176631724322726453247312576244243137241663175143466531727634251764617717316133412355466442177265567567523435765224162727237147735713765232131754572765111125737632237754377466735344145251753136352367726765562325732457557273122351352351231362176443521451753112246415622762272156422667764215433373266455615713155244234754436166514353344755453117524123565515356124542247716416572114373144711533377525445417261462732457757143574556333164312352656224222336615264136355116344443354766123115734347115715653416643453375677362127741543337662567225665555425726724777344334512644323261642434436737164527172565137446643726452365374656776245162135733324162327141547356314113217112343163315323577435365716226341474112434367556613432232165111162573647416353254521743252654163243641512437766347443777366776332717157235323167724433562573335626526541374673716542232472724516452346576175576654266436542323272336177726677554214141125347666221141243224173633441542316215236354467113524126462547617632455423752174345651631775775162346772217516254743225336736536162163223174722537143716612576475774217537342514522114174453334723544427343624417731331677333734272744173364735727144345317514344641342572315226245773433423261646772263515226744644127472117275775233674417424111523553764614514247537272243644117575764565147664547577633321132712411257175154532512575237243444625743152566143423663417524771463267575154772333624374346746726355334142642776351627445442244111634357545754613714151615143553737554542346637237656137643227424563146474266312317323217622763433657521147172343374635616716453632724742152316656242723634672115277513121363141175377773363574335327623141466516235336764355711543435643722673537553343171612156323231532731313352726237322647673115262364635363556412555641721231141227673532217762241745237252451512572145356564171115527656214256335653312351662174556653564213147735265514613223511516155516113176536416711343624775673453275616572434435461753563262621151752631264537377574144372655774262365575261121761515344632332751276767575627637127653437572676127137217673656772656313272472424527537637136725233155575155327711755132754651373717571376122123321134342727167372441617633235457564237421547461644636721235774763415361534415561354267315224523164624666346725354173744557332647432122665676534335641321243541414727125715672425212333361746127431433335234376126353723226122114257573425755667535236451354664212272634443233216722661736516237567744521134455457647752734561647755436543227767144743347715213372745623145264161765212224155376573355762421737225147263761437216544343624727633547565163125156134461752443541715674412725733646315423677354445145626722515212144616216244612536217212373114427711742656356423243364414734366371574773621673227455227532362323414114416566722766512574132375747357622771512622673154467737623651753144315616777315665677661265262677241122133765643343243361121471535557153351747564127456677751225672727365562442255214114772213714115253722377414236646356471162514322714244125531336353223232512144336754475262434252675237412735562471741471653371567374245341127451565725722253331351615542664742117624535153315454555322611414726711453351573447225666161222534435572221471755771467475521713556246567732726626765736627722476334273266372373272776657752121155564114155274624134712727341555245665463213664317712114151237154553411133323253246361176221236724276411144363721666767511645537266737245715326415315355453346255372326216652622453112766314341171233755753245473724222254577621743451357663434647351677251353367724241241673377436515644661336232651114264635661552335735171124472413242725415453516412221233773245552744615453645517722245544162747155655423617571472517464274462411266727321471541733172622251423442445311561544757256447676132316643313463546244263737136733273161433172446454162376213116436154217526753617217557577721665462223274272453515552443445624374626246666145415254531775556227772626476323764613465666353315316567531464673375743423462723543321474633322562456632377571745477456243466154312315455444532473351364543361123255112766332573237267635373415143555744617277413522526345716622277614215325265541722666451353563555115737457344457735775742427166517413362315154746557253426524476446775146744342336364746512352226115633637265532551265156274437431333537656531677125633564346373537212117663162175771366632653146257362367577711511646432721434351377636616627777165731233377635165141743535535643346463124116516314571264741525262242654356237271562572315371717343641476233144332623744673725743446575521736473664172563164572135726571775745234643222432221335237717217724536234656732244317123234165167533567346241565126127444153761745323456364332154766133551741244717354374747356645662336543551161227761454512311216433317666714126715764534176127153325213713534446256632431254253675337542224761626413746365622223747134256646147122325346747362667663472375173275336164667726325215645775524735562571277372223745422223174611467657777727241546322654164656125713713716722217753347667445241752363554367671616153341216743141366656425374476414731163766474633631672333173744441667256236523125275531732446223211331154126342152745752217743463516634237264473666564176213442134617343462742421321141753221524214251417633177242245453174265577325476562273126253731331767637572241227537752611314341536533573636242125113413534267334317667263171312134375751377443275154273412464767427224355332741677217552737447313345172645132332342421635712732376717373127452526162365165272522523463665523775724343762611164346674263746456261615324415524257137566254733652743675247121445552547556262567654443177212357245322417326614573247667711237264737277242733414731736721245263655516422635315672715117134543122772555751511371673314426114436726364763253314575145571422174765625435642213663411267333453242144517416636327651771133472627123615656541472467557663224425421112676445524153242137442135766161267335716425732145113435134145163126716552454761472746651355774426217275334122173471266325135467321441314617237467576441153133774142273764616665646413631234434351461151561341236717473627372731177216354411524335376657511114224344372142335112732626711132564137661116442352455641633756225642741161636273352245432747663447654652756577235551416522571255233532136126153621164755234363177463517613437733152441264723332277562442727112327674724425652173241316611623266256757332226436664126117162511437326452674637536147762762363526661626126573646563661761326612561754575445733523212412544525114272652437323715345476664346251511276452474716632472371736755246265233574215761342512716624331266713453173572736226427411153272213451651341455477242274322732253521627754132762625237672765313666751746451641142755734243674262166264141335333631334742343752272137634176542225352145311611741264341647634246173211743234337465122127272626527141245671235273116437347543425532557347463123534367335311564236525542512133376135152572767314265133315411757664472563152713442255517351346446776264573714352517357376343316217736527711646717744166632162774711762773757661556355152457777467567766275253342217735214213351441337366175542663666416747376542576644554231527115667665524571752546214647712624574572365644133311242626736217671241571364111533566752544564655712252221732115363262446726623314533665161262711441676521373734417776514734246322313356425612352453234731444226567116747531775234657363421242721132646633632666344372753161473577763657252437274625132557617277265662617143163656572756141167126524114722342621572676574514525471222513156432621711662334116656767252477434626716115452753551551665146113675417422251467654132212135747337117242371546444156371575412435535663133176133557411567237474251146451171715363434472535676225341127327437166531112365254117535147772645764731142272137647632436426623433136333474577564557732665551134356373544234314663655155723135573524277633364764242166652175755336651743313171435545424644451326324321751362535322164552137362123655664713176527247515131777121577455247456442456346252462473663647455423471647514423761121521114751534213367351123432654137137436612342612657662234331133756132724151341635534141414527236131424132175371353661122515637444615212543372427125241422325262653415651212554466424475727445733274171323467257111467353236731362171223573517431666625141144312413534115466341527522237455775247523344773731123266513457247773766312122526637256731276124134443375527771655563555616422134511251634633117576745435411524316534737314615756663446271452214757552474776665453727741226437135113454165654332144752773637653574132631337672276614124511576155461645711661312113634475556464142337737337452573175636514343766313225347316476676573443171476322654417542412413372546246326352441713167321473722277125767716252253473525574176427543341442267575254437217531513567113141476447276731743137127475316734263731167763267663515545215221537144352262577667241636467373565413237465556645663756734175343223447576464241137446253652377712355336364611135762716215555545774536366766263771313344711675566153711611546147317533345335374211513774751564624661326762612243415615374563254643164774275432764674344124342646247751317153363753416131455741667564616633152567722624773677756744526321527715177273714264273766532363547457357476771326136334311437724762737761771733645462213256362761364254354447633512734363311427646475732376363543147676146122216245641772731425742723536552712627573614171242756251644521721222373773474431725544647314426651271477631373365252745767543437547526613744412147443353437663631623514722363671755374751736333316761473642232336261765762624365364335711354511547547436532261727463175332773157133167742373474443652575715214136547555174344711316666357111435471357276634436566356314324467237475325317144614651473734524447471343274171672357427734325762142276526231337565531525267177373523365322345334277363112712643325765427764517236366566171275627416162277741675634524523663444416336455443634437272545143471232175754527213667576765571131256476363655667265346145724141366146766444233262225733436252212126734672326746257154431345676722634324666664412521275233712515177443342131613165214637137522223371725247332541361155161152315636641365421615754253751757427174167137773264772417615114755767476411512721431662553265753563433375567663145234471147535275451172651541254766337553536466244444642735743343377365551527454122575671576143514532321413441252433233313327567154576556234262524147411732122141412377214643124532574517121435416756676364667543734315437663443332131177666544746571353343716443567677667654357231365622223156435516515462131743213765116325377142734474776714425735436471221336632212613624276772455314447673556617112465115724252623461457725617721266777472121322762136741633635655644714136251551774667763356145742333745665144133422531266214677142547446143447722266374216617614171236142426311647467222772174413636534675637713754165276576257643616216112213527135765536464367752614416547712134723627456125222574246132223347752234211124655235662465571234132365776231617442337477156314736275776631123777323473322353655676516311424133276437171326635515355326572115434471317543535317146761632152734564636773266217134733227344537317163664312125247544266332616747746345666211626713432355656562567413113134225137472527426275454515136542164617647123165115662434141715225775771673322734522154671612544245744134567763445564255356532366162575245153421377125652546674612262117535217331352131574375765213414577327354412725765534224754226766721756527613513265722427252742743742624614366615526661775113216573165566214116667655156667117177411356271512517416213113134744125353162354525665516226431246651576124451133522413235177324212273714552756341672134735761423753264531137764145357153752735332657344447456153522521116422145333377734712627311573673554753515154151563656716166366733531713621436625223725625563566152254656622514435737532221567465723472363645212114251412577647452112357644454575323465655732777211335421777561414664452245455377443376316464626225663711546417454773743522274235714324411351327627324775226551453176547725261253215675427315543152641742561616126727472633311517113377557651474466436711353434545165244221377736513575633276653363217542773765755426113433311741362335634133631572473756271475433657443245542531773467427467132521474612556732232411342512434776135637125131245326452734216616632436537233461232771474736727524176643777446472713744557442533253241551515454655263757635271635252227272741546276463565376561316532652166133163642127762631771745243441364673257473571674164371726253413212521471751251651317512341613224467547645762151111252427617132562657544453551762111353343266546124711545144233535572127555442445155233746472744435756135571746444377675555643427134146627133711467441335133416332746733647231377353416233563426632626312235366214665611161434226522443676425257745547755121544436764354225154752745732544722416375634457374773177764347134314253656415334724244252676573345653357311134547364613262152415274521453466233252754263472742673245312661515244343171352557736363134414674511255566723211115144557112412253462257753363514221666717161316646263171441712534533444563723611421137214316553347673361653343316533444225174427321657746272633616365716526162213311475335631222151643435253475735175542424556764141415242612315216773135512522135377725125447172172426161453567417323744672621731362213457726671722335736221334453714242234734236363265111154511123547674377712751266111225617132417376147741236366267223173176337276774117234162722654253554511441452252375614215512242621372346513637251752373264517662732165137332447555776324715174371536433457735122613655356166627722754434447242334621457366362263561325671714151652711751626145524757451542371555157255257164646434471466736774622631455474151735475654541452233416564334233245676573347315431773652425742365154633251323167256445777414542241143572534243157725535565253411515365641264463566452232156432514243127356126315253376614657732365617635637461326666447237343472362356731711232711666721656325453772576716122324514325524446233723124714637273643316261535357643265666442472667427246212151145564253241477666641755527125242111537743124214177375267173626121163271613335755775623534225721247467551124522322174567113725733713762174645717331671712474271561776376654565627121222553172262362323222617371422545714335464723245471651522754347232675453146373243231322411255272461335742512226441572164272732161333721271423277451567377512612745447461543272237326347317572176653613677237553614441572463773671163464476463144422662241441131146325675643257722212436514627735777477255612675226362332134147536675624414775626445711215621613564466147447122777571723514574164533431415421627617712253743553236672642514577661662127424172426226513164545533723235277717253214155355132526211445374275324644451316222465376453173623566254521762714244675553164557146655246335635452153747257746642437153121674553761364323316163446343756747525124263734356174542376714622675417135322156666444573413275475336342214322222265656337757636353321632375621756634576463547415756131362253247144523362156721426342571725233341123353557552624547727133765412514252431516717465551673111763254662325367157235714165515614331736252711621643544263645435762254212373565562137555241625533642352411161647143131545746412766115367577763671374462366147437352221117277566627377626532576524756777116166157216112765244726425334246255773215225325743454427253676535335556411334747225757114476451175762634666364325214224754611132521174474432773625246753455651743253722366576271616525252147144472764323213722114767526633747427626261671374515324266752357311214232223443725567276725352324555261524767373151762674442664351261352642772316326617245524162372326624114234276266222765473623165747451175525444465655424677125633671772564331767655321712714616175377455112212276737122233515534375243763214334231342576147513243777375716432256223572377452616416335236173422254433674633723664537443363725143616315767373752444412742433252553313212242441715566774237665743214625253437527476366721677574144437144517462432372263454424127672625367436612151261646211714765166735162652276426523453544344764676476765124177142416774522237536515375727536543115124477524627567331132724772373715565557231271343357562252523124572267323543567125275333714216566125156343723744655321711442322234143176411624473247342475641264561161733124675312256427323433271321525736437251416367322674314456521335217326377337372572224761644177637752622745674155316615112412315473674162652451122112613764326777456255343612124225477716632541527435172564775521477412366642114767617256566441477647727675216615615623511556536613724115526517211674265533326221633443316251313363121565231152136412144162312552764254666674337272326124356635223542332133565576157663427314126413637152322213121227453513315157552457724145557561647131453277156434527144623572766172136367474356122136527111216117322352221565567613555565677611543167212351247227515364254136114423434663126241221757475272723364637337552465577776755666751221525747626164645735543421317442433221314122626422217652613741123555615322513456771655157564676263655616757424325324133711461426115575574536367222545746136271222771562355275311474372215235367551141365274636715455716523351447463411233725526363274757475533511172325517372241651265135672263373535317346462647675472263522162435375222171465454336466647265322751575724254111654422225335277465556461727322516151413336746114773732143716366214365627535437126433531242761672437123275731654616272227325426662764214617175557416722664446334534246646766644515527617465321114542346335132674456547516331542225351375731311156642624557624137775126721763161644236624776523622434227435733131653445156731423657413365763475454722646652114563525763572232671413517464775455631326715321421661243212711446141315215632115313526741151216232463114717221651234222336561374543165566512617742563627475544212737417461752665233636577363774317357336425524431124714733343763721754726517344456156651114524115223625575532317126774176641252114476156643263174775524413447651311127114422733444116661245222364516417152466743464344471123362142675624253766325262522544313416777572327535461276562657477731742731154246775235213471451355541744263526527234164635772141515772522714766623231613413726767667233444733725242242673275175164211555361653311624715435246155416575424512253335146622547356127716651232551724531433777635467461355473641643426571762656534464421357645741373244452756522362643112176663732461725333375534631142251141454632135667211655452465524742116513116674625124552722613426521511713672275116664176366621614666167451671422212633551454556354154132213365627114352527375143641345665135726146514767726532127355735657353366247537641533146163667364322642565552537613337136426454776374652541123715451364346273714554133411514225753721454414175564316557621233741234273753354223564531434656154317647234573325513267244721746361364471271424274624757341534564513244253426756551256122365145625153672335144733747762131745431345736352166661176766312526372446352111336216416326361533464637675776122153725657675651231513513373326433134532613312535517267537162646363735327751143615735711126414242447371376313714421121223265612266117247312574356367412742433651653616541727444274336532715372351742736721175634357243434254522616221235334721445473745464246441374516342144122653276156463436677261125323644233452377256512312222433266463117466725643514154417543762741352227723626266775545512722215343575611212142132516366652714452742633654267373654422471662447553156355763623312663133222567555252117517273524712225647736773621242233163546137462146252262545673116434772524554772636156334223535312113365153544727745572324577431542272626373776163753175565641636257451212611521726427277155157776734764146321433215345343757146753441266222455616543316614732746274444255414276153424375672365116552271152613422164514314434356344455663143524722574244771345361647436744215727371724315452272375242136461373422413255723245374112326265334566741457262676335156211231664454452521647727643552413535725573247432515527514152324617522362517553745626677325551333214433525512177572552523411434744571153543164144223575135217624464563141567164626276623443434114653377445565157767752226572313712441475344161161766312161432622165236764473613622544752115271471323223762354655222527132661632763426614253547352735731126313422153655462746615377774226241473617316754352244765176417423574166216724542716376276757733412121142734512612651562471414144266473677342442621711341411736546425775132277461473536661773541523214116336276555727527721416557272524347361136531623725266754765346713133146632133325245142542466267562777762166537455151346676435324623723341125253761136117652423776417634746454154167777665126537467464257236734353354443166142212261617744531156524151477224546755157743525544316635176147514412227135576254626521422225216561713737477425716617142365717765167472341324136716122252153152662521766222544336347675723421526712322333471744571652453716271212453575236244735223362674624635272463326334746452111211563266116446617644257236331451647377177155656632267372146224417531457476263755374424542574234311356336144551212744531611334165313155172546771114551752215624445764574741742752541636157532277767557154351467734121745632253253247247674143146652745551166415731146745453776765353237445377772277714663163161525231165725735346257735254563554467516311213657616773437177565234215147161566546341613535613347167664512751545572554146541274172262654143237721275623617737456765252777214216235121571474452451371677611443265711151332716245474454456514733644642176276213663432277141555131426635454216675252561476644357513376755575666524664134131566531271177667465437226543256335323442553433411244271244473325161524772245677725544562231474323474164311112175553332566625357627335161371622311645123774433526561471641122462446177467243636474655652153312567516566612374255744532647372661732622573633467355142246375564767252423625273342756212242131527545777263122555154614231534615672372432654122637322754127472361532165453166262335432155126356531731517216136362225432235173656753233144157716231173427321625532745363172273145146627743734617113762272522736644436534147631543232462745257144521464771164341664234522246363135265675113537537342625143111415233733643117262236422336637771425131414726146361333456342352524337367173677635651327265422674337477571777154752225134766156513652623732151547761575273111673352453747354321431417331531741467544732157523766141264351554522566373412474773717737465433224563423774235645336342312164376146411717544437164127351456117725576761765422547142271436457352141141346212365412621755533451776722247152327257343532275552653665271121362371425112343721327676417632661231474215431133375355226213512546715337113326546375127141312655446313323654631661313316456645522454617275572757777232176762554112512522311526536642163771346661133315547712564451561167315273416647335326576344533641773513144141175636427254731235434616233637146523575414121144671371133526433475765627451575156216333614667341146542577746564525451642441374372355545433412155732127354424163322717563234343735251317642262613224272516253566414445433662762475236517334672554337174363572142556336462763451173224752223427614557417725363474135423745317211166247232762441144715312133165363111134444577723325155461711546267214747331323755574354554532652712377343516715565233521375654755315253623535275121312632537225656574775557361773244431773125523564174742711111436113173426277646256654155257433445756417247224352247656575547115723655612643261515613474241263664341743127546621613152677736216752245451435437512736215371133627234172155727661173725744761352366716324726225324627334732761331222164576411334127152565174137363471257142265767666256155572522772217324442242341267214165256555666722366673137367271671335372372263423322536666675775142523143353725241533421213112721162515734335263245617731352654674254661424143366247354311617376713571533251527545414156236175116451645373446414364672526446357234317736313245515375557335352275636633563221171622377342767316273776354777126371442466615637651167626417331251424574464341337545637411445573736436174442676552236217464233526563362146437274531562437154546526754272135766552731264312656421437256463372256441461113311164227345114445552411667112342661312336146573351643632632275463426641555646265252654151263131562367455341167716263771237453523763147574623724544144157224517776313464256441226642267273763774534363622565711566724754243643225655357436336526322731455732263742617544377352414516744441656354544621262221452142146412511537224716135467435642146127377554567251274644516374521422562647426355566242633573165231416773636673452217574164562326367367764544723354235643313654414454442717523751473371533721562337674116277576557176152464543777666461221461257157175455731341347377422557714633734672375541615744777266367763366767311276367163764673732631261276231357217137525125417673121342275433445567431354724724346564124657225674741266571174637517111676532321716234113324626761113164156272414237741574175114316534333363545172275447266666411273747365643363423361476265237267564424372641213451621457374323313154515672124472574643773426766364746447753414773476665347145664462446344516177556436372276175645712746536557424371227357277155665162735772755574527565624633421231535246543414166155651344515732125532525156566574362327771674715562745654443323763335235315126716223172455777415757674435351152113313557357332236316742677714314656233172234467217225415327762447363612136674536652514346344412442743356146632526777444367141415522147754647732733776436453514376513412276213375775642427162523473755164275445335112473413556736434152663446462214444775364267232557157434463675351762521347253442467522161543217416761116143411666531757245575556545657564235234271317333713661534242312134757417542464175465431164425541337361345514215763435554317263225354372152574214457335776717341167626735326136515542351341276414376263734737612365432557771532251171513177262327274551542636744164246651576631752427615777575315132731771774222565446157137661475777711721433612556453467467636326421433615177454223662621525547522656157767624456734321312167131417314213176443446261332537544715747457151635312231354537625316712157176164624246375651743615526125725644246752613511526276757662565263626424725266451211116215555274657431224154113143263213661521175152315723325542262613311453572411541343615472617772332477641271265433713553744154316447543574634566177565164571333311255445141531337326335624741211327773611653621162626377715235277217677665267277551421433346776116116176636765644777253577377311321331223722576475314553524666621143365776167726551141533212714722441131751653631256331653143645713216424423717145762146463741553114147612122135645253121526615216714616721334221635147322312244136516317443155151775147271525137111652726324143343141177343765167265466317135451165115232442352377757672724562671512335513131271275366467146336417543435631651611557416423347311365732514673775153223164522453513426567261662477612327173331723255133153341511562135134461553761674322566647727322735513651361361114362245351213417361657776145245673711636767431467656557563227176511765574647626715563442763773643132624372364375764247547146444756331657117531246773747753637234161266371455572411616615277223742767721766657717772662312435631247133143137722632127461735437545461115317372576671747243675751536546311447727571615622112717163141112146141712213665126311336734744242155267371761412434466452166613722647511771151415764642141733445522513624721161651354572675333115377761363371576524464564411622462451527147136721551146672675143322563566613524673626617767614156335515577141641122134144125533466341237255341445767363764451137174127135752236635773263741264164575621537654436146576772111637227272345432776632512412733237262273531263455351632774217623651161344573142671653154474467754173241517313463552766537376464174521511633272641757743613443253535626173322517616713263537145347231132364545636527255632547473526733161655451332341233316567153745275453131353521635177145152367217666271327671163674622527166117167626762643762453734217215236356231246334724261474236147753627544751723516146327732647656247333731122414421342255433422256221435641721563527755622455574425671355367546721135741276756427316335165132745261165115713555616641351164272621727641342731611474643753513674176764127332513653431735315515225224547612764451715771542423145667455545734311412123266537155654713466163533665126456322346223625255774467157562447473546451143662562221146115362322575434557246416521745567435651241725313437462354441327372151266367237572552616362415554673723653516657124224253524262761363652332126733464213454214313342746163266171441151326146671144437436765575742751274221211225761634542422316634653375516522421523211552714667265635575461533615326414625315443226676545727322155626217141514127627775461513621513343447527233335425165257552623166533415531154626436164252334654526277742151644411336745277156441361266473651231265272623722665125243714472534763424726221321242665367721114613364667422654671177745131252733352147712217761172715621146233557766766217317411722573677524713172677632762644136377771753464615115272471664471331321326766566376726365365125252424666676455315227146714627454526216275233763624621531214152644675426242541733516772213621125574457363557763335244454757152642327256634632276633261776113371633551444121341234552663474133215664737533666712361647227532153132535571751752311416421414732435677561676674235276341411113247647715775665317241765237437165151142752542312436636462326434142257464642712244131176232175572637766562663127533644567676457652642511176317474751347447414373677142152173243641674741722562742656174374711375575272313652156245155424226367747461722416623641366132665613611757762333124572541565643435126113733365617451645723527173575327713351232277374117462571752613625264271332361172751221435717411326657614153362471522565467337552547441257475754127376745161746323377415455362164715621537634566116167544463672364766251233713635544647377666226525353376761365152535565564477342216556556515334526216165624662172767534576443714745663346125336634526267223635322177445341114666447277323775537651734462472771636775726226113762764522763363567357153116126535644227526165444512422733545421374136172121675346677714351132262516517611717535425525154377517177641533733126651433251671762772667153456171657122441622737221526435673612111712367342455577642575375667277371431356534313361642472372212242426565457711447423674124355412743613367351415367741554111751165541776733115653751726347445664341332245546343741744111755633266333567345272565612312317764323266634571311411362613254153625244127611132322351553261517271725531531535157326314732723742154721164151756712743346651255473276476114122132336773667616576716565467712116352243622523562464242112112424363677263444134473127421543175444735764332734475716151235446413727525151365745547455571355217623665474543356133272751127751744422173657114131557655167166372636255544464167145143752167737332147715463212326144451561564626143155534155377313641627716472216625517224655676363356457326551452233246743533363731566521577545177415311664322525675566637624333475137335751243133613416571244623536471267323636311562443567162535374534556252774253421767716252122615352261577135671676671537732323751311452475256345326471375637234364533773637564427267421114231566343653135214756614757171514572536133357272667561356256336726363215443562662731766624467462312532316676254457557452121256417663235224733417566433645664635734247752456636775641345125511373131736175177661455621444125246651755775474573642534677412247234423133614364752145545616743757513235526355644162635437423132714236117736632357544326251655766422324421224541435167725173771542175531662337573411314133523717337114173446436777242565137542465516237564431337463541455341617367322372736772741335474147321357322641145636233476135662513652713217413316143472226116276665166427551123136577122633442432347223177373625665667162547113346461611742233732531537124735263221423416643256531515631323253576637312317534371562355416745325122144474447216276524264262123624141627355377326272527357461754467541576446361311463521476514153131312265215256236671641621435751173321133761524523621613756653164326543142235577271353762656266622577214521412331577166254273776367371764725362431457474235645573424622234653126273234746533212655336652356562311735343327657156612667715774236433277632531455436524616426232115435412775752615477261233157371145626115624714564523646354315532323235117421171552147176637422544171672644175152467516473544122641732326136553723715765233646132346571425363775466254111514331655535776446155625454276256771177553354221726612661471236136346324651373416416676736752764631563157311752534614527435625311551775147336521113654631422353432432155272744265463246212446272435653672177417356763514677717144642222522563622421712511572577173325567157332513623274343534543176656653627771253672437723467161755655136127355555111212542662661545367262327714637147435614273266615545167177674512555346157377251135555656646317565233231251116332216165751612661415747176121753375313722713362545242351273312733474165375635272627154275635722373611541333753256264614477313653143221343752476225716457311676113536564261431253754712753244764451447765221445153455753461111665622532354332236675473653753731624217446711134114755352556263445265131133356671366235322331515425241444661451621433174421511444267334724273464431747523774141567423235655114647655737227634713665311167677255344741173756351656517727617734672417416714753751741134134141531172732644442151154361674417574613117315661266214533733364454254656711416626557344636366745453147742173176755721475334321767274377671227216617157523255454474744634756766561617562127765526213625414314373555444646755421352544474236566234672375164726763241522334223236527646565251267575767124555161742646526445573563262365752452555753645673353542167417274552637526122673137414533515526274467553464655161232675265757771537424663457277332623452266267243315775452573435521256565424357671572247517263755264733515242252332457442567264774311662517725341627773163112614444543714726464657561277417712355742445741727476564573555656713621154662674734512263647425227612621417516313674213511543476457652624516547146671341326675533511772464341265154211344133617262262532365375124535761414776724253437565425346722411651362173611354242615352354436625753272463511235317254413166647455765344616131573621451666664621416243735637626321356456434726751716411175171723257226152654563764535745655766215336154333771377753567345244755412416151461621637225152766375255327136315467654515434534563212154751712452547117642425765426533223334512655677774336126661544266413163462142141563476365553172154463731246352432272741716236454723316433371643152256357264131422164637266453671217255273517663161474524453152313227651332432642121663341666716342421663147233556535173251252225561561164221465451171436544676545723733456526355464536414113176661364631524442121574446167461346415171252727132312167676745173744453611773116347647746643462756324725124335372356254141477715641332755511347576334132312372176333541322447527462276321562162135412643111762132343316374574616356633243351665113434264644335373257564721217121355714471233754261131642775776745546226331727435452546137536533327241174375252717374271164141572427631452376417537351377113164435332567617561553412542543262625561641632612676257434612231322762256232434513647613374611643242551375647233416461131622626253521561355467641411515676161115467456575333427671663453373574333411471135677656755222662132575257316432133712776432737145424232254731333544635612175221663417625237454632434236557261461142724657725421554371355273443446641337431173262732757566123567565611654774424536624514526115263755742433264757543334617637557154667144354152136372773656745652347363132547744713374673577364611556261545652363715474664522373362317475264523133564262653274543175235664337532212537124535222621345133675551162256372746561743717434614572622251177375164252754126627377561715735166514341436741723743733123636555436752135141144631134346743622354242466273417764271644641134211736215134476575115113667774334421351255545415127747225325761433561777555235757744676531237373752152231753557545344227444424722137454451137125742374441112575127156434641654553622565576156551565641235533377513751621657446426313547312732722311473551534476347513455752153474453132215656512554133627745216564277427376156345157333427152142462534664463326743167533657163243416164544176112532414663672325567476154674574751111611112434313454372751422236251433653136567225565764227432366523712335273236175713435372631514216441172534435135512441524616437275425577244656536714176561423354115765722327375265674653636363775515377532551311771567142671361141571544732153274343341541677175364541244553112556114162251372122477613351612156777326654715326576461727217316375341225636367357326431441513344272325721771735766642716267534264517222321324723727211137112642312335567632445736751275216574634251747744377774773222643523226734742145465375115321575177511475272326755626436257341167132211122353362244716645772111235355577625253461763656457677714541321412141476674153741627732316551511126175756575171373476547414475671527336276625754315361221772663634666517371176631356472672767254743624664763767124775256454512116572267677316222621556315766317161417517631464666734756464316434476556633712312374773642414257737515562262422653354737362726112772652771343431176413533644545754352443466243253234577764442241515142422446774426767176543751141566132375165631537641524223237327122352171765751155127532165227143372523632437444257233453374371632114376642616545462147367721115426765752344312767274333335456111721635252623122152575142717622735127656752453572153666171164467172257255323112327527436444214234462411152463725666642426237644313654771251542442347512435533264542233462557124357341424111536114231761156151416533715526561472235235442246321264464237116257563336762216237347127643653572552174714334151226232216415176353564365111537751714126156676524713543245231136327132657647413214552277623155111115372465546267745256252566317421162347115634721547565634566531636762174616212466555231717573657657261551512762736553664653231327337316477715212761356744477632567617451562374673631546277253441322471747116667254447361376753126416513533411436172131171777473354225417141224123437457656637255611341356477121575552441433461151125153125731277644221264633641653571212715135733565514361564743234364666362276544326756744542166534322262371264626535331625235711333541711737432414151353765656623117211314361531336473612561563774725256724766734764365555633344746563355145151551211765441115472251527325124372323311266377231365636571313644275437646516633671555545666253674356434325117316455221777736317754617432143213247663164166726623425357675125432532231557542545276644624326273346552641614152672556257714523766645221312131427675432433716424317243374521654735411754465336761116446727226613364372141514514525452365411461621251456537311172541116757717172227366253113313477411526511427643772527141462143115266241272377676152265244551262622636767227117125245173661777373576466321442444372122577571632112152613156214745256536626723233442743241262666415351243144377744231565623212753672736234673677324412174515722313475432721217244614224675371531272736127151215566211662542524735337253362322312223314567742456172216545717241362634313317545464676653345371427622463714262647322376144514657653122524334437571632636316175162474657374656627122215146756564635433354642634537767615513563166731465763246633732733474143362175344732467262656161431146475625341755214244523441414611542334261365217624317645726417664736546574416472242336141672571373341237762543757122127226416646364377417654153174417331372275225656726775323542373346377616431126721611443636267514554436463516421523657353361453121464435115661742341375624162573663326737637723367327112531172357612525571414142163724366516734736317261241555655366626677413276747166223461367736731711162312327345356636156762665667166237573446265261176775374154774726177353363723133742511227537133133167417712236644134346432555761477452564716773375143777365765236273352753743414327531566475117641275413771332154147126155677754115755265427636433455454353252762667425357253216454213532266375565526464422732677321675115755633316344616712471444544456163545217234736641171346133477416774624551344241362437332513643553245622167515733117152444631316632525133274671313331565267212215451263473273435657735453516136614623274633266654747415166162652445165457775674367332152751356424333771111677235361576774133714436647141131164733724714436737472476373527536232645247612515555725664337222236523256131222177573471224155462235553467521122111351463267737353131561453655765724272412524652264554512761667461177252344132351125576176164134245364631243471513473413232745561227774137471562123553716312751113214627661146471646256177316427651333432447376464321333353335313357722265236275537663221643475743145265171722575574125374754561366124636631211671223153461146376117662465577777713427757175725636525265146746147312417317223716571417225123731762232274226617677731153766262251314734365357336443452141667717257552321266232266444642727732751725367477322547423117312326433426354424355543524135156471253536374147515462743465174734262555326122773652756315235542251535471212513171217237664457676152722752223623154771176544634533136223544247545355354331735571113635323746133557416732245625636233155462366754114711235127713645265133372276576271425146131427345161321537511421664361313565413331563545626761267727761437212544613171152662127113122356271554145465564664265277522766627665462332717475115746627226127275645262463543255142645767572522327156425662317135323113264446612627451347572574447157316744734116773221372553236145215212615317236652712167314337162512172735651536647165227653753153364556343427225243165253551177426714741213336753373121376575641451746277623432161464533314171335451367263445744213676237567514451571527174772423713526614574341321573414174256647133624213737173242624345162756761364724417427655257624424631541616377741713711536527351655122112141136247647723516533632534665173127155152244426372775243642543775174521735417341631567753322521242523725576642727115174426672736121313272157351471312665646751763124454763737167321627314222312634472167463572424516547362622126555664732211554246132172454757545225721142327743556175434223117533324342673516265214147653264247573247421711631351156144564112262527563564757774223137676321446611777245642654365612662515562564553672466753373273573165643122517277335133574735415623477773364273227744435737571373644745363124546553216772662113416232652374641525145146255557732554243363157232747544472347344531256534132156452536115332477153261753577775542116636563742641371475766776543164757727323621752722631427415724422534576262466672175251212724477543233251337327426254415677456334756274336451334262633423551424723643376335472131324575264427721425756513454566732422337663576737636527755445447611134234615427573444563236774764177534314766157334773436227735346312653452356321722454415372245117375642117741244323764635751462322226337434652313612364152331574716642626414546136365164427677371276567337714537576376641737761721576643643437416236734127227432421414711444375121124537463425577757541624455266312154734276155164232223651367431537332663562317722144532512645622655134524654757374747131425227314231672377115735423446411243213636627251162665421156636754364657552566776274157156741646376675752132142652476474211476337137535142355654723664314545577413476273442336727427171655325576146767434556562635545622475244241141713462451634521274553466173317311761236332114144621151172433575764211753354771553673712256535335747745314174142432643272245611575413344644362536133563777571651533756554313477314663263233327573711656371757711377737252525666267356327314426567553412153752561536451321153121716357466753233315264235443145157115754751375637556172147344262114511217347233277227425462272512274324462414645751724573713175325666426566362261362653344654475174137127655265324611254643213134556652566476141632767543775417775754242272126112417455765646755454212332544465736175525271266145556623261637424234716426656554341343652745711333145671576364717143442636537573276767247716317434777274167157576575613623545471212331651765655626617171446221252475672672567362144254422343461632421611157116433141413657327413555746765175757455437234156737426123622433237316263175574517551474655731465415334643524176255424713626155517353147412132146521111512417172747345217422531413435615247257463511331214557531115565513437317751715235514677617477341624664653654376257647641712736122417275463234752145143333447443525555434147544653566113466533725613365671645433122624173146452233451351456121524615334652626143421646714536772464127624215221462657447232233461714616426142371566533667713452544134177614245324261667557216472726525527243774324422412524364566547322246646412163444616464134627743271154726234611212757564156253573512323246737157455533332267547132274522415432566233657176754167416752332764244267556465373712744653175365122543517366226611276573773633556732214252273275217767461655322135447176215625656545474673335557425325256752636513364154471256337162617624777662311735475524356475567442332232554556336227656626574447664227476755622543632513463737731553423411213367752134464761763241624154374743641253721521536253434753514271575533235311364212656454625356325221434275234765142717513337172724272731444242667271242566417712522614763377676716143323373263456747347716677612526151427637375162335235236117272111142234264614241763677572431751765272522324131236637521674661167771163435142166742633722422537531667324731356254341753325471465654675212346354122127443213562341637562736764567712157412751175362252554352122232446411677727556115263631754266334414565577555465273467474112156421277657724464274653522334642525554533545315736333615147625761555332525457153625317723176614673426611556463756526511232723512154754121761357241733247441733242746551767726143355713657743477774542737143757275165453561742741536731745343372212151432546153126732136663232543642735313211423336642447754327625737662273355711674151156672663476574723251152253757175655745426216721456565712317417226733576427321366345756317442454271651424346514431345166243572321376457725666443467267223563725167624726526452747777612362565473375171764633136135217556646416755665775367572524447324321163767657557215176441326361713133433537475326245223445373475121364537571344261724451211552454423367346474724136565616174343724444311347753465444145146612174552112257256635462115733513125412734352317174634254146321132513675433564673276513327252455535236772367651177751313447576261115775143222242157322555646575716477223636142461422577454423123174725317135465437517766322544243545477523461134235323246432246544475466726232665426753616744712452111123737236661576167173564623145256543475364545463413162655272717775344113651421762317516326621537264714463425514656636662445527656267726471243747534522666342421446351227334531624376464431513547576527554341544164744577667265236221317744117526223664563613436251412376727612625214563253626444515155641642244165454172564331122727515611146444322722261644746241223613127673426537141124622545761241564554225777175127622767576523772557211122231653734234124615326665516711234311615341162464425274166667712445646412612167422353752651552726512353735144226355654741116431372647344151563537225611742614144342366174243527531333436617435262321331755327273436661663725454626742737572523165164244445314165762376366532751656414761513221731157616662761266226516777322414533633522121246152143642663145631224575721235254361555155461354366147731164672221425223672121667564461516266423564415775127276156624174134776255516417232253171664474177617526477341465613313313753463463535417553613513735476774233512266737614215556263622612246611237733624455233251454736262754271174476143756374541134152461371321651674362321666711527176227351456537155416676417753663574643671654573334325265165463644427621776566123554364273641246572675716674516764433244537755744235747626477377752366742151655471174767727766665223221535624353573213215215213735251425316644325755316131541234162135666563316715635457544661467713472357772714461245222621661752233577671172441566421613713271435674664774352332273453764314447337626437155227461747445176554471472446344777155252116737675346316642567377215123445337221155716614254174234747474341462417372372627337664477441264224475536656257174274543626646451131614562416537246622375261737253343133273256273114435164377225452156315743654165647355616547424733554367645454147266147635676471747376473231754772617713464233427561527753241541132132562125561556522637265332456671256461251226122475533257436226434213427543464635471135171123666317762136475267737743563664264134122426375115272176465745474127441714545465475526564362133544421622416165625576455324427113445647111727512273251772455355733516617612773313541642277645432622614616775337774177327313247342633214724667561211132273527664246671214663741753275326671757413363514223511626136761761177137477751573754755651661672711623763772141436743742222311421573173562616743647143465527661142553122323227515432211152241255533136261413355131362376514642425721641712441155174434214771152165152353516725435261523323442761515733314376753673156412167355435241562314211511716661776733467123311543163245357246256141511524155332541266723761616422672155573336512642555253335177267576456612554147335742475215235124254754223647714521661672326147656263716374474755153134465213271236427467227514423736474315555561543521532514355552512254722611775446423774441235517734441533642477442752337343233237714751254534471667222257513235235744173546226425331646537142676572311675631472344322275313514464636736612762235671222664244714577412374574117777123212646347117747317771472472324646132756661666721127261422763557363652641647433555664746145523553741336423476764554247265647425632165721272267755463473277132735244747276436423373642162116312235643564426372732226335646477724517166442472575617554337311473755774631261451342226763124155542353755264242376632423124443231466674413241511465746242716332371371652477441527224251443367637166165334312454327754217657653652562224754212754662324413317664254316774336634414557317542631245715576143636417775726213367325216157773367237337733744474336141757756425431455461775435162776714613646421577337446311121327122613317142331375343275416432653745315523666117733264634677775313244716274126713442725426525455663464424136736213525377142677517145577223126757333152167361351366137152354361334651761121156375212137367715141535734146155724636743111772517662466272216622415412623613275175353163414467537261453154465315742361523362236264332651411242645164356715143761425713764217373223662552367766132634143454515137417614254243145331736314755561533534342656264126223165573452636221646244754367222631317655231152357163671336351543674762576625343363563627645722424212313314142361746241226131463176236576372441636562625537676215143722552736113673254641642573411672157353263562771575651132572562727746375643154233121335475654156754714472111443145361737526334243634314615661275635631112746564167637322111331714627631245715425527642263325337122775222722576257345554116541653153515171362226364741542326524133423225464516534141215442423226671313742434371115236713155577457511216463722244757661315156124115327365571714422311432246252672445363243245576121273321357631274632467773563516526252426372432716354265635115766615757677252355223741424336734726533634743277623116361614521214276552345675661113132234675736447325563443231252554767361263727652537174316444612511457466761766252251621676367631676745654642477615717276745627121725473157436531231352165757171172742257314177324542667456365474771127242661613257435374132773572615531137221556413353776376545136523735657134676243633562356262244447235237731654231517745653161545561215211276713764761556266344133354716235136435745113743771324641341154661533437251556165227513647166655637174223471216221213576616563255365117366417332543743723573737657472431372345523217422163375453433666736263154565421636176635217667572422636474347343262156616566655231433265621756274412272272757473535264647155676241571117216455732447235232721646726727757715472557612425536734127631636721672767751224711723425312574517667777175327132224676347527267247361267722125257531565447557615633652765267724176355222317272765363553312313734763575645765265714412733175467267441244152771474245331747427545412637354653133541213311453337211375222771413157112553621144165235766257332641742136511536334157656615647724732254126211155562551552235341754161613635742421716163371134242651753336143277371226757753477666173327243664534755552541121217726452415775451246734111333454556434774614443452454776243577346121517377235575743553367541676477561621635516223567125712762543621113377162774252165775315472764115546544155463773413343224424124671666373132543714331752425131532511447753236537364563734537523774741747363357425165461745236436133337377736677416255363175141755312241344124765772432151655143614731254767575266533737736544144647166674544462356643756633356643644533211656225721235212547544132514136125131542774615763146462534356362775161451742642245123477735754263663121335423647451111125612321721242476241435373514725417733125153422236312753334726667573175624256572443641373676676755374167515566632235366677467254174613563333136262131121766735544236476143557376613625733737413227277113557427311514426631762423343455734177141332764566166231674333236536542675173553372316375141454347225516236715254476246752221664776656463373217561474312635635425213263432643721162633236121564276635167364767117463715611767521573222362167772747332124333315366712357455556653717133556227165656714141726514214231425337245144144552755645467272243177234147465243631326264114441742165461546374656122631232715773212752237266554365642676276716327635742651626265153242773513545621334522674533351675214464151634776552743426144143564343142335644612776341245563252616323546223723214152267156473674537173726237541365516523462162535455747673667726777553733431625453261347625627621677112355656414732765741644736716731276653625217517424617213225217347244527252233175656617231143776622465522756355154744767765375377557231526465362676476376137766734761153712447737767637553442545245262554631735124726775551736554412677372515411712722567763641273472342632564675277457446734155326662166454743554622666553367233123332267654342623112777337462163336545634361563275474321277576722617564123262612343715745714727211167512131412546747553345147151277452575737224127115552356274424451531444466272314171327256612267453631376327442141264222175433372755115636774117237553763426155364166662663263327414714366165134452442532152523563374124643557134461654773145535165617364752165424522312637314133634674361567242734266563514141523274533623651155575444625432473124577162556763443217512345516121561517666555133444434661443255445415575453265433217616144313146527477235665542153744742372676661541564443226333747335575776656132112666172135422566356166155651273461377614457537364372177776716446525776434477546166417516521565357246772552527447421373344433261215126375666634676746214747375417321161556553344132752356316267113132327376722346634772734542664376531571364631414225517275563113177247415211253714565615565777417435576217435737525316266775747723463425562366347112637636434346714467236465223323526671645312213752776544466721314173361722243531122675454246477717446552675262374455122647617612645614173732152537352646527617713575125511726272147325116171161652374246342373577543364373313567136664422641122217445715436626623622465753215427354165632523417121351756366137176515471653236237466464414231247211761246571435474352114637663725223331227463243577712565465166511245371437654334446536475375166324153316414141675667547461317142666221162677671461444474444562657662671262142221365136413151455435145354461712152555525743172744442376646151465553326732433646414545441347325172525337574767722576242477331252435167251566662742666247114322575315243431311475676612632475754476332664726177666461763223611361324523236135735723712434136176222614337143657341742225621531363744316214671535733144737123262557277232731715511136631634362457517523617127671613476653321675546431113725115276655564726275242124246651472114213752563423231533151156316621231647725477123177526633664657614771674453455155147734323771761562753327775613427413755365375544742315376757332364773531477255551111752551513753453646177724613625123471542751416672673515316612424754141335477277461743663654136445241475246276345551242631335311734266122641516464671164127547744564315572763731312527232225324773324173362665127272226441473774336746475664466417733617141557273177731427367137234435433627637237333415534451515267144326472435372733527366446374417142713256126323774643477347171176311735647413774377741774713224155142737117477747144144654277674422516626567673627345622442333114475356346236527653356633266416146515531554336415153746266227134725511657322354171476434246163665346523465725344514447275223513357143511314741532217237741433657563254215712757377232221464643631357177611227147173425563241445673574554777713123355144452616366656244745645357515422161451271177734521225742734616135162223522535377333246533234136646277463737561534747724446763741662621125274256664665333331635123376432242667656346271535721623353125343532527355375557343434764216143316562636365144271434333764511143122215154761312465121421212216412633441141211341153335546657631125452567527754272425472371374517356534426524133416367417546221246732414456173444263234227253376273354112122367116443775124353364631352555713715653253165534273667724272714376274522737624233412514244454174624317473474127472644371746457253673564124445575673423521377415676144666244115714357732771132611446125152663365112725214411672646661526676334756167712544524622522663644411775623724171543346627727375135135721222642737454436347216113536421443741253231575541472473766721266654672326516252523774313174313172473725575333676366636136571271457642422374674423315222111332477463636157556221653415736353432367754772647572667341143672255425523233421471777734132532146611374716462423624626323516713165135645673256451243176466371671513261167476344462111751711127161521526565522272312511512524642714266144737247461632733125572712442347752175745742334555426631215332447541455152214763635517631374631726753671731521713465542612416672477756163345336716564765325175355354374537374265155453376126653412231673743362271656325121716467613764471737342341172723224172264464123226443677627741453172412157672134772363345352421737371627677273613142417234417513553745724755346652112745576557235531334741415363574171761646653427554251321257447267257453432774662326357576443461517654111212717151717167733322574451273335426543734753656317567146365721454447634421616631621635454346525151253626111175267352131454437145363765666776434572775752526542362677355366243712312721372156316515453412436646161462432637672452237571744637457626761154745113436416513366444425335533347762335375256416454126662436762762125655474455413125713257755364577464235512364676576125133671361431244636174665435441355645113357474267116565342115154532354711657377471261134346253546714315564533674635741465473661661431171654234727523672442132127372313467224636527721354561614733265535467743625736165634734337656322171115517373323717572246333276516537417551273513564721544255127713164242372662332744117646352354664311431636163476721174643277661221365551377737541651456676165176146614753747625223351251156657673473172466562324641176114613573743453633513144432642554234525131477663254452125272557114655351521521135513716646125245624561534735732513114162614531234512756551455636247646741515541211537576643436353331344415272424576657433717744477434175635177456444427132125655521232136645514561234346461147722155257744635314527245713121133237756163466316661725617331345677666676144666566677452516752443431311135525314275254535322665141373516462112643361144576755671131411247551746415411262771667774145362357554426177327531527737444214431517441362433415471573547267644125252272454726666746433553547363771312566271267755711465143261461633272231347465267326223633712164425632166125653625651245445656437233431244633334722236613511444566122357144471272317217672746426342676513353363535567546743516553634524242511275143731735425463756332766231467164577512243112317334442466435445224164312714254271546175751535347156611172527237325245734716642647632652125757123636433144731216372567762477511274241544246371242521421677662711524612226267423665627621776211364145311246271567352454545477546253614641667646673132627357443351643336315512313737211357233657745417442114444657612737642357444215252564221626117273271435573224641137443544446467711764654265553766133317154624726136523132121326123444451264655572443765161332343627276314713563626315135151375651717642442737232153666513644532533637763257373417717667354727314676615334264535547526554366317177677523241624417463442777732731137113421623365434771271174271475517152144413257567571627457411373272517162577446327511557532771321662667751116752724271165274237435515612714513125446646476232165655547652433645512477246262412217754151325672462522646456731151257665717571156447625674677725243233745736734777773653243345772324732424231631747226552277716132644276623616172725512132123737233552445745645251642254567762626373551254142656753211661661172721476534131237336551746736755261327373727142175153151754553371334463775673223722337535313542676236645526151544711763424761261224712563512667267257631341467572373453133222131267362417566635166535747462716135764336224711726573366336527334242666511122214273433455331275521117152275326157412161713143534755754163735642514732724322614471275524111775347652243715276637767642462463211115222633443437546423771341561712434721374531624567766213462552725427456133315665763623272441733516553476127726416712443726113454233513436527563564141332343611345716351143322672325441675266433234162377632122353111212142615241657171264416634345667774166722176227346716673347226236556567677623657551542765172634622561561544142127163273175277672241437524227542442171472222121336573465227364531747227332663117677357711637314371412456734345335354344537571141173452345771535573131415554661772456623413676347763144611261462531512764343311376513364523563756121226563224355345764437725223135167156471145571471734136661365113731661716556725131634523643354156146356134636552735477675233637655672425221277512243242166363457351434367517457714231547576145272345713655632622356342421436145413374773466652271745127453351231462251516474525712523467127232411526671641222733376655757614244417277364317622252146645645373734164123564556174211116613543747566161556245146457611571145353442251337353167646626715223152326534777725334327124134747454627572113115731364415212615544345216526147532771441353445331764516471374261562636175452175274755624765513662156666433744575273766465257445754642426113563214513354161145744422773615365517251627245463367723114515334115734227155713342354566131673474111623631333757125563517516147672163356513112123571143733752141256515566167271452767272667775122112662572523567766615175215717127427567141331337231152672463576631527634751224247456555714464346332314224235662737576316746362335567372725624126267731726666132711647253635346266372515463215476573517113647667421561437652522472664765462441573672736723266346644434213447521117314127545513516242774342313325466712666556127145235671123556335335435214225322156666762447362125751512235161376265274347277512311471625523654612422256116166421467662344532124476614636465427567445762456662332133616554327365433222466456572124414463234163737352531566456651233763416126432367642711656545767476657562336674562653751635335366264242575365145243647133677537566373563422247663367314673657646467745411635534252322613262256734121663665452161312672322456253755244444311427662752214542577766524251513765753151422267446436427746237437124542613123766632665671635667513151443654254741321721213763153561536135653356313325546136354723276712577145167431274112146442753663244167667633653473517555654153561376266241437777461547246663353373221755221112261436462442616336542756672723232314262527621654432737517711346616225576661746522714776777143723756546445643425527417221345647346322267654226117752773127514657571111116431341346557263243642632132144726143311267215442127323527744546544775224156622243266547553131776416221747532155575362331644143624537745627136616444167164617262655742544651541524225245625754243257434222277352115643335133667226251573713741262146371125414326344423635323451665516631562235262524217741227375266752231465373465376213334365714723247325746424144655311147751562116137744576313111553661666644264267264655675117365554733537166575623322172623752447234426425314177532743236543711735466342113613767274411274615717457314426117317336771122422214351372164666727753663166241463127241551246142147436746672751263376455472327534577564353651616346274755226312662741477166166112143442373223422626757157677472775453523255521712717116216256357226561125677711223235745773741162742144643734156461176616213212516234611314722562672664525157327252534555347427627276651475321345637316144227111747636666432455152273227632544541533433466545462513136711355742126663132176645215631433677473616765211421315736611765245314616615336411532246237445272133635416242112276333356332741355737471325637156632257273411636332372444131236132366317661655527641115537765671737751657135516573614471566255347356553557341237522362441366134271156534462524675233471537453772227163643125525232612155124334655665261674546372672171623265644532361457134764253553555113567253511666613212627376645555135263444622613143345475463251665414752444635242517356126533732612276444246754225153176653156337561545251256617426736614232276154121547755545611514476121452256671665654442223214755577635744743143637475627251646425512426712326522651454461555431211344246572453552727466645417432675212271437735246316362724167256771221365261125146665277677635536751777636741454454173274356142736247144741126554314643372276513421445142254743374167421647512264241146364751322747172277352461224432267766722325335545663143366622751146652114641535315722341244351565464775452444216717335463117167736526265341171672726564166114121674524267471671164653452375177177642271441437447244423742452472456676134316462377141445672152316317214534463732646112673727351211233517366553147151241553471623736427455443651556613167547732246772757615214263264413457543767771216371722532142522161135435526547577511165263444744156623465442433323521231514371676662141716342514255312574223324314531642566151477241321634375126461554734643714737173256525427376555361665366662771227772654614572222317246125315537541735327776337562525541272756733725657762534673165742162451263666555545621321637524742211436115663541334376571654351672655657356134151621471666324414771556624537255247411567332713473651543226253767741227353463134423517222747457454576524274517253524546143721776447331751432567753437345757167125751267332672676342277115233155653672644134325343574515321525413114277723565412673254715171643155415517166621117535236146233651321272171172113256713617423717152362571611133542533723766377324453634224446633177412712752675453747352716772322262464561162526233152352253424534114672771254166515734152423116431127436445765746432151313635611613646514422237174311334136517711265257522155154415762464244234464113154361176557267325152466235755263732743713141113511761524431251563177471116221512572565337356534745724235257337511171534662546353765521346312373574767466633672111753211252312763462321224674124222544651111317556211243633346161245533755777164774221574147646173556245655675215747221546642542127145643434165662724267163241653577355727346146341761716342327677635321464312347336446463734714711644773543761635611547133544335331132317776172552647643236653426542774714524173466364677666127115316716471722452227611677413524355145126127375637511617751343762417321244273655747747146272671753624137541146552547553423673712313727765172756344214566156551711314313733321345157446454342333564126422153227136272147564127377122774112534456366514663266236141347151234772631622277627444367424423566366563646176252336655611474642461447143744662726773576535123463536443146527131622471364716445632665112154177272332572162747623772523732531552624263413621772263455642136214315135466157156476734532645466226742411437336315472166263741655551732174241772533742661274472157244464177261445143431443212416635273612631715512746222543625712431722226316177375121466761572646747352114723153775735744714211124243363776274673416273614335537255413114133434715725425152634742523244541114524327761676772517161576362514266721627777711262177351216457116777171172263322542471622571611472411722352513167447532772263433514776223415734171163463672146436137753424231631746276675173655651556131543647733753652553757647734547724311223621375454142146732526522352415766226763411634631114775144576216127137371553356561162775556377212215364334771741146356124153175336754511172375313341163572172635543325535675425143371551761355742474147627473311637125134353167326633135776437434436241676175737733236147714156422345526345752146462477577174756113656512427633413663532653347262651432164757431737374571146266454427627335377472544113336255713566551513345425761312745774575164643723457113612743241131412237614125564676177363621143175227222545524214123753456452163776631225671321733541126754112573377411211344347613234723543713443374535751326227532334612312747217673467612453426663463513171733722362343527163752221562112316617137264647755363525575725355146252211776673433714575266635551376621617561244445214634637474445426427517624267721415777646424156131711173422523654445443424743746147357531712471246714355162467365322376576147265775333233561421163413274212232621563126366542547122541263325411671213131114272113367517131613172122347541351662231372216477611212456544611167213433654525615637316264655153715357646337112615655615373772312741135667672163651351277567627234347136726236514661612757753776342346252114657456636744133544377634661772561445222136653221567564244454624767523136723346325415232766362161252565461115757537254543412522646235663616515467526114546727224236626421262741723633311123156561554416545641754341773114521317575137724571775443443664347517556373365755255113357647373253322351617425242753411575436753316533625671315622353323266764424371762553513375524167476416752511577155337761643251332363261332523631465464441677122357677122315561737476143353256324414336651446632612526153462433775447445571475556142666346471112646522364443421236424341221431616572137464737254727455517643143632736176661777472357727725321674277127617717747174217211743223643665646546544565275136232565143531435323377646476213236414232615652573132137776731253125631123721112425737731733247652346551242253425122225237644743361165372536162713136752656443163112632124144245561356643617217431723145651374152121715376421474465773467617316631732462343372642542227312444337332672735466763157362322457272145425721577477714643215554414717453356336415376674324273533334413741675546315216732451634251621316567254124744731176172637612154724742353167554754674166261415211574743342337636327735545625436527323651115217732725512465247112144433633363577763453614432453767442736365734724272674442676116242354414216771431631414564515323567321643544777254334774554326574736133371777726452243617352332625637271271214262417677746261463247316426657275356246333263332757611553432353217144711436772377261356731367672725417464463723153127723252243335277156515227525137233551764327247154745557542445461746746471524423127715772247716213127657142615131221131346256761412561414766511634136253171271241411561277251244557415725246254236215435443571255235131744663316237113641221247162775762551112745747434456614513612521716711224132764543423775465641731743165571676462633134563457564561277757151617272626266543613272331347345447466741561355747467524757125761631635674743557426512227222722125377772575153746716131164376511342331412327723635441651227271435561733175771453227476431561624473566215626753476446323372563134424344245144414261223663742456223656473227552317341721325672514773743254343475441643776575157557753412235614342445146625323211217551675466224461365147713343565543643473335774123631641276655433626377633332144341436765543316571341233567764521763553446161651176231621537313311777245243441652466767733774346436563231675773341146233534257134714331522231455652616362111713525351333647624423523361573615366225367744727363645315574764434346174172664533231772543142614241262662142535241341625132334762177276472665573747732635171466777636477765656144256333233411372374254254751675222176523764715254772321716217122341213471113531341662173734637164275535757334477567161473765173534311215152532572411551767677354615636554736317461536635625754445141617424244323377272175673231144236362626341611541167646373326133673256173265241446445474726743342757561216633177154514326123556645624744621242346737462473167145647254737163321125174454652767555572216126557573472756445644612573723736523512744332276162564744236732624364677334563363632345771675167527177232671347624752552742652633753677267323476114272477675271566266275237671511331612513322511426336253142212345437677132312454311226532654212154745161433717342463456545365614222732264675632771456433173555317424653333135446623657267555476447736463616554536734143237677545651427711666343255562277366234131212214373437154643273121145452662123563237236523142454661446626141426753766531255514274447333246312316614471625317747374331655516147721471554314317341113271752666752131276547372336547767275464254477511575435672546644665533352721712252725514771655455121557751253567673454154253717533727636144414474642351715427473675761715446717414742143675745244154246113714165652275466252677414232132433751537147515534133775532635772416651656647523247437313576275446434513411654167244275545476343275766347525345251771545225143373271235127643471571745471316655264471324231671651145625657454372154275522671775122714472457776314634525676777621712461736747777462153644645636737277412477377236554142526321234255135466335352236753146777123641363723655413746634241157262646615327615556752145473421557734525466347115723331171553631633325153611533335757771155437524156763455441664572662617553625244742576353443212512662636222237554734562246561632237425456763731334713236116212324467125623327452764471471232453213236731263331636377431553737453775561627243436366242311623762251136337354627556412634736434562515431466151237777474777732412672534613522644555515224121363442725415761255752424345167236573674556445413277543177716122773373157715465114252472472375576135344345114524433662753313263777543361712473136526733255565276162512513753477251244672352261771142424123353317335715253472772126361164332654721632561731231444374472256434247332577673137264534175532316732756245236641551134654421652464753617523417664771576331326454253543516267156457637453525464223676257267274252245214666446167351215335346673121642431276115244264131656455167264421557462276625332427275725743416573542153755411744774676372744624317516275665153452132661266761421511522227726374511717247146172244417641744675365566573577417634476352467166516474345624665752511547116734716546212714513471663637631544245233755255537161256543646133557472761576361267225213467473761121426467335455576337777147445461422472545374165137737734662537512162435356675477512576274441331647712531321267131511341116152336247523665115122274337441355472426311767511314535271235363242575346545626757343753177736262533371146737636574211421325133427146254167244233543515756563244151177516623255522214711761375123233274267414257577271371332134556116625665424374415645611135513314315165737566321716517613354725367276672751613125675666335727565515426614715416115675531234214764637627331162112662535761372711515466521541741346523211442543733473345431435562545176333627122551116662746625272611555131253341653652155741552744241145165322511775313226364472725233131574766776627132161532743656273443153762653577776152267655565242651156245634535552161766546252537544562344136525123323177634171255534761475456161414634726446654441137217755755237532225263747514721641757644461453766574713164656654151745514551141631433752437326634741512357574667123337674736612227377636615274377744124516461723663646637556227224537217767153441136711757711624476321437554121335126234126321661624771646352414127752564325425616427674542623425332522255127612663644222473146673264572225316575152614155453452771452614435415124425133612346547676176542374117641365665112165256766732362612667136516337456363262776324516175217252714661617247446372163163574513624313574521465426544742423714476137426261247713667275531251721635676625743743233362756275376453253234631335567216325344114153377624426443131243225652352151327421752717333367611475743342314345554755712351353413327754115643531125637264331513136134655442624741544564227467174717365142434331426164425475575167736453626353514314767636375214111755347265446117627573344276726115751611456376362432777436331343731231376237275442643517452576172224454471321256544136773364273326753533654113761413423652362634543136525235645625156455713177675171643476364156673651453162152662667231177516476164231451775255555671717177641547264433432351245736121142245313432265441766723616622746272143376634471661572174766252112215546441172261242561176735345675463326546766123213423225152632517731615615427757312645354537717614765656431337467755472766167767467166721263133137761171177117257265177217622134234354464574422341251172174371245562241511463617744164373134251637144336374767663361131434751145161615455144723363566533337355154235712625231651237712336473212556257531373551574476742513124411247113244532712542357637243774232242667343454631276163226517232457636773441734263772234214327665562472646142457161424155571671451627724522177216462176657736723776171564774725655774752656557251761247536132727426224313357476474511565571712754776536765134764346524265276514275261777673312746722542261341762577516667227535526663723157356526517577421575341346632256214277741121764253771726613241263772677621717435134337231445563163454345357324141673516654434154511146764737533512173161535234514732641244231473724422476423774577763177633772475136417352552343241652655255535232272247435652116374471216763516637244216165317247617147137327324241662512344357452365473445561115375455723452536755635362257361722667371747123621535355573522624224163357452654237775545737333744463721167364111211656452575113652263262137642652766635117721376524733357554653151143664666626477214643527116424521221617672452563347622742514367312573453737217544636734324154725366645257211365751755316714325145733461411551446454275277541446144422554742717764313224177345353624173676711616466172422556374556377551461553332332674752511451217266244423765321471176267526557677433175414136276427257323271252124425265771632664711644364511614467226727213472164361617377561121143754766245454172314243412435632241531564342763334767422775562176263233577177422737111221176327135452731757623126241463563535447325522727112335351417167343177241713226321554221372371334536642744376337325647776236361155643241611545666363474417257564351675667153633572241513542417146336135754347531155336513665772525431345762154152676667266756241715141741245764365254374213136341765152217717555373623344551414513331653664533453156422171253633277354652435614112643263477773423351756313273524721457721122453712116141361643345412515717166566671616745141476347637322327167167151745451632455431462625635634651756435717155721767352245632427515467257275161266234441344515567337356415323353266544661442337454323353716443763557356323545414255474774732247535552415173554361231521335552634474154555752377433676141536713564162657455626671162766242754222652156724676465574612626723346645143755434364154545626631375263766365137667315152544546776534133162576665735543621475366241763372653433336113575645515333331767244521145755226734574347513672626471576214125132523256336627111251341151474311463717643635556674737736217747126321315677456346732746777765117733764564622555552767566566276373513152653132671117757747576636226535622326527737646732623577431473265431323316272776371652615756474347371622452754523717272761531365426511767354647341361667753171743524733661464311457446444154142533227575654215452537514111626771414465253614352626516326377377352722436111456752542465434455523725371373462456743312745313375511331572141416273524122564114775122211336567326771414663313713536641713762623524755555716411163656762267543135644312273744243441441667654367744414635343757335571661665314321753555312521644334414613434776275663415666164526371761334145755433114614612355224423556362171636356657437676537372667516737213742746612611664514172154167772315523475575765446156364763774135717351741647414221251657257673564623737724165627136224143142421273466472121772716622436652134244523573774764375367423327543271562143433143613332375631624233422746272617117444674567561115556143663245165121421167145357744761346674412325566616623342356754112111652174544645427154213221742153341642237614445444176417575722455552765166544472222764144547774652762471455715121437734422421277417666124625441573417753124455415514425111655136367475627364146627361263361263133774566625442223363511151161473174562445211444163334532652731231617245675141447113667155247474464572271715763174553472317446726577617177717417166546761726631577577411621653772565555561353324413465456644235423362257314757421756435421255636366474445243115223256722247732751512366173424245574517734626114276535344717535315155162454366736572446256221652461376534273165656112736552747116146133452152657572765743237257276711265464662631247154461426537322457336714317335432111353336372441473414135262646257374621651725766337743663766575545331426521427253267546746737413237272254217336764632636532472736146364116153741443747622763375113742464262416563251242542111613327555215455354772725374414516237226137715442232444263745335142164767757534751134664151675412631221216363662614462116377152344477621447147242612234263271346116771246353211471714343654121623522747566217271462116574275371763257347362321356671447762633121357415334456415464432541645147315245171547321161545711176624654512212456332537525216445331736577731277232425517232715757253133736756773245716642152766774371773617511134536533642137137671677252332346642624311435431321421437772127125316137173646712754227117332455275112131326326535256251224561212632235477242226643662713552713216422263316541425714225674164414357515136712255767412262671452277161774715124732764123373541762112172463316611217521162447647157257437172663774767165232217124153227236336637325233167211334741354376342135766473112733175671637267214417226277477724344724277236157622644453434535151662313226144127314663325162517716147572417232153451123523165775623762143255363641144535135545426736242567336612137413216173546441366544416267613554175775342216335123563413574151567377134446273124363734374623113242265621542143512715546141552767315776363461733244211735273512543343372741155511132335166451634262522726735476522155664433516244417612516357242347137612164722652633125144757225442324642254333617331736545567324657233457223424456662536315447136752331343615252152424366234237125447475776524142214653666222144712643452344157362267547472726316614163426135273413561427532353355173336351177557127253135374741551225753163241353267414255553631752551161516635165236654533125234512727271755564277266652254611471564673711676321341235444145115364655367446517545567434142662421226644512454427217253767166331553447231477753113731327346272346674616767666176572635751517153643345344343263234427126271275513146713436165571243156777117571215725372371751175573423425415526331171421437646337671244725671633752115257134761151215616476551146447165262771776236627557444542516525445556546471364343316174354337215152637576646213655454723557517316572453447271565234747425415436477654213244413136643575457322273157722236617214711472346262422631733266147151663743277235461764767215212231317714233155725714423454366511652554371615577412753421161643722216646731427552767333442647133364351145321477565632317663516734472626541577457454575454144751521722665156223352641527135632174275465373116535732174221714123644523352663557252573224325641435771345525172131371622255151214124141643454666637111347165377722527513252537532444671621552563635626243437413141442634672741343136753336377775751234624133257574462135754654561614377172321471757362751556324424144245417651655615123112135476223641523571666451263613226666512215461647145114233535146735727141771774117722456733447354246262372413114217554557115152476336565135447771756434536344524451246153711721216163556473154633767764374476521441625665174676215174444214167124226775626315346156532344152175527431224755522526362525224433215347463172663134164255171453713537616227325537346674475553143436527542413166214273643527735372365341411131741472666231345266434361423735733273573425563213765414656142756367636172751212472264542557644574671422716137411636213461356147526577771614744731762427566472344334334435233746755111166636264621354126753257244655774666626471446152157374332117627217211242325234432573145347322454315423554416153423747664537165526371567227245527213173567576342271356372336217222521211267724243312253415325436522743752154472133361631463127711316723222673116545527776472312544346761252473451133143773225313157745164434672775371612234665363276715441132231172363415115634154154722225352461726251162755352161662115733162373322342536374673652172665215545267444526346127416727215146623333317151115131772765726524425152422427542445545745636512364272345711674241625531215276426135472363363717112556771627663477141467736427442737647722171551556636641574557742135141247426574357343323671715211136162223714552416141452544356571317533233571153657734377726576727673226576715272115645547521513413135726631357672567244337372654261653557524615264272624665753372417765657447375126272761666337567476274231271172733142327344222173632256315516711234567625236537132367327261162316165746572546562727742761177321127534413671566757755253364215337413755355533342536254613344177237626365147575647675317533352375357327744115563653513467715235764736142453242427171341341275775311214552766332332476534654543414534371472435571141625422717357133564734176665763245721323267374652356766654562721713255574644341667566454224546641256637433776255133677433116773222776741351267772464437147756311422226455573472132515413471432673236274654235551722672253326516242152541364751253343657312263217316673732337446712277331557261233723325552636436667723161111233636267756231174773774213426452145665772614725425724454117665171777466561353124626365117275624713754622667173655624336345121622336612271227576477122767772775147732353474455324337646536126642556115345124646372355137243137426227165576264723152776712324457312311267226621335534336667336367432652564556512455717777133662634113373641432767471561564162356776426624676174744214264673221737763554354154667472731437753156755343777575173144351434521147654311611651462715453625211414312153244232462674552734654636466575222544224325762276655451337326732317731463372432327166231252166316333461712265527445361417726551573743255514256224753233225273253761326166523636344666271112441156117726711314147536455667134141162165766117423476454143167513623121536451424174631456665756347552746624757376753121731626453532735727316235224546741133111455557441312235751434232356756124513457517744631715527664563565145413375412276267742131416176673554715666776136722236221227771456167655666461354567421643554623432426374154211671744121517262545611552356711171365711751111256746723152153264424124333444562466351767375633266512336612362537465565416271631622146746265457316256721551733124332225155612653672465652656371123256154646243523673362667531534161776474217553143513673745721436537316137114432173472167562626663644647561334554133433372675473761456334561155651114454634313773137773453561346461745522153564771161535123151736132615232522231237313715424436343535251533655712732343276543576763471665253754366424143121367275456535453761316361674317347476354247776364336354444365233262721454453373146663331157713322635672446177413273647765757322575376553453414744321226125146337757545222463256612744666463416325312133311637622726415354616552413526261353434657521456157745276561416444171577461527445542462241321376117266145337375152311535611732642672616431562276441433315421515765155122362412356432173534726535353156376447175652151445237712636255125673672571117253116721215233744525724374475424734735765512126672514254625457753447346221332332474221713461466132757571745171461174164444573376615575662412657761476253633164766635334675764753124732435134442325161541447756261675141545322463373457515514532623436514247325155413474265541733317251574446364126455274661174424343432176735557336747526735376743216527532371333146232726557563115667553274237453476611566545247746123434761136466367535411336334246613321423273731115556122745453253514646367673174653654751617144424221157146356745223632733651423235243347316313745442636245376713531166127647355721415241617611265465216174222633665421523523752522233154475762362124276562167351575113553342617712443411631765156676345513673675143525611177716516433275474274122363264465566336312533314124445715423752631575425712333645322722655264457537372272336533455667155774342316346556122674343133157646373634472451352552315522737124164457137364314562613675211223533261313342114653755344756267653113243611131416113641456276355776313615717261772467544474233133653453165214275644522261624137336765514224755532324432424136773611352715513251372155217734744234471571543257321427362455751474144234471717133316254533237471714546227321235457315767213354546132143176222777642531662236574427645345177311374556636143733575572337751771737316472327634114754317214275411543313545531151567311232753534772333711663671156717233421724513757461446736134144167532545315724752116722636453152735322754655453665577754521737343114223721467146625624277414541742574167346254245136557617263361541361314342666471447327451716274242264731227166224167234245264571141544775714737456462126635525633726426136523477346652656342236437372325366557514573761625741614753174744711672343642735542633227541336727226443747243616771424517634447451435723756347151313155242525574637532737554671742357164246135622565171157547644112131666562444522332437425372714236414354517173446713645475617243274623215325663553157522322447776452113635524773217273335672572546766353125616237367633413773146156713334115742171163435625142147731273725632131247574477373636533762365757363317471137771355337526165574422154134337447514337222221771352671214651616666422453675776136415447124125124655133513423345177734647362165562476147312656565562365335644323672416557744533312537472357723222473342335121353647627246257463742316443346414761652567524664157477354671442141336626567247564635662352327543675657546554444226776233575452642531514471255677667412153621216463554234441341241213522124245214462725463611134156441654277712562154533234237745613777531543121347732245661775667161243227522556451715614715573522535256232521475577362153543224371127142435474254313432116431261373321654323741472146366233352422144122555252212527355371625166474216464171434526466235321247277721661311544236274736672736165757247277344767611424473616416323331267324123725756437117751673247267231634236644617627626716324453376561215112513575667551524163422271422334524764663652124433615146377442225633313677172655146763512666111573234635656233757555736415335425752444131754341436142114551422121374727224651115633234623165371427731764541742544161553261721755151367653641234542711346432547455575452756761454766123166253111767546734634111617411731646261266432246633444524577772167715745772335211466231722631137221134524146661136743235431454516613274772571615521136672751421313734345614676467673563771254425712445235526474364734445452134734171514567336175662435214527112631713552524544233417241614736232443712173541374744757153445472646237346734263556445364742612176612756563321677635473776261467342531521752142735676175133172237314457566712225174624421132246276746625435646557231712215343173167752536412371235335647513722332447722554714147673467437122466523625163574377257527573576134117462172561222347433412671575325455676155277334417747236417151727611627351413153757113145763275366542517541166565575213722251117655245213322371161771262527621736443375647771116216246421474416454115561477612523457321562243227722472552634727465421617734456541127266551164222675756762431376417537426545357547335234416547312474446432157243166623463241373453237173472326646531267624755234656776237562456441461442152614273162725674242777245313627727531756361161614215131763245357432431467515617427234333667435371655135177161734146473763136776265777611517722327377716223122741551632623614256276176131543647734111372664371222142164137436431242271461731254457557373456222237457627632657425564414741772116174256143341373241623331427632552267213441577735221563725122417626556223215377233211674427651634422433764534546277361143731124475742351723317321467664276372152545112175446572631637257271477565475715561452745722156776157147577312162447533446644554471476367421541774661335123572241422441322566577276223145425553735263224664533563426734666455151567133412266555126712472437346415331673111766571411651734157712555655166365256226375427725226474162771741476311152615527332272711312477566517625117571646166377522763142613716431321674414253335543247432723576641722473222544337655617213573466472651363441774171663775455715664241411645156566754464123734413241371474313273162547363666331746776146677327527714142531364552362216167131274115612154224773141251161773214634416635357746362477627126651235117762421426465745137753637764674573146211256642446543736146526375512434552357523571763717653513464731376543436275215526524165424131277145431342753545436736512334343451123357555133675512473535353637133471447254645337577252721373427157324253731573463472773134576515647475661732317757267573364245631711476614246244163254573231625125175275512336754462743365456161711427161433337167364533471311471654573646262211231624254525566743424117637267474476724565355142625226321347311742656344263711173635551776146345522366115417637222171262776733416145755525527642151261472275646453152625416562771126357511264233551632312362561512541613651565743146261636716277564647135374121424354337342161247724641511233264732465513632156142446521633263755125767352457475642623616344632555355213462531215471161726513657515247415667112751757263733232373121772661713177366275671124364617777176367576625555436452711511573422357231222771645513724115256421656773735336333125317722656412517517222747612413144257334416567431562157757111425144117541516663141347346367432246761744715615311445563321274522527513215176526612552124154636771653264114657541736337145632522626356667455332445411515471553756713671747613257617772533622216111312525575113175164451732164175236427171711321157515721237536263234253355317524515316522475335547366713464337711551423674546323453345613437342517661242536451135463263627664146744252445224326166424777767565371717264715341361324633743113544744653464221466512215671212566252651437752111172412272423613432731263177422433713124466741314571537141273457647362731734176547632646657334222241555551377245321525414446171326565253222357113365736463473644514333665224144363766745376573345772461273516145554451321362526436564514265713662346467617773747626361717622311454424526436123174734145247312557332673557462763475123731771157172373757726136375271673763211132462667763616455376455765477623152242332633667431367165745126525151315517777143373212726421413112342714134151477722225117142562637142554262433635757561516755357263342177443627435424575474341351714325452745111654245124557516527352117414215462127532377462254222334315627477173165216355413126472723426476477775537466236642471774247716756657433571413277456445262174772776752222364524652436366677216516573746265751437614652542672554435131166755721713377554744223775472512577212314744722516247531477753234264536133424676623717756145477715571373556255237437446352112114653124471227143116253727321533333544314537443655713276241525742435756543477165656217144316223357165132312412261121136576412736756762132374422634151637511725613613126455736213721214175366161541144612515547133253672421346412636321571354352517116442476351633676657775544724744672242116164543521432126511214675721321351646311354676447672462173246473666417556256223214343553176756235277366114136447113462771767633454412332736613624362462662644211763215422473665414554152341661177422254435713555334651375375525456715557351536473777721662434113624472327414444745167146423133335175237377155643343461232546222722555516623517234463426673424727274756751321334763346235617472422231725161314614351274154224477623635544565366723754453776545537132727476234227644273513367254367661541354117173522173533561311267444513314233516126572151111341374764326752522345215523644117337647461475541115646431636346362365345417375477173137232756725265123753623364213617642151743672573772464723434726713212425776157566626427773416416621263763611557543325215666527423632131421566553775626426371342636252225414372672565536377324627635767421267351527463212355641724533676714151244274436754551554247626411236242762334123521666322315257362326515751564145335267521346275421412376465262134643725162112665735156734654156534247646257447232741743541246233756743761634756263451135253776273271567564151176435541355666515136275243662672746423672567332244275621371561765631227366433556315767237217216773225165147316356146162112144755366176612534461476215426733337175126776353632163114755542116226127636555247566167555453665576422474463121276716155522212673545775543266275117714677121317565474161511427341242732735265354725533613666613727322635345174666451633321331644567152716427726554757323355542132146241273115764571423752525742245773224545255524761475641555662573715452217761561537425562352532743572123733273457331277426711215565771373623273125256237122233612572732315744247165617722144346635131463167625724476672715553356262327747741532324274376254611537753767165142463114534462754226235545643466525237514352667313246114511147732655547115475435742154434542555654542563323775672717454232377174647135371571472672641353524543331235175465425675163132524161524541477136671362212536627437472267236352232372634177672735615126152777324655747551551744445346264455417265673747225312765524542216761677577715147771267152437551566667647751564565675572156735123113716714264732413173422235747342653563213615257451123256142177366645366561475344467724522142371165625673633561236237723146466675571267653223456263256563443323214223311543272237646536162435745471723111537653547523543175613553756367334413777163336537431717476244367631242347572455537631662415735147353411361536411574653725522346364736754741612152547152735262221634533247422747225333546365611773457113255352314137323342144253531431757576146452423151466713377442541632435374555263332124563437714776133774342261523725373737741337364764331557532145615312275342312111445522517133514344465322563663747513174116451224665426765364671743362764643765554235135663364351717317614273762374221777445714276227222653142212734134162672313136251435753114377713423512144466215451245565216227563735251731663427435324246157225532267452541773157612345153116752272246424634233225352776477264425542525117634267715124155175657434715527624342343755563363742125425371464117255653332757465571342212341642666445711115245134152473547625225261653753511414133364647531464173277576257331144472757634162412121772721153257536124711327667763273515614242224736541613761171432713665321544356323324612122365476166637175442465727311623743623433415416162321234165351755446121363734553716231651427515362164414627414726542737271253773222754455316111776212332441152364663237172123333164317665762131627144255466711337151746546662144161617355356411411625672462777526577445363244516661451727121362153236166413163152117312435454772424233175414722333363636414173336161512352755112442745675426153662144371577377555751542374313573117446625556644351526157571751263346121717664431624421371477635161774215215741234576646117713612222554415273326676663475425777212617247157322312161541272113736216242141212334654747271572175726533151271545234737657131351144731437467443277663661714142256651725763741357237535626243461357462157553612646512415432677126715334372773267132372136435541341274535735363477541155717654122232626422251621614623434412224441642624742134225722254736261635632713412734467351417773623115562173554647375324454365767367257367644237366722461222717657766615671224264266544667162266154756445661317646613273212321137635571361421425476136456622745632312541514665436353221212516263323567742331215142365325665624167336434661711525145516316167665632615264375447355745776615614471651411357735654551451253134614613154172214112451617745351732333541261472113467552655474566732376534675126555442737577156161322174665416255132325374322131263413273134762476637361723346474654374717416646432571613336176675425737167665531611172344345344777512522477164265366512256772462463734375223652411262426217567625331751413161342462623645623626443547627226463631733321212413451634637662637314426751763243612674461467662713356154352671361452232372361662221746474164113361574135264443775712752351663311371174633367661361656224323545714715567127216255454365726463373174544546677436363631434314643242727415464436376651724554152416711752522375225113125674411562464562144263716427642422173362441211324144334217273346646114457572535341664424333771566316144214471124274646473163131172627332112113634231171317734234437462512114371133233374371723566525117317751273627257627633311354266127236256637756131233563732347362475342146233237353623227474522663516132765372441124556525166466656563153724177273551323143713571566265461217127476541745455645124744523734756726773117566362165562134441746642642254332157375155362145232737314542164473323242661774621725167434753322765421511722413616314361756221441372563756126577452222411333427547736324137611765377451575257235237151665657766517554735563516342356545334432222271675445635562621666432765326446636464256144235425261477222176171647257253717741471547753274773366414343743637111364463673423643513251445747761737566167521725266624162567577672762577443654574465274444434514713172257544324763612455122414174414732716441137332667563643252724527627555652524614752257575771343334512271553253562177147657724257631241337546335445553541642277352577533611544321176464442772721371354754131573672652416626721161227624347437726314466341253372424477133175777732477445472221373742756466266362544677351562723437525553312241426725144133435761753523153411644445262676141647746327636216363631351637444532636561654474344626765267135612774743722571334737747555661353563251654745261773676744533761346775163677316576775762554744212171611277241112622531617423245365555676623734226462663545252727415375167563225164342527455551633452372351663571147432467355357516755214314655171745214233771153661512152631347534365712321427726176223577545622247142273455456257212472567341475571642377135143765244434457521312575725731535244752544213156316456251765151665363647351576437376323533231326166544513764537461234676332365313271741437122262324725647177531261214351364523155467354265352461411256475166465343261611555614647774645553431154562674641523321227724462634742422712516672334367252711274771253465746636152577646746266666774452266153767242346152771671562347556373712626262771371577547713151622112315224533763752137737446627147412244531237545141154121614722762315671114171616723536636232431661561762411473274641445477644723112271532772232717153623616372622131274464721112737412713653145251471251644756261133334633236165145363551157665772446242456465171137324522412221475411557536246443414257512644674555644617635613144663734221622376162653547327644244547152344475313662255117774537214233566225747347454255266731752476664526414557534243762776165445234726771355437256655155763537362165664731614742527335734317346665344757242645127153657212256745673471325513324233617642166774554724266742373736317314414313763465774711151554415536176631237466377712126264536312332316433313234225346356143713237451314656211524362337243535251126261667477653413546563247165271127325276265646133711345354264317432351272655573113242176536366243477511717667171635744611556562723714125114724177673465443312625227621431134654554113757312574425377443657345713334721762341613433511776132723366763161316517144524534446652277176416751521536171665322327446657621415571654575754516731674672655117677664344131572416517376563464455453716513673145725764644323651426737671362515311716474725324566362463412763424635565277643321251537762361643327177627724256375547457616774446366357342167727665543645656222161715153353365445332527425347666761575134573337163455427254233733713626377632642177752777414117327514544436723144252452433235277367634377312616443612164477131756141572542634677351461137144241756126413516265224453455573137324247177467417241617266147362324731652737762776277226732171234627115221326621437563465676121613525357471473457526165664517662243711762231416561377166656645763365463676746626756775664557457115555145152135743533422776253164743567374621315672244354262661366745665356511277434761527717255743532377252273355653145156763677244474522753272771474222121517525365141245665755726557663143725665463426316215627664552257561451126577527341143131427636716144166746712156264466541434435251561565577774614343227373736453632722461467252715321461673632344636716264122424155215214611735531332351773234553473235616713565632756247472256437152643553732614122647527145171716274551153355756254245252163174114473512246643671235753273513235774264372366667773612341623145535264734154152164445572655251744553245764471716454335522241444123457346717217256622374632165671156173174726746747117572617571525446745541565351451342634713175631546334412356315553146437156644721764344562533221424371315272675773331126363614667436466316476377724745764245644577456477356316312616315133627417364225353374144335377173556527555317235466173647476416765731626567573341261656515566574371463341321655113277752632412252211446611176571131247422564172323571462412453575611564252552125465625175354523425673227416711556442351125571243732364434346314362417631571526131467233777532277432314576647663742756456433652625767547444424721336174141436532447525563335727164174612746631775147726351744163564366452346556264276724121637117646424752521456767572314361412476431247321466466455616446412661645761633171747726516543425715172571773224531524474262644535245535526151643726355715271644377143626545631123752563313561127244646522214427725213445724147153647411741513416341715527133742326267365536111635146511534241463323361133735237634625771524664226554577274617714415276452147462431177231632734414345373427475637141265261355126553313544525327425633453421342111451126611342375752427612136341415631612635266674136231543477452144324421336135752776752412366514236771735757656746755216454535151141155543621636535356234711525623147533136312175633555355321723231313535557677372667415447453175137423372351221416376134161571314356515634165127167112431571633351232636436257351252425675167326453555512346463422765455264317344532423657626371477356714556574271453147123644124142754531312642711314327725327145452736167463764126667662435343217313232312721434323312655513733175422753255321753324521462666365147245664435534767451616274743541575265737573272147241751555232213631425414134451464573751464725321454135651426564355652722423254333756555616566333727324476734557166733525475327632765335247616734631313254626613212755672774771574635354645647262366161377171152545373767653672722131172272311465335525673272414711127331661641563254145375546336447464463641627346142512456211265235673251353377275465634556764516316735163422443222725413213765625612327773141672766646256665357132275365512661171664613663417434753672363662772271562252424576175455625173414624113231473753662321223143574266677212363661261433465761341657647552127526734776454144377375362252373354267767634452172123661117257525353253245772223425625137144137665324557441753325127633531345333255554637727262173157322467133541436712715733332731673143265432615577717423746143132546165622122661763635332255571757656332543742132525251376246453332265342656152425253373221155521631475673572145562122455663445632672561751255645166334723357133233573512637524332275616445451725475646242224647167667625374566246143656272555575554637476755713526114135314163751345315123715367271714446156343476231152553311331433216113741311344352521741215451671613216347474142314322542217411462113656117523764525673234364452654252263146456121721355713452746575614132177613114243654422527566357173213273425232647372655524453552214434116632135255543226673161373745467343565473266571372677146534272147416357516457616717723661427644615544525573464255167657632716477355647516754574312477463654524643347232126615247517657344626414141173276777534615613537222173777777421431324716667253315534125226162234476216765122343225636551462524253164673415752474277245515671335735546127624265524642514413447334117721713533315712274635361315727723125511133644163656324556441544757637654231656335176653431676414367364621776642542346721122653373421234435231476642434655142513746271544266447223476164677142557367444173136761231157646754222171235656262761225232335224637756173761677116241775127742425444364652743766512712423537763641366665252751542642224667577263223721656144137234446326326236567173261166571634372233256173651761427527516563323455164664163312544536571561722371276577327657145527576566761137341232253332245627777766655711135261325142265656757746745445542371342246365163152167153621476546773116146564273371425771147734623245143631457621152643657753346162516113357432656134423417756554736757274341435441713365453337144743772437512457561136774231345142333676651226176211111623767564736327314437357111112365765745467423453127165165317656546244612645272525633453216213251775466764415777563231653563217227167757431132177522621277511644643741714736157232524644634121526713175612437462745333726432613515126721153733326252455411572254667451476111434462646471667115464342323323577146442273272274733477741314554671434755414545247521634755443223377176646423147233325114567172523643436461776122363265533554137313765624624647765325162547153125415267762457455216636172721432374734724361237151754774316352513376617246461577616375735663255516366323372541532352256155562243763746365532616155474211766314623221166633235243672333332354746472472475737555755272644362677657231411215353157717113533134731764134356213511573413767363677116432267117462632113513542242142724354265333526231512165312427643467726463744651632131761334237666757736233731235351457614347425324411345752165523771161534477331173136724133615216225361731774174426312735327131652412524724333766731343164167265437522214747447252215625334344217172432126164722352234776434246266321644544245313647237212637647413666453771643126153713367465336535564263351662517727451526253145735455113171243364322375222647443311122332557125457727442726774324527762241143622613661254163535371267514637323414112121447112643162143537662142544655132744337557764431517614251567364571244221131613763655474543613263211744267251446145614472653272643736356313451465167637126446632225264714562533442524436373165311137442111474641714456277626346563636747217513614352212263731617213721133124415133253563166351372613127322763577235614134763133324626661267551663444167576711443746645754142231566375454265432146732431254461656416345774651765761124252711117647615474253471167213147343543541431311127357477421135161446623176126333362342214412127374277576411443772135357111233364113763634611371524262264217646267657143644665131476515336234252137154531227123172663417343162216123716721644144342623757256476331521514761416742335732657621463654636435476372636421627772141426223165635665261734216215523564527746632322132334656571343522475371254526121365763743767353513353411762775134632326736754346564136144434257642175772771325375717635272626714334144333375125525612433635426253666223643365141722166461134152331262541276174167376245457255412547733152152477341275743751622777673211417657724133641136312672672213445333434241534641572763142474732576752475451246225525741312115256755224171216132114512744154773772435234466373474255462111627111464177645476756465233555736747276517665434332212135422215112133714763447274435642423745456652263653236357622377551144621427745334567514576647524732314565552416774656426222313777241527315646457254717642162462575561542336373237731725234412663543637162723356453466213744243621223242445163121477231527243636742466732441154214347433467144747217123277476126654631266274512533644263334147125527537557141323617446162467473154241126133276557534432672642157574616633142711774446547134342333123676213515575332225341675231432132663334125542675522621444411724222654466234433216411644326421754142417434771323363341174637134542722156655116335773272677513366461766564466413322542132713441317417375733675127414726137564725177737644345751721514436526211122224212635323435617253235766211323143336772545327354661551471534742474215451313347147216466631246515147514756313427341221173231172726611417331773647172171535644257147317254343631747241424122636653514642366662766173236542135634224717337125423334757635142634265775621743425161456452156253762552455543724622171145364211617166323211422225525531467117262372244555636147613375545466576145352731523547431172155533424231156453435713767176375147413335444313746556155775624352433756613243641427434224617355627225276434112264226732332566252274714767412621452247412752717226621321371664633266137426526541544565736235631257172135617565631221725747433657567173575754431552665361435632612632323717464533733572736432713276527732117464151341443426527247713115316264763737115447321336447651573433142546656433466533471375556124347625472455115762341472367372645731417756567367434664722642146742714111661637773352664252467363655266555647647265455273543471176525573257353412362712266547746732411147716446765166425271265152332546536314313121754523632451514751645617331553752354737376467275352754127175475542244375243164722237532533573267425254662371673226311575744362433252651237411744574754462122464113211343476463143531277512641452763137566335643136267237334572712324373236712434362276352621213444174316231464222533467553774341741413435465217454732111322745142213646525246325617222253447264515173746574425217232467735764544465751732374715142371314124467235733126356766663714154566146261753376224133121523242721644452551117743556761242667251255614261213327715574731237246463255575737362353243537162776745363243647176245662256254465352711435132734767447664613361127221474316522112247146631357472425566116167477525542445563632174643454463334416354431316563162666345674447171127572624613232511345244617721732112475766272553626344144736132453612417347415177143446253776334535165133214624731316335644561254764677222624327557312775565713522212344427761636751167756761232564117443451633432441457445412662262347524777253421577645516764124451344633767332512576356146667326562165564536111357274122721154133251131423423571522343635753456774216372745324417654346154433333765714372134576564112116561715423134455657347226637152121333765311156545612534527644747264574324433417261554247123636656235667243424443612245251553532456136262534211563726545622276444361211565216366661546431761646375516555315234233227764252445375756745415131544277115524667511426314155777145574516361766141313345652441456245616556664571622246644771247163755643521272464712676316444343647435116346415216476227154421675752564322362173753675714365556464733474544145542143634273762627334565352167554151455175575666632511256555443161236747627315312553511566334632155762645565416665256335361664273761364753525424242265135114643233273667342723546666561413777414733233351562147146736267677541354611257226434352354264145233351243261273257624742561316132471615145376614516373562613527756151776526376161627276351743652657266741611621613732771775472571621424525577671374565664445526611654425315215334173563326211771275547371131663464652314235345555344363415575134431663415252131774323665544257724123475224546546262561235664757472733664232115134312456335743172316574317531354676243176714324665455216263327127754365366717477244764774246257256715544355415433741533266714132743411155616563156233452353167263633631433211627633117256655574157543527151232216421555353233751726411325342664427616354576273276236471245424776761626376316645572442665331741741142662514572453726215651255252465555135525763355266163172736215153567452352516446346671765625524114251317471446473372471173656457716136216362223463734244432361472226136774317656251575241411541772515524346344352341266436522622213154512456175342561334276571721237711256265612767232653524727153254312227112232344632324726145353115246441673127614156541544313715541515574127372626664151612214667133514345366667457165267471777273565131667656514624452422532653132735125272164557234476652147452666471212431117133563461665534123673125267417413173541536412134414136646616751351525521563715567273267161256224477361431142621752371316535366136174331445637145265327272731555474721275772775434267117514553332745155755155621347461351727362476375113511413451427554557626165726626171132417452447226212137633515325542713762325351271414517752524371471116343167121353623732274635615136153462473637133535656431232144763223372666712455352136253567356677141436346475334647464643612463576651615655422176735633223472642531731515451567473256411167365631633775644612552171752251216713166657354634213423437745267171417366423726447112365363211227377437363655533533773531753225255337367646421616315572171412131763111716752234775654253314637136431641535152452141565127614617563641135642217535573426416171267444651354666653422165645744763137625653443437672112615413222535617516143376467677152733255437321371216456415476414617225662634763274251132762543323236136222631161677722112376631255261123377525676671223343245464212434174745626517531766222171423766516112774645731747773272454764645446656443245351442151237736413351145173337154331437663666641176123722354373736113171461455475217412757576163114324563522361172752356337331551373743334462673721346372326323454742216664255646714644117652237735267765422217171675377274536433352251722342263343274335777754321636647275533171427252663652324471374424277516651676354743264545576337757632621737555253462236125662771155241243321156324541564443653661425551174221754542627355653341412171471123232616171746644161333552522734367441461565452152314673164361736714242231116234556256555214426227735262372235773611566227752714177535776331121413563424432624323417311133255317567733515767432174734731456211376272553453316636331146214145166715374532264157773217131544453254114677216734645276313467745473724415527313117536567726633473714555327362673756545547543112323771534653743332126612655156421731114462167524745547135644675771222572772154461444347144545455577766177375745271726734311147727726735774611341534537112336331232237637412555641315425567423556162255127376153314747635761356165473225255173434742734624752572351673422142475112315767576156214475736144424135376216356253164533437445717433272732657416726472134262664537251454732112624564617427615371326463167277662241741714615545677557266125174421414616316153754721647552462134276677527435733335532516655751561361243177613256723173761665645164117431533757742363671661566275626762245453461721277477657476371177413251526527551621715666525645527344416361455651652541423377172125556526665543632225271631747262757722621475172213144136324353557542134215724244667374237564241236542354765513262322745745352524472637346126537612116773441622463666633455522512633634217313652242745322164236542725346471776213521353552117163375122112271733475523172322221467273414634147417272572635156335355736331745777131477574213246115517433547451454534513245572572264231615663633475265422313653272525527376673144554435666245555731612642532156533175664612467363355531725333175526475166336356713477673535755627577416442211173442533725624426466437375535735212556167742374243116737622334165334352246566213523537413556355121545773652513165541613271127741126621377461177664155415532525641642663741742647446317163246742736325522727123261111711445232435371243444367716717222256172256715733416155146737752271172437332745375223137733741272413646672776537461774761375436676365145455242311411217237112671537355714641772233243277171471554611522176216442657311331377556157321632464427526667712153222146171265424766152757741356611725636154737447355542657776567753455274767733672466744744722711277136426522271346244657254566775627672444664122136524652247731533512757456151254137616142745127411777744653767514666473511332263474371165375447137771352324654324753163722657553563612153452113512127432717666355657756414535117423365676656515312416261635456511751547536311241373231415163635133217264215342463625757566163675227245761414753454353242242541463327127162676235554177325572642274326335424436214735777657153473134677541224156542342337346515222522577722436324642164222714626272551552736767665773526737531461646725331131227627372115252227415476332346461543563613521754136565412657535712352554247434757727461657643435673751364441756141127225312746445733173637744662663725446643616413124471476254354745424417612652264735164613352646521152253341676473113575232437321537764332532561773463116353374551451213375655165334635573123671757172432337746661365745367651156166433655562562617325154251366374141336136475576522346765734664461534451211757643177167572367647113641661171164415524415734737757445445654774434327167564171176134617376775352114214362762113626416337336174425135475565175477337374227147573216145534255714741771323346327537455232656367154256217644576463537364461331446273734712462247515544173447475424727522667723215762423157127673364331437531153742123421433523162516661654162355577742125571116367257344754113764761273742754713642775563215413773332537145436633222672422273514136373311154757363562634153433246217557656354324574161415742367371265353222745535134175773342263422257612277742665416176443673345464664714722317751752635224662337627331733254361457543466254311413345341765324362456715533374345772646635467247374166752422756556733626475513442263151312527475371774543435612321527561244214755745323775576621764153267577366772534743613575714311721611631637714527231572273534627717113367372145157227447733415425447175136332147163237142424357124143656512727136453467631356362775373354546561336665761717646247776424711651124723611723611635536371773262314716261363755737674443652112332733662737326732114461755277523737216522665462663323327257142535677442721556745311534663616252751616227216174735122517117626223415241352172615417572573574536711734753274364227316457641414425611425635474217137176272254737421453456116646553574315443246121275433454242226677432215523544555431766423555656511733525111666331521374752637521724371711177133176345654141113214735736256252572436323747752212776523547356546122754447446566276151425564552364561125373153172111253742417756325341217416725226244547122216142516636671573226154531642154767251244135376631645222375523312336453267126723176727141632364627675224246147456352456653211674654476123736674733171167417661246627532726717513734142713211236121213415226261674211423734261764224555317336326141372616234344656333164127162766217371323766455212521242341557361331463161137757132167313452412655634333545533536154716464546725527254447313677575366235722713565523161231527511357213175377656421141153325415544474115544543414537656272743727371712466243414176273724232424545545725732274525544256762143631514327214323116574321221346741123654575141543433765111355153364643322237313557256161335143313776331644576263222231254167532741564762531361722135354663137233323622276426417733651351654577232525744577552465743271266657773346154545613752656116236233233567476752552141247257113647363641722537615213246375375672621126317462463225433372222713215427247327666227174334545757361123751112772733733466153757116222426537731233546116624312324245311363467522117717721343615232174143312354674516577645326161362675347675264744635731555573731131165745665472165777267736223445643451247677227617145141753237715452566666571672627523612244356724264162753144325317671116543345175413771215767421517712676244753514125236734715167151342276663336657374271761677516754273762315214234563553734736624234643716636353721417724427371735422122626643156421322763714127662214516374712653714213615427427552332272514671173634215161124712145456636335556141673571513224437276173635523426416657747352735155766262733365347244157216472227116644141371236163511622663114126712527567714622113216365576311123475463564257471721551431362375644413772517557651145171227567263725334516563442665366521417346731663453223671756626662642715612671235761241247141727114424275465512321536564471674615457217656521163237715466556257626637634527635341252727776613615571575157743661616227317172462243322247154433535356417317556173446752777533777635575437514435162671267133542426315152733566366566574421766342272716212662422311162633732666717221142322614136255341744243244157274547621445362127235642376114734571413646315627643431667572266546627374326121275552637676227714715736572413444211374475427327722626565637373625166636461323436727666463523725625417356322765567557526167471364746774646235725772654463534673361377674511423113311767443132472523522374436747211316342566135417663113557453474435462651463334233645123161521275644132212635461746567277252463167473624216756754643653617146465436137542551345743231632636516362165243421546452775167344326255475332613661535736545612335263743576667356432225271752126554252521426454327542263472514571316462544572234222542713274543765734117567115526114415734322632425747235345721742313277642124467173716643446642112423326531361211622576253736157413154647167231212473311574421473177464514626651217542623464644244324774365352365451634214667415147437776624253731125445734176622664664567314617722475312713514172562251173674776157517721213612272436537136526534524526756237456511565412374267542314122745173765235115246754657272724227731331143655561376773123425737122376373761441567477722353747163322152551625675655657114412527753272446632323121616527372455542172257233574177371264313561356677714747321737761217541236354243345643774711121232116233261715332137331133354467511544763153727323366412647315367454762317711744474444632563413451761322324537171635411667232577677631263536655752612161715374455352477164642547632241443212751526666765452736733257315535744135734622371474316724646332337642545132451632272275552424741645211133272365515724413654462465127234645113675577242441216455366422116721421161226363424462131773214215351467412452613351563774225657516545626154256513672362715662642427213122437212571747351747234577531133317332412626755751774554636652213146327523511226337715372261512736662744236342374276135465446541547735457414635364377235662556522625473344741517236242752126112374145413116266211136433556467721525366511431352455421176755156123561533675632271742153761565477765142533226445643252467447317315233376631516463712157234156711634215171251211421627753462474567217726143255236532536275345714634637533252776762145765531322714477354172473362576315777722324773141551711247437351161172335645153337423451513552551751223671516732775242324672167266417117161165275633266657276135166167715125646441767665514531246146151762657523723622562254362215134232536472174375545773523645567174447421537361144744435623311417265227473432547153416212652624634465435172247265636666145446733573256156213232716675613347262533242766717343633423275432567142461567472425671353763547715733461551417662452516116564556361627676141136315676611476745613165765712716747436411467365757466266777277115157621171227645674534434565475372375414427423323717562237676427667441114156521722661224225151247213335733614127326441262617724146411315616411343317326526622447221441121763127547412474467623655621134333655633714244613676255667163536125717277524316675614412312774677311322314746545326171433733414544567632426213756775131424775443123125351271566575272454153727232543272331511557211466164576622777431674745114145123143513475615762742446351656477114365736527425532777634623463564234737713644537747733336714363711523414612356463366722533262672654225726156615354147312543622227642434332333751465336613116337333517152376765725461452762516543143757316376172651725134416464611216256227731226337252733663363414231253257361134252545143363625351576123753276515762576236622347417332721347431147426343235353335457562526652676637675111546112641536722677167744134746133744322475416577615722326132646143674745615575466257523426713627111625476256734642734417311763614776647575477165352122752742344153151131661777546152356664132531146361541541635532667657472645663621676162255732317316255432337513614622736632764725653326542533235516721774274776464725613166411172714115744335315617561177651772363614417252713573563563551747176461731157361652327576153151172742155364223417643723521247367574771531262524521212575623662642232425434726411422772465153347574745511212152324614763571136175413155275523746527335525721621572716437311715571625316111374444545512543654433616356171331764342123371665347722557476521627364466126116632734222173157141217665667572366672314633232156266244143224364344414761424731551416233445113531272112153556735175711365716373523735143521434143145265767636212524222614657374711627427472533616442522421347651134715666231613467552714752151255556455267462727715327735332367245173532571774175536632365524532253535116276616471365523466243377753664414465244463354524542712777367747471134614232625461673173233136267213774421773552731241654176626746337711122366553517666465366164131743244412251552531561236246663776323654272366543523645673462762513211521151635327573474733241333743136235432263154423137344317713326352724234632214616152514475146765177613417541133737371752465455275357627673727333264362437314145613565665361323532267443465211661251756676637313433576145665755213477477362214567237754543452172534573523144423437544221565775351621173321773437313736274615433625636371377644675377311612566147644563724627417131153363542356453733326127251175374532226454322534277773711737572145467234667252763763265372341455314247746753343643272621765142674327434221666253572675164617111552615247337254534143643344345432614437472531123631224557226152354731611254276652714572624533772464664711432437531217572155444524172673146373366327467665543215535726423363613554623612466717574475231567251546131523772513553123757135154232154327517167346761355372277733137453444453417226464324544437153232466244516641516242625472317732212236577564556462764533664762212335316266753533722465164673714257112142646331634214614313615444554761167112316726371641342776345153361213444246267274427731666373653164447173723744425417467221615215552652244652213154233366357761636124342747272671223642576514571514142455574774717313564345136271734173653442154175555222126156142663151516723434322745257756774362517652655221643247775714675243524622177521715333232134625351534315424417571445777374777425717333715455446522322452162144735751363742616461713251461614371167336733113761772417556757476626552555761471617741237735175151147425224363354461574516415334341372725545712557531221153776433552164732442526662723137521473162272764142233213316731114165573734124627152464726723724444323535341633547716522413726473126511435421616727763135547516222763147711211112172426273154265366612713724234544716636254564423415675217543216627474311177431163554264351562553634264473447646215645462451737322652411756742764651316665657713277342556353663251422477116177317454532577157414647777177727772631323572511561354253164256155442413763355324352177427136654511751351575447775225256163657331426664655412423244152771476342575553247112253616225526556522673451675777236417441334113755246414614514447322357512133422257121411753526567716161263545163765736344626674716614744322147437244112473462253145651473616752177411667145464112516556241146456431411525274725165653677613662534675747577261671567146141527613274167751167361347255262444336165466573512631775123553127663463223173465767771772457661741227642153422117221237466644141173151465741253374326215162466716325364257275425251271711467471323151476426372737251352422551673212353235255461476543115273464175332665313251211175476336565214741237771326551667327354344764661624723256743721164223666266755157541251765367575131411447244152736355453113154767142275233531743562437141367765711222144421524214547454524432332654762433515246614761543125257436245372744477262761136431257234157627116456516774217143162226533624725563554364776772431552445727512371746514275715241426763565431677775766576276123255163533317417421226767726621357175542174135276321321232135262371255474111527552625632254713243262132533626764155642761551115544147334625525243121236425445322626663254737643156113145622544746626153665644251162415166434747723531227714443452613433416273274561773775431776361535715735256644743433117226145312114617534422225562164125741572174465457223446225443156653742353733571522255111555252247544763375546637156766744463716164563222616573617476473252464372151363563554735715665274542211517656335713315117575434222553725613635326767571662336261335721411675541447417617143151124715166377143327362352266674716421231267215436575633263754556321464412534217157643362661347172251622275615614672347627664514121124443235726427653636535225641763427133655516574161745561355565146244441322271711214163221717633641224347676171122441154364257643656412472472675752171521345232627472631112562277511562617422675755242454532163243221571554155542456515272417735256437616314171356221151223325743727611533153127742257412635521223224371616137145573534136512645256616761674731511163467441634341353242343735276315754621613341575723166462373224622315566733174767415453514237632272642544365674544473764576562722376664412113476247445135115326557347171323662616564367271633611655666721226471476735756151443631417272325365325221125733277462523654225653425237243756366224517276527274645553511115643576351271743772577355636746433713632161176417657524411474347741445645154725773666447471146153327114512314115415351433447264527537221553264746573736313333125161124372537224714311342665216616122452535651252724747336741642665123476274432623331363261366554276647467122215631677116346124654537416522642536625741674516265642722663161444436233323165775571763153572636373325556256657447547265634131761223712727526563556414271715774136526622774653132713522712523245111172272751274316671173355771423523753341571342132341516376547733341675154312435652733672647732366466275727212671113413676673123761723424446646746327576566112421523776542536334455346336247411673173666242775542477243167137216537126143354721362226536541673556572576224616745367144137127615575755767352366215133536551632421225125754373113637312251455527742554451171321114744363421113717374642763725325722557113224436476254562173536331576612344717651416256355741515774766113524623653511547233433332642644236527216477544571143567164351774666677457523112227576515244344133615762745356661741632465713436121537733561567663657125726362175257254643613561367271773742263711136414174365513544655342677171325276676335126664241176455576727556446373115163531642417367263247114144466275541734175135253466411115553473367352263715522171151363741411136775335536412632156175412643656561433116661244442461142427716764746441446464131377413656747556252326353322735165146545333277226447415731225745541524247676521376446242365161556631366247232472246273532442627572642576522161316345517744235216572662634143374122672717434156136334511315644366457757113642444376676721516254132137151446612233143245326144657764713257131455762375231756544553364512525653353624437436322777425115361155313774347423254465427131756765536126652715422167633637144644426341136441113421615171714572145172216152273444726446547426544254575313522266751534411344321145536367653262151245515751424431314433331647266472164762244617161525141146174145264754167652567541446464213721456245554533721774142771333724771714573356557667574665131324624115575123762767136636441574175677361272472611725717755145445336366516656157262763752675442215254225724732767267674754612134661474166672767716665474264471156135555436534636526466715546555577455311115667552311322777665446423245365754122454575115773631472727665363174352622434333717761154732672112657142325642354343462774165317465573734432756424652753571431311761354737226267556765335467632747116671635454521446373743126333353243337114567733764267563417745362735656325432127457447171766626712516542375577645521531737723535725761332172166642734731124516322122354474773677163576523173136342417246547736736326362512225142322437215221134757615776221745317544674316432237122733656152774667347762645161164466663477762367424533637536755325315565654723666342744131736671522261767561167734241643156755121461557535744656463667266163775144222176663361331526535455655572114425223552676651634474271651163634355744234222326166415673623175644632364777241747671462163314217763112512525732123172411651373461713274457242455675235223452622724343117744373172625557715311613246451564324535736574576437517735773762523276672652441315376462173412753314274472636177627577717362651111432272466376362342333372557661144354513553571746162531717166313632323771441454474567751671521225471767735114644332321421614647576576611423777432675657141544515576356427631675265763777163645414242715117371127725226226623463726331142262215277131164657215526562666126341171115223121732425414714626663663774537732236517361161454442731332126113246727156155334771173347551453617513637446363772773337225354756737222365235526126542473342747644566736652534445313564217315411771573467653227157437741713644643133473467712737173161172557253666136364476662672277211477426774627567326216415626751221153744545535567512462355252263311716353257736711357675333452112323262616522313351432165343655176535615657222566523131576264664547441335241416472715274112512266234356274456237422251563143363236564524352274247355534157527153742424152472116155542147231346642224523762274273656174236353251562255644774514723523255273532617246723333114577763427241524716732535172412263263434451532334136423244414744253636373466711425467723355161427773643121112254723724354172335244422143265473116417256666213636412527236777211742767655576153134216322222243251551546346245657271234555172437675663416334721151164552453626677565136173474611721415643245146715531447727472574746643261665556343417473533723517313723111667623164333527123375445137367447333733357741743214767674522666632336575472676337136215557141135251121777111753156676454571774432645646766174373363147621721554642346245254525145351444455624412555572217761664333471756637271457136466376455271431546432553121744613642416236313471333617113327677253424341271651615371423744644663335762122227427247272416263563115514127342273331342412332727231722534561721243461543117271215427673342443677337524725145367721722355523213147211623427246252555612575116434455647313231265544335615416472741634755272431115641422274145351344132753317537334467716522261325747246672555517357362243562535423457457535326454414521217573335614642636467445216571622761224115672766536612423313475615647442331431425225557112442333136174226473435266745155232465611511134775347157164562216554445517613422147246245634265733516361263534742177615317726633115734254446134233335765161145355252561234741375721436346443217726375417125365161333357133563566436261313141657613232156525114746674635132436321733151733534242132625442676647634352464741475711162747337124221645715572552443463766733744356353253734313557726424211524263222546252713257263125657742371713171725225554574216673666137231641653475352142462343641753676165142523351665133451645753433431156422766245761436524331675232447372517425224457432166355272356226477441173651625234772613732665534462613311362115514166573152544324676227465616577326167415572233734647526471367422442312162325717365357321456422556617215351141771647572637662746741663437535756252122314464571566555131216774631243373743434673457374435236511734256663345635174234676531324417236735351744545312673655171441455267125321726647137424334311467377221145256232245127544265443464525723452375613524677237773443724617367416211454144271277535237731757733643721345164114277723117224321526717254673425145156451414236317123132641113621436474546261223325531714235627672533327246451673457552215767161254615533577561137215346244154261663535715165111222767574322642137374315124625131446416152246353324644566152656732664561726643216514263771267754242522633521242113542242367456714157343715732343627144362431421746113315217355647753313555611725637271721767553562713472173365252111173311377745267521741376225346567711251356275367465435447274742753172236157617646321155215611127537653661641646472627431132444317315573661164135326463476743465326115515524336762722362366746411212172745361377672732271165626751277563223354344441761177673412431317742471224577777116176447623764671141154645644665615552545134524731757545233631312277553366141444653727544127361522566715521665463156132543573644123715477676444753666744413611323625455435372777466353715417452143612555215516454413625556534641322576331711757432133511454267314564527631127263366657726454516266731734237156516364377355125744737744557565435476145762575312776112571447314753561466747571712524164131152477165135132713214455274517715364273176722233443122632213415144675325217432616222474636267713373735755612773724154657567557121434222713124426144622577456571653365576172553457142333472262246666555456733262376632272421655555333117774222453346456722116673437647746361646262147742154153516413317257333143467465513117562334764111755472731167557272341674364716274645247347335344617761511211122525353311343211661767157161374467325666732343433532446564715365326225721356622176252122614543216247652717663172736352443121434357455765744365671526163375441116143631546264154136735376154164177363547466275621525365172521121267543513522375556275724366317337413774465536274225727447262245377611347232161512373441377534454446472426534715246673743135563347117251743535252152447652432756756615721565223337715673246345234125727167623266157756264127643265167777161471327314232644641267676776625165231162515673461577676467461117723152322222661642532372347452555162235446636124277431564633772511634372375217736672742534736216473144274135722721325561215135614321652375171312454124245652553375374523444465542343761666144564323116344114567725435625531117443154111533212215157532275326473721433615235566264251412343124615641332756625545374334462113563467513722773467327643323444724364334747131417451546172456251627254741155137174352262441355447575263311124735554672257274151731657272413717765356663514223335413533674375213732617362113356131415614345275561653721124552554536437763523463661153375653222715541657341611166315644442155347733223346431657471275742241715721334661535512673722515143244735262652726511717211473326632336254552654535536467637262755312231615173556333271173213527451564656565733767226346757242277356145614311711632665553577717745642423165266352431115564566453247512721641465622143522362326653625136314362755152543773224222675317232561176624261672114646726647564753162764473564776452363246235534142431172561157635754471424317623757157225442326133665646367342746665721454627444222625565511625614416543246133445737625416662363733617323256433247241711761131344534651216152416333535734331374766546557475646611154571324344752726615655552433632411442177564177151557434676262433567611776515524612554144763236576677617657531222477214713236277771161156242274544575167512543453562571515746512372122172257634272463653467332652263314633525245525773351314573713543126411326111512246261651253426732672135746726242262357475646532733245632645652211357416174171363517413716465777244276226536565246127527577476412123636621467224146211367337172415171664744775521532661714633214715175413122573667747141435155656467232434775473471415661476264232365537141772251322711151171633163646762154271434744152272256775251156475725271564263412741537246363234645564634463634231473421351774372157544224677232471744261372722237325746447363533647257426631154116713656776251645774735611726447342736621455643342145527732516533626712767544111314177764254241533334523571211342152251616332576141423114135361615734215157421226377721343173353275617525577613454546613332561217172145625727364152744316576716735333134636665464661221271163775622134637637567145271337347647532647442526665573433656523611763247225576466137412767752444452167222672541455425535623161535755766257543511444236112331525422122157134524751314216343534266561617622364762113543411763371461442455773463615162533631172337315662353733323742325511631764114664132525747455617462555663265755477653441577367237414262522237171765433414333456326156431554664662526776533772535542475663252752125134777377563251531311747234557362153132172436572733136152547565764216517662653755351366644522423253145135322636375525511164527745351275637724663446221437774171526736532634222676617753762363445352236421153452234231627256523351574335344711234567753672644171352726564254371166765455642263427623511137567767676545323551124135576612571671661636361636742464234136326425513666525677575745362165626677341747612462552357725325736617753146141371546114715531245345234551555615173614315162316142775343532234634224556365536433533371643166462274661437373255532161165574562674272445476623476516725415173453713357212213642623536371211546251615737147325611363233453432366447233351373774134466723476544522646373323744357626622152136621114735351754321423376524747632742444363362744215647423736132227573323562166477254225422444767637363542147611547262144321621624643231547537525544757573674167563216364246321774412553153551431261116532455466246524131327574512724776345225753524121362452243336747673525322674326566643156523412311764536726461437335752734375547636312225175341473172464235612676531154674347411127276712712171165274654321363565524426726236444174662324463631314177662614562372761123661155326745135236715335524646224332265172776631522254125412334777327147341133216343146717244655716714751164415351566557574261753563351477142767157625616325414673331571424612717613563335176676232312344144446327777243753633456716244652325361252375663266644535553341472221456516266424312764642166247463531412322374735144522141156245421661134255751575351475674417362351355113522662531617377152771325564276561141233315354351667622562312271376431161527175354345634276315445312322565514332776562212133671432654123613236347325645152432515162475767473456321275712355525345515423464142664113624152624557341124463166466117563217473162215421767216266176165415556165217241331262112733531413351277727644161227531743336361636656641745355517574671323363446334221225163645524324446775341275611744562147632363137737574534315473762377263522736132172564135776316456375151364267411767473374334212752657715445416515546176542252467654546432363344237741614232461456354136466723445542643476646124142665534447115673167431234736543722575342343723242276221735611224363226354755263422344447222454713226264552472753311754161335625352317756246335755753573526322156371416323255764563143415237454475445471636525313527167615752533367246322315746437437637336522763716642163776551625672636617116376274324613661754634737622733554513345635334423117572475667257531265652514256656547176676623617626523674432317373314365151442344117516253424543213133641775141563444463734422742454142132536625262731245516724361775271445447177364577367271531737456625452472441727647767152254132114763233477672767677774123745267765322662652152131741563751511576431621116333557565733431413464437622744667354342736372544123566562755456473236532472656372651527636574344571544715163113377453557447764554631422242554173252637574572261664137354432153561655734315644743546474151455744132635266752556724675412451245551154613511165757557211556774663677352632157655723755243233511212346443641635431737653267651162226254551534477614673123177227533452246233662754444666117232324563776721221527265564515521762631141133365537656345725511616162216333651535413451263144225135356311676653424763171414236152521441532436171477717762414323514557633716715166767167231763244532516226721521336435352461175567152764757242215257716364415253371561377213534252364233664413142223352373757476634256545117534657115346645674461226274726171467511336132633472425435736636715756173126212541123556263245156654565767711175476745763227134613571277211331261176666317213715255326347514623742641461512114742574341412765371465533724335722362735716376736176562253627412741144755675671512371621222264357475262152542724353446467715453522252457735246565121171772637312636174171514572235436546732673155175526511351413266143747147465366151721755127556472777724752672527522527443411342641552251532174766341375766214462656113267471766722753661413243327242657536645437736215466672135261357343226772165126655556763472647674327121441152741615475154252231654671734752355357221627444677166565561267436364217362246627526564344554426345175735251243135774521216662416237132551674221631424545434666521433712773525622763546312661444516277477652545634127151337474156176146144412366611115257231737647663517357411211213142264261365244625654714145277673722352577324777574174611437322623167231263653643253734277342434134157276465161425122443416751554272223171577652363541171616165575121321512567736413523715724673416532672251354135477171612362142626227446565377757761162421724316221165144565573662711262354115621146753432221521633141316716511535534777223414517215235245126271154563526266647661315721624645764442125744731717137542734322227563776573265376272367462235346415625675116745666114763376734765567347162766544356155514521117676724643153627465313164646757157743537155437376236556233731736132476423157227134111633346452256516461117731755457452617644262754613734721725664531133726436643325537323435224577712225167744476362425167712452564775524631371137573212212441721437173555674727161422533111313355464643333745156217474625667324774571145441356171252634532465276666712467626545764166533713633532433611574462357757533243537214357731217556713172766422176117454467572767562113413255455267246515674164243363625353712641565456147645353722325153555733132677525572341144276114363266472762743524161266615527256475355643757422137357147723741671545223637763117244261264467551536457154143465311131356635773166744153556236667173131133733242246753231244144144467573767314632537253377113426165145564536312465473642744215225133721363215465146344637262114737321451172732555312616744156651574752752256334264555361677665154442647156731357725554744734541215472611473432544322737533317437217462522175353714227173634577511661134455113325137157443123274263477134656227644653627332653412642766455377364652354321575147243633511337377775224765135752675362543777747637464152656464544473761252355441417725114142426176464622151535766661412226362271251643142335725624776211147367315561226351154646345165373223364744255114331625652571341773223631266171425627415676742131553136365174457132164563466662657264122643477413713372737727224234556152422464155374612674525332117735271547244715566657431174316372132217144535315313247267721662775317234621543313622741743131442273236622775237621225323645772111545546646573465616431625434556144527524473753535472565431717713376441111416753433722465557462121754775247746421623263647716121217726653541322415133331522444564557444112144426141574557623412251234536134567313564152755416625631325141627552127446753623575362435143225373517663462645435255611335647577157146525713455373755227615664662717551343537457664576457245735326414531714151757527476522326262122576771317424567436211554572624274165227171647524456644315617336146751761755121575462124715641565352442556361541311524325772151627175353113366527513335746254356466125545775751241575262221655425436124623532546725555777155737463475777453641534311212137623672242753727413467732343467451732156453666737467474621276343447655534133625765145421551576742731673325511317733615754134131244445766647771715275162415222357713413271271372732531713626153244525145154275477644754547366574365162617337271166414252177761326136317352373511551167417376541454215244313665132352214253131277631444225614417635257565211331333312723513355341156146651114157577772354511345464377276371615675665123415642311741772722123713473325676553715132332434656247537263152637232144267444232146131256454657613217746622435533457565444122212524531332775552721716542165316562245217577365551551545154615665122643724753447536572421111671412676272677143227271533543723775365115415422153774746235621337156676537261376176414426122145164653626646115716656212225443252646142125747531426457563346575752675721614667133667747373464163352164254652765255262232662311636144563257567314734256446676763677446655744765561216163763652141116115671411157372211527276323535545346516645775117271212754346724652434427216122751271416733744523676442463475674633763777364147546573653122773365674313443767734675363516115445256676244532645236756347147725642533467244531253252116134126622165345262735763421634546152145453321751345743316572245165461127551657774411142621145744513736613111771442666251464273564756747257467545744652722432111436323441417565471766361545146211153327561531417415443427144756273436426622653623457733147546456733716567774357635741445432371213674453462211113771245612242272654322767312432732246737155474764425625545111223347343347221727362144532432444117753471434626645262736113351763177441624275263721214215453452751736717341261462613335763341536722632617127175467714523157323136232622635654514614267414436742675777353157632223733623367364644454423627113245531132571427225554125527521144631135324567472367711563545753536633464234124344255425711616162766336743466112541372274264274514437244774524171142451711521372646672363744555651137331324544641641711315752541644767732476274257351521217574661361474734753477546517732712412557727422711367545336332533715112115747342577444277142326727427541354311572541261115456241315462421353332716726147614632773533776725367561473377262754254527127622352437476137265464111563675561127263343267376235556636216175271236564222241776644637452472223337326632147356242636675145376723765751165734561143744551317313711477627313171216612267321352654725176141461672464673746164352763574472557731216617213123652751441712156263273165225546224323357461517525156576221165111632371257431314122772733142653747361425451612334644737454742245316357226211454141544511376433353121233164232646733573734676245567674224746343235616313672527375466121635573236117741332623654433336522473615516513736127515151524467627221773754351214355273345114277222322737456616255115443264615621263356334216144644422131431234443772634246253656421525672734561767342677616174136221712114463572626226117737443354565766445735217223144146112451236736564476331253567315116464617473452132156173453414226275565544113325633543121462115625314261562734621175317556157553424133223426217311151125744712463167331763623765772175671213452762634124316615574624514736313571773516157741512113664267722471512253167175246357747475571657132456756175612451564444314411435772571417262447426272734377542232313563623166142171364124711424766345731247264374423145445527216144736754672421164371156731752766352267656132147611736631726236754212371374421513675461654617476736377527272353554332511363234147111752163332617252524744276574614612222655155174356654213274664456571156673573131627257611277735625124613353566667626716746151744445137556736626711673517325512166773741755641642731273335226325325733137735712174435661513466211613227312112333766666637315227221652614216351756634632662413436534734546314313317164264335771645447213145576237145555131637113661672317166722626614331323335743122263163764357247773736253156351571126336665511511213141546365555551514313764255276513757727466334375746355772523424713124264716441346273774366621333644373775651775526226565547514272531232626136622644532311361671165371455357254337114344464574712453521257364637742315245536331575161226256653657127736522545525445566474361567511615571744437313162733462651632133712717463533243435715273365612172473451134541714615436665556767237615711456556241714614472371335316211256145172373765445616251771632757665414634344111672516527712311477132435252563553135716711341471474557465734332645441442476636617475334231664151125172232115716156522335314733136635752374115713674726661464767554463522224736325721726165574652211463716521352255451277167545666735247111255513442672677663552465223335363255613113374272557127731273722457152463623442731753647166472631545725216463767164551457337533521412134212522547316465411564755137352664246334364233715155554366214514332265624356646465333661422214547765541116174152676156331452246135722144155572652677423671115732534141556227425525661247452254437234372224367131637644613237713626347671327334426414116421422114641631174226572533353137361662267464573135114361627242111261527557131453365734216244444574646733747715355751572536163654342154542454222117277443453147575713556735566671521675244547637432717513452342424513437774257322414575743277453144376377725141421162566326274677247211274717752251347362221622655665176411576625762712235426514413313365335237637227453225276656371526453115217123271623434322342435473123554666376377733475633276646367755333364234141477372622417435532366626432755136157441523655432761542516623436435372454143716274272543534111744674753557141652413756242752157541356523647746317516343637265132166752335442463434361665674327537436673546715561331316267622615741641215726675627167117762273777165277112662564673714714233542642562462772251651341643276563261347427717246243461644276144453517561663617643172356765513351623523672373356776125134524243336717211447175764617413174621263164115362362171552433134425444753575334653162247422136472246655235771457757214256562432657656473272341436351776765337535613463113357312341442247664746547126426753725342427644644342235347212226511256522515272635751415426651622151142213734227114176743647732247245575262524426336223421314541675454274466127164676342413177267636456234246345745772243553561464443376713737645346554121461657215644455742126552546152221476437125662467562451525532755125762173662121111345437213412334743343632145355313165217562615321647343651416251666517555747673171724323463211377267156743133334447711347762133141165774316753316227444354657164273174435422664615752426775613344744527363642243731272272773447145527655143467664624255445712131613712536264143545353121733245347531713532247533452675661375131225317663117773332522321342255366737617221217653145467434543461374376237242336652512564151422643372125153217274546626344675162332645552714634471464347721637262467335626221672141514416562521176221774537737143213755545636146767251535527543275564247743667455564756442517136515343447635723613271255527424415142516472264554114332214167621346616556115454165621132447533777562437357225545426432617762252242426553564352713557141757276524675542722547152347355442572455145633145413517754722567747315133625141623274163665235143165777262717171311137535441146455265274576415647764746672117656464324764535433432736625147125774336736422265431735526543445356112116657776653745421464742666577771766776674267141121524123714774214174773323337532525341631242773474774446762145531454431566165425135571517725567624367557376732656427571664443346116254223137414257247227564121642661274526551266273136124527724323343634612731652275126512675326564256647143222542253233434256245553467474727274532745411236154623371341753714456664544551565157511545743343721717363142131747727114512157551743611414527714615626411736614611371353745735537433475462453154215432646352325461627577746354174531714761214143146236323251657444446254465773417322255673662725462217755645126752361151446551317641535413335232362471444313443537514356771524763333367732217652643271161243632366516611243131325656666712476736527322537133266653643544714676542673156262471476762437137537514116414233513643551115737173765665536252443637275327122133543223775614157443454225337542226452142624241275544116642627153137435521244474252664557733151574537312337167575164542555253343715746372317471217664752617234535232263333474526676273573517253116226451137671471222661343271571514363416416655167367513732121373133364245123733761632336452672215654372723327525621245122224454132672764436511314531434565123645746345721673743416552237653336244717572772215657544161166313341731723323653542426224343214647644156322716353535571135566154351757722223162556425532471425142351344556176453314171451423221555713461471246477111245416142127111367521636565616643574517731133161233325265755653232672616122542675227157644542765356431452637726642656533317576423377346641654441736513253244117541516464561336332224451176516673754724373537363515262472364344542334774347317662471641277633221455754511541531761756166152514543257732216361361577316315655333561764176125364453313254733656145333144647565143564111515273726452167565445351647451542253555533142721465224317346533741335171415717766611243377242557512313564355464345472141775254335575145673441115666763262126441132736537174224714622242353337552746532542365176471515153315463757734321547247126171676247115414571232317335446467557414425456737163423557325364241211664533447345627375336765423545134417643611573423266266147534337771716366445727357266112266522732132652436127244164716325317472715273445466414324634677527451651472756414455271574364235274272443657521367216357176413243674157535427656516545645427143344741735567666556543327772175531136232622777566532153163262736242166357451546412717225633146174272741116373245445451245551467711324446476723477337344122261372336113142745414447375671236567133654152466127663523324356326321717525665416465147473142163736137112667347217124264677717272126126226243375276635325215345566362374231557311174637361215164733354676664615136531571612511225544225124575411374553645216431114437241523374634222676321354366131155331571255716267132156616422647463554613474312235434435271556536314674233675137765437361547332153452217477222322764124162734243527131171732373474276626722445726133242255415165476371263447143145363621573372253122251515631155725417667241456667725176552176711542532565624513624434223434524672266445337611263736352725471162371255771163171574542145614724363311217217531622415713473215533274315447424426656361642274151317742615541222171147234663262324437531476531742155212567226562126211352334541646377567612661713634673126662657627676567147147444133446344623514665554561665542256524347132313713667357435223541413751164335536225152126747324466774173535221233652273171143412412722475121234633754463667141471513154655611414112467147263323575272562354435146426333251672253774252411164577433265422613231537165436534125251572353645157244343717752575432522757343252215533244143433167331636573122433226643257522141165252143664731453231667642145265123346525337476732211115323252763217263725156772214235151375573225155446266156366722441561352765612347365212142145311461626126527755724435752256711157243266131146657314213341332351466624631646633563375541674232262164546643446615355142341755214412767765441343162716242441262634244233716142552753677155364446263517117134424512262311731316224516521434265547777321514556362153736711437325214155336173743141444354431352714422365275662276343171543672173546714624413623561161354744245643443136576752232352427114432315562275754753177435577477254326174324713517131764634515634265265731442713626734411154756475225122355556731744514533332172624545764432447643315117532641144631426163341226667372454552766541513523261424372342417265373347331724444426746214554563233657613125562333147162537117433727722334213346753762335246122524626762512141145354617525346631314214465771716564245311754737761571157641143611345166173566675646153251455747774613522112771675514241216113122474146467651641521246377317522152477445434421573731561512563772343217653425575261247331617227544265264425276715143276267312456765624257117771614144772123452352153562412473564371117213667726243523775145334163365317575677424276666373755464114534423273355664564415223152554147512142577467155536347645724437522645225163172656513671413157222377222627437634415175245653575145757162226172652563417264545252761776227141327517741761456214413512324447673654761157224155536176242776766454752767173611553353316516515463757176176361455774344326277746444563474245222113456221132246113653333157511132417331555713525212555153134146416543627511213623211727333757712666361342452655367561424132133231251214553757626666741444567112221352727334226276763241617521154311524446271227137453635621745576742326245377414452155547544424412544462221361747145631115457231316754117247443551264465234357371116727644621367425164627445476526412475271327372111513556327272153334143166126437511756722731156511125344357223264373364467615556651434172214534273532272362147736772511743526136412732252466363374546652123146777274512742612242626475521244243254534732334457642523475432746465741454776355432633163726332272666744445313247332652354277536616623351122437463757126556532534416155266543412177272761133315757664313377547151272517523754543432164433511526647112154551236672211574145327114125242621754744155344751573515231665257456752461115613764456212317735163661247251652252521332562576415114227366354672163337416675547351714132767557666211162743536555656262362447337362567165357335113743212446312337427327145171673216537764525151212355451161262512555454137654117455214323542633271746463461113167577143427713234432371647161417361415647641274647177275224454413543341336556163163124635413753431165231277725425146533274411144263626136141613526362722353477116511324221322664534125343623644526667413444634426731475151455136735666344741412326475275452156163663616323564625564415152471417675276731477272661432152531572663472315564476774737356422571177337662337116677372447222413512556536671772773644172234464156424217716217517765515637477175641461462423465565255751111231635774133464133573231136131343546245652331734375727724731175442467264421623363155267563613456736644427571131545275365655134126623374354561634465113767412715771247715565542327721321362573464412523261756177173325453644313765236566563573523155523317731346153132631372654262753315211455464767172231437146334665516663423713632256321345372661532421163465761276131264723223266542557227615756552772474117436413663714716614472662242652526577257457242132512771315413655544561437544667147251472242531316765247214674622647726344527742551375416776571775777734416414562622353364243242753145577431117311457716335752256573442316327352527637674312531511756377242377452446436166243323431251376426464731675513531772455574723575354767257631315414752532225415353653717774735516374567173653521227411472116666426716127315766177251322532412255366161231737751765127313545173522452465571665175716746424124516644124714713513414217262614256253765557161552113545654154512531147614634771321674563162553726722123615216437537376675162474275517161622655637766657465635355246256441527424333321377163722645662427613744377532751177513666466741622225755642251362443642671475577712577474623162246522723154543545736716561211324117411137423111615425315435461272143257232632723455216162737741365713646122334671433432625623663554757763125416762346521314512251566556177742742175767112462717155743563657165376114235374476525232611317426247767412233714665411512733714521531571725311117752143337537112364344556471421417513136713124263627314245316461441755767361711213333751512461535634423362553514141545617266331123666134473664371364146165722134434437176476127355172122623737512256256225141777616122374611771135143766513623514536666441457453277566346721372754652617644733442422365451511716474775763466742214543212364464335724524163677231776436556136671473264564163116226751137755534674212762511122755652156254636327652252422535232637144763466327324553725271715261216775354177241725226747247667727711535256174365221235142232235235312247257517432545361614231653425541656642714262712774426674357744233227321656251451723772537533266471534631665723136337573656265155341734122725437364354642662367234427742334177227666453631171224555563135646662657416771111334713671113677466553635534655111472661763452432327612566144754135313422661234366267535553161664426767367572232767733622127327662651626667113271365747163224122371464453465624164752672224735366535263642334752551657261673523376116462136434771716725215556117731617212166556767672412362372375466311636625615674154414543174634674771552443123532312766366761347157134312625377447747615515543767614434535276343457441321116475475732525355222676634665176647416222475233655134137417311214156171337752331155557631653664413312535444117125774666155445125467633511221233743431446213635574477151173327524276233254657426166173224645531247173531325277176717432116573721741335356165276277233445435631635257624544455215232675331134336745736513351773436626463516342346752733361552735611567147674232126323741137433325364212412124236272477633765411251771132433167717257242542374421527634171477517635662237466732213376715266157234732354323237551111113621646653365422154577455555757251445334552434641221275154753672756611377534211343572411777467574566727613425461731372411561442321213113556224431551732271245466517737414337772156143353317247722135716532532637653272443561564616411373546632627341424164254635676625373277452376351167525212712574534743722252126336211132223413157654267415626642674717333674222171627567353347631231363654465525717677735362255212437735465246757731634573627452625737466124111115162541734122214176735751451562361545643364514223137724772157377464351577151662315471161317431516134324442421761622131172155226132475232375513666161212426341245525237561231437247477652576624475131271315467524464451731534375127141173642724454232436521241753157211576167446152325271225322631751732531615523164774736572665153365452533236534334731617717516136714251673467112615616717171715615243234672514776667572512613364721434123465264264135425576736447573125565274634447111751664537521143722533245613633121131673646762365651115776362564711717475474735512632532351641453463544373716557753227465653127566133463775662756471341245457537444724424112421351416423272345313714351162433461543426745211733445172122355635272443241162366633333645272715625753316535653545712377121321273612144717574352253312324556576277413125274623247462734412373322373524335737343413676336616131352643417113147571161625615611657143414535142113312374274256254262533375712322644175545452371726313633444776363774457316536747572166443134172471256171164651741141125442751227435355363752265463515253351374441276736444562322673421755225762713716652322655144427535467355567767656122311725661553323351226125214237361374254242674131354276121633662122537165364776244574425512212423661777456757773453124776226357757147224712622266512273735654771616527322513633613244436335625615677622114516211534261213116517376452564255266252711123523474544472662471326255465567152522275646144415431455314764172365574471324766633711533232733162653222454263757247422756352762157512146574162726171416354543171753156137647142652123141436135133451454431336534145453525432355523771445562455763621114747266752343416366535243626647343463462526177727713426112775143513142234145351241634435746643215433655473231245327174611566771553152612134262134145535714525773377662176534747553246751442332762141352135542511246333326543732247475611475755271725451445652175146531517424134337276232137337234727717743555222242175317234146552552645123746262462214237655633777275711374223472623367344231442551461622235665767435473225273351436611135625434571241562422157123173316771535374332521152277272512253153337771534675114333354546763411644653646427137654323766576237334123526452476555217417476323356171442411667435167731712733372221355636716742671664174371531153212714726524773173614333426623245357151643444653354677241224652311426522167465612472537643421662734616124152653134377373546635132414225724323627357217564557352634256762513176725146235514653246565563643354366174626471766373151621224672231231513563663523141234247746361315577245625216413636263256175347236152635546427773513142142717632641143611562562254471576116113367314776164454672341432242253671542343252717417744711245573754241515733324275362763217766275612663575731467226536141137156641241521314463514566373315434332445617647316551337167531275747113665653774663715725761222625645334712313771372275714236321175621333663264435646356612643754546612171521253151616617164552247221342425453151251142157636144156324565244651176273421414422737773363116575514535177237712216377535746717477254763727721341361245752654533642351754656622162317114273665353527615274176324644546275475232414514235644516363132662532255437717533221672522136234571616561453335661767243366121562552531777233132137164523335524612255446373675212127573145637237555422253553374511661125511644622464722367637371361463353537222461172422474545574652317654677145164436677464143642162151631546465227121756474157367515672146714527622131717316435415216313323166152454454526463324246717341741565624472254133466123724751146125721562611424653575177564711624526574764727426167577567267452124674463266137147721767726763374775434762515612714113115615235735412777377172363715316277734621451562613723253554415346442125373563153456714273645512455761422771376654446276463254412321554763713661445365244661323565734342643232377146762542574263157414761224555471466734126454152133422544211767747734446424233535111365717276474376753634247513424553463414445716614166623613356634264644312173665313116576234131457244664164564325736517423236313327726546225647533524577212144417471455376172156437126231444176156214756766314147162175252772617632346236756474524624442542732716153166774745426172537724227521445765674371232733227211644526663562253622135442674716773555444134452655151725314675515164732344772376714126647431223731425662362422424235122256477674156636165447712336257475335326743635554321312555462423255121636122771442574651427713241144236141331574755354526617233356163676743224723467152733746413413714622345646315222336744775447732434761466311133476372763636533115574742563515155125224671664115755362542223732545377761257671577246533756442626466465512573642776651145714215254213773343647746723741643263121533132477754767653367553713324571775254163661755224262673135614675434142337424356765244571253642515122256231766565414253411615267773111144143632572132564654462451672177624116467712251546215454545166747462432322541724646414252677575545711244421524227167516615755643333567223316647657727527416273546126132363256243136227161712256261764133572315732644553763221757247664133475271466144344657164172257774335155233746573262161511627711545354117313362712131371464464551377671642372663175146215655433664755751271561162715637534371656255743173262461562356233763152717575125343573762321354553162272243654522212517753271546266325533732525646127134554622551313267462735421433356133626763133562442735417653221733316126533112345431313267572715246262135346472256477635716376743751155721612127177174575425421736245647737243243362731413267262277764777714342561754236645573134134533525261541556372167551253666431624542627175735244331466165722225562164264767424256236144747362742261517271243651615432227365453672752711126314576441574522361541746151363234613451637213541626723637777313774452535657143125121324423555754422574352366511414555331675463236415243563354544223755754634347111644324564147762367165667325337424245633357356615625424556372354762554213257232124556334175432732177621155261312151715434117413633635744654624233425161512443146442246735437762324143113461675742267162736734167673125554655462671527113676426426141517366144325477672273135711614775734647313762142363515377471171675353374622727346621561531641127555116572114751754733116173316365276256351756253666276217641461121135163161716475225257233413414537335655756716542276131571153537574351257151735255771257464151137475624522535454265323453272374353745511775543351123561271332667453245335121347542131241464562621345172513657725327445674364566114625765363375727165646376764766457247117436242261656627436135773131131115723342337322255761662174217421333557723754273711167211741112246524525124643145253313371311634411262765561166523143574546631413422632477617471124476262756236572776247332211224163673271723772263726742164235744335546641231567772766377732425251636522646614623222163765241655152644121723425131246645472671477763415477752555712677446625775675236177714363753353217273773672514525435254463737352472613112464246612527376571546777262613162675567753673664157166216471626175755752353642257275117756751651366263521115434543455353367445515443125236612456725544773756622375777514415542543321622146122461172243773461156571653177712241461514116465672442431141742277336311123151652215461676113432375446467666163215165355176532661536374473312744562411327213472655426157422616275535551671241647471326357552472156734134352535475447474453723137634346174357121764634412674177273647551225236226712443743464314772741172515541551726214642213672777116371156133336366743275654174115746154777433272166426174615425331136647573134432215115616451215431316366772334565317161146156722754712613746526256276372221123431722273577543577311347461512155157411167745214356473452543141756636636744676244115453646343342126221735515331142626312341774227731234715557655741762326425736743277661455534442451613444246254564643727664221457447715443361156444145224656724771773547115123777514326725611327521176111613322274736637323365447656557551214545147134255425371267235223434171626621337212633761775511256766251743167277564773272643761761575662311221376777216413722217276766311444474474325266571622751661612646226765437256126127325413664161633423356274217112244735314114216567116747467572626222152564126664715622571641744576775344756546351742223477614364364222627574322436662341422761536247432311745317116232465614667514647771275725736663223723472462146155175671575363716317656126332246156745726564155677754776532756764552453331155645544335177465374742127364572365253715435415335133246314764113742234777657423227444416274676213527231127261673661321137621552224157352211372667633157242336542267336547571661753377315547525155177154244344353712133517671517226345752416744244447732721272235151745117113547275211323544767574662523434117221632774457156735425611254674716113323651676573345246364753445355517275254134471225153452726455345255114636376411237674176644477335745337367342474353154167431555362135275222371136445754131176626142662413654756624522324344347154343524271516411152315752576614442624345425367475546453744525251344671452311242136113577152671735436413644162215216555513763767633475772571632443331121521137123563213353456534167312563666612152462721376241761731217576557665224436465414523515626615554552275741626461232424316371167535765553744733746327752622721674414372567272516447436627122373744365454415655532476472473643331767545315174546126776147443177266253714614372115124127174314423341643334155377721533532274645262457723532251263237622252546466743736211347555212174321515445351745675131727647151622773551315513273177311276314467766354576366577221141272142612571445226756646751166326423614255332153157755653761722655256565232457765163641151342531447337754221236755433657615371535561576131244251724272315244311176157772227556647477642475127127146157361457245325422561464517423431377535453174645223453123775442572556335645232655323535126763133322154741564663515177713571224656774461446245417236121371522311111661725743525631652623764325346435531325617463551643343675532515377522323361546743366666343624363446711231325231566546513266525262253315431165353347112437323153361521565614543166177254375714252445625426273472323457171713347675566232241422755323334524761152521554771242531364527273612727362457757273467517163123474715735212317221666741767212562253757577141163363167267321476635134114111226546155114145216261774315726151125644346162513422632362155172274772435335626262344673122632251557134777461211545226431635242237334124162322476222276371116342416117527763223156465336546474544466441547261515455211254214571337214471317561436267216737477544556225256235462312433235366252731563411244213354517134764521125273634752364621313237636317432143426234352645117444336157212537713525164452362435762716731375365747465244513756665776771237661455433361742341236746636741121177644373577643667673456464676727623352733136534414762631411323324552165367233775315611654115336715233753116476337731235536372373126425726677424526741435474624236117713574555132726273632335141662753443117723136146433575271471516353565577124731665144515756147766235714135432511335716674477416233745552434516542443223574645671376155317172147473736426124613234151523633157111424366117571125443516212436431573221141212434271563413556433612135352574637361446676355337527125662133637765732522551314265461167412166175761153332463122751267147447466154262636215426735155771756614412241534454137123647331635425377434611357163116362446422364714156557775614315254531312637242747625624526246775451521774637235226627413226717556637721425541254157217421433422274367542215334642652535761443673423317527564167445732447515164526167153222541526313466637356742651667271447621452737714744647235314345521474652155757654251173735362143223777315723771416435721666714445135156661251223175611161172445251757645663716225125425424771527725672467172724646471244743125126516756176271654534761365177573453362263124222615324553452542111547177313624226161556735271422666577537133546565534536247321471461354357745613476141766121361321465113221772351156365176224467445367712173227446264615436266342277212411734772622422165114742253313545741441632774213725522757311665372446533142553266657156217267736214256562741361256364215324231241666545142311536565216742464522611565312752125713525622762553735124654743246756442224424561265777355153427315262525267645175665613431672734563744453441367745637273364667346653422766725632425436175454412376642132123626162635644512253423417624127471411674471143461633375476772653125224655172331534264624634212445167755474537712437723515221565313212651444434771713364216455126441545523267756767425756615511464532414643541447511216217652737473755432625172743175715114217251665532734634131547342253614623721615717563316564421747327723315475117165416356731145772773325776617625467436323546446547273712612565454527363737613661672113264555322763133436327725275316745434265375772234267161612444341213532461272525343363564631475527772341467543271636315771141613624151221376636631651452565756241556711142735531617754233122756245245353655427612527244655154117625562741773655237164652361171152541144235635547666355524624643226442165751436526453225621324546572121517763645412126517641335276471663561256626121613717142653524613362517373125327527633221413214643714155457123214177412563225571272776654667271521551141462151171472357146167251237444513722242311557655454472436472154667713155342321166636173642271557441166612145264147141446765742177116716234153467415652451264565677412444241521553251416534315274246413737271457674756642364723537511114145223323112776146541135215317125646277612123637614637551312314173733115326623614377344475637441643255726612172532667436213261456714576567617172451314346774132633473253253373632754527321123325656115542763465654326467463734613534311527275654427255324626411765426612621526151127641344315414257142333475434545433667321163611635752433275652425625746156351544443516136723366161565564532616343624541442162177165755421523456752536572122223231126761152311216572343644176322525334341774126675132437146711254116552743365155662134232132367672647245414323711235751154423513771125776431731264661777542223433534335271375423112222367412764331175615655417131363623563761524724425322774171136527766376447233616537147647664435435375153217667444667645733377254774623153753137416573277636554364647354563715165637366242237657454472262572271175143671125212161642167436667671474765217641267454572636614615655464176173323367747332113674472247762771234572577422744333673121226317534113463346632266667371334365332663242416361631636555711456273363676157611173165733544613623262653561562572721615271162445674253542622162315476136235472373722275566766331767773527461611223332212271733133232425655647661335746157363567212553251135144277763762721317331511245342155514424114326457513774227755263654435147572457432742556553273671354161142317344557126615246635652412425656673261364354111664563723274773653271457116526716474177521327525146113225176171657456532664535443253616526326524562546724417364623314166727672351535341713751533764463365366624771544756253436134614244714575376463157716361175666314115475336274613715634144633574374744617436126516213617472652412127577653475447377762622227461573564543112657527516611123152443721615115474457331332545152337633614425366724167213451177422415115551316121527641217226261422243117242164335212444365213456512233341566113735362637352627471623251426247543473556515166247243757713647734273641633343357313671673261275534222376542111143433633353572265517147635245353627223651122541232137222646574267211467572755167423335532522241252337311415236367723516757314432665627157713542535125734764536725636545635122316111514324677673366233117532763664156672272362731565167153252551377351571747134312122136465654723752233226341773375412452347742446562125751252572353611755642171167471276434574741422526424745763624135717457164136421363657366757455166725734547412541157176714743562465177545516763277112612317577757467555446346655767167412572576556644377324123612621662242323311264624757371762154243357622163173775364433522736454723715323655144713345736133161572774637224641342517473375625765315761613417654744773344235635565264366741736332143476132716575424264157253126424775777211761622342657775416352751553463673756322671571433271516655234625124765246336463714174163615411124412356211166467117526177637743324652474512551611653564667764237714254535724274473653331237643645372766667311151446172226314672331736526667175152152374226525151255237136136654263333746631457664317422347244653226524411455333765726353376175426271632676542241643612341342714733727121174311416176343567661263676721131672643453327666656614315216322472565244615574562363123545476747147753434224672132533227667574677576243675355677755366456555345426252643472161177746574453316152776354634744263151727576736644244113565262677324327461474472715426175624114136671741177536647522322223634441442646657643637712155277773441675752551554242133451212271555736424713161674727356516637714616562354672662364432273116127571567724315613133476737437242333412415245735441612625652617142515755473267123325517364465572154553332751664326177736515464673452624113211734654657531377257435616321643645434732715245254226726741735232265672113627356767672567672534164743154346413213363452352634434737435113244664124572641234767373337147475755666246532645254273637656615532212245722317145574261355257722254461364525531222641676523526153531651332175237415516352734541725223345455371452222761255732144566114661421666717416535222445125635335477766571632676432566471174736417416456451632674744724725521562543427276452552367751554336475663224233162367515522611334365753474231551176161734335361111521161674762273121314137677777262272352761212423563266267177225346675715235371556176125146157725574415121741736656652475313216776437343531644621427567421151747614652226322675157146177214311463162414246346343257177222642132447672425362217635544565753165342343474344654547225674561171635162543377656433464245634145231757335555644426156513366662415514646435322774772553271171242134421273725214514771212421556152435664367771453143354425673421663352777176255461717563343614663432641641757435446516733223623355453636125772455525313645246415362545541357534316231524352233661165643177253573537713431744243351145545552143537527264352715342361136673112574447566125327743311334223635115653621644565463735277531224135524125372652531125645517733545327631552157332445231712125362125122261516432616332532645574116627157121175276132315612452163756164175216735652222114363512276116436256153642774375734274425436262217134412521257752513355721757172714456641767766347676411677616127664451657667523513443633524435415263351351222512167543726561443162521565671162477464177145323641214272173272443322142157611374526246455176334676114222224254726652531247773473374726237576261766331465475734373166613762712727754133672416745445446745247341437142533774717554211115632566643667133542132171623744627126722417422677212523716212765677411662725325256527731562752653623711214645362135241337544632124526157434364511444661554357672355272335714356333113167536516744465722412257224435754126717614363755226354366642537143743135573272625652222225361475612314774314577255511742461641422644453214565524366372541725171366623334722515245174361554364323215442744334251661226375125456717554172525243433654624336775715774413667414656135516253162664464135433374663716471427646235574227774333143434463426512325115547646274517752321773644217622565543572144142213413177527612751636115322136267522132113165362556467222535453545642253561231516445471664532115613731311443623561451437223335227432464641122473647124145571323275555231343613271123631411543163657474437132553674367331315725213354631743221522247274334126757324611724437412736755421144743764566567343224517416151365162561147127753475155127145115724163317412427157575411524236127447761123264273252124265521434417516512141667125531241133317647621611116264226162116312632537431523723633364274416347524617553734435622361121661426461261257462126727256377355631476615733772313116233173142724773665562752113525332752265551257645424523743325272567625473412477341714227673512761653413265335261373635615267456553235554277636755357242677657525141625236332327166214373467343367342274231463571312652323267516544673417455724266454715333325173472144123726545313674531263673152477112374147712312765274475123363473524341333564763774353255414143536252416774474664322657422135511327561551327726551747712225765121217365331322276372274426226747152111734766176147456731644451467717173472272226154147245713262153163522752363172617544344663112327573711337737112776444133543714174316541535556767635251644145545315252446125734127556542357244715534161113517312361254512427117774414514264325454411251423345334166457177521376151266442775451257725625671141755175742233617624736631511616723523337543745631333227377562365757372357663457513136176245415212252517576754135342263111652374511662733542345213431652637216557656142527764576143227534445313377225471476156762225367123655214226766735743543774542555143674237135641546123323176355162542175711515751664125436463112467711471571377566162545514135375365336527746726636722563377236665532473427313177611277621553452335576737162471372421573552136362131145754224364535677365571341564767476231656342333253132376364774144776265121344663177327266766374674612324451147441414422322263662345577254367444614257512641136553235162622667341176246444456324651356631131175114132176443376773142125142161622325635472233742546651576616117452334175227423771577746747641626252652314457156246343247234437344432662422437363221545671443371743333576742612343437117344773777424714671173437772724741332643614374765316542442744432656743244716515436214461764546725623251751532374226576615362363256574661754174627671562221557774655443531251762243222555622532331764441676614123554741434626151257724114175621177664636221146354356767417261411461744776723762327316266326556714722413326715156171137752737532334615146131556556563672776161315775421435512561547747251756121712564736411767735132157266217272451744725125131744363211132261437524227131555561316531743152334217733646115573523516773422545376372667577351543223724455643415435734614732727441754423327751425221621335641574773555116115251174165331135274714453354374123324642576621342142417736456271424211561343477724274371247157332642712156537532141612135744766264566175747634231233336232542567156776464466772235651413557747746545513261272424213244633626633427172527737112523141534717573154155347244354545252236527517224633451415733527345651554544656442611761576747113513771354741776271316457365375167366326122223144274253172533431467433235557165414121332615151237472636473512253764331422337353413715546236454764417662114153435725613525473272643733135642136531422775445165362655262647263156232322267715435633562167776323345411531432315112467566567432157737122166237747225365255217536422544144776674625565212734711653236544234223516355115412223211634617333745536364276747161412516277343647314252762557676657232253216563534252457646726525641757377157533241326472265256744143772117163377531472732467353171367561577746113262556634772472437577657654665213352355744274551627515673253764432677374124563544636415144544277477436231621115577452376144565435511425676711461547177775364147517661352352333526527411356652543623761327663145126272326316573155565717775212134664217737711235715676566411725413244141342465265756625677662434767415541716525322325175164247746717553663646311632532452715173773652342625465662746374614524124523166242111776214144534121623375574637742241172577253774767336127514411726235316444735534466472442222325132663547342716364435612123446162352645562163631475165367724643772265154364657727625465351135534665472232621633526454212236772561242565756243534363113447246427544633341355527267472156264126173466732257733163143461377722532172115323436135451721147152425746166632264771646141256363626314232734344155242165273732315247663276722531356455216712143767666217112455613457312272427726115645757115576755177331562555567263151163653657571433412771647577116225523112252225576116173354364127673323431553323344164512147662763214456743476123442213337426624136613427157753331543275141134551333774122136471455765523735474447631344446425673364255457311755752216554537316656214753124232647257146622543541572117512234437466512565753337577627672236572651631717615151122115216531321675761773163662774226736521653734542652257657157471265246325732375672721716733763223167113525645426632733736236661367363654437313316472176732521757717274541672333373573416752167161711575676132552743473412611637141211171724262575746427771173171332341544162442257231131347651713151334653217446351464611716727436551246661634572641434435446572357515474577247444577352115776245216667446364337127744256755662423423357325652754751476373263525277434456254551157326156515251767643312236614231152161742567667653114347232644652272377547536514226562676762561127361354321272725573773573763275235272744174266756345636345754511321526335153751775511435233714757221166564272364154321143445152715215174523762311642756333132442373774455655215213571545251335666156534432163614374341777223121737613355464165425152362314627113113531421727571337656127612534144517741753143315274715717273527161166164517731551163764175356375575424166272366416115514363232113655365214332312214766525147452636465176642164426125171515752145125635611132673426226277675212725512373416667333154175165615211761122462453575724544253644576775227376543724537274622126617476211137624327713732414536516467377524526442553766231624565543475556241275553141775776566332773467425436314622121532317244544712753537561153256441613636313675214576645743462336526123143543355644521436674131713725331674343237623755555351351654326527354766641147724653612111532523561166744161763447742152136311656166763312572247344452665427525524324665335562516255434316467242614372137615176124771441371434515255472362212134524557111144626453324462772215677365266312175643414744243475264113743614213171331146454133552364762363615325552657425731416756356474775537414773645551633621455236146633564373571466543234313236743726476735426565532765426742656261122614455434111327252165354312313675352126537552571717745375646137755266141221571574517431115141137757574626176257531674117733746144724327336255341431242134542457242513647675441525541655422657565157334425161332115314255444434142216642367433755615244772555262412371531674373755671212456275446775162141671266656716165775552362117415414534523334333224712241551513365741433675432755355672162243573417453142625124763643162276566227266562165716314562217442337342472251557241112572133377432577637145213341443633147466332671674711432176233536244113167347341132266475331574531252557615641165274234656147624641226377765273723455735752734432554415414144547714611426622464653323165512277367662723626766553715325277336465343555241157635146712532475234772356214312476222212366535461761136157521751512734253246616115227135211276367562222536617437343366227237176154475577463445563132743666777516356246376542421723137536527517356362222716242355667652625616733572114214242466356254547427314674275636474642661525373344376176527313353637226212141416147147732773347634767721145375222127233323566663362264461221753375317743323411747265725751255416357444675247334262165573711663411346146763727356655444156334565722637627122156735513217732422225511464516714637577731134475611552631311274666746641154633315664757221437136723627126571242732437451425531533725121712136332576453735577652265171173215252323271663454532261761771223147372733723477754262471677722236276463764335233563732122224547476445745517324513227342553331271145733413546231543416574227361514371753437454432772663426364444175463735763446637226551527364773642145745211174727616167115426772227114635146652743552464336235566471173711615271546616351264643614733325375734272264721247745435737473244656475635327353357114621661315612453245671636263275767765217761337564454447365726415413334344467456213661617512463134451225574531451147331373531154633746525272341564511742226433135342224745273253534631164621244177323137647255542245344636142452575117114233727133766361366443724636647353544467666624754527323625571437725575473466163555611272652136131617447117626314275314513125741131276311213135564316717312125221351372334637325747652614136751216436662266211126224315727525646572571131641764716446342335122711262474572771471335373536231541767141617171157275134416253337536653745756174124541373241575557556252757566367755125441622416465272517575435533234111273344313744225274747422146641162536261675217737544526733732231424233312134141115577473166213455112433757554655544414714745313733267674552231715557262766427732462542227544756534563752634647276353675752451235615314566263374342642337665121673323613631172636212456456367457713414777227574426765632572447342713323345325667467152523667734236467115657446415433775275261674453565452426267732443362111172657146715156176712346675116227415433424232242143477377111723675457133467713227471527531734434173126564465777157233317414256757272251637437535661222373617676636155241274361156172431612773666614432443212217126363364564164154616165416627543512147636255762464462243127123364511665622322571231555267171541211311264337627642731447347523645176226751744631233377445317763515437246443136362622756426426171534561435752771363551324265164141547572411517637215437165665473666547171153236157712727527361646633543767223142743236321347425227565154116414727443274432474136115614325277561644254727166662413264736467457543272764674662144474177156724171437727421717335774423422334743216321363375437137571234377774326241461727573576566713452452114141217223362553441442677246467164275331661256532765366324162177521454444661445635565426144245236375151431664541237773516334766727534176175643766166341273572474371777611476174774747761351511357361541511321122516515642634161226274345427642122713477673311533553211752736241541211111541525262524612226152236357461545737556131522134651265132161255751647654646243627146651271426225322471164727373327315436567411252423432133265537662334114266213566133357715551631174526234766445351527427415667611363116574442171252135266645737765365166724233452675415372215114644562365621456655537251411222627466724427455343126155226247553411314146225743355363715543627172322747651456724543134721273322565752147215226512226627751213562361665527432222444437335566245414464347373526772546613561376237715443473756667254735213443267261135476713763727413334661237357454225236536747772435725251215254716422365371212445257774136563254236366216437615423534331136545177136751635625551134561573441267273111263664543546225265532562472712122421266543565225772361527722345517736514753615316534627712357721714765374654415272674576723735747545465764425256445225721324141114543432114643476222134167463565352736237633263226422237116566235521335421731462335442463443275141213165153231554231376734263161113521346661737462522525144553575147274263465433716277175454143657561317657533235754155533137524614746635677224623322175431412164557353734145557723233616757367644612315623517412645335233351255545176562332214412236641217425312112171325555335541346567451371623223255643567354311461345315567712341334724642213351376146615526153117471266317644776512374176115426377415256333132723265774616551411362117743357641377777462437472437741755323277447541626753124276164254715346422567542556151577526345636564335614572656675746127653457426752533122377376173676674341313221464716347266115566466733254516565266123253763652512414723565453212224432741446511161574144622142475151346572563512751467151276536453572463643223432667576635721675256425172324667767741744536535353234735377167775113117454437376512325146246155756366243717656541763617534353241767624336313216476661734571715175271633576716756654151431643354214467756661466453252335411657367637634622671546155311252256316213275751251424332272211345366221441337454427254373624661526541574731777542551227571372353336427213314371555561652112257572444575137466444333522634252232517256772631615352734227744171442367276463655413516242247756124363212251537371652415723731543312633262445376454735421714271621725433567327265662345456166362553226675731651437674331252277456711777474561545435777136346224726226166634712555255367125151463274224717571766575443556353532762515315376414475131427355732141412143613454213127361316111334466674255523153456414456466521261257665351756435267545513465625742732576665527357234616355241645142321111675732764456414331424232375517777413771457322644126632171553553434124263324421123126425474162534147676121663716321252133431515322211232212573545562175541532365527532152433717476626464656776557433757224526575567436113113671645243365131627566632442154344532365523441442521315551157423777136673356323675646525724675375321212646512272176641433133653424646123715234534322565211566147634637241765541214353163353277373156113372755275544264611141167465476736234164741356137143362342172775721346144111715733363627736247642177123534746632177552456414477721623265673555666544123654234226471631637174764751452751414135116171363273712477545744124531331142277521232471456352675357373421537623635264441266547275245617673655167717444652647577313276165454274274331737213273135555563432242562315412443753377165544276423571733665121437116726513233275455667355761736636647631154464243631656446652656442526643413731214471456255333111463257621323455715244271744365334762643775352164773332437155717376464775632252751274457366166217267577464771175326165734543554413553433722223156164557344523373652224435751476274663717363713317532374213342363752342412714254341561311646165472647111313737565643165353173553137151311574664341161611211666212116331422127665774164126376126447374447661556556166611431343221257624574661636635436563631262416477161656642636461451734762333274323471375457227364461771225654317557777455571637476576532327757744135112772765725775661723631745442354543752564354143346641135712137615214472241564212716113613237212133474711766521721723223537657173553145354135236433745432327437774411155452315251565322463547456711225174236154233776146512551551614513336254671371224176455432524114551516215446557372236672254576254424254127776146353142467141775351166612512525544151327335445272421373453735613312354417154615156375653257142373537212227611326266153412426565142152464365421457255737161146753272441211752126254746666764763413557711716222246744742532247472751142252164322316673767224364563611125335167211271417521267657337443416116156367551424642747174242572425242272246222617224333667231563227546663516711643366664711757472447445627611675143132632641772157113614775166512135317613674221132533123641513725566647346762274447162355537743522416334343463231247575442556731212145412157474531577355524321442746527634175457431565451223267364237232632517553632516621147715542465662242127414765656164175762232131254566531226724124445234567664711456333355351153637353641737431477533771527644221157553656722161145345421414226344221627411621134677553523236163525616661152266656723474731641214716715713323221134365151255477171611472144377512147766713554463564725243712653177277717556125413116732233412121232143211723465717572224565611124347653754432123113235115516611345343637272515227554454144126254617174233515437526155661473322113133466147623664411271231673213527176614675275746165322423633316415216776536423242164335533263734555564541472727227652545764367756535311542753766665152661427435311742315413113773521616142724464572622574275516267257166471736425511171531312132257376135242274166165241312634743164711544155563373131262466162462274257565245675227247515313663772537476332723534661542213563163345416252564151537624145523132466321246436233226321145517223472423441424247573524631412335574147323556212251634427461715475223155533464622176531617722653414722576154555154741222223472143556737745332241755161223664262541443351274431525435466144664141226653673345531463141756546264375264554237112252476614651677247756445757152371657451246337253252226733132371367334441364422641252746443612151775553523354652667265143423727131576261425212371237745276662676166776142553113335333262742342251151166244664227663372416734161317515341621442347777241145463524466314517543771177125123612264643665337213614715126722323542246526351273664466177763225471725661426657245674524514746526717571652442465356627471116777661742736313452311274243455254244431644465144475525142511345152425512362266535477223465521337512472627136722552563142634677551617113136721276446763345745723224236441443564432337574471273426241134262641215337321171311674437543362546677332574515646736372457626164665721271662446342372546547547245741761156423451622115161236254157267315357726111321737254172511647517346451361414516645265546723614751635764226516574332126112514222315214637422472745361212354125456367663126267463223343512123751611716312227177531776457773272463563534647667643142117211447777367642337327324731342453437321457344516433574171135462726662147165445421662462524352655455751661534216375445526343622571276465542252123567452217673743273143616144346745773224314521231545736552221114574236651232456533226174426436126551536563122664126136561344157744211266462752374317257213732635455475355644173623532664257454223162537324634317773362711156471777163236533374275534735243113214333756533772523366772416137347773371255464756316216451253127227557676456253124635614623336367436536415324735432322625352117144136767423216162214516334445453175165156361276427111134417266466216623653673645776173545464444354156434735312121737375154421757464447743476717123252161533647517144241517312323651257223516661674331473545676253271334574563564316367645324353614136626216665417455532215742243756532563462123271745275662725323317656226442761766415364576241671756712547657745627465136162263351363537524632425473216225344174132515571353535264625437373774326577367325577427721674524224567547466437221353365344126542217255234276227265513451172155217336762472425453345614713212143276716265421265612513114536753273273122674613515765266752547277427123313175367255715613266316352474725335164722613314544464433772475141751363645215662242715475654451566626112533523756161737425364443326147433176475425427573331676341255231642623365721172325424367415332526672247743762125561327367214356357574572771222712144173235674631511352561674715321132354754536721746325315126551754273617373364472424265766653742473765734372132213623432326714274463155524121252655117453356175443152523336453757572737275176553151224667445133212476335234773317442141114627241471345167571231176372413175713263417127217223443363634243155313745657661624167427773537246666363252141322142114125577633423253662715751356661212653736461726376471376544423454752356215227241227352336772346755312143675722144272425325543552272417116612136645112743411166216661562553775553454651232341173152131427116574243542664321532157373436431221756324422243337645674147114147234167441667332216765412523136754572437627662714714566137344453733365361246567352641545721466652122742276164212515663366434423745352471221641213173431374156463117351513677112432675736345213525652733324336471657563427241623372576132565435434412154211362724213227376132776356565175235527157562433456747514563363126772721777354521416367135575127711373373331613265123747417211212333673236326735437133713125247374573215151743517413124437353324614226123137572454166432361723514246142455436775313267537642223647555124676567332651724611134422577213673672724171375176222753144276467746247661131531462651374115653651575464576762231337566377776455524214673672226262231271167735411242533223545574621137157253734241433744322161564667675523216733775373134253432121717571132126316136442261643145136126231533574321354673676374117123655132512154212673372322633635132756337556276457726241435121535122755123653622524451524426512325523436733315557324425151631262655212734355742165426334421656243665161427333633315252625772616315114266313766237765366166247217732352314574421436165174731753145314534275636773621431123337534375757571265755257314437752746476374344352151716651223322526576326743417636121626751372554424256253524627522613527547135567125154326777762253544612534374427324667557566775362744236766432574352241327111746244667556532772437753176121324231531617462762135143543465416233325477445535141755231676357362534475331224741145572752617647333774551773477513472667161166122333127217567542711371371517321665117221276254365515556731672152662515735742412354742635635153232523335233573732336623477224551134576212653155411473743775542556126156445763625764362771445713646554527326671576146445512324617576341273264245263136717142443533451572212746566771773627265637215365416514453363454656775472523241712772351677345743555324475623133324572663627434172544223116321744433632124167671165426127143151523277411131121137672613721245236647621725126242242334726744676664655161564512636262773671261257736634714566661471517367326543537422234612462643743772724717364227443143413572265464777367335151136442113463573363752112244762166742244524165323537141266674213711325676276742336444554353173573636425446354677543322647267447123766643677377464625113222176212512365666615654356777312532553634174662543332167767732214362655364654137574772772675716545734552351674743354654243655642344124352451145413711425113577143566215452475345656737532112117575327776146773667463547151453533365374221112311551144163227574132763325527761247463272425575121411752535433551427131313252663135132474141526672675745264553266611142645121611272767626364773664111275177271211511573431141427137246756776131321472645151134156263161771524765125222737254551367716177272567473315432556125165166167127476546761744211114733543441464334277217213635136443116344514156417521452144641614236254745453323476553666464665411426732567232473457657716374155211173363476646274371262133547451461726465453413744163415663631761174142771332635265625575177117231644135363557425176657357471534517134153331263673561535616751322344142315525715454441332221352417124364157561327774136461426761673333147225267251675634715575665231455361176135335712372151551473547216427243165556726334522562246271143176416165767613454543157771724434375224633614252546245355467122663474776367175462327165633556134315715654774633776774577254157437222721421175514414164111421563625217261412263523333745116266457272347571716262636233754673452472535676117737233145554243677157333234735131764372166514765172246671274117276637156137446367474373333145165752767614641667541377742447165663772172567647525665651216136124334635223371454242647172725621353157662322467114311321533425562277367422661512344415552725573114743716275466523363142455125537343744565423315645252531254736663267636317732545454637644351247566564324311574433227124643776145123445217371154567471276475413324652414545552231111331211662213772354631526732153227332437741452676373354251567211244327425563664614143577547557715436472152547121645115371267157614644152246342545266717225142143526245571336572432433356163377662517456523473145211445465726715357235226566764615773631522423342275716775714465274477553135353612414213115555274745623325165455616431152527247735536771611555336273477651676673355266367534261121551446637621165713652524354475543627623615624515173454213552337632525175671342762327142437762754237741547564164236343417376674421314451357157572436667741521262233763137145125351357354536555771377523537341117135273546524325556542125251362315225413365126674652764472647162773445115517577354464134227327627315716477441465245557312455431451352231275244162656677154617155123336556272712176167115576514426652436366567776515735425376731637174622611612574366237751764167767362653145224552566675764563472552146344275554142632432212462737234171531276523117453674752356313614156216161412351741346614634137535546465526675662135736522335231676644527577276323215251415237436424175246266127341267222655632665274711537443317526542747533121531242315353723776544157234436572536657525126416274711724457331623411574375247377662763532466547721271637464424522611365543421323553536616341733323443137561534211564454312425641315631777152563653417152433311352155244253534112353362634166325532266715361763141511664313245612121721566757273353542164627377613626174173722367645165446316461162673273516145223642526356326325624345625431454652133761723556351675467244472276413721713471427426266224674125167361472741274156166627317722627557737224235752552355425427613777663775342737324553235177251457456747563777732521754454473637674512451167254525532271757234125676155263311753546177164271723413431157311411764663613433425177343541512752162557242575151651615373464552161356462653461656657517255644154211151456135214712163127774322643163137743654255474676777541625344567674352611467167167733136773351452176372447356454361715675144311522552616654413152352733557121463741243727462717246341737652222416622245274565412446552641152234227543372642522757634222227452114767316514155253347161224351562277322272577436173772144562652111244363553537437737345625273424641277666341315312445221752313717121276123254715261174113344756157117123552353173423745471216124745146324542153315632473514315122626652236545716612141423175677162647773641342332447512222712612117116514752175353344657747342563414476763373142315173117235313765534342663371441151462576341647313137435756723241416677424617651255131727532256227217262544622151554756742267122243361456152356445143737166217534763241256424461175563412333316725443557432161371147422656117122656135111437457564637714626631226743664127775164647552254147262267545367367167554542661375333752621456415514463146435666332736222367131622461775642522564657613132145247476516463556624422572716223157121111642237122674254465277525547657145277223472716555276361746133237666711451762747566426532434657757662726136222362244126252651745724237132165315641344261566574417132156455326712237555635514156162317255676617133772675455274114344363764755167571672337257571135674212617327467666113732722136735345646772747747647353565171775532336326424527425552247151351735377123176551622312535544161175544655375143226641734521221342735413342166511467663246367423536377734152134273253576336311763623716423746467714265212153143545737713376345246775626124342726432322663516344245626542216477253316675167124432325211432372426761551457461244367127274425677577664722771116644647776442121111776412622734617415415352555676776741342544246317151715264664574572626774521552557653472171667347532533225213562657121337435562545722444265544723645762734673161663726546332725322122224725424513126773536141764176331133775456661672266172372722654757452227226416634455714216464213241463315256233611422243123634261327651416423715756273614367715147146321153464153712314132123731135656775343163464634231553246352741751575124353737564631165113422416567471235632511265213124556631617656672555137146771313762555736624524713627644534556264352146722414215517463145534342117335326571311162731346231776276242675654675723327554377477227254344132423235661536276336352276643355631243133126755712646777664223125243657262161751146145144556762627274133232447464362116565563745666371735161136676116765455742621561655564521621432431275712216464652322713175241314544336566325772235436146675637413236726667461714561576565261132546542347416571257347126635651246112256317167416342353347735153663221243162223757225542636553742373537136351766711575762637145415757775643131743223721275122663472571364672116331634144657746215375525325425361564161547554415356131663346175365163241227677535347526753674432342667721612754427463471772554772361272454641323463133232317127246465724312443123525732372375322251754415562265446243313642364623722352147457113741361664134625217355561546657163223212736417342377157243122131554215511352225555453477711324312723564613145723667231232455225416666467114575775127244523234177776745655436346167215576121731631635333267134733744434356542645731575114127533127574343221515417557372615767273344117341513244223344444243262637252225365613345763347754274551565677446231574363526534344623672573541355445164357222757453653232576645511311155711377434632144534321163235432344313457733261734356567722456723344512515244236675654657126717355136211146473362161656661463427323155252221461766764543722275127434162474432641437224516725537473321562136332575427267112655636251327634477547322352362561443272435312741136172326664132267627152524712235145271166673733724732224626141645575524475617323626741444247435176767326121242645551715342215126724766712731334712273621151774567265266473425225444737146446716635545324567273146643656412323117765516276226544427626671133554452234263776764346447226433677365672227521527154727152725226244125256242334452755763265716644457115122264723321737455167164522552355515316532635563413421173467525476121114371251621264374532725664677621361316411527246733334723474565634775735127745741364767346715511117613525432126354754611611463414475757613734762571153354513754525232314526326675624351723327163526147512544324227544746271321672415567143416231116612423554545727676673355377471251534712577412362153421247271326573274353414543161343466417441321541277532327625751331362236362456676753214176665137256472431677477276517237125531656536761252222253125741653546734527316644176413636534733217273665627473222765467442136356477766557421744352137165311256227126674137344672215315156274216131727332457757467222637667372174165142476514443566753731777377617533673565323772617314313343435371671257712323413433164321654525614143745367537164513245333725677373716646512632313736473174665536127113665262332524565165764446451352742552624215765575273757525752367436631342147621342747732427755732724752176261435622614167265667153667777536711463565364213772711477467454444523212631462762362443372557115551211365444743163441617756176665675735513276626264345354154152643436321652643571226763312726314661632617175454517516257543513172154446365724414564323461632241557214152765446116657315311446724645362667333345143175547773675353722311355712517237623513114633334666734444636641532274625222555235132561153147333555347771267113725375324621655234152762227141544274136422627453752242474572746376111664255222527734214754142673615773422344525531341656453554235646371525177763111165134522145542412555375373675625437173411274434724543414164676352453733144527312676347156446373552154562143115215241247214144432637326533133764521735166463136333365241463263555562267247654616145562642251726574644757155435333121515642145725521217234676543166337225422133775127242533526144777122663777416311425711264172613615164574445467532323552363553745465745511261135466154213652346125722474522745514512144531666612475765357654326166473766255346426315152747572317361667425242125156664171152314433512564322625332232752257411745427677241533276533737345226232164245172154474466772727542474514332131357731477477612666126677233347575571541611661167772651675232272762746137337536546624723557761266373216252236123176417164174113753375323546567771552662462773372742574162132741127315554755425523712521725132354315773572234127327573766512651272112462626321253343653523721141462522173745754311575141462567725211432725524154335143221571414335377573355672426244466537677434263342666357621546314271272334663227417456347536356117336463241563534471324417255277122177435574257536762533551317213444676466724111677242531661773266647676411221221136421516777235223312254317441565341511423455161323642372436525461432675232151313517751214166634111271725222344725124155555551151272373724362774676323112767165317441654372672253225526124724655613717356645764315161163576364756457376272161422347557236156565423464373512665722717733742622465644474755334136231243637222461365735433356762725143545467636774671453722622734641116764641657331515176452565351363252656634771141761721216744213532637514133241437643655552372755237373625352415361767435565172626746222751231771161124614513714672624122246435644666367731343733215531154627415775743137374577111774772474455465162565524264175275666236623452262441222641461217677424325652171356461566624745124267531316637175735114676412114634526766753774566377677531743446711527616315664414514661765331133224276126675357741437426261374526356252142571664737613531667343371316413764754447522714173247576621772312776354437531352665656652641212312352125717136324113771266477641176272612725551372671721561544664513614116775725226427577554242723415126735621454326477354712324656352364747214647577536141372157724152557611476357423347377516422136415516745675546764134775641164655426422372757765367172665766453336167411617516446556744744513147645716111171746533437223775311376161111221415371554676375736256165266427562412571257117723751557317243331572153171722124411576541654111267466665171372144124177165666615665464363333637432152261147732511467726353655632147356463565751117112131437322436465434613621732152375451473657526362764446442551771655114412374324622267134311522517311762231764347565411252423675537746161276724714674622254644327423233363355757437122357133575636363621257756732655113117576253221474611626632136651252122751412463755257232355333351553762122477616423357614441775764463576736127653321372145136634372753665511516237277414317174543132311772242766716146571511265662114224431547441456346337556446557273657744171346274746135162657611375271621746766473225724213113233663755263152731444256667271524714321247455657125434222343425236562727664443444327643171532245225526416152437261155575542776631473345252435445664533471571453523266715267143721374534624763355714516335341633164551242641116776556422247443152431645732153763542573731165513145123731145445131321735734575273726311426274627142244646337241453213446357152157314672645653117347615454452761622412615414715732133672356556757122412352653566762462516575463514655174473751651136311267736271775516256544543745717736733762763543362336724212113276712271576154512744746461611222122352432456747153657526576732144371545773677525173265756751166425511212672753475133621426636672353415774264533237622774677457715266755475167474466666345323215733632513211152621476323246577314617251562616772751724332322243743761137212221327531264327544247546653774136471444564336214731115613124631577755533275137423644425147543523531273624537412766442357233526161222515362342642517755772453373515176625762246427335224363622264774657555773545517332161462711322177265154442333266576644135376427536334172325654643421735465347422366717242731424756242622467422741751675261323737645247476341536624114544717372367713154777253146641345635756225335643334462177755211615514445261165432277377465276477262635465673336556615565316347375552231611345222114563423351221167312373331164365154327655166215236366722131677475137135534555267737742255245215737732426374123227123441265777472575661621223656657334443343214463363554516164762115552776331717445613373212612224171313355447413274534166351614213354511456316637422232177361672237611165616673655171211236315542533642433334612523543667622416662256413745436672167557532774653717642157124624233117164363652354452671673375711333441771377636364665645115677723277467636623561241734456245451677647743724274421425273737665165752766352712545511342556636535344452416621164756112471373147764342512563513327232572531244344167247437112444461641134251715325432415526162442626621257441173545717562471754136622146123134322122171351455151652167662315747162412641725624621221321462277227467665666442133366312551771734674772661535732461331516717123573112372554467626652133734136417731361445115176164361573317151254312467311711627347437761715144575144264475461535573673615421212736446217146231172351643325545152135747643667777236324665343252454251146625524641472751625353422756274156542326375674667526157266276625573726567447746117726155766651541134113161174116272777615664167364716234445245166276167766464514216742575313223153762771757322133757121763474623132421516651175562675615156751263535717615724663144746563361517764655655367157563361246575755755554332161116765424557541336245612335645157656421276342465373263337234142747612131165324264574131164661774775111316732452241655763452561357172232246425541647445113272426537752316341235431375277536671555654114742156612742451434414673467171616124715272457623475156426425627621231752227272552456322175777652115274435556634273245445245244544475737515412222445312737644222651455447327432677527633711432521766744675647231114116477444737136724474271415426746677643246253165536255317762665556553776724233117745667675165742517727723556761155544544353747322434427715614723461154572116142375141742633335714732471623527761476513616242644436665761444343413375577534137463253251216542214643334316721767314622143727132615151423415425546341556757774266615166527311156673141657767375376725677737135135333512417551471374773777173715642133414352412643252561572774557673333762243521736324564774361351113312636277414246616426155223225566752513645361352213211723354244732323616446573734456542717523236572262146717212751534736712346236345552443475663656442444771624441325563142722227175443742233571634513227323644565422726151531624315621662147645371574322565761322124112437413344535266445335467512234476356714467126153715456526752411267251637551367552536371177431651567753632261356422362563536714774663366425643476644224561472172672121764547221725546426466775154477665243155361745771656547364134713637155775211772157144762515227572527237147247445461151432143133415441446463331276313547665271551314542327554714546223213644721262737161256547314235651254757176263211246133174527426454242342272514537554173654727614247564613265741726456634426377733713513244631743671464237161164565757463746154543623436344465235642611226333616372535472132655352442465427621652735565171276123367646372474462776555265425337766753714245624113771517463126715623314732534146545727155377371773434737172526474377276745766265421734145327267717731534334244726222546372231332225372144562263116372321455417622562677356675316156371536317273562151117616531555314577422552737145367367333411151641712151264317137275231573512676771376334174221132665744426516525556423234746253341154617561454322354617374232457655446426663215344745676421776755422454333565322126615456557455336575233521353565447226274152715765512163322777435467271725116114676115556647723451422415347241741542317374365634115451174111224272532663222715435363474126237761164442665267742662341743677777175551747656553742176373554663663441654543521725334263652241531175164541132144561326614232216416225573615121611742744557717641574244545361452645252631631615165513267726164262116462445546454124554556556214314353521266723445332671466376741466152167673351273464543473571756755175274631642327175454134121137537261743242573474352665211413476435432165235616434523453515264127674712635536362753431673431134224536113665425634366357632145566253264453325222547477472677365313533277643565641612652131171541235465453621476766155262563557762532416612151641657515664252251535766776174367466347237655272356156755655215355332245244774342346145642574433265423341647374622647343634466626567733122261544732776351721613562465117335422225424353545636325554316232114327171637125611643323753775176641541133156537714355563764675571655751466353255522471117477256344243322347664355626137116124152667231355444713674411421343162451375344277712262744215253661726156622353343573716327244434636444426653111462662624653435721764431325736175364657346671413572454476212222751546674564745217564225157212371564464734437252237643542472643722451254537666271275653724217411757166451556466415363675226277474314163247776757526117621551522262712445446344325336223317563623224367224157512356377532527172434173716414575124663736221221474173415357637533131424455471552352733451444537744127664524711147243613761543547161247522314422556231547514151176314476627472566313557547256377322762654715264234674651776645762277474176625341123521722515515635575315271135241422625775457332123554473517333476157541415343654333613353225665462557512457754371671127451351137415476544441112371425362521534565435322717127457412247523575365122664154776633715222373564424336525243742745245157271667222655531454651145771417631621752251125363657174774255337333421745167517716137426144771733375313121172212715761615475471631462764775317512311472243613776264464773624676746277423715375233761371764354157171754554215637247476666225633753267536356243376345345277674361527673542467737755613332231571653753327676561567347574731727225423765144724173137117613115737613111715527237552654654256762752375377252215262541135664462766337767614735544721125623352662414514414211776377613374723321562244675327327161142412215436516132613455516435653723233171762664767434276142626232555266374454363226746653255112367226745433253575372161577317556461356231556126757275456411556524563416673416475335163744112755445226176437467223722336141445223144753537567511114357264221153557145537577551663411346172276543661344425563762324457471627616364431112662161433762132134214743517627276425557267474626451155526421442373252217251654421626462234477541257417526614265457316642211356375345427312741576437414645164625361244274362552435476273672375143251717457525751527437747267714322434461453261234411424544544271543273347766223673646412175525511732276366112572776641157632514777146175726167377274212375565156773714516425465476136367135754663354736671437211714652776564263522315265332453564163262247665157371121764322672411646754732656627723721454736166263262564763754757262437224744773422671411676313332575531244645116477631612552115466243257745566445421513761211757663122217675543314476166111215115431742642436771431336351361172645741236472461444511435455675152666772743173167641615464153672257261556166515561651531146446664674162617651336425671174642647431141231315467443223234737115251465417542311444757373777712541677357334655623322351751663146127744117675467733271466454167172716411471341444753723672417411611562742176233742453743274345347516723223157443521215535353126261262476123771462673366115326355463734531147325576234256622546414111565511534414341155647725666367436117314745572576363375753522656671531246715156216435244635724615661114724643555421245731544324724245547334772454612474562226622235222265656224575755533745527664575724513324115623475112765763344346727273773565736546746445111456441477661337233721715562374541515644744776713324315273432126277755561151753225667477133446365364132237335756554434431176636564171325261167744526363472374244764717436555462134774433514327115417553442211535134661251612514464443116241414137427444636126566344744772132447511456131653632676364765261445316554561767364553572117527673544333112371327614165476362353737374724254376261716546415734237266561375736665166744614377123742732151665464263256557121233521733133331267527744512634657343335751213423476372154456145171324112244676356126435762717416552362527271746641625325525567544613254365362357431163545434422272437256125344277427714551212423577625536274724677661345476632323225761621233722612736676572125336726212344646147342123173274131743564722416222156561777222734731327121251712327176376432535331362263472512145165125161354177136465726317514333235734261662615544457277361633356753463641753521367211347432667665244432626211447361424367656656472755341172246276347615164752512727545665111721666546465253335637674473373416674462331155421214275654275556445213456465136147661455176764547452111147553571667636536446722171371416375554544736613547442752711153112577374667647225362657752177371551571377264325754343242451312567741161127553262717243377542737725735136215544156112452546731724536343355142567361645121625727473437176513173141226127312124254531532414133337563374336541267733716257653227366516333217336332724652641262232172736251114746232611215535751262454412634337164465516452457475544326671234353631322361526566454227776123542124265525617557435146747761445551112755535424566273211126353122323437175756434365176227154565721363314772754422323135152542453573233644143514135452367544612371626312127371613551117164555625126641262223223612713721567463174162221544156556761372442477617427642735434322227251524775167122217313146471723752733543442355666636134713116514621374532177556532354756467431123264751257246123367164133116311546344363217232477416733433365542576335566573743673616252511275555411167146452653343252433674541373422347374571735464637226674145317654625464477345742664655462144231523352133767653152651417623346521165361766645364651733126343316424162361366736523726237274435361717247467272254656462421163722123147726656164542522673113514126424435323232627171271622174575541123756273476415445621237511465517215235515345122715721113152742654417267723546746652663211475774345364376752667555745366446235773432161177356443346176752676566141341442417354571612417777667564722776141275666641222332317476762262216337216114237353624653663172332355416427243112664463651362435674434316323743122551266315561347124646611276421717136767546772125572363573355445551357434245546226564744271157624763727353137762637335165363246644237215427326612755564213637424241352733276156345113534727773427646753462476423234421123223574651665254314356763435447713353142132756511246236472357257615213436624615123735516133767152672155141542344541431235645743124441265441676253436643446233546124232776267125567445721635321232656166715621476545247433164321476315326111351335761735435266236267721543672734543745671317243263355443633235621215776131264513742616211435217337231745755547744135145112733676613116725563577222727641733424225537521477657561172165152534256721674134123713733341267444261773263617413623235562727764324434144344426677234113415415256521236674245224351663233774423474437316642475223223446146611142624566544724647271654552553676152537515227714643722511655134152446426342342737432573561415124477231265322535477167346427223563516626551745624523557521554233414416265471153625213265344766331772732561716272133444371617643753365435626557164331161263147554113566443337437173271417635672474772736272244363514665651352622232435355613332725473262317612136471147722466667337565127172315165363476535523446434246347572227747217173545223166513557637261356311332717532751543327214333552474647742715223216432562324672253531544746562772756145477167414151335642617221426344714734714423446342443565536564264667261623277125372647432312731416435621242255116213346611773143116671124352264714431311322525237121234762321731465537761154716612645345476661127514674612412474571235114663176267541241572632411545345744444363456472643746327574232735473743417247533141772741474771542156417434377724225423562362546654525561232243664437617236422377762431544777367132132746611141737313461151227142455762553757264134574612734751316115372661671223773364571266437247116366466412171431221257714741742771641521131374325334454251256555743735137351122666333152116675562275622747252557473112222222111331132227256424464115241453664721233546473436114514441576276771713351132566476157615764715515775444547137667514675374175665466332127123122773472233752631511554665671272473642276563757142316665566615155552111651367473634624563354271666176375523463155557227555166365315154527176415272325273123742563317772723654474727456752366446761761362557231723751756116152661776725314246341647735747555154163176627354112316223731727524133542435463114334266462663536352636272641271525354233422166635111131225344517356671344544446247352414331113147747165451225733771242766117415472522276417274514731131141213654225355127246721323547553515263516453366223116251526665355775347214633555765773164744562261136741534112521422632435116446641456622223514645242315226162646114775131511276113254767776273114414331371512433761462452312713464117156331515174252321562753322743762715176777334677155353626122437631451351375664673527112614161153337366517276776241361653471417642777561622413321367546116257143454342523163316556533544352276544272464672334323376542371522415236364174447112332227456542712545415114641651114337215171373661321741526773715541573322653231263476442452653541622153357674713253131275573247332531175265767216631141637244377563573422111241734731244262623672261634755273375712225655246436646121546467626537143747453426434337324353346131235432416142716532474133567313436271351356666433673427776736363323367526424477171344443237277622167153625564665631474732762645154261764434223626157664752356174533721375637221237315724353154537132362165127342414116634343625531167375721145375127722446631424533463475413253156161336232274651321761432651267166213145274772724213356554763772724221757346652273631526334635227642736774754113377552324171613617113173571273542621162771774364375625375425612174113473672241662463414157742252673334624241347527251656664112373727412125253135262351237657127513443656565712547174221216231322557254224725372211733155771122211345751363214544647245755161422645543612144617273231736545617765641233457731752414577455345355243457634637145415166245712631464723776373417252161676476763721532143773445552677161621627123376522233667346445454646721644273155477657725652337714727173534153612721112571144756547461134553154446447737144651536415612471676354222235132521773644446775176743355572415667777354631442352355714674745435435464257333572127712312716663446115434571257453465615125174537451315164122161436137632352135162233733345654616423477645157667122515252757342323654552267356361652461667733264643421647675534713351451443771466647125125771512731275243634774671674516316467752713636233623322323164725774663164551463766331572111573473172311766726435351331542622353672242241154716634767234437776265411635742554447155262727626435316572476753421345263555447424254234375263635672411777645526355767431357653443714115163554522211364322377744345145565243614126256617141255512317275721313125133624742157641173714615146351265561264473567561173464317336465134263733312462572741371425473117536232563143222427657733673224317223513717342624513626276437167113454765721274565756777653662672247637431762331247247134522672136232176374531545672574346547754676227246513771457747465252247641562575476766733141176633151234213354233231745451567554271214746415737253467236425473114155641523326455124257713553264513367542273131544151362637255645276242473176352771736213241134754562141351176467513535751174661251364423654523574767565676355474543325672244615324373263713662247471361426211743414733534724251237357531463667341754327112436451417373541131265352713715251226357426613736755474764476225337374237212525422113673342364737667412523716541161351615135631531561143445322421466557474351643622726473136472641426576134117473676545161132316361331145666646137615523737157725142367156744656756441745662664571241255242541437414671367665456463677424772154214514654544471451641714423631343135713376157115312413156441575211672143747762524754463236215127376413727126477177635267121734754636347253223233127746167164561265211345661113436443242267746764575542321523767633257316373213763456727262662564273145175426615364275224413561312626336271763612233145416774245432375225435736242465237721555431562313147552367635347453632374543614322416545521465543737356644235677237725666636573116735731455245177173662555525246753455615523242461661155621436334711512265423762167264157122166457531767632121336355753675274152135335221543577534323723543252474341762146527472235527174513664227226533576456562435554327616447362235625553342515372135726662621255137674242334264476362171353417114275622265674244274423642124235646431757537464725566253564127775542741134163574354271451272362257455561177457215626175224453771736515636673613516425141525125222373265765347637672476567462234454162767425421577741721751273652351747112654744142344341572167225313424573216623147414663272225666121612133116534475254674126525441531753355327676425175611653437473417146567661532351133211543524756174744132215443656171256637447366154467717555153763112614662617526265256345142352662144642743715644563517335563752367743251563457125567523371517745743361546123726616651312372477275543721523225116614634174343363736527712335245735522232575224441424525152566372153377566372757221773511661622737371246116424337437711271352545575532544425151124125255223571361154431763577612424263714355513531363562143245411136336775446111251537745451212225161167643655173256253631753316234254241646456774623316325755562326733126173663454115741535424656452164764463631442346333276563541651447777374541776641351146523617154145115451552446474512555245142667462241426762733523772416334623772226272777464635344416431123434646666166246522266637674717452157755654662444773676655357335533447246725272661162166524557334672725527351641757265137624657451553327464552557575412463262337414247275763151741612742377424364727731437155241432637756132572213376552566314547633642656736266427475654526163267563752555464446526474156675415474772367737415366226734645477331641166173135673536522315165122116235245652443125171333143754275111644433677172671145452651377212376152331252553766424712752773234231365524161366241633231531763476645337636165611214537712711252236772676674416531114174376545752661162642312255375715556422221417635713254473133725613545161342335236444234656252742237137273427243221533127145343575512531274121352526741166622172753245356172156422227336227431737253711622726767221264717152344253464655751667672127532556713522171466375453343566641727717273512557511245513271765161163723274652734752543152241167266671122576163471554153311546565546651242152432517325567533622577366572711363544566344432713352312162463422716455323166271636757377537212413341714223253235145274241252413741142474712336253162416625177374517651352525442151332225745664344333471553321646661223727526343777237325661744545766472344362762625761456654341747717244574174376165242237764167151176566316735645363625634244363574354224236114554147732565223463232564177772466174117366211466173442253252332342142712722771711355573721264422635247341641732267646241467132235151225272214525411356414331655362515236567332775232713555633562633465245277461223415762465134331671525354434455127527175572335524517334766445346437436327643326176233543526464226362325372734555461154345274636565137671165632417416243164466446362251467163224375312532177235763321457475131471323515745153562213262332245225357531435242422532262525732553312265321255417574122214771265526755421635416556272422133142734742523627471447367432655312576214455147727254112165363113464324763577511537141451216527166627426677751133141375327172721713745635534741354324145166371371765561455741167531236154775144234124362776115761214722522326154555315475316125246647122365263552472143715537254241153421241625175422714576514142347523757133642475775454346763211374571475773352754523357366571737471651351675274657215233124137171156324574324713643457164476426625466137563365561226236675657533211325314632312433357246735712243415237523154326755663666367625165711773312644632422771647623542242342673767553724335321414667114442631241216512334277341147257733216344464345412231175173221223644472241576447554773523145257534214527517454533123375711536522153526516654227631263763147711337671563441213175324533136141374275353532542242674457164771721451176562656164364742147441543627121116364214545351456523576277213214244764451175254745235256367721335735362573321725651575345347513476146326577162561632575343313754567533322322671664134671122417777752474645226225732421533775115772353647563525322464557157671572737325313555421551246355444514717753474162743133256125563334746644274623237642261272657214611614235631253256375524723734535517332125354562532275716472754646562113737427664223614545753557446651355426526147537325723477444432477243115722675627431167246671157165416271361154136354462241455574245274344562166734563711756527454174641316626521267662777752721437125156741533753641237226417453575213217273661165317422464333623553165214574612453426655417713267676417177451717361146511623141142174723761153171276261363777223424735434543162214223362661614366772635421646261524243333525165164261624177127211626253625444143671173514425546531555751526133513612173445213776244642114736371573122466221537445142454756777266472741662746173621277514574614664761166454263656176757341122672271476245675372373272245266546675736762452172433142277115653452355155322632215424743645543722356253626112423364651256632344412221613534767316115234127355726252253636235367277124426554356174332614447377227322665544361212654746412543574646247723353575152556347624175671615577145435244424357342152652732513521363271652216253362656752143514652364441573527256335334557731535765423612155273245771446352525333776366474213447347415342615451151676556371755711762536131565714764752672717512711255157347147547156237537617711226644761675643757573667651761773677366546344542533212176175276566525473437714176511721737467435317747313315734516671675653517357456517141643424323514471762726174646552556221564254515713216225612467755667157474266157472314174254453251267146575472541773314141517725243256245626263354725333423525252477424326234473765627172444262442424255772451167543663131647125461775666144353221617123271212752761641465213445726742262424721136314463215551444452571143434551571341672351526253343446113471662615175243226745311566561742227322223746462275737215155261323444667254214333236246155575746414172211532166413436245134627562271513667115157314141654347526656127477321226241774163526572457372343366421356445153436327654525161421263411256763547411377161566641657221447256623563612622117164163115353277753442733325425525144445313534642175371634575441165634364746433643513666345172322176544242115413153353377121453674441274316356674221461574541122566576347165765471657736412424774645562422322761156742773255755432313454775315322337631151756421643227631561234566551766754637733356342411533173767266775451464112645226472772311421427276344656144766535736276442575535551255272663555362212155436132577626546136314253374423366161357342226223164572122664122742177134367372621377523173514177417323163223424565636156536237311354662175441126673427363327247374764374151273152425464715132161677221646766363546374616522732111243327235754437361153634221331465131764562336355363557373336575271477156311237767455415631521431512427241373473342172666747174356417545676136552763251266466114666742421333222322741767726531337124275341753325512722614771743146576342541212664277362753766474243177464574164513542747256216643363421711626371654262216241735463626137122761157666727744257115311324337445653753655651316311251273736714673277456254375325332462165177656167256173532275732312411327316326253153346765561612163345366221756455712771561662772325255117114153655166244423544176635535556373652377223756444755557242621557236575431136163652321255556745667537472424442127243471166152557634565146522125253424643462666142431346132543362645223672777674157375337515244437262452652752477441274356762336454723121236465442661227126363237623225347327165344577511557773774437275326435263742635772773273655665326273612226571312573123411277732762264475356577166372643663666165413164711672521551645243522541322637232423675763161575261555616173236511262667415466226364155165521361371677647537341277525344116345416477564636574625611344165622553433371175645341721166676361657224465664451114227435415245432345623311745167611554414232715333724364362271161156611435526451764413252472511736636163655413612353711151332545437336735415176346636744711374231275177551461414277275677637444464114262341423233263153755713363174524167232456174373571412751451144552565732731372642734231375413257346153446617174477733164734253211235563563463143746455742476137143723361531144547476274454351365667117273326763144774541276335113223153416416623333777137662475611336717541333666256272367521323355345331454762671632767142114441116732117626326573611536146414614621741133654634126211714764456142235352741423136656161566334351475342645671314213111177133551732475761667622443655174111455662742437625627163462161671651647743327273674723361517611175273377631652252745374555455556317647533731365652312761536413445333427732252647271577653434161735276271617714744225114556265372111152332324727543363742667527632747172344157124353657745217213421432675373315144442346151112553517776636267764421654572672251641551445374364746234623114432525674131671341754561252474151322222646736762757535654133657613144221113722136213117424771772375127232535752663214147641647271713726372767267571324371475424516111641251266356377731171742423334432546676423444441567555737353736174173644371766735124636763367311637115556744751662256744414336521432127635442422736544215751523565111764647111375361723517573252772112567417641366571153242461767317656537613653433651165444443473362245127515252546656513157427156313125176734271266731456411535465677517312732141154123764737616366351311615133342154343757737677534776761713246544212511513474566257166156414377712363354733373337246155126465566126363675326562636645366135725627545145771667164147576412123726663477271361416712163735347531537211331371442242552754572465442552616745112336525612471641524672263167672234226621751255327716345644745162575456564612445456372267654374654322271663241615546156245714472724345543177171764713536237776212657325734754143553127752653613267233635433041326621536124315744156443376673145621773775347133543427147731335237321511455452745311324311555477523515753423536461623355444274356737534176562547621347123553211175757577557644726354276555275416225316455451753521237126656421453315144672171462616731627563647367714315516756156743244114417537531371253741555553116531261354236256474677766545156631641765311447376667757633457244447537471455475464463347725141576561623767536416145413325221312267442641533574421362634347477716144332425716457676162525565677614237563373342332247322711671652415375735352475512654765245344476235637566727517765574212145425331134123626577777547172277751515611333625424423471411742656731523656232614356736111274363375447745652752577412322342162322265152751156337371523766366431557466663671534664637336156131315245244434626274671624533336557315132575177127627711564731671642355436346351242343413215376463627372337154211545225436366225426467723131663147561535565477252231242445644241227473241711637263276554247654116756274374561516146714422421232737757327116267273273746121234447446412412242353662167273235772656616747373422612247352574475672554451521254455611756136665355544172343472131623117732722551334655273442665757261264455743176664475752247736655174443346556546216613221334212722556113777665475376712754475677166661262257731667662171547331446344454513625674773312366333477344172464655546235567136173432477171336735472326175211711354613532566552333565315225426554336672261137353741471134615552316276525547516773244356741536167617552445327436643211276262161262251415357214177532651517716735353314142173423565663133145741675237644264535115673327734531731454541276653455255521514161273452127256234512337712162512542216311325141622155165275546133243214237765247355764623511524741362176774422457356652222464771237531341123371426424547776416522566634755425551412266267147712272256563446314366614524447431662217776342263633533215761635124336335272522116452672471674327743676336671112741232462562213121421354344564651164344422744446527765413752551561214776172447433321252567146124256647551234177543577767163676423417566512241216476564474773736217356327554774633512362673275736775637774375162554672252461374314776165645345412711447517756477117617514432114424652644531512512674555221543114673767354425575756545376543155535234161533224722776446313721573216736112433735235113154346437162755766142445272122337165637745254744647115646147314312715113627324612614577315356617212724415437221533174235772673725237571455571743253666467766462315265342222237454744714713752173632456612224272615417227416625111457451573123415345266331233155214151132454115543462337552756511116332416111774234571547646626731553124746136663442516413374171166561376372272536721661221731756626766616236313215375526623727723622524436371722452225111473515766342614645637214545256227567377425516363167772365273225214343316166616316327545376622444111432337231263124262633626164474541774131257671212515177616366153164467675565616177617612641445154433414272664574665655742226123476147467676456146634457562564233731276275143751545372377447173416527546364752245667727175115355237215153461616516427331131576333444262532622664445577524674636273623175371657233674766566243263656175636713645336745623551166455355251742436363261663347356333251115272555575715124442416353671672532777651463274742114741232323515125173341561275577114327663154675426742723742623543215264573263744531124431623276437256736245642425537275277511553517473331225467233352163154122372443176121676523741361665371647714415337516571116254234774152162544266251227427244771472111227573133157173235162662132333364345747366476713531111334561237664452427376171453555677367573562137373232232327664366434473652775135471625256136666432763451761564334325132736725571711355444434256521443747633513514541476751476362446133226511152546677576657617143767313273312565555546434325243632563712444614373246122563326673761373636311752367271467211217417646231272411536567536642652723621644673235211256242235333426121276665321742167614221153436331341341763157365465227326551324552615673322242111733756533676463655454176333634726324111512341735474174147422715757561741216371162661316347641457536523754515733113354171176334317262677357143464132442551425146176455413311667362537716361775715753514146236255441543361371112711361115627647423567127367572173133234747723766445461427577721324647344247646573453615676777743541565221136616364546346156143437476112324226755433376113721355315236361173172545766716471736461215153274674141757551422526474625333652251776164252215561341633576774333522342156371147264371657561313566722146777714734574562647662331144351251262776356125222321445563227346574174742655516132116765217265234734337536216311433332254212644441215361122744227464611233427174324753274472115154555577243363616324634473725424161667115334735657344673314761367565665521134711646337761676646525214167312674277734133212776551412227251457171713326741141736717322437475515517252146363376216232575556447322447654574743773716117676532573631617461774465767717616473652456537517517357747731633612116343217357341417423517513764314257611747175356211653644154525343323526637455376456753452143677341534417564235113727366474775621115556535241762454413454154647167536421256455724374743357145753147713247174717356144371416323627731244166657614511151332153546532667375264246537746211437774751246177626343226224235477311776223743745612225256672432372573316522236737362776767144414755216272426321257447436452123512343252534467514552526464776367414743327166757535177757466316461264527526324416131225173125674613455447463744766172611314173674242115155451176177257332631331665266164533742741177732236362551316215662276414614726343312571521441331567432124535553175254236364527676743155527476615334166626312361254563254315176732342345276535554334661421241135473736556423312655244416442556416622667643163351175546512117642533122175375653153647412622516772413523454151567744116317571572643425773577746653374235215475663234634314372271547263725655454767563213744265351471772667434723613234631457124263274562425131432744441475577237666236512324376574241311171225123247711154514464121243362415336642744153435215716134553744566364657466142553264217655262731776374342346515745365343173476466436153426361255624457761247117153772333362417362626726153274273672744463644773155161777336167441555325711471727536746613622667736477362432525417315276551756754633752235571231363223172311315662356573342376546157451721743622741731256325212717166357554747245437455327247452377225263671524251337161176143312234163643734452515424634452173436244542134513154636222777271553461246341131437233755354475453122346114227473415724453213751264512432144125555357734356544773455627135546225154246775561372647542445232264711425316776227425471746471611211352274213136111651645614615747174335757263164262366141642345466121616636355174433247424752627432624511346155611135216675757732225575733557231455166157554477722522415653717265165613751337433614145642243161761471767133275567263667174513713152341354675563473152173553765272547765366244624232442621327267444343212126612236512774141167134571132434416641523724531636651332454617362156337632375372251423551233172317152235556326645676355461712232256513461323326127744614116333451433171244567571414275775542726253463626416365426757641534635645224677531366141137135211713611542233217335251466572234336526764117442316223573443566313175164516653113645216542132173373721513577712365327164311627251472743213323663414424166147275245442764437726261733452457476322166375132123753166443672552474723662565671317626652153431772473671141741272263142466722722262551776114324453751326122234353641147751414751476522324657416772177175246654624565131425567467661511445232724413315371257125225216343175467131453323442363274734652151621624763325762132441244742151342435735471276412557674361616743317114654673654133132562743657277272671367764471614772377566625736226255244715116417746126777573424233767662372253267172772663324157467566616133452462663262415124254122623526174434623232473225534146237612532375667223464176651374131212565614414445125534333552375426776467232516517273636224553317376245371542434344737551145667527434273341614351644623646535527464174442633357335137335311753111533276552777145541513334341763156466354645751436427155422637234174642437225471443442124316443243647122755625752336442113656364661514121614413535513633237157547711333624264451322515231355341333576761517264326511334471235461651567731161634674641217533263461456463662664445722253226645375443422711216643554772435322152626252362513517764553126551757351367437721273311677312266514432652626721141363562433752634466554747552757216466741336613262157655642141251727714257232467565653456663672115217534541116176665132112412734456341125226125114636231413677456222243175611512215232462163122635761467362554774536666274675262667147367434145521527347741667756163112256552434516634537727614533155362251524275161664756641433647577635177537257435733627652357427323124116244171674366264522554516212532346167256676435116364145166232576524433313366167736533231265355226752323752562574441765273632564352625314472652216425234631776445736457136313545517333115125162676544556421115667533236751661247135514566671466543155643141157163645324214452446645432737245354542413144473736513366653616435113354667426623615153142432465277446724167642343752366432773512666472217115331626255137321712367242352353715212747653724715345451515754355277313372513314741426661365722542574144315546344325315344736323574217541335253725447363667612272613777742671372247166565557177271562566167227544464343221341267447636544667533212755261414433511474451241125455642561633416766246674711223661355624727257155762652362476754123775466324322221417636217726427711551422155311552536456561344446615666274144212465344212457123774574534331162432165537164715426176651315424751277762662472343154741272655442552467757137353752366476763427666245234146213572137777676242241165771325356646242243232147274313114257115112625152474712742473725543565367553267531322616766467144532362336655541713365264134141633371434213171271536355662375472722165626336447522451357477357541761552415443325663721761726663162156417255417317772761272152371616461576351411372671627226466541527577445577546726111144773757233124167731625521523546257654672213621625716662645122156745534655257333145124371724232136723521446572116537351453775311212563637511713565522551161621743223616766177356131327425517725357642551351216222265321713175633526775123264716344167271517364556556262417132765514434476535113772631173115324265737377353774475667777217142652354324452751522211171733256435572254612237472523644746254231612236721243173456652257215732122245137354575733731147177664175322237155635442134353272362672433647764541325621446775424514666363251736171574742752515166555473132336246426234431772427415165561125751534547123312465525243224336724116654676147416357273535251154674563264217261716637322237356647426645465473515571643177235221264261627557257127215534467322441167252231256361373145625557124233242574614432672176762556572234552731512165355566456643534657444547631141776554423221663362227664667174264152514136125554715675373323743457637444256134425215145367774341343477234137572333237677677345411652674417461624347437337453315323512243372374621754627775426172342665336466261457252252625644771271734612521676615123425122532741154544127117111624265767152257466742545666671763311377316634673511766446435445175225256132423173371256123666377222141645227447771126141521361413526573226374374427343516734766457437153123442114157421325135773646755456634146643715247652453747755414476123627222736724362676764444214727422535732643373562351135546352233577364451721377545652527344576267115553665124111665141715565574525212671473713212727121617561132563152323625356662515566545562757366627313131117377167735525623762654616333335475514617563265454653344366533372144434414722461256524344326567163537217672252376261516147125744411441421736166115377123234137572655617724644644315227643246327575317471274552323255132467421412242113333127452777522777743713337651124436474673664764157451125774216651522113472277626765767667311167351552232352544332241137167267134323536164237763217323332352374135311216652641172225441517746453223335332517736142627111715744275621443734127745246146251746365141226532234341754672626722561466522575621344433732323115473544526775456614367573724235115572254163542524352222423267161551177417773256574137212537637124125265176514375612633717172725547356275157676477553264175466152171631545436375352661311141766265462446311151576176236433522351127363225432523422455331774133254313734411652135474236235652276537224755754367737452216213324316447247154474516445116726262724667725633313664531341143173265645747532752341734151265774233611415351566123117635764455277671643577656661312276774552372352457636725715736355166635154423752655667361264132742644453116525773553422542355453747314736671311766331515753521716656461353423521465647344626121625564633115457637314241542544537416112422271353223757744312164126747122333467623317413155263766673614147427521153115423242542441643451522414411123575113261424637175141411152364643543763126622522446416634763556143533766747132366141734442711734271616473315535553666333524627356547476137624413611633125517545432373316471242442436751542627562133364234452716163167143446334637277623461652677316333777642426355437717714374335362562645171145673713675334751616264357171274175365756412217312227656767711527456353233465525641735624626617655423737476251155251743435327315147652523551766473677243775745553542115563653533113141431145732425147616215651173516553671414666563644576354364555432633773372357735516454724571344647137517755142714642353744261765713753167675277655123526337325237534743744653542353644661634556422227633321714243527326313177742264261414614437713746617217114333151233534377262665555665676342641164356176736224712461362316513512357257263726416766225456236527144772131434374273735663416361476116411553214634346236616545616436477556377674431353143127672654424572423413756714331742143321674453625256555347273211516232223777262117765532543173344167323512631142141634121342667215257532716233347424246472562413237312424237563645573332611763276231412245134431377644224232453417452775472145115263574337617257334425355572223133323166251115741573231112343647213422331541244425652173227614636261333577535361266575727111673413567131225764713653466417677152537654715575276563243715665613776164474345775665371772562352763561342117516475235335624143251631155257157711644317261677124317416324232343436176215415327767141673237374746757761622455465461542274144647535444626265123562656166513377254137432462164454641551543764121425671237336174561747114524125211761274246167635133754525137757767117524542426321737311124213322232215551134776161223335747461614134623726326246357613521457551264665267233741616616252431375525213742754451442334251415445331751346553221355621246471145671775143631464533224357221246746147764461627263525243275333336253142617773711474322641474637654262463362774143575652112515672222552721227736275672174465146472761173215322133632154613521367666675137661214471725315767736726777512411622463464236736142753643514164356625165612514321526712374714332314133713154616662572131443217537253544162644634713216464615662776254772176561162414453154533633662453653541757322676325661264662136426112217243444365255274652176141653774121464232641367756355262347656261347753241317315143762227215144272277634774726444743376217724544673566355741615313642573677353643333167715115647135424175723411734354254764552575356156551122226544173661257547264172651162215261671277425361427137316335655474665725751521762164227762567431227132631723221536342251526673616511113125337473427655737711412263275617552523166253757761221441762652531772311137544553766122322471763764225432326174572325651222221526342125367111651723522543766741776117757777756157532616325113123145243142231755622223144646362576413736343431234555161657515776546131174441574242661747721522375312532265345762257364356447571443615145673472727646314251342315676472262532123721763322545617576446766253556261351623117512551425415242511427656741242342411553424152432615673561725251533672253771155446347617722647723314631242447224347232134221334674251515643774422545742375547136665736433143416652447611354211266173767363733522156157177637767777315343636311527424446531437347272135437352543626463236373346465672354573767452311634564137716667144516114153214471757563563553566356157676137667765633223672162716715676611671566463776457565166151751632132112151541317377115734722275417632236274445476411313724144616611125645312252734755347654546436631336157366661276723721566341224366375245124253756457537574527355376133635352667545632571153217647662146674274351733213432643647737253234665312425747414677275271116532331762223727761351461127331124347436647243252311557572535636473446333451776247415465547444323561324671172725166626412447761441512272311414323216146422331475556716241421254574372354576647626537464436754345676234673777651645613356344777511423714475373567351616543254335416121452222612747232175433167647641727251452655662172745365251136347356433631431537734662571624551526552145217363376675245441126117656372732761422421256113125135134655757266447512637531253755662247756164641723215272216514464627635435223424646565626517367651743626431713371167742534663562665346124336576624611375765353532267373725515416171242147516752212141534326157761124331411326547664131572571477513145216441214214617676145176256573333261313133425515411232152131463722154367731513254511127234273675113442456621256736232365774365116464641534763515542761552312113751456633322573457665653725325534761653316566234113711422143527336324745534547251553514717473325347754636312337575766577637171536633231761324414124163756166252236652647612342765363771511326631535713715251557227717277343137312272473337416441443462525722662273454117241125262531713427725135413114142144662246431612774437377672315523222445412413773347466566621574215363223475165432371241242332743572134575213757277325452715212573625466127514645611556657462751253112744616373173141746115374431743346741571171426533534275641755472215366517661633277736533727461722652533431515236122115471441652147223656646553376576436513562675737325112177437327164134414715472524346556611643752364146536315567134712573767365525332125657435531242413772731522346451335312755172453654151243476454411342457377435133642666247214756713157177254157545635561422217122326447475214251745425676126127263241222743452566221617613636755213425732361537462563655137626556732444774151727267444361344133125272762477561427575323341764266116316555535617756411735244662514545423275166254134241766556746423376537457265771525623571416441171663731656467432224574734572773771564562521474735416112672212422572247423474266132653154366447721145111561271273372776426412574617437515636657326436412253323175747121774673535511341675237641345347441241524375442532355431476232317333515246712366635362541474724767441366176426471141236376772372346565314257127334467416426655213152723442454517265231172777621227432766245626655562672212274427562162717472367256447551112554532142432472747765732621732217673216363534622727523125111353333645613355641144726437242376633321111435223446132615631272755427421574327573577171654173273754717167523412173172157677211615426325471752253473612611532724455327261366615164455646723224562424444472375773441245231454743276753323752563137253167225532162667332731177413532251274757176415432724144125512627137426556416353465171614554656763746633665633212712112651246745242244444127457651173357464471235342726422417474613152121561674442633575756625316715137216376143237411216171632543356217146743376331353353356542261121746743473336575734371256674617124631362524475271531766545337452144274356726646612122775632676175634351263147132443544331517531214643761416413647214646737712234621327571332527542247132152416177333372426611665712726144474214136567733524714514117123454115621677613275666241761763432143545735735254133777765175557755242646531355672361352272647735562765532751557175244463667564343542435624612613337177456445211566742624224415151261227774526765673754417257665715226127611511372576347465554464176733713265234424462432277646357352554264627363741375525512457415662422115154367411173644171143543125325132561642652155676113471612345241627614273422311223653154332146322222743315556761377675437554577631225657346246475365742727477472625314441275735665371573643513165736573633347736666656243434753546327673347253132717544117615161724125461417722324372123173523736432277441343515236341651343745617737164122472237165252217613474576615227576712721436767662221672553415354366561545445434656157244515434274744237774647236733761451313623231763762456463377775733775551115173572746615345244141337226221631311515517334147654127141164261332423263136653542244361571211344517147362241634152511652112147627535573721114521172271372526411574344757151544753164325511563642417714723777365716532212461656726127412171147757524655224373214215157471524522614312233773324734643613664447627257574163415112516267567224217145215613255767252277356271612625355137566466523634671511671164731655634514455742531623714123626113567357616523175267561114365367556673565457757416554774344272267141411265154244713573247667275112354373122545156426743122732644771432145221635611524126433617327564777423626517561112255446571446156212514455345567174747611655672534116445311777611424575563364646456225647157151113563343671365223255132151155276655271472647572116633131147677675316567663634145121434652642621452432431123441162336723117373541114256262626745367173514544132233541576771576235354525313725131526667477667413141634365766511654534413471442766243521211271466742323763747356363565717127166753226616213247767455365361311226637531443771111747515545675737534616154443444562433327777562656357354622267645223544444534721657574266526522435671356131443622571331273164437221356252325727177223354563345457516433566371477433752441715553624571157126256312621165266753346726134745673635126135664562226127123427227673375312117557772623626271222312641473513662662164446366432652157216577156356554332161133221445467347466224213735154271523767646614742666326613511347522112176677464653525425716142214535736736675464735511312226451235142744645414711653174236274421135221715656267455656312232764717431633532447315213134267457162745232514152714534241667735644141673265562164457274373376274717771416265475243264634363122612613744663432257576272621343533725322711255513564413676733316727443634162652221762353265427421575172417716241337666216162124175675755155672745143154772175625376723621522725532147651171653424225511773275751366244363452123446221237656455574431167535647274237254341317176543652645531462215343667732631515173377243422753476166162356447261537543126323663673522151614744727665316232631321573611673476117777547473657611162353553714534635572552247141341425773475267654524611226343477442352533451556122523746673233271427613267346251434741737343674137731341474322475112174132431734137364344665745645765572155161664614351631545333242612227736135417244247415147563765217273176657764537567214174562322341652647556122162214734314546173371455542454763324727461156755216264137315176337733772111775637466271242742716721222543644531577337544761351154376662247713174136114523542676347226452354763377272643331437363375153421216655665763416452411732556222232137627535276144375571775711135441444437156162522212313273325273256613537345511741363613156765322224467433324437561153571361133444714161422154243351721751163521232631772117534772265364312754111264363675651357616535177264765724553144531676576443342271711522377774351431321375633264355446667556315441473543346754323756735623665332412757423222743257164646244777251565532163371635635432365776725773757176435417314757217227721631126225762644666363425436342524546552361454154773255727663735511357515762416177436132237644415654636425676615752575731114466344626462353154752243755156534551153233571717414741247655441217225631117221263567114713567677633417517542751347351761356256341673564631136364213221446473436527176562675525257471646617152144154724223166523475662643651774512174635135127556255443122231722143425342753142766534246463664771343276475671211265521457136435572212253753164274655122236712671213521135445264552465677521611132415617464173661227621772273376651342472723321344445435766337315432663776337463141674573435355112272413336415122112572136763675236467734565417511161315115514326276373762523573713255776556221252211516752242544263663651414631742132721346434252552237211664771374615133616234411624655144554615366162553316141143642456124616445364532272277224672147161662426255642162471333134342342447772631414624154231543316445511571774745531145672747217244635676175512356313262467417525327711721573141172322567642723645656152243456556112277374476153741655172347336131457377157776263451277435461413452523431531367525756723673734412654336473441423222233434721461666312343616162525641313716165364215453655653135631763363273731353231425224531323423752473176133456631553226361743342422623655214117355611446533167333535722654374323123151745454427664565164623456767476573241612611261177462727626567537764144436565775654146237717654762377134112513467174727131737426756672423613253263765667772155644443525115433662257647757155642216677412355643767165152261754214275356473161567615333643642464273731571217367347213517274553174566656777646774734325435713412762647547645435147561425236576166263331235161574564127553323333361715747647131626232317653227555546453357453447453623611132271655434172137573432624315537147126611411525664231533154526624646527777253633365332651334327713666675713377536473577634265165555444246677544313773666225735623367114764652233522211243147732271272613377422615245452776162313333634164126427254723223223545772365763315341356767212634171772121527761625754653714177527717223366376461377764455175167261322652572452413523262772522541672167447615267432751151344631621137164265115157356475643225316322342761512216345215772224745611245545625146114525435656344144261135636334334726462346173611256453136171535246116234153546554431755765242655676623221674463136244743567765566547253244612226152546735145733676615142634167674243256774476167152576153661561316725735315124131221236415674744637444266711333565512464345741526672312213346736617265512325467257421532177172764713475536466524466653273114414275455341171154632427141462732453327745264413767241245213527664327435153615374247354115467467131765462164525231177611561627622131571117671415535536714767163366456657647112756531423232137467334222216327515471533145362341473736267212154634771315245373342735563574122574175336743513747334132423124315125651556137444471113364667231753437625542575254365723573445543177171766146655374165537113676217237426332217751361244156556366412364316531535765772527474324255424746731714573315567646361717563357154364645375765652511613772327335755352273772677741242541764726525352571112361376423671167463455274365675735266732411437477135565224773617525531663645715722471333633334317262242646357242522656252524256174331415452311652731647231746665227472137477555171166172276754626756273143222621147647177776571475415133354547663641767761647627461365633411376754162152357241227457243524654643362617135762725164117472161556114375372111322737542421731715515344175375446752126377363473155712431362736723336155135365714525672121335237653561213152744335224337573226225563523131436751674441327632553233575331463412671234377363641364555377347711161375745763251376664425462573671122536426754715773446325574165271564527314725425173725675315244224665637431214123336115747454215565462434644267622543447426736625454631216745136224661622436312161643774577274235523716252114323326526366327144635327356476122344437367431436133675623473415653427365322566412672463143573372544513436616566746126552723442736316763663432437453327531116313253143541115352336652535646477634451724245663725714177654535641217312725625132722542547234217332362464347162275552737763413547765145612622753527124723374752641565355641155437553246616375571551416372417243327645627467231335475336576523266352235114231264734557531412722666172622435554256644717741354432343544177665213176577664631475743317727777421131717777372543346717672713664761161252112477733734614136314124243451663132747432134656421223556114213417773156351745711722477422242522433131657153745756437472616771334756245154562261223164355264321625642551327555761471746574336332135374436324313354557447263727322763547471123461136213222533556756332311523762166127542615272261733155336546156177243445175424421136651444363263111445254717561674453636476716416453212714773752421624665675437476727332722226572775573252625765557622115336325616375712314213672754275622653535375266527337727125655541635322261671653577661714671465552323532633717377267371752227776137523726227246276235344656646553645146161115745761524171776745221756754166673362544165254161613127726434433772247555274713764316471244776375723617447232422262742265556517312572645757233363676715672644515776273772126354744544245622414324134444755523311665421224556177623257555446177167742354621531532147136712523642645163465552634142266257441736213633362257342167316125272374325511257366322532662515335456177652766135776362442723645474324322512335745713361473756627253574156322127737365445653636153334733775211213243711515212716452265565217232656257442172414251471456176223321256314534165474644712621654225332312754463244642353535633454112442757516143437664331133472123257544436332675774421525175427754722564337631522363336357722727412772535621772122565414415617663262345147137451631472154745133442717513537415661731245552365733323315551533321325543237565461614254733226441513357513553413675312124336174254622672251633122565667424435152555645264451672242141123566365532336755532512146364465645564351624433275557764723353146736364457232552431537322657164757727565511666233215231326426124117166647137663124736112143655457366353466354617373224321626454314351617544346265671333434473144473763747514333123257524364612352552246417143456714166426126344442776541566224135644517421355132323316315347654431271153312224357572542375463145176275636741517677755315265572411342236742123113111643562332473647153667172513124311767113444742147437566641252713711232477273521564443447465757367513663724465445211454434333263344644345674531343322174547156423221544335727246672722365414446761235662373427477571737611256164277177247512542532626611735554264315321313566732325226213177437251614154324331452315245455527446647254716432411733466333175153157765465441612776455211611531735144524367447762526357532675712416751526564653745763136337121363312354323122435225622565566635155324756351423355131276756741666521126164237665461622417415564536641441174752612764245316776351235373312727372572337751762616642512243445416576122737235317114364672146717676672175117732652312171226211117261362773167364526726151163174723251462717657431434352451752365614754145243226451215554651111672366613431752537751436714224215433425752147333221473314727551324756455662625256327767553437563257726426717536461577445722171427432413375451337517555266577532615145516254317351337745734721272777641466217155371216612473632742126375217335156267757331514721242173623747654463312435511212227536231635514364724161741762314371314476351716372121115324566327461741776277746367372234615547416513723633647465635141632317451243554737434312164777164325463471765477334174223612722554233564674433577177432713325464217676355632312213365557122172622672541434665126464343365475567141425561251762632365714563343366532321537545122257751437764223276531674661464513621763673436145721112517746321614672371643461364576656754616177467731136574623313372376761511661554756545232762232563353433521517126672535725251427765232624175226726373164773156156511164413324235165474264673411271411752475131647416146626367317562576146752156727733535454416554644451546654656642326274634413217765733631315273545354641312723611523726751671246764551521114376352753767167315124461644654414342547747155277772357535133674231475572417237131467444266447163123714345262214444311626673612335625242171432266616712712313536222756277342461353355455617362125323233277557514233611412431652514741461445316123425575141137377175234277741665336116512735765765472222127226762663454757455365745251564516415713342756725544357265254635517377725133625473131141675372252213375771472252575673673542751212633434415724313764464641246377554111561363613213761354512532526247217245636241536575355531623631641676461426463453112755147532527711557612467734446744451335577561546547626732567454731263744723117765666552731777313531225631232331726775112322364547663545772324337321143474722315265552442614431313531767363513443237475665433573745235264546114331411367134413126742451245146573653771125466672666124341155736314515717566545734656313321234156637431317374171557511253465714667633175124635773764273633433222226525221623524722552744311633255137653644236622117313644727455267345543366352552574161574552261425113642477766246756737525754126747325576565422411324377115617413536325273756226262712633425375742514435132654613115317642412226371154656265646266637725367471442457145153741557552555373453621776173627314473351535466633216325236417552211447422362265675437162734771322576442611726416253271574175241417345436427371227646716427253224347114675625157154744727645167624735324127736643451142137756632335177612715572136263477364351414323224415265473421161737555637453114664413353635135231177772642142637372736431235147161771475522775735241173335732142151217151352165611632365161466715745155314524425512731646726517225243674357621412625673675566621445135463445517711562161631533676572251415367362441667152135434374611763632661246325232455222661343543225524737653366533466555712376611454167246676462141126527767641711526453434214537543525423516621673451124546112176441134576452451716327675525147675127666445612723556637421234225647537513265567744641574736342236222162327277175561651364137444255365631657667447536554276344772642425413573636572551172136436622164745324571561136247463336221537143666456435657465443177632174777477335272656746614314217416127277223654243256731573224256272111224521146553367546752417227341553146243722351245234314436474461174622324463627453124667521176377171424772564431743321474523563463536146424256353676156531216645121735516325342743661454564542364577467422167355654111477345415764723756255214771313663511441157643247166721421552152422577715772221247242315363611143433424333546673627142617212336761334166544433716134314446571417533333217662363376631465346416473147362257425745637177624475456663611747612626472622575244713711363571572653444626266624435636156425566764432233152144417372121774653563347462667164645566111271666356713641247357633523333563663632632137254371375741215564264557744156713333562457477156676343356755565232527756736754744572146144534456521636533431235576724731514162144141124367524265277663634454652475571241312642562552746513267336217234466654733371416377527644575621376254661331472341423477767543614533312544615753114465554642332624166332114721243671467264317572227754364157313664142751522572724132462316347527244552534714216622212342366442366734326726551354464717146113432346771514551616364766613523267515314476163365114513414765425467221777517235756337671211742421533642724641435272373314422674741325626374341271427161522723617633415435773223274213376677261254525263173426746567736636645753335365615251156736741733727626363721612537645537345547142234753265467532526473546213221343742361246133225266433354776243537767114716441256223461777713277367217512557565521151161162523543463555123113674173211331512766346734436742242642163315361576443446171176234312627242112163747373113314346677263211413621326366667232766656675326361653176144724757346225125746615714315331733427553476117735615325167512614267236666612614366237156227412247362262243425165722736651732157715133457723542344441325411716621444112715363516263325267272263237641332272453472743563522741374367324635712344537117461664724453535221631256541543422512374643335141234363236313655246377775441345451721234176465311247141614632471672726436315746753177271763133132335272243737646246276365662375631342675262265113133763552122675143332242467111514123372573772576732246326336321122353642143422315543374241772215342537134516631415145562772312757322246616412652367755154476563626153735516164314322746577466651566162654454225641255235115174352172451736361265372116627546165474532734674612551163756722627376163357136421676174371274466436454772614567756566336356715662536126417766654534557324236115271723753662641333721644476421337443647345523567251456747611744172375333214472512561564455662363522357671347723171157525373533114343432467552163317353223575717554126356444753313343664243144122534472337134466713412136543255531367534547315127551664431666541561645231152765733723476675452642727633757347133546717677555741253236443666572246257247225712247462436725575733751675521332645523157651542355742142725267345121537525763127536152465273331242335226116422515332667326753116343174174757321763243275174514451757471176127217643164575356623722172273724136114533214631534247446667172626631273425122314127775765715216763113466367427233343733534354354574243173245357673377663321167436264674221645736457456771726773633322733721624553521311523533117441754446441127472544516361673557746324357573552625417457631226223264524475653255117154247362124432275644341657452371115133244627237624367556524154164561725616522425254142735432742411523474367542357775317743356437523154572556724125545451676652633342732111112513251735226714377745231453565656365471213124545551413562731435356115335646224663123571615777645547273756671477674355557366352237156354356415415244721646465677626564312163644557143346116677763651313521724573611144155756745333364636142622213337135623537363632225332424645371274777354413775231754336733553714424452224525441537263275453155626375526272635712641361145553245166657677774475673731745623257757555635624465264551665557165174161564466226645424613357476177516774443356353725476745724734726516343677525131662677362165557431274565647362562642711227775732752541226365433731333454455257566732253172554252424653322747115721237547736555616474746153254756163257152136521452166614221726746365213425477546154746462463551521331514443427235732661747426561624114441623746552131144216176352172637731325313527644364315154253535521564435616673442273677335512354444716611612145354745173653712467171761243357215712512777412651767775223551562363645145125273372372133471561726214711422354713244466736216371331723214432132357635527541571544746266723136475477162257427674271727723345376156765322265256676721613256117715615441651515315276471626536621422356354435375216146331114277252417356732551473311143355166123365422224573634275212641446252621353614464661427141335473331612657342712417643656613552715117414431632713766244246424736551411263357561167724552514326465446455134172321234711273534665433272124434656711313422625515247471513156655456526753354724551511673321217654637445163476253445646167277175651635445115733316264712642761547733516327713453473773266564752646327161173432111312742121425722645553762246556711234336511213561256656213751663775537371532711135734644242241541315455521621745641235653116264215653424527724611744622143151512411662454456256353746262572662123172456224741766464223573652174475553464161367336157327725225776453622341377333231374316232621566251325565422145215636552654722641772747422736546343227325711275326513566651636563726157657172633473761567753631334151746146233664273351366552715312426444376566115444573567762423765623353233754621311556645721321223451175373765116373161753225237516725566155677427745245457214365267146755634577674511366321757676613577262743722314433464562641442713641246442712466725315673746151344562337641176172544434622546714472736622133142227772565642543212416271515713244244414177465176456377561452616423175514463374242273253327572434744616364625451761316657737174617262732534262461433317314323615735342434164323466726767312723617435511227652222724623764267641515466517574717111674272727615176646427566477321412222335335236123676556516531711124251723556557241736617564754167515521715773117224724163467267252134245135345467771471756176723337663466223153153324422423435152757335351776375636311553115614722765514773533326261346641533324422313673157422331374361354577243375756375336563533353517356214655442212636725211647112231261766433654161653414667611125145234171366715172454142143356253777527546456277556163376644553163755723672611756575725723572117426227527612771641353265445757731544635726226313462111575362466444136731653514253454543372641415722735123475122472255516762244157252164435146426554434334562266224323166514555344626453131351362725344214553527113167313542667173626347126571473112254637727737322256262731112413531313274317432647575677111252545676127661725211262662764123477267112361364714233433641463623651672122352654376743241416672366466671226374644642376337137457216215327161566454513436551416541352215334423451742326364546422651113536311747243475233617543127247534464567474135561352346642656731477156226723422647773657146642113121143646377463574752176774216422625111753712451267376375726571753565672374441552422441354233242521327447775262524772226542256347461645556414556357461445563337217463157611477334213347126452312241666567737663474151752726267525675563567666237634632144162234723473151737743635333657256512274644161265373666522716145615145622331541277556431742555447164655271466417565331535622456475773724752633612345411114451332141333742134417643515636375422525762356472243137571464424166452351576356613136177347171421376524765533523145746713614156176761351134416723631521112527446335474471152753447422534725673635576247364572235111375667667253133651516267514414554353342367664253244262143414263627364622611435663212426771536722751433725167747251434444426422736112475223211137313667431414517422762513145261111317443514265347441622335744756116244525244677744735252155553364317763577177275777635733413741312412161111241632714671352555527161477417625771263542672147731751711763154565575762452567553651753151456234624333671267136434632157224141534177471617734677263567413227263714764155141541467737171313443154454152776243422424325567743441126435644562123366732511425152264147525263515234746227272127247753744574745567155117246347465453666335143511637357373347417146445417215666652611651375446364241672732412316612716136664432255246352614255235336142122474712637574165513237163676321471172466435145627352262462314553662242175712514632147325456133422736246631221615722143622525177474311314336426331545237422122273544565322174121374217161464714361636571712323563175273353744562766645746111667216637365572152341136733655733765757117657764232455342641545253642652532631464641575762236644442537123277347633723622145133567153755476444336742324641554134151556327164527533666352431235542627542661233375575432774721476757745134356577461323624416666454447263511571647672374136714662246365746725273373423245747437653521315321147477743377274347246427562414421572577136246574517562542113555746216131746736421467634156424327131644147142674742746443326741644147445461752456752727351245243547615353561736635237174312136524415354643756543467316737344337661536224611475734774671646461341423456731171675315176172737775241515421521622443244763257366173264135217272536164462127747656175671312342536555225537434422342222445522174651574441423766332664222614714512753427453163626214535716426111476741626325521532224136761711741646747713454641752474464564562156663653222615774353723511271476365753375475366124337717237211247735365145575477244244367421535542361374755534562315754725772567636156555237727147645347247427432336224647742656753577524577453575527214217516473754137611656145627741473544315723435516614422314371551126567353535317261742163525772115773722275136155241561152642164653255415222736554634742236545134552412235331315112577133177513361423746572534444624536137121447533727617264542225777713624751734446431541234347147141422127324767733271234662716612654276232637744355411271361253442262716211276653313334362571756366467212433227652115563734242762541652725246325446124537244434617776177625656323134671724577172171622614372333756547553123243552535736566733327265253476122467753467446233566626543223725265263443477324774566343554256765475151327462763342316564211271741557523652261435655544355576613761653131456422227173432372164462666212357213445556111352672241437242576631215762514733322546711146226123343743333636171266267363126121445753376573523653561411132155313722352132573717456537644252174516644157431641717763157416725377374623756152342251456537322263223724212717354662737722755273436127457752717577674666154514261763741146447411517277726366126134532557413575547657561311333347713277132511476365333575641265167526432624153722565136624744563444311573217513761673776474153427151237462644253354753623332664612636714272627165462154326516266453454114366375754353724664614561127531266227725454656346721476511665614626621456753711624765757135636322174343257652734443337244121762112636154233447723346462275273515771776523167762326265476345716516626571171276331357131654555437231111327347313341453641327254276421552517531274241526761717547472556131124133551744732144717767335352453166545551245551163271235752226635513367525374472132265763315262143472544373654267425234455314522161437771457177242165444314765275437346475426333432316737335266722156126761624171432337364222124332244243234755117553412723226661216523255652464441672714446346466441665562122555636147514541316164353141442517413211351627157666325531675157127652677173771167132675156774615773173274413423547137636526127637157567131563251253237722724627744112725215642666173214477171114416721542226514535746525425647221113277422314751466347113761722134464327667476434377411121113326764437327466232562634745257473371154217256762351554357764145376523233152151217364613622445175656173621727251111573176342741636657252355362413464674421635122111736264723263643333716711624125131657352671275621123733216521445443561752111764176362774566722576765254375564215133343723625165763522252742552267623226517236135476735342417735111433374236141612775521773775576641272624437631242713213414265152373454231235441543154436145553174351165311746124521375212171371736245166263115461617442641717174731536555167745127163351452563266352227137733546564213361431166613235351245633472224552626745626353171235117351663251445442234152563525445414564213447124347756325571334274664474642664327335267741274735513153541736452425243347357742414722416472451622346613637735217623263134311464721712215312234135444751421657263453615536653476142641172361417646246113717341164457561616741136663473775121146474543545552666444725434135243122577265643131715511263575423635225134632255356121336527451754566413165224751773127712657145534476176631235526147142326345121667466353416351175212436352763753621657121747157772234763252547741246361564673674136536144332347573531516367767372355163426754643216456326326445764573246735321641517532374152741331756662525512712756317135342414523471763445645154126122655117671132247675372327632534722633523646763143513135137214616162443731736354735332735665257157333737723667462116371171735134776473365564623743674113117723323353513371754261651352773675337656237476675334422561661367214312136276166622355644743262224655271717736521167653356676221517326321413375574472137127132324245271232572343723136257354425142752116355672214521345464245753141463221712232675641577124622241416631732354654347311422224457422324427555233656721763315763225367622777632131723723354252665423425626613115317622267515765646171772653274735736246336136523525634123542346741764527543424171563316573126623133525572154665654316155571562266551331535235723364212152122442327452426352144512243562614251413351624661116651165535635352524163155445655534553427124752324724341115564451737361314721244746463614464732235165336631155552432712541365472211134737145514156366444762542652176472515267776626572211565754373233324243354247126451436335165572134562126553455424477433342122325615716654223765445471745247312272714772524133666537534452322642252552125537237274256525767265412561113676521637256247747155626275227577562646764527533532433344167256125312372663747333565222731656672434765244641573762624117115164441136654237321626271512523442726132727444475561411552744372514427622756325275255224432151442714715273735655363276752261426521221632335122657211216334566357463565722533622754276741417446414674575742344652362155337464245735425221456153411531364245772575347171337155516762131566355545473312436554235225347536464131762322676544376722566631416133223455746524244156435321553565717455142735451777643475663132744672427712457557554135633136433122475367744623762474166573446661222151745536246316635675153151263512616353376137123572421735165436616455115721733324667674412266141125636541544276565654225544357553457424577217176763416363632777455416766721141647377335622121156617616421534527467423315437645527612443637213162245675442435227112256632664272535216153226141142371275454115367212737362375521152272641452217242435474533316524133231376511644117651344715556162576646611674316414441232726746327114776166537467244361463561312334733642534664711531577246271543137434726576176353532457217454761744346327137175442627657617315414147712625646474676653755617657256266452245225614612317277265374123762217741443233465314422353754464525422676212451112665212521357641422672523777212411131223252235316516761361413655752173421545416367365434675363267377743137572437467243634672132161256572642725163227415264477526645624112224723335516226765631535227621142645322162115674462544277362417774426644245625374652321347572471254137664446217775136353444524732346334162124723626445122564251535471771313624376154765335664636575676731222643561376133732336275176662634222512552465157322153752532134447611166345764716233537714326764756276722532122156331332764713311331143335651156712747357657212446452126613112624232256154165342117422212624215537756753564217511654214515227113227215555215377465127577432333564716475127747617622572535171557351217732737137223372665364452477511525222134157411566216764233215377712216623775155716716331741477472733636336234734635461555635716223526453376762455334423226117741322267437337676422165526327333455714746172152626335717643775253153447467676171625436433724451756424553443352445221753365634131173542126454721433631377273575626374526465156333536766716277151722364332751775261257751777617712241675173364112241246446527521755245764334636362326273245221236743553375671527653512726532765662346576266342346721133126314113337377126164217323337631562373636655777616341472745631117341633531431522357416723475627644631223457421755631622262154241535656214166254157153273521134176754515133761566614143414431257146511334632622672316651433541654636662456657131473352324777156653541116674711257476547252461245433634534235244123711136364312164351734557375626317632452213431277273557611312334217465717254463423111162232456271157751115555127421631743321232457355566444255237212327553717244323162626454166221363551143776522747343377777722767444652161135251274644635637145223772217424141172656343737753676376427572176236534351665573272733715654165711664322471262522125415173613414672434575724277412254774455737336662352754514445772372737544566545613172562246736275462556235773663214553717674533412667573412712332711473474766321627511253553717317457737336362455446664141532464433435567427576353232755732372145317767123212741374662415645751574612625257554515364434237635116477772511475147666252765161672433532113163711771525123532712256442645263564654647451744345454327525434634322716655752415244517571335137463773661466536564146126161664724233512752636515321144752157644276467765242133666112411715113423373411326442727731163365175541111352373347453545765224634372512551621245213577367712516256427575766713645234353264546363134115714515163515333653327255577321713463273563216665237256625757261526236475736725441456261777725777723764577462147315234423335135137426277157354325131564726542456521431547426257164143545433761532776264135653753416753536146121432441764563262432331624531344527155263733352425752144527755436445153557775257765162654552225252777244345763163612767455671425615642476275524775314351152133725513752673365775536374572725426277576165434234127156646141674534624523476131533542425432623216617352522425577245421265546171651726317452242367132267745644743135666744167317234352447133631244743636346376412251314437714731544727754524576115157623625321475717116672462364112164357112242763174763323661273572246267315623333743465653113354671516661564717414664542763437717772167237647511277645243426417537746162145137251244672235215262266115311124243261647273623542661561433555261477654575777444643733276543272352331111627665352755374242572147373414616765533721641366555653712253744544317621777135774673173433137523156747256162663464675331543526233731757666366725524251335717533236434343372265651465622514577714757423753213167146131273652664352334622252472317213344523731457672375413743213234551234446614775224674362622134613747525325115737337166341664466662633375127713766166734123452451555316131133441341333656333572646417423536774141265662415154352223365631631256264662233641477532151754731265715575731314545537645743545565465336741173661344347135471361726553467667255223656162543573674643221321437361546345621111361155511642175733777634516637776124666753253765455357132725624547235733452657416353467552355121753566124313364113551436763475413161172634153673162344134415365573614267676166514737443125643424114634524444325617664375262444155632315151472363263733542116524417641466446766324527163314257722726256732721562344364724453556761717512616675232557342121367376367331633532356555571114344273233167353545165652322543377127333731657143753447513177437531574761267214672146231557533577747356516436716234161135127411575434474247742664373317222372552325755363476576226666522152336567356226466435361157121346472361417421371334152271214447427646727663122246654214226572633621424322725351147557313172355747213554147574771177121437675572613377674655465674617152752642233452452257737617317316625112336575163421514515555575557271423313122464546126564454343262334165477636314115776334751317554253722715736351342216625747735342754245752717143355357754757425612327236437334673531435233114774237243116143634127262676227717543661172676363664522773735727713362472573522112563174567263263523753253445645124433173123451133522741424111723377777314561774457754716527613252241263651751435324735716167315523752241446411354767467467427274472736763644112517555614666727456663661255766157135627315317345343531147646544657341313243177644236533436414772746266473113277632576152114613117637616221531523174722334635346342324345432414135647264556323157411756612163427373223762723242113427471677251372633224326643774445576756115345431144475463773356236725746564427554224154454713636542345324777744555374142633226114257113612626275235641224537451115127512764623537223356133171221744114222615351313641543164116233635266657315546142211626421253637366345216163676237211254312765634652473211562474426443274464361156227647136267621476136616335353316273275134716256263753676444114733254766471337346554755733343746465273244366434211726412645251121557273633665226337261355213326413342736315741773732161772235276442745667573664167475576733544427523423372751411441341243521253236677146346526654711145536644171657774747522411213217762557367366456763155436646171271555524553511427644577475414534513374753324477473154113545331713352247573232372716321776531732366474553716236521462473465551771651227531453425475744272751251247461344323766635323134341465513541616357766542315622266425116564655523621576627522641573424274661444725266752744221317642373761234637545344551274324422552142264747624451146256522353441756274572664242457476457514167265116575755412757621456337156315126616523454642643772656673425331232713441746222623127677352214337542276213235527232222267571244227347267414366472624152123141463536545626365235327144447764233525363266136652424421265274621273133551565352415251217121523632155423662327672521541554537123331213473734134315462641413335652772352566363624563767733465364563121477325721471176112341111577172242175767747746747215415475475622742632645643551561423272742435742135322217654642175435723375773225757217266654255637533773663214113233362347655352435744334755567113442667655534666563236734514525162357246711311361614521362144653711135746217336531212457555333634741555576543415647774161735222725724564447621576416724211142235146425163356436311123645752276672754464232776721722327225344345533213625224116121464415251676452773275137542465634275112273751342663475553131625335236467674131227471347562754577325364363166322371526414671352425154523132165224467437721247511326762325623354623766777724115147157472165422125414374416121644762122227662314765425257712165573716241347562371753662572772663363221355345565672251537132321557263321255644334551644157212371326651717664336715171626637166221121321317744655466647544563476727743114271567425323367745235126124444255443376122551555412113134677416153513426615763634755361767122131412755736435722427256265377612653752555411223555462422252133422127275135261637315641757173555667517424254337277155353274461347332365122446576614332763331576533172574151722513347645272451433644124532635227453331261335462155571254557462341775113147716125774722517657113172623121211734634346527614626137421142155367653377262353734751632736355114172432561727233722114411345156567734372515437143244615643551531434755335171274431123627365442514223765676716462574275225772253715315165756625215525331141256646517316725517427372745251277265145276162753626647153672122152576316224413715562516216411616176726752514114675745766747232141754742124624314722532445457674772576721314135637774147525574315464466527142625716434375166627567135111124425337162632342343313237731753426341266452626253673136123227573421456424716634214536442765154326375346151134555337175473172644674342256252737454474244665161642375523452655734474211516436413653526175373275545261342315156443136757476137615434561712532415122716167172773657325537614756671113113714323717633576677474473424725326651342455745645714445117521463441476734441225625463275161326754734721574517413251512331364252565357336121151417551714753511676435571473522752141233641221311255624175547656263216464625747264667476254253172523473255162772571641566314123276646254772313463547736677413133716635244564144432436426457662254241664455372735217152721777325152142621457644364412614175147644152444511667227777357761464557365543233412344243162272251537667444776331475113632752276453352226525542611423627125345313731153744622113366657672447277464571216511133461457331674533673364475367513751216343334626376746416346317524634661224575546453323241111763357145266657425363726343444643111114632621662531233767424712233345721313412576712411444245467135547671343632423664741454135337713714247423665265652737642475477711426477777536324536524154526536772543652635677253225724517372362547734327117144577312753723241536533266376413164724323624142334371637566421746541274655463636476563531574517464514172742436365344537677462331773423626161131656322423551613722464667517712216133414651653355615374465377411334665352551115766527357116766123511337625635525511536437446461652126127524477257333276244114371522423514145772134445373114444415761431256666171645516126552235133167225774724112773574551274617227231741444164354644222432133155172366544162521215537164416744444774642251434644331447772715563352746355331116452426437541416654161126653654632114167754215163672614671171653113511526247756346537317337426746336572536534461454476442475471344335511464134261541315656327555111662741344674167131716641717421617174142631346462473467561523624725342436572532771347326372663465122365254437537765617651157316211551265732716125527576513654475543572414676427361242232416257634314454245216255473615765774717542127654366113754236744656367333456533262113571144642421461324573546775127461514371654112254645113173514663655324422124341724635155347126574245677113646751545252125137177515465417675574751476611523524615345217367757345424326462154634372222242157225676421577624411247363677735156655531671663434457517761174523577364454533267644736735746531771136575262622675472274711573614727176636727121757171772162362175714767673714722143134543612222623433323714527134451125417522123456722222775717356461233226437174775121427212237126342564321347131733774125342263217366137164267353564216734164474344156365725642322142135544125652376145731434777314517375711465736533445412271322714134744714676553136711147263455167455165666535151743756174533242311137725671416513221727515732374426421171452343754767132545176457411542777324513321334421227776747134343366751274347711134244741755321756755764432433547363767166627735723523366432627565254373166262174347617554757645563224633563163631521665374277167472276555765357433423353113121172212177676533477153337532244355676715116751431337762645162626417211712617163226215472231424354376411713711242263634251223651311252244444571117374211344623763212536173642643613243467162351771344253537134435652131147474515632367644647313261414631561442145473361165135455537322412547765525374373727666442373634112212665315146451447224345642443764254714412357415426264761245434252554335673645422237646752536265442216766363726152346134411336713323123141454271424331762725725341662377444763745571617222725551747271135634151742724145347115312421445222646753345662325237157234477213377364512462643577576631267321561521313553656326276762222354533524645324621643563473624742415777575237612716366636227625166756726451553743612475426317127726721567744242643213745617721624516676773536623234622372215467152743542124777433226347617447455652146457251234546315275342271666213741166213761632342715226326236444643564154246474514336257763746324612421745614275637654664261133435667764456115611667347156272544333432267711612671634653573657423676216217361561745442713311354733663475444633621564776337565252641221755452634673412246325244421552647524711312754217152667233317415566357411676321445624547771141621645726117741715671354364412663641333355263474254313133413663351523252617357715335732212572726772417677646746511474524174217277347341336132713152635356776717653711255771372577173621537321227621155554615265166467534576631524643511312727645424577256142335731373435637515561147156163427334563237622714552565674513244311657273256367755123723514722552737656265124721644156536232526712771731543255343762634661744634145242227655571111315764251545362216332226177211342747455543461572435562461313436542521464623113366135274445612577761221623334662616437114774255164217272636215575443353743571411732752235167646472741446715256252351675474367231544611473311247575565326756712766557636251414354143675574375614553546475536175612162752511373651235175541561362412716157377576511432126366436666766675745615577753275225267756555555341233114112432153674562547225761214616217543661351641125131636767541361447137375462573226313212165335461465424263444765726347466331771147712431775475177125774527727144136472512453263276175667563571215245427675224455456144224674735442215164727375234747473164656434645475267237143447517137514556245614542454452735716132773557515275553737466573374276477756136646525727167756215746517675417364347142141156777674665545316355112725333547441547225772543571312514447613661634666557745415446721356351656743431417513345112774143667765661245415366723634735442631737437644415354256633346273376572556442774532251244571511251131475242552345573637217461676721161626175333213576537575756562671163173737351731714663562441742767377712757153254643322576763172132135432341776464716377276426742366732377566534246166777753766314111357346113636555366454662614416444477411665533372257737327761636476331526373634761165711717113143717152722477216424226221133357747746142421443315137151375542446533451624167332235153273751334121576652261334441166626225342163243222457474241361143714432741264617745125543763111371754347417267253776542152362523521266236245163564441766125277443671523441267546213372375724772272244621146732754423543346157366534226224131435761344572517446212724556351333123247747211256117313671527652365612676637145656627276441346575366557342367256151717645712662422467335665722631131135735134475655621571213516622634526333712677471542674165747243626643154444373451742361174212564441766422163431625165164625175443552324632176361777577362172746223565251461427537511547767254115464212451433576551545644653264144564724176565534537415772232736315722341217174557511311643237757663727342361646627761144561467655161216345441424332447236276254163275731614747513767773713647447677514766362433141232544747175116756544313567163327564267377171716554315753773244233743173213315173424233524141573161361623345154437253434742131431571672245654326344517325427574764155461257613657322354117777415123752211313567713247553564624545154475525114215423411777473741655425117612242115461561631146235166577662125327276355431645472177167157451323253171755243612733152257124257674225423146441743357566412247226652426633527714251321371426352356512476157752476432652125642716751332131236375352541152647257266213437444213151335443737755764724471335665274336163357454154665424441146756313231667536255534466724147146771224413575324166536432736153153364746225156466452226433241465615571433252221256477443761747541322565173224343213347637144722254332131464217441165252255661777342555724336512511327634533543567745656313363435617564237523273271675626354622572457214267576717116661526222373652772317471272213262255277547146335577636666227537764575663717533323376275226171117671556251143575135756562473624613162111134314121715775346537222637131134675337521331165141174357253417777633516642777675615343362743643726211176475555257123443756243645576676546325142755313627444742521421375237134441113374342135221263413245152616637276743267711141411636554736531562555174714221272467344632525664743652244777226465321125376166463762226627541427162375134743123311543435413554663224637435646321574741611266665477773136533564534331322542457111212424461156523266432717254375417661321435421651635735644374246225266433265464456141146616232245675741262137414342557337262517376162222345416252526453562742673523734272742661132111367565764347554373471766213524564543242776664224675615626261647324652152737553152733525444632653241556653727245552133676263541275243141444572346552232261456566314721265545772657164314441326261752262756445634643373641714743742352547424311615236532744431734262447472242324167634247512626434612552766313711115532513174741531626235177372372765236557145122324136736765226425342237346261412734721637452435352615651467527634436622677753571763647626672775341334523521771217465461447657415641222675676121261636764762724511533114615527646621631336542112276617271653547543626641636156477261371477164737322127373121152117237377376612134246376622726131143214335236433166717711214126234664416343276524526417621253161547121145565436271153155362771756771115664437447466713633143351241462252524571557452135353517645773223375744222376473242434421121553713527343564545161424175111365577262326576343761124433345414273212443432357557661344712442171424667242567554444661472746346521171735214271645444514727755631132235757477673432124516623475512625434374364726142523315654525727673333762456473555126573366772151475173452313651472452112111235416117564115313463522132344366237251226741563741414537754524541465617674154367531114223664237271171262561236172223734233667727721246426443362515122634222213326333215153312664415562114436151615236153414774434324546322127321155663343744517242626447663635132532155552124241543411571753476751267755267615762223462571157155315213142233621244423673721126741672175311773711562153454665563543163624615227416714251632521115413775477233263155573767142154625315256111536145626225341657351273622643627634436262736223351361764242633727453412675426143213412146341542611251432115613334566724541636216434561111511744534427173376126163643643634132674457361511434442727314716313674341276361534117412443743714465711741711154676546113421721451153366561616366153174535531776124462442444473311637214267272715544711356616341543663214323534312713131722657624273634277653373564117112471364175561121275446126436447777746467136247367135647513456567665533447273223346233115462451547223661511242617524154524152237162441432477752725332113613225243411655734142344111321722235761332511225642277511633734261671124376332135345336423625455634747471243556373146771273151745442313446113654351162313737734571133317312617435554725312324165211552572764726525127657121621351527716216612553376274315376544726726557431627367127441312265661553541614676725637674735243742127563565354356152142545363666112152547275623637143421146525446554631767462145762524541424277246653741716224133476742125554562556154156171524263761272657336524322141652154462757116314341212755262261365635134145116632754353173321457354767474215111317135445776254172511562272714154777644344251672254222443145443754637355173363477233371774631235531566476725375412751761444567434423463466126767166375342121255637277636451341356376742355373266276273137274423364261527256575426446752611454122441533451441214151657251326127465641216462673311411435567412541236351226417731213246714156243467424531411514525241743551475154727574545625311725223517747546341327775561321324235525523571435467467346371543167741632272255124713737677745244242224544172574214627517614441256411767476767421274266257615132774174753743174333652567561474774415722415636353747227116347136617372454357314512535555413427217332466134265637712457322674714741221253561444456735161267752466471425114252727513322441447625456531343171363344776343317361131124367577636162663517141277324335754133125644243513431541513237135431643537353535177264454171174641735221246422132262746566566353356161276157274533727775665623247166317126757532124734512414631651672624532475611414775336732226317573266426227361772546641754725176424377233361362565341647253163635465572721267447214471526735231116557152271135166536571375237241137734344361277742732272725131354256613352463376512133334741276615615343512742722325561374425416167734414622724347735255737461371364635426737355461316171137267236632415377446275346355462512544547177537674424141116755237414151251244224666414525424241311737156274736435466142614347362565472423736661437354646262322572232614117717243111664523145235352543365255213633713565163625543137376124556241641227727321176512542464251766753274277242343214452627336534433653474427155367146231365131663172552234332272176712151654634354641164627146257262416663267634327526271316245373435313643646277352212443461227674336122375236264325572232365354616521651564473145634161327154445426515773444141545353414512266721712571236554121576757522147743753344557445747111725717125212421264531674472513516416432144315334117176637111472333316513154727321421325235416543163653361663734167231765625411611117545735237546662777551432623145732626343331327527614147332637543135152426461534425223356653547752551723762145427143472451644653231234634732473521767327314171424551335627177342551673544345516164327721127165332413766524376316741653155164531112371363133764562761376126512512653172515214762152322224764256555176447277566115336441141676654373131147727741465433451551446176311526632735174631217365431331273364367563374162223252615762213442277257727437552766351757361545165223116241236334353561531515325746467275321155614253325577231635573634455563364672235126731135725311666546275676223634547664556411427474325115726323616764352314465436267671374336726515254516154717645626767432324216135477224636713575575441764475311252115671561252131676716456317344654435434652756236137615637573161644571275412236142134516566215312154163633367174477762732653514613323516244164633643257435715475621211145564157555172746556426112244451327726114513121715647662125652725631542334647741634614136715476172265411115172275777412222752773211762162674233633564625223522733142452753366661231532365646243557735123452247364351617474432177273725352577536363465536162371311622341521614444122764514655177361536622773457761251632336157277263154355614522731145361315327255562327272564111214754114157774465736747321631153467272616627566261165311314323572613713774753573712552674436726116327721515275467655255611513334255366341277147144661563644377735465322533557563363543146567454333165342526575225612225274352775214151344224157657163622341532463271225747565453563154417474753262415123162746336544126275762311652555773271243117431361166427515154554215231532576725243125216125413134667733323216634345177171642256644647271423326644553563647264762457577552114171467135432457156324364251572213363267632177275231567326516126454774677216147754144177647462437221627632555543166567465443615721712174342127445415455121421314415624462773647521356271252412154757315515213365433454471552261555437377232471244572231427645623575436643723137526753215172554245717765357574456443164664153676376466334314652526126614232522462432366616473656571363726372547213541353213672542711312242437342716154466746224424445761245361563517246743655327675475631551537217224131426252342221725763156167723437571536674125327736433343345711652136735447372314251475143534623137642427541772416666573157452766752123171171353152122541427725513136555665623332454721172763544257744523325742227521631146414232326777443246352333327533575137352153226444462514166742322135774312724767426511211124367562372742145554617551673725555434665173427174655633734436274647447347571621316172474131762466323467441533564564143657656724667226253346534274511276254165554576426752645455236257174614562242113721124653575534454235674132234635657356536472256662453255412765663631515464673662737346216316175467632372161341553617621662572357434765115333327622774164344471555345166613146241331137454234423246756647265171243355323756517735744631557261374542475112754156562245333361322716246757255653542166723241413774631626545434121437222647727327613115173747551613646233236351252674424721675767454317732762111471742544645553422253365454766725732317173657332451671567355142754116136314436614715763721645734546351323757747541351753136633416254475713711154322421724727257114654555266265717341354146265115674462371136721666723441266717511257311533426675571145264265247364336311752541222435154614427356721551546734265432331121463422235312577474712664727723162424757471762131423522224326646121637771176211445636151574461314577566517437575367175365725166546415476333423241361126712532576351221265537155273426427773243212323553227324155427471317724446577254677543251123754134227774544613464447776171516132655564152543772457541352332256334273527664275453527546613227162473764144574251632677617123223563772317166414517171761172425774265435344226666617626136311171537464132663553444545452473613776746451546225472266133364565255152727224737517135732462757575423515527333225231146316413574346527413436162615712553324714541434575151166267152337673473257323774513612547445612672143461424124564766232217111361674144315617266774611242253373462216531313341247632156313634163423476427664117273471231635245416146612611311432612135311745516314214515536663763316131235176751471753645536146477323457251755115313671454361332263647556563473245525564233476525212367156417133625515131471363224443451323236432272716756216527275544775312274425626534565431467244553415536271174651337264342477144415361222322117352262635365473143613125361572437657142712642157447163523763245233141442535734117227511711325141454512774611213334315416642356524316475265426653413355243571343113645474345332573231764235453173451232676322673235333167635135514537737551152475337146733555327713126114321572334331334511454464176616442521655321464736273541352342376561757422557373114371636163314373361432521547142412675514155475744176352535642223314155663442236657625761566777331657446612236113774674752542675253127611235157457247745333532241653744277674743666654317664121175514133223617217276627725446457331745366667611631434325761747772117547525616162144566474671671221276161653563776366326115276311531357546135425363125726635471554632575511263722344245122772167543643515634336572227643144452426733474171523564116173427165321333764374556227627631173122655717316756533456332335446741145747771616552121755117653651665472462653622144143554551236326165345623276312116375663177731657473265575436751771567167764252133552342125723722272311421746362531675277711333652174236242267343444354256411715315742556115152416755472354344214111377277725277264654171446271572732763765524634231742226135225422627236717474126334645661422254446561363342165721426175157475242112351625324125251177624664521723257353174427345355467165636632351426637312456224763612464467526757653624162713473764133672664453447132647737411176522271467145422435621734114115777217467373145312773265575376716721676626232774213522372132124637726611544154474746276412736321223215361776446243163735237761224535355555422347556252715714235611547225167315473232332233656447514546365327151514657763341314476763722454563633231137465436267265661737517774426431511243772131617723664574155632172127537642134725475166663555666172255251564175736455243512471412547366535145642621344726277341634663446354242333577372223166353731315143661734314245557776624231461216566661323746525425311735763115163753715213255737661174573214622311622653212124174213612123525157152351671772413144325641323122247574553664746242715471543166373342131511124753265736222437351726232474526334752455361653772175621277562525213541411465166377763222377653413751121161661637547751372451721326421656146122715113253422424665432436432245356261415167233621555637573127764614665514631133311114154476375267567351655161331443151532462311351427424123346423732114353414652714665371736571273325144425113324722653756537651322127463215646331627234111177141343323554347374477312123234137365731317744665435377621255667617524745633432315746747255654756127634327564714622535644341135652634366455267643135613357453361544314172711716222113452411156132655264564565427622377541547363667326165654435411757625773633122263112661423175162245754341764113433731164463212536245772161472145357465225556721646335544623121756635557225226412246724415131226123577533354126532545127722145157341323541364141424235241565373326347735155571534366774253672245263366774464637356367615377633443763573252545563422524354247514173364672165644226462217645526127665266374262714762274267742664543462233752253561173531525624477746263572627176317653646447176274123574665716646525223166775726432122471112777552414614674577352453714135324212462144634275244521213625451212557175452121545117342635513624163273742254347152115212153455775325621136452577612642151316116657442545524764756333441572414471455643414123622446613774255715244131312123576743646255613374212635656217651554147665456115447622421431427575173272757562445437672145317367117531747735362735136343174133143116212124643357253717437152356761611732537154213474557465734623675111365314124364142227613375675576745415711451154316377637531471366136747274223543513516662732162615621631443131513753763257575677452654721324564713411136715675642731433575145556127223133624417724166336143721533656174565237431747774627213376765175464326253466467152174435443344124446465744713711327674441166667245214671312672625725463671461516347721762352555451317517766241174771277335612341462354442356455166176242622267237564131467235154675611764323245235732262124622312262272524141665572612223615147456516771414674353454676167714742723632714563122517266774116472715377677246662742667671471242343762152717677114313362442457623233537731121121462712355633534156323436641144212424752435727426467743527635356541236473275357126212674667416353416356677444556417677365447366536474374241616647637677444372166746476232333311415314441772412226266721345717747417154355617142761563741633527571627345237144333623236312675564746712626533317563176141231716313314665442172152473376532725565127576444564162342612655151531442523451746556722314663411573637272451565443246667246411577164275553621574127717725776756775336113476446251361265756654555227121551436345574634421326774535537726772727477262545617617362156742751354235245521211263232537444742761423236671133253575751725413621673216277413637221716122754256347777711643246361471323612336374265377455711641611142333556516326145123614777261265437676666522347152544245253312254146144717355273546274622252567214111623751517165714577735273224746122427577616526376262611334147753216176261243162721123446153157472322242456655167311656555773254475632161757575536724663314721352256454563433225227777247743211325174643217642554544672715227251761465127713261746345635541466676756657552277375141724671757537444222217327447363456146233217263616136771156774442346362725733425237241346146523167716317724456212427464462253663664514626474436561646216435123473765567431373161146166733556217516375341371617124132636324144126755513653744666363667523146652551332636233631567156131345243512544637643346515633436563226661735431526143725517154723355345442315361366562452567153522455223343213233221367435564136274121456116443656116751646253214736775515552247767566752711422124624576463671666655564164236442143624462141221127765374721654772463122246453464464224736715525173475631667146515231633445231631212614164271163676772437263446467667476127326527416753711245225123274115247222273272513741574327746367274127357771253657136471374234244667534635763441456416456273526276263666474732266721677636112132152341217722342355545537432744242416631643267415152634771164422773756142351322237324625634416675474211456622134157652355736536466117165156273727176445131123673573633441377671712645362575174366151325565655166364124375774543351514372151676524246666377154312553113212411362175175745152412557252513663612232743557354525714733115573115321545123157522423137347121431253346142557533175311454366522547773711356242542313447217151326446641176633116347724145753226252757157142363211223737546161716325323431756211442745122631632663435162151611765251754257343533215714333313521236435162726413634346661332673626673511623654241614514636216611612164265654471562253545457242423542367765434614122415365321463757276216751443266327257711167565476426435671231763122113321267141724657341663663174216531667715171567533512271621452346424434344324377562733214352516362144612444173262374516354535475513373437756364614416234717646331651125132762553213147457535561656772515114362624322276352132126737377721441733455716634251363375225231414611267751745462512131554417457752267275473152423536714445473527136166727344576162663436211673616515527463732762257434455635115771553532746334452634312166711621666352555321166353114233234226326254422253363327521354667312243161543762437661753772551612736356443742215174372711167361454322275672713634274416525553611354573364666241662322115662364522113541237753243466711467627471623276223227554124114154157716271511443766153674277624333235265337475764661142671563326652367222271667447664164152515373542654114273241321746465735576762241751372736162165124511477366624711142345254473376757136165147651666214751417147655661577424371577422726111226213671152723463644776112112124756356464656236513374225447663377225163541464455716421366265514545254532672337142725143763444721656322422656773265111571756551645671142441357616427671716655652542557115233323276256356345133416665616443766415343271234741312372173647345217644164377775746367476764621531525344765766672521461451153147122765554353132424653721227534556654542261613754533145351244613512155414465773565162721244734415524365745645133752364312615446332661574252755462612332624377324512761576675353634777353612153424524675555223526335253465662325177416255717273125754222117353154234243755714427124656151216634347775273674436467244262414277726625555155522467575234565215271774651457332511652475743675524634332561424564552712626127572366111257222767466666152754644272713747162262347137744253657261552775175415632735142576155713262372271653445552356626623335765224435533766654112174657224112533267662262267572712571532143327747735354572662173452436742414317473132523172222561133631161432572225577771222572574177377454644165745755177361432252373242736356354751672737114433653117474352171416565761772456734344315142343423373173214461254612453366525266416727247625744335573232124633575476434426323156731353574351522362235711642257244412661425571641165665753211145576756137711114213712417731144635534346441551172464646652155632325762637676127476764552766743175614261367113143142531636624236726456576626142546732134117523436373254136754337134436236222554515233646654211334171635656744536342647546376432232235613611273127315361221175212445235527556252322762273413245471234116773722155353614345652323455257157442667525715533321463637546543511727162674446772251453531414767161166456723723231216671633531451561526431624351412362465731217255231163366713154314553346567575337457775615213645322666544515451516416271122526252447334115543735576527531173632166132532317713573454341652244365271464725726475644472657165643554532135736775672262447457143512165317124715665123371236343625235775721511277113433565422714521231142214444545112361133344717744277311166632344564676433135243652624132615251641231273517334621714517677415611734153535461263263745634777657754361736614623252545432142121225565162653445764341775221433456344154342626314132143664227575432131475656531333542747553633467673143631413535213426474151427317735211362535555717667466631563655475433626475377376345321317575336712413453214353217743163743667471642377631256567663212515275345432663656714663553114365115732514764361262641437637476311715166676335454652114121261212222722622546325713135556665777241443736223155656163647546457363441735656165752761266243177147413526215134631121446252663777641222144557252364431257535736123144451737655214656775651554367774442655743575363354752221567657224312117566315633241453443427453125445314356232665724377533611214757512356163342245515662353463152144372317645153643431567726445652311441545354741375565467344232473441635553161312251631574321451115277756464426634731127441616717541435474257734436531624716517663647417235141625472663255136115571553675313574344523267773514475443743664144672355663753344773551165445261551116576175422233621726573221377511562311754377561554435756216267446517524345333522265662523442477347331766622363572361543217557424457667551777251517674236274245624713767761726261167614444262155445754152165175124275553371416154651357676476211742637251231237736274374155776773256373525652666576235642332343611441724623211761524411755273573741142545756145437777265625166572677144652576233232251733753532721146524775727244372415774341453757643344137245574746545372451747124357672716476274767521166363276545644135765725315477616536165153546352262163525374366343262161355122432537223663432457715115234745222365421627362531431351114572323653416511637714746114324674247534216171154164472474125625443325146766164412261522244737563736534442442722341534741534523225771364522723262344142226777312712251733136646712437641451473615232236441436236473366545674276613236763236153123453536237746647162672226234546114357272176754152252474327774516244265515423731246327741752433456276147512714232173771215457626545552433734367577267227776167755634116473241212222254153671777552273132456677713231546146345323542146415365267513771615551273656274235656515466156147514654232262575372142622537333315612346655226666274565647615247137373262115173613353251242766673752412523323624343567714115715213543145467652476665757571271722316512441446677677416456515611132123352425476466336375146646153264622774654513457476215272277426122312716351636777727447667623645767357125121117773737736111414273122143754164264551563365445256471626224533361647726445122741511772515272637113125663414772173162554214376421723523174574175323662323164726122573123562373736426652367763574645366656277614566554673671161666525513434525174651442642742241723674247512433712167343651765267541275257512274412447626135544611741576646777551115277713561163367546324334212333153154634652221265131654317442667215762366671137643722543417677632522757731733221534611362462364637734747144576543134262537665442346733741527575122451623722657224131545717767563637723335414447252235726125174577672134776353361514327333143523473526316255515676432364662333513276727746637326352421721345635344157155731762711354465513375122657755561571112241517472632454632731526167177424415564746124617714165765176752423312676612312424123732632436711233422424654235541243336612674137313554242775642676332223573316237526342633431627543175455775632513547734266261356655334735621112357462112147165164717523215427754714135433552361761134365746634426241625273442651655473111713356373415336673267254715435426765636376241131447475177632515415177731654166123264674551132572323226274572525244534123236316631162673464731464131543765726573511111467254222735773312213164356476455572214521312643754364122662641427642414454732331167673162346411476657235727363473453672147711252746172514633273541147343345472567466551233543137143177536275443512567514172474422732725636313674254236545774556652153147672362116533326227764662111515614254466442614426417275416471273611467224424177741652524464523225253216751361464543635375756377136461456424453141523262152622125173132674443656732461767262314214617777544142656125235344414146527637574212516531253211643556332325316727211154211643636374131363214725136155667763255275711747352765572516366364622443243341317616375456415245731375622167331312153611553317222253735254117331635137375545451715371136546472676421352136775715536751536327676451517732723424271167253714674632122135427753524524541142433227441654415524165541225442775241174472753634443227343726117743162523727373757371426627442345754326532563167136361153227364262714667157367263223347653632457662457556524552165322411714252342516665447724423265337431156473544643377312755474247222321377665441672632231677225366522541547474675771315375432357122377574444234634175535417636552713752526142645344131672775643154552624641124652476456655453771446547334356144513442447326515762545567236163633161334356237736273763176624111417552217133245154464174775517551636761775322731516117626567455542447647362476546466462431315262536423442622577446326561631551624675243434615652525473556134137426242616477154446175554357172145772154133742426326115444563177661116522715261123135511371577667777753265123126431173332312311322427636351763625746362534165227373457424532225722757233643466535714747422635446545662356535471211616651155732626416644536377521673511615412774646532125255247331621613554753431215426235142715166166544142514645371235743243752771755563745531372325733251656166354134531274335576411637116734563377742162635314345541553347135475413522125666314271346714636567321613135624565214342333635625641632256147425346712246543434212316633447413241742366342714426667454121253517624253726321763762146457576156152567162715123433536565565464411657667172674257532472157627377555554664754472446576725117746735574352761537765646551272376371262521117262372756644674134155274565676514735243137637442751472757531412216733346331276564645752145275536433157623142731416134457267153736335336644746211734361421427622655411365172724127556631162765253723162673274516565552757166714217626216426171166744133142142653545566437451466363115323536715472247713147126146457212576417347575676214335343171223513364412471251712534351672125365635477556564774351616176371141744475552341141466661512443657754435273327425675673644721276374757466733716566246544335466225722662664364254171765312251113625324413243657277316151366411612533214427626757127634664525615162412755156165766743441243735645775213737737435443612745447233624345757143727553245351124131522261755663154142477235247763745354543243567365544557315213521457223551736166642327467272664632544233226145133265243364544246514141574427222542366635413726717534673244165442711663424721621673362717435313573771444147133124463764631471752351525222345557226415272251356474655471636324435327231355312262647417673534111732155113644774367342232515316422527331725525153277322672535466742716111754451761634125567346332534444533171361565211667624541723561354654724163614772765542654234362147532152342143453136315131566772146363431735272526546362442331547476652746477751536564147263447477364672442437524373716735373243373152236573555225425311231465136335661557236757622562726176771645435514636635626775161717516774547421725771453362272373263264651614116526655313633164413121526621332214112733227635216412664555511142562756472364114156344723514621716314354413134632466161431124125277524364517363432231374526242751634474755175447565626371324523727456264674437426111147172555251126136435271154175172213477326347344111622136446157462643674631756476551765731657637124324176375144733223727214276221664214234152665327612544355276365726443261447272374647266725665476343671135166315673722525414163731427524433355154446622354672215247321675124631375367515176327155271367711374534272344265126144654613524744337156474112534547235616267665331346216531714377413314234322254322233126227556631262614257465127353666517556552677762576545261315713563542537621726267734562625415755443716617611622535214577247756623124625726271364276767675512475726411223743213723712671453633435416521134565751353443612315642472255477147656175452743373166327556215313317231765172421631663747671543764127126745377573572766765742442265276113534673153442251765333442172174466767464742261466322667116527176175744547176156117367317253372272626463473311111151712142561722213742412733155252464671251252463117241554162527177471516644173424441516236521637516761654364735463545577562545635635623362756624112573642125622575467725214117522111465611512751537621553264356476546437411626172765353773421377366322362455465775622322665734172725264552327127522144344147666152612357512625616114657355444453743272254535226231735764532261665115433716631665751461333463442263727441434524412662614344627155461436561352124412574337623531477553341666271532122444537214264343516775615772174352134146565212564363254154365732146663532354643261526224144541156755242577264424675636333111226135562632661424713476432154275211766263462524126577334651272113112127476642464433477155375476117323472376436712462461221671612645174343271723471547651162143427147664315427656643632131355611625514335767754752354551627312463255677427416124441226371441527155546677542464142164715763235252737637615253677276517315622456753645646365764775665627423557555131536455254565343225166455342246421371216574442654573432275522363533545535262451137574623465535117575367226464467557142511453115255623646414254141155425455776515377763533242665773535414173165624513176414772573155536346565347112421473773344553436363242775616262232642376753326144562652553463626112243131462316765344412161453363521723273324332167522731116436117122542174647756131335435412214126364513267275177143627457662314253534254274674721212366256571216462217747321723753271237216321271433426542655153474636656612731173446324672317561254143124221431716741331552442666362714436473674572544711366554414615451437711462655356415373744446174246357435524352324753457223743471437414376735267575133155463742275356776572422461174423261464624541442332664124235776236265766545511753243654417171114644443417177366622221751777722416764436355475371612621721123365374131676546466447741134356514455252251726674632636152471262746653161374173666153767341476572377777721532711627236272233212451442553736137332356265521752327574753246261223551377263351623573267525445661335476525154136427746722655454577341323132555526422325414361741176137554631313364427371646733233156235511552277652573776772326534557222417521516177466356571374763674156222222122262711752221626127645561612224343555654776761712116655645251625272651341157262573461246755246667264222241267547715241737565544454175321457425336143257345211657261723277333776673232275627114234237557672163764476637531432265721666565175414165157142226435247236214734575275712716247214742674515327676526331633557572365464736557657642515762247227357135631417514662243641155171745662444516476255462765174775713671756426277224673161771571572163257723753765464615126315356654212325533231771571372242771677322645437754264244475711321511442647374412137655235727163333311474544116232317243156755411752722576116142212227534543274371573753574517627253126662113553733431727462563671124714314773277632733773341531754454716576126713316626144246344172613463416427751633557314251652143523154626734117476527254253466747256651563265335221235663232125154742237657414235461246573616524231455542524247616134174375251775753537722436537554255524343533241425441674561535253625463146453516462543221375132535274412356731517755277441343636466241465467642657317453411174642675645415573657511656221427124225111653532731722127133175217732553731225411513724731251771165332746761541712314711226235355172275114167377422232245262636537177571421357533647275724221264274364437565647334254765427636257676442322126743571117661644662653611244455363733154132337725214515733371247543251565121114534226721352366452777156661772356111622147316155365464244454573324316633654673431377635263654226661453132532166237213142321742631676373545155777722326562666152241271456374164176322371466214441462647477777426367612657662346416663642744617545627724174331272272475772364341134136646372533664244634213631754457345316453151574271721414571256214635614123114633636767531656617263155657177653355153127274764715433212142121355263576526335136513226432644613432112664627424414726573757542124246335226151522125175413451562315162573572653175626366725714355153442623117531413251253155572211645337552624766216243641311542536353337632421342277653614767144172445427672726345224524113237647275741137343377233514235552546655372576633174226567323172355155724164157361713761724336455262164474121147152541743475254674212553174211336474562722557341652127346767212242531724311234322425361377312626711114534557322555224453414566467611355143264443175534275564543524662475714561117664314762546221621157763341541641372711265171262311376643721275334546664575535665735622223443267753552322114564476271433776416325713244464254714634176375437472273421266624315772422353215155466627137621463274335673125632567363417472642262736615227623173233513543736165467342275166577134474142354474142167317737621523373611746575123421663666757743314664771652413666145534333321661267661146227625642415147413573521577715546431214456363333712363444546223276337115645171371636174641473614546667343153123175126674753445723711155463775324247726534112625217314163463216642555522343524356277715264616512161643176352116636521456241131437424145663773556542627545662734716512273473162146332417276472172743363543253356221453374345454753373661276435466645275622376163534724754611361354173565736654321722336121367424724424221176522634177712251114677341162263156341651762217331727655164213622557754153465437421516315746431677514211551413456447471375231432372123311442127774744175732764234446171146357357763513215514141615414522456315225676336111624676457132367332264655511421423212151273433466725573265336511743352362725474315155474127161374732177214645465273142465575744337637767355225645142427111774346433521456371775523755775266532574746225146245126525334343125375722733551416311173636352654415116412166246261217672431625467217152472215225456436772765644565513742174737464441341631414164646242553257226763127223375174661425764411334334647772331151637172717352515251545534767124227221422457631457543237727721552475547775772237115437542445613162646647546163775651624172652262466352247246657344537256445655733762225141746673357474447155551257361776272171547477745752647165733124664265431473477216372312715431136644411552112132673223335717133617452536641743332645272712114366444517465472135422233443655525451132272641764625242516115756434541151246454157664746767456432226245452337736625433332411354671524273526522424261423775134614667326667541773512664353267551147113771656267552747566226164271321511717626614177247251771412543715226121172522547666175146323735557472672164441331237155717322261247331546314337464561263334554661625772723366446715134457745524715426622257114616421257355141533364365473424135666134252767742211747471143555455362726316273334537511735222151717112744674241623664666517736127132325615332324723522574667472414537432364527222674243624673233627673722514627271624316675222615614376567251362365736636551752443164143761211641343137114212556175611227341526553176717541736547437562526662447667572555651546472557133731166265254322216374254432535747167727534377531571225562136543642753647461554523756545151645242537134173151544232725534637454627143543761244677172755352427123127365774721527421727654726731342312772414655731122721413326352612223454143645751362534756624224535164572267775133476115777412255175465715115521151172571542751662551241741534641662132326525724263226214472755265477622575477115336351121227145515677267727642474443654177723674475414527513764427725426431712552233615665274636747613545746224351742422351645652632277615527364452724153346125317621512275233777212717243256616771143373737336361551617244736625142412775632777755237163666462266446757644743732666565163722252126724771315777276756574277426621632243373174124722771412563466443766237536332754245427576144177377122715132246754416566373172132145357154217275556524364564277574343341672612376142671366676647474732131213453467647675675573644246451513257515573572463242627254712272527572452632111436613637433653234115342536156223215411454642256671445512436442673335373777216716142635777744125561221517542443357553243257752441573655731264533511236664663127116573266316152543666546224537451447656571527664252236752436314441545427571567276431337563434111164635515764714546713762325745745527412171411266257666122525432175235456537656675554465547422542265223275273253741427174147333662475625446765362533643461333611152554412322167343737376421713232476251413511546141177154354776157766736411675412423531156646663753676437527451533227336134122522771754736774167513435352654136246433746756364435611547746451315251565552421264766153267734155672761536171111617535155747456246565642552674766141745453322355135611177477176673161725367416331123343272223213513525544515457453117347671322574166644334173252664537531653233542337162611146325771753251564141414314565711733534632257246652124555253744257634321536553342643331155553271354776161147413511144263737451516116135131272553767575711146211143745461571156464435236354376512775445534642511243177145415255556323716473654612321426266725562535135716313714236462321114674156652464224624251112233455745452341616221773537642774433137775232223156357522625134571225214726252566314377562475275311722334342421462122272433262713715351715261247451771145463764276123225754171157347464133522253755371216636734651627233626133331272313276262567643677351154321531663322132322517777736135577744734455571132374375377224713777413741637744374624455476271471541156132226755451226676616766134341165421216164276266751756673321436211223741461417216415475637773714726233462533664525455157267551253175555622317673431251366354462712656351673672236464522351117222416355435626252712353621734755127144611474231421667263356774616533214365727763252317546545327112533263764154472623711665511422615323732341111273675154645711271644237475577737237146532332353547272242123717654767543667234412331666267572571177254543456137373473213362743762711465724747771347611237445745245414127625616653744751134731464226641623324173516174116613751573466643314135325136657741236376554642174577221754651646752711677464674454477674462656453555745774464131562561331517366734537347176422662741213455313227574547541413663777127556327532512175753223472713634712633627262512227541222413627327614316336411532617631273674537521353216256243525421637137614576624145172727273635131144235674476223132325354751463671433114565527222555224514752433575227567252264532354134443777246161247375533277444241715274332247465425267617564371472131665122251613443544523164324447635346564666334677362667214567554312361756713372232411433121176636166273165324657212264566717574512333742413117132252642733713366522227362673116245541634234655547151127217512535222276631427215223325256327474225445242415435147412331163723456333151311165672754376315621376221636661176665273523444246375227473352371261171362727444214126767316555774124162455433163666475537316116521246525467776376246712754555341376357126216145663664261537474644572414436234133323153226277773344515151114521163577724644544267632457462133343633725312776325421557636753477763365126416351122311263251532531167572534472514134263512755241446435512152343766416176375212247123773312546256136735774616244156456717365314127722523314331745614615654515226132475746572776566241746421233255436233123213761616124155172321164717411623132323335633543276225737667142465621353157443154616621517535773566733232276715317361452525236525311744365257727657126377114666427533253711773171213742744343316262671211311627142435732465117735226247377372416562365535446342154672632772344232557343771634242733136347615237316433144131545742456214314721161145543255232137365227557353472615563717534146176631516556115376245456442146757653133111632562577355231436345342565267362441722656571645572246524434463621132421371555336562454221566261215546677745672552127432527437667344334341121376417464636772771745471144267317361246722723222326277314742713733766562154316652572624237532734423212431161746235311743127332675326562677775612354552163116316241227416577372636214324734675511622664644564667677342645345226312671265755333333267565321233774274333221654311637725467575715534276612711532526417366335145622341331422565757613551525233115242265447636434516773245171471335455232225157541351765614645761647372623342326443553434722622175736211654175153531265677162372166721715316224517726616525745255167157722655245341231113772621346345447635461326331551252345311136713666445666423412627243774727612317245624676257341455766477472622637531121146112141731567546721225177311436346553756736713716132551523775732611226222133435442527672372115377432345567243771363264425725465547665453577211237665237723573246335774443363417365221314553711733543176435177236661122561173117453762747666573572613262363613561777365253143533625133363564234343472131455121572227547135557214643267234157226531416423177122517226352667711654725777216332622654573761751247653553414457532726576176174311317776236763757251132731547212344453217176513522744147225346613341651677552243331144751524575722721271356474137243752733413226337541676656253116574717452613556522673677516137111512657741425217511277352375215377574512544476577617756376127751637321515356335337424343265353347311572446272144117645364211456526765222253466217263112542711572361274522761613641253437721167337556222437621116343717171127242121143216317422365765666711746241355617531673733622572413516443561453346525132414575646336172552621364137743175565462214233412673622435342643331761323745415566261325261556712231354557311177716252711256761214443727752262274122323437337457124325432662271514745311444412414756532137341422736667735475637346232455513565761767763434221245261437277466266354353726441575324567411357375144612115752232755423565624654562353573312535743526175651347735254433154337143514435332567452311654272635641233765427666725366355765152757162352224224126745712512431535654713135461712717421712256241726411624672613215166267525331542414415176277511326246227754121472144744773664726744575613426556174561252547342257547437163157161546675163111245231365313522631676665464175122644173534276371561357226636457645345617331177446415537324162255772474437646674655332463162321111357733627621316252321621252263422536131214354371533535644274536172724146464224367654547367653553645352211643363451746175152437734552613776425674771717416643645334635344277171617721162755353116613337167277262263372477325647621264263223233452171251214717163212622253667134435453575315315637232356646661425163553414145732655113117665127647235566313217515236536625341425447337261623665417375356123175653776736217576351421146151461265565451212353321352376214353562352237347617131257527357715365623745173164116135271336447276651364165574115131751214141761766116625465115622737741545654752754647376227173375413576474772217773644566677131771252111611142142545225275221221447657742145473547461112634166332217275322252536575517112637453774725466724171741543445737775375111667551372416552236622532363275354343572643431745526713362772547174343637213377153165323534771711345742663323331757522266675777144631237562135223265423314173727413536675711542152533263774315367652534335511637213442133563421316672354126321331715317577132363253311123654726221642731744273522263375574276221316422626446621247467351661513645517612646432645615732131273671441453746722116777513736266657624172375271512311373766624672575215456215457512751341232722363724653413352433547675621123353645244615153317663543446441116364727571326667646234567425547367671752225213211134413566432371272417732543163277651147672143272543546723342771767163154472631176443355671712327346745316411632475734534746267133121652433625765651224637547562263362635136634412645231215273423151335751633374452314425254626145361277353624473535367775477373743262221612352734464455234275572131353454622125574332755474354571627265546172541274513363112551644563357356444575345514214463657247475543577167714474126665143256147614255373365745547435253571525516234673224727575641465735127661413172535127127574632446341227272612266672523512276533467513532133244144236616235172442532116411745352174675627431626161361233236174215615477443644444573716244143675375245212575342611313337645325155762513663437512752475471243152642133422764756154425156372627774316662777515523265763534726736557557641731413131621273716513452536624626777373555576216176435521314115114133412273724533517361433733554251511131433726277146471615162617672715141454573421362542461642732242757124564237375453612715212425714636415241261746237441361623335131663426536642464331467453125627117351326172337164243227431324324462423345511621444666732264636466532365157141276565571627312361244473321224545335716111753272426767422555321145756661775435567567531777541746454433432175653632515726663171145471755255753247522313213513517361565214112545517751463145427455435377717154645644173317152727673323415523216114414655553155744417742414746146477175763377175657744126632437311331736376517274371723576141112146251211262212543744324141343677416547566111375661233656275464545413412412453132375672522372666431611243511735264745236557745517611736476673432226652626624376466673444434766111715177161531571567744411177632724643663756236375411252252354567165554142676625466574132461231246723441637522361251655223237255147523527471637154352764471335153225567436433531156364735761675127666642525262377147443232311134133616272711231354221445617114526126147337364513135312112214565377313257376751373135245556136757672326556455475121646424447236226462436415156657745616342475221267324255172651764465423653415535661317137315415253115314754647336561413455226144455326614472335314456633555362736652654314546371137632376746342337515145423452565461611625562126176674356524763532634125775216716717434416125372476171711422434345221763564425675526616652136663326414773555246727612567714672343125616253117712663152144534751464264172574414614221435212616156474225466747437752236747147255116627465472335344667465371425337223173742376243622777431512546652271474745652234325471551136623133213716465622455224373576467774324726776477746461121412442342113476475255242211323563627764364545415342176311343722415324144641412135434476433735366132447223364577354123767273722736112135364155212624323233545131642155625343153335776413617413677116671434752216715557237111462312363347734165177564571513752132452677774322322271662152461673241441331773325546735154422512135262336535171655647546227361575423567434244242736114636775145577266322747463667571373272717677736561765734324274333653254154147726125621342673436724232756564466472265313512745546373572557327166474236411625512543722217332252723536576662433776311541564112414676547536713214235322512222454753737773715335752423164227474763366377671323212373613226175664325254145216632762452115724523345764572233216325673113526267634523264326631573362774366126111663373644632621151557177721642132462666443544162147251153357563721227265442151454412537165153456517525362477446217463572311755536621347627775517566147312317264755222213174765644652622252211527441651272617475262354473725216144142373463432252517367772422437153312561745463544464453736213121542127235163447127676371313544521634761461155257151611233477252446245315432241366467514763111456363134661724253722173412122351117423273315123336645215317546661643254525421763557262122217276372521262744732417545651272222152443463657462623616564675137346512167546526712472451132654611563711776641552622157274471163342643642546614116234345624143371666252436321143765523374711452637456723656772261743373114352435573475763562172215445156513166537177676165466677454353143442416327416335164744723557753436761523474436245653445632731473462535216642476365631435637716246531341126376235722264651751666451615131151714517635424511711557757552651763434437373765255244341217516614251624543752467323751111163754572564342647135752456477626323765253727174226135212253154727416145336357762665325633342743774721464422527627561345711316677362441173265251236573273424314244511612337156173743362735466213573664217324145533762355734646226615337352166653141377213716631423445363613567715236266557543615341711461731141675434411576157514724153367464464346727366164746437156415455133471272332237745522637562236753412551775221335716213252576314545113334147163774635253323354641554276623622323115532274543237326637431134255556333563246663634511564777315273227477734613215767746456571327642712675366626416424371152214277577767527323453316755252314633673712665736264635422231461755445736226731667343225332517626572465321125213241663336517612451717553764416744223475357337516711766365737745451711656772144145244273117723561673677661175512227651252244433523214112313754317374422636373665376626347656417357113315336634465451315374335464476636463455125753714553216745315171141377211616217665377374745655172123745145176165726747443242141454651475275224626623572135432677275335166611313266555677334513524467176777121541325175741422166444445354466534655455362444653421164633471253541327155422117562561265435552247212236762273351521751413211526546661717341665137224377711272747657157274263767123653655764171156174214543252254442137627346565474135412626254731144226164133574276757252171563676332347754433254763711321371561524661765332747557161112243233314713172646754122737132467622254755356653667363665762231132441155524423771146326224431453611135777451661115741572335313613616516455654154752722364116376771641626414231725321467161632542626722674226421344472422615161444445545166721165526777267717164522375225111226771512531732647423562475216432223414667753241374562143674537753423113171336566245363753446443616317521764533461331625252726317252124332716454416472317512544571724357657616467427561543627371473747636711656612571755356517546253346241246721311326163135722647275122245151271243141545237534454216423332351375621166613656234765636363427561352562343622554354757716347446574152327613752517214116153127677416737732427571523344141562562623527532165135327543357346634216671644252167511576124261153415364562316616566646657276414754424773223114663667546616547335776417642343752432417367354271172743746374611154426354313733144352656676276315757575346642265724111661511642436417154141271162464563744741374336355761177226575154362176227753711416631554543342717331344252643675652741314652263236353677155554443747112517736352216517624312166364475655652527647631613355554423162557444527624717172536225657276454432225276661611765616574534562334456266166347445156127672362514363312211256114621644524152334172322654161672374351742341674213445742341341567235232576566326564451625762731754576666556571557226311276473471261261235724263114146366226476524632746451277517234153776546527324612661627572624433133627472534315565666655142525221573453646377157545533341432344415763357216225221175542614242514413747662525346465241523247431162377556741576454317552776752261337216224374243513651262166315457572524164517777376415614555332413566365646636765746431217142413671627474377217774661711715357656147111441461461156267362126715712612167126275414434364516516417522727733662522376645236727751622234137437613232137542563457553775512555455771215172341616665264735214651451672322567747637356152663261446527762251255342217115315734167653741277315743273214655441141746442563623431641261747523631146673263554227313341547521225422213531716421353711374257472235455641141124362563612331317523271165272415133323625141112164524523452614436751442167271427262555122313756564722242161333452637332573161746441666714241525177143323542746614173614332323124147563156363344654236672134457753133342377524212745636142577516122457626572124332224142413574316645636625221565617433675144676564357241153343145717371134625473732655754427624425556563364725427635533116177643322371627223175161634344165242514644127752261161264612427345415211614672141341466157422355127657742433536774753557423767573667764131314274511157232632611217376772123554335343467743134265335125441115432376755643257677432155721122676726723617225315251477161363454376261652615545364434453612152411446535127664443176555145464646613666511571144466454271746433324614565744162641425234241224555357727533343527672416234445724661754636373544635775617364167567555241277465257657462427237316273721131271725614752233357417247632745774267671366523251221344331426336755644774155314327564327472226114511321627562325374726755377372763225411577632471773612541472711322164344227366467767145314624647267113426556425424441173665361311321663531373146673623212741272244332675746443233435165252413626252543446374621263773621152443361646122143624754463646144217657145756273566174432136733365463467275126365314661173767427265444554465334756554664164225155532371137762561355134653276113676147144143422467364661312223623527445752324562622231452514166541427335667257452764733124624572753626475333377576363674377756245536465337677757776267637634652344214131227315375235237134612745475212325366117543466411162276747661724442443436765636734265252241352636174347345142656476224441476652562125263177376355171636675664754377115524655422232324125774413133755537315141374435257657431154352735766514734317135134212316744446156746533263377223634775512346264151744262613526113522262517535244347765357733544735364646523241715675633526114677435112164522612472255541451732165617235771172443652337514521121523446336455721317644524216412573156713562353524671253615656745352244633772354145262664443246163417774363531236754343776234133414573243636762561335536552166347727444721627176231613662117144745113614666576532533222333541246147321121112755137561135371536342475416516624331416612453645472733475367351725765747326512452756436274223414123727742523172466333352614344757351455631251421464613113437235262327224353426465265466743765415151262727472337167626613222764671626112142317415316371723122512664676114354215756726717333613161451362626441246731541675175374541671262136143146132323733672255445454757674122135376613263327363132547621442545475276614147715411615667135222753612464272113664144643641472711271557371522777325711475455746166354473445545411111352236142641565126573257137262311544342537776622472727743171323476233326227112453744752361413163176332365276444632537765746564165121246167645332516476212161666371526535522355526477231547645675757624475732415357262457343223731723362156436255215452316632324426155473235264615444725621142514522361675434114763355156154445727467446422733523151666515142765723677633135511226316256773372773374477623515636561516317747241612252255636333311463433421455537654212776732273353625361435171776531742734265613365123156777711763271314142624264776415324226325145176522115533233164525357113727537311523276522131524362313676641613155475367574756416656336223424642521441537145125714657573146543615154127244646557344224641414115712335341136624642374157232553355617454651553236476214137316753455522371465612651463225267156433114435464356435615337156153627247714653421455156613627535237165255554215453161162453526331351265744466234542667134477352526636533172615452552655436553744721613323423352631736573542156652642364545214577672563131356145341571266177466447735353571315242232441352421365361226465437354611765233365334252365345712131623631444773545263532357167374465651735436772531215542451321161656762534435611722675734265374452367443316777263352166616345674244211531547557226445326252753567112376353432454321142677265544655716643217464216224413432376665567353775753574415161433654652521467177616165545445417176463656726626721527313251732732672276261764755131763411475671763222241347756552661232413163371533657715112661151314545765215451756161572171277347724513244723112137171417431576577352677322744146267222376545335453655616173426446571637514347275464254165337373243336326153263142461177643613121565326345553371637641735315731177642576265614111174171743545645653122752563164314624127374152756252551746466716412124144563157716365371337147212313732427636637677436563516621763366427523427311343323574555755213166241672644611343532127714546245773753351131264437651763536444354552126223352126123112575434162551764727354566377622261145465633743445473153112173422636575377576143614121422632265561431157241755346661742225445325461566624723567457453716664625363453445247526674543254244525355732475232374274651276612275144537617533664423712131733354167432434517176541151365567235534411754444455332457676366371145515524251735562736717755526622373266624727577712674772554447671337123624675675276575154521511533555736437236746636554225277242531235111134131123667372233157423446277373776172571542165372345723532572173114354437646476634336713172422733552115271242735571362511153456723145756262376255324574713347253677364225556373125615427645652233213634572342665556417475174431651253625741247724677637541124112237633321654757551453421423234461453626715573651615357432756525674377171661266447215262561443233553573671636574526454633671324612274453556546322157553244377771311657345221243361445662433422663757775537745273431236572254442647751644547271634761752166643231345322765726111571677715771425541414673575327577667571471654437671261532373253341331472656232212421475635163511743212371233563724165757475147134355626652221423242637717533437174667654166241674271274256433533332237546474564373424131713266623745732772451111552176371526472717422712267211367617641633673174756347577627167253346343732242647675565451566515133766363427725775464333312362175475425776772572341174424564673544227627617177344344776455244612243244236246212536147724641333456113536544374457374317764137416516171746316764723644633347317152172377141146451134521266132141357676624627675672465613527634662641634236326117366156332434723121325157712624663467434576267613754462562145544723756436265346645424673221764566774631466334322773554775175543443237317242575714451161771555222446576413674315154162362431344421267341722462261516144411446212241214477736255346153734161723131261721114743477415617427521244473515617475154716576452445552333514474555352144635672756535167451732516444742345225433317736763176457223711255667532163766674325263314515724524567716426226741466116577412173543553316237145114127776731131426763445361375116511417473616661661244762222633514665626111116375321621243437122417373225247166611114231514617761722343766176777112544616417476471536245256746757133635575536415672516343136135752444224111642433625451174111525162625235423667162747747551542442734456131517546632637725772347534272235277253156443334244571555216421131765474337673331171367177641155164724351352774124253263267466175611337474675471235554773133752532556536125766772641257674171354633515327227726314343432232477163343265311312254717264511757656123443274236653344474744751737631276436161747375646434121233117336113121326356253716312344756672623336457315223535456723321221524156614746572244623614257211464771773577456614365666375335565276416666735625356144215647517341111776672464313136647323415332353553442621342665542665326261437774342534667155643731554313555546213456246265742355434275562347367635542567375443326736415761617613471751113567721625577365457441717216216665567662551416355422523644465464233233577552617452625271657426152514753141342376572213311453361431246654717346336447112266516563626515115143765643755174146736211271132737245143557366714577432663665271125743327356356747723371571327443246471437256262165424664117153476446512541367615341746551467737764746113242243261275253431325433727742476523143152611243465127433436765641264413673616365771744411317275225765354556674374411243315425351747475172152522273411741522341335375134231522652322317371744711532254717152457511133263367167244473164173441332545175524533657427735356734777254753636312677733636565561267126525171742231234517576346564616461172176232455147127165635415263465716641216122224132725456314764465362472323536253354133155654232772332463146164312136445334657267323562116734566112667313172722153343455367746647245116416621727444622461565453466277151133234272674143313747316237244457674334613431752267321144261537526362744316415645666714423576561316514255115611467351633213152214165612324214454423415646253474223775347652411263424212236517223634457357432647121443667647674266524643525171714252547445535143124621123522724531626672454172315167211472774351534323561311452251173232541276441114374424661177226443527146713215654346725136152735321324226531426162765577525631552514326223365263472253246721177361713636254774353612335237457316426112137431277567123547625655437451554636145735131425376155631766154451466361114247117136521721636415554373523341252155147232335276654315656324642767673727243764663433132174551767157351466116575731453663451557555623663614564261435734372451346121321711351711743657477745111714266451616616624321367464174316735672753555557211247317127661564254453147514646754125137126164513257453535322321632345446266756264343636561614667234661627414334751243113313763725475566537263661625336656266557432171163213571663426315343312364564613323514772335277733465633273175447121421765524517256631362773446561624734415157175771221527775644736531171717637446662735134627233227427631735661561754551152216547573565561341536544222231542535415155743211254131562714273345127736633244473217377411221455376413376624473115134725146225656626356242522224731432256171776577425342633756562645763712773662633461654362251436235635146334527167165515732215731515332365641751676457143454167232776225122111177136152411127744343276717222232356255527531646414124725647264331246711674172153454147643653225542344525345543121645532231452326553246172657262247732344312445324647557135264412424642312667331716774171637372634222463642614726725336421452644366536132225636521463326564651316353166417372165233655445132272237556337451761524172647352572735173735174313355754252111451763474161671321655454172222471467736436426441546474214447676155751724676444537571112666746663452564254231623764716275173161447616335657141442143163574122256331174662766242346666237731366123232621131144412477224221446257514777112117641211224556613632722413433754632752776364356552144426651265742241547315143737245677555713471126163725621324441337316177547652651163676727414537561477455553632751441253325171757226363132435643117234666477474336256673747633255377767726667422451237645547276625634525525567635161146514633515371654536316471226433425777461212371763734565627563234635613134255263656436321276624426111423241177466341362424415746667642366566536372522164435233121225363342114755341556222745251275733457571317154221142437355515311647631172126542655211147727441536531541162735233145352344322466242436546142754272137354717257114357334151447777372337131756661436473111354264215547544641631714653354372131452326313777764175573121651765233476326611727547321632121236753312144146131324356353555677674236554357214247764521217716676532477146257614513376511511511564144161677762443713665646117376673311417411554256655351263214174435416647645473352176315747346713573461455224651772524417355257436174152675363453745377435353236737544135573251544376451176412326372775565122277731616726767323152353133645266273453264164216414733455653573433661137646376341655213117566732211435532361415514224536476411642115651227357132553237117662156276164216254367545771123211426256156517434163231647163313344373211762136455762165173335771542752262466343142252162535225412516726266132347654154336152612773776626421764663362735633735334634437213372151521713576711644327774114353672654656336246334765165516235627724523347363317615535315332214225511235173544446313254717247753653666377743426441656361375414761251227114565523522567611452257476427442117753345524516764172232115141463462725571261757467624235653721457663432551656636737443232443517675142321577372174252515642234213227352523464524331521327632365776745231467142616771232136466155143665745163244154277513353171776466373112346163513554223443554434254566722641312757512157535277635314127323554663744262135755742574126161537226413132366153741211633451523645416123251275673625711266431725567372531741521122622657634727575636722227264217562157242645724677512124153674563761125422114765657262677361156456552333534344131767251321335373252314671334141156275447473233651712513755353361321754124357647151223617454624155163675443536445567251116512227747326163557423312326447322543436573311757633354477443415561245124356564667115556424665354571323262757436546216167557325776737347454537375336145122155646452527475141171633551363671356134316465273214261655674354313237771536466727557544334751323746636123761773647515347646111425311223432621126216734131143114546751324677621453456153257477155753715576462646224133452321447135446217255442455277434777143155721653517445623333416776723342233422674641534167321242245471614356646243417717743177414154246564461376746747155574544353176666424655462377424163541376675574546345715254126626312353333124571426236743566351272546273575356421344132511355516763713374721763117424515643435324626245567756351322713571745676261716564663511553144515731412441442441227412476773465151323456434771114145325226554373435673656366476124645377346677343144432352231143647416433334261574247416523746322474346771431521235315161475431712335345511572625357266337172212446374146225311155774741651271545565272114656675416212266316473343162474272761533343463423273537236377126315571736275431161555472442453315765261172756265334714167335556465224334443253777571126252741611523256732256667541553567764264246565557615665741136526515233761747426527427225447211163617376474445327372515251313422114244714361234314556363423175317625326766221652436266447156711773435445356435677627465512523513766732467434334416465135477752361154334371623354333755616515744152615445441677424631512473177526121654421612654237411757277353155144625716174531571677627755272717572212233626766265247235665277247377624315275113737744544454372331533174624336633737424262522755122531223656542156111537722111634277221617473612523716617131115445366551427111373664555557772456225162244155325773462237237426337747264673534335673717134215737134162653137652352763611321744147555144356345514174576522525232227134572537327121667432524241453467137314345467445412765421577235352224542427365237536272461414341463257311351273167716155227643711327357516536134146754575562164325264335217124437436716565165421346673414427172236147137737472626516157422542766714126113163255736644627165473264615517736244751644446556225645335276212136635623376264776672335165176322275677121156567346573213723745166665711116765713772413635222641537337447347247456512275711115451325373421436313373622314434263335164527564334574255517263713355263546624351147475251276661146555242135662667746665615675711677423737425115121717512312173273154441414225131141212552663273517264336767574611133321517137412432175714163555662213365271352416737437746425313534174724742223116752165741563756575271664117432227437333573711771517567312444677544516157561667741121161436117174455473342341345557576733745766545274522767734573562576274673646376752357362743232512542132417457265423552647372454627134466433462223461666525772474427766743371414764164147546117661677665314567276625221115127127376476121566517472235455371272223163775755745716332771527556262472711677373214131427473361371542642122763313116167321556716762347453761321633541663651663471727715374346542715215514763232424334255523416571432322712244577144662555125175252413774231672627327514337136764124435241432535667652374327115541314141275367267144274147751635776513734473522536277774672755665546752332673177116715416615464242756223424133135635577451111434633664137532744541327255467433237425242126333717151277656713235171725137763275212423421422635455457373373522444526161124371156634675324617145526435651212236223722555346443136162657711135157451736564531754763151241455173141235224577614274611636164714221445171657541377752155765567211465175253247377276524423212224362273621246367326271744264517245566167215153126746232762552576365214346154455341275513651132777617343161435363314154342555664647664213365214655354722277767554454165434365153677413543642621265675452117615176231514271452512263741252233643666741367536171327524741275573762757116272171134127525734513121327432341467614435577213765376552514643611173445326337727461445517214415625363724656752611654536467241643562754452456731737572551565561147447114241235342332577657536743777677435652327652143147113771311271344233575553166372474114135266433246516354663532163414216146711224116145524776326666221224726252572575261772633512533565357176365446374565767457524212141251711565524314773741724555762217321466152713424127222617517637671731667251422724746331411475564667155172245556244217347416155543551372626313341651627551576364732162255726442521712771761626412621157751625111272512612113644236354352344264225565766261564311246674732467113661461316364125242122636215217475644674633455373525612622553433117417274542361543345646715347562633752347676763421274175632621274471736125634366477117612114235614117732634254124745137441173674325237512221544251163131341631353115257511665312432154211464432152661542731662235333164224667774373567674752214751377721311311751327326615247645774716147271367422453445262257151451475414644526655323252571575654723564352733631373727216256743345634451644247317672722547535712674243431754126716371555622332613341674673415316246415271443725352441132512334167132552525211756312426676232541664732323145153675147727643221316733154552467666413416413125166772426175335334316657531734653563724745412236776653747153441727432227767123112617375272566762624256145266562664123555133731124652577317356544157425142535751445624646573551275331155241136163755442323761727644752517712731336113245646631734433724626112146157474277264257733325117727245154723454462111223566267173216724326764444665776344164213424436262772545133724667411141573157166376553377773462433456627244154124171541447717264542535453272525124362447447566243415263512663476145473356236252534443635213664577437656613431713547232663153432565563445627631115222411136361652337665351444564417661763723277342432277355734575673662374615632215435563275646445735164756443763446214545322166771517215152341726636313156365165336377175433644436461776734543371337437114367122151162764542272344271322761762361577615452613147676732127326564744135613164571451453575637516113616516125576654623215767731652144714637516375176416116172276514316712653623423464465225456527367252356742324663222155622475423531776764136514147454257337762346456445751733546425232164265332367234132236473445152377127562131143547172632366115256372367572777365364566716731556326556536127155614364364251445417365241743671552271636355332262227753742341426657633672444562115172417634715663556245312671213113264351651647135743664263314625254621616763775513772511753446353756146755465345656727235612441145653461226753641454476267435531315765127725371535176715167544716614327321161245145757465553153644416352557613521336316254462767447365443545217443473211741356222352127575236363532264451615631265372452264733427745313464347456326574724426761655416756413552424364666331347344115713653222373132517354477345155666245667137432714131411535353243777556573445637333414667426732341237276444346312653242315122356511622677334264451775227131365356441642665314652151714637757624562555753675373611713565464355124273771472241422622162731476377121322572725176361617712262112114357436722432361442353671712223657723516161211455524174324437636122413312543671563174535372374227457612276556745255622671722543571673724663556314221477572165436636322627176737461432312527455347373454473477336511742223351126256515364625762553657113432553572452372774563731335435672757341417137346115422444311261477444624527465466127465725235276342644417565233146716521455274732325651626453151753634611341134366264357224422631114575731146575434151174457733153424327444226761417516365262466142575632363273233225244772152155336713152561724457263653277316242154362542754331241647157271136354112267455227345421345377472331632267346757125661625444415141145275322231144742734577242146354214637153271564167537665172747452254153412571277264143544157235342141411572713621445722447552426624756235337531776417644733264257545562225211317162265162311126113563116531772122241156371423334723324217276511745243763236461174425157171162255112372136664125566463413423742542713116715526274144516257545622112434234776627423114632776461712246562362164227531125335214474722517147465271144367713643324115276313341267274533544232663263124154321437547224511225375534235544375447525447311523264656473366727464555232353326755433473623626675243775233675512256516272565344263464321512453671572533671446274554117277345547717352553737551225647561625511513432617173257372167155331723163437737651166225445362215317536212276373473235713441663525477421641561122454254531631313753735121271214442177552745715373617522741771446555443741642372163744132323577346223526773143453666411734373341372545456173531721571614245663612777545465131223272474227717261572566434137163412753375476445516764527343352533147511352115666456242176534627143214432542431216234353227622646266741136363415447176522673171727514737665131714734627171517673764466455372373175671717762161357736765525164315314376375513651644652445245616546376146517274372671344151652426467363255216735145272717765337175225444364171624443633633455515421376636455436223516273552443216345132676543355647661245412634567414614557216712671126667252643713475763715616117211777736314615256754454236147171372414335726654462737553461571521651325131717455652647377557522622154666767735612175226163746342457141657643533644556575113147274322416314657455744715435742173544776746345474371613457253373657457245211162512672247166537224161216641656231321646664647662361513467576512554741547244322552742313463433621325411536367646132373652126517633313576325412426667244476247334676165131562134722647326343317766515417667114576164235763414324374255235256545545161777341713454762615423316254173162137231665365555321663611211631243176165725414336435726147232355765614516267524456262267123457246746511336417156115224246474532445416451423421421253517446122276747524765241274312772636652262765741336363413145346533527736335123265225467173641523176112735551717622372213776161562362566444534536176337526535614744332167644326335277263236637345612231114447474323432646632767457572623577637252616712116214263244445724621735327132233263722336674477271214136233366715416642532273324344157164432344275162446777231566313223677244564473731541454543464727416443113562156242377765324136161744456634143777247247111425435452116712521121155212114256731465677511154356375215426754556736717677114533412124676513271274275165777564124337721611221351661567277156561234327327433467465645565613473536252173246415566342122673343625543662117167637673715275623115761241562672575554265716577111621154233314413261721611472573776773416751433163264356415676276165447444611236455713655555414214757635416421277111376244624336633737467342552573623647231764557244123266535724317574627726414541154512356751413463755751522275523263432427471147445243335666431757432565645742717634166655422536562757645451743626245224776242232336324761166362216741532457663726762371517555117623167325224516575744136274724716415441262654534321144666477277142615135223716341564263122142146341344775366224472237542155373337453762631563124357323632471734662371565643346613735222552666356615765461126626212745314662421312271657762654515122552232414535756753753347712523671225575242141655252427417572263415165773117375723365325315644276714676177146547175541463357777667361262175152262255235754663743112141267676124443165663253561361465413414336162477266615173221371142524166764123352244645371537644126534433746364611315155132115531514257554524375337244757162746721545524376627552467254374671673657632352133171351267737326416174777234341762226256252224765666477322767156311346154476215174644765163223143267115666476317713473223644257517532417261233233663126473222212364436566611224423135615421543761545434225441722325125757245434621364126553564136542441465232613752464433621334311655734447731327675232445611332537433717713245226152226126163336361773114347253761323125133467237427127563611217341163676355211143166245427651635133424351171227645652535414476222664323543574457335671452113746234767233623371435216353565261125625551233663627541366646475677452127352631334217347325364154111334272566622452426461227536141373733312215453614564675662476436141513724671173641332227571454361531743534553257414546626764433577615351645253314671563462734314266734117746367757136475667332157664275312241337352231721154253243774434761725743275466673412146336673461573371627366256617125657641127376527512651466557452147224246166151143221377255214432355171711635132455525632454137255666166252156233716412757453511321126154353117421461666635217441464462131542424553643535257335374754357434677354542215644776547254573546336253641151557357234141631275147755443457645513636254446567373372136574562352735563327176746475611562231477774462116725733572362542756235135474616627314764133476514321133713415266331727433764545377413124364124766161733423116656521233662464772611114567767756732754343673272573775454353457344451226476736377761536263441476754275144657617577563472746217725445241737727717675246543563464147754157743754753771556724375121117635634232636337315111541252463446242554741773725545724151331666622711425516122676461776232222224415666531352441321431254517731572277143112355516543772352265336445563173231122167466525744676654442153417511122761632347137716353651231323324614617255251353317517523764226711362326735173325415471766512412442674661511134674543753624155431631322562575276653242423142615761233313554315262626762375566376511152531272622274713142722662543762236355556767367775211466654343576335212221251342162131127654234177611222357415524731252131563274265372636776462254273327575125554314471471436644475636617411377737417441614461237613674545715672743127171541773175556234144744241553572767167517454211625321746225464663713163727551653576713525265755355565767144332672674255114573332177717623457751141676476156311432524516154153277356216235166342623374212627146214236251651616777431241544461411134152251442242324333576255416632337555522736377732313137772655717166747254713717341665755243664663561516211613556635444151456237616767711262457244117536674621512521532642276233644716716361353634611264324247533144734564731424224234667323266572315775462633245762641512232123353252122214642451646727254456623152454575262541525421545113174422567247777253436111165516227762231355376423767667617461424422745164633466164753754724276547734544346716616213621213642517623277623533515336631763356631612342235527262116772777335231233451613574614134125235261775137416477156641253756472331532255316266215271436725675132314422254114734545677523313126456113341742354132614575745461325437673771246762244634341211242176766466514324637233766711144455465325215747343356765657175543371734465363416155753652651436667172551327551467266553642125724624212344431471527465774275617412233361623173264324123434136116433661663364522343746423145656613111376746311445133674377275275426446442374347264454225136745611666623163631747316737653456247325117427172276141754732267224145666641742152177264666226237545334337424733252172571412326472245672744341656276355327661432646646733567656677435371256431626572414153141122774444462434727517761577175311627264643126712753771247161633615744432743744143342567677162454247523721315713256445345453521255341642773665125651325264457615531536737317221617152771455335211365367231153243352543627453374532252175312536274441133771427773421641462746666342544144217317561655133326216743237734465421317475211552563377524626366131271142674641211641533215255162271416715411631616172413331256366441243613166377176451725753673457613274614444465423416213564143743463144617366131562422772526723252616211437352332675715356161517171131165233575655556373221413413526735462631535314144567741373554541421613777621345714127141436224466557241232357161662517653514353221256361627525625116274455224537664412674557441261171557411755153425774462336565676163135344751414174553726776576474121665252434735523134735724565311466315667354135442254646426266435275754712435262527225161616443172777412744574646771477477345666776156244724411317451311445235146645572264635166133265332256152156537766362162164524357614432737623513451677116571227122665752753445622113725714127141427136245612413714227117533457611715641541772464225137212466447642346522623161473327331416464562627661164472553214231313343131334313432172356611443464131455577237514123242233216666373437227133274525142376636415445611642745256737454713577552436127214471237124173663354233366271221572715627336526343666335144267446657333565551374674536333162127715751441315336735417353663216216725252213147652324352741251713715524745352346411236443551753253625233161215165222266544732261564316626131541473721666371511666227311115272353545734664144143765717222651276564251757354162471272215312532511147144173512752271433164347522725143653144452562635243777661175672357675243511715531121121331132461541374566766433545751124241377455575154653616272771173526557634474112417612622131231623511464735545627727272414647722413642355732633526555727575516746234562315677263141752623363371324774245725744361456747217436671361725521326764133631741135614144347112355244757353351553354767514535763671216335772751316715667353253644654621417625745546346213531114572175136221115673431261645756537757572425537317763721116625461366446711464424414126327211751137765656725461243554577422637733741437531477425112652625217214417563437567651352647742654564135215661641745174361364652232755416275373467217646176574716215767616547116736724625574226237646641624526533545136611422245241236227713566733656631613137664171723715373216615562662175263713115417151363353133211431241553253725722162426722353526744221456151643161424337575141756362536553641256412145134742746516163657234351113431154641256746746223255573725472526113227735731563171661374244415327752146542537741147367113554427414611555731744161117732411152723413571374511217331445676614126451732211752174746272663464277145351463657757363273562742561475243412676775143454143447516757573144244235151437133371461267247644472215614156171522561716733731577711513121737113363564371775754746117422535636476646315516213717612765147743522476447122142444445635353257641122156271315641325112647174152253567377541235457361445466214322711752725131675735173742672234536733124737131723533141231454237723345641753765432645162237653756223717116524457644553616764253175476517372137135513273173521122571543513725132622333642224436526772353564411573126313636213155166314654424613216157544474622421352741413174415334211651452635763267427641412335667156114471217545571674744371277276727557511564345436233552711121623612663142575431245534744256342633722335425371525462775513451533246363246125177747241713457444161731356167617774631622171244754166225733135224627772223256755355316723435157641642275413422361711624276114771165474256522151153156466566177127767416371576574122771547551572471442372452322734234371366336676752212557772275621362427363153662213567557761653612244374622221442611766166154554773433114335471573773612427276776251561125654155544735371231122656724247644353236742663626721216212647535373616412762453355417322615661427671453762127466231353454243316366543153366434566515263511241171656373733517157137657241465475664433127577425342431464523474362746441312465221365534227556176472347471537362431175516465416357574453546575747161542522273131772357723713417627714367416712223457363755235321322757722633245514442141574427561176271364611462237545624367246455265424114374617564255575621457216661363122514552117677363542554452622134474753254254323676255533716222672361725544176466315157561374574143155722533372343152141372153566175677243413647256472442757237247647555126423542313466754167724771747561434771342521427727721537625574641342466542723616522674567446244271441325426711764144534511436245221344217217476114671252434252713247771622653574254212455113213541631713212552377732171711242616762164514663213176326527533134744253635423633254225761145451154612275647233661472311315754262744254741765454425645177715323611236744143511352756657751412164231225633223342657656544714324641162656371636223211774465211714713312132135751363462231161151663314537744642712367414533652747477154261644146214356131326433572511231235733553321134376153422773217242736325651173423437672161573436623554343452733377466616156321324571335574176527476456255117343623156736345121157616633455511714212275732654762764767426167377732342155434144342747173712652755172416343666213516436637135423132213337535347722665561613347754274537614551543143621723466353674357441725173517162353531457137675742734644234234472144322336235723226724447174543751474721554456611674242261635233314677754412214464122241434257612211126651211557261425471125277321332327337416446677457572311344411632675647515374433312643717552546735521673342176437735336413657443225426642251735127563433117155476357245363465161257432634751523557674433772512731673277675141427317742441633135235565555353315366262437623336152631515454626545374757741374211415677534136123643351345575115467256222646557135563627467112742666622276763677446721767171276564466677566266243736145245265735513572552471215627533451117723515165443612744445522267377313763463227612226563335563524654253522255136347236674353745333151444652416334367346615172645253326714344211647674666315563221553464212733727177656526476631716355776362674574563534366361371236747766155547225462222742111333336227134721632512645242353326741774711412514156352777234566464663364435517324353553476265735423752426317251717354625445347712327663414431641667463326764755226314667334437617756272217575337361156712465466565316437471334253261263533372251122166735152617346465732363617633231725544134157727622752242345567763557253671763655245372535314414661717276315673521342534375137536527547371277553617763623336371254247261321415766675257524354573126246371441337121746121466255461414354411435556764566646553433475132463646335323711775554217457173453741675337531641516331217246674271361115161175356113335261141661626737437551377321553362416465666563645734163715164524754634433512715577127527446721417114556721311762114257124136261271656561512722242551674316146365444323575171224612662433346176752414764465426216415757274125712263653332714646577364424246747265563117427125674634216723637646535247272214674467117113415473356174724265656335445347711551217111423242646572336272364352562565647254441437553474722461536716672527154317465735327666742754533115134565525317153242746334716421233612463335453767264136527563526177457772531137157453446515166717644755322434353322575366266161766563435562327653743511527526536314651536751137443734116261745676464456455561546242553462676457337714743522775512167545736615547547244416626471617654551341735713727562563533624611357413416216521561147412715476634675357171752232357312623463366156574524622736363224416745214712172443145452411644374262124434634112535273435621262711223676253773146766442224243454567147174313731636573626442726515513435766452654425127655157127712545353231315167772767515431431615333656127645646134116651734226162367271156752665476375512134732267211435324613354214154271613133265347273554112643242772752576115651661247661246563662157427241725225242331564443632257323337543454211344312156452571542276153521232377131446314665141251176441665234147114144543247466576352532265562512127764227257747666253561446527742731464522415515333621757632646153323774156627563145353347533551174464711614663311146473446614123563273455744314312261524416131511737464162532353412463235151222235173713375534275454671515737142563365516472112647457431233241531757642411633111166123346572746755632214277512732653171677264263767371222314576664215414333152467426532653233222752513356565723164131335562114371453117665371616323446224525166343545633574664636263124517335153447243612311774624237611743751236143423755254656472364467156112115361757465253113451721726547752517615665423735273476561454552634525325256462312662441426274557243714423473635123251434353142156567233673365711436613341655263742165466625537564365622717526234433272264737126465256347432345672232452157761747654412546162663217554773612715762543121637227647516316577711616763415571534521673435516427471517162742236627171553225777657731141354561453573542265764662765272226715254433127236136545744574717521446723424451475252656335727773147141314753722547735667573664211126356145546733736526616376727131675772441443756641423263764177117777335362657553717346545245265276222752242326627643531246266115646144371423224312754221747742425343763144467121427142355452614541151364134757222236374241433211325345157465416633472225462673624561365345716662242565223374777356325242752742166434166436227256717544751346565422137114126134736724522555544315427531243246742553227315352623375551676123111375731671527613342127377133334554366457632733357552512625161537265234236521746135316577326471427243765541756752423274346116251375764651766654726445263714531762451256245732535311231532325414653767725421765436652745361232727326411264454127116422261213315331373431167412524366516647267134365547657611163622664457417433252646723625134426674443315361617263776361274656435273535364365475615655164441316326671431166647341236635413643475265522532525662715571341526275133776263445324524373441533544266666625152615367717453556124443342333141423361253322717621276522155472655213341764274155275167516347436266523613322747661477441476551361252633266353342373442522366516543726335314632273641722352222117412456376173223677613241365575557714645545267451542156115565552454241126546514567176627527264531355457344116475315377352217563531477323125675536377425736726312442413736536413252225121713744121253665641672237462364365762475412712615666112267416155653114556156447247767316341365153663253777635653671723651626534114422613717515274477676767743553226527121772511362362157265442765636651752234462621147266633232727624122246626111315224117444746621333551452262324255567543131124266635712321653277157244667663221275615241227651775712311277531652353167222117217117331351345522761366321543464464436665633375674634655742221561234124127367141644223737242437564127621557675751473775714151237662643632732426576266161516632521115477573645624533352432315611612551541145637324662125466257242317575712564627316531377235352524513374463245277753122244762455135465134452373312613246746273177557473757311551632165161122523472531746771756243362117413654334471615575673637256466541226543324315165556741176656643755743374626444233121137735721227123344147613425632755647553764666333736631363256453141236526324157564356426145173521644536352151746475447254755331425177134233337377245263772645676427522356713644761411717374163146127455446643452423524664263671473457315113547622314663522272243437552472656641761461752162477743731272466343443623617136316414121147377344611164565562433373774121261114665715463253427656367173212433113624463121552461436436161223535721471112271537572467365477164667137142261435316564512353461157264267426652373161543111367415533153124621142461646351311462335544256647665245342367531676123611225323213141674733726116122412445366627334314717212232144225562232214246777471423656263625464727352616575635777366175476346642666756647422223452363132177763354262155121453731257464774713441767275117266661617667467762335435466217326215416475445443717444222153775737671431314751441326742356567472551625745553711252267315175744231414112756362476515546367753516656361566424655546433362271652537575646427215173746375525672747727615451512322625665347237435447527375367522114664427433517265241371246131231727363437171231755725732745777373242526627653751543357564273324647131715712377564223162511243531644745556727765421236311536222377713662574564435441412576417661562251437716443322562743615663142357533643521242321625316775312551424722414521163266717611442737773574754327436156666567725237231512226752715534313371474226343325646445746422163434665321354627475452146127247613362124152653534363571322446427666212511716462131312433677543633443735736675121162436716173456734437243143755273545347241516523257274521226636213147165267241556476161273256717415535263276354334243372511521673357275426255727435764256332422767176642561372345745564427662261277265344474731645523156144364574523246726532625467716523252722373541554426717546557341777162321716763345346324273246346356422613412156614546356613647565447531212521471765524515161141615671621264325433325677415522614573574713455122544333375757357621317712357272546112532247214316537622157116364266341576627361333316625546475214757241133162126561444117761513122235351677272761134535645616137254122211232531643337213175717746457572636123271533464164655762727121213726235322657277664464657651171413256111476436415264563557661733347361437472444273751236334437775144111257515144533656672446455352763712154761543131721365124651251541666466432755167215121425643631731667534731646661513566343535731731614327574574544224141344247443544215256736312133532676213356534355213176737254636117131366353712522143146165461473317547514175252576173113661721272156126547565646665177355541777125731734673567346165123561671714427513173342317325737417577662343413723367632574366436517416543215416746123272542415457437424735476424326757133314752736711575346327753641655215524121631117545316374561757471164676672673651511351141135266314174663254442613652765117627561261661175654736414512222314454613162213167472244616141313157637247361667646264554562633141225342311377363373661431613227352116337476534155553526521243161472344375367166644127111234654615751572247347323645766711575277615765211356272577465277346265366165717255766255225655713632461371212237646655471275776453633774725357354232113123733661265456262626643476676112425674123572521612516145726646172771474764135137471316212176126217467766363216267431253453366417345343213635654516754212551413447275536232717471465217566647375225117633144113362274253247261723425527135657275426754471527613164747163547561433342711154156465163162545625671224335533257717626234321274664716452236663774757574235464153554532756544153642521245773522261544142626334531113137747312527616232534457153154571474535621713546111556563112551621275177277553374542331631115361322121251126566333565561612532575626135157137752332127371554743444451275272177333545575653351725564673433644616265654543171363141532776473753773477153364323637773314343642333562577147512175176346113477624172353461451661472347247516671371536216244443572647563455434455442463327664345521516163726555332472633623466132172121324271126365572274533445567262324654167636515744417764652661133621421324375762533532216576512214447472222131324776221272262314741622243357412112134254464734322324537376247552754413142445271444721141775743157622236413233467172217326124341432555436163323432554676411256311667543542714447734325367314254435311766276643636471221251615452213312232725411361473432623567172433655761623751122455551236247374562571664161272542221344367227617257355665715351574531267312373222256735646375566343461323554776324337214155633661221352627237163425437245621326342366662616735277152175651713746216264566462222131447136437644665425273143454677733656413517266642351775344124111415467151166164232432266572214266134231251256611155373254415144651465622651633752511137511314113152554751235542614736771231753251536243467353645257261375512736113737367414667525643764434637651243312244544625571771545137226244564722576171742242236732255771461262343353547754316123442231467676244561155244576621164321577461415776223737527573613444414563624424235541523662363527372657342775531315467665213656715113141432114335715613435233724644357423544361262663336752454141577632325763173361624532777574554641764562271431632376516566254632131411627763245576441221145642146116371217635574531563677453771523443664666437774172562441141322576166564531431141417663117231612521466242325432565564174122372553634551772636115664214726167445137414425711522312734436355312715167622333416646242515532353565373365512162666572763546776454215443315533612573772456366145656433165547232522732277247163662535145532556121325545551571156433236621217711233617376555574536142745355266313765634612572146163467116726666255752343614131747315337222721746534771373625112253176731234237714523563154676225426411535251262645234532332354135667753477621714536213556624426326314663756766441363741643316347262561256756723263567663214731161236454362175415165153574272227434373731357132737445626337461535164351516631135162163736716161511346327324521241566753754664644671544675351466454442747435223513771461235375252517625777522264574734757617534617712411463772462155563654626421432672157451711237726314777742715174322466661114176136536524725546172451357567271775667631344211131477444414523623421415551372325566442212575157532774551521754533316647126545537737376541656342614461574461243255315262361324474253243772736454325745374426777436163453667535356263623376266142157434122715444364645216134752267133635125773431725545352157376422716527327564565453321427466347647412544524272157371534474241324455523315736343362546217723766524417747443417746313144237545311151155133573467432145461544416424532455135415467675344522154727414763565347126175742524731444415713253117122743541723527763335225555166211416763265537426161614563372213363263411365331141332171431753312732272327264411454665631146377562623156216746113473277373334273575213145631533172423362714436725437143737214425761236337164165631645352362734534556421446144647135663122335711367243226135611724614337653364523636161173775217662324273441133426345565164674764126537125231574442117637437126537514535341521255377463335447234175561314377516346225662425442761547672441322267121677742677715263252427653711112211275576467377525177756376411532763552411441425244143172133237426713354322455371715326622245221711336111367116116732533751462574631651717621441435517175154344732126327212257422214214733566262314236357675551761323126376325545377325226173263435657516441235756111732643263626413364331354243763257543761254125354217454112311736674364522124671313351152423426416136512624313534171217542724655672642745315662472623661162561467645232674572733325615725214253336763343724236652443145556315532547113516141136274577355326173251171643657653612252221143753311331514163161562727242467166416553534445665733245372547556421466752536214721354175452536477457446522544245214134562636515642717671246554425721561765645322643623157726567371351446243616262565212115765714153331244444464533453664313774522755172545313671336525355766451656466753475264216772641547414512562467636556161161356334466257546775771747566665123166446365342241742236124624547247174123566614177324227723576513523326575575276347163166445327671224113674514347456175743576566722444123474742176117713364354256413715346652272223115553277726666277125634243355757434755157746675677462275533321365164572575466155224334221554613312172263132656462224647615416657151477613177146261746141571476524764765375472331545342424474455254654413244377544277544333661425213544171642516246335667347321241526245422514441574273227162276352316152343717161517133142462227541356612273213273316622751213267325376437142372643445654165424466217164261322626152757357233662613632241474665514172231253441733226443523322773413637765332525146614276721327672265164616162666567327212244335553363764712272167112143477232617357646357571176121434664777277335223257347347162126614315325451113437354472517731632462124753274436574244326332416665116575116561442276632465737625436427332111255464451537433335261243165265423153621113257412341556754514466115371421736717243312221662347352121164376366314744165155423542644173422451412717536453324671766516761347571672765523155645145726636162732233531314721416123625611427634257434575167232144546247471574123267756564521734372136277347162322326276751755515137741766615251413432231436121533627617611446417653216342154126412513575642572577722656173416461553242646217477572671521253232217644227742771752352443662175427413725732142451577654332442275156551255571735716114437765116633577735575661571311165253675461157154623412563724243651342121127244647212571173617216332555661514272232413413175116752221127172513745326761272724611244366266557755526416546637223431276125674761544425263165221663673575275575142415345643575554255526245135631113556234674452271742567412166361546573264643262256546476725754232122447235563672655516427125642145221335113412671442324446343641372535357517271246571255211566516762526677611735516723444523474474656535637623514376643336615354743726521514154614462124675443257542525675414764554657456124451446717477332731525314242364743126637717643747231163416646343656441441445652566765246233171556433416642447636526342376726175642222117453347232177427421342736151472537265127337362245462765673652126235656772632265143232113311634447345246331461264511122563745323356763537765114615617175472225562462155154776456341341721354133473711537226164727745257315737477612764617516127234142274716747137325117162613736442663254167173245656666166353137415744464574712517575374233447427336164655445536516447262647512654464251616462344227147424576663432146326276533155272345715574747154127657533142771326717577274323625722776424523756651531551273674475676632223622576763742163452123773777112573754744357567734246447746651147546342761651643551435532337543527353643137145514556333656534115154541145263633421254642516131746524632567764425553247522434542424737176215557344751643276654137622643554332366654157461456161254437125551777616314243412322436113235774164264115542213336413324637536146564276753274531471644347413237271727536156431512776343474637761754747655522713214151412275263371616663566657312626177217637367547347616613635137736766151116264311313364651375271176724236245677741367756225655166167672637321325465573524321121727621273136362131627163624137132125234557416623716225511225241453276765736731342254725157673642273262655667715132545352343737257466565353455162445213536131147126716654131631115625312115423335346324646143155631551672335771546477274771525222261452624415672533542351324256464433536317317562147265436263724561155735757625232152526534236616724416374366122321513356112662464134175425446572752221131321667214713556212273462724737262251362763241273523163254761677734264363717737312622147636737743363722324337362663117274777763533736271524563651352372772121565167617173452157276446656151346746141141316614545572371327343331254361323274667531172123756413427255421752351525735146554525171226167155422564457175753426246261176223154244773174611354161727137662367123513134424662372574627616754757447764326124455646427512417226162261623545313111652734375336146464547123765466455767421254261737414427135564533233376324143246221653765544227642363234547175117215414261723717256563147257751772543172373665522571124153152253546757117567343633635453752211454443463452577162456223531752726574134411753772347152445533745624431771217677733742226773367152536645766146743447671611147156331214124721726364364445642551413635356742754673431175652247222616443331646246613724523131252332276642737754535247531234252426757643247235513346332346175257255152576411263436452737636464472316455236466642627212276145415736676531461375577621241154735432422275434674555537563662354237412522476766534321377667726431462755116724611442571657662435675164615477261445514713163235126735336116126252744554154311213127753663516425631316135665627222226514265121524766771461352315431313141654745535345574641262145367514571175751415166553672126646617277477214456255243534156643634663744765533552366751457253557351754554236615145742211247634662766434761762466263575631514373472436246344434454135531611341622256773637372157564446437663154264774457427735123561433423127557257625661674417166232573116264113775665655436434351531242261613224723621354226765731256465467711313764132555454267416245115116356556271547324743773637541362111656516662723311727324362427627716777576161523525657376541642544434574474547232726657543627213755536217755677162751634427441746612532421111227425521354431434425561744264217262754723455527252741155475235355452263532374323511737676433361735363756116641233247241274543557316673524571725251375335673257121172464734227654775547437166717211441153467355155642625624524535773712457425244721212774457144744345513646362163224534313327614442212567337467111665425656757425546636763641562747413171766742615511517115163371432652252765146721172172522141325423532127535531542151333556712643235337423317454672636313275462615351324664643322525455176545727554777475261424676343254137742617322372111253744517234551545737161312433651256531644331576271217432615213331124211753134664715162354275531653374563167465177676144554241535766535155714533514331115542615324367115776562144576511464745426245267777746352133114164551333351217126124651264565274553626144364267171477615355275653145163411336257436331267776465111617162314343275232247257237131231251372126356372426454576513637154114417354173456224774755331246661322361162326351162567413547445577735734277245345633565142725665662515335251115667257654165765553125657316526326434333753641337733422553335277133576115461615621263341664423437126137676761552771344434116552663616565564542743177634355133333624414352137334643127445262615276656274521463141542517355537357145166442617124372454511474422546356233414337757335626166431716743576137674661516317326173374167456363343742214766111637167566544563242535757565467653672657635375621714612677437415674271354715567571361542635677371717234534374465424672774554524525532224745515247731241726371743526647454336753766174265224332624522557322111426435764577243434115264315537563326325776723466176734456331477643675415317646567463232774245143533273744131177156571712435252625245642265476415274466542477552376264312153133552332275434412542461722347553232564713547322566145157375372715165676343375554462366327766261711567313653422267426252351311321367321725467626661637155176347376341433213265154337445166713152717252663322246663621436241655266114473734141137423477435612432443173366114311264545627371644777417646667412531226677727115525656644642574757212111275126661556343726317616646147351712762141675311242224711735164166474612173623156272774177775315165666276472677637727427431263711477427356656741744716152172312563524553541334541133141352423661143631175242615121445563734234442625745662753576642432726551324477313263471647534716311176121672533252411516662363214433436536673231572773652222444117544426216642622222411132277617665236251135427752113336455437435262217224765764116541425262336244375321727626247733775523757515344275277252167162462254662533277611537545164764244451147424744135211166715525141517714656354751613733633474311462553241216715776371564144465634712337467451361117367774453237641275254213431453513513152564662113537357524771342632351421221422664513574373341633267333554525614466646377743737365412666231721567464425321625553415513446642611666442175376755227611264241343542576716536434366261317123167434723624661445273232263166475552154546336413132555174413263132347125652523136424234664223546674775474655261134557246662245236637417776525741327443231565411365346445237633176132364544476546472237753755454272437223654547377624622127666416562573262647776152543755155737515176326612613537774313221733615524456351532724115655271213674456134752736337642521357477761537442247453476574747775146164241115332377147117423514232737563775431762675617641323746153241631374474664464452574211225543646677447721476155226556571545733733771173144141563332232417222515726726442757727364516746662142735741575173116744425332322445742546726537147655431173426572317474365341346344117326762552713652222156374142662614674752252547173317251765163355136533652136246461525625433161574456744251114745237613555165255523537366416274637737276126634316673631661472175177231132725466366562747111322122255372665333372261465567633756373732311755415644773643645144614326541646577473774462646552152414552555536666376734122771277657326414367247177663424715245323366327766714114112465276622465113656754654265616345775571736651255153441171661516427266273251275723361411471662433353373612643445174244414574757424744226524167611225776446244116573236277526676732522476313723774217131123613776252421364776465727134235435725633714344633573375421133516371265575333725215536371474765635155536452664424317341412217774512455334423274644712763273373665234666342652456247455775426134641246114461637554521221154666344477477757243221573735743543577147771165713434415112626313653656666675576752534335621461147434324274745653235662555533731614435145544341665564632425122172546354232565755434137372173414662426131217776651264224544215664757654775116663133546233554434731726437141141453731544231564371373346373577544147234657736555526343212563447254211615611556441366721366744653413473274343227357262332225674145575235552175233261524646535143624446225435162511762447213147422166721654472664662227252575541151752141512117616122141437214312427535715236316321646671632453535521223137172725111711114343625416642355454547362452672436622563566635564142177346546772774344533526265572621755753663153511363734564355541757654242456651171365154611466474352765134131341371725326556325762152775517634754167622667634332641247727114513321312612765331425533545547327553515116276122174751324711632717253754713526645332455156152443571217512763766412757575322576146277347455153125223263134215133742616643562174626356751512215513614511256475171636424575137572174554763543442645611471214263413767457744321514416445666275647146214212644735466343221151736762674325523216155723244453546454545377252473271162325164441376163612721167421627752657313554553744337446511573577775746425163477122777641121361262165637546715621221116317357575675472546347142254366132176145746476543511524742562414514327214165753434416712252422264516647356143527257161427651261653537564573254173211354341461557143722463112422633161434614161164466747241372677127372663411626464351315355635757676176447422357116256774577375465475342314442563321213773743512352276431714254625757251664245412623657667426172777136115532362665244122173114214326231713251437364767217511342664626621246322357747761753177377771164211133411416525523744114725123544657321362244727333734547261456135166316444735162366133752226242652774647253152222245653766712211471756173422755171655365165415456663474135232143147765413354233722452176632136442442372147562265334634436742517163224531516226661245721515177716343125225231126244735127726727665161672524526554161762664556654463564635421467715275363143141516255551424652563374142467764154771566732416676237553113212511217476472534534447444156377661614653523776561137273611441526777375561257747242262553636772762632411427533561771256542542632225567542616365455513561735331543312475567525355145414611333411153313112153121535316166131413611252463611112365126625641121372416765256477636447333226227467642531467226212166132344267335323676745677621131643111537453325576513273465672666277453321752543423753412372561421456121116564745434716236325457535356561347753417217734755534577444413557544125146251557433114767532276154565413347434561773411573714732322163321463232243414663265567111331763723456664145534253641643115275577755735342236654141425736656447434236164211266613755652551414466723722552671462661555124175434436641726315464763731634354727453357452313751546243237755366335663642162471454461723622557313213461577147176556647343412543774443433436557335232366647715324762234671645712525755731641574212446136213124476113577764236656222746761363732642333441265744567173661721235522145321537444233243543745271642751612766732464772365562371475774765174161246737365255424554345153552252315322251765546125663367636255417232451457224245133462455313254271535573534162674334411333567377352134516335424241521745334465313635217243714542723737663322764447371324526213375712177422631266325351123755334226346317674734557415511125641474221152243545323354125237125264676725232425341515321145746566266167723265723713635642456326354373374614326727274772346112147561121622364256317177245157454544646647175534454565421247316652457344364256625363146372223122366324762416472232636457713214544516175456436741223171762323771451462141713616632342452674215252432546657231234451635125545274547135622136261636633445132752436341742346275361244517322411755712726344373121256541762344352144346275724447655542532176523147464435121564443212576715667374454226722171634366437241637767335756751261254773646564747755172511516625742443726615373217111462453336243377773663424755166236414741554235125314766465274117751454533256761432232271621433447516361616516652176226422455612773521712763641262714545624416715261371676174312513271173554445274344324443774356675625214641371124566122532257731622442137271212672424767225221314542166176121411662353375127251736135154767137127456115621645747755462762166211167671562567453542221536736756756657746324363541162155161655675663567423251446644263762147746425765741265432236754343651655626536224442226432446114562667341324356614145172246261636115153214731533247766114142236241745277762246553452413217542367564235324637426155325637614232121545376653626534356142232556261455175773456241675623737314324452163762341175266147453325146425644134372411441256224666463234132644375556513731563251121454266352123661653257436755266334643612223522611145271776425347746436762344525642551662644462577352342615351156234433617347521555123273143151715457751116167146767327723231322177774215726123731162174537753272362723634647143352671444352572731243545323346775176234752231345562756622145246655517176332567237444325433247146621741673243176142674531766112164157341664215711261745154665273772137125635347477564273671312712215131724641621671311511751143475227221617111367332423417625275617631133754172236411751754664355342546253553177731747244643362236314231516127223417345731361613535152342254176431475311347431174622155374115661141562725762172663772732343741146236352241461641351444571115332356224351517765123276657771434772714451643742454675663753137537737516663367535235733322745621624665664113266713525166253744136625314125454446617326354551374166737352336764556622556245375714617754317217655551725733563364766754515536634412414311661221636534214171663533715545534646641625357767766341742516372777764267716624734551764356176416315734725527312172171625546576347243646427461662272355141122655711266131176375525654377573662572621534544574256135475456144214376563256637364371131617524346777755263266325165111373354771512577427746677377227257615275466756611675565625536464445376155742743123562465231171656515314227314616276345161212266256171424554356366333733273313347342513152626446461174313645372325467166267133672773543247167222171271721143332643126532541574723233446443727273524471745224537153511554745666242622717433215134514663476356214415616552773626317176345374135465365233444736661671534463765545373117564161151257334662371256715427365114232257314774143371161634664476722257371771315754763257646216111246215317437146645164241773714132663514451574361117525636326633221573241237666776152555476373634175423535634535533122553524126546472664451233716317576242653441427577354367752623713727116564546617644314413615277462473462135626524367737421237117451626223726717536442413527647515777533224735172745276662546537321414627332742156777555132625757227673536144251151246742245643665756341246574723736723337134324221756212171672115617344357122445654564775255466261415753156443121517377125674533765462171634256427461373353745335113414416145171156117545241715615146527525245454465352766276651575467332176634263111327151156126674737256153411723246163312135735321447354525736344264616731644317453322774577545363155652145417454715225715673322147645243624762374225715574247355341155357746275537321212726753576673442456367242315325411325566567235472242366416257732163752531644325652172744653755265452645723565352561166455743672346633546125643132237176674153221273547352135447664775674373736756424551675642732343732562274762545113313161354422734314434234527242564113242725111543225532273337616217644135636714345121242675555417473117513514241753171361147712661263254544352557771246352254343673117473332571517535453111464143355425151422462556434734714417754536433465745334176463264536634216153523531254754724253636422244162445121145654356773367341477275553355463241616476736763143773647275144561551512525324632231425545353622117162433265651175357724653145256275337766545765514526374611547467224322317235777361221622176144177423664676567435551653162767376451747336376342131316525134174632136162732766372443416131542245441461673172132315757563757273741227217521725256154143351371775226347422425353151554122162263724742714265613231417711437556742446537267762424555567723771776254731756166227725663565265365373616725724547441127517336175626317111614352435657731764573466421322522261335212315475165543376442623243315137361132657424764547733351511415444557645777416164266624675646523161166666636655314266756553424744254743547545477725524371753551276674167133662574366137134573622411727134423613452354461757233414525521263564132477736134267421212765115564276336241165413555566175716455165122756255636115775614426473172614772737414235145526372131541743344536667324737513553756733236464756545671274265542752645351337626513373413142616224321247313376166525767474665516257475446165715676576537116671626756533343235625674557471472463452425762476262751437417647726275537446626536643117141124137767544572473447244544552563477466452733362537563147426574353413267563123376345762645436273634242321542161136725223676425617324557733353566452263564326227252637633362537466625314656567516772775423616646442362667645727537746672172157733263451446342324331312631746143472737314132264737761245251266425532552376425121127344762117743636714353216137143176665766174367372626357254371517365375176545564777635653313454324243164752542241134722362631364112427125371415631244463766125535777713553125571735373712514271161262656152641735465175446165175235512521674111567367124744653577247422512224312452365171467131755127412634375543713512761775714626757244613457767332531732543245134152543271117252326522616322736554737241362377542524615637142637224351416746732114615362276662625253224222714326117637266746337165426732332174675567577414351356111125242541242747121152616655677122557725152245346465647636526447625721436663511556444547412355351143276175556644611366236555212425656566235122512747663632363526214162116531612225315667725471221541753645137352113772614543666743151334241276427727211564252157474641475526462574515575323542513261247112161251622573435113354612626741346463566656312212451142345252275235574471343555123227465272431255725476622117523145123534176123736567343664746263764451752675317366324522116135335163362663333361213656176272745455125273427665115574433244537316117646312211633472746463746177732616646157152432147677113124726221774613622264561461472175571433624224727137627175144545224467663326717134725724447214147476575147641753356151534656262353224147735132561376453242771335566364361774352412451665774727516544364374733313652657557363243236766316123345632737115243471114712633654112526113144667336457757154533344635447754343367344243367132477252126124551111235661221244574431533446124244467166372325166421614351264511247155115257755511113447656336353272714531535431531715763625664314524271345227363413173576475737421142266611737317721472342745716123351243346276372442766264665671125453676637661744433342641537542227626473472615252517774746124357331372652744661141142456451215141372567154442556664132617743567731116225662241237544145233422324536347736253361344767674345421263711124742511537146236754636664256271765235412326253142526414231762262676556122731354547371714222431632426421624752345316576132414567131113276663221161632656117555552662272261423422625113713662441747271411452135327241432621265362372452527144676512656241357215456513776772462344641555614536473355764764233471165344126611552117725414131421547365617471656171272644467531615734535515614525735222577654154551234776566351144557146135432117332633423457555243151165631152275412764231377725443651345453664445633366527422265544677435745571275623665547156634334211714474523214674567676562125636747416171433224613662551172566563624543617343623223371571767545227574375221423135374545544531342433172615761374144612465142275542151353253312125417655573614572776146413644147712677546241511673617461154471512711756763154335527566665246216526715715322647531416476223155646537421343641513663634556165541533517633227362641335713611476552243136451577775231633323474342676111156337237153257473142576756577615641665673322252665156153733713611777676321456536433241644146526535614437575567324757735551325217111655735413556343457134257712712117674345722657215222646541753153153521423771732644732716725222647132173463675253655157751574153176326576165774262176215355754374226275715716345564615432341777412432333725562241632476732132274437652265744362566635531744253527526744652417657453335433751433415321117351436374627552762124575231441377342373664743331454223157114344317641147634171337763467311745517674117714433667665125766275746746441341115574463376176125522426462526647511257527431242125376245421214365513675731765211752775537561336227577364564414512711665644617622612531121462254455533221611774254641753122357715571133124335763546744267525427266412135662362656444273254717647721323272343531575334653364352353476117354646727554432677325562133135173557563647313562624473716232631327365563613272355134536342645617736416671321657362744672261761754735736761247176473264612611617312216215231151731361741333434475616531255472616144142364531217772656714454735642346516361413522717521175562366513375124375546131113232612247122452165524312425437142544761772241456132663725677516164463552715164777166572252333142617177312227621646617745371725277311341554555633635532361453373234467656234721423167435573223557127274716522773413356137441127121742364346537261436431315537432736175632615525571334476441324617537324574457336363143677623314361333624451573542246525521141511745357725176452667542323431523727455557367345644527752326511713161537676723476162257511462573172365355247421436665547617166316434363717152235214667651571432315143365463615437126113374351511226764424124767662414134572653775613367661466356521244634112323214643642712746622646433133376726423776316414475673635152572474347746571541227717373227321652477374253247462373434756727215555476735462421661124522534464232173116645127276321613256635367667212166677621542644161754513572623742632724711465774112554733226613116311712147651351546241574554275137337545532671764512772367177713636723676156164656245313424334731643124732651455363135466133535712414711276344274516266262555467631222453371631473321251526365251372637277473533155272365323251311615744713366765435774535263314476172672341131615424161716431172722122447562764445264266223334536152426375514271717546372655321246377232723443633611551645562616547762165441624325662165745137124712331766261623373572476323236547762271717212542133413436751635644165277137315627377742547634411227751164135531657545122225677723127247553435532576222543443345641774663227772352214461735462267357156372472527752417624463712646744515155347236311474142433626524316125651765536716333517174756521523311471264156723463563171752234576546564372275543733343542166436323211632262636342516253452335367571774122316243523342626252771762752565126753425662264771362577676255661466132631246656176245346154552721634726233137731566413221715177354666573175211276146472562412537147617331752113721777157422576672673726125445631647754127316277376762775432325311326722163772732741331115337171334346554764251464621722546566612246214613331316661763241136721154775566711142132241676671574622432117722146453616665556747331565716122245114364363742645612752462363626421166615222426277516655215516552562544265536567447335257147115374542171665633711743672575676536113224412215575613363553243126747472744355746537256424142355252311526344731623541523227555214446621455151353631713434412334677562647466523215216552223547137226414553335747671456671465371224276543216712773241142271732264674461723634224631655265371527211656152444166543541361221372233221226363672655242471423644176411543463164252116356432126536477564134432742254122174216263133111524166475732354553315334541161144664543247474362723556134233357146423141731357642317333757315313365662775142137451324713753615255735344751363432575277474156713617334741111553133553432141152332456764215353776344526144242475744643353712371336672615341521426712441152321544545626464646117622157165227474757553431116127712327247161732446525777221124135257315214416544525236257463775634654315745622274127655713224177466727424317636432436141562362221234216636632676732756745374636641373265152431346643541277663651122347256333556343721152151437542777715641226254455654171134222411323177332347625572212325157222354675547164155625247472217322567351744762577362276146476322512531545254424452573521351313574147134741313151432674742174463161113421653261324615223434172412624165363512653335251525134375557367736226414247764246642412277327234255226533542257235476725651713321743727273532554225116714114547554156171443527353175115627364342767666644227366775415377227664252142736562437227761612633522131355551421563625723275367633267225613146126427112533361465714126726322235777712275424562474177711544157766677116662351627331232216725614514626676135221354461621614375155441437334156214653736127557354242274341146766353757663547676422653316315314142556635122112765353624666317134222716622734333171473252723727542143624137564174343552754357234442734357337746564751347715631374471145212217267574632523326467241264114335344225617272435473426445166522357161562572155515267145655431716616764355552434344457246122122123613357136312136475522434746147442776713643746635371554342257333424534111326371132327743151113476751563534565671742136354557236143313775445226442744611477323326667257734667424512313342413736735764767355411753373547712314317215514552412521152435437672333444125614156431446622565555711466117661417253231212361245657726637637161216441653723731626731714616636646522771262575577414416176163766731337357431321363645554553761755777137214336555751427265564652462515527252737644127156626423673163645554151134646554446212662177674361177112667455212142442662743312412423712766411736173351656226361633123322373466476645123734673655171532752331261264675372752241167133442664624633432263471625743767323623375772336655125227725333366647177777343222745567563435655443562473526252347125215447345723263532275213456472223767714625134326647462637677122522614365112654547576772771213374556216626173466437341547662221716526321332677643517764653116371164135251442327717176675127157365672436564635636647537442366315266341311774571455547514753613443266427521177255622713371662345665627672122746642233574662126675461441653767753377667256561462227364553162167531516634424562615554332641157734125171644222414312144332531643265766252574656276574341424572222121636176564425466223274744167361344344234576446257476164513431616344767551325143214123413751242276615654725632264675156664671722713412723677125475324172673174266646741337442311134454744244713617674641615136343721415143435125716563663466323734165672346751551331531177742436144635153767135362444474517144651444263461574323477257527644332467726354535151431456432436162321333172644343327565431775513146273512666434777155621621571716725317676432143741722125264376217147721773221434526122542273734747132233554731413316572113315623737364631445575147626227552343757615272455234141243155223367765656377656371176232547452622132626667545475616531725754366561644622617456241724127525244132317613264132147233755627455157312312632346553677264756124732154215517143631221146555567263562214774622314536544531422351737252652443565147735417641116112131325452141646652332427632633746762647143347336471743135311524432617623167214165261673325476242533416134146664324573225675623765447242767555321667223123675225651615113172743733154456747551267251673313426132331177173143372431411152423436563773614322561124166163446171767451152514664175615445121722221277415555354654536214725216332452512267734423277221512334257535615135231613323234425641377342744667473563715342715573632677714572453122434272512463657737137411655351425155235564151164267341345764245744467455763212521646762611434222611546355667151246755346372135316563427337235263177634674117657527172224251617227313774526413475375627235435467421122464346675446237463127676741253433166657434267326732741536755317636435367117751744141334332763757612551563477564377344166365562564632712251127651624334153743122515215332455444436251677263515666477243511355732657157717351147717735315554357545553553522646757143625463121765644122415671577614275755256456334656227617177152511415153112636424346341351367432513317721124756314231456525652742373375426124145572541432227313444775546457255746234267412353737547214152271115721446471646241214235744254265767735775262727252614572227747655651351261472327527377432537425312351561521754635156123375351711256424577574317116711352711222356121662552372473324543754765233744224311551722353147444734666273726361446551716334367174662613125153237774216232671512377651173511233244764617167241361447557142265671217577676633162236214222347731252132223116416631553375442545573726231543413277465626373647426737654221463173751734563156122135122435615116323516175423435547453627427232173455355726452246374775641663272446274717745262133422316516727363222733721657772335576541353273535137422511417744523571537161433156222463444341624374547456533231152222566312525144622677552175213436724646217635327511475675525272173551572676431511561452345265376755135314167137326553716426375162566331737752115774464331251677357172176774316216546412422511535546157756521642436366537712164741666575451646171647613714223727116166744131651154735347753254366114171425522527234161177314154675376547322675537347356317715514334217341432224351217242352733467171235371533251312427545151437331453214366624165227265112145272247562132623422355375176422243457547742143524642412123166313661744632757323117451614312244434637414711742264322423753261744336417171275435257421626354451224154774224177514666761627365576125634346165757535443636575256217672437247144717554157627545475555121245141553523241242317161545467475213461143467523145144132767141752331445713666372116512121235234576634435134663173155461574337617673437142631261576435576232223223657575152167256111652475717441726115513632556567665145547674717617462756154724712625572653264346415613437133443746527715344771532333677614361764536547463763256372762763413511175152212577115155264572134374523342552643765573233512115555237664753231436176521712233771534524322545622642515125332721775567312577262555646452374467671376221577536675562536666426316555511661734623473546425461232716666155152544113571534372325637535534333577121567754374645322364247663145267357445714567431661315315731441476434244623756155376747533716161144462163452476327333371513521536264412661127762715336577742235754425713126224424166746644161555237742365171534143147624443421345452727521613331735132515141315154455531521254351154254152113631375741723352776726543357552245216113116554644556324761146364214115537414772467323723227165516337214345146324367651173713755521651374122643372277226631326771765126537625346565517513544545754656542633361247732774367155542227773266516733746347717124567713113443335227624642553654234344746313755411462247535722546112617557745676645254247732226731312377315175762571324211443456417631652472311461613445513247721715774153374344436172664372363464275513242617353273462113341511241611336427455174454665213365512513746621766476243641552121762154467361557531464147236447537736314353522674742347463247312226746414167251744312452715137361266247655774712533111223126254374237215176416753364425641567327752674524565464113566452532554443752343112752362742616762347725312455167454624221371211534435166443253127673234353414451234753617345561642174543213651713477162115764751152645157446636116115327226523142245153137714625646511533425733166775317321124512464647323125444334276237341122362667612124767424133757123235575164745367666731345654656313273111526345345131366174663534754265441265122736176675464747536165731761673266777667436224367127722127211527527426573516156177762274336421464456426671515416415646472234414761724524674447217175734251722427413275556333264374177535631272344654542374744363764747644653271667344475271641241756133431152141275655416673137126731375422646767554424324626632535767641125724763424165541543127626572715526326562277164357662544333635317341221442462716215352726421342316522567745257267626231772231561434624532466574676511622245313467243726165655335315371614356716742435345133675427266441276217774347215637331272121165316126217535665362415634757256117631542536234172354736535653454441635112734444711423467245524362454265362747557721377325177626764412342456523415554616426472412742316453326671366147722752223327461436162652717624527724347563632716714262473466242153677667363464364114354723647254655635574153513215552255443451245132513237611233771327774342367263554766651113473526637364433542736425324344715277252212564132245271134571362723641262441755311237244614732145432567125233764111234626213527273462464216516216222625646212141517666371351173236427114636253334333273332362774537652354263527344563227365664351335663471754611357713642427164131616346444135164264551714122544644561436141751317156166572766452131374121416557565314363562437653773524566635625465115513647644244536315371163532433113421574232674536367475161225636317561374474257216256775136612654723144523242372111727433424612474771463177247562554637212672143644712313447525774471432633256433145317654546457711163265473557155615574361125227226654535272121573353121132655617415251672213364723334347636426477315316526266667224652755521557672342235154743175463661542521512756362777574274753232317552642246766376256775573726351237423631646677525424374675634666622225323273256621361742636234217432254574232715153367454366127764322713526737446165242572575613255457723625662572315466747531256734735221126277321217774767176171464327421457314424435133253152222755637174144511153777224642154453155265612353471171124577625454171611571736377416621271272151557742122225156721773724254462557655156371216721221624242612177264762723134746271254771372411531246432754442462416126357631173121673767545174357272326272271674663372366176625554675735145346625254413323276763364256764517312122672235555364713341337611743345425641327255547113247342535754527274346455243164521544731625271231665534451657343421223276135151337123577756114365421731534452576612361261263521463466553227576577627155164356526176154317461337332236156615676516534355234351323457365355735727663313245663626164733461464256345676124673375213626274334761625526521122461173564514351667162734617723161311571143611666714271672765374435614732212272114623724333153636311173335646167463175631145521442572224713733611331714137712157237543353657241364466212272477533411657335352512162172222462436117174147675747165365627157334334255561547455473141723132165412247727114261621245456762272754271373225633136264731536156455274334666543247165471545563441151615413351716716665733412155163355735474575467345751431636556115621561247716744553625712657572473542676667575243635437734725175552732622712547232166772474213777264366667755677277767237662351211656545634334245355377467616646635611565117644312753121772767762553631343421152367562771371317655151324766715344433534774745622421562251261725451736335723414157126443452664422525467362543351364222471756331413363423666224453276346334167351776341521553222541374331751775116133126374526674733575574573323127442362744644331671561141572125272331626322746147235343413725535717273725333347363237477163647347361774526753711335374373666534653753325334546171521252547533222526161715411311463577765147363554464666346566646137236643673151727316353232227732755653232566552613441655277273411215421776755136573672332352534654437636625347221673735274446144417573454122253434737666334241733772232754272654341436263617173372636244555652416642467162772343646652341746216163443343654127475354427514345255623267554156226754326377744662453662546465317276747671674373631321576544375326112173374634226451531316737561373624243647263247213454247236467751315762712236357616344476245134374214416642576667625266112635476126571465554344437346257353213125114142627354731765513541163474275511114242645745525112222461212663215521725613375127231411532732443335357132462273127361454567145362226142311631354314452747144612725642113216335165444557655256551445556711754454312657646473262335214325322166526615773533762246767411254453245246636373613137645526743411734541543414766363367142636317312177145516215244473317613533675174227711633546321541442135514235751752156422453521776121571335122326445221555241231243233465211433477231217125257465721376127263534546777772537577262323345364737325125226472551576742265725412444166612651736177113433345776253652753132345256277634267671526215473726344773713617226315467272152364312721323623554475353375513741573616737212676346164535317614764444356271461525524117737611327765412443612753436156153144327316166423615113566514522131662622432463165577255225576212262364627777476256314727576511147465151262232167111413573565671651557675721247351322613262143337316477273326245371652217424157211747167423447217275427372177132147147211545566515457316536631765712633716666456214256133716225615217422471257117534441742663366216262523747651644421416676344264114465653542746477651452226745566125673367555326374543774761536441137565634366327113324122175142165245137676432534776517631535754572215265241415124764167143642322552372726277622321121245643714161412725646547173226332116327135377663341334334567423645677513443433777724546336277674364447624357566661245262772171637474365734773771716744235455551621451153664164475262726664541634161177576316656416621576153345644165244266765546437571425741646255161411471165737771152746233767467647671716513423647134757255323371471673654137413417124132674323474463641453325567411124314747317765463522255643635747472166747747615361476173655352523633536632533463423332721456621114376373666324577144436474467572243263551474154257533373142223356675254324642451423763471614251741675227724262435744473475113327376132235565127534175454266427551563127675311454763632361243217267571572432571111574633156461511562751225414535676372627656741111217432172655545366662656454665625552171375143772651135114463164753154213117327675672513242562356564214536557537447621235514632521352725614751134226332123417672736232723532534256173215566546651614716251434252173324212157644124426354427246446611441546634245121645217334272174147334311635546724445511321432255127541644427413261651714267375217274261742714433422532367337152171531535137473146231451474511627663756562532746563737177451643642241126463776546252162147225521136247117476364272412635751442445352474533571113453647535561146564143417157271445132175564777561314756763713756573774573274372424121636321537577711472131457623345447462554636547677712267263427374354531225171762174312441723743411253215725234343615241232647117326657462116633233157214571421544431567711514237544666345326474146327422413737114573337263242657673634775411322613356265612177257444155617731333767737517726135713517272115352641743634746743553124155267234311425772475463647242757526432264335146215145333461757641614242566473333241714342431334336143422373536143154677154211753766322462635553171462517337334724747315612467777147347374336142457411262441331356412342177624262133353416652727651224425427135241666137725226275216161733635563752676661423444116715211475355643222722264521231242153133761465677273432175221355654267566635324445727227643717665224263155521166767613567271157711327736517626435515775114132234366452333336212153554455162314753512755372332456744572271433137421615556613741154523754226432314575443333741755431135451535775454311655252347124336115267617544226374721457372625647367467435147616422556516717574643511654452353324673454456536232514611456625266747225752526441723323462455173717132541124671174446175243653363377564766365575241742576274524264152642411351216414573514376715433711261326446211767251717611555766175137165126226254355437614313324146755661422246613447441262524231127617751175166454527547732554657557556676415364635623536113463341425214755614471173465366636164125647454255615735373133125635241735614432232726556163365241775772573236361654432342511436445236415122647136672146337364337252724626223246227344367335751666371673416133156112541473372471321417762675223724371341761247361433431531452764415662771715754217464656113313165643132243151572541135147571777474177325142223467413316356367447141274617131361343775623562636733154446551721164453156535731524123577456452467236643426212373176477435412552674462744765125545525561222577771537744433146624565443566757156243237574122124474141521525534347764143556761421735121162746313422726474363545732554662267127461654533363636444722312621523772251544173567533345415767753363677644363642636153533323322657237334774352644453135476742147264117677346422177414265362466524136237253125436576324742322165677632561274747527543267522131621714362311176767145365447543746136566137236125242161624623117113172774637633467776162643164775426525311313652652451736356767532424146176565152331425354153135466774734573412745111757374527456467752443175372123211141532617645552136537261473133351324525472367563536556627132557713574245513472656634427443622624363111561131335221773747331524343665733147313136325621564747465743446263135447273156234741716514262222424271331547364767161753562713166677124117746436545542123423121622724335241275142736351522725227313135561572225412357521634555627123671752214766313256451746521544133231452251172521367554547713337553617146255521666745423414737725327233257643132135571243556551373336545652265362252267554432662316365752377147355513477144332653572317541654612353723137573161442613766754455614316633613112257451157156623324756641131442671656653761644215672451613747321525323712117637327675655253376347111513634717652652557415645473414655251743737225463424121662242631566554147162722375717176323626164643457466662222622643414165764562747717775237423717261776676456543554555417552764723113113147715373761521576775316521141345457211426562742551412275471536314425576546643727257517257334275647427415361664623765714746466364337267726116667271771376346265631641643564554573672732756615377365454742317677257543742522462421367653115164222377564757315561716715416136651777165453414262374175737552341457457324666316635354741626264331377332127642544263167162171623164716122211354113333341662655353744766277246651224557636723641136635546673561612267253254632164661445344513614242161476273372167124667453743357576541557717215231621765262521517464443343465311473513321574654523256523163514754445776166544235554427127311727464374112167512376141153235337217746541666741177715133545362423426474472475415477222576435577743712452522462343264535411251266566134416666112331125765714242731734575454265531654352264517112226666534164657136414722314214536425472211565661532123454716572435215426514374541653322123763347757633473342716174547751351515623516166413724645332337466656337727636511174667434676636534467553655536546336473762756531216255532415372335165475564441462426373435374527437276756323473645575242671262425444343274644231611426616645317753511747535242433615576473224231621635771535772364153623245562643146746222122262566351516475673127114746242477756575767627427741743436464643732722511514655551755332317615317412673754431127436161432433265246336635312523567376531174422336272165535671446376253453736253162312754644717741766343745574774344641246651756145772475355666223771734722237145646775532432254654666462614621375375161323462746445474576357427341767212551764532472761727163121336247425424217447656161261573637643776667312257344363472552254132543422542771635363633227335152335577744334331251553175141666211711775432175324362613417516347537531474714456376676131213747114177147542226245734551661275217527545521654463255743223352274265241724171646274711333662222537464665215373314624147336651134173561411347562263761633612624435613765122262327717773454556223125533244563635726636365753775217653276755347143745665463663424512743657314431746634374653325676114462433277414267737325747532442217564715755465457423236373457562657341255735514656112732316266363421537443234622532745167117655337514442775457633126745747745472452237347115772225221126112662741254317312121254117313213373617734456411623252562512724464755761536417562111356547142412221727174754123444473257364645756762712316122457727444362147654654164336341617521565234442537225635367235315267446263646112144637456412144762126755243254377172141713236535131136552211631757254455677652366463352572776763111566346324663442161251541446762137155721477754363411565531537143762654625733352713752645127125333612414176344545153331234357722474656255122576313747764411322653447276627267131426434775746235563412373323436471335645542365235475647373535316544347123362276737633654147712166422335773333127123411235136254116443243565171272553665372236751634242537357361556145177424433415233316444474662416416362725277722453321751546727652617123744655113545643631523621223345531227737424212665651352465712465611625767317477274231571271451253245744665756676421662622771226553256757544443375565761377312157476473351625355134632752723232271241467561437153647146357763134347425575637646333236274264577223174745631735561115135554334257667263147142631742555333757564443473711136421526173637234214652323635157612165766552476227725351645542644162762537677631534462566453631236536111172155342712171735421654547347567666523134233345127275652616674773556151575132744774563754643342731646726642136546225432126454766764557443757524457313535563173761457433722714563413756526245545613755457562337571277263111765566154622662734715125245555645314232713313416217632446134611453276311731371213215353366661135446277372433465175543271171273751677631173553252747261417421135236322423111336624654724676111634455721432464456144436136637133511314451727465373747752646652332563241243272142357244532421653133446563714231555473255421415711255234546161336116334176337241366123567416643454476226742176235237426551336614365216124434241163135113337222557311213746573572115625352365552673733421212561113616444663341621123556717177377671434234551643666355256256125216361114462556354172637566471333151373751247264775377256116242551772276433342743472526437353632722132714442637316452324562155251464674442634556534677446765412542242776153643536217264153534122255544563157532443463177453265312776556773745223652173252561333633577311715546245355772142314571152222314262775533342657112661777132452261477264421716116216475421717125266375167261763723664346536452371242741757166467747514551535764117224313331267275357126161661412434266531651771636541367647617263523375572762156134272367242377743412171477715712323561577646744276317466577571634222463461365174646526476546743564744473542243147123672656663132446276464611226132322621577172456377255746761773246521511637177736764457366566213256247323433346344723762641553177736767424761616477715171351571613411554462443224316136275364454735124552136452213727757416144656467756361227541753141111726414254352317442327535142264466426254622144172354321146354713564513264571311646471414353145423263423163123277737112556763425755427725241572576617775574756565337333156335416261377141655645377243451475355315336353437214744777345426264114741516742174672411546422231631326476214515276447614645761264217161121662523376351744644754516534557647222461327334221727372154632536642117352224631142763111674157153255124445232255555775165574572231153417324641417226725615466611725266321675146177114664344335436356217327225745145526362614367215136161113721444315145335153775621621741432417147744411216617472564662634275171316157171772153331111213634465625524435544152475616627323772463336611476273444235711754363531175667137757424237732747475752251741755753135541544651621426733142347755457133271775166222235542776614442465116125623656161645136126674133555566262467366364271723774421116556475634673641362474175557567445325212571176325674375144733177731443633744616376135753447751143221614112512342355262527636632155436756131474633441734626512137563361315554241416613315355567557125356124541622513734462341227331166772555547111425164317442375474274362246247322721462537656536267625252767131334473645644616645541455655657123562757653245222715152541347441637235113547362572377665631566761673425172741321557557252442237331712613126261247334463626752115215477114132357422257452361472223773114426755617245273432462724225545311217711724644226476661323717632752664667353176746725757461453552131537575174712673412441525273316462432243744134576144136746367245422736334756627445267753713641522624541265241315723732323777762164642667513635336732173575564712577666657333776672122462241652223122776632223112425564122117432744143146461712343733435556522727345152612112247634276164746351225723224525141735366365763712244646277742646142517557365767174672531435722527711766735524745334511654555721621137743536222665446434271773766273317553414574457223644743443452624772234714452415712315753222523123246741315551251522427643215626253167122661725161333536741534543741152242254173236411416561235443641175313732345227367247352235423623565271536351216333252575457743323132115742174126555635564467722436647354563166744537416765771234122756525235232615547435345561173311363716622173651534361157177522561251254354743126566664613766254273417155553165143742423122657376551565554162677173445741245265242232116526675625153751114524442775215257157651577265215762446646461216215263453363123723156753612732663522151416637323632636137434634175422454457512716163716143526247612261626661171711221225517425425645746726145146361422273246727613371312317144764125446773574664226266527643251664421337621316122652435521745224677733115246241436673565552415175171522337154127121366245525226736171334333745157217145516431334155311745251167272325775652774522343341265314325546356233333174231675614554177755512435761471135235737414135223614257767141244167762644246171362111116123257667666252517411556151172175422512571427777141127136236456121473753135736143365371224762715255443166774517757671622422522351126535425717114274267521114431453236112622534254763654156512661225126477764412112471216767366471222173262644154435546455423373526735444741366132617544421657331145773366525437622616541527462517316555427273276466432675645235165742515635364143117477153567415212573356725622243173272561532363532167772665121337751131273433115224224413125161156271332715216742463134436254363114347542454251336733417334153475232315543271333337617543352632455627464724157574575552177464733414464376614755444322541521315555125644446254711444627771232677522317765522214367642752164355421762652443774342337544663432265253552635126642715752357723341776345431342137347236375316534734661324562766132145116647634427726262737226132247167755747473414322425341253571517525321372642265337275232623175757512742136446222132665741447146137325547574316632117625762717623545332273743637232234623224316564411742246641664716412133565543115312436313362773644156445213535356521553212323726335311233515354137325647113414447171315577424241113777717267724145277766632356377776617635731555375365361426467357341344147234765623343424463331366314732154653436763326655221351323625233531264772334323156324345541355647677371543366713635263147177574674635712242143535255561572463152545436553771344162541722361715273146724334452767255367437537461664457223652162776536511455413671357371767166276253143212153343571431627647677515132462667124563747753146735617412667146161551145152366253153725323321347416522437766714222534356622755727772145243134556133561463761473564611446152547444134262472643322614162666244321623333612777232533142341365716172426117417453627343577536446446622533574541234167557534467344326472662447654274351434174141573554743227376636374347151575555732436762113675536274312453237743217225336726614444175343666662324256712675656334743577267756327746646247736662366746755664525632436443555444674461467256632325577455133667367147175233117342133111713313452355376122533461774225317652216355215121473743152574435524655524244156136524742311765637224176433141154745533663163545667367243447656263237426125412261331344622727655272253266636267412447243546423354461126673721653131255521464732312413424717266671737472631445775251522323352232324375562546446373346517145351514344114272146775323115211747122665467711334223656366711116232437367477433245634563564616533116135775137354137417776551544244157647464423146117217175162616314472341712225246151262717271223654121111334257177216427556672267672714241576616531463441421647737331646735625411647223366462466422617523374256333365625454734616777661312747563121774452255646446354576772761313574252371154132757546447746276455273434453155464347315421232117636373137354123457522353616127722761275134645224276444735647553142372125512333153627424317475612242364154427626222363615645347653722447271364225354736433157146457724154274526443137612321235113116623443714762365257421545355766551114426114443362243421166765653655431252726366572255264164651357213242444473253471227746334461513237413143461641164167733573554277232545275372311727112472751511525612523453624135237416725165247747323572163566473454255154511676637121446716557115442251643123626141174176753765634262366561163767177616514324276516634414723232152254745467776757744425121443752366773552463361356731543527216336325573141477546452526277111144676466763134221176447367412416276745655262724143771636671752662677474124317733324417317516615275245656411414755417457522313343766565427671365237214366531155454542224273354266227655642746525261324235462111743721614112774622163477257561665277461173413766314754773752142571441567231641461275576763367436414572624771251267157765415342323663165656164223237236176644175475623511421743466412232226637367772454516522772633165417463432422756341224414617236111166331514723757772553155212214223267442143532642721445365427142367445551245322425462212164767147273652176621273743363412772125256634254746767473623364474627554347156464472342725453234517575232351136566133245114427211371735252474365262527427763125144347176435175613265127127421255612723567476177416232345217335137442722652473445357515237164771654146445514257617761613532133231656412172611713672174447763317474255476666761467761335333665635352123621621666755121645344126755367561163162761672767413136124543523522227437516615557152763457731323536611652642537446644212315437724514663767234272776537657514516367757465471132222164163244525554452537371425747257677124517454734376337511214323322225716743346177734125236671322654354242615426521122637437563641476233314365231352656621777275456262543372226255443445635576433362557176337146624257734523557127465375221345246553657341717123761522554512335323771646156153461543127462634455645143657766334321523663756425323246544443267722113413712743415632575252671673114555155363534321611335636715336174624542135671652725517471343254647324637531526622412453571226724665352424416461542117567512515173647173653513667112151242513233631752347617217327436563735351734232366257411444516475667436543257416344315452134763563627574233264231562447742451137511671315533247437673617146251232421653337764631621371416344361643141464473166261332463337767155351536276575324461637263172277644116126677543321375424643172176571514413567112251124411621331211461743221334461763544647762124163367512656224424161554544166566234216413246722337326764572462474226766424326462524533213463633445254227652521613356577256532216124645533775116444235463247577372755533144654511345173437416347544527723321772147551215345312266631624267466574662113551272431324477735765654443554122152335576337233133532265654256574747426442376713366425373631571266237174344235564346275467647667413513356773643316136675762161742424641531115445361342151356563735322516631376244472717756725331174356141212746576777615671334544361176236542413214374165137624343543377343674235665375122173521165535452733456245115716215571577463237444713646467271123763754732355422223411466515516126515221546422734316354325117121713425613554741461235761571514714267151325133163316115265436737465573537442167422443251725621561441734661777152315724736437516744746535645653714577214256247235552325171757251742772511334441135467116216144241541732755533646515435547463127275377566352736627462247116512431271151115272174143477421463545164212424255564272531672132327125657113437376126212272576127733627637213234147767321517422425617663715432136145267241273455246225636473576412131245266434351214677636226157373511347213631751552455377316335616754665261377545613453313147737736325145374442144571742266162275137634474242355736233562372531435437172415554466373651227473547212313465253611651146167131475326661346754346424631531743124766566512527254126672756154465755635526762616427411517525163771674445355536412542634577315726775342277653424517163554615476377735245144476166215574354725755757515323674522544424742555254651133655155447713546244513337635131437246733743411425776332415332565623436722273446156721263716355236423414645373277171321631477214166326212741262373535612751162527362274577637267552333632742223151372662764673542714461566717426667745234733371513341331332215263157674316646726264531554165523122223554442354313755143563334556761356124351711317125573727415415553454722222444365235441421253647176612723361637444227263477763114765167426422467121257427516227625435471343511523641613663575571433273231512664251452642323172146465721212372131376653175315521367162272552755724712313755637666776236414713525226541155537537326353234635276722617614567553516444666452172175475366646723264241547575726346776625422314544461455445341274215767533165453111357134661711521231373523371672141144544736172334455746475456574677364161612744473311247116765466535233325431271621744765674544327253615361411573671477251134576515215734115365664124153156645617337235656475173615424743537327464577265125645346211575252113252632761414217734745135653774413616274246566671466173651162643234144671451237577416115335422145442222377534674555576431273476234366515551132527367142361522546214155734152224444361626172366216625512426651326765246266435256247622164143265173611531564321235347546343563472174156236571724557535472762223422141165754157534621457665211552766266674471365146125224134222521547347677147544567321635246522677743743751744424556531376242343436634342356121566453612636113345322766223126375254434627437173736145177422442161545237213223617623334375532152236752674125526471134564346564721615276522273253366646372263754754664447667215444433263511727416116663643674431113334616227372123171374554121242715317122761212514733512135252543463417776236427112454676424672237611671515457467635326267651115166266447276235237163613771221147775643662516342551743454475572512475665146114352466624365156327476355163773432571574324132655644663563164526717256671314413277776255665247241267147212742363363111676334451477515545633272427141121153532612653337114323575571614733475676163427531174354223315621171762677252325336173426151754774262453311553426227552576564264624153415673234156145315163622373621273652315624537251177463634216446645166662254313313443735467335212132737165625265543237176141763177373222174522417133143666755475525256457142423326624122137616562376244252413755737353577671547661636243315723517656246125262362445362633525167264717713542112456275472145665513223315552173231251137234723474735356245454711126223155651211723561415253765167773231215247233512653511116536641273213131253435714375376363346475617322331713515235776746274733623557113214565427211115734341523311233544234765117322735561754476421715431147762114227115322653616727664771666261624635457754336241227627727747122515454352716643756161753157772243771336531434133642141456455672213337323566362766165222171757272545577246175465473126336424544637421435345224654357213155523326367444161623311756171316272423463426136327562776576721541713561734641612772162151653747142517724412472762211326314711734215316641111311541662534235337762612566617732716214451715641756147326326312523333112324712116122765717541124567211432144465267677367445566236156333447116645725764722577524433356734754641554362654745721465633527124622777326624422225374767332255747247313164637153512271244562456313434654446354644275311771347217654352626654247766621122256276365723275162517626677623141751711512143642234317167261516613115175423177423244164173363165466215166367341656465776325733572432347267334522551267123527116252576636773366533543654221141166337334224562434122327142255356221255677365622334565512137776522737531577253426165757353253224321474554572743663461517144477221272646436533123573665571332255474572434216632323511277324542372673736566463614156275336614134333547526464754572521255256671345612763532247737172221155634161663252436754757766232236721531736343627615224214137262176351354311612763514236633561117635173534625124514326212561512616415672464376646312233413563744526416754475362314536177466163555436324165624155422342421227614457271617472111653121352474476733144336465617676217336666345251454211741631611441474365121135114634631734126263332772523626327713477662414223567166347533476567146736377123312427455531777667665572542644125457515261471456436226372656377746117546675154717642513677622726537524523437743726217411672765552643225552665151172142222432316474725574172621637245361634755725327277721272376324263246556447211142243454724565374537426274315532155424226665436713165124445211526361113773535446755666332154327357562161545421227616642241713652721136324157371371275512614211373526352167727257316161351661122474332551553461533531565765261331775153321617754336516424334367467115531522631274156627443172757172745721274224723524453154261317574466426157543725563171531561657427263277255566346757233322511552671227346736672661525746421415716121155741541131323131763144745557765563551764115332431746433327215175452551153715262467424665727626376653771313241526453742643736667455756216544625653161254647647625524344321712561716145643727721663221742154323535352255457452641263361676347714552766544612775225564664511621267577443724335246726514266351511461434737553211213254673542613751724431577137251476367543134323536312453475513663521616111655321152311561332732374665416613335444676655711324655334176666311265645544354577164617437336267317175662217661516311455317226357361156317217461231467237263112242351272333263326566411431742356424534151377733672533716713142714466264335431721275566567175215655615432175376427267255155577465256712222743714634651365256234753653175363764361146214133757655142453122511237254764516225173626255576147255272672453376126377336175712737551747276636447411343254765271356353473457333464532257546477524462642271234663446653641517563223426656712562135724412462542774346245255425541342113242516626354371135561345312532157321324252612725575621363655153126351776271462243636175563471113647747766746473656577465726126424527637633472771662537433255121672765641312522711264337566411561177774226377512522245334174254363252674645715177325151561216536264464247732551513311577617664414252566673151142514553644524374613113173417625175653231624264746366576247343752531265246776362332321236262666743251775774544711132356126474367726727617354164117355261727557562463555514214624661617723671556136413165617213611763175454642664426145636546137247557226713161633557243116733157235267761366464131165477313731645564472542517134342212254566744424174247432545173415643321316651351715141315235671464726241745214374222244177657626411347344375744575713533511413466522457116514463375641233415743524163773765325644542564126533714514723413254642316675471253465156457121357144215175645654324731616721257155475226773677233546737522731146526441342623757343136221534541422467525111475422645567543327462621773425564327514363356777747342543124663435316745314214312246523724514147677515437151522646521134515221132272155164245541414527171533755276325124451325466132153235634555426347775137675522137453437715456372473226317172424363136737416337517743773724355725337134215132714717211623442345177223743456557252213315652717427542736414371311441173661262145713327257621152235445735254557462633742744152275142646463142171374772275613224747234173471621151551771662315671723533273265362557651647777661673255574134674241237425335414575724573217716323655517342114664557237461552435712573531133531377214273442614416765357564751271233763321522263253611671367421634132564535764372674763232265367663232625525156446146472712441547264546331145112726565156324311337675631656557652647446462123246256133237774763166222261473137765661114215614232155414555151266745166517271725232164441167276174614576637741455765333551672522214663467353532431275553533126257737415454137213522261655367124717752526133153435755734552555267274467413611253157544231577237151627757252467114752516756112726222227255315415225416274175311342555512453314737671431151713747324716243665472373435554765262124634651331177327574462161521143535123356466412472147457642765231153317357331417625763757256662217441517532612774474271237137241316476343645135675325447453317332211145532344745567445372733667117225777235731517644314721327221352743177773154252723315337362436134454345662411672343117137322225653427116457551714425442463515424656761637614625467144374666437234734726621413352276726424361215671313314556773332134617436646447472142517321763276771663541516466673155227316746646644322364232122527352374361255151612741374615772146377636155573664272342624534631661665563353741461715217763467566645335763261447532254343622577575447136566522416745363665744115651763533515766573422611325146534724311673472362624126151676661454226276556176361173611112671147563513471321251461763264345552531712453525743121217546313752346457716277165316521674444143376235236766176736621671445753472436242757777563365445572316551113621737726677325163644115173273576662674664627526774525224545124774273672273246156527343727441232553152313627444427545741724151337644264547524277244742754562635531347135111537554261466134236722247152764146734543612436161172316434723341253721272545363513754611374627744247366544214664351753712315473236166754515213541736347612461715724631312722376413437521671111674276326511142632166151347452541362233775223375525433477545633151474675526167742576145133736253213714467475471751566461655562123523273143673171166725214762126567216423723323342234166465717556517563754426762277515454345223174242457222127341322166524346657365542653155122244564447773762637323512227131356135572412672766121472624621167663533773362571323562655441547535172412732313444724322165231225626267563724261763425524341562354313252654212412653637264343572222541736467127325671626353634756344456325331362152265212615273247514547464432651166621171532246241614754317614624675676162327343334133653535236626517337672736372175363657363356247373363565315625354741111447273223652122664446214712222267326651236451641224246541654113146623147616173134642525724344652454761162662316173356141614363527235333543163715342257337167442575322775325725452717754163731277143244775617345555653252566635733267576457415262146565654446343672561437577327534574362146774363542625674746712452221425325754231524275761573152263426257755411562323113373677236672416425256325556271637227253234365326154617516526612625752475724667565266346132113366255424227616565414331343454113632574335336216756512637315726323573125747672467441635666461322511124722111367325411177747773364515111422557612453563667561216577421553641722277656135223335215257434631124353332135657313225752625411413257573717675536162551152724776323473765644621446734142445735676357647445127375271714342156747774672535252372123224757166153743433727655774216542236345164577234446523224746734247174624373417163744466164156474325116445717736332761711417467122734672513416442651751122761713276766157431265453567663271312643432446512642471666756277231534111246227414745743641661615677477635551421716424121171362162142236773746141114425544514713237553444147164366741515375717332327674312331167664146675476333565565327562761161464344274747337275741726234334572237647355317241755747763426765312316344766113117724723365265136257724523345557541243563323126134135571245633527735424145367273517471615311762176647345174215476446437377366575363427137642312266142761131711547112134711343671475515727221376317513323451731172762475417546376361613251354474574133674642523551643271435717576171571266457125121351525425365115256316243256662147311743672323251111636265154361321427727252576711214122647267432474467315675666776572775135261437275147626424214166365217727762712526512443275725653565657566757241133376737521226615564443442476612243245111343343113467144274214522755577624357752231255775425171315165757425514741175766441352473322732173655452673561446613154427622722221177356536763665374145221333665665733527537226665371224256554354147531414426224656167574451115533475645311323122641512241451334574271122255661754134362321545336645161426316313727555127275731636455421441271574563364425222374151734761711272667237661423544352544253345576676611771142436765233757415366255157346464721736463767121751515423457325711774752252365462554317755117612712411636265644313664752554444646217213131734357655343512267664676637253446174163726311437447121724732575326145437372455531544645442523465362136266334216462167735327565425732557424145715325222644533475271367441756556472224422115356266434461577364324447113313167727663332522447272757672224543544534166257435446733133256532226672412347422256163466714617131732364527561717715265167557563765225567656761753671411466335623556326313112316576646775741433127653474726257236734734637663366463143656473416421724417576246775311665435176741143614575512423244342116617623741323112664735353716226211113576532243422225664154117722232622676722364517475125525537654135315227357147121723476251245552424235374217321313763611737624166512332753674147555147343245764744171465766473541266233646456742561641437377745273735423467265554647113753641362774537776136573361361665263433533216226131622247277476315661235565327323415533663532454243376145617642313167355747277634264171763767227647575472523415245555764364226372262733374556373261676426157622247553114562421741747772777771126274414264325423626636137141364274644474735617363147162767235655343122416216346644763373227674432633276731764562357576232122665142573477466256374365317412177516155435514422262721561543743733632415257612247442527775371574267447364266513557732122662132452335455273745322336547746243471643571212627462524472576422763157521652135713256736317161461776651745242153412325347265424535424627545764335467314224776542374776753542215753725547147123364764661455617314627373327333662372757125776637432462734761246577675727616413555724227715753724633526476257625337751163677163675247171737112655654753342461747573514717631225114512757225323373764476571632542114421345276447247517357432527137563747457333441431466323675521761274241175552514753726417271361317634154733214721312144773121353256673576731423654262573115343761562243255417615435775227763453432757374746136712513434533161444653772317324234414661434153121616177447463725557155321636347322342217256661437355277362217262517132161146273141651611332251532546655661672126224415531166243417315775254377331773547666514244216676315154211412666756746363173664636345167227327214721646347546331366775627651613314572527415357577411262167347712562735117634724755715223261352532134536523214613473226644713256363156131352753323745632433762621146741267475627325127354663145261166215354747161664732517115543743573422735645135441713115571116455721124111635511673214775175144646767572675555756361777416213611427471671566253223213264216561742712113151117321742267772657753155466775116752256316416575663311156757562377535475247236626357475464354615667431265271174121151721365145624777715546645347456651616424217516611454351275253132222265515575367545163114732446562671551231271144643364757313271372546773712737434752461313743272457447652264231626276331634145412446343662315477221143146563234512356736366127141146454433647417655561416412345543631264641623711577642674747624216335132125436516572673377462713757553165742512573173323453763262357766653155324724267626115545714713612316751443171164715563464765366411415552773271612471137546276246377745255416661747244221157615635622457321271416324155254355731423772733154316152466324143636761261564112634533112733536723612741127641233516126423117771373571623676713415317363773713243423524124116356111151347641255537722523225164766263237225453226237413145743353162516541216527554535142635374613264147271764152435242346276667276613734134441724542776637435546441134637313515362462466441316142266553573145675745323356471316634411662376776612353711741212765426626746656437674314422543132615576464361425316757511776312663442322761123655552445744576774342673272313711557144541322132675155416641252327335721743275355164645623757212345736144463322132636431626541165573517256612134321254347335345124316324325421263312745172536241611554276132251512636536772727727274725631156232424416417571674733435332336362444775746736127513166712245114447747644541462443751763271631464472457233273436145344655657615465533545266443346173551257332171764231151724252162451665722242341775273215733253517617413631174174615246752376561551513276216736427244732262147225416626641443375333735154461574445231225472734666163611366537263621653524726425323524562535455241346621223154616262557124761515541524545154645664752163453633421673466115662467175374652255631611256267156226335156544771663755114724732744516225173573672377317712325523363335745426626166717721243634254676313265256775616617125521357631663311726737517411424266413317316547742755637761743473435766627414572776462362455735262767763735525715664132212174634742141545226711671214544145422136433517222233314446132635317424467741774137557235157334154236665663752474463527244366675431437117316647315667613342343717142163134712643432423161315715613131443235422165341746716571362575752476152352125223123773732322727371215344466321623322536152364433553321151723725446733532662345713454563755267624636213412655347625473712522515117142372667335427157547123274616732162442514257374352355675477462617245316145764523761561231377452575437454154627337375532651737127754712337123145716663151344265354664231133347241737255373132651247752765332347353471147543731165754263715243117441564631234334131567262125336314373757272645253431457652575346175414334622457712167244415352273734416262446337546563334263673116556516742674651647214632313535424364171452751344255751273646321767577646744771527324543137761176247323131631714656324636646166772135547634136423455142135744654276744147543376544451565462151577573271154515372147226764373354333744763333174371233243662221554251667234644315441154343664153462667623377137674611356644553743222323744747727422666454222535761223617214117143322267512166765171362413113221654714755374272123152322534251335646244715346647266517713522545433367171534422557323433114272146475574577342517652225637467674544415175132413472524416546546322754565371542273476756733616532146636356543164324132745436472527513452326724466163376732712174345522665567125145474371563722547212511357272726666427566171354276557675625136115656636547665325214264757573575372366242132755616226524573153512132765162477251163655335643233546735555714642162447213111333776763451243747256434444745117577567735163452417242516313135174153267166345615533724766371721437155165132512266562267111322575414222125276525575134246371547322655256617673564266574343421543747456457456624234214751222417675644621567561325657345467631721426771167146172766633472465557123612122236246344131377546433436737232455274231534613657432275761114343272614671271667643163672674442751343144264343441751347541174313447754413251424622656533654475652657431646111564161145344173562166122215127377615122766366755153775236151172773515713643442251667373312421522163774462745262261312743115376476717547654463711153447751577457452436323662363421165163233217354527342642112563662411134355313165122416541716316567563322753371724255232323365134223546744314425143675221546363114371116536271716375217375324525165276151717272742553522346612421252751252373576755237553544726244352471537711775537536173515522357537673613724567653653243725163247221522223673761247574167615421354425656346636163142662562425663326173137634642267445633175753274125422415173421366752463162413224165236145471637545114423574735544277114744731714434277461173747376476774476471253764142242446516446446726776723433136244522562347315127716622364566434115365613554456466362411261144666524476664333161127372417635213774535424751376512442574566411727573355164214275432713472433535616353262524333717311551725311113641351542276671543727723544754352416554714675161353454742436164244213624323122261545332476316743455746411124443437353512354351527225276211765331357542177634717643463325423256375361412465757154333665331765626554624254663762335625567566261136621335625314566242637776734151733775671323161125211321133632644355144117515627542665617314477235732454435227374664356427767123627255522344415165532575574515277216171346117527413752422114734656655172773764124323666276573277755574774214716551747566545766774455154615417254462352337236147574223524456315144312444461364335756331176647454115351737276532341364414312366171635142152754211351123463731742725632731336751216211467173366452244557773612623654733732272146273652643345441725432125455652511376574722475611564665544243424645514327577261336726663316651346726552422351425317275637514642454423765333474136766642623417565337526351612435434311413745733657542417672155611532674377714462345627616134636772352712613453527413373327112612157342643277453514154316427521737173257611566141546217142235337457766757746552736567674127563627737624632527714662653276365561654646332525516275554113741631715463336611361221767412715272264124467451527742151122333252471714463321563457166171344763133324772324414163162112237735247563362525256674173213536421245134454645464244644174451323531354132526465112577327165227574533236417357177361333232164743517143614753664712745471571214665513264672151463771537777732322212521217336574174166167153425556741162135775526124134143425264267277522323214737533257422252662722774337541353337544616134322525725441426553216263564577141325126662735524234745435216233455176654251132466262736451273542352251766772347166463342372756214322421232467565335772141436256722355517667546413223436472427331657322412375357661145774257214462325657117735614122532347377137271766777164665467553171147242163271261217566434422733747663212523641172761626467664161757317663257357565741717776414423555443752717176623714173634416174641247452462353654463657433253647764633112347636364763137474762161454176323326146645342222721127275775541173716613531163364475324215172272414275651767226666437162761271532163657767112777542567157177244464753761672273157445544564521361666175355675114767645324615144222142661551263671766537132745567175365332561741141723146343133232661325573671125227635563775227416631421721134657753422621453534321463565671377365546632177453716255435336365325172766266233634552315147716657466764514346633321553277277765744732374121714446424744664613471273453754266624465252742342723743317625334215664422717255351664134226762324274645146155523673327152742273733327233142633324657664262323516147163576673335133122542763355162271452452725537142427625363112331476655157633656211174733233466637624343435633543665567113461456331775237124412111557561137275237341764116457667755634147777513536746451436325424226624723675262366333376347213544526231622347675431762725156332776722224357242174313417324256567473514242375416151512444262752721212627757632546737165615723315345621736122317272323114625147614416673425745666121332723447431171752234732632535717173546622623121453267452545445465743735321544572137776174731576373776521574265471571527133214743454326415134774175341453715323657313254177561277645773474335533565173513572713116626267613377755566131427631233214243135464462247144275172314546353666336175221235557566631414332637562463214336124274277232666261147426747474425236645662167776124276773132414227274674774175176427336533173534555354754374775146773756377554331165664224633441451756676664227435324647443712266364255145561534466164127632741776425341121174542461773266462463434261463564142427531747777355532247317766414646632746136754536664636635575363146352256245532627322274764513727755213121613714635265755536751747557173154354151776615352266463342451766435253253233762227256412751267735642176323723254161742341557562247457421624241766764327465433767136762164521517515141127754363466475575266357431347361377726366235776625462536754624153155123737546422277454462164462716531225273145266443112321666752734167677215744511223544523532625444435555263654166342725367563436772541476153463436541471457724633117167166346672565726175217563215225223761757145741672412453113725537246234152747236316555165477144177113637725757612577415156274523523215222727777257222136755326513233154365376425446652647472463616315753613545213177355235413714735643234511443653672335276517224177534224352656247413244116237642714336274362217242565316132225427254164422734157336761715246772126526277514133267175277723634755731652634436654664514626272516412661764321335725417111722312253532542215237133775125111451775242536667373326736437352316417343517576446711773557624255236263654625462312573262164572324244621323153313573221536127352777471433132474763276442364322532473656362422137547315544116362641136654227522477522477117736133245143665531117772333234237144467314564356451467713226552676356376755323472437522735623213747671517351711164236342745356663642734661761117524351654323373661254553553754745514562444774464413157544143456227517143563222673171155553717133724622312733312523731527231334626422762164515717413566411533336172472621313113244523373346713632773254374526243526156324324577116434165651664135244716357721143615435232317633541252776112226427352175327422177114225245361232267577332264564676331745673636146727764222772453216413113575573415414745246524145616227516367521462266724675211113635676536521667217173473224434726617664456545756667347562135636637617366252641541465334557253245247366114377554622366745773427354373224563641223662466366631655316632221614757336616545431516441334556631335377257725577742526551335223255125732145635633126614147752217112515133736622323113527415737741223146341332464765447522425321454751514547716526472444615541515372364141142625465632323267251611246544647133612315637266275475411366754161461632426354364134614154152451427514755622262674474211526155311373777463723223753574765563325344646724326641247527215165326164667463134122246237251767532331137366511324541474412511563127242261743275553712363644723426432662175416373575143547342614451746265137651351765351376556234342367272271326426343413351374732261111447573354372552717241745164375341422667417675216243437146567435577777642641453416142156737172553553547644721253257375313212571755433327622167477546277411762776632264266314365331162243332541425543262213742474623737473747772566214326713163565162731325336626546312174423161617724165722513477321542233544636627345141332771734112335722515317245151124424627347574316656371434142364726421345535166155714757574632445216434277735733444243312777343763726437442346612336667257174314615652525152634271766714135567257646231146442152261753565344352356312416254561777215475242667136156337356644145157631554643756664627555543357264161245532231727572567444172711527544427743144135324471177461533626262257575377141677126155241523542777756427444535646555361543217427425477434217674651421515137763125664637442332137373553255475771576273337674716745324662522223313232565445247755627375661112444677256724641657451422371371656256263117474771636717231267456374224634674274471371415444512431763557356777446515747514264421637215242243121771515457265541525447363571114114364233262735217764613363574124663217625722543631433773353776556216267163457654117417746355333244773122557455256131224761624241651163431516334257271717273626673122476546473121141253262445246652721675646251364513121475113617723212777526755545747177772272214534144226725561466475466675237514327743634533662432271762615766411524171563242426635744246654535677321576714266153741576354736637751147732471377663744572315372277375471751777777464154316235355425165253363472342141512526344125634463713344777225416651576271764442132477167232162756726636146423737417327343442647453346343326622662725753327514662236264535411677272776231113571725634226151352263553577722272474257713712146465734313374534764522412174217166653214645331727472753263614524511133627354456436624243524316667114376434212145637464136571461461137714535631535514211167226376323525271664157731352561613534375741471557365467526174156532173761137126245623765575372256565164171223131532121517441776545345165126522715216311446535422357157672664156566531675562423557566565643462231235415163336675664544447727143375237747472463252636363475322661575511553611337523452711444642723463741242465441725317564151452722236452612557551422462116245531763647232411377341527631555433433627633214234361352446433267522115772332764514541115757316267672473635133613457577476346375456535121634134563453513447376145621533616232771256641114145752553636227742353571464474211717164561374472636176344614425526536314554115267217734534317162145766543253713135743416246366462262246564255751564746653671457576723612331227266572567741275256162442615726636526765171221747755113314776772755765475531624623535755566466765463223176272674247756624574463241574215735224642647423212562177347671464116614767144354643152177276346757642251255574271415626736562467544762126677336467362355143311377765211177142712752171715446666516426537445746343663165521511551324377353761624323733515565744117537575113176631334675464361711165145555275161233524363733144343757445256775121413143446652377616652511477213453767434432753653442732763625362562535261477764442634223525464633117637776614351444277563321715416313323115642727446514257247122653115536213516472443272226137325745537452133713241667712625761465451517623334642641742135733122656721714346123227334641334755342135246573476732764547614311735341164755315311426774165426632466676473344166122723443314116456356316643451354667234465277255112734721266424273236575426343753351742171153663217276132755363622135255462641372221225424344746152771541734265426652534262561576177253267776552546722541137117711736465356323511613756272273225321266724667341322737656177413354313326724742714177275124176325166517311776311622642554273146654526656157671173276443164417374156644642643743463237647227257755753457644341677133237151717115674141145562643656112211322232122547653433717416326447571735246424522175476437252137226422147112554774533576525141764725243353422232516756641446564257714232614226561376363531336154164511711534312553472656622631247721122376646213544143725227355257462611415436113527213644711526565156237763664246161455265241217725741746234753571747455311533525332436453151441434413244216562226561435744777253713221662631263742214712311345737462462644163377612413555771665634272366776347427672246647146722333572472436412562627514537422755246476752614754146226562545132755526415676273621433413756473167743774474223676741412772651256344535314745436243414613711126163557271514451374646246647653661146161151636666454267154142341545564513565554412731157555721115653433623561133345454531224345142574275545561724673256462235633112632576365467261425376421373525127217246115244375234777131514336367414326132453316176722274536465446261763232672513425635311351124743152515165435677562334562614312626716416353152121465735225156231732714742256352527333165662515621132526144612264131541236511412624776513313523246322356347311673465455616261516341617644515765225663564373563427521574266154517217575246425161154333763672443475464221263112217543243522677331777422631132464431166342641773774745222345514261466233437426126424347574355774742666232213225277635775344133641241765225657567662453227544227334443175653642631266672665317354121437236534726256147235767635347414541633236264767713673715542613277364776625234145526726663755315444734727633456131134723421261725432243227455461614216542577663535653364333173153515452521621115712331164374713463137313576517217433553212713243666727467352373437624335647264554546515633173436422164741767555321113777377633676714521736614537747237277174563375751743743336323457376426776425213311676341363541562534533366117542631566616262342415267435357334427676467416553625535417345377652753632663541134721551524345444751233412166313114162344711546133266541761732244652217517764671327315325417635232543523433214347361732574677333417162545257523553667242621664246154332151732411271125471476223741513727134474615636367542463671652355477741532335375343573163361427257365332575424351632142561543567616443532374742225442612675264355233527151454766644225326156525437123127276575662274137746627464575717637527377526233347142711362263366251371354317644547151227346676533764123444437216123337474454347635356634266221723567436115432436353245675526712372235136712365113531417271273522755561563721423715157777236572676565734326572773511571524474774564467223162373743134216657347736475326646716474627347335353351221753637641622414441413331777712717414411573733417447174373265376441711172316666644744474133573531632133263252747443724421117563557152412726234172513355356444713737261563326145226554322266671374333473745551474252525143744163517166363257211737222636434743325434273517541754766253116613156712343725612716476434656531256741314577377571552425273256364372324114744725712363174323352173244555353744456714315741375576733527444642377277632446416366272654531315555465552626666425456534327357736614563665544417254146662537643424273461255617634262241414477733443622156741635553617757421534162454672666652527127136311363163221721217216362313337357315725251352414524364524167716157552276245526161626261716111716674225251744563546575575416611471124632127465751527411262252222443727321261677652723142366412655367213421421426612226565537715544564727171343245371346722723577246751671125431271325237442722137735125246613144166722665261464557463121171425724736325253222771731452453624437243165674236526623157426672456572271172414375277476557331517477511717262612442512366423674644625737745127373555124657257734327122226643772457151657675672233357461364675142167355445224351116766126415333441516354166535736525547312135313454411721614471374147172416356525257461653213443767117352177762521477655216654153264122332332515655653475463271521243416632224612477141516135371435775552114514755762753776637772462351672343751447754343237136416745134352566644532367774631572566262616774761445763674456446715534136736435672462661446313315161473477452341411717154715346146125475343667741242147441275113725674332721725141345322553263566246772163275111246711356675255271762122431342456466533324242662152273436573732762554227634123231441624673377567155617564375632777171672321411316176255525371512522621144215357277125666537617162363561222151772613562346337336574154276474563665334667523557426243663542122527243642624262246163552126342623651235436266472317565777743136424541274233763214163764651364347613744566775317736426725145571473161537447217274156147665455534243211354274325743751741615473216531665426161755362377351237442415574447245343763322361323467731511244262115525147366331617513574637455567231736155122274366655351416356311524333255566226113637172137661633466774644575476712123326325421167177565255717627343516447112211222377214726612636126752772133356415537321323477223111312535213764446472744274337653175267772377644635221552325472623331551671776361113371443114315542616715276734246576634255526372474464223716534414371626461231571247663363251623354345226441431555634153511662137674437364546723477126376566612761534473746731411423364333234534711457765671633715434771325161572736746625712313147556721431511714711563474634132121612165336347747121477252566172363572326352466572551567755775134315657525755625273252167767663234722163661464214543752757736363774374664723433226414513615455754414172415161473334725416265753434734315123253526232173121517763567232154572154777217411573512162114222572177411622564644224543644466646157237311571275611374551317374322244216465515277436775146166422647361237127651513514221121173457427434455433523114625741757336377345712566742453146733742775535762473651664123447234637137723523773271357173447454757173276551247566634744411547155265574362327475272775456534441257631467531462311512447333661125111151133312453524762124314326237455461122256632437532374746753637416527756742175161427733622325275266265152273172145251554775425333363761121431645463457147622446174374526562655525172277361546467136572451556441257367426673541443424563741525632512544423771255427127314565352632116541251266731143114673437714135773127356153351662352525517332733246263211447427755347732156451616645256332215274631734232171262755674426757671363477133333562677657233227312452111734471157356235367612133271372416256354322355774674171517741223132761532757561251571751146177524732776373351477467464662512565267467431666146175154652744332741122156355272113711376573145453665273732551762253324264517366555475661156346574146455147265252611511637553444157135542471327422663167755412137252621171332313513132726611125132434445477732412134247141353166231776555662144341766113241447462463341247443717227127335312441527154271235547661572647317644637735566623516466657243114171663677357131521471355373614324474163132156227457426357751373152552165263724163245274271331546225323153366114437261577643727731474172442342716236316372714771247541135463763516437376566257274352474133322613656575564513543161432244676776454345113565132451633757347356315631452121644713115473447314335132376472576371622552136777532455674656135166351527742752635274763551364273231224211415611531226515653364727131663624524777123173562221533636135321712413525744524646711216221644646236572315151454356517421615314126115237735174532322254445275611412344351251635176424161611671753211755113266716651366457441656266275715445446234462431576654473423234761535567226462642536267542154553537415437376563146156742241716363224776146726333332236462553423646245243245717433656424712443747554522736451413712665465622336315166263247212623212641443775737436356773715276611775252652555421467366761412473414322522676342511447246477547227643125224142434561525465542464552163715533615364446114651137516634346713214143576421117313375262717612342657231273423445115744345227354652776125461134736542266111137534124746615631425271527427623517313711772556627351533416462152113514525162665633176456326524145526117717316712412241272165563345255367411371442767717237776343162727157211355564555672672546264457575426655533117771172456214743623574461134456456676734664462643134662715553431312224622362657263663153632314436561353612777727275434137267734722257541751644675337752771114516724772366464153727625235447721722442672441756451333267723635631376565642747714752462363756653772652556754645552717156554533144322667464162537742157744511724367557435244422516624522373475245314366123664146721573652323256771441352541254165237525157466467533561746164572426471126265725672267355263654225766117136542432561626456745471367117223711244442545573572341367212223734752327673453733161237252574177575637727265571121243371442142132636721631521623757277355462715117772275266353657711746414616337331547367325674775171643433376232216355317277661361565742462426557425165176275435574412552613652534252173723676357127275376754227655275611261125747757526434147145767457676611514623776541346364263131222722214766456343517556165511533146376775754612262337337771164572331242136521646272126117237711253411513556554563114737242154173543533272267546157663577116637113576225345422441446117732735656225731674347615751753767152656571274464742122637726314333511561521257764117472374236762454533675733142443372543275175332614215772415742273551167716433635365275445142452641652642616263731542276122451645133227417447633121351263321325221444416562447161215333566737553731471347624533745471167163151454423656741434721661617727434512154342347572174274375477335715212656212262474733563323456167521176727347576221461134363272163374216233114135315417157311536156417443665472332174212242235134175152441211355654315623245771411326573625152641371153371171252475354157554732762176447647764324762567445252451562545432531264663752135553711171245721264323713272325262664613737543662424114445677327677271575651251422234577467332313333413172317462676355325451511145475616247115416243166643635641473273711733673516216763365151322541252456655226731641176714135213441717664326223326447237653665143343223665517741715632646326133461673361743757247634237163175435434154361665572676332437637512266764434412263463326452536417746635371643273552173751325166162157616164575752162457672422441146736735476313421777667232325423326223664615156356246363634476731544752433142667624453736415372557154327724224117654361141111367215546642364175173533656167217137725711157671371654241257111235126521746125145244652161711223745621734737554471777375317523116612124627574245254214145217431433535327277724653274612424477632225141171113661121512755325311634447541663251364445654515247434177255255462632216173455311353754112526316662722742377741266674275551311371413516147154264763522461432452532124127136545155436764121375657262564617555362145755557621475625175566554214422327776757727722423462246777343565565363376467643112337131274463232662322262247451715731162637244543765375532617111625743126243517127757433525627722526137755337343241313676552454535441546371446674634324361547133661144715242132425761421675617316324114527134276774247336731661614225617724343155661525521626711443235326754362767253625171712745461114722351461575117621611226755167551716265246766167152274162617656161777624424322437657367467566465466441223656112111141111276735614562613371213434541653762576477155437667722364147136424715554563427327421556264317153643537376551423555633652312237435772143717161446232611753365447341464766175252115467474644521545714513314242342212262667341435226661232656273535653242165221743743166473314557466712221144257544163722344143772573725142451545253656173577217471712517766132557244155446457427517161767674762676423267734776751156154235543634415124747651545554562276752246627532346434517475145367165412475361616562153213717646565426767426611456674215517575463226715767647626775435226167636262264673577672662336267217174122232522111117367622637561567112426577722732171773356336416536161652744257451567124157632416335322527246214273275773156327152615267325136675125714223756163354173135551431353755576114614351761375163327355653333354646363572621546762727616341577373133472675142151262254217471327532213462216315443772412541564557761337452412165564644222477155153277255417536475773524655773411122167632574454364536335134416621131223364741476263716613464355461623153557626634247237467726674155363652634521354261331342233642511266351134163671744777324611751116745257666157354755126516615736633557456474534242644535537433236675753633576122217664456311745725512215555551172271535575772514266517374152263472476256157241751642572317446177231266775731137233422643627526643662462364371223664742543525423772352517337363751566733316257561117277224264661757744374232371312231244612372376462733555175237442577371537676446732327737643511771627772162746743375217474754165257357667264761312243113611326155114212232547162216637212433451163413746122232362355376543112237512115621145373531362336657773144444237453174567537764561667215562275353762341424423712111223611142676165431564236541752175375313562512354533266134241347111651247412646313731745363427531536653624111153355542471643726763741434735153371266345433724733341413117624255475231114427724362332744745474234657762444346176352546233773526215315551225245172247273513165627447226342155764212242514112713761113146365756516722314635226536747353312217777773334636452435333251621733132222545231115452216435516622144355443356477336556533214177213542435753624766535527237631642326552461743331315777114216273446325573767234466376417721652325161657246273642612453556645766515673521547145325674243246646627317672165172545435163376364246317321427321514447166336275532554525666631611346455212141633212574254156247474342764171374615164423737654624451661312432233632373716675477245333574647153455616317211157775531111415622167651512533541642425636626471676773145411175362444237722761761771314146167717144677674762172162132637655556564353343643243463765161247725614342516212646174414223447353233671751772255276547351726653265654662653111727615543635434664541337636251343425272465241646213347432446414157567636553747567234261425466163752144624317267322141122652472716124615246376321626627226456651662463327256722273766112756655653113545553466526215237324323111433116555235716541473346171512666266146751463357311744654745224752757565625262313327616312145442741731623341473725116151464141456661742276356762574472542265324122216546465373453122377426361674125761631371656161411454372461713573667126213132264441172242453133422435356761271546755273457162334677336234365552367771255355512271335152517276524535562421372412656364645666651223613264424656743713466366144266661117742331244646374344351711776721116342476264735652271371467473613557722747354131361412561737222676777165233657125257446432564644554664316775776635661545124622267756327331721615374461273574734733574626722214655424545114627424613315327531235677353175661742323663415462514315343743443436772457132672753524357744322774714243357547735221666564326426221745473356353275364143575457472676347675642262711426116653535115742643527756357422233111573214111315551665412455677212262623334456244324775343133244472665227654572325636363766224755343165753534766541417617641346763372771463752646117171275231137561771246555741652773123645762147357464241745133443644342241365312442176373117543741574612747512156476325637574271251752257232341417232125116537664753377333577532566771613566456244474537227372451361451137714522271765617631276334373475477161212472312375416241172342273122332613735374236763273347652263537711425174611416737373367527773774137546147371215235415557556265562557563414624451212771655665344641511162545212434634632512357743224344512443717513115476633646362725316663154125346116712475444647411366574376135747557722665252322357341767774472447451631466522167224213324663131717273341434542564276631221633135766234466754322742635757743457346173431445761175261166173531576515747215173113742761761455434214722133543154552777767135611243644167444753531137737143725151446154131446122126133251544252427435141315227531455172157615257124647762625577746556774664413526124124315765163647641347111563465117441241157355443516527776346756724241346315763233124223247154156513631573371535157672117235534524211567711273727177322336722374724163175114527636757212724344755455764515351354142273564232636514223575422547264473753567763733464744416774714455753343332524262766541541353617426153316472231541515772227421463361622573735722164673116751736276362641135746245625336235231361126314536223137734466423155374327367632655272265544416133654426344441736666776553344246544375243727134722733522745463457717635231334746142513721477136147124757713317344415177151263167113517522263116657477515533143166447521737357336476361233651271145117234151215156714721426656763665671225337144746432414471277555456461335342145672154614645534472441563237543343661343737474253327471143711444733166462442751422462515277255651257235362671644114464475423227256262122311576127675245171434541576772143314236226743664736314464364517752475326123572214746476234626634274745567131452265746653355357671264143766135343151756274142222257765264211136455452373726332466455315147354222667131433365435413345252116521776613756325267747375713233215215217426241671674734536252464224745176724725726512314223363714422322334136647432652474643244126242315122116152441677365612424242412325435344617676745547773337517133615453733134747613673146127233515462776372175165356773614631322767157727227626564464766553575163112124135221717557367244625324745256672425537614633667353175411337126462255145643242376517251474525565613421275531171651717267533572363624145532731137437346431622747442147722136451315442215466514547165171324251312755267147727475524343414723154441377274176157522357627422747315335446165674665214116157244365131676475374672414734652616535341431371741437672275772263147763237467553615615135645274527526152211166647531445344173555631657771227175142317234544222176254374515425332673537274636247766525167641415764356477772717725511411415665365732762172273376261241313172732544133333563233242276437746343437134461651363511127763777135461374753752771462415475724727557611315714223363534475176577656757717621333772355716425415474373264366533232567252134765535364524244136342611646152552335163645373616654235322337415541461755515116773317152476557345414411373773714256214444331355117667126337621357167645277444366246342365367426436422143721567413357677435477254717324737115756324314257721745546412214116523646317635746144521562672474276663514517323337611761257532242147532313244461561761716761326544526157474254222322422232464441133131761516222363436152331765217513723174717155437345571611443524116327121727573621412562746211623654566767731323463553156767753341127626723756434613237126134371573666561177633435667663516356336615564614677244142142413441214276755357137163461614146372534243152717614622262352766537113441166366257643271337637674614252461227256333654727713773364173352474432365744546441747316127355525271436243516554551521433471154773737664154133511662146475524114527476724537721171415364237641334374376152163364335773526514756316757655163423147657323275672634641637546111525612554174564666244446323244427172356765554152111546427145577517645544321647257435217323773654751526247445473447277222532237625677525662433617536652144456531331314774347631515513611355322454516216642634716466141115647116477421276361753731547651445555434476517345544746223117354743616355225262746444375617655462642411342262366433763655552521625266222532767743331527425766157617623115315371635131162562476561444774635466553465464743112162247547222161157335174577211536644631553173372234644234246412477774162561122334132445373144475414122262413746541736657264624374717147422725562766653671354674474521453555444744541737266665226761246523366653336442561346272171126777327225641525773127646156361261324247125111677223227124154312545261265175166717341354763434677336554255165676632157567232522454443257666555442557636642133312155364362241776264257145367711226755514732242767316434262364515424375611124324465337167225676541272762274637476133252163664547767176217713744647174374772347457557317421715311312151557725174753775156241611143241427521321135346144762752175322474356512724651455244451552423672331222413261346764431517751451714735117537555553237311376434525232133716175553275236366242625547754365265654373117757663166742636366125612253655762752471264461411222714431637326625755274532774726221653156221174611521114474217723217436447651242313433214134747351435371356464536211642344751616142511747526312132236553267361276456654537457664226165424552613661645311367346777777552327511176254626745713622723117343323434442143741542733346646662125571256563751244341764561441762653667645154277634134413656766343643627545164251664335534523557734436573212727226552424117455562145114535641653647773415563233557261734637136412413175643377665674711314427361632151536276164555357421162722215532716527445233661623642244366231422375251165463546243376145757223453211517265553467616532421342611231312431325553655641274241543566637762715662157734244671644323216215527277425431245636633466717622463314456233347134137576377362442113542564112235632672642572755265652747351575377451634215313143637724262343172257454166631244537633352617136445473713516542326373741123135763544136427314657527713736442251634341214245623564677212145372355172333647541231627657155775242763226513571514775153151653471777232174543543333741457655214375337647225611135541617515436177522621752433545413474464227147133314312564242774255524336343466611442737544644471262526564222724162255323621467516111166612715523751574176146227721137121421174471653372226237224237251214335715273433774717122456563614357147561135434225231416355636314311461414251672426566435222252612751721556537172152725557774266464577654627547744257725625445374754641335372276724137622575236635332564424545551264256426351235171257612476344373631514331565366323314564312743326316153322752515246715456642275146763316624215622513357356516223222552443165756231577626476337653132415125513447511614444417566712142145516153743125472132172613236432124722336641317633244356571445766462625422664657375733513757455425727462751446566261552151127671463442747114154614771316412472641226413424222624233464446776274216761344756341664342116616636441257413122746126563664655652516544615226424236216475274161232126611532514147151622342157274426417454735551455647775213333616556625332776753641647462125426474376232322247523527667772544474144656212437312674664773141521335633644217141431137446144136351753341161216243467333241663612716343463573337767632257355637141775244424167255141376335222125235662444144162576637662514636441237573371617766763653125527453616766326471471417774277151736421426367327461421327151257463235367325351327453425542751617144713735554615654136713112413337127334271563457163154576636372475447751247514534231712516445676444353366347723345547127674665522256415353355622566571577357131257117656223714265245335364267424327424246641477215167616446321154725553557537652367352227152251662441726772767226255576525734213467562562757673631427472215527157755224413514177242371422374423337253715376716722163334564346611726321151752545763227617443333536472476515152662214215252526262222373363761257471732667731667172433661366314455661156163352373656145175136675454462417136467645562471215174532211463476434322211341472171653275343622454227437665744264353774437723361722776756553273637336672714233235544433422141344371251562275621474251432636163523652727157633772421473656565257434737656642243475554143621556621424513476512253721445651126611153634264146554767224121234135353535363171647355461113236643317764432131336373233334757755326315167214437476623257656753614456354415151111112337437224516364213744552664775231365221763731443741327676376123363175115471545132264155615617155556377751734541161476277762716665517624727475675154774774375373164745547511312727521341661521736534471563613725111234234476612665236414676212722246573344134214147777567421633251247465167522135126275247333767773742552543765671411326362551661265534721317276357473233422617745632423545475323474731373475561355616263732565135441662141621166546375761247152635115433615624661527317345253547352224476267657132164137666243171412163722771613123535615641161333542245536636352546441135344516173316763647666233117333761331347711616272371235437553761135252242334365414636473562767272721255471127512375345714213234537654435557631771526426241565247146672457453664647423446526254367157416454143437471646637544263212352221644117251446331315134556624237333745172346162213736474465172144542242415414636232113542443666333661741612475421541135363541515763767151321164241253113371441137547565621736353512123452536643727776457652521772214552744521124213761656231331452231434216322134332537543766145461534166127224661153236537445213357615411543233357674646614335753143625771325552642236131474373511273672135513161215227377127411531231534315535756417547563633716221364626512211162147225511122734254756141262472615547411424646465175171337477552446417663356335755565512661756234175775323346753633515613772734334244775322131514255646246431265521111733256241756534361324534215347434761676114757527542326651474351666167777415576464616574745414473413313345224253654634232764443114336673325134322715537147474776543433755672344535327433574275151323522422555322765131517331736172555716373226536342323446453452537241262524466414556214161326513536746227576541136141466513473167755671641635741645624666147555453342347332237324226676614551227544772744261234645536436715247125426723542564351235171163676611463254422611346562412511772663733351633235262241411663162361765214317633461616167365565134223144416372547742647765444357112426257726314427523513366725726377236232163425576767326321134164276123331614453463325261413113423445671163532267523352313623166544334453136256342661132314633616442121524451376455467622326627665277253527747526464567712614764615623274362254112652664254664244727357777134646124323641226653556514525437214126551135151755434215676452474716764276715714657312161137377611617327331122427551671174134224226341363476741717116127622345166632762443436431553374267524343127437673236213357527256231556262345224457461616661726642727557174527264232224114317274417574576157767472634355715736376256726543552524611345146742562511413377655227522555472467646227262531627432434512561121715531667252234311453135413515676562561516143563732345775266647616165256162341743167771546543425434262177345541162161146712254121446565622376515614231732161663631416272431312113526522141227473654614757211321674565112125176464245643654726717566377522334312636524712474415465316477644264461432743324655625366236222541327473767232731514344257772257312351641714176261724332344661532157254445765724116543277555647146274631446247662555175144747754774467634542642126735443747155465225221775252363357224532646514437261257716246663626272366357113121356457374164546467737674775221455413444162646516523573272135172754417736333375267631251553274561143147712352167173112267626266472717721165464575175334415335266571473521361131552324154717437317367742172114263425223614661733652765266316144427232523212414672762621453467242164346671131521121223451631654162617616622164277222661753751576761742643243563625713722317377275473567274563755645457522553513442731741437744531467452737271446641646111716461531615172112166743747641752621715175775177326313627715712375515236136757722544146141652273675537334333224513126142221451151523667412644325636553175154251244524556743575262247557465713257732317274554313641535565367524616157111457221675767546377262753651662141172253752147117735333622727145155463771276276113736221424537354134443563414435622554636213342154421717451124616165457317544743414424562674365274642772157554115467237516256675462562167144566344361242257767636115434342121745513641157166752674537365616614564242266275113413156116567467237744173723543174411223163142166254554265542162422655163471626435124434317416762346766426621564375131463533342476465431223472741745214451125364244177232563176214134473525264121432564145356366673452725553366431617414152772772246542227646522773745453664754277144415463354655352126474713322446776556123571346451321113355622413377111572735772745265534315651117232311614414622447223653541663516137111653455522655152647625315111132331617462651376663566317732156571653732117351341627542554762532731324536675121114171245745131444576243742554766375522327743276666514777266764725417732656267165635336456364757437435632552561363217756775413556621325562142117521535446116465441512462576717673147523545513361341571657562651255357723415753177367366434632761515471142646267325363337724212374254352447475327265611723355675333157335365227137737123447347112411553322134237142255432456477732127441654261314622355634574477672636734444574366535211767326316573475152443162755567555621453323575472756256563443332213262424113552147675645213645757417642253542755156632464747646716664123466573471274533246322133722533713763333462135452215527233475116416652227434272332215227471313243141364336667223345261137371515223353675673735272112135154246167426711572264123244456265623521574565654764366524371321712365555135613372732725444676677745523346231571714315753532313337213647674643645476263547772334365653632336633573313656567734653347644277172542763462451463142417514324334617127366533773417757621344776561673641524235576474567725335375354541723545226166555447213744471365361555467317164542663277557776626614454374224777267626663763656636275545377161127172761367754641652446215124226246345474412275454611532354776714641522152313251633116345744735333474514754372475776743431745611247622237767236626632366363153171153476375417313375535574272612631362241713153514451147667741344473527731235627456463441456413163446552676567435473741276757467734512772551634374771112727156761553644732236665474416511626434672156663726615444225116262124513722672214174642474224244347731332723354665442611233751325221264557175563331522755342313136364752663541175261556213555261726415613251372227266227414234345327777426466612742564446261615447341374353254442527254773274131275246574121665757176517747454664427472114373211121173116153553124265466136451573612323131676221656426521477456157371715175721125166632172156675634726445347352161754375473472265571544371337546653374754424745435571241474462246416224676364747426643713541756531653332372765641634145523721615772435765254742145653444747742442774414122636742631175571615163254734447632536112222711761677134437264167433355567667167261174651771516462237617716126134355652642614673216177772614411247644242444133445346466647312326222737373727474143771675536762625237151553623337547526372311463115223412764317275341211442611131664325535251317745766142323436634466241167111225625532774447244672636755757771663447657324341742136733641551732315464325143137454261544731235375234566465112266515653356561417233722752474523574463731617752174516115455236426165551542457577361211147562434453122367444435465615713762335774316556413276144636437727264754426473355664471374137233252751323253527377741777433547776364326655126156153363335613713543275253776614523251514475676353513332632433127435526256656515266522624261572555336245143134663636127656627715537545263677375762563561443344127265725475344233313762245573215335131672446262633232445335667512436427663422575121355227115767333366264627276712141672773673745375113674625516623613223623121557362562364744647242455737431426456546765472155211547253317561327313212742267717275133555523766627251456774616735541726671267162117265766556452347453333462572774712521467446772656313651137321623274354427211515536725247372364525352613745225172115622652721572237341746457361411263452553624157723217756116267316653722313732743364213224143775762375547233347666221542266657366627463377733723735712347326255246116455352655142753311333361775526554412617435532262226544645536575157341274757266512466244611652576542661366415475633451253242322176365534415245732426533157371531351124574412325466233647611163212235724555616455412667561566271333146415315253725315453452373437134716437365777521267535775357364766641571477343572456257674732532316565526563233417326227532175347216172761275645661513465776432564364563522376266246575465342611357125311537457373254724657242377272133227274235453755443557711731255467427133577216652337432634753633575511172112711253327513277664153623643765365413645725256234642225521221656527123615423455131254746361366237252542325553367524221741776722737225447334574456161376316171414535213337117544364434364216356133763216211255715457127547415311616341261317112651763657621363443416425655766155344741623172337717662451366214741335537256423314314641661622335472244473334776446733222325447227344124351147614477723354222344312723461475555236251576222547271474754223612526453623556723743114621234434717654337624636234644227453126426424151744436353631464321643415451266474746763267437773766241125235714577366726152742357215216143563334273266174372537661373227576232551271111441735713144467457362451662673757242754461237275244512671767474412721356412423246627117226255737321457321553211213225247766671533761722211432652273117726616672171314425572766217511513474365515735471261566517451542122647331135774733711763637115327415651764565151562661154356711762547537475114273561576225725225471564545347777345426347153675456436212747756673554312327727654637452755753744332163335226315671635743741336171311543466417217214117525542461612676346271222143455526314462543743676517523731425161132467745342631572654167123733145314221755242431527245351744251613445653411544725141716773412514251735415462174771162771443724443446226166275666775115352755412747661671427317121622466763544142131231373344445541627527274671114237267415251726211264114575616422457632341553564774435275676441726771345313762453135645436312416235453214613752375752626446111643571723514213542241542327332425675117472122376614672124151213713525665777346331127232637761352644524233257712124737333332471565331664273274425131764427751146713771522742324737146711716124615224467664115521646436437432134565334213725511664531474541655433265627212153151644615353451114433325355554163146636565733135571224651537237453357226121335225447746221243112546571374546272745133664111532617556627366327533457745347513773662655715747624161165632673115563161562356341667767562743463133552632161715273172767354632146423717125126537141356214771215167552663375362476535366156276726174363534472632574342251112113714434126475562752516745255377771445147127676275357363272132742216734735736747615544254451664116171415317214264657466245234744755125667617227626755672424732526442237212343346245625267764157114337452577243151553362453277112555524114137545622252437667772257742352764641423742126224323552455613112576742337652415147514762552162452456613662243767742441626746315653644334551761654227272215166654142675444652657373222533453331754355121676164214446733361624632367712271211723476361511613375634644174315327756514176167436223627437161532621413233143215247432565414661244316643257467374357436277775213745641165235356623757517527441756652661574333225624616771735143627226477132455246647446543551753115744151325143737774561236234644351156171616312212762724631324743141751253774124414526272344751466474611172525366742563726324453232622243435264251341542575144477573116451161675743121361115555546157726146137733436565676455342251252176713725372241631676343551515124125311147454457657513161142664365126234171557544526725232422157762616226464557221234667242357446637562422777132246644761336273266244517621734162147556611432767615455556751471676653533777216276744421416656645543127511521461256627172751565432754724771136253755166475453326433125526732661365214754522744726331223726315335146644325433734761712325255721546433755527133632733256775576652615172665771364567215225675463754565143753173563514335235114472151555263664143324157672472143351327235625332673471371732346573746162754411561222471674121711424324432273363425665665477561534357632162421673552357127177364113717225477577145313435446314116377223162141747417143727561263123245444651155736143434513642143471344643142654552235716373421171134637145223712136546467131241254737153576211425211156164277436121126517321572212231331661633456651632675744266512747726122571457443632536364155462564476756114161364432352177646125574463475713132715233353341253732411651462175376113557114343537712216355555315136414526342636536751725564336141723416233426312326312261623441634364221563334665636156241624727457262332675464256165771164565533561115315743461577277515175651247351773417167137261153752557714732242514622536565613122467371775331673264431227717322551521631353444653317542553526774245442567234631353241516777716444271357413765114541623434535472213252313523443111263546222161323632174355531242462647661711232526736365257314653151136247363545442417135776563771714731766454221352465165144455556253453311643762221147654231126744313635731341674612767522534531362655562726117571677642236611651156634126737716117164317262347465241743557552562512343461526665322416774752342532755324576565336566576115433515623465146724567547421441215457352721445351137175251224555433457653731666672723531664331114342427134212113424767746513613357633756471521264552471442723461454651612774213562641116222451525323575774426765362374325473466421771472144153572142464234712546545625222541117315564221622277754656372665666737417142234453462141611776666462543557773452711325416426475355541136236413625656521574545313767712725566267765657127464135634644137727655745442545425247724417224216114772555123566223315655776431433153437234674535776674475557734242475527121475265164735573666473653336457526457275672551247771465632671762721657541626732632177714264252555642615771674777317577126455733417612522612273234325421266151433324476756367625356221351257323754533547567563337352416435577765362736716165327465736562451441376573414413155724616576743227347337611243541353765745743364322466547674352311736522426655427775663642271432535517642641323323171376625662156626615162135456177136621511736517572322534313332446242422625417471723117541263427454537722563643744256142362636715461463643247434262115444737531376446134357334663163647344436566433236674727326736324377644622576131722523566562314755142423614416621773453222454252157233613265247357725357535264463475177516334372473131213132577151757742675334474726141444625532731125225752621323337363666351644247713577673624342272677545732556656127277572336446545512376563441453563544776644512472634472755124414761461454126357453214311224655254323467273223117421762214613447213452563274426461567722513757171446636147622461551662133542542676663567663732126314431174461652751221327512745766541561337425523656777762256655632772145171663267771166325223716317524324324743653752713445146677651314756342747245547713617477555617215253467474141761442322571362423132477341165274332574645173336562632776115624351531336737474242545644645331176152216213162427665461156722731746317221631172162531747532155253213246422532141223321374513241561225771254451573245376141464454666465573257231555415222461125525553334752175153615446614127711467133521121546241627471212374643656231434521546627767727261746334267344736313114174275325422446766722525456677376636551333667576477753511461312414253326616565435523114253213545164525426276142624235564225662371765636656463756512412723572743231124772651357233513614264571234436136334563516156347177647772437342215764354361236235333322575523744552117535652415331552743525123571123775654134651737334516331571772271177473271364326671633622713324444415734164416416462153355571345616422222574554514722457141265177632245335773454156425431561417464621454254432237112556734164144537674312765372422671473213726372372123332173235525566226412452772173447756313154744665537714274425162157721245744532416316747571417735721155761343514445341212364366262277667735475143676731261737656176166172543457647634763155743753562573656123217264673212727324613253431452774724323735247171561215552621122625366761525435524544413775127312141631173756427114576167712653257352463651612635474324315612137765333137122474155527242623146354717322233574113674612213431356747712236515327526221331773132737737254745671552564536627343646542561365165243512176772626323177466425235741313623433625551167227771734432663254526122711136142143337712161326171123424436433757373263512553453574135617544142211441723377554134657531625242554622123443331144532515677434111474625254616734471661551634234373665514175167541557724726442772477241661471556543536257215324664512117147326113365373334265644335435453576317656417152562455772655523273134122674621261337147435127447753466767341561635551515427364372741537675144137524714446314744331423313126523416717464325122565621352563536271112167432235533316434622216227332537613147612354321773333256273366357663655722444554177525446615552641327132477244555627464365253546613636166174662365344172521274265557466211761227653354646656475254213244243366353612376175145652213621344673431133453373716475735317344733317422667237531511374226264667317363554517573755224641466145117245514275255653375152247155657674466725543332661476623741646536265771464117276346231545521573422213262773733561524611463444115347776267472261243733112447757525535545424634761465775333232324777644327123533661372725447563273171634645227521757161536676316525722376722173161211373263115771662232144255674116245665176577676112325754543353171757571567447352613321615334755163133271145214375731231655442141455776214145614327333531266514643553375721573324277653173653441717257152121454274262563767334445462467573757471127367577623377136415476665635156225275267626623474233211615322143763472554457616241653655576724432672151625527554633331172174437637155237631676462736136246613677614421423524564767513542432123724457622314663463453226373674276644527142547777465777536226536522274321475416445145147753635611147563632364347154667676272153177156331671235353133232753257451465432522745673175422716225313363736217424274625566657673433762274726167627271157645635272577721534334315346444532324155425527572236561414461746277724556332471725613655415612431544221264435631531737711573157123666715367164136341232422726642321212652657373226363524637613245277564763722346374657452433651577457755357615455143172244542613651656424416253667377515362544142331373144761367436471237414131273234531237476332413536571115345771354471437414755231111222767551525365332473771624635167475343335354721362561764347146176643376225536775265453721136756634275711575574333262664617474471722533674555117526615475346117321573264632464437327267735746671651317174342715751766762666446546676716353654552551557636612667467461236623261557525522312662647617722613243417362153215515762152745335753233253577237671411625132556444676334614536637772164577156724433357741523427526736415434226771236323316757632635476352615575637553173662764147617534735675367345656356444261152245647421266213711547413121247463256221257262572646621224447327645561715644714212213326674735621517672366771332543175775371174355435664575547115336225765275633415165654341452224737646466242412322117654731343756744512327577124435333127344643547327563652565321173576433217474347426174353726225666441153724561642542271512334114757164567256342627247312555275573623371326163355371433512241131513743275214543313546127345557632236657361155476654676743621515132116756165635634225222574664411522536556341143456272452741523674767745662165544355532637111472277214714113756415162455366436747771472724421353262336276733741731271473745273522655665572175361311452767671242441226117336756217456665645653237372374326133145112712566365711737357673625233644244323362762155273163356272456113545165263572422731377216465266743453211662725227457372241771666244575774377732667727255466546473244643464366466471527475253122536134564122771651733774421742326231617232532726132632214212633567657773366462374657172632126575473514232262332127236333634475356736451761214437443466662443271174642147262635661221127363723733437534554756536752164713425717352237715422464263471113455165224547452114363712353464143552474151226331666377626374171366626244456323312251344163563622513547216237512726263563242544625363323147217414342622145322713632273511532674231523641472614117327777754354166152436576751361323234342777317324461347355515641364632222353315154122261131526744341562717251766571626132115112647616721135225164267762314134312474315327243144563573145467211467711553676314664344647425457417517775265215674241526662536617562451177721572335571377444225364442462355535767631761745571227554123467154742736235432271222217633272226724336153616137163415517137263265611536221143153423174271337546321514447443161323732443415562435417253137547511115362743411764535454766133725135764152432521214762352376627334123632776352512227556611572544266552152717262414553554534611347235543745164246614252635216434367133527437763643362655417444712715277333242547277354224152562654514431155441451526241757125413753537656412567732655752775636144521475457535622716615215662516262443217173755176167512411563523657111122411237136227357547112312422535677112736647675753754324476752551453766642523521727352122736315362762555237413575443755157172647146223146277467244632457571665512535141751136763457726167156746233631635132142426532431457344367542546443761132176251416454373261546524712734345173245212533161346117412675432141466277564772225236377461324541711541527237362215235214347624126162255277246576323144462453164614122552515565517713561647346626532621271756521533123276334126713365315412466543254415437143644313744625265142367731573511116537143545354161237233314754176761666352111527742765426724544332632566177152256555311223616262455734534653117155517733224142416212676354674673565551713531773713214153542332612561671245355547257675252315616165254311755642571567316446247147676227336112451441471256273371477322265716345412552576437661737762211121764425673155711711775774325327437261162567272472672372135656731641157237256316516156351137142327335457575447331135173177173325361245116562526742541162171334264272122712373161334554653126446267361672142551515363651254137646617177374551632451157164611676667567531115261637634764545545524574567661321574571277655531324115663543714165446576564341572172557245446256723572662226266517715122766715517271556671631512423246535535226146114114216451523246123566411335247651411446531756657247171343267256217353335534332456467634243362224162515471744271151244662222453271453313426746254211767213357677155576737636553313473534163163177657643746515255626171571216426424471165747464247157347351324265635145632717434443477524657316213727514715747414764736525456477672663253167742447243725663432523621257456553626644256645312565266373351226522576124722654243652622257312253424346142236653342434762712136572236133366264612165554644261251414311641516361511275663413522762334522662632113133722373756146311752242344646362655715412227767156364537425244522334165477417425443736261715467724332214354325753476226421176261535255513145735374326167217146333742612336733663325245267263225533623247152532164617435354677552743477326562661452334152652527634374336214314543675313571643646475141762333117376141517615272253667157213524665671643634555162461475527213671367555151537256526575541453753722161715752716771552327474763374514524423525535774136776576137512253735427362763576467357353245364666547566175554324363317745413773656635556223165533775762632142437323771632232724323233316523775121331424751352614331652534144756123275663737311143232325122527431751551143174112536667412764737145232247656471543443425624327435157315262222416154535221553616424566215441772571253115263555426264716552642232251572317776431357151637224346775144316475342417425612534361167775527371225466447322514334552661334373326266142115467734372551714444115645652162732124564651143521122776563772316512257756163434656157735336657431766155674257636643537472371344453452241665662545132162322567126573127117166234156365631276322111513433542476715745547561534645717352647277111616464442526272613742236357277451227554246757351745172131757724156144557356425513423626634536333247625754736426152555357742676123175674366141146215652755334256577466136153161123521716443252142717624631341452643135771231546646742424641617113526227453626413416651246436341712533572153734365354312256222214571241367653313251672131642263643651117266421735135342336546142431543451424431243177233211135461555134167633667177233544756426674476126773362412335712311352331671674514243475637332572637154353544134641212665737127314422747434137523745123536631712444642614311472676312774651161326123474146375475446656354452624536161415336117743631565243435271117161614525533115265221554314426534636371163375135646624455217173665417515244756444246713435545123774666413272256513374751545441741346371512726617131647734461565621562754146746763157153522671463652146554447446163111563664724322437415753731647261347725431163445317115417474532675661445643211151153524573347636426573357771115214476756413467341212457557761612352266247517543775243232227322657716723174152342165511624765144144737346145273322262465753576313776644657311744162331146535555756744342462677277443657422261776773326676766115152431473733732522165755663564372646616371574157476113771351727375165715175514555366776133225365774676526467155775574517743612371172763723147531411253161451611122237622336311563777326554645151214377632465543744775753341745166636511167534231542336662767617412264462556361455512517277151122351636174733172752142163111314443545566252572661276574125247623271646665154454575345157673565225213213117555235662511462142763524154356344167667247316533122374772537463172162216147732335554365441417127347657564656122617337273254366422317376655567757113724352721664115244132521625637323762265354676413725317473265321736246115464246551473543772535537565575255711657137374574152634524365212612211114135634342626427757562164414624232135472756517614774273534226743347127324115776565225672324322757662525235645525336126452214372362553367154745572525562674344663741471516173554136775375631311626176146757246652442361154316311217125122146734177347545177647761164675113716437563436246144142362141662252114753237254272616155353441555167666311256616177715443677666574564336554555365456233523522313153515473251627555411753445676214476236644745714555564227617521367114111415376144633356356341571613323373133741525164723557746121343523137543626535137325411313551732355231623516321363734175542646113647123413246476773313276554375751764324757711511743362347777415615247635747721135375631622772563377464151263376146621724115463724153571617231154636747467226531347626721735132526322471524411646627522735441723555114267731125611774166644736315227556543644436436756752565515221115172367732616524433571353275327737257164454436212462627241763176135143412166171256543566566276172616261476417436472651547566477661617667537662433622675655615515765754647737272654754652444336735433331233152431147635113535532214631153371635142136647134716137633642262365173376372216526523576172322561371642463713675567241147313672731126275467166656672676741427534147656436354343222323231464547264252126753521733374737267535563277423311773717357143151745535155126561651252216323632147622337153121216245575321725233115451466712134151541464576212423252331332465264447527266127472621155212557377635716736651611274422133211341234626532421622743374521152215321115777251343547717362577627453555255312547723115253424326464753512243516621333742214747515322663127471364416114244732623554744356317545226231564251454723526155626513426353531347314226461477163754317254537655521332211447447154526654327374167123443511665573365142575526344277635317376166524341627373131657643465325244726652644664321415573133666422134713376777541612451775255136441233564563531611167267714537564721367646323315323343254737117511631636557171533276415221322363557552437456533252234655627147436474547625571135342721533547512553131113664671544647122417567136542654333134177574517141727144127275632154664744325442555663264215771326775562134661255134353714614635644314536326355171646157631225771532115137166616163777762114624761221724143634532133142454745444676772476172466772416655253147526426776516766575157135563777753736536417417277124721517217315522465446377221232633713744765657117563314447452556147453152146751646271644523161616664162476374367231216777216477365715145115644676731521552412451243761472365656661744122364541656265246465363242447753212666765714541417235562126735256546555346732163717576777674432425214747643162573453453554127253263577665274444121361135456515735425473124671373643647316356163635464717416546124427351216235511351253124161114445473424441222457465716326426152623264742755122171662524376215477736524723446665144335766717556642524227574353777343252153131116371123163432622767324543756271727133453725221427342125433342446562137332254235263575441775343212414451666222141421255444211522664433533454661733161636456631731575157335124321647723767745251231156713524356343455755142561525622524777535462737525222561754445731547424162465457273453661226131176257577135513623172577513435536453343347237413733273265447324162525152165146543164422267121547611536735561536755527136741126726113716576751665647542547742543554765735544643527415751655232671376113761465136711526624431727151161577655452363545326172175223232411376245374757423423742465621161331245615413354626313653354362525743544415654345277655124652145632227657555212741127642241454131463351436157343567644161145662722267424331366744631446464342554773645471427325612755735453647437734563636761553767663332525652666346722531776264254616771667745671474647151661426777617766774464743321435435567471471471477166453725751634414454434614655753527132631725366724471161547245641653147232671574343451646674457446162776375345112551634634463541367561537265176445531124662247366356331456277244611632431765615644417555565512213217543732534327652647426377427152135422674246245531463332475512634377651374137612752325655336521367345465772662261432327154145115241177771171321474726745442352716125216326361431124637364632133754676532477544756442312775312517367253324361775633775215136227167174446176175761372133647562567471255765576365536641334214363433542347227767543341464274743216663127133141216452532162556211777472416632144623276425674415525565147644241644364226775557243122725722536632352774514452415711272173357242577771461136366266227427755772253252317332162772623765113773332556171135453654156566366677222516517722567165672547477466321561532423773711661146226255221271453536337542622147651717522642627314336223316522517671653157443463126147311163434325424731175345756553514724357723574267317244632417171564233226415235375312764247366346162415355772541462561326356212211362117721114344534665624555777236447452673427773473365633443366234262561134234474742646172547462122361474117461265451273556626231567747441427537274435622615431617623651722176137563455637412474465764176477312361635522463724574362711642572142145727366762341771272476567164417222141631174275426655645563225246542546655476357345133611333756724311216167635553465647714411325145161766162641317115216547611326225234233547661671513457551612624351175451341547711257234324477234454212457434326545451723374321175516745777452327755156526251277152166567534175163611654562722236334314266616515176264644156263136667226216777577436124422452676466517432331211254276652226526365246312635666125636533656627666423453647346367144631326112212155513277243763216763734746276474156476322732252252555253772753362332274467615232311137437634163436646225376723364576433436255517464325746151377166733475223713143474217216355365177437353553271632363425253173533677735424653147375651575726411772625551256563414311552254125236427374423361643213451576212745527661322663756477636225257345236326357556144714717633441515232254123177715476117263546511443662374623613464316434611673646335664255657327162725516616264131626355243216314417361252272615676635462122644425444572622713514576236447644317145635117421671341374132135667515467111244443677637444767647537267377434762342444321717165751667637663361536762333524533437427423422742134724366543326562645676257555677463113177333221375765614552341427121332274416647455247635162144147274423164762637554447357563211241773223722225272667715665315531622363655177627125216675446223315443152651543554366166734556117765472651145522353173166554475474154452455147566116334273543474722456623431416321153674367621222367153527771532747447775167223541667253143236443571612427442637117126344667535125317451426621633744512271345761611557621513676173643173147746737275271451742651356657273271173724644772275474621526635155366571254645756625211262146763623513637415224216121156374373764244441512334155751765736466655413366446613321226336232761676557717743644276311255767377471456457354647371233357167227367425363222527656673242251213243215745466651646636253412533157412275654541746731657221514722662713611375562465653675755451556167561627477646533124522561666566654735115713666361652232327277165562463275553313517635366216425174334553242672153255674436467117534121455545752217166543511421564177355131737267277253424576746467424137324233362277643323121766631444567224553173257413725724716263653676243663172232644446241251545135753441767124477154661117155677576734733144415513272323222632773665372516357137451712445647241526467551426422417421765552575551511465537473534616715562752636711167743712476167662457755231243342447657211727126274262725143571745632744757762713432644547127124677315622732223576762357461512373234636231463733533677737117437663347272337533116415471473457535172722365331651523362443717664466677125643641114354621222327756556652656243365622313446677616664563741755274675147513313363163641234223744345251123563233541144151674271546353516266422667713521521241335164554564436536637173354472634344721561235227172123362132214641353533666371312633262375525113341623213144275367717341133745471574226432752622733171113377147317731675114376673172112343456321333624335775656275416743322344327772424235724533414322753171642542723537241625267722117531525773175541575777627611233116261161411266347756132734247561411436567717635642566772417565726771662762755533771771252122735735124233421314615176233456552345167612144214775476332617675231651541166527316761614215275711215261276242263262364124555347461227346374413133363674451316366577534573255467627217666127155635711352667346431553441352361153745214312446312557735263522541236646216543574753766676241424547344364351622426145725632774361424753517673146142643427511267422236671771275172466122174332215327476476526336415311532255575247177151622646417341323542311734745143145421473431564141362315122637254627166523612426546767511114722325243216516661634544425525227462125457422327414161433375137177323767133365326145121341244354416624631366122745541615143412242734527647563766654636442722135332123771156466453757723214512356557162371356215522423133676133611737167114745627771325616621113176225237653336335461261744264475417234221654517467415573131612454577222327167225177747453544123473425646566672512525554147643122453351327217551634412735113334673227362314452645215311233475764471336677235312743614127376714545762542564426534224536655666442242316516247234656332236116643177342322146263657414526526315634557621225244422374765631512266753755777615357527126713173431237624424416143235151153363645151752526366214527545563222416314423714653565251225114325617642415625422171525551461734624611143546417717773752111324626377525272143235344641153275776747122551155412136533731462251145767234343313526411125264472517425432276537213154357775554646717564114761111425154755533237141111531231231373211616571735131353326452575535267251127343156113556323572366175133255213621442117632222551572315633554747113323317532127371432324773576417652373267571622774136636276131235456776166251441164147757763126665665574321566614312427417732711477267511671651223564536532623654663745135224457725462354547246734332246661435331271345133167662326644633667533763117733332221563557133423316714216321555177267544557122363354716647135635765632316311651317721576612476374767221163251472314555356626446245267475724163333713451343311246765135627336662373647714446473463115572624514744347342776756315626415561351647213341641546371264134714753331361524517665626134441242757213252325716215616513261315523554163335147152532414634176557244644271724622265446244644422535233742745546656523547234616152716212527263261154437554245152444275556516246243526675311137474124512462375224516516431554514216567736366212562553427574355776665771636557647336661651376176176516572461574521417576637547541521313652741413664644436334371464634113317462757543177142562642325147367437545421132745235523754562431565632314517725641432631416542731515155547541236471573645532724176674361234461237427774567772513374732166635761122133673673744374771211775673716321671351766525226337447137527553642171171142665431465511473557743344364372761433613455536724727344114654743216561235722513116254774362167411451465366657272127417156465325474534373262311422564672651314253647361776141122471162446417226622551752565517157267435416522314562757246736734163127771644175664253176172615323646745732452131546166767251623311215111356562647657655664666327357152316276463547536314173735763711242272151425511351162464354656713222446472262326535714543222132355622473631154136737414737142371174233535654367363334121744275424741424221641666233737723353226722755571764145171463357735457243552422437335745115644546475432711154326452346176654227261635236344677645113612576222337433256714475553253454624456513756264275545324642216662441241537457266154727313635524152115352336266264765727423275614134763236145115413316457777471114512144163564435667635625674716367614423111444243127621311111651742424624771414127711151253447634177472112153666567714242526673223263474622311271212636177161332651221623753214224327141246463667113276574116632373327354314713724244224645431652123267631322724352764552324573625243336471573332547225467141544272726656145472666571437554621261553351156727175764131777572631775334452354275175617721762365376221677134663374164267465725455411517624274744363173751655422364354235755452127321736224677225642275273641153226311224714725513143553257374626556671412715666272561216156641416411551762651472767171175672135765154242531572677717221117424124731456723713213225237451513316612157143353675327753611162512374521526754354175173475573764315777142141576116726466147535377176124437511312224254761145764165116541611153366715324547456266616564654151522522265641676426426276675314576757316774264146711632622363754553513573122546446643735164561246427171513761646622136655344562544464435144137713327115742532676344721524241341114736633176376232734126564611712434311632561315612315273565677742574667736277751223743312113127476154161777776127423766366512542347155256356162144552372352537775772637455465611355525154337336721314352131513747532447173137121262612114376563546113223445441556157462732712477371623166643121747177312513652572674214117423627637552723321472172424235217472454543155477657251433146777736115671216756755173247544343447252753273713727546163137673231365554763575777753661115175532657546256626326324524734544337535571535311344276567274652575461252424365432743731162566636575722164514367674167316456351242733152624452342757122761637654751475771346573611722122376264672152553516557757752375525444144343637127766664771121714462175533117721111117576722213641762644345257562512551464775273461564222757726177456635326755225375136325337457317262715623345215627553315342514433644436773415377365736464746472177532441112552511213362156637246123477412666241361536236123746652321363562575625727734636153151373432621167643444351744651265226561153162247514242245644753675464573121346217735163746454735575264677133765757477775542235716434115112417216257256733266151723545457522642561416473731641652437165247324613755626111416473746656574446136525226741212143457446326753675651373217442746214367122717471157316541624712643373414625754773734711112614111437662464251762365777177362772145146274632121356156767136236533447361663175323342157153115661335454453772545261316324526425451227657166443253313244737662531762751761744463635262565663747146344554541316663372662457165171146533277341337677777134243753166133554511644634644667413711437454623213217673371777641343417445121353613772443553556774254222725153344644222576143734561313615334767545376457453167445666247124512677327365234642517416244345727317442311245521273144177645447411444776222715225443244221766747713513525116537414122455653551562763446247123264566144522211361671344171273523211116672123252451476176325617132344224436765132313232755637752116442175765612152365672555444755531641551431546716575144721416152257345371555366256762565645644172747676754423447247525371176617224174761544111126171642161141762573112256656772573677125123333573114333221231412671774625252432154577123235276565776352117463667341352676437377266225346314574631666267132161711624567312172474664513425724235321676721141311116657133635341114173676123254364343456643571521121521433767527163521517767741174257323522665513266437345444454172234526776467126672637563341661275646547521522412716666222412521215272253235577171771623164246471321446772653674774156475122163215462363561257651276135747256617345674162371265415232726154634751441267517546471213415212714473651176766733613634176721132572257251766663354647366352475655173212327227544242211237476255675226451374452175337443313432221744512751317521353311562125237425715213355437464126274415242314716547114547526232241613546667451244356732725737146341514573657175643436757444562325316751255356232475264241627751523521555312136376226543635633114367534365672541554341644331643412356125715162346714171634722373532343154664731722432525327456642267514274716112365437253231134454436765556371427374222646652336763672541417653673234511477542552743321472456737354736266154431545177147215227255552477316152145746154174626643531711152657174661517117672566142343447136135545716631537717624167534747565431141125111272174522515372347714227434144276516167252111346357763125443172742652717111236165775217255576762367652562716725435266375764664133221377671473346775726425113635166231317461724614526461173556475321352421423225677545645214153615753325477632422466364716425125734457217313554134654464347753455233244276554276675334151246425257473124672331311254661775741466326741431773145264542754651737573477542543247765532131427622571751725222646555322645717672252267362225373347174267161161476525663276725262263623532647177762451177673511131333715112712111355375376547754726411211322622661517436223322734764716752334533525551323745152441352347414256531217351656573656673121263577564515633131677164165517626317265757643146246366164545441461327235112436443271771554222362535557261433361521721776522652234671537774243426431627672177214674657751515157633615715214226516315314465263366557357172624515545377745665113172221347423113567421326214736335551615657271556531763614416243232322711731716772171553223247662735325427532431647726437645625131673445522676673715741136622445435172645234124435131334127274157567764611224776412636442372676766765446572172153247174234434424314161132331636263112536271653424723145312476315626112732121362164312233312343734746341652623732573717257514727524342321723227366771616657363334772334336741721527712571636163673126662667652744646235211137517133721277366664457264725121112115576536675663322452153666716331772655556434176335552231232254354452347213613656423657772221757445672723215612545234234456656612412774326116274727533111717662152342175717647452426737237127226563773575572457722516533655777547247526417664757131115312123276124116146226623546751512124344347167664617472167164246441116642642642342413732631445322533331615213356521213316454216572135217121366241363614562174153466121133362116345637425526444174616732467771526313254737673313774676144234427252417214174534735424432766522641121152552236722474231436321516522736216541444513335312234424277514435272337127354214431262723673245176443345373634377317673163327241275522252556276147236446712145354727254541452317222277271324753566424261446667623142153225732211163573536536531135454767553174222473767743636753617425374715336577215173566373575437367151514575416126476337726662631536711461122744725641752541125211222361412727512377474762165517732167137421663714753541761551545664717143242534232527727274461147647655271455271352464474732247134131752126545773242671415621645461656762556455173273443146334773262172241727636167524131164665124423651154746756731554663343165547145253546545357426274442142637744461145722456521442235333636622271315217565441515637574166642173244665744512573375445753741151464264767441637167634332726133213721411455641651643317512415645247412467344432426167747172675533563641716541114712625725225772341646146622734435627432245154271375113176411155641613237656466437357567437655342432166153723676544633676663527174213121424614677262552541234335766371453144533543131475537364163723177414266444751122665733343644155215545511217231411114537725542255141522634677641151535531226643347313517166763261345721262746372424715724732241476212427624565131641444137465445456523614473217274451754713476335317512241552673237336737411343275145362541747474341344315442762516335513617766433467222165465645572464654743725374326525454242721257556364655574146611367774216325414443737671374266436446166133613347553542573433376243253255446764743236527164424451766324152762467713775715361136236167676765334246635327166362115725114723557163667521531351671414126621276216614556733162152333245127247271761557452763111354661514532651761146223423744171571651445624723746667233536256327424562353656164152276453377332275753212616634232562337577633762561213363256773252425416461761346357617235234453615565425624767615617643455133533211143646245237731724361174356616124472426143256241567661437221242713354171326333413413666571634147564214357272644226574455642356225756523454747452433777665134756564446724337376633242332145534414251154416557443751214537374135552771551345413711733325454171667257336372232534736267646345333452576345462755541351544362135572143677556665531566533371424174412173151157523573467737172623474773212316471752331244253556135426751213152151474427166444347212717721346553523366474451116146441353426365657216767526737554511556221156745766775756653737572566511637644433333731736432573662553737733317743251463427561157344631745366373737776431521626554356553212243435544417562645513152127441766333716551636123514221444511727542744731725721211734377641742737244631142735766271527525713215241635753347757667153244636251175362266413422427426732435364474222332314767141273176452217557273437772467323435756624145234163547446516542215713576213125445111164145122253754445376611564266315122534152567334753533523342372174261777256271767353745312442752517671636566566424127651735142412513677456345221534623135543723365745713747662754437633521122541346147535534722565563155277454511426473145657127715314143112562733613221725621731463266511757253554176172674766146565445444553731432451552341364133617554123435672147324452411225675764316662543767713541722153644542173161446644654132235343747414634253311316673315532367663735321147417532331651544774763366221335317253415614657451256515322465316345716667274353361352315454226153546546466213563627152711532457735611547361737433537641115342355146213251455321675572673537666462424641177642722511762455554334566352462455651142341477254616375222371647525631165246264555425137477653646322441364373752523237317365753526172222661357622255317257145337256562677124717235165114122664522462651664464422147742465653326674263342722554677715164741414274713441553121421422347735115735427754742445527673136133654447273171576154726675217224511355275625716633325116646762333471322775676662224736522521765345467571452337562265757333332755424513641174744373261214556755537212576617415744352574251365141163343234175512141432151217113323556173523314431675122232144566144154436751433524345551776444361665432436472775321276376143513612555712763252625736666575265466535435723242544447337227646414371744647373557124241263256111657655431361756661425544162174271275632652656656721414223534143162745344541336222473124561314714322145513657611152365745775567133336112511473717247745645425447773113263332533657664341113551657162427144421715773347562156335244525633216216117553523647663521163757311141143127472176155427656163215221446752731332256722671526247673747635731254361374655641656545141235747756515754433226374162676212626723515472256661422241442354555451131612226176362415652711366234351342664515435515373615654677325463643423266641572172567256322151445771337334474614163121152351434325452414755546265417525153117642517757555222237611773411133717171776153576122113222672774376476517425775627132554753352112143724166667451463642346615225333746445233212351545173764576353556314141462627713415123464333727562477456737632373115455121412572132716772165225636475327362651756156651251613566546261237524711536535552552132177736152134536772654433621244554557475611463264352125421555133611651352527136416612564643465656145173366362243245323711357155751662227757216632365766134731636136247346577363633523446742236131656624514543127561235742355167266252533326741611745531167577525553727243236411525371417467443327713146353216377121271241315746731255173415345367517734776564361415135517334173754241541417757237653344261772211625712164773615763436156346567663464672363663473136744512452447116475745334614211214675154321332273716532332663674474271734767311512476622117367136567753362423415765556767127143112727245521172571255273276213424715743615615175223753462373654356253545247656572716346676365723631215741747617127163644662465761112515712674626624321711351156157432322523274177532644162167115161314666177526573176476626727535657335147221211427467352163236134767575427532674653772127343355653734516662151547246351326743641344634635143321244213344141525552255741454727145656113636712671116624653464571477221615415714126777476165456625641631513313714725166674553445322325466636347632541447215452113335165661625627164337352117337764513313364755265611655177733121473133373771627313371117113325565771247531513645274215226661431131355437531226737452373363435551776444526751543521642372544431522476141136133576674744132674157237155251153534314721344625423455552277426761523224362145571755632253234144226437276313163172664213426242553331347272527237317721374227366721265316471514546541672313352265313135174254622516615737365675425142552276162244134646715475241145333453452516312616577467213221144522151341213474345323334765113456763721231511246777334734634373161572616767114713757553147677126267561557411773471557164754765725663142772212664732732446256151657354664275474116414661616523511455744555336746677375457323774152765444176174775634513654145562751524344144633337711275123571777161514222714441342672473743252257442264364131274355524232457665732141477273212751532155433433236452631552114472446775637112426374551736246716254263647557224753531535352343171626373251474773345521257415735126756314544345511353472443135537545315252577257475156212536324477141756236164235733665132773333451445462371124731316123223657125362721261313776131752364752664413535645775474471415753442742523765553363143414666473151256327717576245442124613542746274746641522535212435115463671527325221414557471744446215675661732464624271147335713744425375312557232652777134734227771633353637554142351265567213173376544221376613147357735157571137723545565566712731745563444556462745525465376613171656224573552766642512342142352347263652331427323564621126253511546743366532463132433636565137223136475351436133376771641465311733713542524537167657164233165157457734317662761667675421137536575611431331521621571453456522412173336472654146127255532475656156513553757454476324277557255264146323712667437372612671515345751512274473535456657246431275673155275745322261167134161277777475135523465625735757456417526456251744423114611416463325266134763751414734526671536267627533322637172416152741715634625612333426537261776274316172464264317762756764775726357257436164536625233723522424251377433251735626443644127461726256213647753535472676321367473321243441455137671771643172732364413146124537627726113423626165527724647322313316327662265274756762565431751322244334652563171116266131127351516231537177371411441363314333414227422422473634112141412235516232275546115372113327351614375321641334336176476741117162731562667623457376247143353272565655243134573433356364613242522277724437227452127646441675257571512246157235431534512571417367552666516632315372242422654623761167152636176747253535724475665114721214724727746423124565364776571622234746134167411161627436375461623311313713665163256222152737712442474116414224653575613776171336617417262173461732532143163117617542677777456642736343551153153741141131115763376223517526134542665772112712252274456431443731116727131232466676455337465177221212127142411312367713751571433644245172434566714726335575657254612411663332234747763544333361141213471745372175175442275544557622352557427527437114324262651752277465537472555477132752247334565544326277555434357656772646426273524565532375144122611276247766461736623262665417562712546436374471374513112742112214457324354625154546256453655115553576233725444221737676265675353743676162746461554554464154623137411436534412572256716314777412464627474155434561562334144775353735116434371767235471715316233537432375745144751631132572325712155216632435144136232322565466674535311563411144167432711567457732664643315531157222434512441554653357711465613625162642227276774221232412162554473557162723712434656226346513253427537143343417276111154625343517663766314754113725722424341632541237161557257653556737555653146252371456565663132634713561775733253327167766373576276565676371116357367376236416327375765636737674133773716566422453352154761151564263455335317555773121627134113622271724564533223545741744565257317413161645177564351365745562632612212475115254622647455123416676231471223732413611766511243244766337361755325617715666173521237253321337153644754543464136161217533765772276674441716423432462535744544674663321423465622277464167544255643376341717413634663313457114611141715176756442131361527532322437427347355322536664147234456721664731756677254743557414741754154457656457576173452422737236734411467436425335664135333465352712262225167623512235771331766161476633452445636242741265374114355341515143545472675725555377625441531436615454644556325164747525767232224652335713745543361242732165217765132733427264634657253553323312114431162173665264211666122462774536534155435344665154167246445112176623457124673421131156622544754747316337721353566664467744452247111735637764444444733126465113723126522522276733346541627422634245237412642635361155247313416233146126473657477615442564245171416327357755625717554643451377347271337336137722766363732751124254477433255347436474777314317144614747464222266735336356121744534242212724343135777546461575242766226322745262663747615765612121733666164672277475455274756277363652461161211351727656454213232511767166221446451445374724237422521637651616463637561162626677761255144336215661732757243133742357765431351151354451575171574132132675743161226675165674755461774265762471522473211772577256445275163433415176326537177734717631336673255755611663662575266352416476723527411571767241161736366136131423564755744171121225745761675737317174712412534757555263344747177226617152445143721457113527441563444453627435636715626372445514751537722166563564366227574345754246142452437626255217157415314727645173336331266177124175625327414224661613642652553262755617667313761243647134323733331112711732442577155261732325551663254461624113122531634176644143572147333144545633136455442767447563617213661554761635463771636524276137526674373475135424512373123637611617251517333175677746341544446626644125152363242145163257733526422133632777324631546154256632463775471562633427563312137123273573333532716252327662175177536116454136431256472561611522475417454751625752714264255441671352421127311716377736455221271346671123755146111773541352313551457653247165766765253322564132176174521627425224153414562275475425717262225157555736326435216142652612724731777573534361222127376666771364553544116446651173144622622161446122634417476617323624117315562374661442522313434636447372151411211264536651223717653673221363413442225223235637524124437465747424656367613576451753436365273345622661652332177376651521447714467655143266416546323416554544124113616247127615547212166454266577162126732133627642757625444235335446442645126213327473347663516263127314137741423464717716251266417442265373334772364464312321272256576235667356676345766232341666637462152227177745544467534714716745263574525612467236221623223221156536217172441364126311543276275252712122357425147767155574525244445557176741654652761647212136673451472316365762361445477723613351427641571317646773654555145464535622773244121631327675411361755637141455171374435426371347544221336474214245717463313456332666131611323751553522262422445645451541773462557742361644772667445532631312567573132316626775743526712143222273625257141751655121621145567721213737744141326132325342122225247542547253415432653521633265112766253262642576673345342657451651515245332613572225761257336415476333776167541652462411533314755577277226274261531711755376774665616631651271343443547371271677451354531757715352746166217377246315651146147615173111133153277147645143766156777271474621342256352256445253253272332635152226244462426254572722356652361422436114347264745246473452727152335345173732526243114562664672734652563775147174576165345734231635275465212221773611355151565767516346171313413175142661651446326364264336677227624214271245217246765321312223326146477614345362352225256572745651627572147716335667475356663351344324641652576364244173753372445171475662743663327146535765132733112567165564126732715575321525736126236674277113414354176362754656611462223244526243654573677466351426642276651576254644244374233366363513377547375762475245651227746317651636575473734457346371476346435422211167354733156726167724757532763761117422627622641633432314613171373354646651134136563623314724165323171765762414463665337621421263664153753134663361223125451416165573262515274433645266724176714476124377126663161777512313223764575336257237455646537772223621372146763717764542425435561142273317216527426274355232617725245616531514566417144767162164621473366551131661566474472521313544112751273271461231677163213661272461422731117323324422154433653123264561673625366642741513112523143621172375124711226361711153457752153422225636757617771117356354572133355231746737137341316253544747414221325232344212434251644342473134367124341772335673176524174516236251514675742531141124433173737764734535242424632653317621234322737412327472265362614716133556751721254224444372673373376545354545774416262612771347761746413161661233152444534771717174655255444476724251535236326346733551316757661476552314147713675353415224272343322462177177467226661422133377722157371427457411371342565235126436575536674646117144233745557512373146735523433447163477155127466674517461744471511741156762621611362227424254435532657646121312357673754373737622117163776121465546734574111773374324523535574441343614335434675431723367357613731333755532221764276445364354751225522475537747457323162431246467143474367473431474113357413343457631456325652132543212244517246142216152751363557177424765123737252266454424171727752461464676713232271742351454652131361657552275335522746225674116136324312423366147255276667272224157671263512417434245243274326134234343723364236644367121562316142567171421754731311423562132147316236467576272443524263317613556461341437261425717527157152536576632766124257761144752166353222715374226645654161465614641263464233756543447147126517374523162576214752317434336326255737346527547256511464116752617573537522566623565733335344544615271253442433772515142716372664574633266322123214622113742247517313522565661311772124527654736166442721426451552174557554357276244346511456545155443517246376213666537776563461145526544414326636572662552222445121776646373265145335413736163774215761721247654576357763561752562277473536535216135223572717157276336512565315332144415615523633667451737461423637262152645327677654667637763445575614277742723712577572511756626416737733226631712661242446221172165257613567577767124451474523622442542212273372224661132414176354431762313532165465661141552577243353473667267135635643137271226653124512452366341745241377433217532215462511456452417436512723716237675267325172333366136442644576566314246756211441454217515164743614331237751235362123265773471752415632547662323534253653313517662445632617242436144442114355445711415766773356264641743477255656127726527165714567675144273771715617672512222671762476226525727421472663116375464634556331244276446544145615545247616551674425273157575375164577672551752425254553543312227511671766255327144623271542655136317425353174222715425463767464335471235546357662424363552432274735747634573661122442121213523326724117567156251525627752333675517221367315122375276365432631512444663614346667476446173365546712462164537426467433353522466267547646322265234167425617246766154137773322735445577371314314321635734366562436276146271632454447342771767222133757677763131516442643752763477675774163376556333621226324754155564264634522444147261733531347135665247622177614543646333466373161626771222273657243267445476615176677122352647674333267747632441332444562746726461171175761346511645325632535414613634444667437624566342525465751354131411565467236154236115673741454415654433445365711721572166233615464127465323734225375526541232772473542276512324165651425641747127564115775231747624676453567411461272673535621614315253623773232262463745531721542277671277615733372577454456634154244354435241612173237626511236743477144562652171315317261224111447555325423742274135155116526673741615357554773527424136612571175266714672213554525222712363373222723412743232573336546166325641133415773415576122715615547343557237631162751564664565442367646762745165362441141637573732737625224723653727245322261665177172724427115427553215445635345364656231243616653314262644471136615541756366155511326423153377351245444372321263215751377746715132565235556665227716166754755451641464252232164176714712416255241417735252561171611372543361225366373121377477477637715353466314233455675636715761172547225746563247737534424334544711642447227633537622355671454156333677732624271262511312457275241421414566326535126157326456262334414174746623525343416454273427177617414376741416167725435171727171242662456741546551325226237347564654123717165143116637564512661465771411431236556352437112361337236217363517365222474415745117724746115356325751127762465265361154755523445342365354633542417415224675343267425264666234364346261561414634676535113727365733741136261755345317231624552475662174724222756511623616465734534734547252357332425726655361633446112741115231473374162537734367362575726653724345743237332667727177161756451775473137753352345364263467436535316712727345672341161337413375227731333361151214334562542771614526661321437657414172246556641333233464536424566115423417265327754233617563342262135375525251265721272267525653265634417226355146267516471367676472242373142646666541527746636476534165511675554441524511475346222621312472157625167657717534367653713254562663473367261355624772372631227476137456514642433733254546571531555513364751134437764342311415652423762557674337335671233215762225534112262526453353365117515141624335544126665212467372344267263715473275174526176145463722737342113344253646645552222613117254355522357653431276437532144152422215432336161122155252465174336461144311216432737565723533267236343114125161265243636322742664531132543343462216673445733132675712165513153414374651554177457142251142441622252647125524551576625731375467715212223775454524526213253111723444566266635426161772327533734311167127722554553663126263465136246357261547216475116126355171135763111456377246767662521442654354764233764122721711273336514252651475713426511723732275756574662131533275256351545765673553253465651377736753741651342617345514472422524433147225262464421112552735371144451563422562224435712324145352721177431717142515327652477235537547612724131313255242422435221215276411114356564221553627542563312352474121777431516712165255676145315717126152244254364211771716446141153152316733572113222422477213421637161775354566222573142774335531541741416166712262666265732475642747111127621257457366252331226333455466362576443413321465671644372737577751736476742211772276526714173712774644551762172412374266666367571256633743153325654212172732712141625322647212767327627244454651754426523634143774167713461246355621612277773273722734472527545346431751642372674211541733711545421636733154453163151254565543415571373712357177525642412275647417557252426437471164445666452434472427562545416524357157616251527763752327777552311426527335327426733367271246477452333357723166762411337464225373635364365673512742276144577347723441261667342445756764454321212666717775232317216116445216251537431341255516647457334746773755722265323165741625751565456663576715556165663764662637575464154664532557335644423616765625333623275444471464146437336211734427646523263422125772124746142575471363722253556456657255162353722262663721477336324462172247554173352764733176633461777334421722267457163413476644645761433636764234144424754651346236312675673426733374763457523337271372253414427646456625717254313554762233774672641442234262522217716143434125471455117625777331323236572323764142662644544577621165746361671316575761446326222437334254353423373173367212734217344663421752422123343454761322447745377475736342576235625766324231752722636652143157553451374737125437622511734333271435676372325152243415517332663647547477641546674355147264444731626766653141131575471521264561762651557763277266137312327717225373567476117745751613155266271641216355277263161363517325235233463312241161561637177142756611141411625733274266117224322374521562643456166415436441112433724163357625425476233111221565256766324415251627644156111356174164725467174375453271721747767417113651671332276517671115714745156465445611727511571613423131746675443133326216477467722345432332166311633465424472474121663737255716172557232662741544533345252763614253216576713251544772626226627446671551351667155654757763664732621666724224221727514524724426671771612334757261143625317161643744124351156116222423344253441144456225233233745226564412766164632654316622337153131412717627273471122725362277473654754746767547652154173233173452156664673546544752652275516765374353633121175613161421263772621257532264465146566627745355431555532167527245124776712546423467354554626652565175666243215544511356631426775574373237641336726245721172111562223645633776777725421641143322553151645354253366121124331553642347544372717446252464726265661725713532744117645174415425175227121414571311376226777633434265261341132263423355245227474124654727144353625254777423574377774577613241633351651733423264173545526153237576674777451667376654545353717167667371345435465463747575116215274234261144613342756735556677321143663716566744342355143124766172472173643667414643467172421332611111476174236734274214466521773223274214521413744466734715726342762573156221634364171573414347536776225141143563273353523251235226242756152442763421113421654367213322221465674247247513677336347772134314773527653635214256174275527142551243227613425143764514355472561714435416762665114656224154444435261742657237751447452171434211631634231245343421457756733354337532145362236571656555457726463436654412635626714762427521476633437712315266166556627513744737222324464273223161663754441745776321676337552272377615442556256712213136124433573563321567426331641264165633212571232472355217214232742625136325431761126651672336622174511543477677623671771333125336121315655636621222312445756613514745433336231242414642356247631426173527552517157535772636711143762445323475422476215472362576175443165645317567511351516666677533153537472457531766731636617662277564634712756264157353245123454532215726225253551616133656224577731633455262457641465743675254157353621341516663132636227644353411613146226126533717731625464136226423456461244656542744614226241124552511645332127423275647554676353525623347661633254637626327254637521166754141556143244215123616661167665411557473131541353744742742141571667646341426564151544151254345535431365527367114152571626463137672732614754655464744137765472461775267674362142535142757627776275735115645161334247356347246177712613477115342656713631555575475767236357274372263667736525376265223147161527757445342323763772624121247313327364731253562171462115231363536655351516165275453555417645337116754725624646373762443437352364261674566253774213546113147476716315664511212542227237434564575337226577712276527533517256646513625675716246711754445363261251444225726532543542316736465673156471363157424711342266735626133173242666632334451716723476322723346444437654331543534215747133451324166154411674257777675627256322637635477567215215276771726657743146617656671522342243255232237543443321127271426753277614141225462734746165341237467552276311161253761611535741727116335356576534223223476214327322174723762555361523164115646512611413623271727212422143726767161323724345457461624747431321357413774541315354557165721254311251552236366235672571312431751117256411241264753344315652756271227751115234743277631436535565776673625351145475461535531377767561242771124754433517372423333422455546667456121513432714441612257144734172775156423634361562776713515326517235171363731176377371663524366423132271473673633774153434274137453662131432136425234576315132766265463646162734657337371273313332112475314417174131267377641265466625557227241644773634727255725517366277313411271573176224727471446276331772221271522434126176143773626726131361453616331232146446122614637656133325257473616544365647324322225457275155445413152747763424636575626333217761477764673154556527211145476365535425276423177143165373732661534216127661272316636455662162135756552547761212214143742157273162151234333464714522116334364773217244771346741523634567227637242275615733731712316765111173221457342744431531162771512622255312437544217373572663754246575235472456771747317577766414463177756215214212342322431263532232147752463225552625167317772216532531611343112314122264154376352634736152454625431646355616444627432237576277143131155756633326361514574335441165164662655216136127511354227426155554632462366211271246551624432317612251427231441575553545311643523732113137315465243637471554127424735242372141565242221276771754546274334651737655767237731146514525262656752157557562575511563246664253762266344324663554734241147656264413451723413761474737145223142623251252624224273776712644252453761226511133562163765252761125534647511634313531221755345461344722674766521113246353211641765467552162145255513447167255353132271321444163143316326345763415727751716534731373334271671341234141353136633773226755255211335742117324317616242157566311553441641624255137164461551421475733221373721545563133311352522435167117413677346762323352545717616531613162136726351617163575657433633233455457224316314564362246621143522267221653414263631765541765437557673167331651335443237326753132122321465652775452774736745342464527666444754432723435332267336712117755342125227664437756111623745733657163625613357364266441754566145255547231676634462227236776614421216133322126666271235135637362522325651273172713136552444474645111767711337421744631276635322243232323367332435731241135667223436762417353517222446552252373746655717135476441575553772241445432342366136713173651352477444317435764577571111477644774151471435234525515736277153664361337573337712472365315222612231374355627622171321262714265432562327772174214457575177527363442673674173634371451351333363641747327641335665733162325655233346261366411277613333564442275422352411452472473125313741251133461643771357536133573311335552721225426654546544735455422366572624476455741735541216751216266452121157565511455417415446455333435644613573632572443276145677143747332711374544712432346726143537463664724577272445672575411755133423224564614257631211652157662235556235637344441572677175174317265712575442216365554555375746755656137613134773662446277773511415321373516327626752613614274245171331513435436335626117546362263215365642476441134156732561111424162757321154261766662252362435744332363411241331227346465741546111451723256273335471251155123645172364671632155634153267761466175245745727236133531166776236247664457262325331615714724746553452221151412255347142633231316654267375336653521524611334365352172732666555146222773146515344544756346225131763264677457314771477334366162272517161256371611151125654454713165114242162263211423277646237446167614733343664736347334241225235225627364643246714136563524431164757175573211221535313764537656344345134446551534375574357354311146762436375551277761525663334532531673642321352461434322666443626775353625653121265531136763365265123376273425644426642432161611412153663345132513566743242342424731327665461641336124551615261654716165543737752775542644462547241761545237344653321615453631646664647354271767422523352646724672276325756165741233661164757351511534333352756171571676415532522676331666764715265255737672155445211567477761617436341222536374724164233143234276133355531551263613225633265576522751524712122412745641166747621137172513714146453137136743624237231522712526454767774677172625632123224467345753645345465641444745256736674461177633461256323717646632632371421313663117743354432326613744776237535747143467244576457753454277354167774454511151126724352612736435445122564513724627355556762726454265555246541222151735623125774324212736674626234337123535434177617272763554371733745421154673554664173362113126324255374655443733444172373775547166727535362665233652713474262261274156614273127314616255613733263511562323636577352177761274633223363514271767624745734165557762212674413413466373776515262361622173444114554324616466325654746357524235774435127776631516214143224651557213134134127271222647152647714656363776571432654237156443434231267467331513717444363237564171327467334375716142411724172524766626761322112716366463713376676677467421633234164734345774664454523665751474273516244743433111563253661721432712647343527241327545144245372414677525216223356333137554415646246232143776323267674551323177724757155564327747727314557761764453471247771177763734571571516365525652663162162365745126217136622477666175474743541263274222173334323233673366734762312733343676331654234573567276331543162462314573125616265175137115524663124664117767515326241152644344647246147736727563317535122566243176173111714774434311213462316726637231232742316147172531162655547675731225356363312466675764542541234347115744475745626524162256571336247154624531314167677124713231754163446111253551441454165571516315643554612167444513322112262124627166656176242723346556775377661711766716523124552347247766155366565357343554333566412322341217155614751246773252123466634745753655343476576734241676773367276453211561531544277371361531547326151136313567117247266442536571475521552121132246174732274153234125263474571724634236457166522223131412252254731364432342333566162333447766563631364642166544454626173263153336575162411355133415435154362715556214365513237672434153621113752514352724446446613337622132437721347541126153743277271375647731176742163761356676536777553657667454763372531327314223161555555432122462544617742364664651525261614742337121124363743347523451431237562575671346633371442671153377265536315432335755113414412132257133664531673412213443725237556551241714775445565143545271356244461651352725475323617437575422262247374616467311513545525477717133774665433564745232115656656652363742425774562235537336123711331735177777457712456421234644117213634633612672251722146634335357742356737137345446664646212147145473276373347175773351371425522452723643377217777346566742514763364562211242343277146743114423152447562615142461576364516367666133112274127266336366657615515512132353754713756616414566457222344673172612377252142612546572137426146247467525641132217277473455353276256327174217431457421765533164621442542274236315447447122531133277565714427451215162214457572123161572335373514233454132112334634723357121363177445751263435221534261162217521555353412656477542171227541523661526161356326274513744627761351332331476222252533127421511637713336407432541733336377542645657213153221466571134763141335232154461113253122145454151224737354633734363575171557275417123741433147576766567745775536551155321635715614673671562356224241164267761653342531711235757475513233322321645231331445243373165522745316463225247325741412712663766631567172727751666736347436745132127221424332411214142115713517721133215541713134647761662242145252562355356673251376464511126543623241716666324364123674627414115422422413234673475655451431741513755217523222552352227463551642136757633265444712245273641734151756142461344756362712317474222331345525643347277362632512235567634475372536547467552143477147123573222574542527576713452456452741253544321473553454731267126232461135571541226664476716632645723727566655617516356257253337742334424312113164733651776332445671344775276575277575674431774565721437241721442521227773774554355521636647725161212211622376634516763557551371522753246316271652551126114344426614241771522727174317211655317371635735127321341171723111632573755451372234362572613324472751246724144417757231431163533731156751466126234267332332725221436345473225257616732276371134161124565111545646432662522636455477746657635413467545121415353722636524517452611564417651377672175167541515717766537526755137256755722114614623576661476373212227132443735327777757726756411632645171514237231236332137112175452371351275212344271415526635374624161121743371721162634637576152651774117546552677774466437454533742343321316465565233266144637123361723764522311233453467742765324326615277542554233663671177632374366127113371115414675724117357617523433152275746546242653612773155337656277673547464752343444642315473423322667645333557235532673542175347637525451747754436646214535261364346715271267643627542214654172546547267417373756632165553272457423341313333642646244633263447472736366523716363277774322575546742767552262121432441263442336234424411647153237513522277432346722454537656171742323544416744546173461455465461725462742637324125564633312151353722237533456277757454614113241553175147426237246373665315533572211726762776733553243663556251361564563774666154571767446373322511261561261715555655723642215466675664174114762647542737247726617417216521226523461664722624614656517552615566246336627122523212772751242122156673576612153415625212347551755555126716115565347762316264472246162652574253771716237167526754762451631456657767674723114113421756142377176114115417731531174212126347467271771453555642142572724662727646157326575362671151263762155253157272162732212327347755362177326447567152474736164772537141163746136743224617427711374317327734646434156437512424445275241135631574321265147411164575421544246327152271725756776556221275721763762211223132721516537571464562162214347542153125111267336615224444277164263776476525552452215642372471227437261143621177327115234574527662512626213412354254611352744622273465325557114433234262466161312652414272273657263631171117251445617441662467377772222233161334136262251516457451663116534667473212441623551637635256733512551173461552232325217125137312667611347436652114544647363415673774722175663264647425463725415176417621426644241373741344225636517672645543276336633767573276166747233711231163755355424654673571423134251367565423176675464744725432266326275747351337765363665527757671531445363427516335635417515414661124665246217144537261253124474677367723735632326356513114665256126121424221442211262463262171722535677331366637757327645165166353142114244746154116764514423352666776514222247747757431162431511517571313546432427473513766156141121352536462745176556756773711132257532312675527465214214625637154721371452335263125455241623631434463631755415111665571573156222577753262732443633323472111623114111447552137514745415615711422734217275477561164726517411563665276325776655763565347312357657576322212717676256713745114271147113335556537445357643365776113224457336311256113171446237731364132265725754555276242166273331644263665562251771535154774237435743432311627731123731537254226133376736112115236432674623254251627413423744551543623426654473455427773317156123426767756335673546436166164117342241247772671245121727746341475622146756246462273316372346316271376213237716327751521746717627761523146146111776151355256242241423137654554664611647464311544726322317166564256332371742135631462733743522336273344537654537576673377652327137573247244616777767237335557574554772727417317476432455232321767476661542613644627165521642141777676152344647423331213377623714713612346642714347561721712414715375433337447165254246447517371132615242215235742377234235256262563477531445342613536341165625173534426664321612165622721612433776451337764144363165367461725334261435523131471177636615171533363535211624173274171772573766226671422414124535155364534124157647121462213557315134527223642646552721231626666463254367564157145237264345144123331761147455462275124541365776342541555613351612533271341141714252437211657142214625761266267735262224411516741334742252761674423646321362366311726133343523175561412452617532734557223565116564736314515451654443355643545424217241612367555213557243637412133151331461455276544611164245451166112372336267144524644371147155777346513531546327615445642567377334215561745567561334722362321365775655742432471534246475641717411376763346416553271152545645727751667315165144465473667565457444444566275612452221616566443311164533443244522744136115642112322674342667242536241743531641273473137426353626543636123121241511134265732414257634556157213365417727533764322476164663724452123215267567332673511211472231553763523572524715257317557774741341733373565356214155122233537765767331716455467274676231575414223255347224173714375327461241562211145771577271532373452517766311326236476426513742321561561511554576337172162457771767155127215775521541766324315415522334466155631716214146777452125467226735632742564272163247362731154766553746335645254471447644752357345533456253762423667753351426542336514441741324614672331472457723614251355427222672735175444335725353512354375556762573336773666433113242771567355625272171551335646164365543412375314434573736523422161556236367117563334546527154372451313343254343667253136145414763133451715532222157563411261667173551551345651765153314433622642226375432237336735317753435531644673557773726714455362635471674265652542153765523263565246425245723211427136572232477135666523316646112715666771141255645627252145166267755646162221175777625723721566553331357612613572574316571651436173241221422662152573463652636536762125157346563134372757142115725226734761657353712371225436431154757347544571173423556421463571166144221571711354643574654324434351762154155314711251755377144412512227545377767726313753751532713235211142741153675373612165266522334447645753343774475674333315541215373777335745374155527251745267711311454241772421213322425343344366444251451534644275441165532262245563722216572333161211164324532327724344135451767111127651235371472126631476576577513671124665634147133212753733725215417715671325222642257543246666421432213434367464622576223712754127451715535414166356271612116522666677444114613442472453674556736726662372764332462641337726731623422653252616166263327221714216641236454655455224647572714434417434271666535266553622724466721764424673566314272654251526512621464145533373122377716177742244413721464113435664676676773136677111251663225714423314275511461412637715241143514156665337315567652554417623174611471225267735734211551434143535774237745652454766245417735372112524422316464274717661673524645127573724673323735713112556233755735331731354561353773351215672415232224453141277461127247737267114245614127356426431355357417317635626232156711664631576536467663446361677472662364433326265255623452532614172422175527445374155324616111421664163644612542161732324324366554174477262547756741313136575544363633752336245243314727667354772276614231165612254656646573373533524341566251517275752642262554127465633551641652461654714362114163645213416665735734425243354762255777351331145647313121466154213123151274331115256452437236151372717741563515422357633746655615276222462752524753145333331722633465735232414213537264426637114363265622152674256276551534546315634426634226543574461444222153737412266721576147425573325432136167417311467375247126442215521436371323451521445456423645317344373436673766123767633326157124555211711476222517663336243255642464474635667751141574311745523771357154633541746135556552325625754171555242436241627674137621537246434141274121324473716171255171735431563315557116511431546255462135324665333343415467634562352456237716442727252117714454711166711173641142776371263747441557457657253361577526756253316355422431446174153736634542114753616251326125424236123617121436726635656462445751763244356321323175674642275714772316154716231452352757261751461733647342355432671275123232471564151225443125415525246672742222536662427741613455113173377621775763246142323661513122452443543352665473734234475677145222567234423474667312762442457371461574246475164115213467645665143114537477216521443672777566262614261237342335462163453421251551277232367622462777346612131115324251426571757157275176372324146674746626115133264663633164572471175766761615125424177326167347557256264445247612313454475331376325143627435436571147516442472435152533577354334542534461747314131374765122546323575155162233636775575217555426177715535747323133773433322264174174757454427124533116451777371617414363144246513234162252211213345713336763745257667115237461726421755653356275364375231271374256455154511421347771533744174532461215657711146147312526327613262372167762275111142423456351766227436445565417425767425463453315362235625556527226251727476726555711612566332463311423553346325235236574431676231412157324156763425476142142176136345377726615367121735151477274247111773673533546551257436447174275276476152437214433315244263674524365112455476133573331757356722541362536377324664217474342243321457724655726476131162525753415552655354755715531536722626277746334162671461265442444636555564526235415565713547115461447335617634475263655332343713266113764756427346745571635347565417777314347415311152346162231172772742517557312427753563116227421535117264325571466755256371334327241157512453523527256277323156262377351626117562516425461775515755772265716164455221167351142656456716621537264126246265213571447437322474434235261771531127274141213453235552471462656761717423555124446325554734212111112265653455732764452146461672723242737374171476135331211371573137333253663143146513633164244556613241541145441311574273637315377633776123557611172532116156627513214135574576775257561317371362612334175655456175243375335464664221731626455274721457114662341173116277156615277346467155413613225744152633454621567515357551264161566763342634773755612671736536616514152344634343723322316361151733451674361116311743364113143435113174542744614721447152475732552261656252645456523632212176263412516425613451433715225435244626776741532117243444267134561343153156332443567125654757347573721427243526716137616423361431732165223475415211212144413656753272714254114636751364137424221542752477271674473541356211633117215465416676357634151773266567612451232221756141557767217767141326442554762676145144164264162223167445754244142566375724434556265223627444741331161763345723642455156124532754774163327222516154673676262461267566232254535434223573333562517677624142414351774344717376557657642347422247246714315344223322376543615732666657211155661222453247531225524523543767447572747364336463146537725313461441644663316366563547541212657715711477732667557244112333437522222373416575664677411635177153376736277257155445576672512537161764624641646413264754135311321326621315573544253552375126252223125367147313121317556462411532255113717752355517474453524777225125427435763635616454647236352754427563272666457415272224242351123273542622576531352464212546562772245547726773131271632176764265322275177177423534636147745564225436357367231624317314321277611555474432366557221253514623614772553217446325346565755441733532116447375341714763672535541233335361432167361171557622417522165725761316345455423316661733252165564725552426271632422636154462142543337473322515151234742521736114437416151222147154562733247141515556473616232251731145551566646325264567572136223246113162756721451337311424437664466115273276444417531612456355715635454176144414561661227154656351116627524156436524746654253717227113155553436312776675322732644165372751425445647536361475663371241556521465342246166435135374512567452611536762612544341221662152131412565564155231766271376624727262341226625551771611731532335455571624627365565646752234467334774267751611566254752275745777511337325516665773427651455265346372335125115775247344422132765525762574374774631664425632131723533113454163557645427324537622315616264573242137711732375477741433351137554671671775246716773146314411557257247447153764574272133515652571434571427125514326542713511161145624757762642375351453633131355747545544632173627764261615733647524411274414676675424614321515567237351112412371754436261342231164221333563733332714633167273422143316565262614715411716736371525146724653754445316327324353426233136434722577321263125443216721445217723272135355761536157653116647643362675532331414312317721616612242432275531673335556451633534641124333126316542227775261535232344771313334272523433362435253417727151575235371654273447356737721636177532463557371755723515571775576662237424655652453734624714574464577661347724373677371162453211673751215121641332271411556217477665776521625752271232321231261261162145247735244361623656166325544751475571225755141435345117765362431312343141655621446167156524171231576772271152227236255141651674143754313321554676515433511611416725546717165555546373653754116717565375414362147176365762563464543372253772217126756565144314151321636326557562561356254514223365441464352321661736743434157415261321756221371475361544342313721264461314444573223316153374617146415645323663216557366136421425316164635224545424473276131374744754356762545317757416233353661375732631216747756717633262642612525621132626533543446754252544625476412715661136613412136424175556521721611724676147364245646534576612162175655573421255652636317317516126525474657764563146667537611613466135623523311714514577677162531354345626167252734424413331575653277752772726123665227663143637367355655157671251113172327612531566365163173321333734165255432512551267566121363567217125561752331356336151371776127723412527743771643562622722724116367542556766253532734235431233751156224132141525721344227443652757612335543736521776412545243442433567354646432621672157774337564252117474451553634241251774153462772643412577274532766756555234334622274554464757246154143556272665215563233641164613316764614213725614137434534314755644326637343124447522265627324211643547614117563534763566411333327613764416364641447125777123366357657421346634771773574527256115112153171175675716356647656571213321743162553343262766155124246511615124411746466574413226753533715631212425365144625147744336731515637772737435136653646472375566351462654531243137424475646424353321577262316532775545321263712254435463615571161734467616311437173651232122221424164155177243163451675216332564373621531466765343333244111351771364447625514352624332132167261421775766541315577324521747766122141647534756435571244242157154271475457156613572615433551666376455225232134424625562147136767735646373416752443322627623533525313334776613166422773666341623573226527312727761172571326471667313375445531541747226362132232372522255232315413536474526132352634763676147771244714575431767153462753567656674416757612722127476614253151141672417472713216246136445152165346521477761322136142727525144572563642632773227724236113626317457143436645357362675516711131216124451464313242542433334341463474153321142377463625241676735375713336554114763254771277714544356613567167565223523744635412146641316227316131423117513345662556676533565471632353224667546724615571147536623241414773151752434324422414366624155465772777352125467627461462161647447537676271647734772152361445421315475414611675276524653111542613462244734725656527125426414166346553346757555437442315375175731617344143121763741263722532435526542266417516273333636121354747614243774165715352736541617424315731442151542427723611771743313717253461656137131413522616247651676255343156151334525777633722722647374772521754525336231624116413552253344342124551314415231162347655111656152536751341253273537536437635443636625663171531115177634626463165767665166342354154751553343741457546264112447256565633166553521515434145422337325772227166452642416134675232164755217236165263645451741665713472133145166624371736744222633273516733632433264477275621213543124721415567217646766451613257662375437115147234135714164521611247713624541554277677217573153176177472156234664653775766275614525565162776564252643552372753545324132433223732236575746234521343157424655352464445151775467633232263561337575153772173651535251371161223163112311532216272611161166122531733373466671527723131247251325437777445325367563775132251424261167225756526665256172326462277227332137712617427336572457667622654267172463436463443627717771267677716146521377535126216216326315317335117336422144165716641413355371121755627734444244142323657517513717572515363726423765263234325517561751517771654353111435156641627635115115214732252415134121274276617522443157215447262713724454434417755262213761711271514141514346355164425634634144134541522361225645477262565263615363545614127523252362541361652572757557252143572731225444541112316374213437117373534272766167322251772355476431624454652557633161161426276233235672271557542147267432462275632433752127713327357232561622525167475571512246313227416517762571641522673221741464435325324574762243423755253222665427351132541664226633442764263644763176264262615617354564373577367616646465556456375163613172242254237716454421352171363613237554261161747572731247317711244212731147353233427545715777133554657665713245621676476377273651436335336564465455325365374572636473325274533411352177521371665545776637424675622233325466646324234117752351253566722671464337653364353527734424426677647372461636375657754416747731614554115217257644741373371474476154576417435322715257576637317224615646772533135662533537671623414217777263566345731215314566737447331466745673366521271547443477544572567261637573622116753423377166336365457521122424332674154253116745612665767242765156663272612526317676576632122737617337422774735635615667161374255111263352746452244633633172431253362737245213441143437747323441771164111742216313667754125373563613335421631573171777573342631212644315362553752262242677772224371132652226435755111461477714454666755261145632353423562672437735633352566252427162352452716711674233371327561517735274375366456263434456535626712641212631616624151436322273265351571775176167466642413644364732111312132637717564135432752554676737352446547436132676274343642646573137174756653243154511115472351764775412477724341622732573731127537372552545172374517167353466442573647233743274654662637267234423612534227647236514771136152423715177512666722564375311315661252772653253144333674455577356415616173422645362762426377336317161612354547416615261111154174714216453121272263111122337741552174741454575633134245462476543162566744515377614331271351135454623527372122223741157316331116672363414537761456455527352572463521253635625772731422347631267552676162155565772233371564674661742752251127637753423562154552746144263376452366747327536113477314735474333571565627613434764135632311734223463366256722312724511641734566246414432334566761342546553123646617463615374264331514553774271353331513452272636111556166525745317572746365551462547467451346716756243213162141426554412446446364212532137254436274735173141677311564671727462311714624327321352422121333272432534215641113131213336461777353636267153253567611264232343311764772616335774776135542777347546136327362154554457245334372345261124152477154523556313144217726231656126234616313344641361364211477311235727757214771131367121251123365161156116525642767712131354572422521443324221321332636773354736371346572233466522625416153556476644525651327273475346154433314371743542664514144571417252674243347614163554362653713647221544772763513751517714276463524671411611151467531421232211463252433514623761745227255465645253425676472611115621655435211727362153713214425111276141562754713221533145577321341265244543155367543757531462627747573351555334371767144122575572462217275141471611524137471262531742763676746726711533564622165262551747543536527612163645264773242356332776651632257644463763471747572172777173311366135343713217276477616625267316122657261522541412314375733775727315235477565726257577414113614635457321376172727177137442142425274226357366461371315362565731657472431376336465627366445341446417644713746615561436314132215247144636132724573656616323543451474151663255555243734765343711761576555714661415721411355646755124173774373553455527655443347263512173543117565247225663237257537757233645613436561261614632525512545233624167147276356743224675363115467116112732767554116676425636575416327533721611331221264167747521544527713315451573122437444535713354466727575555751325372754546213643655634473311433263461255177565143645426157134553123252163133647334116124737575127545755367554571322124637517333377274634773454575727474444416757167662353521212773154412262156176155213566616127434765223432351256616376151172734445266533767224726745764773217744464441751662574311111672223217767335433532673345466646162474473336171443744477256753751122451724745211615345463267555771256462266617767534364624773512621577616467467554313676276656132312212242121266516117646525441762112427532647532532526571344542754235322426511155347121266633131564326571351566413525544431754133566435414662533176762426423236616462343622114515315656432165147616243446766547411166742261115177624261261734765175173332432133234664772116616327127452615231445244544145125651564531123636174517373611523211377663715461472764713315457612153243653412562757452113662753161515762334512711757261556744264454154417262464663522776674334771575156265434123465555544217627167615544417721461157534366357357342135567572732256232677636555612135614765272327344533615414265471262651472623661243536316124565773111357444133147432373175754445755174257653261244573122717544342253677776325442112435735173547765256255111555167432236746322311136754566654473557663567431553677664464253644311217567422611171761531366763313443413455756166166252211276447174544713677427427355516647413524171672353434476445316172244635256456615147422455277736365141776544334152224363113726164562753526262771112651173475414173262544564164116473673154716535154237726426147776377726421363161625736572525416455467232267677752446335416361227165121356347445611445327355371321733152126753543717542567321452565713315214467652736215341377657567131642377376412343261331227165212365516636517754314547672522432561343246121227561235215477643222257674425631627744564335321644273253534331412426765537363566117424717342514746656332462637651522424361641336124767126223321424756315412535547136752615347411777731571654522435443635362434734631717776541624562255624266563357357467245337776114676426315732671647673436436457751722654341637724713457323262271214561125121122524262125533154215553766511612274633154631357767445735625777137624332725252151135731423123146141564676315623735531774217623541516376356132436312321143734471462413257254311353475522724575543114433557312446177662155544331731315763625263712112211775527614755663145775267511743743516511127575223122732723716324576547561442373675213474675631427274252347467167671137531415467317135361437445445441533565334475317147214361124671145434361727557576527165277777223657325327476456342357111271112511442214354133667125146157261441526637454271476511414333262326571474433242221273344167526662643712566774337557173523564554737242517427254131151532117656262227311454412126133115427676435757621777441642456176742642474373376465322426665566453756126647376145771242132611456755667564424442141356671763132147537426272636153272163351575172145137741244242473712237427237445251365322647227517744716722166625744576772124764171461364663555462143752254554353522651231526365672266424111447712277324376255644163125435672673122154515533236546257613514715227445216652276263777772452154675641463241571327521621176414174667127354534777662745164736436224336275751447336643342155732653376236734767134721366665577656316142134444547343311311757755677523136513376424656171216275174746463233472434233144274234644442277624165442165413133557333717347423233667777551763442365676632663276576566445453116256736532121351237277745523135163776563166134357376474256462261461456754767325264225643522141217265173663535344777474756372414442152541223751441421136656221565772266411675143115222221132227621157717171776227153274311432534731142162253175273433265241433137335553767311227464273631164417434113423543567645365677777557513334566753433311247146256233314747427335671243251364113135476264326452243376635753575712651627242227435775667356726637126111146467533334122261772656771571625574641374616726735314273364547237715755436431243115644262647764166573346212347761545265462562261747374226464474542461147337555663623436414255532662717742721716211655435243727217527425727712642727663527112143115247752144241454544115127333654472416714441527163673326342747417657642417672522173545412776637635723355346612731316746335232434147575432413525767674521354516333323167231524522472244272674627242651575756327567175436715477335513673561324313313266161621664556755323456126451771516612767445352115552365322523574464764141676216664312765336517366666362553364372724312136111757636475743313732223755361263267244234722362666221526445673123251673376436725646732677457773237211647423325112115276344254617741125171533354555314242617367363466317353677367217735126154714454414352553671533627422436241516157675163574666361244471414676424515225674263112246626651447412763635414234545772554453527561177352124547213723262637312261367326631215127521257353474614653575461473225217326363733514272562531672233765717646242513243422664155271676377455272554711353543251711177147774635173574643217436636745742752545455736422633716512476274573767525411263456651542713744423632614446664233131315616113445147432266166511234365146667345141223343252142355714532427463262413131466762321133675141126545676312352361413635125523635571371233567616767444245131314175234461636731537615322245276726442277364367544636362576335221774334372142115672437521463276216643312615736626173256324755627614144336743136146474426725527577215747645341155134467372243134245741145572611324162731356671225723226616261333743245374164316211443434253427113331261617241153137463221564474737257231254373715663316464735531646672617457642542163642434321376155557425513171317614151512752671546611471111142732541622126216362244215326423636213276377332377515336761743226231461421564615775521321525737763132274444234634476541623337335741251714327114454437433765131634142144666771346113266475311363171415715615742744362243763733452514315715613216546152452755332413244654436656643551726125751232546244177676662247352275162215473317717711577713657277676227156522423523573464173222223246354236377651242621421653264522447163613711134217441446666457613521113414536261126372362147122473614245521556672541261414426566757475361345346422632774536414313463122167713565262571144715557116511721713271112271276716563575446641642162314423554354344713461246343653114657245673437127467625652147641237163744216232272264652277154277115573135147461626325634651471523464717533563665721424171251432761372354743342234265776134277476526654562125357717511523142712765663442545312413374345642154454152426674346476235561366674443741223174637417423113431221754352373623227271234644171234332657211474125755271654275417743241262432245752572556316147135452617163327125266455415323447126311426157753613661322255411334264246245454656134365573234471137653617345132645364154461231254232622565271576326734312336464211363552472652525412742316264674743222452647211752257411236617314636174371431537745127142134265651461232266442456361215427256645714241656424771521752634542546331164142114413616773265653736673112427632412762673312176373372573656751112321411143253123454625322111212345535733251574251754475717132476142735363344671765435245241417435632351614273313255672427571543326454545376747356136372342545267245632552465523446277335521431346741226466251514545572453417654442564423451431225765134576573331417153327474615515421172151314456454126255556421353373672642327266577516364337355624374577642761557621657313352144565255141247334316515446163471757665371536462133173651477147254232773267146251672351337245272526117535442467657776743167576162713156534163251152165364354364475773777376614733141771547376657357666617511374531741214235222151256141722253635731143575317535653467512721214716114363225172766435325617631232153623234754163127662544536753162544771467115437516673456355774241641711723466547547715744543267464664157535423367472215573223361667465341273642513634624156426414554222452736231635211637561443717444612716642735465562437564776143534726623115663541616574214122474116761212162545727571321143373614614744343536432521554751211613364677345622676747234723144244564164211113272716142544142566235553375516146447365542246325242731467141765623751536652514331535665613121724323566354636352545225127332533175345213775534611544346372545264722554143627427515351112477316122471715411363454111333562634535716777642671356657122362665242132642636136354142753323572426642726222244161575613334724256733346167474113353143411112621635252112142644372527157171474567414725132426747331347266446134766661414647654517634564447452152741111477556337334713466535143246357537616433365766334321724352227372354316554244271633145663715655212644521356767262465245646343174461142217216235575432127154365133241471413436376753264173631345562741123567417314624343527754544131253621553413276624317224771314532223361542272265616547341511265317646134253512263151215276416246243247614254414132254713655572536254144553334147474164562352546454161647172627556156646165431316624111721272257176763612346516311712215435754754773365432273244454774547245744454773537767325662462237164772436246513473545444574117236636722635626277464321772523437423335521224234222754755346512545117663674341752267576222262457161146547173172431427251571737155113656751317442513641127234232742347345377334625373476521344452676624553617262132573356474251551554143523553776256515355773151225642125573173121112546447754116764325765414127231426353351762762323233764416533574442161267466731244643415361557324623653632626142446176536523665351736331532436712522566452741515512546622166157241521466663655535711574123722637111261751455122633723425726322234444451626432524136372115736361636414566433615227261411176634137167647522174536644715125721444354442423723475252763475267434272545717412642471767346177242652146747671376435535462571425613211214215334271764543114156757471412244776427626373675334222152334451247723114745335277523731174652667762373777544455437634253547146745275676564332176172411674671665325215265537146747211211711167622453462154267165175327417426511766225444252261171624555531472512435311625135234437716672743224361721273726544327417377514226766177211512477122154225216622631547452543123125224757567353545511657134545157623417466425672453642655323131233574544476366434131336267414636175663243172755562524434514267111767224534632511172537111527542631753436132323332616711174167354452716631163436736721127445573232434226445722624425621665555262445757715417572353146335172631764462554436325453166611522615114563752414247124533435677171773452667222745767333776467576777345643666154543515226175746746673576166665453645576475212117771257267165523221617557371611672716146746632353345222352333533135142747535752427151475632326522346543626323666513553457711564731725311132512464742222132222735226646763254424122453656111313736633623247713335512177112133536331614337432664445765175221575441633366222311165665474226476242335753575147166755416237717624167656247145153167721545455541267346273317736344336413361134352426231651765511244125554567336567624673772553617422177566621417571252662746337472611577562532621747226444311357532721761253355452575451722756133345545553312157331275366575522155633427142257323434174263746355247414517136762434155414171736553533174271211363111651362465354746455216431461111376526716543337116727762731142371254155742376477371376413727257315123627166726756116166463417541263556465361267217136174346324552226766635665576571511336271555661661653541221212363521431416375475563147372314652334366441272742522736766222616132477335464672153267265217377374554511366147255613532253113234711363321335353734327535157313674143316441271673436512421453754477131774235234671552724263461747744154611324124162474123361566572371761133535335475116446525375626735747423347727531476362131644631444417735657723163723236332716243515612416311637332556522732647227112352212376422616661763257272374441763322156351336446173224346122221543762611645621532244712513136273612173177572745171411563377237517627331317574324365555214127762153216247121542217776426222331447151765117155317417362215447525533732652551321351317531275367743246524712244272424576517436343577551263476137271742733717644234213422662676635723226717614437141523622272774576237122224666614157441762252542565671112571312116743141357635123614625266426546444751215272613273674423466234217675726547741362751533272136446445241225223362557743452665533367224236162327576662346536371627651475323545536526743735566662676136661346233714772215165664163777677635651151662214723612422122112115663712167417113314547653274475274575714655756326174211421173512372773562276232143453626725417637147436657573777267561554234311216251236116427545433572216656777516643555427374256535151656555647643111654515232225133131125673566216465756612136641265276156345176746455336651436644374272127737634413346144317173733353676562545226543467121247433172561346433346123471424531515234473527472737633213355132213735465157117323417647315712242536475212124246527514635447573145625536751366157227514451332546331213171137645661751426542625752772373417414363361423317513471677231513453111557623263345614676732173351562756741366733415174771211446635733747266172533353152164142124731326344354431155362612216431234267123661345443273563775657163422334732266733453631243727726472635337645552117473637121134114367123111765215356641563717537256272624624454373366445756131157177251644222653272256164776275175233437142247467725523224133654411744761214264366141564111517357454153114624363376446757151776145542152555213532577416523625521276415673423177357317363754437657521312564263231273332531374262254476566215641657324676627457514254234754532537672252154212163422234633416573552771216641151532645441671557225436541434651625722655645733146772566732521713415663461373517511777674247347672462731751543423624623337365355415611127364536232513256375744615316521456722744126443364271652412366333145442154622361111117347677423747674123624763275215352431314717772414616324735566413657121412612154454426222611543237242413514123561343356556644267314446136542221265623471355713735472315362515645427776735626222763224653234132564564567362214374526214547342521217667615135575257772565423715737625517434114732142417352644546441333366626422546117736323767634751321123155433433447372611675414455577716652135572623714215745312272263162274163345646361775537146276674735333776664514623416424344135531475775754336127461343167474471537447236671474633771317451721774131764744114611271242217222331155154651263644765123234275522647555133252546246641176635571764642556764251265763172655535536322617477125253742263562335121654134175117544232462737264775273717431132227732212314334645565256131355576473723254711314174513535664454414617235736171511373556545212643435351164163155215572457177464727466514213532252632267217347741721661313765113477636757674571713262333522443124777775676366576126453746212533234235635565455457425723554736452275667547224173246131326733577127615773624443757554726722212324225115327153562557262254315437161712553562241427445654324161161262546726332515453157513221321556624635462743471627767313456423425112751154524626626651327173545446544551342735627624746655232767644222446742444336742631553663547373531424551275711315353742546466132163552713613743411725261147753154541652244647121233152267364673247446652247351413631256224514142176665212137272575614535226632143622443556576166641325747732346632276654443453437652476562746622152737415163346225575354551453652164226735262125666433211255643162674461226432222764376525211621177547562544166265725767412663613767756144642677473361332512113572511534132411561711155337557121311365117362431633747563441464515765466524761153457436173143623422262753552571146173613336522264513622217566673414115452424554224727137717766341741575741427152643647761667525621771615151775352656646744737422612114722121557734732637343214476616217513662575311674631162532323354424724114734735527645121363612355757567153667453546452627311447245225244542511164133314336612647363116573654174517732576456734772214154552251731645124662666265516234613137244321243622122751542555256463516252365761373517673742561547111746366165136517676314573647651165724624356337227247626224313422214777346311322356442373725367512273236161233452325556257617661121344352365743116654412514573574632377637433153742422673353642426666643627124531763364622215551346324716621313413753435656424661413274761112543257523211142641673334142144432651722453471754155477714332715313376534214212527367372126346176437324744565646676646142675615651624331777574464341265355257755146661752131417145364132641645361346455552624652411124422476245463347226522216457552323674512352615747722152117175347721572637132637622247451462225327317664716212314422556525757513553642243164314156224117624665253531145464135634557372263763617263371146552336625744154453634764423437414541542246744522226626261535576364347675563254466552367554223243517676456614372147266353666313564654533314743367327355554416774552335777373732165113661342153631164654515212417221471625743235545233724555717731771264771233177724215662464367371417717242561453274754323752171143165172347424135643275572172121546256514456273151377257351674657476467145774372342461325576364436214117617451515153226767726462274525627554655453164674576434744336211176573342642342632514372745656677556723371445622712441636424215263165514662345545611775637461226546211767223671462672466436667533563773625314354643712665453537776566767537356752254443327763764734632714133721356732464372711314677277624327444251417141341572163213175537474211363471435675124335746421471213451627774454165631325377446561737231321666315771243763737516713635757147771512636135521473413167654772761243335341113164354752751547741174441266467777445752351425632652415544414413357145414467242436671556217541216223155433351524413651571456667522236773337423774452433671471442666656122354563221564144323371656535351575354516755373726466453437275265724464463333625464333765115654546226615237423471744334146743421444324267142471675431146142324561224632655215315151256153425773216611216131662316533442774413245737151764744215761435736311625531536634341753662734631563766431614561224423622715571651256123213753117642133324213471527531151541251135351624335776267154362555564611535537373114624641316563443734711665525225522117257226653257767157641454346457375437225543543552545614437476445271213761455124271662245275151761212621667563173273336156763153114367565635146365532557446155465133121774471427213467435234612516137321777143264533666413713355262314314412747524113753363722657171542374471542163363722434521622716236616653162637123376671154456371253141451633756376275223752511736243411414673524553375613155141775436567357643221651442757464674347226245343665753127335314164431563571335624422135161611321163253622756447122425134136371311736217515353476632446161721161273735126164334231476314517626757552364272635361531371143144143717337156333172155175332536352663716714751452676517352536474672264776573542621573627273144523653363134511614774255315512375662227542113315714343263145316765276254416136536373611336166775426444115631524544136352262272144611413216371666471337577726222614144456315313243317366461474776372151613354611353312257311771632147322766467615135242314414477614647746674756472327651313152154541655445243223446444565273312166243627554175453326616426156366113476455166733365165141756175625375243651555174623446443344746565312511755576252536413151544424256447435225232326357664652414233116753575321642611561365546362563377767412617267357325162721371547635617171111135777617112152225312273224325342342324225442654526736461114661114247663446645417224262274762774417417755751611744353513312421263334332736111376733415737212431773427732734774671333237261424423176112476116675642366215451233643554724626517414743664432455731417112675556426213472244412215457467752436271223562616467671656536623176726147417711666667146722615214227723165757245244242154345167521414132541656462217334162572453635257544622562114746545736313567314377663232332146723536466746161537635142216422425121657664475457432357461444626421625774454131175332412647231113274775442245455121371666512624255664442666425347317575457752311166643132174531662542421416756766763365566252332426777752547457355515455474737173712116263331276167646577172273513714733366416425411272121342713224711247221254636145467534726367151366227446241756516672215743757277733176123231213763274617215335331652564217321647257541572336263251537242174377325373553126735262335362473242264124512214117625752521761215544157637241662544453625634164541267143271356543311664461766552617636245274151522571337346115415577423244743724214331476421162531413147634147577324463225234411653276253767656712452613547271377536554744142134261463156271237223161675222426754224532442476411721112623175673426213547777651143164267661461144764252241347455764522512661776375133267425462272643134412521352265523564434764151465236317556776451757513211526776413343421412356363255666757647627155426651716756363763767155731155727626617624544252442546453471364465466467155463741136165445514354123162277755363315314762554312724223442551276546371166255576661423671255216163723722747617517652252377227735246532145147121777335576411414347234342155767277334713754126453575252457267227243654243756524713637276326347275563311516352662355466437355414274425675444523162742514642413232515465231624335431513277551164455125547743465122322742126236765577263361546452524727323255255624654322366244527132354512427212761322762616461414532314556477767733222424363334221452137676776771334566224667213257553544344234366756671451372736613367633357776715515752123217761437522757751742533237533753753225267375413477763415551765275416325366136477416146615775624376342111614564544352353153756326244354556125613452576123511353376735322224125452533356726165424421152315127655241576411431162525733274176764572652623755175456263612312212762161444643553211236427751361552177143527175336442415322451737147153536437372247477343512614717735372345475611561725277351153155725253713475555657566535543761663512773442121525575451136544624314574131455436317766212766452773563167325762712722742237115326664214245744236351644752773536326146473277714752137636145512345262231462473261414371214175333751365534713333473123255564411625165531333675234641356145677663571365412721445231377374765153324463225526563427556676215724467235557322311552531522453265743666345461514571155237576135721311335775256547766512672414276447564474122176766746137277127673761322143352352156162712724115423646753411637735743255347162633221235467642546453761636654257572625573561655613212266764412572764535273312172423733643413563772445156527627271575772334623223477216151153163344153417772325674714523647357625222652642115575266652357375466127316674215264613612136767626432572371723442124524626625621653734363565731144635231224675654366716355151376153715127576475734734752577637645136647721672475217576156142135652656641737161511671617424647544722515721737221312513555142226622173715121133476556733557772674125416227333762537544722722311734574336472661254222633146371514154517546646754577662317237417735577654442446117717337363325237111177653727732742676726257714135155734335442535134737565557262177714456223367212676654443371612514251272542452742541175445537121447556623271475761162736523635762656553263234143242446421174513772756365621334552736612713463263352227713135524127621732422747276327412635527133116232563667717651713116761713315141421727711775277471377367732455721722633134654614754724611766651762265561265547345136631736525513132712747614657564357444335177513775111273562641316443715625577277621741417514664521732523474324415421553534232675111262633274635571655331644244144174466726412352557372577235633252521522474641117147321443227555741122362146357254216453775154651664232447366224666625235133631711445772132654442245667513165277433133236525163477276256665414547253617462261541461317375137615622373342572646125347216122173574145473653151772537451273424774511342631245435521657717362752532666162126653435424524553752134214213425422755437712557165361122444116547756422513672777447641125636524621413755244535511576627474356751132336164631323564555616345353465521537234265654232714752477146712275112541337153465252532446441661562747172721376714351636613671151256367671622522361345226525524751521477662744313441263146732421572542541756316654113327323566656142327324155755355727762431236732364336145753472314313457562466625357374761243463114452431611573321451157273453765433617167146512647765116443753426716716634616774772473341755327231223117477411771151426524256272424735715155246364536411236156321725536334252721564445551467322525467333742263332675554523465547317332647155412612557132411265226162356365246331515432672731454363627557464327371253344541625354646635764426347554221715777445333135625376333212745235635711644156742471344666263776571313417134122473537326145444225546126141664233516431345111653437343267457173553337364266365637765315463463741373343752627313421354732472777246664173364436717146551731221344225644174641432456234436562626441125535321354531464137177371344457333764123575753566417557774452475714327766565233114171161535776576241337126733244753773256745736563616631623251657346663571365253545441523251246274264544772421164637713437466416135423212575574167371633711552466247452121512322241325715163322146233446516732365427212737374522334717752666115666671165235516133443543731632332321542364154151436113416563126261444574311115261271542531133662136626247252112342316652775365511462327356567113256235325254735115446414474374722735417126632542225265734374176373743156643111343252155514315334747457354766722431646436161534222357314723535161156132132124635274136527112521746662765217713523236722724215373371477321212563217122424745465135175146251441162215346643524326146553417654653114537423764327333272453447136446131164574337462773232515521375217427117443573612336477343512343475325473743334666547666136364634466336742266555531711523563146524351145373352144236312757374245774122562111214732663761727444344147325546571375454153265121654452323767757716564163571223412151212622616521476124475521162476426777262134213115655541556616567571626123453165753427564466336475456472647346133416364132176147526555651616513154723547167765637415213414455664377643751756633614436776444234763661267375362742516427263715415164314353722317661422351751623331153422713244223375543631113456665336431765417746524226231516565217154362733747733345371452337761177436133436543176646714246354565541453727664275161763517334113661135336436246766274446412734432546212244173162612455326623266542464617421747227475327272521475644236411415541571332362545715412245776757624714747276563255735252153667653444752761747366163577116315413147544654751717715276321143623227375173671611673523464562164321447261547631722375643432631374342477443537742172576142446615253333411164161371552576743624551124355554262312471651554137474717354222531164433431675271352143771322616115451733213634161366666732332243677112523726534774674676733156457461644156123523213572566114743111175423436611322512162173576171222775431231465645766366547567772112655612141635444464252237221441637431745737674254761125141214412364452165746573172324221242773132676714422271522153576712323637711671453513764313662464717412413474541132441263541111522462734215551774337455633145236416612433111111644612516124537572562625327442536237512423216165245536262236472224376447751671526271231553433765515362451557733553716754437725576344572567663241431246773615365322612271367574651674675367126651142372421412167261767416421215313543115255574412512553434465337714336155724366647126452131654755311325717557444466323547736333165237132216154522455142734577216743746156175651136733127627631644232157161555667654366257154247752167266243742131467375412746745354374121525641676656521726622557211513756552743647612624527164124276515354442145121322163713526246136664342457361333533244517435361346714351226453137463255112657615616235467436732671115637725615517333272235731221332236231632573546167323136241414647553636727475475346741576731424412765671657417143732122716162633131632727761176573616211137323527712275273413354654576512543125136257777447675364743735123424221165766743723463171563374547372411211174467156366354725513442713725245525623563331732672157357764577363145515141153444743717725375434742513237236612417771672532465762134476513414754764765337667377424773655226625323132575655676541247536357252775421577254155632656132661727311143123152656353551355654256117225547764243212466535232741562474342351175527666431375561537711556774724566544321541327414516653464165543327163341473453135724372777455127226564535263677412732241337741164752544263643575112236361375414121265614371752554717656676556267477271641747336736714515573422562623616114756543543335116551637213473414111176364127742516713123374536257467426132145216121422142626443473456451564416331373576761535267444311471232264414674613657517464116365311547272772562251131171522441273367316416755173326535616154274432453434422142413455337254664347425162424641121457373232727455427336462157352337467724116264146762731246214357416577112741445254551576416253223774176312467125564654426234556165476347676621511275646473242752633477551442533643447426733241434713652736372657333464367714167667356451412611553712542533152231156135176357434745312555172426635541357215252766431717421773656333472412341531574574647646345217556621364447417277664562415345314377435172254265145533716542474134777721237555474157551434675227637721145132761317365437221732635736244646255377346711734236432145153451475335271212416722665111717364434167727247511374563313515544211736721745715156546116451235565557553751552467355155223246634523517216363543562217132357244726211331167443123254267535663354276222331414627446165147726263713536763723525652461175272137521174773215651345524635565677742263564224673641532225774674671211577223773271253575314764454675756777261521756227767567225625513323342333521543441627542235176447765232674761336527565137641514514437531236462334424227225366757414377533472736477232244713677752411364624137661614132542243131312551234651637131435723336652713467624472475517654566213717321757751412651422527317221431552551555526714156442562414466635212471343154673547117261637623444714141446247633535563666741326717433661624577263141337324567567433723225766624321365427276154237633244744737362521363324331764157574211674743135376647373513321317722223622336265753122473645675711333625161771516112242645545256471774612712764765123377243771642652444645253543464625742343421627173551215773242734531175537623543122252143477514277476163246513136253551111272622663572215177373137536557771163342633245764725342415273462411156451676465767623265725374546754622622762461454674577226773661353645143372541247631563353541776374171542627144726114443637131161473646142156562572337622735155226414431646435675132735322246761733465463435226133346111335245457617566132663466114714247764532512571515663341261554261271654726376456136354512767417647625436371255251127471777742135731575525542467473553653657752555734427174334365653237426514672466147147573343737254335171571141754161152376772631353264353451456254373522533725752472136573652461227413756261167236452233621261273354742677177734772235627157167334742332343345635162663767671645451614241476163613771411561766434425231472211412722153343332316662476656767241343662115552612671752646556564631136351227321772116373357137625741716721164154275225553676652545636541647355715537314663672745642627714142633415456155536743636227121424721353231746722526722634545621323462614611614757751145623415557137227721772416475521374536315337452353443623554445664347362134112236514176455731611244214512122436427147276611772227647417632716751714725577716231126151154456444444245136127154266175112651524372626531543541266776527715161527722565751246255255146251651742744234721255713532336343441555742475277416226662735663141335234473234375137717124774327452376647362723645645666277522571142636776272456353133162155445662165766775254112526146255732622231136627556377653466425231522745157743122651136316351115261565373277711176323344272323142312741362363574535163513755371623127267425766452151533747417672314233274774732257223431511411632455775414111427341724776756152227117662412444471564364161176232344333474642411577137455656673127663233627757247253131725716241421643346255372437752155667423655643377325265327425633322273562365636657477332214167522753431651554442572426557266231446711117354621261444322351275452354474423125234471744272332177436175547152516245442772236355222721624723213137565164411346271314475271421125114724356522332563134753116231642434113655121467714411123635732376626214125275376637752247152473265116531267111674762226123463712634477535646645445666512741352535274167764652525274246454411656316136124622764525441377641137671774527271571262637167153277266356741777741277553463371611537565473462477526573233572664651637517156327212752475154244641734716723764716213464163626213417271714322113635215623316137417331433755366563213715437253233355532126656635367661525453675334117222217264122111164742343265617632163273615227436734267627471454662273674415441456774656626675454514265746513747541347323123761352171664454152235272325547736164364444222637244773225611613523262637352555562262514374475157477572521716576714276636475213342231575716565467111173643474721353544354223162113213417166662611376623346555167312764672657742261745412276115145434734312425754262623744144551425132573746544262563277573262345151347635421141327737617335561377423416367564636632514556425666521271127716572355647315361146622742245265234463267332167274256463611536242712341414533663472251651125742343411642434723252312416621336652124312445246465716166752214761314735212737715517436444656444565271712215125675632515272736516245437751472262156337757364235761535624713222447413512541175774251744444177355325766234253743462666233753771532421435162367746225752456756243315541351421414347144412321335576342571553725441566131473527376124473562163742111134163546575321151437646233353455274552422263271444322246573731662436513121451515137364154451646713174316454525343261726564653564264615653235762222423462256446264656443777515747121561677653462261736326211115127316417316656274476232263374127141122252157677337253563213534752764312526777733761437742335122231762165155162571544541775571135234543272117256233717211172316122616236336465221622744153373116367323346275736731224633262613553515142763577413535221537727476151565165444326661323466471541456435144671442232474654624672136672426117245561742436111517613612264774712462666142763735737337645444746336625623731435142765161626534467362155467524431647357551424164713237765751415462426375536256541264263161232711263734571535422532251677715275314727316471344526745224335746671364235214441724727443275763763713437251525721313467116716374716242361352254216565476471241732657177135453275744515554672174472422425273413227762456246357716267323252633244254422256215116745611335621146665426655565477374175222174121727461457146777136647561762315426475643561572515513461451722565525213671162234175333312524162635367657165317611444776357176452111277115646627763573332331277421531553346232131471734261372253336423657673716755252777137356573554152132533441376466571427411665373627172437576434275457327417347543442726665632253122753135153246424635524371635136235641556762735527472233226641665662631646243624564771423226416174367455463655343753215427452373731176635223656153474257325545751161755566254773444271122667475513612371317126464273326675655426726265335331216537262143641414215245762625747623743157444424155771571672566651246554531264612472651642137114342111673713313653131327442354111433422714354753265411365532354317561152421226545325555247674236214423676711656422377134124541572234523424523466535531344137277424116352135513356243477713134777571546763444113737361352765476456444432177627122162321517361227273647267151254572634715153167717373213217446116462164761411322262612234317232167317717151222542642276726151261221222247273541635264167714233266417725155331435254654555472727571664411155312146634323263356227427757275737144147672111556511443342362775172426576727175745222647216327236412262173174617553137167113726776126225636331415612727132425235246773567422563364556653115642455555735677166414263252563467536374176557675646376714163531514454154741741525554346756332523257576374467552426244154621263412511431177165336344763464474155325561571517343371116454725532265744124377244564675543255621241644366716132412172656173774112276635546452715225473223613434554547225262563215166477762425722466412241417741546327326652464743674131162276254226151747315672173515636156174526534741762643163555257254175566443136146424143511245254774653627134151724347617734463173551133156663656212313376756365533657274763441272422752767617454752761567135145421736345345273512727266273711552746613437251642143763712323412777567133751245342752254415156447425531746262727124352633541314257132237166362314641134511553311224531657616147423647422677231363757235226132115512553733757116523537353156477351435132547461432615743262143777234752336274431623527757365564611326541417254247521537655334125151735276324741623115164637342247254775626213275615325771746264321717462212542322354755252712533634663124211533151477326636772365654367727163471551612576476745432262263162442537622272152746512121346546113275371521635231711235351245156571437472475312424657375332341317343212562223466153113755271223261612252414752667117316236462721111327567165455365426243213514616157727746574333165712343524416214117213263526235137464656416321642563272463317122151556417432516775316554216127335512453426677571332117631443416366535117767147213424417664145774747667577615646211763642466355663742143225611643131436614532331635241463165352756722624366533626443672337164353256447117163355321613756754522147125146744412134326623422314412524337244776223555447123443724366633657557362647325447774216735732331375434612645511412242146751214244177571155637112225433227551266617666775571572713547111165375175165755544623715462373522343164772577455136547317657231466675415575633357234255142266224224166545441175722431255564327742451246712114615262271761422431766132124425726534765264237572572414716362264731537356162152332574276145353746242217117335672142571515242457313634636762441565155126533112143525212711256346243665552363666152773274322157114462257425675573172413146455375735363225715574175446163632571375223644446125526373273576656116537125551462245274624175173614477512377345673422115525435726576467616753434715227111544456435313375163547141773674162436461111541261545671672171611763622134277437525274464524775163464677321464547277746531141551136516551621375326322265313467612654433635755517453662533112263541325517425217345545132452772246411273335765223611314452752177157167524334145536777536623144151271143677224117677743756263767716234524557261371367655513173113737512377216346576665345556167563545164125162642522266143151141424123436245533125254771416523564217653627364675532233363245524344244525554154736142512135517235751323112527213131311515475511216552153346356673744126555437572547745411246237533145134567556723621452615532674222725475452455151127411374464215311162647275113126156377746361223331625555455661416445533471533777253637566454536313266547513222241544612461234164474347331754177354636114337636475144171365617645441251615671542466165125677773436654755545612161677473312273546535333717512711111161322741236272746441421533744754216412625555751616761244641345776536112557466651556673357424324266117466524313371361537672324744664743615457627246232412655352747435115663665672536167355712215352764653241731315124252663114742252536274466521232641736437135253547467125761223517523557464222576545457361473744135573552174364251716155115313116667244565213641153757561333645534442137662356453652641165461143611133723367125574177217646763454561263421443334733165742652236775715461545161675173772176411212114652635435634354144263124355456743346223725462167475127444213111455371663532641622524471212533672531627164367462634475435611262455437556175253557211644544764121675742563411155716174457255671177663142473472312232677625516535414121362633164417577662443317762364523615234766647635773435543612254446371767544627437614467757175652411517514367334336776664575362544725675434567222221777567227574175676453121744365456445557527131727654277364732661545312375412413572231261563153237772321162243513737155245663317216442651114456162777625323753775542721721576475675667323627327215376313462443123622755256312322763635364427132334422151111354653155774456453615461776727265642167657335364564422533325434121437427352271661422666337174415662724662123311442742576616267145247636147362447733373155613617544547444574637533254562263654621374342111575551166446774262755124667762141526746773514222527232721127234426323222574235571524736231254515551713463716665642454366414176755256425117766653737457422241746655536337447336631777141365462351233277343276162272176345274342576726152471317541152115626363644445343414655732747261144774461735663344721534722157254745373317777223726211623221156542373746655611274216217623647424755551355146367112642724227372711655714641517417713126641771212477373666656631723435421511633272223422326322424777441612115326632213345311644253327372673345322443117641745474625756136473335462163751255114415273227766411157356664773424256715321437267476445433234415234745611143762143717443166637653261151155454571162147465252331766765174633422537155723647174172771672275546623731444131141561761242372156141455621223242417525653215423337515267323157212174662323754421361217242547451671471532141672642772117464342422471554767151446555766726542725154243643747275152761672447651457223671174235633243222567664743755235355761655261523712172575273637464273451171253465766156665367337156425635653321131635435374337346217774462125247434211647463337152243622125642615337423463127234551142254141331163736475127143417625143566612131545324125133575667315564456652126567272216477357277766534422545413434746615733774772655511674344727335227123323733337772172547241374726127463665121227531724647111523426554145756217154366663673755336215732437242351716565165553376221624267314543544434343727442364466714746412177543277472536665435246753535744722341321474474331155154327734546673135215755417516414756163536436731662457121263144452351524471215363631743753367734352344175335174567554263522435153326147662312157246655227573312643657737277414537426252321653757444531451322275346163336424732676443512654164611521254236632112156431525235625611146452344565764137123536422222235374441736545341342636461714147767443557523366413776756141566565532216272631472112177624772551436566576751132352553555344533665554435423627165433721546222422376751524227326172475563475756117725271722756567137615275764666677531633231126133125644532133732725721353464477613517154417614176711746226756651221247717771312312477231247134167373363474444676236163376313731762422152435214121747271233636744216424676321123221357564761565216252541413635257224364653741462417665746433167171546235432611162251654521736157323246113213323437634227413337352616512243675147134555637163722314374412171516612271155174566737357132331511473733242761331233272325441522773316633221255471727141716751262522434747175735747143335255463656711616535222735733467224654131743225771634727534262174561215222634425511214276515126574716547733566346461111151674563356142236526342421542741231516245151564356224466652157162353261675645414226766564161117445765165743524357157725534656613412237125417134151264637424325667113115655662317536133275731626631242637527742734737357254245232256452525432725421457465212625253217553235531273251337742145772214253671344464722145252466365626355744712352143361715345113765733421231365673231243777427217173454476656536742276416567571522751541535377375525465333314555764731113555524216756512244623521225337724466126135776234516751272636637466312324715731411317331623616545575621432225277422454456737625365267433756475556635473476461131661643232113657653313654524741137135547661257346577265551254261363151147265322272221116134663613337345264736257471513535314516131275635347255126311653474155771711673336465317347336577225115326476742721461325467347272713635476314577646712561615655157434214234514617671756141625543416146563245636616124131123671342255245562355257251555676366433661516374631355464552351221275554646475252421361657225446665444132612541673133137141626574441255456723124346753671153644427446324227423767154454562156522675427243216525534373762177143222174221542335277721216535443764275727215537267361313166732342163665626463371337562111125451667256751526167324412624126565645672561652671622463555351237624514674772361364523217746172173645335635264333124336432242461145711475314756367124667225465611371451174672532544143275655335565732153534777144661372776632471214623176477525173324433226567517372712652623444167543165745737177467556131515225171527324126725654752556627552263434375717723422216564467444673237577361464645165745514441147553632672731336156553423161274262545735332466373161333732762471565451224553323631775367566136124763215553115511717455545351373661272761373164156114751525645244375665136444761713477463357773532431154711416627151236555465743316323114255246244261236176673233175416135752667427453463254671211751664563163735714363721511521626126676174477272731232214376462473253764434464767114446765535674322737374153652663426215771472135247317716373562134656455636142665535547366756353651525421235414156744612611635234216747173633351346646241344266671416425711347575473421455173163133616527664634414647716425735331732774672456721524516361373747754354744213114277751627747434442166562213534345232323326453137345215546113636453515257226531465377144765251217577325446322567421434734762713762725573424713145111626315425125421271452144441263355177562464226347374672247475724445523663425342473273431471373757522222464331471712355526555253236551627253332544112653432367573541543662334527222327753212273561654132356737152223221563113462446252417424341574227315626265441267642574242421232164765514261426472641475547563112477262617661631125376142732342623731232321424526245764356524716213346561633374322231576552352164437216462732455762741736154474136171737232577266364556454224537557663626166115753521367773465454342724542454161534773664142777444737324563312465755355671211356643775464636164613341741162327314525453256766566122237255517442234613321231177773336354235312626326661115224325661516233164357273161372725546344416532741575626234355557325261743516123273176712531325361117173475417637336141415437265476326766637522556572542426436215151157733614273753251512466326224342335626347746464445514535451124351244211215744417362746513726564521232343167531451766556243111473526754362235414573351375577747332327747272654325763722512617542775172723327753452754345526573714424626357456625233656442222624465767716164746562161134365557226736721546354143252374723612623526422417435732361537243523175361333613547434573546672164464323366646333267657344323532272733372166122352356313145522743155475724526164232253476347545743622313776616221357537554521336617142531432245313376363756112773777154326544476737576173113312613627453346177712652513215435736421477734634544143323744421224266436341625472715447744516721451314237522373513341355145632176147673646175465723151654541761765655252154732524242241725723113672326755447633347573675461111472545342716773247227617467561621275732144133357422473451327323542446562276545576746314546571755412377717574444252222676556765446776667647475122355535522422176665664561631344711456231563773773552242435471262441363442653343622747113653172345475742241674257564415773272546417213547537346214665454616263244154532514532564253732532342665314157337724373722314467725314754563425527356551113561554415723471753526653541643231327757563742137573361746144361522521561115437471731226742372354626115236171241454467354525652456267122721156213752711452257436445367653167711426517566714767525363442761162223115164774463456124552661677223733543142512151673442531731753247614221472627717443737732127444346751131323324272665571113251624512534767413743342131242657752333625514565754427533751247334477662544212721363556744272125674674251572113343611526335441132631345436536273564636572437534626764637514354632326375637514117117563544212575747677363435255366356533155345152233171445273732651533152615422735245423233546733727444635467773431373727414217721774467247331614154456517341243454213346272363717456347465412157612137167316516555472447221547627142141172753631471646771744737743357356655252332527516523335222661526575333575751633515247163441423214157327236222513321427754137462266212244265455771744143665643752714141457224135242546145521236437143172735547263541354147263237253664177644573247476214242666613362613566356514644565123421472131421671445417773453375741771214446627673555444123463357351471756732632277755567725353311452661453757271165535441316647114474452141767167654531562467467241675772211321226772241427377323314224536657712511736161137273643265647426537622124724146266542761654527563564665471116124712227475751741316616555765512313535564363366521322211711671132474253612251124257417512712124373732312557653417352452644257626312453641637271246513116424326347525221415336353235435471133761742664124751527133676445552152156344657445536442733667455773112647445413265132435725763653375562535266416323676371261657316756132767742575775734152251271167614714171361171664212547756276266771311457667657362555453363112112143227277264324463141517112324541262371241762522147217231363647175227443552624221142764234631531463437714217622147346163446623763336346151152457424333617513212536462471417746617443735125347632463733174767661635321122757652221423634343332424256361667554767132536262525761315355535412221225472327562362323251134575726151622755124253526254267737443451643231633362745662312375453627113337414154341137462633567163773446477726553567645141321426627353235347214574472315457521424543276632664435115346213165347714235227316752564327131557373315737542613417767312336523454724527565755327537461635576155546237216614446421371564245262737552674574342314545523352777164252541137664125663455172272222541616131227641521765516125357534636442573651633743513316143327613667746525512115377731746262364552667531313635465371566426646234522475646122772542721764552314167237715731337515726215553725523455567463436411323143732424117365154214457322454651364427231166713524272244312611137471325544445111541754525616133763335112666367444552334135741257614534714542517376521234741115767542332617177221763216723723642516731223232255254616477772356636432765211536365146625615254747624213644627667364265747566272363715373776764722441336324154413713653154153456632766622347672213577326734262765365257413413534224246141471717647365226671263616333241427412415433366256376766623246311463533377726643572462343672422667352673675461152417665344421677734324514254471534622455126227213555336655234427722167672524446123756545472735136445335671465276565541222524231274637527556476354132353445271211714667754616543357676252772224414724611413366725676524134365627511113354523514375151674233134277311647321663432241431764317127762166721211443761225234664677676215711131276676711645224724714735636642162643454657362114416121614661717265544241311611253114174554754114672325356431656157617374173575275427265141237236116757551331151723743667122735631646645671716272417166717373267255241632732652134143753774313341755241355642756464671267721365473227455132441371671631734263732354313116363524574777713421724251772224252534115525526162163411612744552735447232114112322674165271757353137754374675227516127756154171415522142533365237351247754565746511125272421354273436344114617562573413664734445777645446237316465737327222577271375733557617646352424436626635154661147237125764326772564557366755262115237725462351547115265753512713635531576724112124732541121224517473454357167213676253365577161721457125725155456364533373372513752655561276644563256415746326734323771712716374722573311154146571161373475326121261633767564354574724463326127357454753723567337731417132644762736435747225361455535532725433725771416441376534321273416161454255436212333217652772433252426745621442175327325536162417542556341425624557522375273455523711646727512351232562313761533125211724164413446726157465441144565766316746313275724772646752332222162756671331122431616575747362411616676623745221512463176236366567457452657571553133343365225274152116473564652254421167572432737151132417164323774273164426632651764124234565166575124467343541657273716374214164676354412767755765276147677377661535367655563364723737627757747732662641327767371664666655752665154331463362332521327326715263717443473743316451574725536355555622362577137715176461244162756441761141264155775554617327414467656714122641531226517651533361367267773276443555345434516735174233223432415754521453746642551273415763143751423572215772167376641441665363436616137737255115173246435264527327234227254765574121165574347221344767714514274616114675323254317115276747467151672453325543314324254752711117217466621465137453177715227222344323124365117255475565477331666221534274624732511261137764253275452172473167231467464573131652326527767415332477457737453532774747755726552733177173251644733531447332111413633634262346152426662626247272674271737365172444333625431561752511713133552126551245722277416577677374662164743266761171133722622753341551364514513614731433534123467544662453134325731165457173431325775342746477214322771117353315124562166627751323633733751323134614732634632663265451157112525227613117664162511366465477652473565117265514655113152523571152527442357221626347745137521536622755213326412345333756132215776215626351213447374613526137547551344212433771142433125731614762127541714425522776311714765475616574775337123412333433133772464453143677721263417743466756226753477661773712463451736634666455116215374616254433435427226274775635366157765447724555611527221714653562552326437716616761112114511261346512345457247146247561232351325317533311325233157245352521652413367737253715334351277352457521261173132333265734144172337322532652264337767672226636261112466665113557646526141734652664244232632316264256163267545635452774356511537246165573656553317437256246213341267647236173345477535341373731157743167616343114767624163566575411111771736347156757356736715665767177273737635542621514426174774714136541525312463645211237637432134617153713363757571523617752167651677267626234114376671565274262252372465317732552541537447756314543712542645733326462546535566153453636213727341321564441121136373677627333251323572237452465325624616742361433773227265434267751554457716163563126244617547436623272364312552254771572657524475134263513171417737277555546177673322612222364266216255741542642265457772231757617536332427714333771772235224214261223365365617321427644566117636741277747641674745143521343426323354552445536133731272345711543112657734517433125146364256443665144146527572774511567276232547245662534614114577565524442715152541115416217651541213767152666143255725545635121153551477656564113515262267671625264443432311112374233543422625544111544615727256572256422624561212267641454472463612545146515627155153221661226626714427461364262176322321542325325177146275625135771144217453216115724644435132732755376454766717672266541455641256726753364154144474351537314423334222651277625364721113235771234555144265257616222432155745251536433152576566521163312175712176142357547537422521242462154475271447624767631223247516135675334411563263257462726711714465137611157466715165257262453134556536655724625433252317556152436313312773466341777231376125461423745155424342542664715637467632337745526344531616411314463356571575266214656651623754322641432623451262651655741335777365332523152121416414311345244172746222627142274155576744467111414435517523744451231725573414545121563545251526543655425166544445544721545711674152733542436773541242336326325144247515161767444462734557421235751143641746124663757436471535343456754162165543152236766243616154143651766654253375274111371236734232242226745274624246376522315137264477473114617334273155327223351722772273775732341767522434753255354515214727244453446711417625564244675376324173446241411414364672361132163473647673655736554143313436634364661552237742617435766332224644424671735742334366175731243741312663176673236566516422647233364563773763376366231172367213632411611327661626452652121141545676151213272254232527131235471171127137367616332473316533363414415322467441375545216162421762533275533571647415336335417576742372165546542523446363143134632262312155731323657526124427224434764113617142331372324177122566256677271115447571743453464653662462371522266247445614264641337475546712341165232712431736152712676616734253775277543536444756236126123541142561536222166564416322434612727365451364573462722754221712123152721256527775161477222213536754355364336345245225247572145154571446772735644576433314531446727773713215173453327741325462465354664275716455726124157636164613371122624663465367174171626477747252453243421247251771162623736754121555726144263362471564257165561756451475225443723213122727667156734115621376127447151364453563475217772743664531546674252631162622733137425271255756463667177271565711662573617534464163762723262752757346531473353172312613223431527554536717435135276576212445531526261172146741572451462537423414324444761564753237267453415757312156445424212544654631271176747266222775337613372676737247754173625226151743414774771624632343536451267464745456146331614231724553511552257134651673774421612261551746273177574674373634615255333437266677561351617273675532355622651542631757741762351245373266354441724232137236375512351767635311474127423456317177335424416347517231214552424444576352733652622657167435711455735772364663755333232315117255641357676466673437754215716633531666766726677152167571312116562641657552532441657646767317367545622617152426574572471442561436132432331614574245424571747123746371645737376133565244342253561527625411347244523347664224514556757511545662243577576212772351146127374764312661641673762226344266316615446534612762277313356165717611464346147247466431176176711663633477374431417363562573473652355524556212452322611271531137355247725546775341441562646151127744747425436263327526613432635642336412255174527471462234421174441212436247612763732365721141576637273237231421626144646653143746756272124366641466764642256553442462614362247476214512131615351421612257565544475246361353272344535162142516375113732177417744421127434625665366661712652756521543517211166526375516625123165251542453672663525477361212412237323662163451132672522642114441312762311546543122315672274541711116451534421623263654274661652174131124557652262657277665163374177322167755113362412472311757351414612611422171431712233227356537111412665175152342654216345331342414612413237464562213241773721361763143466336175236553653266325513726465337231753742337755521462764523467473512216442541333571661453122761343573447714157526715753356555613362547542357243334141477464266515772156215231565272453322741612421527557324573423561123426421752245223254745476165217552533522156571236623372372133111354737344223236221462711214525664361225736473314454664114567345775737424473723572157451236374264676652421634373522671724665474774762325321152424674676475144554253576331346511262562433237776533173137264156266455737343444217626223352767616654356413157512513527154353344322666531247121211654771447775527717773117712152257741114123675677576177711236564661663414665554634544545761731336515746544331635271665564761723664372356673165626726574372474764424652651261754756537376537236672367554774712416463422476321322451536326636111156512642675641216371124116131235216414764562612432654355377414235216575353444726374742562633467177761416753464314717167464723744134215124562224625144112625321726441162532163566364775257122215152162346465143112512337342653472712235116622232413646613171431641755676551765246422414623177273372771746736563345616211621537776316313316265512473224475461471521452623631422753214555423572543721213566542731252647473643731433554124172214223526567244456622271722322632366657636544222224455446711265535313266154566717454332223343115757277124673514562324447114315214133755546117566737514514256167414122765577667452643224743753624446645534512461745376174471674342136612363642735575676245445271424216555741135726517434267711253714661354571413264147466567615217715733524755274717667647542474464371543341771563572557444714354773161515624174453742625415144454174144637447125511713555463141547265762736752643734312251565652772477674611765371742167337736326576576356367226222542665571442312162117757762524171367141225545755257355254446157215232343137635564413341775613524446674317214172553777171651244771761513544253331742761756213573613754322137374571677175636217677274647744113553653774567421422531224231651227626326775751122376522346433456551572372211234563435763526175762132463774737415761661243154752156435136542414273472526244632241223637673753414744237153556714236622513717457755412517176676433416657161226235716267261762744475254173116143655563512621125474213623145761246636221412625365115561774573721724557527122641463231342732345336124766717365434651714311445112123523534564427225237752217631734416762357623745567675126122335676476634727423173264777621245125175661474436157516217311536232731531617364262253114135371215412475577635355512122534475427257331227174542212524111541322231264425426712233426227314346662122564426437653326331372725624136424777733731363216456561354761744353347643113344371257415115271546214272674147577715756557371565517137421745724126523512551731572526562675477213776446534726277362241437217237537374256662673541675731162725177731556445625173372775175316125127275143624445664165716447352165115722215741541367261736764263174566626414572627647142641371771561453425114376363277575644745124362625345176735465345222636352777373137747653422365177353331441461715713171453611327466111144374416316517655236367445346463314664524576474316146373236176427727472352232563517546152673535546526744261451722776714374556243235223642716112213773433272137452274461562574724335611222535474624454553723435161743766241711373142517133566215473772526527167474766761337261741231513475315454163652116746152216451611553222737336636535442772731732221533635562354337274315671714335322615474651224234764465566323155346716374536241757336215147464211222262634463651624546353331642163422575454732124561327652746155527711645331542321343431525444336236323257224565632275341174641564435743155545421541414535312351633531156722454647672464225563655242346231415162262322654323612545161715156766274536735466756144643144743551562346241627536543137443141436576723647133116773376264677143713526114227631421752711371374676362273635621164273464413653243273423715611726436614356735461772365567451552426326164757415616244634611766332173621427351251266742342531475675376531476435743531774251321211641624154136543717217745211222426517226624577117742737657111353134346332612524537144741743167513337253435726313316612117435415152161534237257427412733676341255464431263173745117212563537655434277235735342153115465741727573222256752576214634364157253223455762676157762444213521646152537236536534543171431713176125271135717653346747123314534637556572312371546542644375662454323213433774151745232652547725547777344633352556371576764155743732776573221316337316315134527214514453776137153725767662354474746425715531647252751741176547354315117513761725122317337315242572475365754746561123165216634713464133637345235341566417313675355757233361213147137767721421366764121561623226333232234316344253666144135557373716122543517345644542264131167472314572243217773457775371411467622371516737647214214745215254345675647644647652413116521455123772677674257436517711762121743344634523352216266176116422615353735511136361116126141623715532235676123642663676672774375251364265176574763363254554224633173522232212673341667336767464764247372623214547636672561546236753623224546213217116466652676515171423277232553464343321521561471453713126463743511732714163323372712424364767232334545244677337441612232527642176462327177124177157462545542142627761672614214231311666443541633732222412144657727116144427524121443514131517512622527271143666723275717772142245511437655344237561353462577713465447535371115173147376656567137573667327531242656726775653676667345317373521716617571256546544462223253525536317467614572345114326645226112753722674464712533255251674614111574665343735217546263454734555625424161465117174123561175653556227726275776626331611732411275717723652543546372563665146155667653251426762633211471225222117216534777517173414655616432744764757441532443713572373346433742546613176333544114353771554141335337646562245567324724712427553217273153376265127623323465443674724232453471314475631277644243735351736266421761644755751475761546633551524633127436223354153341233412663356751634565215634361325665165423312415154775452221343742641423765335244644423734772467544616324157774352123521331466454256711516515354477141264354222737641623664512162267217744457664641742232674122332263277736735412676232432235371531157244157627171715367574344437455573217113112314144124551214262632244264564736544155642764512616123453123536573121715213654255157524746221212425616336735542251134537462522153535377372147354477754614275413167637577114132672777462713664274257341361775365665635747425754463537555755475265141656522427277442427324265724542621513645765642715747467362755351323721426374515412361431536463635131212233524355625167143712474111331655237575551256372574133555611665412372151175126315711366757256111351576527431362264222241255767236316172754224432144367516216222144164362113455764433573535566614413143345724523377566152527522263577246647223653533537622775124475532326452146522766761367173544327552431545527737727755165452215263437424276371464372212666217626361242672642621347552151712774523751157335516654742241441641214612636771663547265512645732254556152641141425543314472374523317214312516561445767447511363633644414766734172661646737156441645426114711521717115717615663641622434125117272313113275663361442714417237251321632242142311445735417532641674166214517651725522353335613173573434115214316167426752634244525762472424755664646654731465131646726361766556253237644174517765657516715753772324421227612677466456351256657712453575566655714661636645523434662352141646331136212177751234724252555542514511521642641774676235472167437221264462656165546461141357223234353723127136674644767125156572131542155161752546134756564544757733337246353421435143132576314277544661417162225743365636466117163552524543675571226673652463562147322177376165371372671136576123766367241741671722221245215127436455471616776172324431142754736614564645635554615451466675362352737425372767461326466355214443645621551657725147716654465233427321476574575223324112551414657672152722362224556376565625324425522613254477165624673475341773444636353724633316116466312411767452371712365737657537577641157714355545774511576642611616133745512367267641737624116371113521472637665743145137557576521272343436445132337244132111174214442626652374641766472524743464221412211357145244214477773442174246556524631565215754665442551365143726422462223712522455632752666251123372524126317545331635715634735376641254725773545622434311625445422441754554127773155677763446112447444121444535154735725261213447424137313767574161674323443717651474324613772312561134377671676136561163552124365567231131327323112237674277636415422644776142453616565327373254136214575522657231227162733351753764355126325251264473576243352541316722654561627257641466723277331333421771163212367546337667622745427411536167426463336325311615546627673622563443776632573665331223314766156623233226416764431653314713621674127543413322154253574275667757562546721453661476666416165273142437331477655126725656676415633277143373272115711515376231134445551772432534446416357273276753421632764351724666624544175763446431631466651431213777316216543326572657534761722222263174167422412567654454455616136466764747277477454134471173276154654447477441516332672621332151556314253321362335515616133457435356675347417642414214137464531266267624665652234554161237713133653646435122245613433456546763452145612324541432615253127136415512463615473437737456162164745425715267746272374343163263766432322252145675136654273422621674247454562352255253674256352543361226615153372127516243112455174237222736367572554571221366116632653755714665243624636166617663251467357157574265661476471467774253111116176436214365335374315723444556357322143573225166417323566345114235343733266765746662357315135547375671336134632621766127633311442232264277663747255761145465543766215634724337254154267737614173725611373736763561121114264615327772733326334613135155565366211271525761514275571235174622633163235623724335226241651354641157573356657414226143232361746163142577476537363267613153157676313573642436654164266464113772534213467652541341177755456666143473133131475533743641416315313562226621172556142436571541373753274777277455363545426674643342563372312351121464347336624347435166327545666726363216261536571417243327216212747471211474264324357523633645751111343372122453722113377665563575731362764143534745466464243444237477667463647343123663417763576547536666363321732437672777446435321311147371575637736246174147573623231171341133737753663471467763475425651655352357755326464474734517374572331556454316345725417261122571733712766421345757621557752333536141236211236143737224232556721635762624657575271123646714527714612265662651471613277161553554255375755352432523143153331527336175614342624775412737454645672512373737221631473115154547437611741245377464633154753436472462667715644623377615413757621177466467254735275367131626517727777635654341177645557643534527626512477725144132616713366741744714165257774417572573133637124535334763762533424775311515521263137446755321773563214454145165511454351723222677232661374224665733561672334525647735756571276613263454717561245251766646777677216554165744262127117113713673634512221135464765117721422712214664226323261567417472545757277677321454663653613742337125745135177344624222522727254266164671421354147563744347465114713413546513311471675332367172574154531321763724123555615624175413156322527733435713573475174756274226367374646347637277717475335747767127414252344265275256211715614527561327443213633567371572374756735277143554156335356545174473317127123562111133772746455335656661612362613626226414361233712612713332632224237111547662274556166423675137653565641631267745554316777513511767664751717775642314275266447656636333333424271543254712655633515451714466126263511112467164556324426774627646227331661517366211653564456342165231316477437467466145573327637352473344411347425432272444527554724451732266241174425572255324615464457716733142673464511434735673453343237553734462753125412211547775527476671337646157731252446456121261751215271717124241425354176324323453264366471736261117537373734371621461331544462574541511724545741127343431777347125216311176663675723475474442545365216325214515411747511364647377731663515276146135217245733654766266547477274216637565457765455263157116737341334413261356724454161762774642115456115234246623233343442147352126741453161652276533717315332445441616126114435317717751475662446426441362735466461565526426652433417445737417445634316451237413153136623774752534276233357221636251232523337412332255414535622446662254476567114221773356241424374631311357457772113431255321162444574642671671221555714645654732373166457446451647341626514317656165123776745131174356137671556566472612576322441166113772262147711171372234577616627221646754144165224441117111673724112716314123655312324424425627432532563276563334475231513315342435724333223545126641731461236313174541262436351254357516632563714462411555523531267237224574715554724113755332461325441711522216512313622445725166542544737147137462664742635333311574366214237366666372564237651747567512245274263133272736624137276257475234664266527133726341461276357714572211274216621454632743712113452614724456331416773277617112341531343712645775176335337431566553676377474375714741673536626574173724774424136623112566462342641344144415232144545125754122315553157531465611455251157471533477726672151632776635634613777247351242346543644627414765466322346554122166462145115515354116342321723332277414235177525236173435541264315456261772764511421764441557222666626127215766147237675764125215276217242732665711771417721643572324457753242633733115217375544777354342765352656277117737525234163737136664143772613717172514333627632532247547721333332513257642536171334271314431164345763757343153276737267743253526416715731347677513542547754246217371774232223214557724633466226247351174326636424426113551313237365375636433364736747225356711731567354226665361266317755746743112147673561321447277314172116311435515774127275235366776276741114665554277227142562561312325426125673433446452732211442514366267761423751536732143271463711646755116375457253477131266471664563363224152116557562627471656434663126623744612661743113177734433755537224715273477172322415251565347372764413753164226467376354122241547221516735567436467236651174242253344241726652621645542653366615241765767556757245622116354336154342142136145251742154721545463737345451475112116425721276645237363122251173373256151271774631666371437636267625434653654346425255431534553544421775463127662527274347726313755755525737126277321765761512276115666462575426557556254345576476265134474246715773622456136715724446227735636446642276773514377735666762556533426545536116646743441441626511743727573323221115352437413453467763733275637142677252134561131146543164767763164172425764276334277525214173611231462272513545166147671312672625175315667233152157156271367762511352142176313632547461431521762237544754525272465524671752162425463167641572631424113112432763432741726265452423745457733323766262465315754236633411425746346166436367155517474735216674631541424242151731777474214774567554516333442536636776427237617664454227654241744634517523524414151414563126322715476441114465763253623145667272141725227556355713266613373322535626331327264156415375736271343225162224253751523452255176234657475727334633714243461371334623562464427223523346726167312614263422775737212656641466311611347713323127752156134174245236353464626321237454276717334156715464256172326365714714641356361237664574726655366757545512442454343123535433261156124576143227155451643476714132135525321553761427523164764471713675331425125367252671217161152433275357252672137226447355454731251115144435541562527454333635763165611245732117453331164467256674355412274325364627746374433212741671732664423115211742514156442434546724557777612726271626553136472415154163155367211372261573544715534134432277217341677767344745527323677726741116175775721434226242641643642752562472165322653611764251536743232472627453541241237745132726251422515652147254411316222416443516177654272231663723645226763344145143654716275477765677466123641345724334253714124673753566242317172436153555161557146525432574474741656134744121146721655244625223417334121444652453442257741574135167513757345514161417424613326746726415451343741723765345676614625567325451756757447115775666241126752621727534662772463341176322316612673566365454723451672423544525725414342721523257337472657343146617344645637254211251447414621523566144737655475433661632225477655763566455325271667653115656654543112157523333412376616414472755467666547172544674566437167265123173761717354644422365375333245656156157214611253422353715433212237745157657776351616117763275422435344231322267247261257677554626544377533641676626745145212515563223265453643635443166671163731263671437115472247656447665162227577742155725242227173773611123712617335126633166166476166162573175137643435145154635433452722341744121375221625412164443635162366771232664765647747523776614144745172467766652766731231123637425146276374273572465521733436361315135665416766145621713356235355171577431347255756751426341116715776163316445153762133761211113724522254211636334441147261471662455773415511435211425335564664243632214764731661723667457137653146567166573651764344271225172526466476255654652416146267771352212151617465262443351277277344555663154133642217645754615551236735353756363574562267741626153746613273141521371426434527525733714335651624144227153645617522714347135217625441466752553625216653565326423366336245322714536514173536571141174717463754547321737414275311312113261477245166172233763634176277526765773513332666274657356117171167777342515175634423442252172211211344526237722563727156376637662625567423335674377325356252337422312354776677227363212736262335676743433424455523135332357424373177444115464337752575734715336755722344212756753333136626363371173447152466264527142725664233233576515645575351254556356611335624666562241165124663631622754556345214542552464254556731147625561373147235424153427432557531326557155111644441624766343227442437435255433711713472345671735271143661524125125576624523516327443141224645551437412774346371255553576362141213256445112633747615315134352463727565465562166161623535374432645723553342642561762236155422125521176443637127115437456122323216316252544666511343411334557277742651746534374332773226715625622177214766427162372635526317172213234643475314653147521462463614247624274746325732625163333635261354774467423135221126353635463511321666631145766771637232712354526575561674474314477413723262634414154354634455735717471127414154573122625263767551531634774373152565141777416464437633223662271551365565425363737712234634244223251121563332736731254756464727245446536273465461416113153554571256241257431267331242657135676623647666142152715142427343223726474473226523625431664637343655515256517372755531711315332626411327277346535427512642574767747162722156131663744141411211224124436633457636323731173125246652224722456452475772172325731617742554633671237631251473116211226473775455412474523653255175336177316245715257731215544445167117742766466425327352145573323424431627417442174233357236672234561753713157367174442375364417276274575114132153511741411263272733472223737244626124374423133237411742345272764777346212415142713721355774314174741752114731234535653354115516313571123425642225773441162653414755157432326441252427537724264663511454776754272454547432772561142227631637241425762725336476523645741123751713621133656527472177563716414526271314612564534145735425465156666127512167534357143526366274173115165363357615722365234743353664373243661762465724537234561267731356756244324735412525115233337566453361133446227473175537262341116556652226132271412174234472613657555677673224266416233672163452527426427132461342256556765242535561442446726762311166756622266755112457342157421541456231561465376545472771733127154111266335764741417711115326244754174741456244325327321154717427226623677624357271144363665637653645245231775625143561257643732226734667666361275463572476172224131416466425634314754235744277672752631563247111415243146675576774367547115116157715212172753553312356276176725126651177465653315444374114117722671627767564216743573124624636127222311376727624174425171674517531173123736611331772623774565442641364556351424533716426115661745265654521664257662624524222327346745327517244252335771513764712716547411346153426115277575277477445327563412143655465454375344472143733273576164634471241715345553145475755775457731255245712556175544443242671713737655456634654341175323523514217264143636324757767633214576321251755357373777717173424214136145142777727337323342615435147765412772115131274431722455372371142352563376525252354633352623731256445764656575634316745346542651425225712552456726714532575764137662353632116677517354424323736624162455675566656714366731224726426573363741626637367153375776753622252567763755113722452251256441766245144443243556714123351214313331254731355743635441615135577234243646714517213641641443223346163451261653663257453421143417326654612176565124152534641273244721522642622423142325711132365651143221512655262435126233471267313636727214144476321154324444574171662623436177722246712365136646726227663574566714575143646544445371456136475466767563752145413342327323263723722672311414356614755716335647332533763745572454161673625413445621131534214462762261444316553445661634256724234462536267144411361344772664321756123142766521647675315573135333255663161154131132563232666412747627326523246343433766345326623625551444767725477615433375251533421465164775634514361517436423154114613322115576325317462433631352644377412261234675544176562721116646627137262551436757736121343147741145764342476373277213357653666163663317567311751663237216614522212643622764251341773615575267532627371417225353452644435355322523455625751517745332614542475547125511476556553277471265435312235726767744533144223253626541153565374462754362675322524577575264735465662421672445631211162717513241647212473547334454553763735351556677136423556123573162574243411262274257635446127346527343725754375712676442355211273327513327147541131675122554713336427662767754161167663352663315161167467454174222312631136351267216356223734345675171374132462422447252646213673414544257436667723141326237527272556275257736741355417334317437615546254277274431213246611554545422347771127454614322223272665421655765767146426162274624724667764453362365241156371172665255143622257417224442414413763421125511735167222665225557746321442313327227231331242117123766142463124157773246273415427136752111524333242667526157633647545156332754311677542457553247224143765165625175162241225652516212521541242142542176131716271732314452575111466516412424453446717555636437416367331614361636537514371235316155121313131225112752513636367315731271475611531635227514454475211331512374356353364246724464224351321557126153473131633471113651614763714633364667673333453742143541143636174554554111357753161345542226745524171671746144562537215431325717427511625622377653514346412223264246341134265253634272232664272637663765525254536267324672413515664263145663246265231617142433133643357155473312234336334561213411736753622164311134766546571142246134327646317423113171757175412235751745516657362562676125556711511775556344463644733756524526717126775632311766363777642235236157141535775263123323371533256255252345154573215537161343567576324451166646256643763717467351173652777653512516174575634572513117271366646127747517264753245555676635532544442424444151474152743546323476234415743367426144331734656136152423227465531445112114663615414756371451323471172422222474356654674752775344465637251522147644335133443177646342367532647644417215541162147773243216473466226241626735243244577721663231244271363276714247521632722256474213343673665222374367652116155461225414164526145475554774772652664445255646552433117411271566745412231625673147457531552637644475622625475122757132227314371131723116666361667674115147616613775316315144344323635452343333544416337153577241635372447174467127744661342365552272556566125246234513747177744174352337153576522264561571476225554611735315377527276355425236715415422254773755675423366121113654526653354551331214444355467745627424743437664175652277156153636777575157235546324553461375762672753477514471334611266327237317625266246617742433562524637572563312336327233577245436713163251423745567523163777534445154372553141721762311611664341146515162577572671743223233756173743652233213413627132575764513217575721343624216233572312762213354165333625356272463723121342767376243444363123362564176232422563577153673125445723443267543711361366745266735521254614551262411637525364356131151631327457717174147675244146364367613767651767374364117625453222174573452447411156677653321754273543272357421426417575131335664351761236277343314265172144624461661113633177322151662716572247237237623222265414512724574717734166161374623364155346736331345654563624425765562237224257215762452745376264133267311635667467634231671521325755617613571657553266355427662451232233514611655275133776764332365571153543641361273412471144363144361536222261212562123237166474723216722357362657161415423454167521434551636715723275646425735777142431423525221641336277113624637212365736662745172722733324627742377114613177621113326742444441771713573714175227541436774451551751221622233744712155166425573761113365411116417526424276765365315644526627562553415246746676326123615677657134475322217776522445735615672525256777322231114371714566347631556356321534755574515374332325373331273356753635327146572134674127347615514266621745525137511233261252722542445532324237272235653717223561725472634447362424313614525265271751234672632715546137523433153357473163366561345157231564113437471117447335552371223473223461537632767632521142164445651336321425624527111315525351141214747221623316316647322147465575213145336676432426451576535376727434361347324466324413467117722765515643714544416156525546531741633316517254636534417363257254346511561527222176651611325354612652632174136246245335357215516714371572376334167714443465246247777761312245664656322672415442432441572636414213144343475253526173153355336147454111662526772613122476322136175617666231231423735175726243162663642475611754257771474527747325573152734242567567547112215246637246533146235215272213444261263311173471434156676237464123133565574245477126717622663375727216776523273215217172461622423555454327646367177117357551623361745477374233143254212157351671675444574126424752473722656136227675454217143557621132326233156156534344342621773725357274513431314757574676667271127237621163315623674353251377512426421627342134523162317457522765746121166372744443574651623132527523641411676443624412675377662554732112214141343724214634614762566671221525663264515361763562157751762144743251643373411671215313312437223442646377541741751573135317333611174134111276374565711651775275417722432644515265676763253113644556131426771417177715344655142537443624613765715617534321746333371572264663474375252715111144314354513272553273737332753257677336116337614235431465552176267124125661751565437675364415424346642441657726453542472234615352356633717722661155415742332166435327527531117225776474636146172625516572774127626667242157777252633523734356331337255474473432626271474741515631657426767422723534675372362246343426325471512255645575654262736477333164254473177647444173277246362772416247567555512322552666425726167725764753525146335614566352272213712426671316342134574533753173474655645176733256727312677317561365242653657375217147441563552617524722417341772727164234613773655467722745256347366713465665363131243431255223251242421121656273426763727631156264547562551561133641242326453374747636224313316512737353131551166253174534165756352411713162217226437173673412347571772211541653426546737477534514615727213362645523526465541122613326447715372163435265732254345717644545366614241167674113656546423377147141566576675476673641514144152255335124715654445721772425143462126741542227764466477642566225446342417532631377257335524436272137472464641611135752644211237554434563357352554364541273316464126516143112357115573723254123536526334755213124715477726441724575531135657272713464467233336125671115773634225463132764421343132233124416221771324414167314526752365646651141162644253215557455725611516613723316134345234111723575546437133363366144757371513252647623636276546343732172252461766751343363237173417621135415534432476134451361742125241613566242572325154223417613337531117733273435253664246241664557651663214541375755471235414773661747467155114712453615447246436542512527431122476776534661623471752134271314444443437135121552666273522654237765332454356445523534726314746136672137565322174451163734331335124427416157461145355647372526237513645462537643567354315551315475762531723777465524355134364734533116121512552433162665225127474116127212557623432532453165246556462412771763435527666314127675544725215324557423423443154255742444266127564637112357766324127373632544423717117355455317623644346514266576511546474235326624241233542521513556527143675557374531116362532727772126415374335777221147234446536751613553275716727125157433377375466743263165157773671543214255724727357776475474765143573312714316444443414254752566756476561232175552214533227317314163153266415362614267473534465114511741512441622451322676345255521725116252454613745244111626511574375233471261566314634116661157427244513541721742345746645644715743423117212315453147143741533347622223244466343561575211255514475626244713537126166626744626265157764565142144753645651253212626627366212416125422217345756237233162113365266732252215113637752271572141557563611143744231246377541144133211413626313637143613551666312523773276136432437137427416346422114345157123367264335216132114416754651564223142415336252573243251536626231655746662427667224642726727554633437317552651674371573464452135517441536623173532611251725342723777152744464737232351552277511712726234662365427545534154124345431464753122653741623242645471345575172514712375551714311741115665315666367627476516337445447345777576526521561351374247115741541622413256325462512246257154231414564112754413676112641747362424113434621473662474161265124467172444137366665235554763516345344421234164153666454254635451217662174613321621557224571445567566177461124316365276766724612663564444655377245664674576166556145412767637544243732312231276172753253135271536122252515546357654163516227372315434775541416415233475327467612454764632614655372741424553644773571264465243113227452747333733415534213131341752131326262575336113534147174373675131651147773774251774625445626542637643644233762163564321224777174777455112421727475131242651761377456267442553512236254442731172246765143217562114141424611722135145651173252374672753445657764511476526135265754163437114223674744716623452257656322244655455151453544712131225141375654433237215452353475526324563352125341362147374654436471146374675342561715755543226165163732533366556657456333554462212415751217255142127753331711331412371331357265477475721222245216436513637666425476271433557412354236413412463335155211675645764526371651726442166621611575465747666664157725343326421571347144134132631544261722766756173117633245521674434426735522343755731264747147773336221714247536222451756772761214247247675742575133231137225351165221317715275771325437453421537252474564225215241714761444516545114554325737555557366343125712522171633436514213232275411311453772765331312142466675565615764364674337561675234735515376275634414147125325732435315746766651323636542363276542273171777554717264257427736673133543534422223242677651545536252626112564716333534611116563527673414663464327713364565554725124465165444167771421711667362113653563236746755121123321251461167537163171677512635177324563612655665264465345642552624263653142727546116753557125421736335752154131753651236352113217154642747543751356312237441763777463667644233367137464432637226156545432255525527615351533566564351214443324777777645722467247674737563715416417414215344472463275153455336361331653527267447666515243615634767265431566434532512226527314773111754732516152342655646676277522516373664513647245622522543524626646345615273131723175452724525413237131552275476727464666432272616622177347777761637236262422574476777733734633127253772343533213113175512316622646257374667312522243723343246332356477276227372525721365172744171142253175137272114253754151671116544754657511122546135453552764537244623774775153166734212572164311173314675424733637252533641413614234624567263646575661165336616331733513532125766564574336131674161541725246136114475227744233543531722456462264743466573317665157353531467626413163752312212737754327576571542742337561113325323656725676642256413472673236757456242132726334276465764411215344261314476343653622337762213737446416267113321774226335545142117667617611153342775521375121423322524574523157446131162614146412763444236435362375524715422373513146551435274425266777433763244561547612531274623523667156564252337237573613415756354363343757324246327712242162116555112471322156712114342557751645457716152277211522146223312325264166165324455636142775427551417135744416154647555765637515656762466237145633612421213164752651127643657444735167272517326573775673377343147756777167222773364164324362766764565414526125454764515254453262741521213124762561143661347655162254365511316566673263326324133247677551523472371721253115627354444433615245416617735446137264622264654372243144151615521537311447136575133437256246137274134262314165667334451275171231543373623332121164521652572614772441732464676714467555745227731175162331721623463457355176213312122355361643133471537257271432744272142227652122265323353436533254551614762114333276423157732251746247536157574234167575471736734647633651721444163743673617572167252446542676225532213673562762727354341632564351661151347737131171534527677434414622156752777176163544634517357142341246555456475652446137775171336552446375355153321224234633176654231262111535267372634321632636451517712775524555757573577662637171172371263647335416176775267362413532741435571353162173621741121365662126517746365564165263475544234547531424252731446376737523247733776732361564732772575441174167557454624174566656146723722421417555246547126125132623325511661636563441463215717223656337535532471136275536241373751514567343523737656433367427714166654612265461456323752724625444333123341121355127315677273147673126353564513334375156115413414125652232724256627424345217551262657214575234135167625436414533732164545367713511674341273656152471756614615267456123133432331611626471252711756651265731175355347316335536634521641435445374747162125512564236422676554474712111213173263716641141716555157267422723452653536644155723631561623125354551735731346247623611764375144511525221465212365766274524232674165721167621251641567142665766364277417471517775754161267176646555436376566557365675124124617466331172167735175664475177562541465715114711637316665465454727716571371613766717676446224617717677621122411322373351172673565664757762344365626144265544733622337435561127612637255723336722154221666171272454473364637631751462451371517654434663347323527676144165235234666365723656142221244754477223723751544133757113147635275331622127374711277312635622443175272473443254314436632514642362111253526245675442324575373521143267444467167624266646576752265574642211126212547436475264413264757162314237523675434364635254661677231654535735671337723542231437454543327222722254147425662725174467723746247554361244742246645334336633447335754161514127625547213165323355754574664315476263373573445613522171467727661526146527164555146357525437426677415467376156762621562446321372354213253257157442432765737751325736264573621755211416372216441135163442144242753235165327353457166344651465574227736577424153173731525666447262254143276715325737723612457375524347761553225112723415663533476233131217541343555226614276637554767121765133371213115534511566365271417212453615216662344433352712143163432722643433767323661261476625361664162525733756355463644436265455253336732437366746422175725672421165167244363261222442344734316434244367726456462636253666217262675324237175735227736234166214374227752161665471675437256167537252157467555424415257314224266374622652546312763612543376124165447736224246454145432771673271156252274521367775537746236566774712143614753153537544567455354146262554253557244221776644472216236314122311435167256254524744656626232374557366325332625232627572526165553513445161563326511472764564441121566216355771563733231711365577746677525327515711344535674554451447413255136631674442231676455421563111734611117553677757635467567177312163175752442441543313472371343642352761325572755227566726352547765273236117275127715617545122112642265276325721121623577471713176436265727533536737376357341752616544337312576311432356324432614571223365446316451611644226411167123552416357134316372125165275227574746573515337177472121731563433741627277223144215426532777354647632662775421153516471771636313417677176742241533312473666437171171711775323366546117416343362372463473325555533544524442777231477667312271154321613357557563644642662113117744735472457441134417516137352445252632261145241513664576543721635212527544362444633323261672176711154141667735532763423413723614613436425532375414755326632333625157733617141711376232235477652471573274211211442456623452457617671327741171336415366634771773164225121342565445175161571617316622545771151624334143323324445442616376515666333747372744322265356227217676642246217524246374133166717717675232252235542412236634546556647362477723411651215171556533526456717121362561572412566352625662463366634774164235515433734424573243125635254661552316622454143461674467274764751173775243647376377635766366663123424147434455525421311156757361723356213767543416646764771637722357312511675237724723412676577134165335436241353755326617466413111655527445474172734626664535746744625553434154357142631475213227512472234554271126371452363515516165371156477621442536166541431241767176736711256341261234467413673522526427435262427443272252633224367241215734215263573722375737567414545231761616257462723415555525273636734214133113375555533215125322115635452762213771543265766637742445372517132432416146544431546112552122235477732747524366353154332455671547634731113432476615447725575652736442443125355246123124665463657513761373232756672273763442127772371427153242241352661224426537656632636363526755144277653625523517714733324312237647745341722413324111353124436444432355361641312724151473247213666234173167217512121257673535115731437747171142353312263645566452426534533547675345665162551517172746312776667533412222416671617774746136136712444576737627771777465417323324452131745746746147217662723445123447644357355361313411574141664227374641766416551111261675664426347743243225762714233314123556513521235556356667314636257625477761775663511477537224741144774772213672363443526542256354163554176475524172543527744713323671311251744463536217215777342622763772275554131661112673536727216526736614221326431627113726146122736616332365441424544157763776161662626266632713351165164454474573775624477611246265774433113554753546316367414232131415125563271445315234276632135227121671327375126752472355572433436536657717523311567116677142416371266167131472467472472576657511727635542672242321571741737127111764542143371433623736222133745244722337557732325517533646253677413535424337651533516163727317461634417152731214465415617742127274654662166117566326727724136247545343442363253214727722445353347713467617345676461373647476743653211313441227157316514645431646371422166221246361251636313516536512712643167116344431472753637527633736446361215751722217563446531225252217241746247371241614476621347652666173617647763755426212465443643543135131127516441372452317673367564376512662437671145476357675764425377566132221345215733134622355124164676222446257663215771136741551151713246355255616515532426664773173337366274777767443716515315516232377211777676644334125756437453572633624724622245767655532466157333536327623157656745532617526541234756152357366353137227262756263671616145114642355276326445454655745653474151325144766122551246153731211626651555173776354371225513643625523672413712547277421373576252755444714376462512545775364213321255556317165336614315144665137346235156166711673424241621543671423331256741147513237433416167242675122737154225551513765775633732635121146552346417126726472615277613716773136761113774635136647647252162564574676175752476462367315613763443223743641212767326466141646313535133327542731774632657654775352165537614271212716373271767516724417562371533643463723112263755437417551725411666262673722311264245123325756754712163465617736452374526325323724244672373267744374665537252663417771331761675435724677635135566576531627127563474155151763433412365467462551737536354453127361617467537715121264122476111147132277252154665615417567577714637151177474164664426515656751444463662542251651412374263251225764254431565154125466714431562252671445533341164523434177245573164142525263461753427736754533242755246754224321663575563157373561414413145577567156735434373763735577723563653571464337677366663453465655232622662324314442422667236723457742142263725553614314231132571476772231532477671421153167447626417543625276265241466115152755717614277127636564532353257556357241651663657625272447774152617634633112377253173347347765156242734236566424144462426315243167453216755631334773335277715233162573311273336657372221234756464645175335762766617232465752522326747573262467352415644442724356153242551727767227125462564313237564742245345367472141237672215264661225142572642147372451563432711243647127474721657125215547752165463415546241236342162647634254113463141165221144263557443277672241566665477523231677754263353671156735576457114375363623257647644651421377411151777271626513617466441611742767256217462353654713567661755363322343273532136526176274313143574741371744161633654564235532723426556664463557144424157624236471356344723361216651465561173654722757453113233137277756156454166363332552266412522526535373722757224411621562743226164635237525557121222267565276126521244317154177131367436147163644171523432251254223256164162467166231615732747572716736356524434361442136444314425411346211764313561175641373645325553463552223672772475526214655534172551764263454723515447734621231515615343612475167734637423456436336762463734533636313456634477423332617213766361213452344175151413664626226244465132277711425675355757611436174611242133216766614413374547347141264467721621512354514261236242367637742734225343735463416233553456442655477234531367631663332576454752521653347565462441113264242547633127563442311466676235743231223426415152314463354317714426452125675324644223561212222564521124524455743565133354576164647153545224631316122567247765542541125646351371215453577676352627742647474533745424173264121224232516555242636512123552155311743224773616174746351545143514517232641132243551317373371652243266343566173357522551117265411621565144755324475553554572343546625322136652221117364755322575467231445443556757727424247436176223377133512321413455263145147761422444116357421765575111736645171244755513655654544455641445455473271141527225711466344421155736266273446472364542576137356243171717365324464132471215242267476571647463231754124146662272153143227375622116412235124445564277533452255355337463276642437741724263577346213263672477632757752411762127157565745224172377415566755171216155752574324564636374213132244761657731572151644475116432645354533547516144221671413265451317164332313317631731262421176436336162234556452665775247357112155765271665524723513331465317625413344432375776346613643563565326762435564465321312515265544317276552241711433664155675562212243212335547712272716677365416722454511464365674715665514364271535226276634415125624475234764151562521414156771562242756456164144227467276176265571677645643347672551672522532211312215673321222511611273546667132252152574627211312423617667672131245415217221451724214274175471434166627152217411133652462222364774716613245376422711447663712412113113431261142443411367571154365676342372425753423463554751311111135466647336561247615273345465561431214251147275256777334773552625757574611741556467423113372564461451132226414353225546176455734161365611551317633376126165667416646337475635612353175115573635512455525311213337647551237624376644316147171325322416432524364142613427546673346576452644263771153434477461726577554731367767176451731177272173742546715775615443555665726325722116777461363146325214776541344544544524642266221733433327543137625476764312124231574726174417413254263524137652121532343615766373721213637524127174441142557311772123425377113224561115352424513626371122233655235356175446711413333555612367124751662435337571745324224453565273262525362433546272624362641462721364234367643664167417674152353523135464451147655517411725364635241727475521575461532545364757575671651432513451643711556245326726173346631265263764742756612523444167752763621217623122673166532247136436731142734436726455221355471445341445761435231275121265744272755112777144566716421541444765152663254277666667533616644452161467116437536415571762767424544123725772644516466475763645323734426135433724654523213577442645311323267571357643374654722236677622351437576563733431224336335231557534513552154421632275337254432375765344652233427641373411144374213741436662223277446121344775427123165745276537463476432234775611316224643625675355331555244745717722326712671347262346764552462454676611167423352575514262431576357257266222666737611336613162637645774735114127112246236546641735436221242564665173626563367453237753267456745556147716355523736145464532435123136737765646143151537313456271573315325172727434521552127746727262114635737673466544746654656715137513326326664541235224673473316267433355153627754665246427141771144363117513512262726617615714122561772152524753156756146651454532742147433137446254762756124411675123176412547574213317333773164616225766344315646377334634343633664373237752456376441724462665244764326315563432466672357435361751413455134317647527754737666165225663466236134116113415514523244134473316321622542214674345662365646277231324417622222766555715612442565611362454717175762563255531671562527176577411116365723465666636722141111142162732433772552556362475526624134436512113362646575746537432236562352552721115155651445377613463637726337457256634117751733372574677542476534421741137342563153643526667652225331545471767365652234234213444117364734122163657214727432677227246642355664162172464531611543667464712472277526776462554741431366171457571444454323511215357427326374443621315747331353217162715655332625766673636774325424726424247442337211473323154527322264621774121343314655353734677226517717432556721416133427121252734134167455357417323666717726232554374241175746771271761163727215535252262766756116224334737761534462611126725645551274717716173452632744646522317321731123643277374661265131461324517722217536655345364211257322764756317274263116657467676741257756627747455676565543534421556543546542411271257634327762257134577343424654612716441541666563342317753547241542525563152642215445543711135222564343652746166744517222336167345773357464473416167722246165722521257126676247746251375374716177315331122135142751127652344173225661172216133422425524741451164562672233235667743724311447455745325447763443557141662147726622345713111575744767247555646537754566177246154453417555243135124722623747755423173162716233156557142446334217516226431453161646552716752573465411364342647744522733631272541313441166363266742156451561156111364564413741646254721111326236276655417715211747543665626533562461222214646142116314716763341627743364662665117742552351725216213531337416326423612751743553573767212163735761452546664243524222243353755664122327315733226631155423732527333474435337561445563235437512636216541415573741417733676667344164152212653256437342532522546365763275573721665521173446634553362623473715275766177543437776445547117411321717737614347351215772772143165267173165522541771471777115514234343651344621611751141261632366733231474157241355453572766225137444533341265324161532732654476535117545564426235212516674445321722175575251264715367267634375371611571215334735664714776345275466535657474117516376665533463221213161732354234165763657116342452752166423757566265662773631717376425251566546355255454141141171154662651524473311766463411531735415713776545167367147577564766541342741524534563576457447737614741246437174653324252235232334647765627746433156675131765111474574377373247664645341556267241721451377734624411236313343356367424565567352632166611344563311454732512657754362264317677132367773355543652317526366346362532543171765454514577425453313755332552751616277566631465636333157335624715526624576546342265774647522223116767447334277427317714776337641447514457217342213225626451555523574352463321653274167646714676267715364527515746545532543244762164623475465273156643126534242442235414253163412375526573226564171551276526157217153752365243744112242723631662677215535261466267414576272251452462235665133663724415325654731172336124537325527371133512214413756551134166751677113365526161555543647266154354456125571471467433621757576223161673443624672636331326416247546746474666265657472655515332425333273772522316456635525242414346575115457522667644325153225643524444222314572557313217541326512147572134413671722235172335225333414527162552743366177334756623354746145432547265276222637632176512437164457565415247544531637412754164441411243776142615661743152651225476613122727227117215623721154533414126422353465526212573622214667361244513152634555636227452241111324716413675353247763141376376432242773374231645645152311152716333424165517574462317441665265712463172544633312434517517335246325725322674346621272364216143174617341533266141271536262165465247213457615613643726735134613527441176177752357661555367762345521642542531165764753413522166531724277464574473271552744264146141571641421271512661165515122136225422655164145424453323745241272644232132447323777233646464523117533736314245645671176746327731714311342676563353462477222134336766114314263627366535551674237226747417137421441434371472224237144125241173241424755235347764671323236356714755553366124124424566113651642257745364317722374164665463446764761437251254423222522351635634343426445663345651232461464341775347224713346234267527765532532466311123367373121764164747122451523525263113524724433736141425661253662214465161524147754115765173373614253172255652667367257651227511227547154553131777125273336326542535434223537737751572136777545731514336512515414564677467545447421164746227171441241127214641714113517442441626634756766563765415777735311573476714724763363744633737471652212222623413741354747444315472624736327551255223136274735475676263726115234765262271664425124154556367172411326546635361113531176124745315351336322751253635644547253114652114637234463646523211347657445555332266724327273533757644672466333561363626736221526613364444316655714415371233414276635312642631331113653175537351145575162355322433637337222241446135635754616153455412343677645441335142423331767442775265362146173516162536736713273732667173723373323416372373622225324235637161513154124353645177633475252377452777413741435245331517445665124224365562624551375365541337143665223762265732753432377433441127561251576273571745315341625721116225366325666774425252354146361472222163753652334752211636674734357466163462625413645727637224642722632377471143431134216227624216472523663166531554174727612344273455643143137274615477461635244523317625247267757527667743571343574567223242257331321425115132523261224557715641174346147552733253376744745641762415312272475123552457165752762333764425574216664233332731347564174545235656445267534626263243643237252647525334276612631256553116125312475222653644127344332642554314645376665251675733465652136551236775663312571273442221433472536336236677147177543166131472656422445334332442437136642172361132415241674251513436423644263217467214375133216651523176526141711731662475715614675326371315516521711157763654254725745775647531623147147425744455141752646532715222235261765342166355442424616322644574514447555414257421113755133624374731616556115157471666513114455147341117131747716176651363757464521631644141141642646776263242623616173577713711174174624341522722742433324726746556251675651762377532273665572457474466354463723716126515366534664443311746351641563334374156446214455453312575664231161466443455122666327461357113212362236563475564626776725135561716132621351231713573315122767772625226255417571142414335425536717522557237217425676321174746551624113135156721411344563161157333743245164666141375644363511434631265775474377437325655325351155164773544174157272677323261365215525261511335346545611131366211773433425647415361142274224234534761542236377147365514347663335744121354315421467231654543277674426654214146125237236723234334776554115513434146273165521144534312712564746464473722563776442113323673376254615217475666632244476175436463255115745644437744413424376135463363267654331335116542161715564123432437273237141116416521371112367632552215222432265247217221561443642253774147466173234366546523227335526342212133565114151634246262745772323537775626435527354174311221452735746627463245164674246357414621424376254672427171535473435226261522557146377327574333665412432613151175645617657212572454637722341441234724123744325574257362515661715511322727343233661626771557761452613116744567766242251237346315676276123462361315422556612654333264167436674746411717761166523341657724574311252363451571452777275176767337546715243422571167771621516652736621446717277277371574664644156141226117236266236276674452767614126637652671624564444273373363176662667251433111556266636166375275574421555266444364257177647651337721267725773332751161764743776177217222112445753252247645255265117142443617515223351446173612533436713375356162527564413175247624425155613621165744424125643625377215616261461176657351155451271333214744274324171147354222343465627413134467211325453274332672563645342721152115743253726326466152617173211422115544746677547465745165316441662536243133717166554352223161247514547743354353347616221546773655221325654423757757773757657246677733722364652657746355332357347343545774473757755773547114132267543343713377416376762673427535412146546717257777677256531413354471246146173165264112165146565235442261217426155655175611576423251517521573327276716411667432167331212462734754756526676652172225256516123422727773664643163375133116117452664753352637255574326631451515115472141424342732565541525617511261574637364576765432525326277426526372232612611455637461321354246766313623174152645613146114721531572753364611265667365275771154235323742443652457436146657165417351556133412757122727725724475424412434676774116312414177647311163237726636347371442152747677126542454441275336363512176777121775352116136751612262513474415526453655767555746376567221562453222626316473212233211133113441774375137666327644156261613356467716623523455431257776166424362463445637275752766667676441217567734627647435544544524562714653767352447414267654336776216775374242426457716113647457477371741556637665576327773757111241355523326316167741132541652616754527162723642555752327325676414257165367745232747363224775656365213741146563766734457257655673335731146124324216765613671362735422636541273726734524175244556421524661712325221563374121576532624413515746567757226641131114376741232126716174727624726741472466621733734644445336742745725265747253667353627464457545456216614732321245621776435413167711611216657714667676531213522634724256733634314215161312664157452167662466127657366517176414551661666226747735173745744725463662761774672714424721425321161441657156437622474115267112222367355262246231362772631533154323261621244166236437613177326157477672616325332275267571534331412411762533466516436425561135315456565741417371245716566711442311266753234353477111171671154415534443656474144165265255263724616342551511125524444352711424774722317361462355122441663734344247471337315754556614172375141566435662532421275176417746455523475273447722743552414511566241512332766661254421774445524437712354453452477242453737622276361525254631772727364671762372132223743325435647676275474625741162576732514271251212141544242362642634726556614126324577334572656743545422312725551132164543132746334115246542336333461135542737774375721716131775243357243347337757573764617676523161176542675575665265655745617246356223473363163521325712574527465377641217516177221733113665633574552612664674627124544134527377166256646426122143627322715745143671655611623746332264565262716466463254447644676125474313613544322651316372761614463715377654317614754515115375743355125123554435132623334154552226637541115661365661213642321442435523525523752541563256311365622563756441736313471117731177773142457324437267541741665166255471647772444464541557555263712643636636173532215354241766476754261253154447651517133232162167515632331615762234157463513722773565123223623237645615376571761257152574276412476261617677677734742232542413664672674754744747435651244475764344644242747443417376322161661225573336534517252211733232431542233665642222246551564221463541173452237461515563643354333777716445667735227715362721464754655522222326237231671262341636434226541663526532733753227313246677644634315172466755316231565454532235657567635434175122111766532654442311375252771574725123767245722363323231441522314126434452264412644361434525757463336114332773167626652444342317654566311517136721726262727152247726567631744756751767353277425311277263356155752142171421573435454574143141556164315547637262141612326624712611351136121741355356672463164366425537532747774642422562217735611464431734634427672261423515477555121115511253233451624365235173674726477514141417612331753554145646525417213355256572566245663346322772124553377367447473363527543652275643213232276245663146113412631325645251511325215611432164366322225734175347157532615124652425646443264727736772364117576157634572132524627431771472462376263744266442224161177141421647667374634677713422533656611715175124676266471643216564566561477112572333462455776645435474454455626361536675375362744675342117572422516565326746352152675127167443723613545353212426627523541626321612256713334577561644112364236327545346764454333536231477113754137574574132576152776146161366172162552356446453564562371441261571755374152736476145415443672761777626235337367115656434723223322273237772721742531473115446772122544544746243526566177644553766253727424337612452473451746446263465536174254532163421535463272451225324651323543275257126336513636552137362755266714136753553237215422442636565467173762246563673455722116175644764252317275556125516131647535233662132152737632414326423566213661715313676672744575457726741241452272553443657231175171776112166317676233531664664574673525745775754511264363661432733476172512471161312741346573775436257447571727341445471352751515533477467563611755525752251431276545514572753761754461717143374157533313521231326665165173532131323655236343474364712613166473644122735563132661262553763743227542734633146435555732442735451345653436744676565277555761626762557112117411351112266664756656244146457531567771111771416363216634573555643743143344314154515577151545242635153577342761441221247214137223131421576664742263327347764726322576755555261471133761167571444724512316735275471777227177333236521141154673454554676525461174755262377661325773453344722242557366627625761661247515276514172131723716525714721771432414115221333734727417273314466736551272345652353324235577155752637647274762227642276756665563665653772577133116236134134514713611171342454665612525337622423713733261436134525171524726162353765414441254746546622416314452662422276313726774765225747416775151377232634624224746654625615424564517673466121426473765456322761442532112614166726315173124334417554154356664566521347553217657744453211171667433666735366364261737357351537413711775545565123316233272345327621127775543264635541262326241242255356744473256744152325233247564433347717325312637261774232222774321432373236321546547364415625341414743365131274251177452353171161555124727757475576555712212241416327733627667451426111442666741573465761767745127731774354351321567476515512333246355225542664154724774566721346373216672177616311712467353527367772572613773726126275424677645635725416626331134164646326324716621463356211435134527353315625611156573335567373745773443126726733574347127156464273537243754741437274176115763312775123431246272322642654453624234146412435255477673161627111545241772246763543524243226237413226436553553726412125531365235641674463137342212434277346261666746526132776327663324361371576473465361477343432154523752142672352172352426662167553142455546113334561122111327476114242737641313662114324466526437754356253375755275637315257133741566523754653372255115745151464544415123411141257771675373442226777622373417636535725466642155766751221652755531333272775324713522753242347133266516617531243435523251475427647617512465411155641155326167164145237477157466242361114622741546261442466425241571673476612757517743112754511771172433324532524612232441212322532114447122414776233566621143337431275211442152164444446544216163313233361616136664447215637655177333753244151636464325221175726653251465162366236661413413324311537716636255171667121363725355541441423341757156161227722457244322554271377325234366352536543214353173223344771431377553547277646156571136536714743122376316462217271374161151466161321252122343462523341467525345571625731165444716242317263137716761675674347142665126156453444454643344112716115721625674141526274631231542552264457137445636546233267343612741575422467152137653162736411625666547616734131225435647511513413257251244766712444242214464624342277425734725173636757526122545176732644436141433441312324472471215411244161243571641263744125256137144654717457453673361772447342356144535574443142462553136763231154631317155361537116311221534752444515613342525536471623776574647437222556732625664757356227724157171257164346136543411444435243152311336164677465137113546453672232265274664644457371655624275537656516266653337366355236667333332373312271434462317234723657323443775116362637262274777274236613273635553745765215775636461341661253632336735565456352117354434662366511415264732656161126672472537417657567273451377423314553736676774644773442472543275552156155746442741476645231562331555453267244351522426133311545533472721735362454635641271365147427712115545724416263324453277342233433121613354174536115324342574232653644372624467477143572651474553147566161547571574264353422117425474324467546537255624166477442272623263341325343135653522666176361727454576333656344625215125655767724475431126753445377713611316222772435647546214133735225556471571144532515436733337162636676766164547731563477732142236115114712377463552222224521144666561263433562757371424376474162131157533112316347531152111537134251334645776123176223336521535254371164573476125647474255442356127137427171672477547275742267173117752671762233127241634253364774673163362525747154156575224625315725445626533541266236662444215177634316372657766773671746476216362734774262371277467674435365224527227756175316364363721457372654717614544366226654366524455744555537213553516563121774453351645412432127517357763773651217264745221444415443532142331551511276621154536413767274537626676727621636422352761721475567347351334337373542757242221766733671124661522177214132463463356756262647733234155611141316655652662777163416235725223364261657237546656231144656572737557655672666644567675462353455433421121316114762652422746215661323444466516115473635133645543575142627462314743437332637314575371553523153466722766342272761522671262561736642241166325625767251476655762765271411243124624652623612417515436677734345131536727411553633576356362626532775617741135312652511557752644135525612625466544136115722275712463255531416264771712523142734114542426467577116211452175462713457612471541541473652751621121557552721774152333611126271323571545757157676221522723644715255222131235135151222425712572321154466573317114347611311671233231677647371224547421563642154477571565525647334216466662177641732712654341463724753752172256442643237565534245765252462711666163316464157575463227476761157655127765414564223555525323521426332221171447263641423166432574536762171246265642714424366646222122431655415312574356625473414737163262742562134461253133375161771536634112416264423725344143354326312734116725576261734432161634566161573415275714216554172264653461642113732444156145456675462632126431624257776573442232761264416341543161251742476511711141613457534153361374544316511624175454436144363523376641623716336163546543212565716712274475242262646512123462274775325656572727114165277637257667421316267573413221652656674763634756715155337642146324224513275514415212155752255217732313523414165617135643272713776241624366174556673566715177417455546166765454453622533254335273647657456324662354426155577327623722617633322547213131672643547241533515241515427743233317765621174366212453226233547171277653773443263531254116463363412571772356516262377627565135466646757225717635166151137742512576574437331224122631753166357427411153276237633121135555373554426643263176151514521465235574356254462112631271763132665536175122461772174325414727227774774425664754274725567153374313774457345743472715663512733573274543677374735345133524637271631424674544237774627161665714717741541234651751432451651442144152235357146243217465652716234641764632546553714753557741564251367744237175417774461456545164122127642663533434172341114724346561446735217544164411412274531527664477111176524355327551235377376156751271152671534612735676635533542561617277363755141631433416754143244254213517415571663134221526242577321571633313462715327512537616741721114456124316152143316476263576517255156617435642173733663333214342751642624471521135414751471126214271553234477632364672142153115446624257611563132423727145567344135552544624136312775622571534147735212764377331521324573667315271732322762735111333714473423254366532632144645721413742425733373345637143641443573711343746415643445563757224474174232646671576742611226147617221155242222262176461413431413445642575627257366325576132274451156426311335375241111634244513731513344517436263314467124615272263537177243273423273275677511636323243351677251471721611572575527755474463472652765246335515467475144514155453542365321262622672426261616453147277122237324623754614615653256275211424567141547341731537745765426572242176344267464546553343225274321447375615754531415152373213546722153754452735277715254666353154462761436642463574232627455763444632715512151421134336374274641235436226534616723446416135413446373136112563475743673516341624545262162351621525715466324415173622722256351423235163736467317661273421467432164674377147277177311743211155274773423537451577521616127436166575147424462642535715621654574454251233713167452152745143623261516732333652617135433336721246431245577766251363725352253311345371751157175133545364521341377136144361262614257127671725255167714453572172531652532744553273374752341651123222574671456676337644162266412723314614742743765762562727662165516116523117417227475571666167631542434736171122763652151177763141374111621123322621227336246543614334326431753455467413431216576132664441655114752122456471361275565241225137445756314255323443221755117724672376241757432166411616427512263423246445337437312514465436665341674632464541661151527364264717766552627413573627173131556167167644747112452144244467446454553457163313462765312151125662347615534265643732573111224724247341135544337644234536651452717734246723466544276752541676216223647441121165425313577671512534121176327326262633313272464657472673434475315477122453722327456547214543474155261346631113142136256524254673411456442462717223157721457237412657424763374226433436674611762157232722241773735472362764163371323616143352546477646146544214256646554111475446432357245665323321265517667434467726653432274526545426515461131224711365574267734526567337344477762137517335332623462525653233133246337263716271641733611345561115747667251211365361563117566577464562421542561331426126266155115655236474652715756572511337247736652512177472217277342515432545524615125256376325363635472655541122644362232164722315155234117123311757263411114244751665217122463567417751162516123373223345514163133131241423334774327753634232545251475547714413236244537263431266436214225565112136422537274233166717532217132335316453564226536437413544556123544323672234276743174467155757424767351573223231537276315122163672627777322745711132163566716475766767131346157253472152663424222222326452256375645164342535357472733571137151555464711374222273375666172777765633245414237541771677477617616373637371113251261447412362464314577537652367326463523653212543333316374543575344636425745234556711747424765633425267754677266167265246755542773633621321237256165721626473514266451612756765614576661541233551437627224134625365255341453142115276312125516246165521777374426236277373143177617371562622475322231177415124216156345437661422535666731443264163736511571542116514571535764374716567746732334324165137637371761757654567124546344767154723223311576155276544362171177511233663634553272267727137357337463742436223543772165111746762742446522434111522131631646656254417272555157342544521726714621273333577326352546212333224617747362743714642115137274626417313433531732525747644773355217257624371413656564552241511433361363622164452427766133375357527755251556123256365171431177252251166145157516336255321447466613722637444414457264137273332133545121776441225245747776323647113635126663674522236336262645567762665463764337573425454532412517176546234771752234763455727111121114637426524741437615511421534634336262255741775777457633717373125155373176377177156241641577113611541761722742741574661141241443626125237423731721577774131276577473235311614715166167562613562544277137211523432341321622171464275127232423777224366347661646557271133216675621356224273267155766172532333236354275537247154762662256511133751472364317236545135362344466165235365726143137644513137475375127666377415617713363667637456172163722164566666125515567436556765361511266745767541326464251257177251277165664551674734361415625653663773462146236633361343226173371772431556473366525762315114454663127215155424316715356771546135537661576242673514442352325341135125364321511172637154226144356772532273454573656754376312637641714144572241545433174625221275377625414522676553153556367417337433164656147715323777536411444527126424331243765375441412457131144176531765275724671633212225331751524733642455136232642775431526617324777255162674263562225561352414715732537631467746111757776236621433727724272367167375364221224257642544173422442362221552764322317575224556734272415573163435776656511266172521653633132415314173144163173244443727344514334154452152462727575161725376132546214523752264244642155675527775637372611137553156364165636635537551641755733352327135511414356435523731535163224327111261717752535131215724346172173132334232515322442245612712223535152415666521666222613273436711537767456431511332634254627532674572651514775132436763555537621312577652452276431241535472573733114112257577353567653434715311712424551631666256345627311133234366154346336353277771622146351122736554326353674663766214143365461436162116576276675516133452111353363465456265244627542216531655325655412242256657544764636635567355137464673452545133627623562527343572272541715632334215654157213554674261363745161622421125146515275615743251161254426437354225146537325542751167523416434266773556672366673113175345212531537226176245225635245773624177363475226142774451375275467171136577411226426264215134674614737716141353235744475271661252754756562611325741311231227256544353231532556262422545667725763421644711376124277544442354344775161572721544264151616154571172712261364541351175365174554665255375543136275216134556243641351277744367216741643422345541117147135563524537535271335213424341444124316162245765737542124562626421163111336725431526737517611544664264327313757231724165166133633362633654362275411721636553247566661356125236116122374362517676465534536252172713144663255244713666341277511111536224543367772361325546626631175737514244144313445223724617727522513327644566733655261752754726361533636477213611537535742435375361744723646346313366774231777545533244622455315655655372471355231565341516257154741572631176623712546531357364172251455656647242415271446315716143322271775121353213246116777635366416516321457761316327227373731612654516655564615547561632134334623315263652254737717263476242734374114413747354455464635653755514326167365412756436133711225676431547516347555531444744157657643617667625613456633241745645521221127273163442424652645642334346561611126464736535731526751514373465577656253136623175613665535715565543562775751262763352135646414167537137625755143571623417342767144141143747555736222673741136254652657163231144167361664171125513162777324441261337526226431211527127253531657672755671534555731743161453642533141722764553357454663747324671224427536475633672361764735436641313375336133313652642356121716151377232245416765343677413614521562475722662671536727161452135313664375465755121732632716323153333772641456262264567767622221664174462636565625374273266511671317755342337121751371621572652623637455711722227367542533722214476555346542664732677262575616367244113751356663254173452254123751652261227275424133472627432646734254465316167464134337462667472221767521436516312755624214163415514566732713645242744455274455246535321533127545151537347616432474147232435521327372445427272543357273556231452322656422452726245474662675653224473355522725763422111472257512342616462773561744364534753743171463332531221336675442257444164334567143256421221165372357776431127734463425557676426745654517623626464737476556427415162553655337116612661536412443352647334161712773152245216562717374427246456745354517351227531561144267134721657231376531474454671216232725123747176151112566256377323525336643564562674152716657673155621624372751241547751735715424116161621116334522527632543376116736121323366631113716352623523527441574132725237641576167343726663643246551414571551456514716765362627576641317465532573214114742134174161132111574155376117474626427147154454434232771512663244217324421767534251452532221455166127663663146465434511123377776122277676273233115567513132732755364454464771222162733347654272621366734535756165472125123532715765651445333262722144666343634542341474327755152455253121414761224475741136143222737542514374337167714721636257453531721442115135235537623447316773766243465367714666751325467376676434772532642332231363222352343225526271365717344372525144262623315236364766113543136643373555226642672317212566113777336675437314515635767237257457474475347472262644543477315463544114641511736134672331313263531242547627724746445512744562146164447331444741716676173553156676344377544351451231151536734135672322316744273245454527534157657213344251662125163455421146234254412221217433233517462576313137517124145221445627655235217413564616224135212175772626336411751441464777531132541124666631146213452752134247313515115277225736373411724441512153665475521224154535731314554673372142625657376143747777456145474611174673633641234144273137767551561361664251275621333656745113273332522237356751225622425326646212554677626535756441523444432263451147231215674541532276633763337455367517411754147251354762325353222123153252656715752451713551164365613331537432346523615252371731421165147114241212412321461654636734447562116331471724273351644541225474614537577763413631135413634364765531611611343546752533717557155642122214341525413756267144163757161413741222773461321244753441366527234256356624147373771334572455471116754656473332543576346614564666465252112436612372326227665445323747351625427746112733733576232646673166641636546643355525551745645253247333216163437214762156752461126142452471144375673172776346467274343624132451142553143117756715433135531177224412617237224124761274167367312752144766111413213344153123145343667376276451773347745367573337617656565543633177164633623257341236716752355664674466157516533567477366415213714364271353225674543672544366761427147316537411175465642271271242257211763125246774651112331466514626134547353163642663717245146632445122141466154232654571315377445246454533447163442131153673757574333176353372636141357557154734577171737366452365513467475162652552655575544673344724764673152336533423167551726521337717435562445717436474517472524516442321466267222272743722113565543174244163124245532724245625512122546356551314757263627413253375651477344416173122414455774343231462335116617333574242143617333563626336317342523256574164117377652424356413766215765573275245233374142713473225724513124741564734441142412733436716431126115512366572644237573474336552472363411271565211161331755643714342514743723643651723123716317734125611324517265467112412444437252652214574633563575645213557565663174654346716275163674353232131441136653445274213574242555177235357236614543165545162357157273631764655223641335144373321332635723412324572744552321544776161553224467131235614735222512411577223761665717572274625177431522543732721433513633426335312465541134337513775457722656477746433546313264573341353551521526462736671126617145372667742114152266246261153166527726622134443752567526523733715126617324771265445426272616171722513635334353221163213573314476767263737575127146457721361721621756361242753771735747166371363452411525734423427333343262332177332423227572144177434153425626742125531421635345413731462244242543427562654521453665734162616154535514663454423711524242533342714575354613465677152576162527722511357142411217326577416761664144262216347477522572532442421735565715742721173262436762245351737441336531632267434434651376512566712666753371345711575646517776671766755225352143134611652542542551557261636234656357435614177445522632735652341375331123442477251445641436773723556677233564611665542626426722371177233523274462147422473376636646762343563332656522651321214272777335625247434316575541771312412534426234217741512576567737111374146763474571662233221115725255652551121571667274515727432251746235341422511631312175147366463425362544615612132343747716565741666752544344451615213123712617176713357114552544465616317612522334652763451745375175727171452714314623251365215724637557515175546222547766427213766655735435222254337427262323633632324161714242576442572735427622145553765372652525115372133135442331536476574757577427543146623247233174743462332415361775677315321631444173347521257357136176632736762573137771237254161172165351141421634744161175624145343172116242344741556557342755573213335341475772147735752261731252624342472272417412211436443672753477557676241113444471545225433163757757765117453142217733465715212116216627555761322416656446171411422225273112243524373156265227452614445756363544315522541454423713567264713471141523176155537132411431141412525671112726663676247323336577652442564675655146652613256127116463751347236754542133451472424453651125731746324521177157521151445641355552574146357314257575553437476253433141121751616656524167137766432137141355446244217636642641474771625653517444175161154242421112275673354322642451556214456661272711336751356623611643311171321421544553721573165352673713745127174553754124543371467762457161217766273626373723712177346365517677417112752445755266223251122172754165262526324142674223425746244553312655516223423135511215222677337515276122463117661721543643567632342354634345334545612415754146315554341665531115776237736433474242676676442662453315313167426143343333266364623165135335217225461723254213715424131774526542272314642462654536342352124617721363666136434777633272374764167316525527363163166575646455156117672453523742452231136774572313313541234527155211425334625767437115131624722434677422115723667777624116477653333216536222627531523124674752416626462424677742125431137525775657537773562557172636641634333113315326665253162445234426162514135766666473622256172435443734531341126166467525535711656351125141274773751744616427576533735443664373762275566441522375761545135574264373252725267431126274111577327657376511331473525556261457413571621412455535227176634763123313566621776553574473375174527151446427521516766346775516361377453425577542447413213175734164743314765742316246666216612412126347145552674637517331133475526445353237431713154127354714455423251474441442161463531221666441656126563641156236612624724651756671551244352275166352154453552441625651376637445474672457144217273167337223276745446613517131261477334456676574447347612636755214241575416457725641724326123545263344324252244757243576512155714252673222556143267647517627622246546172247263513611672774655713766675133752433734114374772573272163716374551163674425724215636745455316755174463136622452135143517437437247516213164343455362643727152717177722232755234172467152767162171274336625452172332337547646166217552534412612245472476354373114172465735337454325654413232554264433237152137451357711444512242774431546742121355357513274432633316463277413557215267517342636277136456327564617345335363556465471336371361143716552411766546316442313542556151136217476452423361523117364373476347326274435164357671536366547473324234611527156145232252735115337164644637646463315634137637464312167653647426656552156751711462661746323375174251367174375444543537462723543257216115656413156343321624171415546361256127525363524775426517454423457472345214576376132122761322771131275135576335343545153125414511642455346262737314722223175655143311754764266217621154555252651312326136546476452566134753257312534456324173132311235632147277454123155474117342355257375426363175313264774721267714735476245656427146445241267267764535562457331446212126245263313655345514557614545756674424144333277151436421775573464126643365727625767733733513252565361511413375275217474765274453212373344715625345416214135464725144422124577344215136632413174511453674455422243766643124323115163463221673121526522735477772627255511661313365336633313324416335216315446775531515257471242715547371145156741213727671716327114154271117773233426517712554555253672723614127572562554641326145336631231654534714253756211125762646762257543334763467272424322417227434427653452721151314746311332216747145514716123255541573536157654652422134135374151331713531616464537144457316634167252544645574351365733775762371417675461241667135642332121267441331177214424421174421543673636162273234775336356122276565751667211544133657625647157647546545665641265654646434532635613466146743262666354217573156641216234741457656613445435754741162115422667756541115647446742147441223412311265316173247753267325547121442471331132366364773746424535663243266473631667367665636223672316645516111266226325172123324556443224735155227751461563126564447673466115526634673163575355712171331152635621372627367726537647773121324175337532451554437434434146317737664637114373146211564272223137225512623363567512677337543265171662744474764136325367335643553543756537326733555323457235412177414457412216555321665772452773633477432763552413571312457746232573646135523664345575653647673163456273755444771541436733114332761121326253562757113716411154464665737646335532654166137344613372175271134611266614427454256516727531744434544445221265573453464437524277754421132241632377546211374135733564671225337451445277421224736275766122645712266616661714471232722733227732347242141341772134347433766151476423646764765377624771217116357322625623232752154644664776635557151634356555763557257667453243257442711766565134142731716343552637147245214727445742733716275451354471223626672566774264213761137461572175776156755314126325431476457761652577415256751723565626675674162243214742657753431334213612311645266763361466632664326617242355774614233262145344766657775122523313736354462325736634523235517751353111661113717563254667352447414116314535137116443222367524474116757424347241715341667732372113711153416423435371361363514734436634275146513252412447132435212164575272244471752227343516437555225156274554743276223414351225756664414162677117732314741774512561232631121133136361166166636724237323436541154713111737535446162124461235453154465662744412437641326453211425174763251643176762735773315361277667326412612412715515147616626716637417761231432113727717712613477457356562635167463473365656126275233213567215345575254732654563327537117247675465313676163543175161173217216765616275214561111636757277121137732553374754256352246276222435522776236645463221445366321553446537553541327642776546377566123116774452514511672666435574426731637375656226417617462343724627714744533345326471347615216772172476252426261231275366716717117461376552477523552411212222234273324271342313661122244466613323666316343674263376622471262525114744621171627161664123343625527124515736117227215636263564337343723636437553574476316674426552755437414452642411343132514462656533475232337671634241422167266242521335572651753571642742671524117143633131225576653167267443143167453755111767556255123257463772141457157356334143754273151552757724743761623341537261465742151253756256341765742157137735142261656515531641455565661564311647636617354551625513272261723176171753112576567331667226417617636144346515365331417441373274357273627572341714356213442673332341653634161271726637114465727155242635454473665442563232624643557754521362657425773327571215655562144363441424333756626157636314531261626671233621514511615436121241323113245647611373553215237464416137354147132173547772515564336231267773127446614714376765511344564554276233224724543351223367146515334167423726363731254523537412136545617212152464573165542672716674465426724153443263736136421221767441432151324743237142715247237273337645717573126134335153115736463541251332643667323131442345323761726152247545477723267424155545547454661654324437155127645513366344134113655427326242135677237163666411676441574417633424546465145116276143214654646222576654562364225222655233627652232726565125656362646373654651265576465371156126414453642246565246114735254256731465743177156713634321155474476555351762676677262625634474235112647156256246165457233514137641136134663516435263226662214371514411177551333263425474535265336177121267232647223762555474247151264274336524546256323273516633743573227171666614457776451355662243656767146637416315344462267325622511426322462433257527136271673754236771147372621674621531631226751541675736221312713757162215773267366153115247447156764376116426555574115633576525413243153135673554275751341322764212521123724473132537763226526346532534245616111375374735676444421514131721733162523135716754515576222323417636222644436444716476427643223326257434117745547426267245461114732176427515271333142275144355751361242224655777324455363727436666712344123534565333273465541321321456251534123657367547313555571756674141674351421374345634424622522337426145177341765661233715267523465462213346456244371661471443731571132356324241577556737275477651753322254671751647633653423311527143351741745231215513745216457374732136143656162552155677645616311415421676526674222712676561311562245335227227531743133112154234467123754667742137352664172425274127524323211514452752451534444265131772222414753357416772347166774763125556265512654454721626627216531375225616265533124226212123616746662453362744467713723337631435424663322436265375672324317453334723356431456316276342662741374676324276344276127743243541561267713543577327231346663337417535447124515546662117615331473356133146616362342663553317557724737254134173431616254626665657453517134754316411436737737525573144261655417441514436532473354777416674355322364146111352721317462441716547717513434562165137165232434311421474646425724447366222475747212241546511314651617522772516426653131672733531623676276457222117533733326712164453214142164315372674346347556225645252471133763164531454332153631446715231421737473531274521115253743557722734175352572254465273471166752356155523172427276615366415322647446231552124133735465426267444422346514626321725473346164222664121762354177473253617536347637351451616436416635317372127213151416477353315377232151263314631663644711432173115213443675457657154554621227442354711311157135144521324346412557352414421544462144377643514172127471754232771115656533123624736775274726316337214111312775471217137541573446461771143443274334451335524152611721746372633356714157622437737122135766262511412127213467352455771671436717761264326564433762563642726527526745467256732432527715311374356253613747734167251363215255513521713317374724751377612446137411472144764577114235227554467427671114524365376722655533372444325436221657311314471165424652414157773167137252622747512376441157257576412536112326417647625622657731671164276331262266347133431324524534253117237565331435762745417274511222255135777242743236617736321434562475216132435752654557511565254415335152434223517176257327154514457356421143514533447573421773557676431455127413741132473674161147125172614654362415555246764761174523174671421651447363152552772363774353516575751671226564664733423162444234731222253733433247513112455712414626245657133546427641716617761453477155271546422476517511477655225234263232114344236376557444266122531265375733465426275143661673757275645432617542472216516665364414277744144231511643624572441172432327744557727125416167224445577742155423515621462272235661451566663555727623753314426126174242142511322315712332675511537244567142163434126452742533575633312315435171624551155341631525755316263772174542651426572754463123132433753321626167151347676327534171576132134153167215114637112433523427632242647777517314214561142414377734122722173725455134351423142145646142341754532455772243551664542567634123665142743377645745612151153466656563166426414327772126325664662431746722662214314435451256535612717771266427141514453462445156456367416257374455134573737555524443575332373131553342637714465143524257526123212435711613373277562117261174514761563564233554433554613723465253233533156524177566157451127536252524143714433513337274416463227563317612256627353213744774235215647531766647665226523214547461346221436224324247221543137216434267334347111536547615332443476225167625636112765766632176457263112274167671171671665714743771223443143233243444523223731221444717334641176432125447142264441733766543663537142516533743416621327214573156173244237424776571733153444152161476212155656545532147424241346416431636435272155362335641715766722126761517724564216663175613575711517672675463713773414274555445531411711556757457127546325752725776717754763731744127163567753554445454262465663316524772117575243772437616576747512272413572215627163153744747637751331512733634734243647255131146273453557152655372666613326444463732311326424254444335657634273676227363334763537153652744454754717135357267542551756263731436147144613721775243351277473557564661253555655412731167237425563253312657455225522541654635415144514673647473145422477272635541221671375434762524773622226674127111347773672755345721253153654565623513213577323236353667165544446111341611554266115314514371754656112114372717712462234654663451353574233434535673226615414743177551113455121612234125665472613662772347253444672324123564155354444712141424175347143532137674352764172243764622725272575476234533343577275751143672253733566232577146277764772472711274562416555513522421222461763274552134713573254326541127336546235432133313521264151264316273215761164526262321737265517436741556675457317433645664335471366354355114144211414263636466625463117621246656631346642611474342654747263752755123777361431775363771717415722533134163227337176565566531323576212711324356366335114177231512542733165433373336731347372454537733243727456611675642662137522436153454332233423126477523565137745313157472654365336217577374471132547471775424257112271242572525771741247672431553672115265556347464571562144213413725554432457335716164272723365766444177436471271771531733462162145646512453672671165267526135241126711266546746245673555562417632433651535431367146524412544537713471555332477313356616264756647277356772252123542344274671575516553464773224562117446237216167656234725347136331216222253152147773475123226163225141366564111217451372625535766673622472113223372321623567275254556716227543272535737377337145523435466435664241733772134142734377145172562216222632736534746466513222512644676152455331635515555111462665354262337174367241615436565144571337673573341255447223112715376531611272526755612634255347217163344465647636417574322266277326644423127273735136552767621742637361612633346152746357251246431461442735263261316333251415352427565762521741212744472442377452531431623717721235765243474552145211262674617733423347621275571222441721421414767323316345216447575771232373712745415242674637527331354414114372733667157534526562517267717531635324341215661546131767751144147663326557446523537526535632356455616665541423166752634521747515316365753234535442725416673554214144641163547424527271161535167614271421714741412442461435254354674736746552524152331515244571357764562557122741113354711377436544332416433626641266761731175641464646611263341377367472522217356753533672327556415366637151715623317676141717657426421327442324665644551641537611542775751214663567245333526517654265762223622277325757333213272621521743336557671376433764413676147155577356446516453742312672477514475543371341217515646237517471131725455472623514477224166235262453312762345635376437257763522757471511746432372145253262543732713254361133373677436754231444746255624721357651724512346312216735537232261255356641265736247154726743162221146742272674621646241246474517725523142332115113746165634524427271426641153674211136533175647651123611125516247352236456353352354756772544461425742521456713251647546725465446334625753554271476353465135511455756655333764224152312234676644542437274562224523163277676663431515645224437222431152752631274456152764341454627724233337346175722312756135516471224646514535231563762774444325541336317653517575264465133764542665515514255154713453165464241347212162517216126453773641356532452661242314115754443631167632117417523744454252616212211375526557531135614331522443673124615663647653553176241425174427117667244143417137754136637411421517534351623626635447424465641713777534527121724461623373256351757634226147431177253623241216275351723746772213232534151262722551662265166316723115523743154423522732551421314635517173337773354652746111231735475426143242417266373323337543214755662276457577446111455431162451156476354334212312456122227556575436475137552673237251514552533477436141227426632641111477753223157174127752755333355525423655254374775724112756224165632136755374714676326425356155731153652422723413246211655653357475163324526267674426625314741712537762444462443726611342756257324232416146323526416544741655711443614522453735577454151246641114576257415171767635354462267467741576656357357434371136365325432512366334472356175122757513366631176123662136637542651723361153362275564767763157444541776125544164543243253657725472572414362761455712247636627477757132657747115616244326122172177213372476517312235551564674223244474544626556172561737431742455735422775762563151255227434573475247541447727245463225251747217145123277263217757362227413535652355714142364462332563525262756225727443612342416765451161477422224251651216467466124244313255411236214335274232165512133452312326357612433756374746262546171344162264521137166663413576577743353671343457365245616175145741317517645313232157547457365162322373466227543762745123152671123463632665532247355256674754277536113311174222366173764573122275727357361112241151551141353574276134274215442556725742171467216733444765651746732556766734165151536145523726713271711673423331473317173414476725115116552774745475516766525436241142236337155524474374155621545753176122146621251722427372466155475211524416635146211332411437216721714455341145177322474546556542654222156274714737276663651646225666174714525111252142427524537316237741524345563767233224717742756753145563331637754226616723332231544322566651741362253164411634671232527415712752167316156341637764156237121415634676423247333433152775126262145634465623766433747151574622136513243144444376774713112565762642267415251611672374534112612715334475232334514136421732323423166637553726417212764166411764413276345746616521136456411616456617643537322365472446217213147147743415451676356414326556772777773344211272246221554332241433443171421642166111157524747323567267232417616516634676322343722132145317272753157431472636431654161512531657354331361544471666274365552751175431667754535715626255133447441324313327112712565433257515553615257512523123473335563644433614432413676227661224773356733423167231622443532554254614626167376313415651335423131513165714743675146634157631254436646547144433251155464557575357244122126473122136715353344162127621734614216332332171424244356342455145557423647246412125664427554461246212675533464515565146134574611642723415155446315712715564256343636117724567322132334213631565157771774442474521153475651741566576775441612474412161757154144123634577772131512637136135651254646326317532574777112726573632337272232174454154275517457154316226551761335154574455333437767723667767133752331177642375275277565665571265322442435754475225273163642651513651123622461314735434132216451757263654724156653427122252221436355533326144642174727146477654571365727525121332134152123117561616573466211343567315617222217212253612452477165125716131251211526121255526546351153756774234317311447332326245462667571124665627175742373211646746136251637432552346415127375313235752256233477635615421562314526435652664234337711664132373645611375565312634646136641171476277321217732134637444231557611547612734127243737713447424516664654267673617324214562634325224623441537732154576265451773436227454427533747411237615175552363422164146444575542642453321466131257764732373166463727263242245474463266427637615271137564777641217536472356247166172257557644175142171347374273223351336424123647157125144654117344577443746333331454177557357224664742237173421555264243217323623426652562133222142676117243445611616765212623721227122246423224374272722225621742665112744276626347553174576664163573777436322367234556235124444723334417232577414371235731426127464224151347212743275672154656634447755271233541157661275653557214312232456643141246256654322353614121356352676613632436272327721434473421511511275461377643736713552715167257271136177265651561736247757664724741741177566744151774772761453166354455445233741731541136175524542371235762266473466662612473156327544342672442627577767137555517463127417654745126234147235715164476431435243156662416442243641521474557463761661722666172477543512266226526525617775516156233425654677543534315225717624541222717516474146561423334316173126426471447155145176542273214636471447415522226646614134564141111356337172335231123527215732143171734745371725146421443135451762264672331624342215341565434623731421563756472624357557422115372544633231172464733121773313743337613235445575377572712333547763145371245736567657157374561676174534662565443321437356744725734311177246713345472446353156551472412527422665546674641266143213554626761156733623377426323654222624634142735337751733567254516772564172476231247434723631321322667321677424757114415771143275455526677742356457722522736365134626777675742717111263457326132624515475211473413541277241155346717451111351522165327343552215216245465432613733756613171433253211741414775417276161521554211632625117526367411427461656467452645465436456437561541545574433731576441377242211455542222767462442216345361523657535656166726373524351717261447523312231244163445172273231476547762325332751415135445667136113113346112216341163521321324325636353275316344562133264227662455314623465323671715425241237514234627366222611122664512635517133735174616271323513264547421354557257752761123514733311443567255212111226432114511241225565522332553515562272554577621571252576664355244354533122214465412763551227733451134356677436117477755177173431544212771135755125712632542175153614124322737531443726273424343625346762175762225627641112656241665675114723246731115326524437527327731434157763773636617254337462575651267365576261252277643513762541777625416235362573567241657235235221752576334514264122377323146761166445272663472714255271624624742676417775344536364713776571265454335426142636554156566535765522255726634736714432427264162534743555531144145511742161571763462737423647344235323632122127566663744231364721554136232543522321625441471262257652616764346517671355516636763142333223567441431676557443242647112546714161135335313257614161773346151556773535356615575214314632557545434721657541321242573365534417263776163141112327576136772343363752561276226557547344334461111526665116642417563636251621133174773614577751631123747241245565275556346233427441636763177676415274221155527574777666177276746555361475247226526576425336152141761741655561552422264121736252241255333123171343673424511436654773537132451426115357142214162572245167326561371127123254664143361716137771137341254613461116545535452662675522751552721232175662437715175661256335436553763551135726536224343276632627227675672514467313657376172274417361262453112734331252172432162232252316721135551616137363412735344616671613362454477436111323146631417572241517266232144275512475647636264354273235551171752132717614622357711344113133321444746747443661762226536152474551364162725225424746522431671347565174416141714571463636717153723643273221321762141544546444156334664377342642157253727564173136535365331525735762255233753471343161725177713573632356754413557167363172713453146213222563241351376527127355673425747237554772743715617756456121546661645246542344126114762515761551645472356613326226636227726274357247375266617443437351362272542655724654436662225164212543236314117665352347663413145231443475175276643766145515713545521252662573366675411253165332134341431611141137511737345172314131115275313315477573447357621325535244116341277357534452343576242177577545565524666235473163671127177154723514363316757365657761772726432713443763162727526525626221774365641251451662755637532445655215172311366355662465531765543474115436576435233511354443141571322756735512234774732577223374525732626417644334741321332772355257343314471735542673737246514223266521371374252441745163744567716762721152577744152752466135736646737156345343167265433346753636433451374141546516352515524126673251372125214155714175156457456714144356267615475125523467526526234762672672553355131576552334351756146346624251774754732275724722637575556175276513227556452743347326173714635516131216743151516441441751444215132243731456646412657754237551464617224363267731425314627615144536657426734741273125526511335711566537443257366711463445411313472366443172742632161446317541771346214513616772222375136113223346361642133734366517333344757324343336653247615656522156555576234576574112762661532641626416233623612334444732115411563523457741443765341734345115274647315313556166612125653375214612643475763711613116715234756541725467165367551161652515223277272741647516574523612164715426436643731713662244635754364137772577273264564111475273643465366656565215774316456116513751677575464276766527365217161476565545413143752634654575625654543237162475763356145536211675443776775254154511416161713122657346247675312764135155257461766624651541213612234142771641747633211365426677134557146333431433144213765564571355272224661633341651241736526545374527325572135334552556437225656441462253576222677156622744642516646274544476555674676174577147645554331661457347127731327325412277724173151125131134365321772212323624243355172225644576676127362755371726537651454133734656615122642755721626765411775573454166354653345447437171312161426335273662125752616737162277253177727316521437732634733253111521523655437613615767474711331314476154537611262672132432676737476324677761211377524757347143274145535534655626777316443357671214177664353145156216154511672634444523361515213734741332512115451733352332254576314357621131677112541714323612633477453576775615252353775376562223172443242142667125426255244566176234462665164166731566324772711645323412327737644733766376476574325675747744631334722561431311644525232325722164467645111252346611544677572671351255155113447241416716156337564521227141414537672512426253222714147155226661752334566535151342166774525415523746426372217254552362133665547753726756277125472732245635573417113712632643424727144647517742163454541634376761675473343341566125662664325123374243477735723735415574327141563177546643455757521312753651731357335212666364447472777476461427562414563432366346636565445611656127616261411444327127654455554457557475647774327431527266153422366437233124666633116135144326554411534757456343644667465726614356523337275241436115254167757326371544674317553474212711726151721175665236374644376567661577612132512444213671337117717261353655147274535224351461572522651147753614367122657626275457645763652253722725313315125563667476154312114427147411124774263142757521123466374434656447766314623615121577347723377345355226672264716255113214455512341262752317622541462613441232667676715246332415654144422536115776516424356541325123654247742633423355623666732533112535541725267536337727623276411765441633463456411424525135716115562666334673444615267772663564353551474163441732541457746316754432572121556761146323327362261625775117377166212245616635264357141773132752564117672565374142157256453767147541647125666373511447424614647525622523322354736712155446233115676741413651343155353737744255734632114372535743571114177535232736236776141756346467771153577113627417425613457316325323713613216247123675243173126652252654374222143433247567272767126473124655161535262232161461513353676363712266776213431661731277466316726155156711244324311521571541434452267257313146511773244237373747266214146544435524252665635222257172615463146623457635521354513622114764277373541434376535225417712321641761345327741115547411573725122122346712116211174756135421124455613714135767767565517342565142733235531436445435275343623436623255142115152736547414166532525152756177615211764745455327661316574474476216225732566232312342322173644465227132272235367533766375553122745757167414152125434353242463767454474355152365147566212542257225756533331677314473345623757172767643176356421172636322527546636713232271153362545476653627423315647251365615762542536222173335722141276151557733327132432166777224344251437532163215442661462514241776732715223535411661136226633734546147663357727227232143737433727733723441353416331646353316627614326554613243715263117341232314135624316534144662274247353624331232763546153643752466435121553515175461415761277546522323462153754412554354413567441774442656253625273632272642527717464642561252111414534113274216244741221347551621315717241662517324546572541723254665671777252173466436723126435123524713121242527454456761534445631221634751133262541447413761654616773577724344637663546254342644653334326763345324712537364661256671234233467222624116146524652532664471736762255665572365143317515355342347566255146414211543424152727264243112615456176344576335437455172413674342263216661613467434254515115642261412377462137774331773623471726151227377473462224225627261353362423542413151413235626755113442514151333631711324227225735362743467433727127252773725422251466725767452464513713474346465633435234113452123334674422361254631443165332545117676342571617472447147512167611661634174365435571626576726776175357671326263744246217121712631457556511547155511321244346421677544426574611361323546314166146232764644225264336724646345163675264662475223766657343271616316136534774426715513631267262224121613374655557331736744113425721122443247725751154751462734527542717223226734152456615121474561752715331234542117712514664353442642416532226421411573152577235333673456672444616665313574531354543222272356741547362743435463137561672246233326366654137616323261462525431273231727534524355615645137614725331542634217644535433246236621365332525345332174747263715711147613175632464676463322633434641533152646115676435757353526273467715272214673457256274566421756656516726426164223742421454543342333246212117542157431576144371544167171223376613545524432173246665665776247321665347213423751746425336263214374142173536133137713637465177647255474747764477417164742653646654335143151511551651265454157746473126333415674151212166563557431743716457157456777176666345411515216745262236146147145663433515346254163227233257364254437772446473173334447775224533265276553312623165532632444131451377164526627136512116443766134255174546441444346456213623435244763446312447174643614365642467755322353537646444634254147416415247476652546573165624247212152676736534727761211712427452567767753537341331551553125162452357245632557722767255567276534772736622117772371316765115762363575461612712242374213725514764443312373674121362613316771316743364624275621157431771672742646265661412173221266275465662756775565726146561717541316176414214764657464353345432453473433754464152111536274757326575231437276523735217741555571361173357271152445166363441331451577225155162337156125463625674753166674423757756671547233133527236127551155154155142154566731154756644753662467273321666663767466353661347516526167146145334462321626653734576314412235752421153145743237617557312445353626624332225641533427547125662243145571624471656137774177676122436376567136215737137547631542114635525521542246342236333476671265156522615233151314247476457517424217571325533664317261247221253614765127673252623732766771737421217632532251342636135134231172314311563771145247163665511522652414472763717533552141721164242522153462773656334541632751476647265434733237274547744332411376425362754217327714727544715255127746144675641542243227721446251255163663441624742374366543471527336734211363751112652525175247314176636755443665743114733452412232714122656146753265761436516721332744221256743462251223725717744447752211714454663716427222236573761212313767457752623646772661251373534134171176361746745145372533115527141267225223711635364651153535753773114631243346266653762354143452653557573727656434143271716253442617767373357334137356547356733234223253527543167224162121133355711436617775413334144377573131643776571611442116623263332546732323313363547142725333667155651224444714467513615347737154533755331733573464745412526533317776432645316554242614276252523623466762424471125327157766251533213112463733245716713172637774326536715221655347357652254245577454354117374232157155373121512551116636765572627645575271251336551353353222425421372111137214151116655166432114234344557671216431315125152373636372151231262225267173622142445314613147156411127227522635172544335631657417533645627723633726453236423463545723515517263474452715551227564467141622642221767257735767635415312515671713212127224632526467222572362574114337252634227176121461731277511335362545271271713142235344234351227375725745245463616444177646151212714511336275567423243227236346447131264114663645261524637465342256525225614212131313776755412741512235137647752114414213764257442575471364373613445276475134267346117147676376734565334146555422443556457277364132575312261743316664531662717314565525645142473362154343434465255626523337477736334777333712527211264417476473336135162462744664123454524576741745653732226516337516362232736123511214437312254345114426512525115326752614741565376637622214624456345547253421252756131262643311245733647213331537442567755426543346533564227273147426524457344661644333745176522574457135161567655371616527362542211233643212316747247722742225447462167471633537664676113425362242557521714471356156656322747374562654666226455362267212427451146425124145113632161112554623646612433747661345555666154636113113266452541565453153767443375675223172457547375622222256526216137447715662622323636754746667474557551337434755352267655653624271355573655244712131227674366676744615373117521723145745365266262763523135776212426224752421331637212525426341472445152424657652763255127653134471116341725724314741443441143472523546532434755341426162177341733371364527126744225725334472576237255527541556167763425276445352376152747214234132415344211747171116423455267514765522144341352463336673413564154635242516754113456246677255774377124375273514251216716134634254375636546137565177617524376735355241136753721541422514245241616534757645157223476667475221322216713767514647377176246651723244135535427173223143157756261675322176647656112416735123751132653264751635756327234746243455554274562556364317322737664322277617466645413144116321326652111262122126561174516537563567717227343544523543313257347535545551625173545132363612645532415463664374752475744246444327572332617257656226723541524257326453635553651473475662743452323361554342621662231637243672744474551316571661714211234534132571355576367556567371514176512712131671631525413434576225217477623772166142622366747671413454445644364272574643437416651226573371137577741324676651546552442771215255351374765753126115353562773532257311727425621642377557147523651674175747633716356444362434631211511435312624543517255417112334315641312674362544571341463727467245317666436614373321576172737163635625661452722445535534641557252145544613124462254721415674531135621413635364521334565354647144635165461231623145415353737755431241717733134441123657354251125342333447653427532136755512615443616253351613767162176557151716217146463664253363413472516712533656426775433763433713155246323517541442215415762462766514546736114257572454352427527617365257171516576734352434316476435153263354125122451714356317252777427754576371456551225147775266342236725546724572624442541361214341233117623473756313577626741576621133234574262134423575412562354571223574332545177467332417756425537222554737541627643114212165632765133536513715712214634142546644551744536227617241524142426414262356732764645562635451623664313551445633331276372747232431253537715512135156126324346422631124114665271627531464721772256267672471212415457636232231566475376555676236675657574721176747576555264271157736726527531334225264122441547634537411565612444263615751236323716757135721264614264113146772213112234126145746366267514514644354416122747633472412472144537365626647234127577752221534171136732525752355445332664637447553557633527166522265543246124261636633126126161221716442254564761743355267766122333166424114412516154574674536761271233654325677515276757442347571524212644624574535323267524413656317473266546322154473445125414346215525412345552213561473144671422316166424171423612741365146227461477243652125327614753651473553513646144347211171566154225662154541465223143253343261723572111566734557773322646274217456761237134412411743231247751636535641744325666773415423533615561356452125614424155621313513363427256661361122541422553145573245274164123146332365643356746353273571314612454622477635632567177457517373431142473477262332432477451617164372541111136472545725163144253773167362315445632543243567216417135255327764651124541226341122134752575424212435721233251372415222563455176331742256615645226151421766577443557177667464116234377317357334672723612752373425756626645717311673264463533165762563451242212472712451135345734324561716336415717344441274711443133124656527437355123154754717334736334225252321132347745347413277743454313435431715172647622233136475235571455455376463555171325364717561726564414273551461412242643722125714546275663621773331424131332742427257136432532265247742216313655613627662156476134147452213671562153132457217122546513144334574613227454425421615455761525366746372257721564554433131324152657511726132212667332546777415773164277272423512645131722173673213542463634226412225411727371633216466651473353514346341462665116154652123457137665432672171612526325436773726174657241361352435457133733445356743767215244426274216511144672576214136764327357661542767467641651475213735673763751247215263267431361555455144341375315245474557575663521225662722553361141615516374657773572174452112226211161632437327516636464775216131236333465421411415453743574477524457737572553623357656225765141517513452637222556655476175712153743221514636774751531441241557153576566342152551624171226473317151646663111465551261274234415423611461711147726134263511142733314454554671662476114656674166437115553143241511321177671211155165743361624675737247336466515324712441433233746653726756757571313441623245533537142731635616746213415641535772115411675457363215557433525335537471662437457171556423174747633563761225272172241724245733615275564776427726354547264661351177667357322335152627645244263472571447573635543626613526357517167233222525262665556142777752777134446717546134712526136735145257625615573517111474316223147565666351237572523762324346653622422446553544726214556213262463625172647323636456245776414543236746234367653611546445227764327225252617614266352217122722454576324425315124762324236531675267112554425331721263725562553571522771432265461526112667265445526727763323752225137226245612564565575236434757563416333134273663443365241636615245711324145334717246762155137665476627234771462417515632646625474257314123253335217173467453223641712323632376737657321355671265357621214535442446511545426556315216431214662126776153125714635465341452141454365173575415762531374542156124653374745415315467521374573424221557244725546325471437117363176153171672557313243226226264665413133324562623131352165124612564176521171372615634752474775344764636747171351245543124533477177562476576534641335731323553663542112652645323466352374762461756266465641474743677131537775174622657555735323523637674514423125413662354117561763144425176423364753217631677715412155667642177575716111172272144552442347556536347352361432745324551715664557474521661143231172551651551145716562651776422442727126364471311167356456331515177211147517632757115663527617421331545537514711713511363355326363437313274575777272321745411437614634254644434553675612544626576373637433117464155645213515576525722164575453761554377657346111724232772557156234764663517532734361552737745763462151443426621357535631746544774322366531323561634422516472273525164641174562645311464344554147645342443712377132311745412725722555123414745761121425157462373551473745433132354437246275445114153557334547176551565416252674322661623317336314464226253444775363356621743614344676524251672321177661755445713463454772262315514412627365365635263672212454136416761131556252162363573742364144243446434352557117367764112636253617443112357372332327132316243534612232461431764126222464312665555677246312527223735315636735574474411353634646343274651564354713365323617273231647237425754454114146537467113261223255164431252557422452553173225533332615133317262531777317631425742343177427456632141773666137535173513445423326523713462316462373743327162433474774354575454775272443442625275675333114762353763347625177637427252564262431731465367177153134153342761333437477335345464667375641157274641611744472441131162656173233511712117666123235345534455767452453765644567113137524261167746224613571156176473455714213327151542122131141712457261673236333427632245353555732741342674531764166274141417272476534613375514122652375437567631614376636376171375635572441544634364367121742261765635112167553322642753267316515362773322371622226334744614666316525761317313636552166457237772653563524664257127345223336246334774255655463515442274526444416117434322271552327446127175645456332165475452715751773614567435477617547225636334525735574441321472366417274127673375355133155316556427547262252523247154561332316142126744373646273312672624265263415273743426336771151454713622273723337573547446564521333526745351614774242125664455612164671437537226744145645373264463254436312335232645532373522262671234155327154251134454635254335351767422547265377745431346613441437473766716546633416534524177254133523523477364625511263663727342614377731767463345473763365212513343237437316644373673331163344611235272233136666367513722347157264724237452341366351652121735155456173257474643571666277214712461371526677363644732651763473733174256145114561264461661137524124442256167557666335424537612324772231237215174747572265157421722344377321122435425655573434636164514556651735576463242415212122672257136241717661375657477723112427544367562661621377457361772345221651631116212553421467556624436534726141762147412657736617364137631645634251232436521313442166163346123552676732675146414634433177113377757563754561433226773313214443442427736324561212712443663431775151244116674616127464153417521445653374164666517446154426311455333654462151631776614356226375127576346554656157637376332352714175622677275272176325357516776526371561527237466222141121732773634713155222157112326431444644237647256777226227553516563367713766125724146762756321111447437737742534247237335376526764637733146323757164131667641631234231655411115733447535612176132545723474416321675641433634446534537716461312411376431725473357723623663734216435372575444613615377677264624567417571346146337351457477162547573553621434471526753723632216357645231313763734633335637142111774421651167564267522215333544545327376525564214255477243621314737766742537247565536672254314121731726172126725673552177631343555541551663575465642153137373647315572562131717414722335374557612451747143355215711145764352344623116714431263165111671325563344545557324552752462651624513737425163736573771257336531271576537357772543744162136712221472256114173467154562676516727252366117431116715554755646532647777611754175717565273167632227226221317126537516345754657262215236371314377361225713471511143566526551211156367172451533646226171767171125145246373567154166666175715726644351112477426126725645436241225664774145216112614471355271333112411335746661142533757417543164236361165164371465764724172327154723743651372541357643354625643235541737177355412576135527315637315571531465147327334277237622764544627176612655677331244346446234536645446523224346374121777612375253716671332767737432541422163771261162215515517553641113422622641167311263744722426527774266463672543652266661232115225534513163246546165654117417121715456774412476276774415345462572331141773142173674335162727111445561552176476766533232325436573242437547417415457664136672562116342327377342211361665556135335271424564411741761167655461125644716455236333441447635375516373614563316242416664646516257227572267527545716674272153711722713141224361172653374511112215516722255675174462633223425555436321555357756416713434766564331364542417315266277433132121545663241412434164773737243545612412727267533151452155172446231472615733677325562671477655572652253646236261657247211376166265473167614633137144176125135163543752153457662666476211135534222436735363262452332244466243654736633562121367423657217134433225121477623742124372424441113325141211473616712543715453554717613644775255277543745512161572453151647476336213617462771267426733222161215145447417527736771514125245467274131213175172763754576334214143656167476115415623364237742365542551512433275157575222225344131316651733453162243754266124537561546653221547153362172773446346513461623617716444544755422465237517771372374151535333264423357237121341571115272734253726454316312446637742662156414126754425345623575672751277141444442113547432712661171227234412746257435572773253363415531271516323477366456164433115551672742615366314262271654264133233446631556317747257445274717334677572752514627646714635237353644624212373664752644327242111575167622142542336534166174416455275367675141265157567366121676516456336743253171256125737236171746613526235444651573477412423537421663616363743232563425661354325425677635333545134566265313745577467353117363276546564326613373342467772741257245125556432772245515515673137154567344321512146617572361574613462336161352456447317557637321661734633151235173225272176237227222516115231147463213533345357411662572435443413634217444213364443534167734365762413451111341115571221224764562632271311556567347562575113553146275337526364431327561221675373233176757527354515475436417447663372111272236677441223174231237651271211444435473434745361524572611143271643414756544212354734325522143137517175753313641243615457765362352353262412716724425262361127354613221373564477142661237342267751374434114464511671113137366464525272514153633734136343413351144754145573756461265132474633156555163632247115245757227714221275724427643545472217342343666175617341335723664115153476675616317445611313662315222463354745616643423465755326741177545142732526261537446167654175141666152335254336314212116537334533337564213656617237342334277643216255717276167713137264723721241177761121727737244364666261316335434445531533657217677525767533266643535612366421471464253125555452624515635616647775523746524461643334111711615526461776657335513155567651742534462572567423364672551647144326676756324267636336514771716437411325247777674636517227412254336352217111377663645676731157672531642563514613367147153251342524611161452144563571525144171463154263351565234415457365625153351117445624336111765625416124352574641423157761161742523425264544131212527636644732324665425273617747131214117614136426377217472377322443143234641673532654715155217353571224617777364641433251161727311432225235173657724452557763725161474216735334337765142231543462423145132774337327234351554114365773516615451313326755242744313214455256113254526435341546367571336764675334116661516772541531654554254727527427662552645131235774431144125266146314522325451252615132544253277141623175733757342165232761212236322641433732767375222427632164716112255652161221743325322537332353511376526631646371133217343671243272254157354113326657514164317531166615632342715772662472733127336327723167462151346627733346272134127445573711146221133451211534247123772274417323345613145221655577777337761124451242666372567247357312321532171216574444613647775636751234543675456223674212171654563616463153731643134654173262641142612226522616232526337555143167347573565756562154111775572117245336675462342561361361247561575421327167434622741177234213353126251351213774111322235755424626654173124515225456612321252555443254466751614543533776223571355662422231321776253642464735772557123456511611535722261765464653765343124375352163423422272767267723434765622722363536166254173276432141543146415171671525246557324631615132663463653635552431472766256773372531137422217344574613432431751235441373633771342133516762761213651772464763127334774673123133427431767375616643234624335537113276365325225172427721554251352721651512243744327223461125264566754725241656317243422624442222727513347525366414766241525131332374531524352323722646731533677137523776343665267444236223614621712473246524343371724656247632622263476252615346347726654647143452623657737674422524522217223552153337444523366442123344266654751224357142461226531765423371177231667773341474341457121562773625125236463634462437453632232434257763542235674157126422735267125114377523223731733616721651762574134127451154261743544633122262715417364463711215552346542777162633761547152272647274752151271464673747755165362372171235355424714412516335163423624751516347251633723747565141533337317145263457661366246152244466437535364722712237165672216556521515443145346552567267671566331333266473337116376334414662526663171741474416346111653233524673114322462733657571157324715466177422651263452543641613373142762625222241617154341542772426714277733357537556214361571743743354466715661757761437511714272657326317116373473556637631462546517552472433173452244331316574354433612765465143257614735525353636311536476112531622226777536132764731677422714777321132275171316713774156257766612734353765115125326733661657632735563162514316151655343437424727576116476731646733667144226612671673552545742556235352674456655746334512416575527246545113612516441233464363734753526442143324172324564323617424717645152323134266654415167742532627446577213642431211111124371563646437442645222252364376747726473445473677413541267537535546516743514214246542662755731425366274556366114657256443147111747667254114115514622456173114311317336146551331722371121422164214351166144277212531734716334166513633546267317463667271244642633327574522543524113152377664157413473155232773326533153143547522761375731322654547155472647622731251764125313767775454741634247456466167722312313267753247663722561377462634775323337655543236425565634727446172524621474121714552336141714634116411562475675264421226427124535516765235714543274337113226672462352114516363514341461723574143411513373321513256326427111526157342572235326654616561672154673626177314746644425313314511377573414535144737363224655246466446716453271563633245634451217155166735444434127445331666721157566461326163465532454454457665644523745644223666144612367366252635131626451741654346575633467744467663637735214657437124464567146245421533244533666711567137254171754127455247547451527544562272476711156513657734116173451772132743262142421424235255533624247454764311564745362177762255671647456777766452217547436664344542476377377245367433477366724477657676747653333366737676661231127777773772444763776756535762265175775416752357751745632431747457351231725153251245132416512547566522713512247355271331122477557541642324631657317434655236115262346511175154124161567472323731356337447366611437515466717223362225263311113155227666676522252373731253463171723623412564172232545763242752744346616256656712256666314473677344346254733644162167712462153727543451165462171217322571776211364624733462572632665244254115334726422662253346645363717431255657512111337653437276477544571255247441573452125246226374663621555512771357573421242263552243432124325462443726742361657175537642373743326611415744233144526524754461732614664552165512155146445174316566256723143723232647624325155633661554277463176473464137535312777165575653173744312715762532723132672356775273633145735121423736226356345275462116773574647242163132776516465775615156553417727533632524462263754662457127732774461554323532247525772675717111757734356632156131737331722133341344773676214127224256362516732266567757711313435753712262777315265173264225571477672217422452172722331763554513514636171246367652216314651233614377177325373252372323611144545376326461117526765311613731315236171736256231221162254646716543452566373237553562116414216253531171642376343632744775536454627147234474332725332742415353756672726565221422256542624552761767272142575746154121224762272267321525714577425231263753362422543526327777652575624221447723266641574564561141633265343344773551731411777215412627554721527115112353453415245331417723264266617144413763617444514627136646457464235434125173444235352237114163776652364115352715632765765513274752321132567761554152562442163672123236425425573372662136354634746372345276767311571774523226523563736546556576765765551774567246542427415256245755632121517554422765735663511315712125375453235435247647311352142365735563171743461665516644157417112672322326776154735522237272313674735271277225522373527556611372774635745157642773454534534664174551454164151361647413766556265744773512226366552523123761626424123414637557445716322631712665317641433422567252224377467666417514556227567424547277137236117152446362532413267227133157767116353223476657367422325733633734762214454341471432775471174577116421276744214261457321441712132774734721532257234267324424631127534245417626732467432765557673757373754136733273355545323324711642356752665226643431364725336323447446646477363647665351773745313451335216144521421347551744716253327131745437512746623622412347571675612556546634426121263417577651451627473566232744273535525625652156746324341554173557333114513112726667315462212576523135615237443331463132354523414131523435412735114521666342524246427664446641554235335352635372334313166664133466332157444173427761461457153413256564532251624512761726733365633513265423515176475577314753556227447312673423352733173472766771755677177431667273623263471212376277217364463314675225556676737766711647376647246152546436323331222415546423456454741573546771723264147613357135621673356157352677315475723737621722347364312512634373176473474676734772433614277521242772251731745334511272621764177211446653647374765116377577121242326373167731526447271252275322564425123235211245375322653374652225631354166224144576174433112534327545165626323613523166416652324472171672523224676126756655117556777167243566256167666655477545454554571161125745134723552536274651332541663557352764343516437724267455533122257466712472246252677655542164372331243572135654143142615735454521744215421316723437517414152644641462334566467723614756475652356345667446216272562261121536155621321454476426574124247322241742215253733614454277524457673776336754361641427737723572461752774713531715141165166335413621231741214476213232641415357551175161223654576221315566315314514325456735325231471361123754435161535521374217241416511126552471454237476116134115767272757237465727671412415326736746254217247631737217352275217775734565472476512623762222743254756335274345227573212325531246534577337173525576736252654161145436451452744514417446644453677432411755151443125173657325715162354442241315731547144111673473737373527672415452565375366637122263436527667544114553472466312527264256155723525213563732654146256513417323666527777373667315224774454316716651742613373423156456115655557444642743374536254712732427376343147343673367214626721363434362565523213653573155767126462127266752273651237556546461337551672476737235451547424352526413573654647774442626577136471342622327625715453645535542421756242464567367237423377765247435352431111147263135556474227254623155317425433737676465276325626246777751524131122677516532224241241255331744766245116152315742177215132147545561313221563251477421235442336725255411657376336311434272426322256137215144111632715535677632751663614421122325617363753756345344644327522153635673172517345213576242234432126516226561634445636653115547162743675655732576462367517465474767471166752222762211262331177417547555343675164325455677171131124163537726545161735425325533644244631524411336523254121773257615371454135277143471223212631623452431244774111351362724377362641225342732342577647242663632236251116212456637624741231524131166161121256142144637764746551761517612137745262656745352347536526626222326736333121666123167751544565116113736252441353662661155434355157544311555673112371476253677424362732127671211547571527116751511716227276431474566651752556731131662673545726514311377565452474673164557343223754273261147227771226674742354661372721124145246261151554113461532634136552377235444521231661133335742521162114747324446635631374171463571611316457725611475535255413763165216263265665125662426157447755417446655453376256417236363472234267276745475334175221761337654214333337711645264777177132217642414731142227155455455371533617757544767123127565334175257552456434724145451521363714521665743727422746673746716416761241754446322635424132722574473627626463325477242754257547227572564333765445463751475552473443632275575351737235366154313651255475355173116242673417751447674334773612224231422764672746625343153344676322554163543741532576124341637672751466134521515776577345441527736274111564637546337454232414517321143321725661633672415556231363477642743541634324566454217246517564761254431162541377737753734724323351115124312543455454141532364632743465135213651425742126445732325664571231626672466711656451575474244271254253433443432471652331744553512237563726411542537672766444734251326522562747214213513357153577523515664267322634315542541122214555354613755141513366543656761555413775462217477626513277117266736336216431471563454675725144647513333377447527154554256153447321765324262233242627346245512655653516135261775151214242634113517252765623124543764477772374564623111674326674262633523163532334546736561467176353745363547113467372352337337366553312766177456327646761124753632263572573533564457357352166562671257531314664241317255554432623151245376155412532466235677172421544274212752336614641432543774761421142441715576372536712314712254472635727517356622534165466775444537443413357343615325764754431215151522761125526341157455221352171144452454145763171156661726235352727257673511122227716222755612773222112372515636141653151541151563664225567274277454771765172242447272157117447375775263173427564525623733766637446366677231217652455647357344321257257163324423661466514652215323352371724365754732714462672545214343436775664477617446747324235571153664553114114151756172526275322721466717331156344344437346762363542434476523457275647674515645231464735617164275762753434122534613476167717536336633116427573365524444555432465251662443533252635471765522777536615761345753156517726412511753555343517375524515577441531637314732413453235715565522515711632336611155411272151634176716273347227335215245442636257251761434467422243756534117656775715151617552175463347152756757567214466553762542266274311327265225775643143526656567331573412344245722346511515475337416151316733536754656127677343413421542454121736424326326463625266344522325331313646661436122532566251514246416164653746742135414243414747617727315771716132764477652256347442513374574316675255343577334412662222672344325152776246313165343465765312145653253111143452215555363224532217425145254521642427357672345567533357216557645237365255412351345573623472567223342766447776722412175444614647263373331241734315635361153547456126443566573334717646743431416312145324314637341225133577547561615651271755722134741311374354454331362477372575312344574233672324464624663734556122563326626751627212711313771613173434325234315247441572713175524756512434766672656727341667333141132266774565154766113161235443665174113563477776717337544327615336737477757147741763647273353226212363257163261356653612151473424643172221637676565146455534777564115326423312377775653337141137541474246617136141725352456462456516134736133656141715144714252134757452456663567551365166474611215264431311766144214722673365415345677142142757567173463622462237117114321527467516744347517152754165421664544414422166147264363761543633226661234542447455225424571164425374531114352431253715466475237777544745314557565267746626543443426124655432322242156751624251525547235172435743157155247665141625631457614371626625441341265257644711673442425477145372437146233645145312653414332152324441375752565317414155572727162527766564744576557374755346354547546425223614462412127555513361355331142344714354451546317656114536754317612237715762734711623316373124226443353243355747232574424737441215443161516423355635367764647171646264247113357243673773376415663512336436653671471671147777676151313357236646776777173213372311352617624511471317337541271532567157743424565525547614145217467566673135573366742144657472551431412734416244742266654725273356511614465272676235122635454613564654332253354367172456223714373771334642316665675244766371737426553251473261167614214233245371257575746216414475237654367227345235132644474354277175525656514431344642223741551567343721712556622377431124163151276611611257151472355551171515735536637156253314553322351423127772774772727452237562726167373314573214416564671556151667727352633353635513274362267465471425621156552332663323453322262255647156633256565717345711327435231336132551326237373165216363727144757245267123143561273233524441237143764715323662123536722365577524323624456746257524325465145231652345123727755637462237155617715233744347434237276423531222222746343711753467526362736161312617433145132512553423727735756257134531354626714466761654353317212676644437331776666164432652674265161544567561451256531725215535245431177167234243135337161734562335546554576334641575513617475742516464235277665144536117761664145123437356436253125631736126542343727744611535247723736641424657353256741134541644237223276774222457455461256242666572231737563721775445562315674554671113153445534311277442231726416426133471244616126164216372243124731467514316111127441412625237633112754524345547524674156673677277416767433271263752451352731662634443526147265574732276363562145422714511547427123242171556664436627312475437442666276445443777773134263146712172121156622323322645265571471721134232133265621714624313543545751465511246121222714344712465172352142155166312413157551621547776272417336351412727715717154254773145277135376472473213312731331735666562412363534164426622654761646627762327674323776661766575572554464736617451161647657537317466144537432367516563451333465334147622756325465335624166525261775176415247715542433731614433544245176623514471644347531176452276616412153433511255227337275536416367466121413437153216246711553511566362534276314536443354522714763732215645576362337654227532231523155643543561123772535621754227546323677156362752346127234757733776465314344442776612535343447636465336163437636521773541174777757413421775162143144532531241235317563172677725422165252475521353341551742763625135553722575532176365462667252166655147431124434462227427545754743451523544217756271334327125622177143526257254175331663716477616633116725752572326414776745637733443346745224556426236133726622366612615441135711634557241145373155447323327232224611625123552177535451114246361751232136324535517455471714743137364667422265655624673614317514633231364573371263543743464455152314533225464674351655224672417647414147526376634112545334414411343167132762555367545361732373541256262461657516564224316561254373122561757637616231673652766425747226414311371334323721111753651712644465435552324616121236624624212567433327542242145171753435266345311652627153461117275552267114656743236154413433544222447462157643357375745321775311464423747746375524221153252174153636132236277643365464711212637112634266277253411351663776161212316734764673344563671361117327562375163463717551757176221243312451157437737727225135156114534671727773766761772525323344616477573672171711722364736363755725715216416416522651353323717413324735577547523617655326627762413226677554726411316252143151412633623517223154315343447664135311573265226434265121466455261113162511332216645347426355163164314664721252135663544572213521354653345472715665151621152344563241515265555446164247355611376713764523371235753317356741211173571153523546445776133741171212452671143426454154161574525655214413427152631356156127511416121551132141444562567513563724637615121344577267346416675366753744556573253361336261267115133437114764212651113643671773515152262571313512512115415476747555775364416166251472333272717166666525266166124363535745357375264146556574416156322227165714543251247736571576331654563365142316423327276357223317167335133363235671521556422752162734647167472271363433314512127334617726767216455112344724237362663555354415253164332635467517665354123463322622465742417551451117512767431634262776137176245466341461534731341547462572536366213361443236274261227417763721543173241563414143365336446747215525153232614327546313256144165737556161352674652624141155464367455265322513212464717234174533567327252533253423735767461233524665673156374736433122277325776375165474443141713436557673312333152622366164175431217361541164562764222122522254425355331451121336147363646774556473247426531664412551136636373254767743525715346543746631562126516514255765413476664547636247222212521317161537437715117733755366551612622776151261662775374134112173366656474422622221652474115225653442313755357561766137637461141525756364121271376223216156474457266134457577637652113132762437357153631512615564124436535762731747422614764544167632515424631635577162571356154757331164566642332441521655454252175325773561124372544522377615136671471757172522165541672673427416557654663256455322421527172133112777565214761514157231357554275366235156464655354317536515224143677414443231776446323274736333633564341655155622555275561534127417144331736622117621411555276357374626732635246232263442172736755531535137554566725352673776773657734631525165177536125435335523627212455114615151673545261153435566625535237635735213141156532472273747664661463225433757624154323621517366344775557744147455777462653573337137515623426473313253437121464567551232574444664323566677656426313536617444734575144634122764535171161236733312136532234423115644754276163335531523656332543436144555555237714755344276363736753531227632632332265526456751757222254141433757177751526314573425752476532141241135126767537113671257144341466463214172265266667774121556735674125546154614564464276465361757463347155645425174435413231246315653667355117711463135351574546423612747552643672326763144527453143457335612163435244651332371626154226617226673426173136477652511233134757757421233656646624715231543251266221354643536412723536674231341273231725372242454146127442577727243456316433711325327465746747165443273757341513355433321135134661222636654746274157473515312112134336225612643341317571433634151414436231424742164144317612417661324237212715324732464364645623756473534645567362432162565351745526112565344273536656134671666552372542377726473361275654154623263541671713642271322716515317645113212323671221263374346176164614236577757173131571136645666346152731736746252421434332227144743156241245774157333165216234622136164377771525457675517542223347355616716772536536427364677245273154646545622675636776456313242557255141633124726617545517123377326742145551242242137717612333266272316764711326632532424746376115356256666122175357633227261162726654533546655314477713741157252147623311266137476471775173737264247527537543413454455256562627455427413457731467246775565756133666747376413653761661441246152551565535567755453543517534443522777563432447215652133227564256356444611255276764311723613341366233734753772571323515177343372226522237426777143415217153474735621144127111134465227144425112615721543545661231142277741552142544131416274237335664551545652347742773523356412211656743642765161451143412243553652556144252752121225656773342726115121456644156177776566124427231743271175574425414374326751716122533644434767647312733741142743217564237646544665762466572777321311735723777466276444324614656777322224624563423367121572276167131244626376557176121272421331443577262231776127742752225352425775635741251254257455617436571461354162217326143712672745614664112637751124627232421516377166577754162363665711143325165113764773371631127737755421127641346657327473416573617351475361526524445516767741222367431177343325163635544542775234267417555716615271165453644466726751736447432153362236533262163172274142274523142375357776126425555372432273621762516517511363151617162313775263445325316446153253262523132651116752512446254612227563116465616413664732761441572653354334715557236643741116376474133455265732766654272312332211524772517324634522341411634165347757231254641223351521625325751155162216774737376447631364173317217341341744674452534663473734145173136224724372454252523125522333545561154623771426777313266422116656175456167241132273413464566553372231237164377511162437127616255562676715444426435771113773721577777662537111754664664374676766776155332243252747446167566476415313236463722225353262132111651413626576277521467616123224412652245235765631766756661223565753371713671574612511476621277175346356737777577752732724234345211735631742711727122423147564324521315511113314236471615555326771232613614335657527611477231231345626137654343325316456413645772655477555322555415354335521221416256144666154735453127661123365113137416335727516227117232651462764146713575767571623756254324524231133424312273365673511343725357574756517646366165557624117656745553323426356276154145557654467234477132167717714332111775444457236253462464366122323433376655612641277447716731173537766745645221242316221113233677515511366117235565511523256457421212441252315763554727245112155176333352514414671464411222321147775443624355164234674617242467556224416154654416766561425754642754336243732463372343314273766155617524237366536163333143432451142115527457543451723331675243256471153132276435536161352777425264462725234271654473627131762521361463225636114564166262362554672142473377211667376335656723423731372542663763723655432245517213243531616226411676352676467472726462563575457451426615545614116756334516444431564465342734445343266757535372551217644131615332752667632572657771175522672335633731126315564574673454554711515277322342122572163532227737122743714347553123333627242136257454655212366671335526633147766734513443562452574466443166156762532766446723114743617215224123277616443245646353534555477173323413257673561325672256126136372633261162432563363531434346377463713211464534163455612245176146546761136673323657552765615522476376311372623122276376267742111132772131324647257227146143353577717113355141167112726643362642733655313737246241552356675773267555376513636564532161751641376254715766242722515624131216237154555344262575145657252474426335113757477766474352311561242116717325375265245563733173236346241262732651465253565166312256772722335632612427176716741166776261535211511744165765753773772722776627611126424233632442631243333336317321174616212547642157533166111243263743764132735345311626537654272417176424716652324517364451262342441222724514155626666233343417644177463354661444443256473765762562541776466634367675546154543722267466446331666647425342125337656535571323522417452125221154752645415657331572551662525524131414366756111352626624266142454636455363264322525427245152221614552327637473644516533431744146523764161237425366141515673417262662361514566216223374174434353632172243732663414145554227666353563117473662242757424257236174344665625424541146721535552471136535321762437553344437216355571443365414751635373256167136625773424364173175625232162765767566242667261577363127426636334324137326356435574726152735661432736272737514354156164367157212526536742133577316225544663614767743651163343474226174673154673667265263627361723744424743423613632357753172215471143637112463766124122543753434551135745324732534157443631315752165673534127463222356652772477716576241773733465623577711362463353277477163433224575617745215444663722742414647417371276116663362765362523326377431541452351726226154327553623665642611157351313127653631223411275576525443563174772365417767117656631375664164614733674562612611513644432743533336517277467742732426262576752224266116764172316541371441345467117122647367611564633717744613634737113251244223725416414174476163263512737441744574446747516525735425621565762443727724676457354727523663472735447342643621746341412612363455313241554137324162333623242427342777755571522342475161514646713372311162255471642447412217111451673123237771166324475617722166267662125236354277657551543761777765171724542373361336414612773662612714472532767224765566675165357452231314414547156525424323267146351572345721736521452714333347375466623315577361427631464132162637412753534673156751227722137323465663247726425232453346652774243733446352314737265632637721555261536373524237367144337442437256332271553377235354717755237256111331326747674421132131553611412535676662662345457753242422662746646536124462146246552636114322316173174533756774552154665411641667171655362363637254653415572671771767426754341366164335116375566765137634452421426753575435314123525612341512654563133515247642334225443425723572115377233237554275643225627371572351365621617227714336232361342417737513673634626463276536653233147131411713516554715657556162476411653165546414214773767777147122311616462334746446145244252175426411356613311165672527346455216157275266417527326612636474136754164613555541572553657527233137537331516362342617375257273617773626116655272374433252112574465166667664575745371727141421777476476466235643572665671634143113153712646334513172561764377512216511665637221427677116435415626661651553566641741642415265766746145212462466453656131567455362276727377436474653675764132672112723743716656355554463166356667751465766664513377157565434312322451267255647261216256731563115364523431425545576535341417732562133416641326276251625167272441553734712754675612725533552126175511313427211673276762246641462333565736151347661566622677755372651454552575775743546226133654142237576751647545132155677366174436475213317354167465264223134576337162422461176256775417733574337435521166177124124565677347713647532637641542245634435561563167152346322417645532175554744343367635457737733677717675471136464561336241354733644543474516356145261725342646233527257547616532352563221576511274223116271243512751473663445666312533563611363571642231616466437612271652721362456611171642674575725174415644714574714212463133644465136514326677311723271675272741555435251152172215444625356642727473222346457662445131675563166226651114162261326242331277415421216331146355527433576716661524546472415345116243533333333415162632172647351376542176541711521714124471446575552662436647622123535315343332771366433427423634211732677123423452425771133425257253433456721376542342455721635564136475417441424661736637714672225276147114266544651654666247472322145757467254753731516544415637145652712646343745137775547234331726327415351646551752445477723136762123557655533722275645741463273576755753636122331235722761321661567275451373427542345534776166346256134154427414631424115715631566473211554524311353163665462541517121216771522567716476345412564677631637673253264144161542221572565657541275515133633626252432612367454474345261565151775331411651616365723543722537547464446624725655567154546721774744427323725613563477143635146444216147553243613153756453351235546565632266651256464433167114771661345574551617457213522544234414541231717271255277643236553314671734126246264773167573461712412524247154773414722163431443773246773711411152454653227363673327117321571517145443175125415737751724173353251136345347111615612725325753412514352225237237712313756445125377745156712644136266665641353213111737627133637455455132377717232325311333516655523237567467522655475437111716551213253232273561331764116117765126553165326674726116511532421343221637562361753765747733166332746132271436634244631644263727334147451534417125621714434746772326465441112135717721655352251413363726237464255267454272337572727332246225542462346756312452565527145171564233366354225452737423436335415747465324745524711262436362234647617542336712513621174743357654754741164265357633153556174172461264312621555532746214234654134353673275253137334366772471123447636347174417454172763233234512515533542314251661266513247727267643231553211477427417723616625722445412133262245215216567463255422274577117344156576666644252733252521623667376157736522351455772355551237267175772665212357751316164111236137647137557115124265164616621544542554423545357176525377153341724371655322157261242173121455566216323156275324431742354423273214246664513236712776234676225647255153523257141347264753616573422236412146244311447735427267642155137254272533666673555514562717613741461644233134411271751261263556635723446153524653757267225514566312555463746453742177712572242273351231436373761167272551676215544751733674372412531676175727575372376766325567732232142744614353674672425314321534752245541315614365541322754221635153537571353173661122336642635543127117246466155151213211474361662773627476474223344674745414473763356336267611136635323164643333751524433314537414157575152426713156532774641722337217116357157656432643421412755675615443561547424617253224421211673547216362333635654216551171361535566325641335223534321322551534213254142214126373145367445421262417214344246176422342316161271452373647454275247574636634264222463756735455213353655442157573742347243721652116474251556556153377325521617137771536575462361631763646747752152144125664234227335613516574713241742642254717642543135776417143231424753544641126421231712735242425122377154266131164354467324557361531636345262477736474446234153245347275123263256136573425143351224154757216645447321664377747151577366326174541674753523521535625654476426173274671154536512414372753635645355644163546437661322636111576344721537274157157212464366457373715271213727134165325153732661363722133345341156612327724223443654261524351566567111724446114361121163637617555657662546456116221337524624673461461635672513435561544145625163323325715366642422576222174513246471312251745316477331532323631412542161265617566512674125572553747347355757635717116422373461165213142656753544544427747315533355561657654131414366253325261615364552541244225764612343163243113561135362715573264411136364675363317736337126336111325253554372634631574475442453615324712441735331511161745313663536137215421264336454442272672355162223774113656414252311561716635157466261446476715157336431335234272227375236231745711645117633253465434257164177672177571554772442115542552251351457331317727254576253437556674143165137141176646554117276176513723647554763756633245375175765367664642241536411136655575274143731515742714666772761447371674217462255467146757147313433522344372426356364361215256412174421751234252712351472316261377731147362617212356536661617657564717136436441716653551633631727337244211145236224512664151342375432742166612535275374122147476132357665456732463332754272243267414573442345624166453712237465347117543671453771736441575544317221274455624134326254344727452474413261163515147155512224263323175335443713426535417623441615316742615316751634565667125326741755156776664761531316331153667755572363252647133155717135334433272431756254156564366312254616237472417425742622362232447132165736117243747333662115352576614416327364761714313415254423215666532567265367711363221553275674556645754412524743264342763643221124713364646244572336434111534555347616373137517133716431573361116716736351443345757723712447552462256124352525413476716243321577126637474546421161772627253332454257127615667676175371227654712546642643423423424353416474176263251545121352624343714753565324742217631767251726221516256127535747633132767252174365324136111616612134322451677326241564475667541675436765155727735213652541426625377367166577613334522767143734453613733673565222663273217612367752444725374126216635167147416414657342112414446222142746127751457474514176532564717125126135362242524234717277671522335352172315676334726155135227462416537651441463776574321142712353225224471531231122553567751126542464123216324336574252162314257336142463424161631466764125544511525163335133237366165671466137122632264111434554472363531345267544663463436225756225567624452521126356732664452275763746515177172731545133572732637325167676677214367762452664246362172263164174533433712217723752372522737447223677371421533231362643156733146446565541514137275371777612326112752626711423344174314265422342656731522673321132563213156212366263445544216322567722336157416335563456111742213324557564445411251436447453775331616665342122241425473337751674666455313525162235764341335334122671531224624256656312337162674275241452254573577431663672173612326565672463642775774475714276447317771357554154645414115635461623534752636343731662213715665146431726112155552531752264752557323535456753522714113322626274246431316275651752452624111731446323563473163377436631452545712645223464273442516512667143655231164553164521772542132755442276477144562144234412725123661277247155424631353125227123322442467575236733762474126242574741316357174176566636442375554161312266167516556451226556234652774133752734673651614653665254655477774371762346556134532451747426516345344471446362634213471353244771446116363113417237571536152542716631556167327444325471316573174767746554627754416155317177527227333111674662333241173223264376241642733432576723243455713534447534731373643465671256766232627773477537115363144273172726227216567634556324633442762264116147126774561312714252557677412215337341726747252776154253125356113147141146263374213641352711721245163377126556276464621133135362117437342211141126472625142777122254222454451562543125541731142261674251536515162565251365562121321637712774514762617756526641172275275575257565156253226134144353714664413473277135541353177426131416267427651653341517116152164136156212276364737111232156276723727541661427234344561675626527723767767243355612451557543325226526534451615567746124771223755647513261362242246242541774312165257477737144361215473564244454361442444452722242713463776453273337614442654111411657357235546113263532126447571776624747624445754341453536526616512326372756555222277643424315276421342637525231561445727451267253226573564321361545241315335442673654123665734171735756622376556144556156651372475214165325373127676613512742212732452373124546646531222316631134411632445723617663674345231254624711345751231327621246273227613414531335363415417635555761161442116232761323173267754653673146357173472544745364271657351764622542112366763532251446515573256443764323223476724172743513142715315746252531424234437612326427451145173265447253526616132673131255756316152267451443257357654773612633452567546773431467555365566644271361445446711157726544424427747175353711712727131615467133136257774316317522426627577523127244155776647613264167137221434541266656642734244162765121273741166654651144662367577411547235233131526634212452333413566673427732113667327656222454143744476372512212143247152331145452121752232453571224343516512361572761123471162274521212764322312712734473673133576736235651232424627471177374665467412172224566252111111252641377442652114452411621143171465536563661272551121213211637166531411617126374476526151153152746276277111142623565473521135331142172113336427676547121144761274324526752633734772713737526657472765764266661367452166142136267516275523523552621236743166776746576462134471674617575213123737627556773443622214275627332544536615514157432764413115131425167752633242315615346766573635455552746453624515343132172576343712325154436227644261472641416116331746424445542271331526676411434541523161755364327572563543576163234654651371154133412656246156411217765136354767421617533552422642542466324623764256153337572757343473434146445253757433312677634315551364327746454327767257234665442472225233161533521556612211146316531354563736222476351511625566442671351555477546574556641337374654713262642526565343237473423711422141224316276123556415141452635732154516445251535415323461745442667442416134227677521157345722121165327233654544526644761563776214656772267755437333743222523345643633761756532665261574155423226572711317164242112252671432665554166316416744344463742116476263611551513416753532127447411236537714255416423776111766127142136746453335367651573711634641245752636363112111372613116473631325422457172314545746341277663625571756155426274767723754143445334323241774624324316725422676422265471611473745467362135334317435175375346652527557674446167743564314151646731177267533553467145567215462375314333376654132145725745415635477142463351765311114577352256626522161426625357467141126333125717317353255173741147251213525425347316643353666173731141424267715755633377557467772176341166761455252511656636546767634133732711636117366241136134137533136446523643573427643446142224647613467144435667754431455561255336615523456155144527655535653526317271547454362144142615424166641761745722462666313676347756733721736637717315156437374262256451654431542473321364223743152631115652726276631767422715334636637525711741623723654755627413416461252257441133332631334465136674732367223327643246321661464254767115231564562116757146225652341362215363652154761775526315641711131761366675374574457417175367414673733633453243772632742671652243546121377623324417515175262417173676136121543114265775435776615316222134371721431221173613514435256572143234411433464745435711437411724241772145525223765556633714176623124337273625114763657251671674177442573165717326615734734214724662751466251222723617314124537116424553572523134424555151635555511256526712315167644543745524364423364376437146233511115766326157327147624742555236351767722641772617712575665477426436521676116377417761657337473355237431331271143332516442473741664546772113336573644671152566646332332554177756243734152437324257514661377416432636344517642251342621162232765362317661744373436632131265454322553453457217654646253372151513761335713744133537655116424515714241641245751233217632664254165412576633521554265351531266675445725612364352177646713132631576312263312157351234245642144335265325655274222355763557765437256721426445761125714273373745762655736772572523335744313577416615511471762143576374734424455355125376574621477227624375143572324154734526555671774325231612744562175647425326516342175256453222341126172744725562762517364677143355275362154532142313351151775343252731137524147212541655756523132225331423727132416513471453665727553624325442613474645113362774763345717654745315712412747351766224716774471242633174271327535356151751412625217531267413356224142337517613335477635677247151676733673764431172154145772721277713274613446457576325114326437531167452716665736667372643617653662751143131623673543627321216666263211425511262445641713733733742362545315434662467461175317774244417242715575644715724474565311753767371142645447132521371121227636666763367733147311451652115767766676125231444476654643253144142723644451436215264661225722346531725563746566426774127711254241344123427377241741554456674417645347612652565672767544445116163531513167257157447334177711612274265565523537665532341431513744372251733226375267324461643346777324416741772427463121326653654575257244345411456171344231527111736744577251327236463776361271375172453517643566535725754173233643222612677346222644532142566174515677166124746233616224363373665555475417114736326331171442731475356737732344377243454627722263112624511755415432716462474713325577261276637412773753122534156637557616573553144551753335754547535417377566174451655172717574457332253241752327315235537516364216345662177242113536413474332754517416516622142436461741363661353324216767315657627613652341476737452361432217162254452616646562627766231352472511346546435313516515421646775377425372255626267751632617521451423144371162112721273474566735177425154263515117247517255241642713531241621433456527556572777172544662165331676642626466756275353153462225315372475255264774643367637141612432761627435144642167154767151334633124761475251351477765114247633234724163712241317327222536531154657366677114156217321515461576265114763715422254215466226415224646446746512136457326232763626332166663545757526657574714316133341327724412574453542244774711254217322762351627363627217717136657633721267461317762623724127776771374532462533533735426243334234464136475552245441224247413226576311242131265133254572652375154714232446474211525116474723542153566123773524567311262555122346635541242413173735143422135461354232446511221534341714137575734566724576722174531622335215121466451241733242525721243765476645523646743367552343377776556534226612616145222367736136113157413473565473316554567474374723765326774653115663452512153754453224735314724524771353671167636347152623326761511645325545437275373674327136217363136572346475245525367263723653365156324254171643461411713311631545571136536634263434546776262345716222715567316543226136155372214126337715137715246163767521751454426311214126533552141233337576147162274725572166314436151122745655716471252477432714613126324271612562711151215425117522353774166354544663773644456431666366675633227715316773342315474333123715321321243233577741571223546746661633161574765161232263547354244446665136444343367617173331656213212716662427766141767414511443154365154337336344343415777253461117616451524341715457167176344455457435477135246174213222156435313346217222655665376521746712442177717743142721552424421411766266171275611114161223776757246176726155636157456512113627745765576413367274253124335537535434173754413533157463726672755527131547211653361431642632727612726212133111547773761344557647153773277521715715323461247244343542272155255647312767215231765243373627436232174314435151356213454735161625245766432151316126573117717112745445412731752675654365466371665452323416524624311151517551741475621273154547171316367455541612565615122667716131667734421571761542363663573576575461233313411566716415754424275753176437711271773753462123644342762626636146157446714136523251456731533447464427222634416134163777142527565237342546226231751267275447535251216562324141236475325272245163115755317123251711652371636335747644316311726141226567743516313217757672715733744713127477232652561657262754262764375246361657146233352457276475125652412667574417735314234274116664244423573145251171645274675574311763444762516537715544334123545654317675767733745422145561146533364345253146553215433272225212547165714232176431364614257161434554445761271154313624431457413151615424534652314675351525477115277633417714334725453625574415325312663573227132616372742423255127315675221235436356544127354167231727543765527455333634672422434435413621563531354651341622254627571773143435554333477471616411361557275447226752222153354215353532552326451246451616135666424777255527354562547531555253214624643514443223467443621356577462156321174437676544126354134212417263473146136723435363767521163211461765612523156675315477476717166265756137545446271147727522537556364111255621552657761745137226145666774467656144733221745766714574464233221135542275372171173462122545177214271321742252472741354631442564114246344572741355322775253431132567334675271247771362221463667237173664325532441671212257537654563753474251325424536653736114464171542267332164657554251751531137313533476625314361176114256213334711251154114454555456175635351752111226531465242621521325152251551613476436264545537762417745114215545332357625521517761174526236114556774777641733722721514536531116717521475567763276446132775716721773744422532151636531742553546636243515161376462455652736323176133324234364243511475671542163267431254674241612752542626235645521646437163254463737132166744425613446365614362765617137723365247515353245575663564666561121644716443177647347725415464576573365333642636673766546375266257425242536632521217764735643551432267433226427642742456132372455764647363144321426664571132376776473421746562744633312326455456336661164753147523244316263732774653773567213176514144764376576265675245255564535152452132173732621345173663437234513715336523725753662357522546236541473346751466644173165442276162233666455623411237447213443241575164142534176222356217643372552251555731541363522553441267436644733645613143524771356474431336733326271526161571737671455527523755715171671167163253221673656363765665666175723432664154342167667366756755466123222727363623673532541347276772433636576257547233317453463375447734614641636541212247625244622725426774266753263421473111772113756756314223433114143575566177575474234646123544162531427337317757572277122465274357523547672617667176217566476134725472453544532452374242113727332761346513277434775333644245267377543535254121717442637253163133171443171614675642245172472714315453773253544342565315566757511257567776462127216736614423465623772712662164124627622364644336737127425535347643624164652374171224155757574461152471256316736142567375344723721277426261264272451317745557143273236254214624252324431115222642376235755457176337773135641145476222711557466333433145633757617441743722677543277424377574656522727222312415126777437427775761353314446727632433515547557266414645312315261543715562541476437124654216645721433212466547412415113624521213455677246712653224136321172334663563476411516252755527627152641227411443434451647421413431526737712145422276363236371543636521633747412723552175145122515361454742723216575616422234476325463177262614564354137452132155515134164445723351175732355553435251756413115643152566713571133661766621243721326515475766711476676661674317453334175773574654633632633455522754564254534233637312574152525633471117574231513455626334515312751173243667131516261224525457544754272662566636566711463337214772532621761564554345575727747341514716116174652317156652557614766576321241736277216263431522132712654762164723735553127273426717274674713514211666111231413273233723344715436525447552632263426117354745571464322217373622263174131535415564117327367763272521235312743623343266335423754135351773217572135565337263552375233224554545741526251311766317122455133627313576433554663623525173516167132471343722421674267177467216311462525111363454113713642772534673155767116364175315714174457157464274276146546377271711367266246765416222776746756751217236163762633555165752751766117733742351533222621536125124634547235472646367462445441153457143266637115745713267124242516422741734645442154563476112274246344546134711225665346141477114751326232744165755671424463565252414341545264763554516364734463623441626455245532273733537375571145331276733476736422115735516522446577462643555321621316267751317367327414162513515747667674145165126776574646331244133213636535247757727514541554317621214161615622624715453441162164376615116517672362237515624122552553255735725165421561263616754233761454167617452422647121737463651137535545512145242345441511217313377243134442256423177342453425765772375741266732441416645226725526767473622634272242147661564347237127512116626753266155335763117131723323174673211236151761273176277432133632164226245434554174714777374672717443466122677216717537471351463526175711272233725162141265444627536421437564277715133263621422364337474562112174726436631762341765745413644144546512315415741241644477763477145725156627424647734473372752657452161763735423416266546133332361617626312264435355131134457726771762714223677525341355143735744754256672271244612157553166574372727617731255757164132452332161264356452417375214731275341547777436314465515347733263611165275241172557432376313621313333152616726375241471332723764321535136237757675154227413721544537453265474565274715165457635312356577447715646241156624676531666636664574562427435227611654752656546137617251213145147236734322176122122741152467373315122643153674216512511766626157162246454764575355637727712537637165632332712547243336221474571416162435536724742375231272642113722266733744541611524554152253445764661165642722275653351575163762557576253366615373632113631137376456416654436315667711365571532366327125571321121221356127213352375317177233354576534547567114354126236251416166752426315417145566372116361266263546316251265745714125164173133577442466574412172514323744467741725263144614225476131546215213325244452252765435251425257177342155434741147713437563337231365573566154277267534623267322442232571426735165152545273134472525774255742542367644464667447622422236134321566554313712756657123447244567656634467667165763175531456146745747517465414313633476654571514271243121652373677146734414454264412613111442731755641422777326176351662626131327724256365437247366555751565721733442312745172131676574753564666244565771672724124174673152542675253164144346767477257465754133752451776333342312431377366611377536635672225466722261121612131125627576122767672112334525642143556645641741737341473256643151547433311424437454534242237555733675337312754722575332556545342632566416614416667413662637474556126777772532421572271565435724736636646722374354674654516322625622576411641316116414155711214665156621176241161141556457472771617411512347445562646575555764155125376642677546743722461277724446276153453521334526166216122566475324662234471243762673625774535466156471231245544735416227512452276247272327175617352375266534775712641174114515654274634517316126473422234674472713576167122723663244467261627131372227222426725331111136211235256571434677411345366561413635364336371173754271747626171555324157727231445155263355254422165672575511564373222666315151471157447111267737352441472111241357423345573477325662631253317446311746426765127626713237472435315573444253166157662376255332263733312131437335433764622564713377741154121163647337621777577241336353166275662614677711662715141715424334134324114114273314131122773446252523234535376126541664765331347431744531217113177366175531756622226663114135435554353746244145257146547152636373142356262675332451324442736575171335165444211556521255541322242476135763514662443562356672736366211771352741325564133712226154174315343547761551364566221737346161644212227375535323335341366214472124246315262615237173143675436547265137646221735745452751535322441253251172266673432741224666122351765776225224561764176565377745144735567311661176576455226222645442222242441461441317732656152626132267525764747162115473271563576735617477173112333772432521162165565646546251323724266352551661451244222137172564213257324524662726431545565145476613656437136337273367236643412214573445442324333771616673244555145472347471145435636436143511236176334364517254137612617262325235767337171136533523175714247772561534544666542734234156574473753246623212257442176575466136334541433143471334654625373176742536712227566523221673433754561154744157746512243234677176556663456165151142257612262312367155423432157354612573721361512536462735254211513162374533714166225422247562752361531224526335251114341211526656142263746672436537263325561567313622336126251145155437377357227513736657666114533465436463415366662456546541233473246714446215164242226114127567123735472322132666172712335414315712452614137216116227543224655556726317623654565416374715313261173625717215654426465167722441661353155266754426365175216345443671375725523366224145576544227571627332124442274612471364625765151123325753372775235364165665473615257745216575432161617577241641456364225166742161242311347333472437162572375513546171236152332615614774244726313413526335672162644353176671631163455322212427525163474364541661136761112345336145415154522511724533735272725741473377162353346731435164357153133574673737365372445253623721343723473115755675152677271663637431671171726627424514644735337263344565776767633325713415157276633222613613675231743324142262155466761251441375472734447657165535425543721257121234711776174651332727321447342575177276227775731243114342317567311342263252766213433261411571642675725343542553735445426667654143744472165443647513355335232646353734243176573465722645372565523725442753632261673266127217751364227436622241242557553564462627243316271415551137714464744226253613543775462665566235732354213464157347125474253226612247767247744772723662272523414741631664751362454153363555726524676676364422671315645223134716476366225671251411215126333134714734666467415456511314357672473217676546416265246371645636276526676554334354271122225172622515564553125563373325536446531721561236542427751213766644521722371325312454462514214177571574624756517756534616436747626165661275157256131523366353456375254213112147643635353222556417225555267573461763611234431472415273733672351367652166441517151562254454772137725245171262376467676353743256252175516736256335226743341765623133624517435451262777445435221633125676662427657251324767612616221712677153157166237637612273735247321435754163615711713324737553515552457756451352453726511477747626765773741165444755526765652734642353657677545143734543422636333661157156224641144531262355222577726743656344457142172421352443454341637564142147366522567735212735132177523131166641131223654167612723165472617475621644133642622234643424574644547623246632235351136511167665432324752545161625132613123121764127625772677673515117323644732556437146427427672573444732545113666574536412562752437234371272471441715175265462724137476517156234356255774443655452322314433446713631521176463221463625377533444727173312162514543247666541115521641162417552336552641425637411416614766134461257434616562443523475213121656114161661437575276545356671666611417476542623342116744543743733764134771264517132627314772275674327121157542544146171667122613354357475452646444453543655747274721672456642576345512177714723516716243741231266641267372613265266174571524652457567617772437255165545531325473563654565622747556224116132611266565253146242321253565461562721766424621455717125514354433534724776563541351474356714457743546146114472437776434335674677344261772552725725661325224514442161272556651553343414226667344463522167765234571741564444411157541741747664343347546174554663731135143232557225161111566364651755472115373314234354443361167355235457217542276633376746244112736563614662712675235132656461654534715673114274127634131167256741343734536165576663216425454361524226663411172157512455333752744567446621141267342527343732236576553546662711756227265552175766654232727332537463571467567266254677273346522577151316266225253553663227713352451411431253761346634147251475744725161126535663555373417457254747466612565455724563235263211716765757246113616376611437761252267766622423114744646112717136355455436611322137433334545651675453227112233557523256642446526475726727344721772321214351232273715627544346347671612351413744334137113541564454545714164477234746667343323161556451166446552266755712554764252227227173152362277171246755363524547467164414543442667564334617463341461722476752352337163655533171336342573412546613722411154574737563144414562563775336455724411577124556456534255771745451232413324173137624441151145724756216452271575457124322346251545576445654144522634367434342437376254633446127413241213641123744771474741653634141352757161476115144651636321144213511421562472227575672525532454126377457526141131611274751325731567636622635747232251646672574763756747132637744272377277357146454351373676774324455415452367335664624315324646425165534772126714417142663467321141724444657451222146345513546753766532227165311426343233576515723675211327157331176511772143655254165111736152372252362476763611226141153152323537667147756337453457565274325672761715712556634262231752423223413515317665667216433631773425176547211171657612554147257613422477422542641621717524531533166326367554751753264235712164463316156235722137455172513121557212237242655151237736226442516537764671266715227134147113264247356656774675417423131132361775123617616316141213526621761177612114275735753764355131347361351512321735632332676523751116145245561675377624125776373425323256126115666757452353113544416634636451256754123457662337611664256225252766512747745362252341166672427736676174711651177343442443514521577571212367476323671235426211251322433663643666347363126156275436573273676155173131434252263626517236525444354557634461777313274227163746464141145613613743262775725221257675171552253457117417322743771157561657264542564635567655254353442537456333612276755653511137574761735651243563351157327544535223226725141426755174246224576431764767474546545464771713474346445144123477254733533545176523571214527256215727363737557322672623414533364256314711666712272413765537277615547231326226441521227772122774457473446362335311442443764155543514251117333174241525714522315765313314237646374346141524755553475145672557676344251234732426177514473651542575334461155437241322651246333523456235234767123156254277134426164716643333235654561221345716637337233657114772457473526437323266211667511371456517173735767225237437571641617651577162662613546521562646141727716136414516163144222515523525435432213663513717531122765247623557172357732242226337626454555743154271365422634571664531176713417741167732225716164531652563225111331335556457365142321516732553676632527466435351613154146223514417753133675343433742356372562234243546737663336733171721117433256544556436173765475477621574223217564441341547477351444434146551437273341534624743177552276245221152537573364772272156417423146364446417147646777316166221626564321373317264273124742755246124557611342271511232647134552564352443561611772135422335123473747315663155167412244411312643257111617325244174422752224412726741732173616226761167371651744752164263645677565614735122337634144662367757635527112735361353167467616513616552474577325444154712114174355323553333265133431152363662437171465712242146423547777376633553713525752367132425515455341736337611427556672744615564332424251352614562442656347215547172631665247625163351114235721121425523447332231677611324225341412375641674237411411534257714166415112463125266236373731733343125725175376216731762366551126347733642413334137247575344466212326513144477123147737664342374627511125676711415522437273333125777722621612754627772711355656557472664146244737626136275762647717226633657352245757716477773165727613261326633441541521417717622623152214171444522673133255231412721152662636317517714432355426722737115412252324424767225167662266311151366627363673726534634263714721257143162561164647434752252555614727327515723421354153217576266667623514475137176675135275734613515267636433544443146656551143534453347322517143557456324541235663231253335452737165737475627476121137573257352462374444236117111325215533571141371146653664575627547224613117357563547137516311457411772473332217664671651412657531641212644176255745724265463447544765153662677463176525364737124633432737211341661553372716731415157254366323513577221433225476114222652514166345461533156636656361556727437465233377616511565335524516552512235666661452622564347711675257374273763747341511344246336154215635234442475655613436362271623415232666746424225571537767153423245336232775521211364274311654271724557166632763112642313571327333622721624223444732263543665621323526512344517313533127575371424617671734535457142354433354517117117212756433541716441116551453573513272755432433371422376445635375515114646122542513643677472123714626214735371552157446577721412174125437167336654537571514655265677533532566463136116367655464263236612172647343164114713652371634525625222247665477711277536513364267611236125754656775741733362611772115626514112122626713332643733244746621332544136756323671174412227772246323127634675366416757261372515351754646436364224132162122412237445741615544267763373524666223166652144722342451771354143665113112426121266323424562367566476171432245463335771366616774544564627244624147736215276776463232635642523147254265776516564111313766252675524342243134773424454764612773655222535157547211656256637247545256343147224236423341245162256664631255261775557116134652161756532667477661445455261656275213267556537416663337267466217741256335211162741315435463414422446413324544731273745515156511666646377764351577773655372354454352173211537626527225154222767515715236421314376437236567175245646572344676245171225713734447344123351731564475626421123451415121566563751322223156357525167512661657245417521246765757657651241235253724716224123632621615122155773274675611334616212263176213123352153735771362422531143764366633267454264434665252466666324211526675235717377214354343175636711762625335366377145573274656461771152716644475412373512311151357365656443223654224476736254272331136763314672424364167775424741753663223623176534344353734522637216431114513376123441733515767721775275557227222576613265165176376117765717723213274523232653612423412323336667277553276564756137472735467365376365615654342264345651317445275144535223761177534221362337167664451222511622675331566732737737415437711773273736715621115112753535537547157464364166271612127364756133742171441151771772274335742654351652125244434443764421125323151257462315651415115451573235534651526747544717617455536151634222375312257167741727663511664326656377525433421632522713261534421351234117442546111322537724365433557161736313124146233424153625273313426247553267733275774377136557722546615244247566467721723612673167152677233373142254357647741467575155777322546164633517525663533331232364452457154434516275652226332557135463471734525535334555321477522351632736317265727464236376361515611713755775476447273133762743634645344253615753613216525722415213747375766665245567442254525456743614322377135714652277663527414715351571624514212323421664725436364454546126536772453442255737667224662573457367526172421113111733433614253221274114446451152366742233542273334734471357454774517124512621353766427644513374164275547633172467432327767332631242216312621777744377276332625751163625271417523243173735321725244646457411573222531246161162517363242224373625711124122121412432756177641232732753556172343416615516612625721226615615742322273765555731432665566341154475726326713676753242131175222664555417422722521255371577332631215767121213474512341322444637141647641773342122257322557252376463451547215317634766244173434272546635645576473263111647374634112174571442411741342326345641442553232416541655771144161664142327542174151136647763363463267431325636244351334243672357661523755552475133257614165324423416174772241754262363773435277457367167374512242467751334254122161271342612326465674631446162477521654756171751541143311227377352536334153162337364716231161235371244641367614653344177226332162326672141223621246565516442651272773311534725233721673637135245556127373614521133333617624442336252271552445557173475466144276223343522767434545225655562212234571153442327775636525274535641422426173325416111752413255143114357166532213214211552271174316155155142262573234422652662514432151755174265572356433632224657174262773431371547313677121427536255446721143216256547651624776623561363477732651535422615315167446675245341627612553144575474352352117645736631116513363224763221423317723717137711441673362774756217212513436541676775335526233764116371644537627521364147762372724643741314377462421126734365476154457511242111353456262712561567135116334554612361216421676745752563436773475633155636726713621771443344715511116611422414766176252616421161213274255516416217144335366316546155613465425447355127657521375223113563325763121623511653123645256525257666311464754142564247664657364464224464761416754371471176135675247777317567367627777116722513246337471346475371377217311453716552513557517356476431452731232111473767631575546473441645751273442631634725662532177374163223456743236627427672213142452173357355767553625715235533711122566614313471673414226172474626774756321552753333745755235627627216237426534166354152575467542463427452346744673311671457524774336314641545125567651735711417144174477644367246233227131171226626475573322256761424547547712575545314536165674747414472462652537362756764463257322762141346613632737526376534656246373547337624127773733626315343272647512665377417623315347713332627671267621562763214151742415617666176171267355617326533775565555565476616645536662435744512361146716776564347235512476151416524526316364622555435566515546521263733553355533477366336713765775477764313175446375327232527431167167612131776536472314677633742157132254444241171442723125432547643167635361577734247552324572576115761636726123646614137621767661511665576511715766464455455544515615465337547235215543221775467351726453326442262746372473341377371237672446665163133463621157716233224461351277572142435532534557272641176116277474756423715364474577711711632572277742433271632372412473656737247254421747232363534774352364412341112217223553125516253513344517721342364641255745774345672353356474642346465172763426217435163644232555533443752223244117727213146234117454743365611313475346654576211166663122514735316143721571422532531142432736566463176246417774146254516722611661277725577577114732414417677165176271141137142446616361251256177121126331336612474433452677426521544377544325764546714365247133317757734565265741751571326442112711734573233726713272425272373624736476732234746355621341512163576535337543367125777134215514263747672667327321131243765446256652643241312245262415715541476265452167132546475546347125254114763272325462222215742743561312671227451221553673577174453514114127275427576175345444123473113526457222271777645323125365716452427352471512666327733472312247413542622173352324311757171336466142235444713255676774125157627635261626431655556355167575661753412664537535372147646736516623363553337223144357343245237723452127453415731357325753675677255457326767473632554363543334451115251141111464652471666332667717635131163133527751231773263164147664162315766773111117527125633532231572472211712133114127674256413574134255356462173675575123155444147576434473523274743666374752577666431162453172677366117625716664437647124434614733554537431237722777122466167554132625662626717321323572421476112275773174166711743423765735637256656375175776714357745551255113111131531432443712616555713434144246233476633343434513214656262577633172776422776456717476325715661271577442742627627767622423212432414461655147123111214346771134475753142656662214424162172324655552276465354674247657176227715564173151616465713177726651653442762461552512423633745622771255454723172344517112476251663727555367617744526427656525773276155713763177642473572355255664413123433133116367731376114514356651334546751726122151163654212277234727536631553771211665327447564165257133127417631137553536576224141144465547634736723277277722436642321215267565566227141252326173436657416475345156174311433454737525676546372711737451635174417573452336256456463542524335676655114346254733773366447162663552473127146653154513346365654343412724141725443714241166765512144356752164722333756276274765263527535635436673111721742441251634676573256247667663756233362444735576133767145244443465624251543434251457565311745214115522517243177256225655142574216667252117517624457245162343653442651271362245723141646262467143332443572126537155131741127224661136516711665612326524535551341344134726116676237722365253311446151663464465312313553461131176675763343172622163457726133342143631275515617716463455462617233437647422213325364623561743667242146231452773631224472677357215432344412573277312662263311242714332112464723745245474624151251725226656367655472142433231446557472367125113543767342655733621552721132643336656672261665356344556762167423417217426626343111665454763745477427473454371631611575265671432313464732463675166145765445522752421724263552252176765543315423665757476145472523521375527472777476556454115476652171664635224175142677321172177276476261614423237421462563172732763671773345771642622212512614212463563131527614217437511112424772452155141223753726717217363773241546363415622115125135273473727165734376277512324737541221622522336775714775221623771722113467533543334745656141442535755416471146413226613511664741455215165373133465346727717414561323232153367645473374476347725267513121351246126355725552664523473774243261763631533222471143324635451171111414557212353561134626365564516551337357416755171462422112653641163721761667312551133233431736735427621116151236331565232434236172155356165311345343266421755764312736756517644371726552767666221433432374277737132717226375327363736271637533546151113742575535242151243326713521732236577462216335442763766251453777561547152624471561257714762462551635634725354434543454263542726371754457274751335674432716221147346613534322365256523123755762726516173535173631513126524423624475415171612375457172744426671241723532712342717736234677566614727273515732333236252742622512315246526332556211146433635726257714567522677421635662154767615716375347547511675355463261252144113547515516766624373522751375676242324714714566336621127356745762335126631371334216331266273672235147124353377122656175716316541354477726467462666467362223711735574467245113362341277412112176666426352713342566626677171321276752711121455634626415416547661665757171345747422372244127116276774624142655736157413725136657656252756154547666527221135133712731127144521516371313526321523116232245537671647771442315576111724142724724122121256526467317472226422714625137365167126757727241114215677514533351364251163117317742532423166433652261317632553661135376716661347455627613171476472341133111135114776767361337271524737232456367777776125262122264667715153113123222725634756216674765514335536247553247756616417277767414176724171526535425475316416557167672371564546271147611643411317416647135513533641532116351324364352475245422715172373337463232651117634517621521751224373625174124171551652625723256516277777322133321416771513122773622623766312545775514755377561163355155625272673453251121717116455274655515674343662774114226266615474255645572152251772524642442212731535314622757257442226453715327473144525733752725247715417232271574266753457553477317251274434524343341515573732674731752515177633177241122434735331346611432316635543765231725551625617743214161665273717272657752533641251771761617271211417316661246465554653735765117257322117324363732536233633453461532634777425732276222675153422676263552425331567413774412154333253531773627676747341622721465113357456752742747673165477547247616645652755352252551211366222324122577775623757326451421243565276367351153451474443574621161721757616633261441774254736146141246237133362425536164551474412445452575133216153161547626361545414654457117725334512574532517347745313314327163654124466751716772544276732757335757426334425436522332146245372176141113655322273447753777446757574715363215346572517117165653643444172515341232474515624323717445764345712234474145637371672637446764665221571316272132221524657566156761157217237433564755334473227227245366313355635432166537161224131777627165752615234717627141545555531557454545357762163166344122676764142526355463661271226741132141446717555413771232464252314617755555644375615142217745215767164543447761563366621534454343242727253352442761554737315143356662527245512672766353424227466444536644424675715154426131716743536322765555466264637543754551224765474152611547323317675364416275654352543736773433523261741552356725273676515147413753146323651552372653433346371675113734411567146324571724744244155352713273177732471413177634342171373622332434563644255132675774745246472635215572321135214125532367236423344724366472124537312531564526153565215146361144714267345611536175727545313411711437564466441451353341771451562646614363347416644362472446536112674442777147745465625171165665156624135142145514377726236624533516322745152734365476421223727212135331255542117567522654347377612436653421641737773371636565655122676352336541531767254743541343534451615551534743151456132167544121273662144541256335331657623346367665763457674637573557543267136735635113773467436725711341345241724545235414551453153316554361374161674454122161476736615443514312313147663213243156151514265727151555433155461717614666525326345512365773453643545335217642675356615426153441624567271275366733725556364521534372332442271714415253722415677221553127337441112631344524414446524726753716131424642233675341222615512124246221676122513246467753443656373225424237577725774763237616545176532264255251157566112214761561544673321157165144754266564743221512244441357164572322177575236477534261417536177331542523345216372732162136156712266551216647667772112515424335645433643546526626147321263626474151444737712615522464514266147655622235326527273451231757675552345677323375326573726714174762136716741471234123316327147436751643557617743445617551555532426613161143146513475352531424577451776114437321661517764135574453643565141274362533443746637465753432155365624111544151743774612145262112615335522337344144425532467512774437312435462217743637765156366742163346216346444727627544563377526143775731716477473356737377342157556263463334464612616545572111777715264626365746337124714116325217647322367766612534344766717521625651176226776263526324136771173777172723523532125141654565574773114416777443556572661237616527231571471535724563162174775747773143224367172462771221631427426144555115125363674625717153136752421331144573212564364413637645716133347631241421161723426472173727454331454537645651212142353766723457435212377164215422751446252537573324543653313155353321445517667222617266526125662334362252331254545665451463162424253371634743531421275335645717525265347155432574533455233644636444161277243433175453366554146712542773611353574432761631255266452641333362731414772776235644512115233511775745456766671466147357274454654352226124724263727656776454732577732745447156562567556335641222224512265364252442321343141353576347465225653217451516112257621455314147745267335476321556537666436144237166733674635714576676431455711111125314761652232211765723534744156676316463727133321134417774522512454322724721362466737141423663247562164666626264771675757255663641261641623431327321136153733231456552645121244317412327624147214173356167214654615257143556477277535344575253754562517154745166232677356175464143424333146654467761726745414231514236443332712171263157641355345762627363473714734443536675441147432372541232646214557457123347313533727144432454733171724451411165366413165424137436541216246356726766375247663636514734742711512411242156146431423725513613774345361577515352624136577171562225765235326764147652441551621742642365211726544523656125117324511641552663651322617423345367757245333513277233424476123653557675437771222346512262265643131121653764726353334462711466671624673371173742415155345474475657251511722426556354122672431237155137142274353122623724351564412316242573227543724427754134474736564743365441633466375177551245233537166633716466425136214341754327337312523562324237157513722554517531623362434161165257561736411364567116453761777615674117742121571621657165276371767472476711172263352261111747746126276177217336754114225422537442351367222344253675217163445411547666711245763253615633367727375464475512371636226621341252212652221163224326231233357475636224456666127553477522166127513535364263764142313275473315476653473121431136477726566737677464145351413527366451431345324374117644115377426374431676337771472475217646512533215315131247371641451455246523745615432555526673642177635527215777633722663563157461555436367277254466566234553512776533472422446126716631427672161734414546614636637423675765175311742426426123777653352751577222415567331343744623261566545667742621664731434116445524471271215417576111345667633315765276237767151671135523516151666517433433547537553345727735735715757234611764753326221224726521317342733132527262724147542523655512115321514624236643521772472252474235427123535532725716455564743375241352546312674416253723321667514632217151331663577112455534514377411525542747221323677463744474546622576673725142343471675445722725174174567414547271367225631223633452232162656676726751644766363631264363662543456453541236175572617357755333577346622636645416517655544217651624576771655527311365133563562553234234322273125263176346724212645257723132555373573551564214561326417632221742432727266527366531463466711226353565474366336271341717522734752321171447462213441543534747436662173256116441775142335132276165465614625661771616753665775524474274557355566747654233743636275625474531477215162616274657617512251625176226745325246743125776224427136661464126754547243743675337334333362713617365413671361233367713443654145274144445575721241351716273737451175631522314342376511531233371321174357411256317377454616237462473241171336167721166656572631112425536672611613132617561763265337114713114315612174262361771444555157571322213332642317371455122636617742253416773223353421132325316312531712612345664237242475237261535546137263152575522772624542715572475434143323175314567254545435665437244476625456236263652414273747153523515364277126523674234631556242513341771714755346771465532555736273473514272126726276751127734654325676335551544563362514517115631422246123372151417671352372265327653576737245216265432561127552441117134747572311254443644633167212324717166231357723377172312233365666716722167761422521762316646345355347547456522664174425212167634451526574456556357622453653745414576455223717756731216614171743323361114415522416537417131245667136346771562643617662714732521543577577656252434423524327411675255137224131415751432774154245762616527243474372356457254711517771554677257571126174733435576575664344362451674575371633374364264527257425615364125217661227736321446412273132545267255476513445511353574177365124152623764237711257531241171623337632222545646163136253462464127773214471265764477326656234735146371751267776457413372115522426456563673772657721351573354637465444635236524526654743461143223757454177743526314121467515227625652373316752524225255246171152551111342347511132761525436543131232377543524741256331275761474511751635216614632575736535664356355447162164551741544317217546573252372617465461556226231224175533772153223163251172125246767533142261673222446556161576514551766314314626262147757141721577716531171563413621725643736125217753254342514115211774417212132147457773365716427447177232345551536427156646527464474317555323475451476254146326756421475231411346417436142774572544514431471644616563361551357523275731772176657536764753777163513217317526415367376774374424665336266242213642571571133614314737766712233411771157374676437134744735247522523641711577433556354746464546731216336516552236264552522276212443275256734356366754327447452525246763677344364262614661727162676575166222641477562247332252551332257763267427515633777135473445652751376252323127527444375651346545766723356661532616346123257145645557175765752243176171336533321165116715472537746747112755411621432233164356362366476575457632716341541217756375246226774167261124312533547477233746645344373526357434621752614211116643314766614757351447541363363251622321312721647113177326565114317542764255363264614636675326156724213542417626326713673324343244777263534416442443622255712227726645317762626172364512313645547435267255541367627471542225673646475313171346437461445751651155614446766713755124351167144253744517516521116521347465411226434725176151163755773651511734762463314213321526337734715212721161521232575751513616321243345354436653233622714375336543167536371267574276371747514467166151622241232643612677757325345254456664116274555745734176724541375375775635414117614214275562622463252736516117271533144733235514132436216236256432757453176667413646571333352334533671212111252557521564232364147331562773221416451427132471176242317511224354222274321561712635276357373731353625446526727224133762722225364155522414326431144543745361236645427772444317424771575235451334217176432772134544615541376443153163737237533311773456477454661271574526572123114362343477766215276567537152574133377641657461311177264311451165526473677646111132257577656174646527176174775127236317314215671554655474275617735675726447137375754543263754761467353236253312222566215523213352421634672133444625435216641117442436216432776551244766743263127374216751257147263761676314626655377215234447366675176626322117747761524151211271617573524646744642125533754174365454627415371176411165463713532277771133572773544563423724261421337634115476763351123316125261433416117751557125247517413243375647561657736752675665736364523327275454467265365244637655241572531477155115643361154753677157234374412322117555564312611616522363734156377345134655755246231551753462323457163652447354217354443121344572527216362421751617443645173462744756526172266466334132542727315113766615744614656353437532673573174754667262646674257144434613313622371236424324741765521122354645265222263526212321164176343636556411527271223445664275131435472254446376521156645374111253614342675526477416473133643671372736316271741723752376553252422524546366573714373623412731273466134172743353172355726332362747654264552717411547353275445641136564232443475562537147725411515363116254635315567565466231311751452417163734413462142165126343472643553147631276423732434477137334722347222342314617743424421463154471433767231612617261634712327161245545467651742771265565717136152626375463577677126574217312336523464223513513515475135767322375644367547122574243167756721351145463557662143477115714616153157737374364677147241752454362717613734473773726144242511236331331635366575116122535725142115231434153744455366633435342662476631356744421161154521265344513517635532275413412253212156441112175551171541233342674172156257367245345433645372472222336345214341775647134765346567622647472125134612636444371147742326376471214716213157626724137371227177212612543242134746343213426435457557135543767463321651224167636524641416715644277364517225221174677632423221647577352276727141427574656371364445464773516533516455754714233776446147522464754723541242755355323331372452266652135362567325266513643221437414637467545677425477773315457412115145131637663444443713542523734657364446444122457657345416723411436773657461527425451222224465431432117155321373141262475244726162364311244275571631261716421431667222436156547742762264136362442573641655523636245364176146414555261246132414431177621634565134652717623154621731733716454371667261262561352566552152121667766776134414553721676724237325214215137672346541732643366221142674317366634522515672337262377657311341323715157556721146417374336564617327726114675123153723467445727151764714565416615317765622535543753353632462463124132615761445133457654233463775317571311364177446433755435725567556711257576634571216752564344332243451347333773715623112637372537164131163464766562162266225461476213231676466354454612433113243274511617567335173464631351676235717162151123624273765712212724624733251452765575773475715231632336154213521371771351253677662224232553726266476435644333233356161356662617547523377733366513334553351532616561732726364356721367525712363243345651421255157226312713232567133622174111736751771112436675517312413233447334344545727627377431613147513537174652353345375542534157741413443121277634465232416135731774341754273276645452634536232433276274734254141717272564627773312343735563217371221517262272432757242122442572634774714243476614652255332572755465267514245236633151623764212742771662227134627244326126547765254244475371173726552554421431145562143712122333311565231413421311635126421565136215132113565626771523456634447261765325515366277461736531365314524245115565416554651443571332174537332227161746324567746113324676643275325521463732127221463154151461222774143445767613641366773243266566273451347231435565465772432221242417534667624513252752326547664735122471574155413622245222111625431712152577351643177513744236771713121472426523133114517244733244556516752524147561233356662315164156753246553632666224122354264662576113172556756777312651471761147152571167175666721315446546563572663761777566562523456424313553132532532617566752211364714372726272347541627625157175576247332351615563565667365316267113155274365134324223263113642553751612331755527243561763457634342354577616471515764163531425152416767767636711411727463645353524534422525516767762742326254436722555637411427416733165112446457526221274345317272611322767536612534763317151171362533733125626763463734142252312564271472354363733235652267322577221277546114527763647267331411544575442364156754442462315547713572346476273111555124264742654323557431461761155651416722111643211264233342447355417321642626237466712435613641573445422715532667471734636122363646422613315664544741424336566252215316547436213517751575464473513345332375227417575766634464655322156315131711152567444274661424732563465466565753721537137362665144413262141646151335357377675412244462776154772136563633522374617467776775416513571155436777461427431421152143313531274215154227262324442656221564614445243675635267645133755133435171716316173621616522721534216637121752772265466331534527237232245352643271741774751534467573727465743463477661375541136177413561375535174172142717122143214452412374725435742342265412723452733153674547346564112562163422524733432216254133434723231664236742226637464271445236453641355343574351331147224631516172147775355113256364375161154753371312246641275135575423622221651621235123253167541222614247225227433245663273251212374117131754637363142463617641161513526715377326733372654647757131413274135767764323511316315327462122426335344776351411343775155351534461224614553614151352256614761336342134522123621765174154663627665172654776452541261677456147737457736336373551571761746542657734727553313757147147335121425312613661331647653661723436667412514213335533411117112565343425617331565441622724746134771444344376465332334737325347757214631461436163435131174532547571164233467316653566566253537577626341617751535274163127373354346273274261355264573176135564121131367127354164554255777647462566534557515324662427137235165434371167131662453614637752677343174312326374543735537434614752361733154114672115651735437135364556774415165416274461245167737575416157776631571241365774117156727645645521511634763574214222224211764547632734432173634357562213472257133235711331524352241573732341364521413547732557714154366523752434466152745313374713441333721153633441656517136541116351654763456123127662616662774641126635163776317417677467761364467343253652524465555634623151531575224413755534212174576274357446261742347123554773442463127154713217345257636226674242444463165375432267343276166512756525133673347667714335343124422374117577233132733467325747472642464433447763266655511374345631711563231137451456346316133527731117522645123152675645443135137241134237732447641425371774471416631354256532427571247431717152644113421474756647763136131247453265437677476252161664477525574212675665725743262447222213163474574472114611247414526636235416256516137521745715357234161631557442356341536226145762577664132217535371443254262661252251655275252671755464123422631155144774511672176646461633215314132431772272323227255252472343646122232453615147255713163416714636251337722646565366714256251645563725131225113642543361226473152455351414125572666315346376614763527757352143232264737651653462643741117323756176673661166424511125227161556577366666164637427522354463542521461356256633614666123662237312541776733627177675527275421562757147643244265245737157632771315213371524344271674612665275325257617763526147247737237657513441332422675611535622555553434161333466746436622375653337714432555134721665447627575142253525173615321477254156137754262554454656671651576324127135644132467255135133312244547553347752222237753665226533221217444542163227215614426513735755122517625356311163445417722537243524616444314514162633625161136477172735475257766171463272415265364477341265155764134364626355215765722141766555267737423361113512325541637515244337311547741243575352344416333767727714172326676525761432355645537641367531422463171234462356143121146131374554753277647176712214322135356143531162247257757272734157725623275425631667555615121426437323544477263462451242154127172145532113231571745772317623534247614734261432426336467561745451443237765122274147716664161536773437525322553256347246655741652334216252326653411535323121326553213122255742423567332655117665216521657464626315431636437526247121326364757617464546423364322244475345143724163647612151672136566422236431157444425524724227116751363147255321652545137463573372431754711434532776612571147561636123534761344555446625732121314126472261325773446431145467411122153311454245512565672537572533232473647375757335135271252444766247624563362315727441466543332365341636465517311465535432755315233236264756121156642314623343266422232747743762665737521765374245573676774274563276151356215633522112112753322753571735647544735356667256517115474461364332646414472537322323174634662316613454725361422655375657447711672341753513565144673371435345525753251422711415715455422255236645352334625776517355136455172166614147542332222247763621541646637336272545666214213514661665647714545712611433155435234224712172565467647622341725431363664775363233211214537721574523223633372724336457142135215671222516155466233772776223734434466741756525547146346161565232611525624467243357313333473235411562344724157376436153424656516565742455752113646645116664455326122366165415662566377257624556362627536266666136176225176664614766642672661515534346167655447237735324413674347173713611565471474137571161536546237432517347321144124233316272126262443372443467162415157677211127475735172447457522427327342465524217126364421513646771746174556117212757423674172162375215764624535143215574224433663314273655341155466345161534222564213672536645313341246223544124445134316374146473527543146641225632474343746526161156553347462366525263457442462616556713163311263122377245413575542454763324444745265212152433126465164327773477325756265421743611527243152523446354363136223515766775322665143677337742665246745756472751476756732626275632626513464552733622534616546222525377735424737213465747623656221161764637433454112627723322243443553247313657362544655271334711466723754243371456243764137531761572361124344522436145541634733722241343117453636633511614376677234361662746332236517611431322234773261366332554445536672724151667277436251437173656546731456444465427356512423712665561537574353126753634217511671357533613347552461155516566547614677151426573142151631411465467151757231112326634737211261126144132766161242126621642177273116533222241274417213476726646357142455772211573524764765652517623772572713263554264673351432425136215426746325734523152236511413245777714736443215524147631762377276111674657162655252344433664524535526273313572221454111471152545311341763343575635346326524611552676175333612565333265131533511177711543135325267577374557141241342336733475314374345723636154171334337616541262625331723727447614247137115324427352365657625775323346467111662621366745747531472727676671167463411315113177147542642522521566147217122431456422715161332322325356361545772555746644661233376224174357741235131615475612151174613352356473225376256631156266651316554525146617626621637647645176165636354345446231433431414123143626654212656662134477432165571752641462567366562332465614353552146275365434273446726676244712225246714656271545457236262654775631422226137215742675624173474376442663516547244545326737311631576665236123746614356354314561557456263114411472131155427267254232142353135275521527462372327152376635231761633715755214337455575561315413666161655417144211172547772443133731137611615236347435525172414621135125216143111164557267422114326132664672212411176124167271633647237626751323422324133763246644756642547711244366772417625621316374562552676346256317413375437467147235525452277247212441375355362274746575144752172257417144672133621513316113313632562515276511113255516417752436516667621573623251632664772134776516671642325552545134434537347121127274327715363166532215143264375316153263623322214425242461231163771317712234356122745115321531142313373437256771264715647134131261521273222722147557345341164124317526152255463447575441451273633575413731471656737473632162446725677174334433346226673221456252132252516352525456247553637556762116266114356223157226423577377517545447214126535647622162132712155613533355327125177216421531146731314652415536335466241424547445575254435217754713636662456522322231615437545236512512756632263477652335312144616176374367616257334461222435231731661431312337263132265447262356446671743216235532152525654211266755253474527213412663461712222737656136672522273362641743254547445361242435544274567664112657734552677143537357626715526724127464766763247264366167753646367237745644261117537557655343212324231125554765152731717454665717544766453142741343535412111623671267244561176123567241461543744172127576716527277224362537145465666747741634744755474751154632321326322474762467241646655347613735676245755214241325323767141554244271175517335366212527544512335756155735172537552634621313446354152566415551536133514755223147467747617375551564745633464762641646527567355424237714352741145332214264221163476517235532756573734553175173454434447112326367562237537251626262627642714732621144217225371326612676176473675671321344214356331417421467756447512747361126652124166125222776156343312414323634234756671711626544275447112365112627411672763657367135145414136321462463563257116223636471214147227455644253273226412352573221233171776515745557311556127451515134233115522467322517523651142555271611473642614765756335432617437531772365557357754727654256123175376524472437445736116744557166726672442775731553675462157166752552126227724771462347654654553747243165167477636172167654233436554162662641655655274252715347326634234421425214133551751415441245757421574425131517576647524557356412672243756221117775756445572454534151457373534434333377751226611315564425177543176535523756541662531314713151571344237534572572766117422731127356662754545625734736611225226364153352235727542336126247753613221656171764757213125132241641173251762171576517232736344337536144354563643624731344271634571426153533226512325443752256636761575157512464736562771325127717117536677256543421731164676771171163164211266447543651442252252472711532641576562257314441577747131325472653631157172556726132746261141237423531437615517313627556664721752246211313153225671566546347435761523664213645326515462227154654136535355532474254723255273552276151517464725353156413232621141156346325731477114765371674711227155111713163714513452433144276215635636346746326553237444274125617424341144677666212157676322173244572525325475335544433366675122512763536475237725552131611522773272665435351362241354336327717227326252771236442617234776167113244262472416354634761471317331656376536171645442231271442464552513366377373257563624657117674246414235276524562243547642531346116743563444133347634721214431242256526262616243337622152425643167744564154617333346544715663171316665263663737263137531227421561547367567252217524677621674662146275254271523514163756236545762672537257432672321736663541246526712727653143415512477144171643544746745251512473552556267265542246142556742272666145764722477623647726122253432356756551731613271373276434177324332226222413143273524467167133467572634776212632324763771774453544727421253547161451667171635213614657775461371447546666663574765562473133252337375154152323733471731443672126267776474537222471674752441664612512453146751322421116253353734315552766775126252472427655357772466755565371327577731736563654712621517347462451355467446723435736117154124361527275241144421224236243565134277137664161542755471314654576215232127636622221761721527176621534656743544167257463534543445622311224471227255214471255622374636657311442557312751165657127513317342326675635734143632644615255312555444247133457733137422246171366123546453111115527663727736764777365322654155647727312215225724153527724321216217132264127631437721622264415237333672274377533446627147612545511761322152725451244351453737477516741156267226453772257453413574361566434447474615223267531177545635667334364164526235122331415217767113552257733646461534665525515536114231334622561633332124716453374626162554144237653175575544714316316574371623672322212757557217242131562655355417721335314235352575664243667447443565217742511161656374562536613152713671163371467321616253233541642333542171347473573522144422526762346457723763344627123676157155313361253662325611534123747746617237356644266161143466763161141765724517327225332711777215323522234525646562325535625657511164411172665655716572464351333541213223372251662542711446672257471613352661151226326574464612552743417517714237773752412173361466727127132646535133465514244223125147242435222136476267673435737654511754576173654462562126622671351445246256653233471714676276334512326354132465144135636455421771344263677155652476263742673713236555236154643772721226315616323217124742327737132355126726542163216772344241363531234135121347552461516344373645162475117343432567752627456653453733555671244414523115753751436732426276424264756267166574647542773623465724511541656526172266567242511322674157145121642261136742223445745363317122226345442356472237634373724635157723561616675112175444136422231123512674464174475151463424546752333622272621452157125551244243417663172263431637642427545373733731232462734227115367445274477762216345441173273742776516266275416453111137551154355337246165636463115331477414241775711537424463714537667642365674376462433173575357347334474354124762235645325753717134414142555263315273146533733237511235514222563423626412136441322556326653123464767743255111253547363351572142651755272714242417455114175371465663322514327667546456755526676454726377742632775534533424324263765636723225314277564127551376516471373515347766154667545666557426656147764673671376352132121763642565664255546716644177473561165344232661455345223542622161111745461757724552475651142452613677555743654422671367414752242533521315572345635154735523646213554626377634416215627361656616265747677663225146537566765545563477467555171615471567565243733472432436337531261457426332646215542624651723152217252126474234772173667653167412331642573225636756336423743773346342723235731626552334627131576343535151755157645271575621661524117624713621625334514265364556357241752445627363144674442217145162271554347325722422765316233142463551325266152324533364217523173347371236145317664223644627327563635157764515514125422125241136513221426171652275137441266271252415546656145274126154373134241523277266263623325334154466723364624753572274646462772541443763456245535765441411721175233542217125571371245416611627544131351263133373317751742134221625763111424755376414417624236432227432673311132762334435152724146213373634131247374747665757473425665257654662731336414213263626325143222717114357112524133536557473125227332776177363117372157727422334367476371346547577725137173426155235256222267256362114124367376231756567117746766116621467421334441311322426425247132361333466242274347511443377223552626276212533266131276535566144326345275441167773723576465372745573432217316325631312157711115676343464436471264325543654666557473753337367317731676153662537571117542577542556745655154347421542417571665743537526344671742126351251437154541514447741235447375332577614267341715123146614644516165746466522734445743743337127126734573566652336234441714715121614376644451774537114215716411612332137614775451471121613573555122335315725453623736217576255757124566367146427134155724753642663253111726562614312125622216466113324436275576136447242563423345666243174644467425542721454717516532743436176751526127167571442434622275114713174177216156334466252472123624244754666514431776735214436632345752532422155165162512245231366263357611137645454624251174144152421412425412366752471671225632275236421263411417656737263656377124715225476647535532652147117712422345715712664551736154165166342616317111311155351166615415332513354465535642367416417141615177425175647344673655625543724543516325173247627215671564176664135777527145126151752721422477723532575621333351545747113263356641722615741315462266217635264141354535232373231351271354113627654431163422646175235464276551456112237663266177522467171746174726232131546457332711131225146632455661145123167351463617323316664353461373671537675266122362347715464614164257251776722261415426275156476224341441353561643475335134713534151326553742135416253767351643362513372666173743661276135321547132551631551155445574526241435437676772167176744524166723175632723632131151155537247143472355551733356475514376314431671226764771426475247516331174163276716516651521434415342342761412223214762153127657325653752224456766565614325314355233452764342141711512154616355272646135572716211362571372237751234251131222153212562533756755172526621744152474652136533341241333125312131411776413265633646162514255471442652513742625221241413131671755243434642235656764244451631146564236733146545555262747733131721533537154747424344441444767251245612621324477125571636344353517411663735466377757243217654145176174561226766176134445432255756576346361367271114452126433241122146674734764165533755622255476574455151656365151467243371132111657376463213117365372632755167345315144515217247177364552471436356774564376423433461157217463212222672443216651121136161236461622122365526475517733653766735727333561243213674677365673567371324662727351652352371177547477643333645672767225354574651722716453647437736752421211716271313241545617674511664125215126356513667551532213311123535436265156555534617132464516252626655563352234625737177567476671466335762125571213324273334224373136535131612133555214547253572216771624714216454116662777267472372363174416454265753244372232473741241712651267775222552116455763716217465424414256445546414373514435464146617325362155717537711455235731633665435542434417421567222116372562345121275747712277132343362632775577736424324534547713341535635414471442714461156247675151644325155122433173127135214613777432242144317627141254665566167142376614346237255462771641656664134715532365413143453546533613225736511631471116455741635326741445225511562762541444547272267344776546625725311356132152271235635512314217741775621226356573366137372722126227121334261241466313443645157773124257677714164124361556464475617445324325633336774253131662454511254676562225734562715274541123351657437753557246556366753276524511663761237363247167175515367642741337563622245365364146665653156213172554772631477224113672117142451636337523762713435114336243421414547433722323676477224752413674241315621743442313436144275655313443135243427751325141561347172346752616347246462315355522632176665166112247127241167753346446447355155472574537747155372255121157665544724461376313153267112327217754555115254225532762774336357256623445274716652151461124742717772436165556444653722234642252343476325173746535747353757175422663524344742724431566163774655745336764461564346416315716363261723622371467713763515425254613676371532667671367652313242742342361544643643172267332657145211547726313676216435457756772433577562533124745621577675564737317377543166654356346435273777741112157576454223767632352643646756364355124635234116443631125133763527342136652274237414637543752424561764753112424576373247455726476516275625761542561125172665545525446137736714274375124413166652516432425327646271622453773761151713256712166727121367767277324426144755255241152311417351412154672316123641766131263337467676466536337735224246375521671652517374237333766572341224413572654673236363663543677722562133437711444373762236617623161315647742716556165427213374674145631726121176625457511742531235131323346347342726171315452615537552215152776211131351127271163142263271561312445664616747745343611237277341676475756762657525715122251274465244643642247223634545664613443166663257574416711365255556213633422151221762663723651426342526277415547556736331625767715177637772657534437273466274466117172262546532315346675534263173123442531414745661462235764275617244531612375754233446235766456414167151371116431776723412261221747755115216163373274456174137345444254176716336557234135651725462727527522446325241665464556334645631712247272637126566253127574477572736146432435315232634515354344546443316641472225472254712345112166536424554776645764555622444662436417255675552462736637775553147611647436315553667544663443757752145112642421716164553237436435641442556711122142527232375241635763357251363677761714334151255765322251317661567761414132341146571125166255434324575111436453432445263121653426766617654532164532361673762424324276274667776562717277515141563124744423434312423544524427577723537273546267542126517153232254621547135654722235115733356513365442355143555672372216553443772647764512157657121442227663373556456231457454557634156144575242227244212266755631447264743462774622352562566452416545252637721524761241527354536424352544557631321444415554341222756124671564725773454323756271365311777167563373537373671611641513672612557216413542732114211362753344433544425662276517131261366713456623466264514355361517547541176671351166551376735276264237337121355365242313225146664311444356524453177431763666664426554323114643263336445633512454222765265761217542377172654711544642552242362447771622176411654357625743372455546621731611676335427234455732515511575676775641473415174767251121272652551344414756666365312414623122277334175614513443373534117522742716527411171445666242764736343644415557567734523457656262216512264132171713466124172731352132341144363363743644364661615237565563122552246443213772114626775654275463511465116426636322121617331177462541463235221153275466413634673767226551214311637575347733325733756545755326513653527423156542251224723464435613356331757635162275576745521323651615722176515735475413355417616116672271164776547421645517511312472523732332116141235776757222373454151474524532655456355377537115512652345111267636455224277277652141314225435337216147561521575123265776543317542445516567557472111671456136172436327167754125345426575377327464315325334135563444424355377356117751575322212446721546276235755754135756177335236373232246653557214672623556261122346554452631761552744322152355722571235522521776363636243317273352474357632742662364111352461726277735621735334454774133411414434427112325147675215731263444777441462614427426331143372635345212457642224256222237567744571322657754275714646171147155435477756663312174457371474513256135724512134453132261232773231134636327624262675113225536142156651412575333513225551423321626414665145761243664341473655731712372226116242421156226524321412751113614437762212744726352533621142433176715427534136165231534647173424225167233556354711154431542713436255372547476216334111156467134742572755626557422124143122125623173272774762635337664267411264665215326114417133232747622747426341114736567413746235316423475433644236177752455462123674245127314131142147314154256656373114165561675123144662227175635346755534715536734533645665462225222775577252766431726615345416221422362211526373475356124565517762211442615654114643645334716676221474656353154557135662372363115155644511726475511471537156457276163433636615466645622647516646544121514466245122714171163156644456527266713615716525624132725464247366177651361242135642754724347377226175334451765643151442117131762772527265454342667645255252261561144773552217465651365124443532637331616146724573732454212674777133225732724514711375117267577613135641134516227366166176261351565461474156611747556577526544734463643362363551446437412277762442735374543211265121751317217454667426272534742564573733245123572553514156454624414617325137321566256754733536177671624341472452376365171344264155347714144312653673473647466114541541245716173564125322357362645132167751571256752523751127275711231225316434243315714116235647762124655611244515317721534422537642446131255736476571654336473566734756774561341321417142173363467754753541616137271115436674333242652235436342463614341157674221517633575423772252717734625351533435775542142367451445246114166343233727234352437514342243662635151454576135471453176422772175712257631645415553764725316435247465561545316754363666411453377247125272133143562151133161311445557377613236515623126324466443321342343667637432755517357134565733267656653516124674532565135741367356243434446727514762616472441476212764422344414712114743211367122412254411752554174462112142263543761532647116415254365612741435133317573624475113552344557633346766747322752574241516255257523423426341657141466636555264255617143711216212361255223743371251356567772534153177713217557574743632723115524143134466534424121514721231713327632411354626341413324347342775661332456152726277523146272474162236465574675634777233144424744357326175566252753765413164552326342152731766164564224642411653671126422527546225651444726774455457422574651563362435227736565344215475253323762234757762531266526465314657255461265155447567351331753537466236354263737776635757175351411333172522214274161677627555636752461642764313133113215253755543121376676256553774335243551346647177152616654165637355622765753762171271276676571435321446344643144263423374244226752236763556164524265526244675574116726364314656415151775365245656552317141437371116316756612466454526523777726747662677461531567343336525537433423612641134224262425311163136512762357552314734276746145562442567715774135621452256763653717265267167672375543762671367677627557566547717564254454514513516564543416511676215653436717461456743413455534366264737641671647553113552325764524216263444647534236673725633414736666233631613435226522315657563353376572653125646622144651637275526415663175772764162467643562443214172312212411221376473763131662261533753335347311251646162247467633131453326251365462212546675662216354716724764522152247136736146715475361777353667215131144761663432262371256535667515611321327653172432476553253323775226467355676132371345773344555377246365244156226353264517275135752711536135166725434715735557344556622545254256113525332776644513315553311147742324156367263535175664236332347673212141757444155753575341614665377513512656364152343216466264624575266343211717355575335244746336146114334535653322266674461333357151424216765337655646226342777625167577517343332226137165455457267247121145511633566666325273213121343457432414172652675424145461415763726261117414564336742611753542154773714644223757664154341716135626127674337635624341616177213765516577224321112446636657667266747737152573514761763752641677614617626717461177277674171172152643645545474525554545255465573657343727661344732576434264653253377672762126532613646456753477621622231433316416114642547117273375521653115166676474551562522762534521244642642671366335617715261643767364661751177143625625444522221261746755264172564256123516721247234241657477666323336617571516441265343314313344771661541713566716542274656373173163236241627511374625422443162362716542734626746542313651157427511476671463267144475663171253125375264223652556326126535664275136554317664753716531514273633546335155134543245731771532724412254161675353667374465542733565623342422351747716455133235616512145217356544444313125342233224427332376243511352564431654376647774135152444572661233431252156256671376643424722756411636745653543614661143635744674171765662135435116132516423712513612361514456257174354117517751342562543311237246574326266275423661256476522556346777736765527725233174155423367171164762544556371712327252612611731321575252123233556514165267352514673322634166544316125553411763352715277616562234136614365354712374733715664126732522152727417631333724613335227312647731773776132535236553276147423336526735742125637576226742774446322234121343145136651645755412244467272437743666464642331272437117736272276675553247473524767161775616147726473127167542151261457251754666546141767144364412467374572271265163273376145417555515366526645455165336443274262144573545422276716552415136464661347515457611512576641544324772236327176157242311315452223524741664663511626761132617123514217277567257442347453643756231652772661616643177255632331343342531137231126437465351514642315562666721122176754513663351411367657451574175672454142577542717775733222633434771316556543645745432163447672272433411364751546322431165165326572234372161146771244264774636516623452562615615621447257633574577736314414275661146173157547311424346771511311325235552647662743467371443573635352146423413711256317454634326765373254536226255276153547261277727355737652616327154522647777773137533521671545662354432532632135271663752247626163546723117443154253657265161666344346667533152416764114612712546214163757354435445755547633126741347755623477233643516613135143271276757326343746231222724437157111717133776214246362553337245365556553763715331361447263127756534312611373245215461517722121674345746117323255615756172214475142737557572237722531537767441245431515475612725177153253336463137272151753244665573217454322736767364572117475355517655217423323243632234214733613677523464126444737262612226617167242521244111675523723356236356264547773413664357541375221245775563462644324151745276112137631517147344715424537441362675671642757615415151633671647227626724312314744663647336424447542443115335732527115741713567443611221664461752663577572157134414447525275263562231212326333674447332252727465511732265231431776141276317447221435553466543652457617651614647773551221174462736727675166662752247451462237432425425225723312435514642176131472245751453774357727425624531567115712166377124127773574341521642353553422534337346526363346522667336512754577545527446113665253317167365746132674552463643477732141717615527111455733421661774271311473155156135741312512773422464724222141755541522112472655234525257554562247432642173457213555312351147275247433754313343612444713126156572556243773437132477761373221171365222432166111447446577232233361214366666426564437471423656116327165145617656232313445742664526445243743732656117345243431174757574171514172612757564137241655745445535235437724113416544542436173765571443456757431415151434244534323471636645517651577633456233566225221216676655734721256262647553375536315314117622647577665752323166731662373364553633633331653363266365516155643127413655144413623561433342125447512717625355551136312635747623664764147674462416336414327412772411236116655135761753325356546127142753531455155342513351345247154451635112726464534271325142257525622433626564251712233147366342224576263752577677133431556512635216125432622612614361545317664614436263465655247775153714614314151777256133661662477772463734532541675572161351531432662274651745236715244463445521771231627135741552417246523314515531733735443521262116761423763656641255121373512723622155365652451675471541122424727326766545722112763147351524325351256733646751356574522675326154112725371216335324766266627636346552371431464135625445357334261256315352521334127664522455115222744621163226532431273557357173417771121432425577621165244345675716217254415365441457273637331122643762343161536674634317443555651247314713166667343613741217114242212573112177135336622744745373623114426636732554346643331177462172434337223512256134576627666266443175121562616623272264253163726237751231513475715333762361564511425657722372763437125266254625671565567117417763176725552245745724673714755164364267134361154766456741446354623443456715124622457465523457152526755665477753332317262437455737726426376475621762777234211123127172632572365463663716331442154765361457717456156457314461767565325462462431347274345725213172733573151334551512245156571221315776313545324476523431212334556366126513434765656312534776365315137117443153657512166566434356761761125443741122431277154572372571624451164176443664762352523763164442561211145435124252545144443111377517735477112641225642417122151232226677612215321225456461617632244734126247763224652527617573737523225243243454742334216366671654377124447775412634466326275273734647213473235531376122732563255753614245462345364366462751217176467773653716655315275564724635474514163475452214133671263766536276715365743364677157317615572312324154657317176175137122672745376624413443342343256271551756475277631215543117526355524711552373376417265475547414366667145374543514523264131712431327325764441723416135542643735257212627455667247754531716221747761363421121134242726227742147156214446657664421613525523741655516153151231612163445211415613465314631655655264537352434214654415761256754573155223557117676357146275274554173624213113273131146767516263714265615227657253367267241177461176661524572511251211226246314415414666356531656667123757521152723512436222376276311776757165471641275126347277232423221327267353563474232462325667122365313257627251715344517315326556216544626744256774566427163141663646242146664654424357475723211476333557345744516236316777422563427775742556146773523533665144527411175353276717362654335141513664665432743754714111635333423772352124422127432233335152343733271514357563635151314113446642262334152737423137272573757633163436745261223426545636333227636272166725737412477172135456443374624515321362522442764422477136427172643772355532721474744647622722116426645421714163471165267453764745632574677317756765623561261675471642532462361177653342562651431524167237566615774332512766142134634757746526426242523623647162665254147733714532175367754663242177524611212666275635742532146266137631142331162646342625133751565561674141246344112474117415465345336142366313134274625757535452135631177722426755556455337176371175325411754561447374137137177221762524712377434465117124125257255537342461534363774116512326354141274453537256666266151214252667176554137255743673611742451756757635342361755454756152421425423475343561616455152777252214755336264544534563277471535657456312341715361147371441524422361222545557316423463647621463632745232116141724472655657135511126542742767261522127576522473574552666266124377571652544624374162341261713452432421615271627345663722114462725376457326312346136447662332534374333354316542446433421655231567314531372147424457631227644723153431567174747574517723117423631364353473277157647752453314611147514753364413476513642313173117757576245575156127523644364676614774627411326231213671426227172612363434576322553744775727127211341775564537774362771574517521665776465137131577667151641624713573551275317377367476562553264454123352723162212152741111546223736254566774316534127242335157563422167771342225621746273627775241456446513645537733654155244162137775756353146732426135742567663764572526744756331444132217377577357423437145177134657267121211336212556652552476263213334446412443531426565136755375727365346513776131121645633473366334252242443355471564251432651614422637213442312462277342547637474551612255327566616753131223353641723247172261751546252274731316522746767275274461327547242464245543341461211657771755662231655642176236467554454642542775164641261126765643327176363553362165275326224717232253271566125233154616527331355512123272174637355736521643612452665214435132766563455531233577767421264767376255423277423673773645173513532447121351434623223627327671254312435462645321753334457451565127373753336271277532271346325141777414731647771753214431353166276246743721131226556333451761621556542155271324272134573663754243127336155227641154533222526333545572426232225343716241433457744534666612734561263171343521616271761661175663112412447631213744243242462141561622257253465171416742377575653756365323673374534447771152646345175636225666233617771275373326147643565445267562571522363726732627375233663743122315553156641242262715375562775336214422325431651142712572712635556231562335533741242531731215173626164231113577625117173335145547451174315556652452474746564331476626247136634172343646625462542334151274261577125321325255323566215324153132246677143751514772713456163416633534657257237731242577526167153335144251114212245536477326225462366613124646763545315346361136376177572367166344215751617713754653544163172147452146236241635224671227537144213326253217463225776131124121642175133554513136737543564317564114527115565272766743232752642342125745515444633441163262555722234721612345732416416645123714237532623141633275745642453745471464745463466117513477546234113251756525263164156516673437141576765557467715513374254626644723712677536546311751476152156451752332216162134231267176474242247462624443747352411531461175433313674247654573654126275226152413663221315166363766617542457527177533563262132421422375534525536611261617222375437676542324111712131132144414257246244567372462716721144676334251264744173343633536552343377634763461717444631274761236657543242612622767543564174327415353616167353651625275525357217656356255224522615435226755716164731747563234435172525522332332134332317624456275441134456522125651711763342262137242771662175653754754321657764727221317627416173572333421421124147177252133142323555211363564272221247363667122476321451747566712135263663674145177355353241242355264662152657477335263426552716536115432727751774422165642743726637414615772774356655332646251155225515326617254243617275113327751723464456314121423542254427434626274653523324467633252635561162173571252474244137545731511527137527635174627244317224264457364436322732534551213234654323441775537744326775125442231762237421214121653454375233365366521563675326473151417334764533425463764426466765146262661354516465174555423422156175464423115753574142673336553473233114327125464712311535314754377672423344214626746222163561327221354727642243157173312572725741116517565621345446777266557465466357436122266124614543422457327165232245463374656353615254117225137355724444743717361177427461275332245672225515645655631616136672216677231123677566453453467357571571414526116154713362637666647126271653565474216634131237714627647635225764325272526731723325272366112511352163454256442175534164765146265474643377354554247757445263212743347717645322155743617537751346513614571343641555147132141275767451741214562637545561174125734663677727577753631577512314177577161172251267562732773234645615534645152211256353652266553444327115522144362237414134622275721722615222541673645447743372173216561273451457135663711231351713751172451625741531232246414424132242516671476551763211153436233367631521761536634366563346172337424475615761665333213431457524656337131536636462713357324476155671623676762641731476341127726427611171161454461422467511573464456475674733511764234314376754511361241755236335162422162657441577624123656513422654173372455626521343631511264443153324561354337454747221457714223556234373125764477413557441263551375134446136516641325472431116336742425432213171333164246456474272343216347661713312647614555164332642516475575237433415173722456634174755546352236677416712356331652467243172324224275276335167257525552273336151567317244643772645423743376173253314437225516624576113333263571742414427372173442352626134425522163626546666233572754676342213332713552447363743242741774127342552237474344752417573573414352526153714551267521417771332167253157461757216162122231354554611136166264176624127343417176557663512522242744446314555656644633213476522126554425213712575161513762753175154525347541711637711321616135743325252145237232323344546341154416334457274136362637413232356131764432562375344537611225444457556132421752477263254375743327475221562657131166415744552124164615764362376414456143631134542144653211541413167165351474141356633264441512231231675755552626423143577561115221221126674166147344525614725556711124723433336474767647352146137142443117443314122717745241245262546147124565171361374222445164337245351726637675136541715634277324253366242241144632122516236361127345173436544136343623557377511446166532376722756247415455336414333276436231526333475243776746362612655411563427767415725611651242337171257632521571213674171115447367415561643614144434154365222267241117174675223577214654466625632752173553376655516374652643437636136514143747531462157444726112635476714311473653161125531541624573515246317714333536422466661252523447472373735472234514464511774441322543157617144615343625126553724211417512425116643345161756342772254235417111776433152257215415744566326321532566113421352233726364326162354524324671125247543562234143467243676365461325412662125621271315666535275321161351472365314545435212731673612141121447112667533344657747331536651126136336211556135232265352341352266212132311334751376144461536645676172434657365336242771154651351271534233152714541631137435673132276621145347713117322276165367511473517345345757773133131671652611253327755653742266572761157341576131236725222542531621145173244166213216647124266462666366774423434765551673333311666536337612256745633724467621177143616777224732525231516511621627227121134557731665645526617713724645752331445423277152633743236723531763236672231235532726452444626737352342465621573776554712413476345412761453632332116621152423251131231316771224446437645177435447654625514736314357343763126663661354126631453222246555267257555723337112461772137115545564442244676531176177423425363141426754434337537451522274123337522436763436513551543753355612655137737414364633717424752544742555541523151645245111616263657244722114313417124735216734323337122342174344366163674417151415427765275633461361662333337672455344173756336576564717344525762427746445271242137632677351757323331266736244366343433361575631364513416343161636312551631434673263424367666163613161354331727235611457456354756355474141252116761137174142537465236633661211221234353661243123756653351472623657314113121544142747365435737225365775321564272475444111774636475265726776426667423145337732673522224224776665737345172775365647172414113111574647361671447235234575127522613371446535773635541131634726117441514377266563337453546231152237271741761746362347514541657112731235234432272425577243432342456612445272321463263271444672241131474234566536254675742531656761722444113676534125511755253742154322134424477172663772516214311154357622452563653262343153625622351442611767455774232556137742377344626646614413137215221225445571364241743323726666372534211751117624721352745544566152513612723725517655163756646545715315511722664763611215171146551312253264563173453515225423311331557177447166324665431263634761246266224232173553337447732432547465227633153532175743756211566445277253677354565271577431677455374232522756325754225277351435164676771366211625451367236471121672611146751153631751724654167157332355344351755152364741557565523147515134342751316623162741533237121634371517537521231345432646667144413665551534746714657154732641422711666652256257754761455652125336415314532466374162227625246763543474757127166574717712537526712342741762172642454456732615675743337346645233361147653144525431674647524347716123171315171534614417552126121742443515314466151512461714726133367751512151177251437642343257627624765313312341514667724452434435735655327565735316421765332664571377221376763614455554421611461627532772667263621577152352321514467661157175451522547775341411161256254363141214477571335316425432367627323345126266311153724561121122755423244153615124425215317423731574737536236751434255627662255445131225731637164611572461516453267371115372421712251431522461176747261712164266474651733311322327435437756576457235242473625167234616614555512446353443726445557151732531373647475142344212751166163555515162741656712544633652671146526346644741633127514711261366351324172475662173255666774243171222732213711332647436247564274325532753364516774747655654374737522127356147647355332727467262134347326322217344777272241366673237271223354471761711245263263476437642116647737132266726434714761745165143147754372275247652457455273111535532162412127275343422152353446212437761114223751322527766222234317477527142547612264263715332754733716633717171337145456221527124524517712132166773631463655667252723134337556466753112416216245537742476564332247442713745651445332612551225531515717474112146672173452673447527421372672326117337675165332314467516626241142216266714541772447522323351565116626526363354631713246613662462355236766334727131546337736364633356245712414636713657642572355512537441622375275673557147266756243117263524454234523437456264211522641224662416162534413531261443547763452613532115665132362426172271546746433544432356474656566777154762734222564112162647537436445144237762251772111366431315341766423531741147252417254475132342113556753757716146274645461724146413311617617435455142577773417362613774675752516324515675265214375716417274564417171662317231562472343273741423334513744777147316653112317551225676263672627752531242312377521272732431512611763117352411463774217343534135146446514756236437257225562275712567547246253726645776645116771276254317325637524225171523533553471132165657632355156342514151422536134512515142656473664362545727523375566373462533121461634426312733422343621765477446432215146333615141343453313357234355162726316714251625156415522256165361132124542534442422214431441367312514272445723356516341576625655146666124646314165721271163561465454377774624324725246444732772641371477162625236162627413722215356435434626332347642674175327255721563255112436413613224155113715174421333466442132464762673315714365512161135241416126377721432261153262476322364375236332475635732261521343611257773636267652456614171134416534535237247125464366165111753636322234252364744513322133237533475611346566272743266512735117456241375263122226645526723534671625766476117343247722714276567652551431342365611624226546515613772745172331232435746634526476166374224341474747534521112641541571213651121415472243245521517667112316511643422545273646236126137277147245511665516213136642554575421446311476361211425422577246612265136167131152324166355363455513416326332356522142166626264745476332275432415632242745573367737654173547122615132335714344356445156344455541253415316144511556453227655522547121753766357424262613572263551563672261126171637717461527264444733243366215272273342424333167513221451272122242516767424744724337514645146274556354416722525261243736443473241767522434716544572774632211635145711243654522271417274436521425227254541313443413534367152325746765531763337671365715712246652657444634267257377111513747545123277563321237261372453667753456177157471624753114253643637316226245116312617221746233627651614641453475776731124751433342522115364534323226247756713356421752577364626331255343244513465652142171672535644571126517155534741362362534432772225775174651464524143236662172313712613377336127525157147367521242534755112623776514632551643756331637341543143125612277264551425617645721244657547657616355427277365761215673761666766514465316434243464155444432331322651522466223461265742426763115314466725547726256744227225447271556642326437445342665621564514573557621463536464663565534215765244335325772737426765541362772537252723524736761777455574723276125337712314314413452142533254156521522663424755434657234652267143225613266665527326331127245352675377115773466521364566422241533272123613362144373641623237314534156341567114543741222456517264662536615726373661124361231262752134625517447647141416523752146351644515563567465536572267314232446321771346415367136346311643321242443416267716613651611616431455713243272264266464455645572547251676236456266145414111762236364444476254274271743463451615635212743767516227324672341532336266362671643675631227554637263173142341525135627753731435543763277433525332123321523775643153513566132774117433426735612336671156162271173756421234725251131267166325546144776223614422536774674647523437147152344127314273673366241614631557114426356776376524552653337424335777646556415361146344661523366166253737672437545461256343662612436133223357443123231176556756211235546175133444767211166664674131574525431716424436555454735641631423276277231514572356763556753724444275111373753272177366353765321151513633327757151227766355121246426621154252161314274142644671434436634442561732543167454155137463347174364577745354412126531671246246716565563221763274267451414343234113662224223444272237312135451162452764425774513635757172741167334533175715455751667517674773746412733544313712267251351652255216332616336641166124252347475317152442216163173225643171747671615752373333653265753362477456641457627242446165663223462437314552444361544553442764233475446224551121214763326526252623456317157163223712254247265346725556755773224516745571511466357146745534166631644324515645462516513267565352346117552455133425465673653521765676755132646317746646344516625576515227525456564347264656547321362725776444332657717515351334563155656624466765675546475441226434313216545435235723552436441323745477244127543354532774741173517447464766154311164374171172462337375765773344344173573624152326365165755411256567241633242573433241657511646525551534752141575133221273366232616163671714275712333354612646141146446537356267314741333526543541424366325343474772225411354732775334376233563374516357426223513257626643312742323252234156441766161764416523656275337746723133733141573454133774436544635151554767256624441737323377654572657277325317754741112532627271566526551311316723244327673633772554443464636447163535515111417766533213576543542234776571551651635147437273541175575546634722275721654614371572261136713514635427625476145315443656451632434377362133741561436115763266342173223547243232475377176414452711234571525242311232253125663154226777152766137344572114573212533533632241154112671112562213376752356562667212372512651262433421656434724145315657155215547122277143556263733612531351746151411416173633235626272437544552524776576172335237257413577255527136776626753575524466145753546552552453361642513163667666252221377644172367531156446324351664724671427746623731716552276474166546677775767264354233364223641525426516375244663417755367655747512553324137636171775635722526571746371724777721131624427772752747717113514616122214756746245452344354655357151411716713731575733473271725634766277172574755667227547541435144764614175663351373447425661375765567276776424554221354752271711661511427452146562627235446646636671753722225315476531316164156757755261424245125161112137446334322252423751462362514627665637273521754451531157431124123617726312417756121236263375737421414255416413336452472733536577642376147612255112352555232713777336233335642353521216622134533556412154532761462673565711354742514111673712157446715527655352632244323634133216271753657475663716442136654164173211567647436647614227114433144564744631515412513136257523237526313667151622162416323476713774735325342435744215156517312711474247165441234666414356426511661324433111224623663322163135124367722532555346634266474627432261163337525353146465436737174323422166142666274253616621522363526735752131161416167762154373654661355672711772772767214644342122167647131247451651612416132334633527545662737125125255262434111474457346443554265124633776511667235252137475133746342642633621635464677641543251715172365666153733313311565173263715254643651253415157125645265666374161357575156654677364213671542251325375113711467436147437675133165725526117267332146112113616134747511534653576123725236526343756741125612263714417133776743442445566251561261631754355253627755434461446566661157624432625612365634111171657164156532124516756542354553641557355241442234232726354622126364323251225551374416344737352122655362325114243524567364413624111631163775312614362432162464175371427117642242577134242521121757731153741154344457115356462661765762476414251527627565525723113623153734553634537575461153574175374717555752524415344562143552321123167556127672547316423771133345653742544545121144725426543166554147326722634152443315161477445763126632225732177431251211345155461464526312433565723755113721677737321342534174675214734346536431474531733434123645252715651535775341363627321716545636514771567315453745171364337733714514563625573717616146462476777541237422262562454477246476315263426461616275444114731712633553214264355264132432246356643111443151415334736323641475452174257456636473116131515576355554172751635674224121362152716465164373466356777413643157352337736566145663663645332541667123237775723423772476122416676611233124726461661221743224174175117523236164243376474725445156657732255764612242111614351266753647275723475612133314743163667366416117566361415145542751251316147152131761141546322521755716734151355455471546477763751663577114343171547634515473112111451362136346523417167641141252421656762727662244263246253521662651651252232457165322257521617215373427744311221163471462664614444716123645677116447426774475233734556233133134711662672332265551247162574111423522171345564351515415774476651242443617366734275757556337224251515177147734454363251173716444525445443555134654161361673541334777654132744542252211472766122432517132337113321551622721642215457472736747372457642155351673452412715671542716174312151347516157257651735246146511716152243742756745257675521563673422655162461366713174565645226667755674732152662373762555471267374263576715274445153332272321361717466367222667474131257473623734673643765344324721735175657154555252567335157561575315774113672311471423232211377232132553242474553716343574543656153331645225672364327577164662576123321142732172623774724413563516741765361511662363175546135477423533352432533752372155177641572264613155321631177316225212373611212511453647666716532242571153213473542236114775667114474472133472156362163564252364723575727357664513732371646175611352753617767442734265362212163221416717127154261616545755255516741543664663221323276165523464251445744534157312631551343672231365172555363224421566722271325445364452211523374343335565727476224663114256526264511477362331153652253612563471162142261414523721237517677241257573623753426737154736216143171141442641312216323737742545255262336623764325147553447734642351625521127551365343627622376625121573714663121656247223462345147237531237442627455417746112627543616742116262337717175625271166656564764614147147761542362512371356655456753751166243312654214331237764763272311235576175526243365473263524755177651677341176436276615376665374463543517726562422413133132611341636116172761233473177313673131233734755164217557171132522135147554352767521667616632273427334322651256242437312215524776132464662611624177231362235545541616415565561367224362574461235335366755535655776336426176222165625523476164655672655574337535317272542462157751136516241225766717263431656644141731656177577571437674161166513577675414565536671672422522572262142722512365265455517772242361616272542672417256146147355633725644711362544452265273232624326773413643717366615435651154575476641324636574356122617725375255242365152632457262453565336164617247145341477327676244171726316334347163244275165722423515446473136146563124732534116467244114427335324545242526127177123534366312754547454736652762714267615551765341476163167266551116711566665431462412611746734735747136725557731113413512514371214111672451555665146526661412532332332467655345163134743114257312535115164737445652455656413345627522432724672517645544315742535626752245645717773557321135472174171425272114724273345441321521221362212412174434771535577741754224334476175542251335124131347752315154665552776243746561715712244753541236447463771547741441776374542764742617277455351536725564352462255555417544313456252737455733252127771665416765713116265761416732743743513412223533443251424227513117471642264447213442673236317621751155474751763447637364124117215414154562762336322451762514636567215665163326152326436726312252272761561233147373245746711235455655133266463633241154754717555344767476455757465464172674751525135175743551517357777271665151753473277554536664664625614431536177417364147747436221612264347457327366114211144766141376144273134273275525633432257327343755261621231123515152377331264673513674631732223132351415445244415666443551712435554736562315767455423772272454233636416636526473346756116454777573343137122673227236747614325364611334257546771714612572343771463626243221121212673764111511657243177422624656135445166247335452763744226623637515223146113751341544271173455547262477417125142227737746225113121312363375111332336224356277473644762312723147472424153772742435134475667314264427225525732374111647547472227773724671573742664641736165227316527311351754232737732632364425367431475564221413526713251513453415666545166337523523147322576141646613331355347522125147327235232122455673537412634342465411235346615475752734217754123614727564556426233435167156472162475463332175627354272277157357537215632741443571117447545564547571355552535225226272356136574653712476643474217237364376367646341577565234566572541272141146172152141755445226573714337444254463677116752513564764336464712551152163671161531127662521323477516625325323576572667143266546526432253715264245435342762556332265314615444161524461661145777336167552215633125555634152541573623661723515117776561267353534216414615156771761557616554226737511361277716276354355142565561652712223133663722357173453233311612724331646232466315754377651642145571664621157721626257234321536227327172226131214241255721165727741662774626141564623414523325323511722524432411263434225547213464666257523774113457162646767445125742735424745323333437426472374171474136443175537112745674735556615332276525272372515366172546441363513364215354634364313571445564146314246615461227567137314752577442256247716722777733653252532675723647657643734136433742336416221526523671115411453751374156111353235525736417455153214722633151574366153724771517241634137546617356355657361531665642464432224251176575533627775673732574735443554444227412572462675746552327614451762743224463652467345671561245235443156525773351226176144367224651277743444171312123647465576375526422777416641254441326277126771543144116172311654615636542551636343754674225213714617464542735672371167572324615275153541145534764713152315777521345732136613312722221652353424541233557531173474637715353526263427215162311641335336175556316752712527751744271635654333374364464646734141561764642415754574142537323131217225773335733574321674647253364226125542355645366445143757416737743436654441176134757265226722217472367723733757344264175717231267445431145442466134644336452472545411616462532445122576434615172643735664147415211577352144543131533322757617342412347643431734711434621522555716254261624731542615371342641433451776162575542642463631224267545746655135612115455741154412577464253176567777646333452133472431167461246346434366745147537764212241376243217546443251233333653271442365677554531156372744322543726145736724311536357563416673264212115611452524563441172173433154356146115357725311532143375612347145275634546417654157411212436444263156444414372111753173346213633337375635475726725434662522127542613317151642655317167252574662242464511566163533633662152637743312763742552734431716134316323754345551737333616717732354326613431115321345646457442761322314656761612737535462536735767211516475576163255635171774572534615656345145554336256356636212613461314132777444262227213235336764735551742717435656661375137626232121125426372157155326723725742343365231757175214646642143641166525331347257171675553166363573444211355263212363251457426667335755112642254523732776141131755553374651277552256365371375473152521317527576733563412652333751232463436317322661133411743341464624357122753242465636733461621423143165363627157753666345521573171416244536634542737774447516737177735477354731345334177142765775761541577313436173522527726527526573654514251161352525636522565345733423142262426511474456534211715457175313466246416755531362473347357772437265126723516536716233377471643563365277541525325352521552536234664313462634376735377466552315164534212376726732563523477642442736347676567553643224555652217373127117776745432663452336666517231133142747522727476622571462475622336533516627756542133112453344571554126727736614221443717235724761464465377371113376561514225734174534375344456176164136661453754647267634472473372125173352551344364366145276637743652477565712441171775636522635123462341242516736737612515667573742316344625627433425765555636333574541142624577131631415271125375753166457137153337311227442263777317245361376532653675731361561721646365436421517117773143223315412443125657741152153566112344114442764543657155263631643217521365564241547546474751256566551616566224417455334123241727675177765777341217132545762254255755664553621641754221736245763561361655346533637362475431127417656655521565142211457123336416514512253321244365433555711663533115442665622441214552263442726446112362164421543227356613275742642272437163247563637521141735233544726135561631223275372465321576217124662146151377231311242333253265654151777747754124147364721246734431641644742344162231522556451135223317114442141273345542417524455116717454672711457133413565133734635613272565632546717476311675372162421777573141162722562754413523166266245754752255543132473164563422351245644773656253432731321653121154731541235754427614745244466563276453676513254146533366135615345174464336644561335673576376724634312745733571545326716536637224655152656226473334235711715127515323617443322656361173373716157513173241412761636737467267177251472126177466552565534653763672141253162142726276753341731331435562172416671627526162266422465244564745626711773512147713141776466752645546646227434545742742717536713567354276242625413631233317111467426156172465347732156577411551623441341611354347665545525714766454472663631255253731414414124761542621213232171574555215727437613165217633132312667411324467357775626572126446547511633272147146727161213347335276373623236243156254316634667471331532156163512327151744442512636612226735375521437533176447633525647632373255322314635662655237633727257615351512475265563326323615642723551752312132677233264556242544122226357563754116336114631275527732671767465775732642326436217224425423563372276473626463415326171554232563112753244173445116727215631211411726243754317122135146521733715276122417142244466263155352662372133465312537277135444373551712234674444727747643516356525537153653236631635632223141714576415662224117363765371714175456436126341762111326266256667545417413456566661733661516415362243275453432321325713274245115232643477753275347142462116717543636167274625351466736146747724411237356637476645531355363374135161217273343241615754522753466215436356673311313117461667245267143677667311453653623121156776672263252314541737322534733623423142367417255361324576373666141344464545664423565334215663566634414761641324612336166546225711542247435566257374322366271611166213357146153123455674525626125757415312126537276757441123136644775537652634754643626742356243743526425621427713465272537454651324276767222134464323476334723145564363414627476731317242745251636466636432562565525542747556652627624671766336777654151746524727112572571534445333132246232735636225374541325767373526553745442254724671624532562154123311164422725476672244534731532774713454757427217444216513656155656334722664725673424474662517476342733333726626171631427672533566672336737523443536661141335614415757542525262554353561724576357744612274623262636315311167716712514624236644147772532752743654234627452247744154347536734231745337366622727335152136631263451224365146431374273317373522176321646353317456176441467733253275272137552547556523561566173322141365444537575447727265715346564733567352423167162721512346325637327345671111127221413557473275227264744755751714144311462711634552255654451453266531617272255733361156524773313366567577735432757264757556277437375355351225333243757734665631511446274215132466764161556243433477316647652722632337426354617157717775673276462536677434125743754145734464323577456332734647245753456225746427355222425222246135413344742773132754236757264171542216623112436735451346465215273515416621274167636762622452373743424315444164151666242527157354637367135644453451316672577635231357373177646125366146336412245375345656734645363217253114437271744532544122567222336531263324411765331743233254371255275636311311744141453612432567371164125255363776144544721266337336741566426626544321123252275341145325377173156421524151312735143776525435733614167476636141766365131773471161671657444257455314226237677717276365242671647471133155746151271227753244331211313631546355574527415142466416641224472346737571453366735516574727571636631671656225112662652255224211773154352174717116374621544355365613331652343354223625762421251141515572746375617312211353411525675454657617412452663732364557236715564556637164252665124663527437217774576475233523335115356232254165534515437712445145674537156674467241674715141566447133242121577624674474222467344367614227317272773343164324361727722534565525734261476722471574575762432214727436576512751131512427754216677653634515123236311462551111162761454245641354115364532752262471557363166215536264151246465734211131456361143773577624513376117333462331445645325211661232254216556712156653474326324651766511365277476363643266131516725766735655635464141477312474365164776454251726422662522173531341737716533634576166351571754211324425217573253253711277375736172533365435162421112142163775715171441273713354456673222522414114367321722351127726352533764515144176217436447443371455154536444163673736523651117365114557414722423717751437551511321717761473634245253326314565527621627756443766615241171446311473565453216436416133342326251511777636161143774527245416344416515471217414614577515365222662533413644615317756141567322511763444627311152747763133176357357623416557765153261674373127765657331115275624233322751364573351325535555237663126323453132461532215163717776217242517132272464676525127716647655146142471736321362264175751756572327466653624164374773462762531173753737333141671262541137224435642156212626675734112326451214612236757232733546357512467671263375374237422116654735273253472641472134116411215611521166527714154267661532753454537655631522137556646632227576361247133275427416314117423313332567572733516547577221263535152321362575155742633755773455172325446525334132335722432661511752621474341164336722255555636644226277645743566372611376163747672532626323772543135265173571451744236151452756262677326767136222545553611177735214156266361124311155656667672413241267716227561517465254345527143253263176254344313741566232355614222533342176646242522556674574225572247361244267542617571151614354672547565374351532623747127466256333323742471675167463366445473326661175436636345373742526365527417536314166122543146331356147312265116434246533141663722646766376117654377253666756357555353323134212553671171165624772441673325747125474525523426137464464136622545426211674335252121577213765353124636135462311533614634224163475272715654115361641224656365736556166554365134117333622651564342151146576471722146541647125562116112171142343567445452465233443465575113236516654521766413757326216711343214113454554325724665515517533155665223711443344634515365342656344177461426652546137756423512537246324367165433357344226511155113635473433365634552315377576277574345517147743532112641722642532357741765163346456643735223475634531631536773752746443265636411274261445255653146713333235776717545672437324642533277522212223177777143176562746367341662115426415433732521126765623112323164636412726311413321173325556756552413524544526157361733477426473645231614467274234427677742521276612772531461224667651546121247732233477656117616563757653676672225566465276256145533422612611124614543373231244711354656746252543221667124247751126675462426673236226321754741262242612753744267221153161675714321612217475235177276625714515251342553644451367321113773554311435634327175134356376576155625772554317327122567516367216761567766511452465543525544676415564564444512751545227715466226776565132612111264115216154617621677324414736145476311235737112163134575217115565437542445446765212752623724472354322677334344275464655247627244617176143576335175663317461427277111136426442262741372342513443565771542417745232372536621364553343327677664577647714717136523147412312467131136231731745616224265535675772224757752257731553312756655566611416424753746135457766565433334466331146432346115274763447163542375673456712534345134417327774243125452253545171615355411511135647376514177727111646517762774652511574123115226313164263562356441511112533444366516335674233267257462546114642624667357163522446516163674271563243377337571136117626377736725442613735725232143734764651663537137424326142255462261667155342354426741564713562711217115752117641556626427717117322233121342327514566331432343475631354517133723563426672136377173337717724335775351137343374323657651752414325142165232562125523411516761412326555471557173765236411326461534571431426547135561522553523615256432565553465354447525271561477352622461646575332224154132213257442672676655511644341755376624677261461467147343671176636532222241227456474447126257733716131347411447417753666673617222224461333516647556255246621562675343577757135124751564461536646462154162375727416574253226114752361117241742714553311633643252522623146143354633373566763412714117513421155451721277276451663413354736734672675135155134332663222634527371571414233756521617333425771122211353777274256257373735646642154222632552376115264651556343552214376554174726644343517334612132673557351663541215555412212436625374332432177231776451563135731557114457667523714761142455267236347125775166361657173232762115753654564363132231141565173275774263743373726143346326146556466775412643234752476232155724552463223516243752113637255747335665217472415773313517525222364154766625177517237512575337566314772565465457362454735457437457167446326154124271773432414463463537452266762422421155237615254527564623622154436435352243767342411113475724556432266313722667222233514275554427656527111466472536176437226667655546457626667132653626642431626462331333211125472774751145126256472424145167521137636732553462342615322131124236221125374743211463125541664377232454315713433472725472657211343527241733376736232712317431465146273476735622646151212255314127136476472374662467521135655271275155716236714264255262741561622426237173774522347266463552645117744753353636262372157535123534641246663366126347564537542726572535335754777524513176254556337473346154643525267611435173746727444262656247167157134644252743727446634557556564677265772227421465367734123171652711422643715165533545257567765357322416177617362656575554563327253433244335264561542221617241266433167633453131315541542665175751371253511124165631625223723632651115467462117764167621114566765776645624745135535616131571511311215767473226172564571642122144264164734455365655324422723242567276672247715673436177373627166116116323233232575326357641652674574347674216557312347244342433173531427757725756114131565141467134117724727626647353443357335437752743454541324462746275327764171376655422465124337357773172612142127573643445111246256576767274517556253517431555474354263214664653677152215463334752511122522316575513734513747536676712373424263145451121534571372374523775515231677722216756126355631141614446537431642547453277274311473747722774171346414634744576556162165355775222773476164555433352562427326742342611621375242666755327242156412674756227135225232155212321151452261772126547374412323644663141257267572456515165421676464171337356436564545364126316165516631766532422166625457272171751555763637212432324152171322321517315712743275547256367621764155716617114355121237716662167476216177271545361575515463661132653564475661531617352237521724212662343742224316454561643655316566713327541313247636614371221111112445422542777262764513636757157425356544154262471142344153177243772756465173244442615433653716326414454165523261452315614114146726555263746265333664355766413215252672275224651131566365246677315616145651445552542472237137771652576454431375562732365261177166345174647661447653111731137257124545332422466455775111114243246633377531661537337142254777323326666631137124146264371673546267267764166171525543264465652571617625325344426163573353741221411413346772433453735462676712144314641457624362674534633635743374761136231677761533237513377541337553477657755732355435766763116774343441335131376131731736341251715352474327446252466671526743144661741472447476655534777573211567765235372432327162564453163253342764533167221331571145464171326424216626551773244361727536661544154146634133341166272154734117536242144447114324334552346761743661774552574246762551675575571267377144325741641225216176556675634547313277275326241757536526272576626257376242165363356247152341244171232256365233562375474642656275412647567222761321272555743663545731717741241464574762566156422235426433667736417717275124676132765647236231113215134636235147341724741654164475171674427234367362776755575145656746517443273342532541317734533536417563214447624171133146532775737726436763165466672126112322116117652652157737611134144375516337326574723135127343651411263136261141554757672627225366315737755772257664645237153611552256244134352347135647555246313537354171526664777465552467227674742441424423133711466734767746334561643316621223372315713771744323511242134357527741651252356621371527722351453457544762127721752233126464531776753453665667756211534464136247135472761556555416561231645561515366554532521352331355542322574222117653745272426674447673142464574663277727363352616776222461251547261262331556141137671231446534653772245432436433332656713777365566122674131765437635627236257656672151663662336422325247356254154252341647214247371735753671325733211464524142161375173463534441771731414122252471221551245771211424565277335415627115232133344315163514556326172713647742361122541222776532453665341356525631125251541424773261735253745637142667744117627146341766473166273463477272163177134333172477422177341467516237132656175355411621656716177123137424335173754746245146666672214157674424612426432247246125357765766527227371135453416222151161676442454524646475756711235334433361626311664645444245461225657326472322572266143667425541245176147271561171724274345113147741155716164375377721355267573511616327126656416417545464345736111152775753513355441211645551372577617375657326773214411266226576461337226152151313644752716665534776632647755115472111412311775465467654563274143356411742142621457546214643241615467554772263341325246532246337115153663773336461216171235252263671257561123673125644761615224515544633646235651344153134756421316611375121726143667264562535666557627423524431726746525672461447531513766443544537423113353531474454164721315662723444673345325774512175346745236414274432254154634745612575312372612465623231715423313664425645247475266623724577741337672567314355765751353634532765755245375723533332466753446645344177626421174337467466642526353763655526726462441311314465514712371164757726272344565153724314643162457463372646226733234776464172341327541736761564227626466175432574561654564553266261147641525164542731517276515334451456537256624231272322274741415454227255151663713255365163123671324342167255457764632537753332564222431355724734321675772245524245472536441134475656346474157613453627663667446225253123541433177472467666734566314626273456656537776175167446271662572247136123122632447475435434675131245146352545711761624471772515741656524711473611164634635726513661644344425726226721575216161351445772455266772563734465464522566366534352362552766545213666255175662437657126434312743441355155755137214337164525722375324242131553515337347723525145577213437615256121264356531434235157532623442264373121775142555362256437715333764375476173352112326273314236646266145155413523766716257764747577473211653234543444271377675755725447545162546173633753153642444121274614177677273562116464632254464155564455574154364334716245773421161545425233662425137164555116325413344177366621544542326747672544711511457232327765117125125462172244321335677577222335756526725343114331222213135461167741743527731554667711335173313227315667773142641633675475137462312212321535123116516247164123265517632725627252123141166467126567654767652617232436536414525314463712171362215467434215757512252662261227552227374114711662227317526651736261237632322422544666652557644572724777143415771461346514512152454255371651351427554446726245324142562751276451326163665621464277467665715544615515765567627341276275765653243723533371363317341357167746262465147461446111135174173167626265772732277217233143564263255114714227531463315733271632241162463116263231662564125327435634712223232465464733445366443227521143577637515211654514557273255373752745636457635216775114334175363667363341234165156661434134563154122456412127726724756462241567162346276422524425724773211457466534555527773435346645177355325327665347341525442427347266121542431276343434267332456575317354521551514767476342517467311357731127167657516463634613735763675116124273264722416361555464663515327151466371642661657317767447112137116136112362467511521555566112122726541177456341322576256151364656544564732665636175133751227575463742444534417421333542763144773217554247671544671364553261752313351115165252651677466114272442767117527335632733763514335561761171142216763365675265621471577616134445244574365714616745736617612357115666525337731526431232234552572472244671613766533765221677767327635236326534511776621612627162745661413277667751644135241246453131373714612711276511426442327543663365156457577367524371523676176535343272252217363622175356376163627341475637655357657326357277452517566441446264343414333452331512571444521436174335161536772254434471153227247613533616516135411241267613646627263464346343723237466346634626636214752627231464423366354735632454262553467545217436563157654122451625365251161745523242437743221373143567677774466112355452763124531727177777557467715464763215652664675776143721113763463713672251651451366662173472747347746255334411641637137471614732145154617461565767674645746541744553145174263153252547444311525364677311141456764251225747711547331261476543443161224722124211234363533417754364515127322754177636172443551217661414446643264256177455724155134475743531367615634762665272726555253645675766462251341161262731666163753642417746163112141445535454662245411524424744261335272756445662544515251766575641363477444224477762621116656552622151144557226326521722521475766265411167123154746131314563461421163373475624317233466735375541766236667362633767436233763646644666456415672317452316516162156436473454254326453674664464673556327755312145612273662431121575441437177475257417667233254435373335356325144174174711447222641375732774412222632344472325622142656146626742225562341574475671256773564651775464721211547237346355523322513262654715153176142167552215577715214775423744661261147362141753675366147445133341545416632736327757665741465722167732515711743641737425674365615777162764761466563636415155736637656245664133772375155773517464562427275511213442267667341311666731141534644112421527564616715621734217575226562543513373275757763573654316265353743274613422537117565336245173316745327773255367347112725646111714657766215134172722135723723735324322253757471662114616272615347672237545614673113515425676443434657634325775326767442333217544332414147651472312456712322217642114522526667137275267323655533733526611466472532441313777443657332212262142315543613274241437452673222445567353535245552635613173426552422356742576455551433752424211463512427617645332676173334656114476747121716452541461114612424263766162274133227476477152324744344253562316521657531646171565322756446761652731125171712172623131164154142456667377572622115427625534142377365326276571613365451334751327247272132173255523362316623655712731244554113554213545331636546633166545155533164531365351335222431416234671327273342277233645222364216516151761435645661366121347672663561667123671471637542677776165443541564254214316364543443463126314562116541371237515262521724764444564541577624664414565771367135514262242344733464243633172215757416734177673251766263563114713654667277356573671537116431222421176237156737326572413356472733253266115711132623254622562675213623444255352653271662142321153535112437376454674763317633751334236423542376176576246123422554371242427551577557373326661147676124466444434512442264763277261273652516253643227337145376416446633214232425736773677546411245147462775336144133434411441476374442553217333637273653111361312657235565512264215513224253475762716574455514335177421257517217522462227712434254316543526557632112324414656215646613165142246346571253731753447322541345552326377424611275443374551716675136767622423434371541326521377174712775241623364441564556676627317521356441171444734311361353375357515563672647343774244462723461542411672165223422247575767245422174153472113575112762571536472672327757171541443642223276255446571616526713151345557217734672463544426331536773462474466267436773455411475365734275555563545336614545615455257571457137413357347615517345163252311425365512636731421555365613255417136621125711762241216667324756762655757452661216326226247746634131647725114326267122746143637342545531451714633734221146322466743617665766352664427433475644541222217777546645477553224711464576717171164752531576111422551242142754164671745225237311667675711416116416613434241212267367761132143715615252775717245275264317514225777525715616543462121551533355245127722414457621142326472647555371364534272365371523454761135665624377616155675167426134137716577231122147646544677412226331111234357563466352133215537454474431265145524352665315162136467144152776641416615446145442311325644255131272163636664521653714511335742163372775753425422114554616414713343534432675556167436217161663326673237521315213247172221217432431154137167621337256571621774146354151277151324242132125214731566375414333464212414735466151241177632375534265346132672626143353447616453112555561161252277525253133712322576365465522742124543157461522662621577242455761445644722773373566655762141737213772473674224613561356674111131441721477132422772741742553567645746116111464775171274463132225722632553712471111332111414547342536123413663774232442514261124411312554343653377645725544567337377665212667137114625473252126265353175365477412775654273426444163572431171142453147667232165515775332433537764217366323422313712545711365254714743774356676211556366316735437134334161152172241176137743515627363772211311545755651655145727146446757122116774463641465276214742657752273163532717147677611326513513132341723325432311463535477761264531543265637272342626556465523265432162545665232514353231612232715323572271713275625147241566776631371527512141733537463543352234364445427744247413542336573637365732614717424474652275756451411313414176152411317421336115345317757561466641212155311322757617515663643632642767431562767753133523217663757347222212517615122413124123532555511141223214726276422134417566447643766421723643525131412571354341751613725371664476547721165523731233434355545114672773173764251473656474242142641151552167426656244123451566153361446546527375312614362441246514641525316456171372132275424215672765635572413643155276252673462671374145325773231151776156436616145663436127453561667616451254162751413326464643133714762117636735775441311175371614372624577513314251212422163444714177661641373111242413731366661417377374623144152232636174153134265234516113632166452272617323142566256162556765523743233376574153671617755643426733356775656364653745652447713675232732627756354752446713723214121333546435453267434335646271773736412254133352415142736765756341212531335672143657144632541376536173226636233527635333616657432443666661573166342175357144117354642442421137754254111746547515263536677723722441151355142212122315176277671745163222745267563623443363354457366771315124173475142371736474544435565211711351275325531562155622361121213351467233116356474265423434656123363216536455416746471154643654314546411466322225776275662157671264736174137252661611367474575623426337634752151342362353123614356372376664112236575632255536273124353243665177767554171755615326655272661362477565315474375726715434733753333222142723343254144521313522156417624216553777315166111573712552554265133434564374326575276355642251175451737461223763574441234543654422435514627316767334556334723475631422223143731764443467162431325461512726333522356726744211343173253366331722251164751572636247466724567551176215773253346353222215564652772632423752375243674116676455555751313617142656256667657616373267332533636225743731736711647356371564761713527122326137323252112272761772355267522435457175226445645756314143114352131231753627524233254567112641163116223625567232447227127325424745677251137764347351454427273567441375571616243317556332241637675636427511546777756772236323314276141723177177115715242273535165162375526537531352165316173571312642525417374331647512411662134311562234173547725616241346552214263516136612625315333367345656275656662554145516433172136124654532512177674464331552166667465241323542523251725212412271346154226573765373516236577721746163575455164525266722572664762517261747656221151643132331621111127134212734242337543676162172225341762166613735112311311421654517615134616221123363534566764336417212614646741361543323231774745651151635431561654217444654247125143237713153251763137526142145553376276515142241545631544642431772611473217434522314352157313523674154315441113353711216157522112611252115127346747261715152362753177271122266763613133732112277617621634253253645147554154214275351554212427775523477216637467116174614156257642371333316444366315766374313226347572134162537457357227652264137721224633715164123135132352665166321614316224746353156424623432453644377122615453751624315561736424265176367245543735477367563535154664433561455641421456425761517366742441476253435512545235427347355622761511163644211145676744713565675257275561221425126124624214615522442137253415337233525346146621155472526771525557143517324315333263546446612466463753616451223554221175757135765374776633654441763772511413323153553447635473511172362534266513261536521352633743212474724715223317251416662277521661572262725366374445345655737137211537632561411176733531324337452425527167142351254527763435564635517527434772126672667142711414355331314114326215315332543775343376341742474226156721265656323744511714145477325327547326161556146136634515546377345376115163771523617371155775741471421241531623114243341162656137271424571662174631356474653576425551242231552244472341647336167756173236413541271326522444464462372635677353373436377555313153322525376423662235266245715424746337177733321554464417111763451373323415647736474146157356624755317652557644424141667625517376747125272267524237335327171132725631567775167414446261111323416112251261767137474333454516241161416436445452422754323113727737262246112557622231674274676712732255767345441763162473174165462517415343217315614165474112642722774647152773665373754564151264573156254465155515214563461417157475314173671441273561127251477457171627211244455143245274354311232423544561347743361722456111134476753523566464112223562372415255764337615553175411157226577315123565447326645517626551431352174442227241145626512467634762272746171225233116776355237537767353272314247442252277633726724752272532346223431662764356251657216361526447634232327146754743764624175733735341672677516374713374614577273741131322212233544764565356367764117243573617363773552317147137647564134536454165433654671615561557352636414313746445234336124211237534415147444321734577312133346231763576454725321671722224442375515156623336267357463676344675455264157513422451436727654244723553262143476755722624511236132416735242513311212375667222224366171616157331542112512543656414423525333365543644226312717551224565431661535732456226526564616374231336473276444276751731422253767123174324271711735132263522727133433175434546632545665347642645222541315161665231637573567155671754216635714431634624262376267366171673415257254646366536555575426675156664711576334117164655326177725625415565332742152556372222325727662347273377625763733265521332317553673224117726213631312545676754433146667662513716156324324222556162151147212513421463115626175613232436557737373441751533354736461724562665716253261434172616464555344643435354612755464545413771636322575323673117747424265565752614263726327747743716445323232332141453316373316617664416123365473547272142373375463125747267746323354557727351717323326244341213542127223251353224446473141352625741774421457673351321635663155763273535713774443475661367674473132314174414252521217446346717232553174657474567671756622524647124545323263642533731612174662573357173512277363676152362741311545655327537577166773133437552546444266243232341151574246115473336766514236354471561275226756312111172516455226274435246155675226347527354277727472117735525341275146215735741772322316177624155573524437323334656271717772571267543226141414161673673772153372256667524664412673172472727341577457541237671261571157451425665644542756156265355463321563453341734242756567334162435625162416672215514464326146413164514154135367241527163176136355147464267627545727746266263132636575334416373176112142657373576567222754625226746344642671262237362577351714611655233423641755715275232432724172624266553741653413135462764474576315272466655326642671117441131162522161167612425776177755262211473672111763244153753761677137216477617611126533247547631534555525416476523416633717763157644416357131172553336741741465351713642765766353727513727766433634231436136763255147542531414717532575512411147763741233374775757337111362316215613625356765454577522542112743534137566365242613655242354662246641631676332614313127466144367164267246113414135441317225645553373311331672316253314336134521241512556745266124456123625417435575154657577472147751354124176666574162242123437436655276615514554374517733475531317731733613377721371414653527562665171351511674634165663335323523322446531711414124613245777452674251233235376711573727636565174513626342213173344656632621337111413331561773421715677163316237367714762371633645345554775621561651361421514267134571212173263247417551641261374144175415125353323377475614744352172644457115347771147532346774215462136756613573617764137737447226332246221511711677472376453474431654666746156356416757514744577566256153167114756643613326767657565313612724521316577131121225175746341532275425375317533545455243276252513354115645722375242167417336417635457134757177634134174237777774651656363314217734354166767266745244772334764751425124732762757463764336735544615421725225312362772336231726416357553414146215416732565777552476565726524555336123271161145326375117652226761664114322537462432232237464362547162524171137314526733111536614732414715231262644447161234245551111523336455733316325432245732144325657535421652513357574476712334733115657735226564534213174221734244733746561446123534244666662426122425314351364747464145744225137372224662121425563361766417223353616275417462147576516441472731413242674644761131122656727233465621277676274327523727623547227671722122742314465661752447351442543655253425753651657223167225362761476157556153232153563624354544625432611425151377746221656453736413664645453513617532527454151731211616563253434371563631446532763254743257623464443646712757266575362516711356614217122337256245765156647175757412425767626632327136722721637562744443534317553675511723117255443121563125214514455456177736674215355777521272747415516511311732661361453574767741513374534531117146273663363261452713455241352277211577226655722324553316435664616175721716411742311552525275666576312373344542172356527351241111741372747423524741724152276411524755242214567175366775234176157565373634374223653654411221236225155452171535132437211223346261116643153335742274325441675535636533231463461521343771171753446331544714463434577271217276644517754566124461157261212443331711617265111557655663733167323514516534446513511317514312254636226272735527762113273525142636551571664535745156476757475757645715124477374122762557627515512413325654725326626714115157641211644433225666542443754562666777254517133521576643251647127717135517514775246744471656571673676457432221146653312561457437627565531664761755216465543577562641435513222317141711664345235423565447163325241433531356112644243676776221144111464623533121444744654516514325464157333735112477214654644277747544527214715266227515373723727674366477162721643724553155467357125756775176373566244452327354367275265614635314132411733762532561371772574326742323527136373563612623712535443514256162123371563254554141575766513533635275273612351164256766647413677427246737266476224733527651131113147733763624536231422421524745243346644347613546712353346732667124712546531124726344511424723724435523565511223147521663354557324715265136267463556634263752173414232156765735472376716424523265721325224121561121123675357715471433356657647153354554372373243216544332436544761456217541174525372156432376776254115252272643414721773223134742363312522615266572761323726633772422675165675665165226543425715267361766666554364217153334236645774713511557316646644277632436326631322577521326212623727362224121243432474636557153455474525347365537111574553551146775357213332726147326164453566365225235572165711643653427776745657314753273774761466621531524374244742363572272437322576757411745342511761337574546716575656754522612121243313776717567356253734136257373745245135114242771373117645575261725631332767361431153146637557562454472717757113231445431417476633474676114716441515361533572475736537547153616161736271452521335211255272563413475325455531673325543272442772253774553437427162536255411672231431225651623622164612453553165142263761153535735536665252671514635333557134631573363722311461264721366412164135575117241317447141371251561314165616623746122745276234473544254744636244746344263127567234642346623656363311631253131243731265151346275626613737253376763771717744773556546743767226225626736744433111664662261223255132744747413715114773123355673416512217157561312772425743524176757371226376437641273716452763577436562512556443464164133423672656644725164747326635442774465543426132532346277275131342777464137142236553313433157114315363776113346214534171416537252621312333666511363114254121247441573736224275234734362174231276255561423233766373722242675115643511662177567326732147446241734476565114754727612136173127134664533344242554535642651265277666343677335572255752257466226225143444416166315222546626532453261535177125766511164745623767316362272134632513512317272417542571622144627761353614645126263333336642334344473765442253273437172767232766535144612237647123733223255544337145525742137132445771315273526532215122324231475214356266447433654365627244324136553562346473671437223231572374263533167631327364415142121352127464772716137267531434657116217357757267772117174157645555417346243272273323325734737616457515443163372545317715327311255226672272433717531531273133251115774325471772145132241564212313123646426435633446574652474646257545317264147514375673233727535613553572216257721417743335227122476756277125217361265612345456517416345351263111336221355112764635462336545767214146373715374771557112757565677223753464114625673614212172751663362647262744444145557766163353671176134321675371267156665323524734646212473333463367367123375111416446577124572742167173434244415341231254545751167177453776547365421657433121136257224524511641313577444756172117742515277353424765141546456676774245774633315175722275145634634253752555115726522732536322114431746223145737512714267113313777265126423317271371727741363763772533416131752112324327457155366631312324423544766521667565434322552174556133542414572652315757125445122726272533123371532347364127741343163347652212366634662375272425635263251372642424713354774346233751376347623166671325726452374563722765167566355511372151477266472617415455422372333547611522461541523471154474727374465657716264457737244515316347727614615645413415543334755773774656356253715366143415173673173672441457751517435766416716327711464423437572644434215216151162127672244335511365626547455473625675232764446566452345374243534235152241725714653726656373746573371636631341127431326155463442671665647614126172126134573136326525313414117716342145535732774646471741542445461675451466555342322315552137516676564623511245477741527124714774752445715743623627113725426727514751543451652235235447212175766565653317365612336273333544354343731251377262525455711476224551143177347466532376217356371657666315243171165235157125144343331163771232231764673624321145471677161324431647337532374511451531551712556633667653172564621774253463631535223221541117512623352617314356112434517731113365632113135672514756441343544214677277624474566365231276654274663514675436324254661121176436736417111564517345644767161143146617722117452475163661617614222214216416465745664144235327742252614555525221676414247762766224516274146561661532266155355216767676323262247424753662421141137731752271536672316674147163277312311547624415756546354463723743375362445125622576545213575112533461636357233523571232512332626155257116133415755162253516117617434546352513321221346617527622756533361643274327465457541643132714253447661432512241234412735126555722172155426654666421523426473214425643416373671644735367141462234731362133332517122642766745261555773126351633534111311325233421122435373455731543663726432765276442171546242415774476353462173757377444371443144525543712322537657524244311626317764365521714763755472234317257246516451553152557337643274122246137675763212551413561727433657662663451112277252622633676264244532161364524552634127417436254546145275641326422234376243251644552471364327271423253717436512267321351174733715423633767631157212357561164574247542232136443374622671727461225173437652416146622123324463576315557544116732614137461227627441247123645447722534413526517545662615211164151335615367141135725316746154663616326145153265177721515533312514536443261511341333415477622212765622251444667732213742745156264157475652231124455752356265723521671357662715443352516425127513762231127427276523774657473443153415431462521413714571447624333573435415767147432772157751515274431412172215351452761675145675441512123343261246536535233122667147361616234452436211745366555464322524557316542373576234223752325617355416263434674626447156422114142673513175456751735744716227533124576115765562665563253776152575154756654333533411126537355624331137624457743214427273337722465662565132237561123153476511766547127543166735157465636427617673774761366373711147733615616576176675723642244457444135626516335314717373621266344757533414357211612652235464232636512143512423514772236766511663554153533615276777114722663652336145311613542441552164243641765771443625172436425724451745255665742424244311353755324622336124631273711442661267131514647663356475276342632751655136433521757637441375671166255761634275314376433474263473337246222741572141715464124555711134656162333557551336247516327523223732365633621774511771532676311724162655231437122111374674436427126414347373416636667366132614727652375446711565563531535725536435655521513573361745227713557432227712154543712215737722317264576517625313773124717713254212653534537357647263663665274734232575267234213352542127651345657142571624446663247452547774463471767152427325731617264353623374563567142713677112727345747316776244261452131241344312127141147665423562615122255725136154352447212661752464623315231255524651772257266525226451265322173562652177225111622667717452772447646155171712274463565643252327475314233334653333523416634265336251574137516342535776772531373222471725676634271611421764724455616171617674423415451657262631531343433524155535474451577164137374537222537272153431671717524543237241433465763446536647511166573417553241757413257143723242221563652216474344773677212646771151545165726364763364216463353577545453146176475724544413742231315743456366236641425767455677721535113142766663725633511261374341261664264162455142522541771345453532262661736644116274474547415761216565671665477221661255216616136726517775536452651675527511325236211177153632717211172744176532443464563266511423522717327314552137521237111262544735771121411523615731742167244747557652723176466361476674627415363457763273153772241731433574443711177337734345561664731317754344465521535351726326721743747475253125167626732753555742256337254556476562575613371175334277125674645534674456715726651461313213567333732371273114612142314535113247433774114435116424545337741465541231553316137172457312227355141365453114731732216131462322245374142454256352464416455727234663471756364232472733711412426124575773623346515712313465747543333132414751633535665324721115432654116513776452152774316526263447762753454211536627361334352617626114443175367363322465113374376311155476245273635163514135664636634575432252435354524337727412376147623232474222714341444524153761763376447263454221376641447746255514462421667471642435673611546421267321537461655732523224411243472335477447534337522143515741277533274341324751142247631434554627341175137646654112775241535221366367113267765465575313515436565423433753761621472344524257225661334641356432613736422256172762225522756623273411442577417617141624721713424675132421462454361553264456711417234476544113542536744513425451613242237731224467275766327276276524146733254713743533475526345337644567775366662345516461336151145523523362251325216165217724131623266525753116646546376372716277637413217531435423342272514434416551772756221673327451731374746614115222245444667735741277774575276632145772471465271411511267711714127621167235666137171327412413115217227334232755766121271342654475536463177314224137146314661332115163464435256562616436236451573271657424242231411365271137327641745111434657711156777714145232336241313171773221121132537252515433454665164477421643217136417353711411121662643636367474354311672144156135212615553623241612763366615437263455332624242332532777762444463747473755473636273313471635414722752456236433443615264361222124323462415357524216745413535131563221351727172624417161433246324637776271212563135144121546472264364114335475117625437574355474222644471347752144621567236675327624255271316514365345461251624776513244314256775423253312413722564227747576467243672122264565655417474564434457746251477147635416357125572247243262431545532372326232112336353712165233115345471424646271747447665422623467247412717537733611777642135414547572713176762463562666171633327467671171767335525114623277542571551677117133775526217531614255234334234337531412234226417126751374737563556721153675646542446677274342631622641331124761245124255573776152455471613213437352161642152157235175357611255213412577724133165676433425543263543124725532147741514245622351546241653436644737717325227345531356344711514271161234746615557715652353533144253416173173541652331575142566214455475775353447674753571641572357116627355622722421671166256473415417355247442574764713637577242723767414541731431132535526532735324374751165242445632413257562325655354663416643446676235215437135773362634632266155171623457472113532736312641457277462621577127564171743127365424353656645756736545741264333166624273166665572467154313646354157567717775756125243665262127634614726735623446253551311514616411213776571235764243473665265237347641527734643467641121546463336424517513276536612134272251415457137112331315376472223347512257163264336571321371534161242351367616353234365316471777224452522522547763312254214324445114367431676715337664375647375215644611717611344233753446477211175467467561714441745423372324424274142237322266264136366527262711326642714224244647575377416717753731121653266564445274256147134441462541261257523354161624531274234521647674566224623614457577333676764763551473155655424464431111627225672142567445277747572574575637531145324357211225165246637533617713466224235367177635631675275267645457175643742646431521257177164733744437735321175247375315414171575131244777127733663524465216255662116516537524133415255765624572713765747122434715633421322673275574267273545245147373545235545234654714251715413642127732411243631423742352713317613627171124411653261415727257352735644756431636254325117236363556343741723716533365176131652237164362553165732361173715212546445114353761564633754266176464231642477767145641346774675533265363532522446133267251642334754672155237465317646655743116673454562416565226322212115425326753543115763416357612713655417225673274662344271261563767522563443773362626456575755353546634372672241424351131745413657553373462615751316432627477764741212552754652624567143173272667121465773361552241265675125215331317277635615141261742554376241273332315277613131226414755661112335675515576222345375612361412756445137711622155525476545727315242165256252361152612577311232166375713642117215377657727143342212714411511633574472374472747257467131222326766445616446552571541654717241147713673447425675751137647565572662152436461251166273356336115266574757616645653513742774615524315772764742446131544745335271632431541345423345521116751471564731125151713256137152646727265562613331433151754162367271111761142415651167255565124145165254362633421536545345756553262626466643215477355121627574213316364252474135273625111167472144772331662316126411231231472576377542632772715555571735774355116263357457647325215422122661471221446424322355276641254442413624662544276433253157376632212564264451171745274611737634155434162636747235764345457434252616334527513636335653537673311572435127711464337135311477133212456261261441273216156126242662737766727764274516434356272452665764766775415267732467517156256765473373155674617156121226154654523754462152642551574626524321663271757176453742722313256511711347535555413717122354672563575631774652324725746264755235624371471267421124527557245767543373334363234437222117244643727347614353615452465616632326631776656315775432772574457623516715714744435211572761426411172674664271745565636135177152252452732552656335237134645652176335547716164137542666353751167124777772621325371557325513733654355455647772433611753544231427254623471511643235342726442474432225664645742456213475352432216437126623326654616257715257517443465467132711511526437156246114543323225537577743725732656566335777212654644531733636114774131627533731425272416771723524136311465661143573735535736372724665735414522111425171714645741526331773554676747467677455152124157267435227223173252317135351756175141773615235453715731665653673477561152775553145747145624224663743761257735343751754657472751355763772765623331336123164363431226526126512144117732431777253475367263734151661553117221255616444473617334423612324346373255711562142174455135267624564212614754161372746553472465153664255564213343537515156326223414231171431164341312127161624375617121164373737272514524625344146161217747345264446127521356164772133226243763431243334453471771313736562272634652214763224333465151641267343141372162514157427245432551516233352572654351434467243331512425753334521167244674611354434676413747322522545235727146422173734441372665231665551556427647134671642741554754621617543436543334427533622416172262336612667113446542233414324542776567156161535412536776337774375365272212274136272711644745515333164376526321231441545333714547255615566317544721265727422775633424263735112573612325451551354726336642463634226541316374542134171666134427141636151617454516316365271553551653561652627317332267711175554543132216472522555674675724672356571732673146213173474316777236226222521726557167531252262114727752124216174214267416526746532526732364173624443414357353237412476645365667424165423452775746315172731626761567342616775413434254447633522661525615626577734551226311663743134635516476412757212133211626241724676655525724645257412664617122413477342744542266347547222123474734752366754174147115131342722326124253247661314415231256547771573242657745775537352477244353425151346233744637755236262517262171235152567152141663522773732332346263331447544534225424617252427247513747635322643315777135377423413611573336412153664567437373633224474146611126524374247277563216667263155377252711535566545757755674121752771171364133777416374264516125214335463277471451422132523444275631576117156134216411664247657452531532431443173655144452456314676743217255656343747515653625215272614641436263561532427672442272454752125144423416541642715234573261413316652323317463654517367627671122227362713652341711131223213335541617277475532644151212423166654744765745532715524534716425213711427324166271753437741773534136371322631651147323227311773426345377574671176147473535524176743564655246456463442736472221724514273136615444122314365477612453113327311766477542361131122451672334355454324411747763174343433666335173534315473412621455123411355775262722561733134371213555613314232334414617132563723472253534141415156556472752254634144536233313712666546134463755472754761421633221114712347665445533342475671112233724162261124711355425124236542154673722234636655537251173641166546251464247145637566665263371365172337765773555644423151321546246564562462641534361516647734752732311457745131656637535641337423765243347142137123276173325461771514137134447562112722253113314374771725553442752345472134555225736727676252347674345651237752545357247254311371135723147135312137164713445516632324641554315522632443671551435676354342774556152215516663737427445112472741545117551451144127174624164352447251136273311114724515324753217444457317751751474144776575737764533464473572741365165134647537373653432673111337157662456433464762424715435452551447714651221536161563426173452536521416437513533572235154533125776131613765447631144562336637346343344743571663677355612475531466112415165144434473363543226466471551461365642212431175531577457425663714517641714234671162726172762453725721133546347445651557747225531324446733666533421577675516471625271275463456112363243135115361721241616365275523151474375733225253345363724677315554115627343257425155551141162631252153176325467115763716716263327534735777657551356746641576132114621321416475542537525574511721513656731662356623676365137142424612616765224175376135731756327772272711524145774726533721553654774265351774475216251554742436146565323422163523433621325551474444275447767351735217353137277754365233232376471323252565625624462216543773643164512662443335675136174313576276666145211545436151152422711732521425146334277125224376667163334416215751511414336776667775331773713512663135461361361257712222513275454757426555673732734366537156625322275254755457664412275313375737267175414142141572723544115672731731662316533512115473123623115232312533515775376245447741453365436713264154624541416422662111763755273612274652723774253464463167611371431227433722447777456665755775252473446737375316243242651462316467734636767521456163441427547517413717115267244154411553421511552162763513636434775253516566744252542134426463773511252741746464642246511547256546655262467326722346131224253736725533173135636164171134541253256632342545331457267274767175412415553731565743751172577471353515463766146552156351437571636211767367275742356274257327423434533571417125254215743616757314671347517623462712577277766721427453325417756367456467576371433313744426523343237267256117354774271652524241573533447462417117421526671416455141425563135756112253253225775671652431135632544662271632422123311563617574747437751154317632153231613572216343342456717172277632614375425361616753664663224377477321773531722621276576222642512744755321522675126176137224416612411143314415327131734766537331612717257732655567764372345277467662526623277666755324541371441437721722243331236771345575542716627123457674136727164634322623526631166267572574413765527712364257375215266445116325277272431165715636455222124765516536773111673476443264511216161643654165356525372622412534433631216635354127656252312575351634756741676222121735267546364451156762243166317312231214344613132621245655475346553673426121523626142626366114672163636652624226122376244146547766442327412133746417323641625634561723775312725575521225317173553655265115217167752174734145323617436342163272276427713517252443527543652162222354264646564631214151556766227446776553522235346765143142674742752646113335272112725233522136335511443776527131233166432645661443416727772714141466332515315443615626517122725773647117642425616517372414577477163765143224626567637762541521437126633355647726671711156131214226713457344246136237436352372725637314231655661523557314655157653573337425223276653525373122116577124267611331136522353665717756172411562636732113342747441346365446416711625737463651725762611556527331513225165542545334634673446412554115724411765522274776244226363614577151267743363652617232752452233232267374522121472425623772314531666617471612752234717326542224223225154347445777462435471524356617325142225634674256717263611572643461615567361715616745236417674243434273341343135723555526676222565216532775471214472344224156345267132233263223673237652371234752756213523755456111766335351156265215561176655455555412347446374125774173772547324265323267737532342743452646577217151471524471735223471664544677615154137666162515156144631311363762514474374655452277772233452652122613453741517147136252537124331632166553634657554513765771535727136724317774163543253164147532536541272271711366674372625511665632642162372542333163356246245122215335656142466766233247774577631573462415745535461174215576572663231471376742522532354134613171425565724623775251515121522132374154655437747465646452634247417225522366363442236214471726776712564123672236462472143256245146326621321444312643166523337245277773234271642137446321764171611621144665653266334177376116111363517266165424441251212713734173444473313164537666176321513222476146477715462457252223274617166174743743623162227342561252367277665272654263315342522557171127276625214632374121412767177122133135647442771424475674614736152554352327517742572372664457314562237453343431511132437176731416731716253627777213356466372353357461416711611723367227757326743722173674175166334447454427224617737447146656623467435217132524527463471465456616651561614166631511247316755746644733213633615775733154152667545251572275457257152477116475552361441767644563411742763543321652727236113663233447647233566164277222133433766233326352541441167112315762252215441376552626625745277177336556333463241443436133753164737615547217645712345271517216612573367311375176334153335265247427656711251657623241765514337261367377315574476122222663237266416446577247736632244434766114756734575533525427634311116627415311162555721462566316331212374745244431133313461323355377631245752334547272547571236177253377115351135144217471635645674225135653675413144215372756645261665463154524122633473771665425615453772343266363742432621372263622332566276145341614166237445131473542561476143323722645613437666254444573311542245333224476466375741422162137464321542222262222726151266574442165142464613735236154174753527626433673464757414322142456727113755455614213354125231415327431627564346766335636352523454527712671425225257633671263532273275464627453161264653672355576235774466534752772357157215155617372657524112422757655715514465536624717431614172171512554233716771473435537236437521767422713613764321213125152744234175477761477732743355164477714423154162231234442767516346347613332731363516252462452377234325667765113574423662146375331763443641454133674153471347263361746332561175354173552575634173377134574573342653137471254574134247511117534721434465523263615323314424471212446116567717371244514346176236464464244255126353723566517434412142675223746773274654636712344467641564151641172651435345563141235374713176327516663326264417632472173314336371176431261622626766366627352213324367415571753653522414452673326754116575773462645275643233675473175664475743237761556113464323544423273617324232421321567113576142551151714421672123373325666412651776276742742263514246725577766276715713277436116623526476315224735647361233254736412342214625333227156273517223153421641244117432356367651673322754731266576642711647735724247634341467237124324322314277734621354512437552124665126647544326364145321376571176771556532375225631363532513522522671555124536423552236326762143443532244527552137344115725133471153316762737254372613525321771717437446633761411571262625716226163236723322362453661164775537436662654316445712472612311774131636234764532434774255377511323421234632435762473117661652674335462155437437567772167365654321261316252215174114232377156611726761675117636341664123232123116214214136112146226642364576127642362615637243165762131671522576736441124131341257363452534114237163276573741765615262556261713721441332625723425134422341552754211353446331673427261426474772424561246163264435445617457247413171315124534176743524612631772271343364631451455747531123114433677125621767135541624636357613173126727226122516762464312373523235737141744236126275726145536762664561776531534463176713567365665353554446613252662464142712677334773356131446635174411713112234545273715153156756427512132246723653153762317275147232545162764462717477621641465427675514723551741722774172242713113563256643141333434345472573175463121615321344721545215475716465171251714262554641463333735673473421622342426214462715322772432614176333475417146441372473736237647613363245153136357637124137735127455162611234252136151655662573441351642654363617435524313463731256343441261642524367721367663712756322432516767537421451547742356277544627627772645723777114331361246137123713311273414434252321455452554165426436211554363534662546715415357133163341677262663736637572331343653376467426774217263243316333712243272253744474514221452425717344565772416245537242327461363216576277447465247365436315535166136766743112536566331272656364271277174374651541414635722661321341351612517674735411123473646774232224415564276141152513176776414647227677416212336572212222154651513472343275437411632154363752122362526245611752145362111525621167332366157155262627132273166274342567566413322525632251571411144323463233676167642761247222335167437742442357335634752773236154221125371527553447254345552367172275745227216563471224114352472713421254266754424447261537166371742161471315167634753725124763151456437471171773467173615473171147173153364373653753253614314531442156416746424712336631363735113312352265741553177762222424335567114245151126546436651122556344246663417533517553342353521456172172542635315252627744336514325634111375126544126732566547372766477637441236637453732617647256715771655111664742455746734641543434532332312115362256142637614251634277342463221536453736731446643354322577231375254657442627414733575655561132657234212464336142412217767172271324154324767665145266365316645661315147445535232161631562546246477213357232655255357445612546416442767613111736464347132316366232442422743135775421535177627652326451765271171743236145747635366235333163313317634642435431257173736355616257243736263736155256541417261116153445355751575314172332362413311665435222373135544761227561223212155516137443326726141237343574713663675543265167615121154445155343524411726535725431547275712547122673676651563437473533224511523113564363531263144326752433515126576224517527224666664747311233773626376351374763641254226332642225264723262662155313734667754217625431757246444215571361456777772656743766644374246474442344353631536736722562377137514152477164337242245534164777152676137157414431756521226637736215127146126552667452675667673524237344255734323277577266257631264321737443176437416535563447575247332217627464334317167324473221243564655624367611727762332753771347725627247347543431773172471436442224151715163436526237316553427641367477217653434451322361632537777646761657323171142472476753152756756154277417634264344352551155664512323263355664432156343342141421743263427216763171135473776152246575141263371521734463764772327276113223443435627267576116431357371614143525327441417222274233352553271544375431574627746571127365624161431315555147744623135265756565527662536243251743366215613561343442524452176173331143744212357615167644744743267414771323651752572565271665325266757222527625775153714764625454452314557531441167657266542417146316763657114332417446533675773633442146161513764737774363174451126342367342642254344173422757253727245361655713551157412626645247263733137742316334416511575331241654261254425362723574754471636723532551222157352643431211275766352547613731155452635745165575534111262474613452644541361257732554563132424771176554722746753327117323665366576364767374372644746617176735626564274123554747534426336343135713543155453141233565431366612473747365242547652242625155745114522451214462451666261775473214765234345724271357117171757462777613351253672132752763777147237332676615374577715225524531655511767772423173114725416163341131121237662113324117551576723225241464453763336131127166177313247317655155517514615525426561176746724642333413214667532417511424437723367631242741625775747223556461121774221315561261175211675643144155677737616746166711777455751567356253243241166756157124632721746774237555764552577413177372477367723217675464654715424455725665661273274132521221754522434314112242551254446451566242514336741275452661244213371335415252156217644234267711337453234743241171156572137137263332754552776726235174227333463615273541751663615316742776434735546134231337611543441747513176754666213446446522167153234445442132743411244736335243666343111423521253361773636363653527227252744752311311564522121472424542746445675737716551173153325763277734624436421217327525151751271114666232265215141133752757167111577623742573317534732337457471662644131427761733447764741611167453166141136242577516313313423552777715727743334216137467143412521612325421164574512457565237412614156531747337171356425351213575113777174146166225166714135576321721722346356377716777524365327321524761615555546547611241774645116516577365742725717244344647452423214332747352143277634321467632262525123257475725117453622516635127743261332134636613276546443254161517533137425225656422467715423513677273235761556312552663335616365326653542616551747125451252212634621176361145353265134251573775451661417435353513425143313522467545675647566756212725351642777653544331471415437541417473614512266621162133667554724154335725254156356551131226621336753465324121155644151263145271777357121533532435133352677511711746667734427552265534113175166264163356721666225711512132642577315544536635557461533155332521642436723716455533616315751322477653665167734427711143557613154151431356363134145252547521146454531666525737534462656631735774466455431143227756244237233744574352225343655644661314331754324161373146534222611152476613345154275511564216371515666656213731541233411132173144742521532245212446617633243547153346413731453717571574221476473146721324352563534713536575546754746172641146512125567451325233731762146242134346715762215642135323447465577223735535156634156512167127717733347133631534133124543456466553717622126361726247714453221267567561614633735561661427142361241126327614326114263445442661725127153244575415245473246336447253351675356127643514721754627744213463321233231521223231624727551727442676313455417733736337476677555155115545315412725561647431527344765643475336541331326461643517225112352776654716257726714474335236373614571113721112624254627534373765344574175277461226721665335744412172422332311524515515352146517726371533674157522314142355146257277244645452425757474632456313423541344772255164723577754674256523657347676424127471365166573456153721112753565524565464254623421132242447125571367227555337612725232516511471427533417334224436153323264323476542724141464226244475725457136774315722172424431772673351375266637542142324776776357525744574477444562125416525354436144634363441121432274747615441365651211664176242462167767424644432564562113726375475313465253536176546776362431262633313121313332217227156411531725465761732465526741766627113226764553661221613677677563674136725474163116171462561641121533535315614335256236414667623766252172574321255172642232315525332653122565623524621254575257124271514174576151644671351716111442614325614621676265423535346514176537231713114742575341716777317163277211622216576324526315435555264115266427461333775556323177515426236217357312773451423643524465372114741673163542674357642311231433746236556132432752146367323456764617565411644152276236167446444136115657754462623646445531465172614472477146431714562444573424615376535542425516375632313754545366141516157642672466536135671547354546355441723351244161641136763531475253455714241557644146156432471336674576122316314132137763254471271751664135165477612672337766727215275617427277371552714623635745476277241372421467772563155542423352217436577656546616323277444771321264744741725527352162237536551677475771274166733333646632577777147657177515317754242234425415432437547427252367724136612544227572547511637165177423413661314273557421615525425476661347562122366451533414156617616743122224364241434765414474565362563116457273356746627267736455745457335365623611472337322261176733676335127571542714137466575313772736551521766276773642523464674117664146346156156443716446145545644361226144742626227765572467243663124737435611532531511647574274516312455257232426567755635264636577135552566757637624411247734513635423763567653645426432346136313254653142327615457324567464434643431655771171637571351326673471634121622652135724252215216445542154347424547443162373223157735152577542336463771142373672616513673557173132323547111412712554133427441144417675775156246313137373441645217377721635541413126255433511322463464566235477122637572162336474144412446327221424414523246726423275453275236272742434747533514125662233646675173235632715267771471713371117717434126321257157326421742762163226641573537646511563567776225551445636122277252321617711744521756451472613541664165775162544733517741331626626224133743127624374412436621423255751345567552212753227172254671417545324412623121432453771471642625461132324636772257541621114377146252413176766323471663773433457465546265755726356556746473757727675423232723752736733664272215365737254555164456353743462713542355464743662327265562741252527764544332627752772651745163446454741475557555764143337146323151655716473541256764217234156474653555334612147145477322731617376643317677274111747113415475345223663562613414421522752423366112471757257612253336534176444456536723742133351714566376133571564356753166324336714635551142217536325735666321123616474677731673645341737773125516355745741141425353556555767647576274177214366214472257166144234254565615354266736154173117642251741442316746632531357673677226324377522515317574523614314235151527671743514463255557277524443415565673244623331126736111555136615576132524157252174776265777661541355526345464613414344734133217446127754534215556372716321733766572671473125613533634676771311371573743464244421724415325546676156454622336111324164526372373371256641714736257556342212451772136714724527345324262512667167372364675451415257616757245253214433734661742551641546464212643216522121325563567734514236422153636257411151441434225541413721413332362511644127543226467172243577636277274676752315155254572751754665615316315635354712552767275555356226146623561171257556565364731754767652342342471455336154566764353442615142213257113632471317745473563417721256371774135265373733313763156275234234731567417713355764261272715457153243274176435243562713175642551274525235171525174315616474753112674327127212723354145716324625216547543664756424731633574256167653647227635477273375555174774753456461463223154575442363672411745515753466713574347677171441434325723353364544212361411444411233645114432137657717157124666113467211654171165767774727316326566421516317425334335126161722561532522453516242774477371573661145327575347175314154225266454651513574322331771477232157636235317657411556645226142341435357722621751126713425443777133562674775763276171453327527434174263564472722733777423374457171416176447651244544576246775614756656614511724472161714774465263161153443636367515577367147765213412645341171741631561615574434174362725134332435615665456212522342654577334576266156635546732266455125157541377315371156752111756471311354423453323332327442557426551515257536157522655623177133727262716773521663257253462476711727222333514572221335515154766761124346517271423647531236745734755573355415567145212234242735332223642422277224145272726212755316574737147272716635136751155777756452377437621514221216233133732717356323315465271223156553266477325457627575216442766545154724167535436576337374564547256762477344126175641711556134153752223261574413371471547563372677213432523163514565733121447527641225466774446236642353321414471522277771545461265413135277547512121121116664712563277727773664777213423221513171422414474672413333564217371611753325656455726261451262121313327741547315271116364313535757212427565435345457416747343232263435513267723472532447414737141424174514476155231516746351356431757531112711545735533461526463557634755267355241634372454433722115614342377715111432711554755267157424744146566633135173411331345416113621477463176517161334372143154546676656255147757213632156474147731627634541456577774372251566662764747425563534543164312571466766463435215662235555116465444433263645476155272156677637474156516173643561427635525512653377347356643232375477343733312551514443431144415145272574237374365142475423173617537612324345174717151623243544511611743411221612727713431616466451565236251441644745311313142116276111745123277575425565773224254756164765414574236125725236763362367665337176433434126763552221347226163763635372614612361413436452457666263112214774224464647525174763711313654344777435123276615324625167446162562446357561552214116635661561751315233322361623433316116366563623547172342444677331252772651152427346662735426352576727176273546512361674637416757651677421166647217217764644631637727172212117137157147443737223225234456657572611715653366371734456225222273463554353612652755433465117437667255714376453762425774674741721745655275244533715525116672614171576337243627221163714574675476666511446131152361552323723563451323577313511741225551754323661734473453725221254122227653253456726264576421635257663661375634447467147611165622672171322216642611626716236712313533654164662264256251263765326672167571376625353277416625447321426415445321165325456347215137273754611554563324251725136553663177462656234477216322124112462612551736662423445316432244572663151255243476144575341665234524731365771352357637474563327761365413224543677773654423164773243614336612173273677243541342565745472262573223472436614231317123773132472633314656457263235146545257421724455133627736263617664412565666325141324326345646624376555244216712245511546332225756634361772613241112176732354242735563664746472574114717235552765434113421377547262652676464652535247422563441566654144712571745571545113356336334651452521726465651363622665511276233325426376265334636725665675422763636566515241644645445325171217773551523251454742616542462414413777143571536342554531666241521221145524671546123516676623676112135727411655471141141723423335441242323312161116324437761214762717341673112233255527626741447751615174576731357241124721264273473114565567536542163476425245574215575255247725223664545362153564435262675771423112466326533122565213414313366511157722566217367121562213652543641532122633663615763275563146433526121414174475163513373576443724625771412141557122561741716217673573545641727143221434526347436776463151262267512555337165737741511725153463334623345455152255336441155615352633377745544761534567516567216414733146634233325764154724156721324742635452713423247754461474546342436373475157365373741112566522166617167664725454641162431223522474523411213651455664221442634273546126246545512477224362655274652475411466156327442177365725524173534673627643527637765561332732215615276364637534622511634146361162612657334327612163147554524634124411554216216515132221762565111543731341353234747271261536457525717145364611315335364541575461362415245537651415253731111767126256174656744115523136131336252161171476273713556273216352377417531661621121566537147765325377354332424436626571415574346266323656237773564535675556312231163351264264543327727665516723122567711337124447451446327323745223215457361136713151722755341762424351227425325634635234671777352777232274637532116622322312451647664114617652274757371443721716215536211216425712153311523723634426247457233743357772163456741472337465522726444543153421325576132772653745722477115367522313216426673312113344346116151312643415364615226552311131736171355635365167672657772124117117255132661376376654665176611632657563652723762747346146747723222271567762461666622637523636257517677775245333135211374567526667666551414237642374535224265156144123163616513152626441167715531233553735635142525373523414166313657354756674247717351532341271576644343333656651577673137161341235772335523417671557164713246363163216161343422511517237554413722354253427752232275221365746352526255616524137351272333127764157114575567373347362714337236155766366236165532661753315437246744713637455322517616157614751655367652511443625716733726433512457344626773364176761364126517655622414324564373212431754646634326567213662231542716124471464725674626315431425717631211447732633335255722173774657117154261454616536237547146645646765414541243315142736742626523412152437664116724236732335117451566142137552354676562126736613762676272267416115764376162752362641652727152654462232142447716264443554761161436743366424534354611267755174246244472345612456157276175715433247717254155213131142751562424652653717425156562776175263526314572763145562542731642461142164433643247736172265452533556156433136554546367626465757255154147352221614643526565263117726432376632622417162647456777113646116711263544454541627617621215115626156422177655736732624645467362276141457556342345536132677547676573751125653226662676267343242123331534433744644123133756473615247434766253556372674164133324242375614533121747236757352724431652442126437545562556475577233432676121764152527675636426343677157771171615756757653514552143752161212262771776765257735142351566617147347336326754647455624712664717643617644651355324227527727411416177264553611454275151152124275775725513774242563377316621231641544315725441627161222713226322477232723561153272233444767631162725127676675225441725514576616122655735536451226337227661553565763556343277433276212367455635543712755276242661573741771565241643757561424613174367567537264342556636177571127646624777726464652555455446461545337726122167554643577443323366222115137237315171352325756224236341255177121732167222621642376333451167213476515627222217456312557576611351242745157472446476555644646674722235743173251117176662346227621744652253472513532411746671653162646275545727273544757557736356444363247742773351747134121745623262416513712347545441163151753362542424636272145613722341445774252514216735253145446673141641466531362255762316153744447645614661136354754316224637315363163463675522231763525212332261571746235111444543225146273531671175632553727474126623554726226336223317612653365257635331354226132573674263421247223756214535442621277636272427341757561344221473624717747272147244324362113262654345351472516453276554666316473131677737222166477464164114655262451466477516556426225545334763131466236112157132645431355653276335342363462474651433551447676632567636276445734276565722721624263246216743556367255641143344663311121144313232257755262525215546661166626153372316726277722676555775551465726256151171113373242132526566461275124225336675333436721516454575417732475465221474467547415276737643123652374553233117251171774151472757227666321533557671711417466665717117141314573654664724713512414325442464143532127524225615256612455535242525647123555245664664123716443615512424162616515273716377143434375557277367332152454314332676335114144113246554722353775167122624441153476254656224534454355531275314545563251173455222767533763425212661317327776521116763372734666754116257157722123133372616466264614522457552665362731222251771572245422471666536622154472573552167643223371365367414144424612122727241612642577457264646421732235362343647727174714517552555112531176553466575266651726173775361411357625464224113115135536255335363356126647462112515451377733771237752557536747237665125133322546545733125733645754665562733321276713315171476265643534627243372212434255334244642314615633164415642477134551255376757653361123627151164453667326335222562665257364374141347373137751331526254273642347565614237235467452467176372647725477133156726663223244274552463334257676667467123336155534663227645735514663775342247113572234231724516265575321455567741373627121673423112743121666774724426331511153364571174272273675357313575612332722123552172363237251532212446747153437737376512637173325471366413657643673563756776321151221761465344744223521327351461613673751626212734215551427755135426624775637722554322414473176731632432324237575141421157461255351615747562633367531545675734562554351346534263246323374711457645213346333752275136467251227213735363325614144561537645661611315153326311625413466344133224466175447367353123473446152315743654327466515731477744553174671477121177741644625612477617377457353562476654345146376277231376233672151657324232161721755114631322621126151563673165373773476537723724632721421721451761427314475661464665126132276274457517147641117416312324544515342213231326347327242374751421255477732165631672717156565637165625531747443643735653742435544335712115162445752461154217165417312423342527326655772324423375235512735316447337136362744374727671715646524751764723127656362353554341233637726312624612641116463721253456541513776477663174653356463731576741342122121421225663431235324312357651773156271157433646417142417366475612633651624212143156411347126777364562743473777325356423434446565253451737321463122773437213762671246351414554275316651572111461526454426215525446234425735775241716561522214651674336132622457641431672112511677234237323467565631622233514664631343365755723616711145525316771735465264166547342566347273762175745575273161714214241157457671564454165573515436742271145146124661311251542426314623641555377757227346424765527273666145574613736763635435126146435542232723416225521354166672556323656241413435226454163644132775353277361724456423131516333433262623551644422263517762724471737212567744377536227136237717172243422417241224756761625625636252524756673125413222474176772611272761561163645276537267157342362552631731234773641667775133362547743737162651357355246162312477474711727275434561326225567747617417513443326666127743413316417451542717352247753141522743525654621232256313411135116374766465261213432363745141651522312161777731464732236742241322642162262164234636253767373345533142271427254546555253214631515732262325453747636354765461533335545177645332435272662441523155723424427254411237427754746443355522363311752116247155552317746521647372317631446454342674772544642663725717244123447647337414171466661572426121556452374456155234123363445366435272543317116742555775441111154715261623734741216116544765713475233426612475536437475116676357773444336476352125275776677524424161614564512734543354353224677316471156541734412757324737437451332441424522264572444237113147313667722473533172356172112337472667751132525735313213424751127327225431623326256467743547652775636562743226133213227515674175577456744466312624246336117517267345142572433624352214225275225243166347423676443655576237153766216233374674551167636552557766777632253643321537422467656554555431766343715251132572567344133667775633233743155426514542355644644336653257576232122676124521315751736255325157271461315166127624731765511327356436676376217373716114676131266131121751513634245157657473622446652742132416144661647527271555442646761323247527715676521776444737536662276267172751753743626222365364525355475573561176551412742562343171737476165165743214411651115524531671577427124545215373514267744143124275111464125766337166264577232541453432244143616514544225357425662226453157437322177632456421217633417725661723234227455321543426657762441553116631676432475651556655722171512515665542622527615562373614776246726472665156137616145527236742734615275623526416434217132736333125636321714566531341264471423145722565756345127245475155227423316574463231143171742556261344716557217633647251344533552576266255177264461576544327764145115123644653232371265731626444254676364643265336566451454421157557416163423146135774253625624771752662324642655465173454256556763352514217576344153521147135744361553214363131647312437442147577756476746451646566633576122113112653656535611561554144757367772166345222724112361175573531521136765517713334663662353636117214213675776322711377645137741162574174673536721761744561455663244554234617673611776654733533156635261752642234335232726272617464223411614131564277572521172262614166246663741462543635746165346164622571716255422626313331776775576167362121654745717242453354243251371512761375266124462126454762221313671622357362641753711427642672351344472537124321623764741241466533313576611333525134631746125761432671662725371213575773574314446536726237171213473362553214652445451275374335565134311733517665522751472135615417251463635724416574144256141523632767462265536526223657675657242432372621414367312517677555472156417562742412333525624513354661531421525767324677352643117567643775166775727517435622142222215576225214127167134626142474534315246671414412525111736267643375112172242614256771273222116456166377625115524424453166271155754724717421274747324732663617516171613654775373245742337631772612774461162621355161315317416677177436654757175624156577451447361434313127721622227271156223251325156357463465727637155776434665373142172551343347345756511266137543763447575222257155637767762647255512661314541646322327217474422174474645332516441614725776432752332626541631566767463252126234457752527722112777751275321353732726122714325436524543416633236541444654217752635323663657114767235522254261555317577266376616622314633462536471462417231222715255641211455414553634746761262726514634673345124416114123143344325112411155567331333734357724456257331546334451425621457451117124771746771547522313547526746642441445335473464634372445242737374452215156335627441716633236166634765563526227355466253565474471166655227151277736764233124653763747671615126733731456157644144442421611414327533771516664311665737211463735111422572551213312724136266671421564643232444776117623642422564734331744377611422513177243621325661765326316462543243171563525474574335377156323651252331513464234567411445371755273346531276523371444427366375716352346455347567745326355374115763316154717667665426365224627535157774466565663336275626412454272261631416166512532233175443773212475456465447513136457213614235475152137564546162637651332655425233445525312211414411545143615421675557211523673344531234525371361246177362542177643667351271247363314232526146723212157371426565215533115612614146474423576454164737441342424241117553142776326143117243516132244123437631674571722746331244567112556451542112325511545571141262436274551673235677154623741157322352121227542344242745351466311655751762157413741144512651512767474674222153347365145344426626776557261515732171716652225127617575525565372572674551113626627776441227166336426214315677671561535667666432314325757557536624777577557422663435223211253146646735673555145311144465514221175661462747544415623271753315614374534731726566461672717467147617463167172641517671213141764745714414323511762162273471416224724565221512627127436677151163476155771153244365321322336535275113713731255624546772134721542354656252316172665456763465653212576425557566656524424772661272351214772651656531274513113223457622312571676651172463173335564655277361561346547727437652542127641617666734711724656655222435422624712676376511176173614161744135426717547511622532224734727444326227213275556733245741343427152674116545214216635321366631746345647513335666643365434336433457354245672561455615451114767436363716616256323135562714414457225636626636452774554144426274116712673656535635273771453362714616215574556331261561535265476277717577244711326365362277737646747621755466411431276537533421426522516354325362522575541113365236317255771437513762446561126633673622511564546156232211223217476162334523276174716347362773744763137572711721422446315674412772324364476672743377242633463674135663234133221641775162422122424113647354566764764662144356412233616643433222627217424152733156541444171423625637713532734353237364164135421323235671714542166724433146712745477357467233333234617314226422163117167172535752443475727662271412621537173671145475117117437511764157157447655415325446372343442167776143132612445272131466633242242256562754227147364432436753217335225533254372231714156745257323145521246666222213537525353375612564777777612144426511246517312467161272254361643414641611751121247457565315312764467452657161274352332174635134574542747645177634151377163676376643157145754631466426435727756652367314172676635677444356245733353314125274271757735462377112451121433353673772174743214135464416661117576277326124444167737467256476356376442344721547534613631562337277233461273356433724316556613643667336367714761362723671653266446463333245733772363763742467434474641174571271446736442572536367764114673734771774537126313233232554234627326426712724654371615164616371335266156352746516667516161737353711626555163743632624534636755355541436236432716271563366354772646122134617771732722357376777275176373665676161474531662561421332351651451377431124223563645772226425563622766177522262567366422464244435734534676136376234277436163525332714475417241773524571326672535645475335363463155425567461543446127553522171476242127267254617523511263372543467573612527221363655764434571737127411574525766253151424275312333465454236225752267342752613755215762526331727355311527771365227626277123335262124276215444366251271123446266561122653416245174324335712731721722227471425336767443335441432635766147221165654731464142224471116122744252641453413136357127131742357774272457722336264266212227545555266633634261111431452513561445375151455174275352411671361336156755112732362227571561716153777675417774142374353422544441641641472463716146674147423777154351521652163177651475447746765423565154262462561731515573561243631337766245426622764533713231423667575422364265455731342755712462451313553361246642176214175345413534221547663451751671322157727373724162251626735125347664557511723543751154146567335325164136247634133351656536662323131444372455171335514476455527733211737175615757522272141722736446452462254641725244452465757525452712346633736454232517215157625127243127633672225366476215316222146462546725247115757611442453677546113626453575473364437566255141153335213552212651223213227734232515336614236423435166311325732172625636242114551451313444246357542425352654342576721265611646633176634213646736122147531726671311215737214216211424317573472624155642572123745171643733213465272165236451165714771274624174724223136674113573274433235755446171375375776256617363617574352351421142653572463421121772346465621736133513753214427636153141734727744224513745476462377714717413417132513111651437767751562433114127272613662145744742122474176577531732222436222537151311137611664766321463216572417552556546645454276455716766227215564351355114545422213122745775655223347262647371533135441147736451126235411542624231774713125774175137572745122654745556771671211613752346162246754521437511631723232557566124721474546621613116343532677413214254731624716426364646737171522351643136636472431125131241223547643247143772257361166173335512516234247547176124344163311173353165623576617423746545117226464714766237221152466334154177735435223257163112441214622323236113736364474624762122614247474474111737477763573714375712762443743236316316565266516421727154477714635676465273265147132147527511314763743472111714731135176167211721424673115316711724545355477462435235547261261373147675436416762475162721237376613773447311276536254476613634514224662622653626445224275561253674463555143445413234754533642333772267115461222556153536234457741276311766217466264446473747135156726735547615424172742336353162673676463444226735231466424633122571357625247244766235161564765346563566222346646672471467177523574153715442326225466534643636315723324257423235775651455737677574235544616242142547674471561541254742534547754247341171256333552266441725133547613724731676243572336531254632613314171362125566132675123615717257751226322212716215121323214142231352215325636451374425656474526755176641424462421264753624275264713676142612763213777472723643244444452733143553164733335613137514262454177356656361724515112773512667367415274143234776427737412671626661521234547341123115755244237225367422267214236531246163415546366347656671333177324233415352372235233124346566621345625442772126742454171661554717472256346541555613314413671213352476433421676371723474764215443522576237311257363624334744472763353166331457415777533146527126445775627756621431414621612614562251643751744717162464655147635174371617173465565744433241124744473663563242121625451615121525255644224541764247114275111162671465127615723546451211712737111267713673415752711731132225147375361767341136331324536652516435375364411433377533116774354211747577242275644616231732377111115765121342135527543547766611712521222457663335472767766656767232265543421164735244143742731755215652135254741674211714221326336234551215613762323515346412345151526747432737373666422463517424577465451643774372143422674735516556434422122462767431521334115174731374526754264227413545267177613753424323652315446613532552534731474127325666323275567746321614655466332217751472252355177372167525562613627151475624444564762755625715466574655436113552262556442252713673451133134422651126174221423622261273627353557653654276351733163313675524211277575125753757366617276762313423313125623331367351361361631164535237733466544673632172166214771513517757633424711331546361177141633622626377672734131171127145337723226156156353175375417523266357623527546375714545316352617447541733177147541325156773255332375371771775761123621432241613733672763263672715461543751741354653263413112423152237535731177575214564175347664211153561767747571246767523412222337725725723162126715656327453776177513425624135646343366243554454544117662466273137557415773557124644644213723345324365166433456144541361764222763521541374743767444663153675713366543513111476453251657157641317255525155227175423611615674744153546353275225776461453452766474661616146761561637675144453322227313226125275251232755414656167127543455274112245343275553562613751326755577723546177555245326124147657526427175715774517343145652757623675675416215565613226724212215574354134646534425641643365516365723436234776441235322557331261763335342651525752513772135344343516454542724621111571773521266547525171374156266436647313331226367717241656615552347467634167725136154252132721254224227736637633552377424725243555217222726212461722714416233512334356657471747743244615537222444113667737124132466161644566743543744146142666745744127616512177664211226474317125441533514134123545656417251253731214456172574261655427544673376311157666141566645427574365615657755753777766643425466214616463462161567566453734663415215745225524514672447752542114524432263136517176353451735246622374532245717736664232334752743274657173675717766313645443541271656576177567655627175731416437415375376265263155766472633577651321252772621225725774367557635676115324676722533233762157732632553225675561655311617114727373557112672551657427411522235174552673164431637661553726232751447746465732725175363754672161335332261764215116554152643753277142262361711623471115371717231134454623125217447667427621544767426712524244132117143244332127262173246563315425443661423745155364611571721453336636612375274642435674677156511414414545356654326177471515357537261744673671234143723164623766726713513263276524235645457746531433723332663556211766533536423567163526775363114314167533575164173344244762412243552545715633353511344654236543221474377162526171135633255143465544365274545546551335674517746433261617354122711245634326333175534516634467557775471143675326161542436164253344174127516357166344416336745371672424316344362215657513511251442615446464122243131112564511756237713742355472226246435126324141741446573354667424367272133437545772562237627562321352564241235125374527511571724162441774211733553224114365457765333332164276445167577245613722655222532351336135176233134436735556133367424247157714311154746534447777743466315475246243657624361461465725765436362177564667337466545431237774642263243742764143627564677717514632357663773416162257541442513115444523733373223431514651133453337772276636167323414174317564211177437224123267547441711667411422574616312741624652654152733315464145117475576354452257462713652276117261631467244453423714273434346464541526633217553265614251714552237211175435514132534342354222454366576351124626211656114526674334125152274577511576521274254672223631261651723214265214723524647244372557662212522453266447235163632211167217552121456232345764256466575536515136165677244144471241131675457162161662516312763277312472257166476575767622127347371541665514565335245247362215256324412174653527235151776321246771442752557722155552762524751662736333672613127517775261665754267113464654267341231167257165413525775353112235362367425324774446356714334541376636671444754511537342774451521515474557256646113141241517762243774552567463265611725117226343732471657616346746142762674531133374462454371275112222421275212633372546177337131353434644474657111275126141743111464142512267272411232746734345523336471727157212345541544172663226277263261123256743717631716442452377637732361274676661163137275425521414744163654452552765114647411563366675364131417525326614655734354155724427657642464366653457216635436772661755224764562237261155511422777176731327715132252466237311423534436571513435764122757771243427164744234571476171415415642275224521334724753563644475361422345637764465164453147527347512147633542213121476114165222313527614171432735274214523345665347222741114216147551243576365112343431643474312376313673533343571255352513343472424123375633314331766357524753436141411364636463661426461777443357421556353212462543512623657224256244373515654141421714373314143767517272667374356547277532256565536645144164631515526511137715412367113533215277751532745636517647751334765574572665162766747744733176464355626714634133737734437741721545237153635342545641224321412456212336513337525472434765137466327642512746131662136545367227241136476714637117332277635556673615556551344345371512564252742433311266313746577757127656763226547777521725716714136214123544321421363415376171414426231475731212342722452462653424241471215236564665243312561142577636761523463761675237516513173166775156536124314147711673213413422231213126541244145244566121572716147461345363711545233756726321135773137766367344756464365121343733467356325251667645275121144551226265127556656634563364312177132751653531535527176326167367462571676252335771117743562522662241247176522234244342637713111436453572544177424152235347577133611272455156711536762511471573173224561477311355254526775746266611357527557715534227717575434434573545432424176621512473246572352735461734454445437776333223452644424541375643426436351613253536273566616513746621647637364547661241733723431312367464334122277425432634216431577637463716135271735231561433423517546157674513717534614656332723761615715476167142634322266457647751543313213137513145464333331335512152464616657274743476742716467614143633422542247517425615564554272655336524742123165655335123533732455446153255664353225627174576655321336754534262473366316666654526762656323743272542373372276542447624666264415761132461611676753646435444126615732171363553447743626564266267664714253427765661363232762577656467725267256665113457646135224154166575534322133577565411323632447237173445567251321771124417745767777345733157212323434115172672572646351677622243527132652732223476333434515632373427514717332671425277551345575251331642665155231151136362153617733716115723657654767627125515517211132743322276716167113665356371414721462523525335435715453423465161226477143515242153532263532352363244342612437546231457134261521754512674146124656123135455621736517766373216513525731616572575445354474626611254766141737371156523254755547765373211214345343125444152646645474116147663527742617324517573343144662767333347621574245225661116616774141574657746354117677117112623347321116113652364363374475767323266366267676146474645415315237566325245324232173466237757514562433257713526726276233332413762224662653336242262114441612271324123312544462612232767157317442244415572351633766354263234211536317766333517115644454771432515435345371662663567336136162352125752423671771451574417347465611476657131347425666321264224714145632655611762642515623356656364257345247356634214767235223752366434341215212733523455367775145112537662513676142527257346253174256246426716524765724661576177534352224724666276262567647651534361513225625554574643737716171541723345131716465263555657461755247614431523462111575363443547253244777752322543513441116373332766456455511665347524726756221416264223113272727611413372133264223655175626222213444765311646462651577452214526162572324327355554724763214676516766322655712561363662314615665664535124525174233532153554344732515327712422245627726473137433773536546722245736132662374251547135112714131644647747267724763215727221625621426423343344754365157771165767131174337665463722641651757557563763436524254566153137345233321521153645474153161375333766411664613316145563163222746245227476767211125774212435121656471337346261314774535717413672643617734764724435712613745344532232226736331174715275564247724246471464237341652572341775177424373533366223421661125226725777526273631563125213325251752662555515261447752473145664762341537221746274272442147746355571745717723744563741265153117571776566571215655461477325637616615564444665464122363226172762662341726417345757126551362462747274416457314172214161227466553674455413444153365724246215173464231662226534274667523334254514236226541425246746617244752434156771666121754557541456165331646547746662656244311567315741145733627516715643364454414271424236512573363257427274534265337153734125455114755664447166723121434256624334742537475514416722764571364737433627757421762674174554673376343635623666776365775444144314341745427727727656566424732372736233175771172761736562354425732755365266276514571567716562354552377117647621317566477446574352573614671663724774643621571235426617417676272771476167137244725525557656577771257155272117511273252136127221235352163273365415132256277213245763312632267632536654564626153743474657276311553451131632457144425174725746724462576651236154625425237625431176457345562516111664571553237246125251131312322521177256472427442177314346672143263371351524662171232665455663111552777163462562624713657446657145346346715375457267545672571614351325226745524442416277557542311443276273144417652511577653274357677526124655754146335222553222272363174563261715541364541263314432162531261462235465753261434111327613732167214143542161335746111161464672734441735144371774625724263565152626631535175165667573211661315471353447256116566645166345427376435771136646636424223771632561435245342347332115521137223412655471345662525746421434557721126765122772154757623776544546561561374575622217312672467244134312443122573135165356635643366727264575746442251126111776234235254534331366415637632741664477115677232452334236113326474135257637763332474117122463434241656753653177356777773153516224323211675226243154254472743675336556647471215622447776313574237215272142173675132142763444776626436653152441365471671244544546313377526164313153342377744421362522674422143362616245243626745237411752277626116724542243131564636635264166677712377513137276672665375714575575734125527651451731667462753532246757432517765161161221427673121716762254254764212323565454767261757376723422742174563437137145354315276441655165453716123137756416137113271777654364377612727561576426146157235515336236332477651432337255362252715531574745633175332357116223534411467264661271143272314146522252332347145166162531163476351516142277273123743325324775623773617137761413627142715474257551742755163245531554164535353227325524233666443411226663337661723666213411454736151141414473576164116457635331256462522263544362164142124751175744327656124562713536641456667464115272125575717353357425413353675514226176676545263334766433123514326225126713521156664447143333756661524414676114672547444176414474655227621432232577443144714445233165147223547116754377712547373611526557133734633363473641712373456324347644446775444142233463157613347434761771535352664244651742215261671772265724112647325511743671777211426221642235271641156345556676131654147254173267475342137727723721526554274423473337542554447752234122533274444716754241724632165576153473231641547173266761376767114353666754747146375163324333233661161157463477447166527344567156366375235614641651543567247156115754417167654632126375422341253747411411415162414343775342467664726161141751211654254727266265757677623111133321747452511546333224225636652476563541621765711443766452356526576753245255757123513357616577341345663511326237521167252122167115713265327233325543461773112134625144716732475242621121333645327144555452711445737132175353116232677444636712574571717556167613272257742552123623715772672772212541435712335616217617111377512175131632766647561552562521663762517672211766744222477653751442722623143342146561732121425673766357673221436324516621173654363122712434617441724727236624243655167243723767273576531424252541451374677375326676461633451635763134634665527311267352727714724327713562344376324353545557351674615265412141672447625413441531332161532647747374467137575672124223476663576645374227262751152574135735215161611333452547764145652454275615716152417575573327275453164755456474636627416751161736455763622571265756727634753266125623316566715414327324621247261643215273764546262233524632667155477337626472422644226113212327161123116767232526332343554125124246557456312563536753342743656373261236177267442351714122477431746174673723777345436157331263467377771464673737415312455475143273373332623327367132316267663323643216411733672675746774162325773333264351752232747646264526326562211557744161475353261654577555776163167516746563113317151745436446664745732622142414513516452327125512326671725275747231766231134626167747143772666512611634157542457355462663141123313417725771247315755145552773225665761571715736534452126227651451347336327214716445541573461525643516457472763746514664224475364654512563171375366655417757617375147425635166614412253251352323137712615324375755313632761323537527111753314112743436744176361354465654125657264527424134773227677555171755773356311734423656745112531737436165625621464662576271564657723622414377446125415336314112274576647417444466137763524334445725713664731467312312763416163766566265557626757321417761777476244163641623432454517525714655672371666142424761532424125614313643732656731327564125447232653247544622534776655261145261457174141444527217115735142767136147553737413435446252666255372117775561632174733767166115535757667437512733536134143744526335433416351664131654461156432474257611556645362546224432276456274255232237655143665331552437347156513135724527126742737273247345317523424276311215511541175131751754316637652113565752753475674171433337326526115612127577467167333766641413335116332472437547414174667141573324267437513751631242632656726361717743733421514747244432224153253151543116271764127564776524132547535246166156572657261132545712176522321337216375434457635447746611153217241262645313366242135137234766612142346176436352576471334134614131454274731666155616132644236742716325732722646547553647474361561434327533736773741344425743732215541634136137325551212617224534322474127733166543666267311775527677371315614567156674646135617616541771562231256737533337212362355366334551675612564131253373531451225663163643223646754315571747761457757453166353362734613111716164263132531476726331722432424333153565651111722556741223565232546116613714727314212424773536712624425716421461222454254531422624365157143171413561316152134216644553456777231517647446741473266734313322236416364441335515733737462633246127267534661443145531517612237152267243732277424217372362515533751115377631663324343572653546735145616671661232766246445111715623413464463526115741724526737522752321761452354151244736723674213345455612747455673216272673223651435216313462253613644124357644717531573231367751446157615671372256435641111277434241323714244512355142363322255663726326654334572217547771326125311154142565354615662652115726651766372543317171767256357142126126765343574614613727776713316322121655325726427713122733355316511617341243275316612214552213255445312546166631521743421642161625467734544527512776442525135121676662455747721232175357253666166745213127232445564212237637545443274616631765545377423526563347556251134344237751633275754311377334441715327425427741537271431353131121664747412425572532565624246462657254316451232314664357613441527655416344571643432267267645136135575533314411654274223276673675465141563224321151463713713274133757736352715212352663364715431127722757261772341527265766442644555144174214447523432337314461146754564124661543127344474753177176466217566743455412143457171211756566656452721561766245366377575464442327522672771736564434414253627151133334543646635361741457742761763437713477262121325563461666675432343774633344467237516674474331564174571124673617667451237664744655424446136517476453676665362741474251164736776754233222157365447154264677461366623245453512456373112511541716577224653323562422644124372374364475374527277543647352122462731571421762123267444511623273375564625625146565423175357777257625317272116664531157575567514665536556151156643757637526517271753632551555553747744735726736134626774762631246332645451343166551542257553567312717654672221116363511666356221522416767312532411763153771533576136656671755325515223524716476273167151166537413244536227267716326323442435577723466422337241173125472544424325765636152177226422372547311644442236754355271754213467311516153477264731552557111457432572521757727313551747767126261451733121113255432447445557377554756262474713456732716664535612271227557261527334545424116671237253232267433476144626231217232351563621765334342623545567622141211412611433166342636515516714136117311345663611174756626631233165715142541242353667643436454152664372666173331731614361245654244525614625151354355174231136643315176551466523157677314426322753662557517462171177142415246454733312264333443543656127654523225546675433616153551574562344566344243275457376664133513736425352676327266117715422114377352717311343252763665531632473421632662126335545244117113264635622111413347133651363315733326217337471746652347376647443775616751712275163427447344412611513577762111537162737173655756127476466571754764371311675563315445324375472211531662161741272146771531362412666765264457411725525767117461651466216754124216777677711151246315246244556271212272274471534466313137516547657117341617764542364617677553452563526627636272542133722771455624217772765626163376671211256742553563763556465726516631156652141416126473242153734631735633236217223763421636342735731514121752174473745231754357154335751157376737443157254712627343151356226133166415343734336264672141153676276247613225742677261514513112723641541172776167126267737457653241226346646645567526423561647173325263166144623616541217365224547376725522315615572514543375753613675367631511377652236665464756347716771143312461523573451757625525526642274432525216543752633325271775316663235656423127375647577666537326632437312623644541421477363415212545416671376743115355223655415663434335455243664412245623465263626352136664142414731434174532114152255243541721425477211563714412741564131343416365417477167533137116632657237757621761767754367371254442374472574663762161426567674342412252422122427536611557531375556764247551613776666654737756454344672646741431311315671667635472772266172246471421222372466225436756665113153126347517757672554353141763377512345227326216454211436535154235363235257777646367533416223637566711636546633461455725647334212274366253246516773416272335765116545574127712611361122354144564431422733135315545756224621217654125217633355232737651344474413714646541217734246335563233664174552446656653316343112425725424212356245233464421732375176642462721644457726472575734544431711212365644745726166571256723234254474271675567476247475471623247711441532417457375354115117334436563656717764135563364175241614564151743652464243622332146231626324531116364713364521135752144716452564422222652334357746343655612772554616264411255162717414166477554345264646654572714645465425413231747445333714214672347713653267365442174576117576632744232657527354474243155735631235652141232261631355564467162116774177233542635773662322227531321732655332536335623245476542575762267723277133524242613667156756176171422424717535136315223221131742714256651733536457312634747153365713771115567337362655342467715526116317766132762357714252144737537452561473613737632356664456333412751217661174277335234663546176274326374425234177732413176676636452223154612321425576275774677644775414274437661452262661561445156721432274153312541637175243261263247361765321415661511336755165412357356211462142332575573373243311256117257573736326176447654316423334363253647572572355353774656313142376754143433567425726414445652121127445671257332235716344232343546624373532575712412457762237615576247514153654126363273615676456374454763441163723252544333312252517216564663255514771435756313554616654253673455154327735766244726673432722367775526532332255761562235437577471252136462521511556771635615555573225765346536515424671372751541752662536472344115776736344321337627712741266621512475321754227173113317547431571631374613324234545176763135175272353133355613457277275417311141476672327121357316327177232446615565637732757712744765671155135515377374513574772467162116513473334454744334134364372513564144566245641375121546117367757464743671464626427415425365463432147536665457213254616556315551165737615344475713315362134612617424415243772514746675171663763145516444633325622571422412712435316164441272665256227563773147672527314324424242754144334741142314254677452775374727454162375627344135773373143636615434564347213616527746444737622374644471322622574477445132224343141511633726215765742645777536142124311514434333127315276261766311651143416241554575336144344377474671152666744514257764521262332613127426234516323433716244366657273135751541313645147764532311427633341516546133756766331673735132367531425222527536363462156571141724255611253136766335544434457651276166215627637454242515262247376276227712165144461552377634654614546531741544214373533416315665343325323477231561134416237136753215757311225313416261114121617341155276322762334353464266271125232752615113446775443752711124537145335147513514241657241354141745671525476151575764772147545551342315165174263163464761746434672134742563172517266666164127526653341626246421437436354657732637253255163745112155614311275451467115713217721147632362311356335336727441554751644162332451414237743111155643646356612266321735142343452247543513364673544647453627255313377747276556743447474166125666115212222111116452522242143742663374627247262246312545763357536176562576536642613767665333317117176247212717267667765637151273373236261571437527415361426656117324354424567651523462534411321464112563153731213542725566731167472741465661112456562247233243323427556355456615663721143477622374342317754746536232345726722241616137744542325347464375267324474371474267432155234664523554134674635343316535241747531777532222725543173157615612764255342553145533144551543243552177744212627413121477555772441662765417712752454534571221465454564326246535713466137242311167535361324261773441344261422647534364515335545711735565537214377747321255622332535214177112442447471517273346611442143143421674644716745313174341665173446536222723521442661425573374741724547741423471576731517157664655433336462742721725775114173562435767737244456641351272713362425115317244771776133264554723266117531565365466271621415127346157132322741617447642713614641566563134221323267364555137623712661164636651317345724536512113473533115114245172774366336557111563775516233753254523547425547616377751773211637311564637374475235235236656142773741534665325157674436334232341766242621464262263536551214341356373476544364623175654165623661622262245774455675573372254454655114221122666556237676115564152753415621776745662551562441766465736521627615415654142277415444151123125316756645241572444372126232643363361246173154431762173727273542277425226643327316536141762336456611544437161724577414612746624616653317336531122273554162163543542174236122233552747466674151525745561373546214421467356755241655524755231253624762726726443541424113646154347765357242226612145455743662416324752111343123421176763251413337154456474725471417377634765522446274255551317567421423122775132142656445566446417651163452216424671646325272753137247625137711472666421157345661715766614614644233775713141726127736717361766471117621135131144136747767171757152143266163276573477576526514612726344264575365746616557431122414352172451221724614563546661123547147425646651341111466354467664772745521426543754234762432332133236671162137446153452725267363525526744351315234572774523562145737623451612446725216652247455361263521621254165727616743122641766353444573373215267773425672712657215675326546356277632513625272223172645521657616562134435255317721214666165145734251624343214116321727745452365172164621231662615617715563721422741433466665246747731577112154461425673671324112214375316534263436137326541361413742512454114566362234112332363567757336641226266422232355613113112234232263212153376535317637341453176436767274526511433315351327741773572432215765227462317452546545225471521431144223454431617464315155247372527243522274455333765612436377642775357477146612421172435375263353221362276767321341675434253522255213434343375443522265614366614434177434775651232462353612512246767724533327442711137431713231136742435767734325442314516732734542776514671234771342713675762556767537311345655772272451351447335422353577375175216353572656512254422762123632444313672251132367141341554156423755254562616136254411567275147545362732322246274534714735551525344637773327347723536131515661415172271443567464136752133731163572123367756735332127443646155436751317275267134257224627526472471521651477374131753345331277437523511652622424412146573723677741334431624155437755736431622627153425617314261275171634137211227462364315134265774267763625147126465716523242751411576272677512557342233551757217276215476447634751114562667512522543422257254641153531721771164347512747155451667133345336545172153357375733213336663325262713211547416223644116766221141351662757721553131531541463471645725232335423725172256324576652366271533376577311547362152631176126172622412553726666173377427422343546777264567445266715761123361534445354132777435321226232667754317256553753137662675631727724466414472717312212573367472465245726455766621262432772631271114525564452354474646246342572613375254612247726374321356537717451276651214175146577726571572647777676616436133123125716176463563452433315232535146741547426764242575736641234751645133764762427666572477522211476111421116461451231577452713243765746247726254211462537737345754467375417335167245311324452156525655316441251114645717545763536333275733252263657467435323517554263676315544133171255771463631257541511366771412647346416762117275356515326456643676657567711632457421263722625216264253144356515557676162253174724333766423275743742652717331122566766721351255652247351424426616614417454671567715733175541341123665542232411411315636372445557135524146311452613477237473352266141645416564755425457321755214231215156635433265742174263623245365173766633153756375715377533362273511414632127657451377263632243413555347453541626647776361575756435152137415477364465324365272145753175137516535314236576326443332541465355242173416466231274521715754621544144426356211232714775623374561364627645556612714435227551326354156143712514774457212257222156474421611163572341361517431647517242442662142377426461335521413532666145452611544522666332573147245164732114362154243216367765633442144465734233667277247237122467613252755517166227345262213543435762271761177722745575625272645353514622621722137776452223376135516261363455761761737241471513264213231615516674617725175247676217554735626417111274724551431463551255747511531752355634177256624642545425571765332725436454336724171643433433356561434271644637351446711365612472535256352736175131743262753333417334162476475122235644733375641573223462322145357745541772666656371541773217646753527637126774534712712333331236412574515416172663774337663176657727512264264464773426416716674676761226546314614356337231211613671633476247732471333365371551731134374222234474537756626675712115545361423264636735727527321541416156237556243157652524565552614632445433541746743225565453654336463256523711524135725563751475455772554746227544437325624775443232411125631624351214177416253415757261655157676127547412337612417326534241122124771141375455527562435162215311711725255613476355622537152612613126634436176744446612737112312715672354154641414276461512642244735262777464536256236317574127634442643513355114731651631343237663261451617431243221214441164754414442542425431153115651767476247675162344127326747435625774631622421655376421226371754645341434575664434467521452666454211344733633377747712267557315746172675351527534546675744175672522112641733117563462365616516652253446452162747227545446316315544277256465772135721566421453136566675534324646337517361537753521511265611374336411347532526711262427172242565636664546111623242373314621177664452746657751464515155537741137475672576514642423142636632646616476667537224467775271755352243113111755176545646375573332555167467566376153751517377733112527661657577426714175236331631124212277257222124544377123276411722252267322535373642753374246451515745766341272465764425751616761574313141462541437174511774673753314732267355522631272411771366631323443577452544755115325444337473646237365452257772625472135164361315235113331447622471524323763224647452124351244474665321711243631715227745262533231153254411674675537634344627153357576347437131713676442725732261342276241155147537474777573132155315133332166133112513473776224156761325443357561143472713535333132264642366354477142342734451774113617736765425543667253722122652353257255121674173222515737135462171735541737457772355147153641241245733225264264433136246642766213726232157577253466423477515427721745163144762441313644724576411676314511321454615373766445375565325776232277661412677555316164526336343573561723124261623531324357324573741134456166261543665323245725333457124733652736426161514317143321432135423725557375367121246577644241623115754714654575732512676214375626513275664245157322511432252753534255154511326351443625144333716334232512745673157332256671262735542132426126524567776567716223776112444266132577611557452463774714251767613174165343321577761551215474466175525242575645764743163633471372253677151635424731337734375534753343367453316122156262613376174422667634365461615523115345265621727723552311471264614432261763765666335461432657357114333421636426451221275573427521254527773755623756116765231213331112113511363672623411434445712723243515654344435117242717571674222613411245717421554756645135651742322336721174142747543366145341462126131342665253246666513336425621534657747656212272752277241143226513627616421651757416424432144725411471444531646511553336553256116267333717275167244561345763574423357151161617723573537446616451725123251342334674262125627565671474721255411261777113716676556527131356127236446547132731677543566634535552426473417612761766245741424372654413154745245343157774746475764334742546262627346235643423312655352626454747164637515156321476344527474212121513564472445426452125156617723173452223566247774316116776171377756371557474574225247256756227216137314375646372126733641562614421353112776546142636233412713446413745234222136213745327622165641345761514626541756627773123117244654125426373411372413734236353647452134754344364634146563321726654266565132671375171167332324321631521444625754555563527762425612764142634432227616461367641531631446541215326427456526613655151327164376141123762733615114732273212643441563162366651473115225556142417466775335123163373226114711352437347264665215545277711472531663736745444355743553653623117377563576354773516764452744364414374545572213453463737135654415754423212432117447742166744475174655167443644727635234742472322677527673252753155672216365537127113772537725233123435263156151162471653766411222666375724522622273362651532644223754655346642751411515552736461667255173157264426577464562527625653563761627461342277155341323221467766257136363523531355517123261161617723652225571657321434654162264366654167747135777133531231566116173423311323134146523645715636437762233476711425371664566351314224557117627753624673452227442773541552443542133424772234367571156234571245451724414646275356575337611645513614456744765634575221223426177471246243652445215642773336345316442356534717521415515252116747524651535245131372264713135622765352446253175245563355677371577336512336547463342567467327576533313656644614237521556537611664135623576251513655644637617116532313674522563252157642635535527142432724214643151736421175667765232545165543767264727131726126552725425372677727522425431432317472355716265371442525461435755736174676436375534126766122611475424174751511465277765677152222674415213274443163752641657273372144654214751266565152357267627134422253547677666464511747622736317634222371267747531625617714646731553614234241123215767177675572756351673417422152762663763643131767266437513611217517226513226235244721171573635616722612224741665477426577173554567647152666646416451432341537375251266466453324372556612175735443773651526142573747547147742627121515756673143351444351364647752743432432736274342667136523621724371634731761535625642414176112651734447547712414277451763713161365142726111351171147356556276226123245146274415623647526436462275531246167547342637611665424744427635445431666151753151634337772155533215475274513721774546436635427752611352123414524261144131612677172246451623314124147654635326235452427412642445162146542263127755317461655133632157634263614673334463452375672116113531122613156616153425214326447614135216434316134577317153626717422354336171713472434452635657611247564574565246572246544321311526415275655311152417363626647113765515463223441513431124712624324174544777435615262464754366612322776416551253662231537366361423613665442651156272356476344416671157634113222151427351224755545564657377622746221157171677445333612742743237262477311571545272673161364611737277441531625455544253312175217231264347421366743562232533254316326162225453361637152445153513545463776434762766714351767237625463753717325625536254353277271736345547672475347174632153772277234721672251616535311436745355472763263577552434366331144773642741376647735212631464517311574671132136131752155333714135115515621735647146464116576371123674456662366414342673463214526175554334654425153243611341714614562235714356764321611744346651427552243671511353343447165762125773226627671726343711637436741551163166165367115577573657555722142347256174725676666264242634231375333234646526326234661254667721453177463445477243641757446431616226175432314427623131174747731754773437777443445751171665771217577254354321765572612672571713662517236571667336537127277471657252175664144711773776125256255362513411115527637341143762627356637167112755631764171567642716763662712217714772422561566671666266461721622422665144314214373222272273375541626543165516246661272331761435636574722473331226447662767234626666261541275327253243551675277177736113423155714442627171631747644574137436146614715117272276363142464421345236747547571631571115444226344716673651621724174214162474322632623212374575226651456615241433724355415266111676733634452536137564445255155236143426273466263253617544352176613266177556474123315371137347242677617755534335567427422367424574464453145611371434417646717461727576123673132216546442432362315464316616322543326274436775236676436237252545117131415324231222766721647213125132212743557671171672776617313126246543222113312363572464534147773761373614136464655214576215176574744435747617374136517537231122436262767141212624664546573676161717216233244345125472452743752153714727354777573253521125324532143545573373344673254357121614111475266515143633152671523774516655414365113576223513575275546334216734656136761233613344222766527514162276174237521165677716771743362672613246321446337342243431671772364517553627643711334571761171347631776361364656611372461617735727327146214762563712252252445147713621631237515117436553117515625121274236311222255243454545431352312645666111246764242626553571131424223725142231555756634114237362774415233546625312274616441471772542375642543374424226263233344411752646722352115547556213657232427614477744356233322332527642715175556463221155376523776763274174553532143242111653364173513313773355462127221327756316657272672141671124135367465417314235526143133344667527555437351114767764317643443516465241315326134124556453227472457165136757672414253121443313447567372112261333167563521162437527557177217453661731423533777152737736667524212326457744233342435431327313745276245241574221364131363325622352265722763515654377327762553712142753353545323763736625173515112226544227753261554566376566361422376721117445533212242721751232462373515451245656763275314527677247627476623477377631372744145172164243135316446431572615413233432157554414242114175465246561135442331662476511337166514563776633775164335315441557541127327312513441173534472547423546412433725261471775534672754421311544145575134134626427615441471556373752466213714545636464434622542157436367557243137776453146423631765624512525242141117423376662151543123266122336437412733631737114536267771324361232536711225346621731747172622644137622143567473576573513165353177773276655726275265447165715315324554433334255764631556441313136613356723547357734722777227643533172764447575577213423446433715426635362332121233524162734245171763533756251375666265372125744744326615534515264123753265662467221113767457115437735453253321443465755722634516523251675241475735543245531312263611717625774671355521314436664246346332133612641422662436315141676641155336623676274536461174353141455121114425354627666115544261237153153626343746746656434264217214533115732347135613667375136757432743446773126621211252654653525733217271623514645653751537712615245376351743437235543736741241765526564671234161756341345461571452222712136654762617665325414451714376621477115467365237671356556227771232254722751573663731577421531745272663161352531223373355442645366555265413676121352711564642517475224776375171346537725423674744567266225144172755746621211615464414235733553651557351562663442272627522717474542416566156433553245121432372156421416414361645262174131277525567532572342325144443266226267646723114437562367744352275225221214534176746314372747367772533755421137134665425722652751135532214237254643315217515673127564676331256733215135177567262231732565723517132534454544464726713271763344457544223766555147151361476134573547273473457265272331411425774351372652117126656773243316716544774161372415362272516246757535225733174344274323665413411574337123543166617251637412664154476522765315366214317442641255736517717637476411751136214441134624735622762624613125747474521322115616276377152473111142534555177751772531457516226434677366115174263337315266221164555615425235545112243763625134412213144667445265424123375177552712317775133562443244515225373573734134641231314722363115646316621335621634776467737351155177652116517714514454351415533433432633424414165433161143635172635131472745444227637734331257434137377564242673767763526534677224353243761167567455746512373226545272462667646516412374633255143652131211215266121361754472225414627142162611624662177436652622224341557142235623132765753256571145213336552234546156666273153266711443227444227135123644161411411446771755461415217613222462424672572677547627352334765135471171441642626677735262551474245254322516617571574423717156564222754246727777756432723722711344743366351261266241444157261435123461217446465413641266315367262437672635513454132261723651676153243346727476212422434722112111426662664743555117354665166471544342521224672324453731651631675231414545236477145342447422623437571254117751155673157122423157747166677774123672221144415723631737631537332533145263624526111225211263316672175734315757572734545675137736231743565274355667345126643656563677245766434222256171764342121417333243127431656477565333444516542266667533631671557423666441424653532515271477456512711156112616152453364323471352664772623774622266616252622667256647743354757376351376451667774772766235742612637757736124716415725751446636123221114226611563265763241735747251372715677756375275511723411345575767577465235265637722474421317777167137653571465361647373343343442555443122361127314334771345622161735257475627741315176233734254346165134626712153764716312146463413127511513627325717651154714464776667131333365267144241754322123621633655224732757514772335647122324622533247556426117452146162224576142466533316211166463411522113121261155515427447316646722254657777714475331514446433426753331322433173547537364131573377724266421632317262313726176445341661624117451367627334133677535745727432567535437453766466552445157123363355121166375354221466373416656373114234264132554733652434231752474236545251436142441773416624754377265773247163341337612463272523651362617636352315315464113366665714265167116346271756357727626327746666767534543532571663755516624772512455722414765743441133126417757234647727515323751274575347245362655561653574113223574331365214412271265646356671351613743664334555773457425325443543241431174652443722755626464637354437657235573174473164622226355731726753633143474623376631557263365262456762433734275251431366626444624432776261721545772741743571373646246764167245246353547131277565422322131755662426714711131211763214337546325551361163166311316531374447363141211426146767727513652436365572723775712511624616213445314174477716511672174465215662523232572564445535155614344144415632222571146531447327655471732526141311425212465311376136341533547562743565623553623537374341125114311666462647232575524362415215646736675772715365251677141662357363253662274744561661675764234262471117431735414563672561223533114124161374136526725263216662272575323554252733535353775574724314746524243335617445756537333763471452265431113261175152114374643721231664176435645443543264762353576665316361256712266626334453733623465214442232562455217745441623273725351515163337167164642125554155525776475141156256752165644451333733613527535543437757453717243647142523575363637635773215331136753234515453737732522142516611516132623351663667142256547541712636717336536215133442345311313665476543615427343611734456626316267153435317435615722571373324144752424145211673474745714236144451612327147337771576266621625372364636743776176256166661154674244746643143753717517417626226744357134341747331421562554375373721144511715652723213451121167463571151243131233654213236334474153177314731753457272526362142546766127624631215335517445651136134657732416531573354221117332246643745317374344762325537463616413117742161425115457223362563544745732232313125662715345423176674376513754356255547274656365244515566164533441215125524343171552332247722357367113666334643731155412314633573613274736313627146577121625115365716421343745651447563645366216727671736324113261336524473314217266461434146364417372751372733752622165561337171232346477613271573113572645646163327277357727766417767263161771232263222123123773773131437647754273536637243533244446523516675336571565511766424757643234124641531517361477332637725341743531613775633772136322435271366652733342736446762635177621661665752225511565354547461543543521426551442511346723662147434676141726163334461463662277142432436442441775444574273414437574147714262263746417747472744135532544364413616651664646152555441625443724316314474257774152727121666371732662323642641366667563562521624214357644132171757127315466642453721715422531636637571451434612215277153235322115276433477267411231236453326527447313654563633767213162333326374334612472656354365674147471331663465734123661521317725775131321666453276574756777772572214347436475735526213174174354515342416367153634554175615253624462622661577263631452132667352722114512671617214353457756724315437127416671522256635623534157713735176757142276262655337744756252162666674123142326752656444372571777761373677142737134172523124223313352643646153165675152463124456124427615623122611527666211657561223324175426611162162712211166212553174745737747456557777276121376616222116112241136746155167231212744355267475511425224134266311525242772143624676532256675546627355654762445144631245745522473542327736274671474422225711341724247252111572643215541351415517235254554523121443216254336177232741416171523567122756511431454662634645127376312426371544712311514367113143175347317455746317471131231545154611641676514434474516542627535126322413453737377142735227273716741211561264133231334266375616573725273212735347514232773663554246756411614351434151361657234552561333535263435152111176122677256313575425661466717126747241255277561223112152763766672716743654724157357576774275764366262667462761726176166527226665475774632132144155165136761667547336622225453161716413312471444476461624562712112752314563631212241332111311522627247527212342456512123154337531566642573736374256571776542424673657741343374122661662637711561267264231651354452642235247417635754316564713367565721554536413172533323114453333236273155127436773345566223766211141456271345136563341274664425632171137373717566724254744326173424421447141127133561254727647111663631734757154442661463347361447732126635644221517645273332417314527512277522662656576123474525117757271263353541322345614355777165215334562157312547232557477576321745534151712366273462441512435632325124215453414153331572655332673575127574256653376456543317477151662553371277527365453675755773751345675124777156514115574373517744545357261165155655346616267364142571516535243122656446376234731121272164622224472247177723437432561771662714555772722125457434524714214325763663166477346371163565176637346635245714732561777357177754772774621422234414624651761675476665351524636311763341631637417377344416774734132577653747727761615456366752475656745242344443534312251147327225112546173537713443777176737151663147157424425763362461274313471726134776432242577647157422763265771517444561731734733175374514223364331121215211714425354726451711464665177641743415152655514625163463374257465626433622473265665344573132267152725517667375775531211643162771473143233153754447671166466675755252615123511266256455224715672421622434726245263732553264165431622265556314223626714444252626171317176146562755765322746341252224224152737346744577174142267511334742145371165555656463512563627414537351476265155714376544247177464532513632456157516374711631771463144327564573653614225327421576214557435226475157412343216477312166733564524343213537262131163272275443236662122466516732242473722467113671172452434236452632323573574764175452726352127414745425165574125553164111333376173654453223624512721532765425235612257612215655251343532374231112447332663451216342726256712124451533623267277144436265267411747224576125146263727656476437645756437453156776311376245222117616563521147147771741556467612712652243241254244341526376377567756172526545261736772732661547645555721675424621521724214461544333125326152654636741561321374131552374113377663676754177246762137267711241347537535356373372574534545652717773767524465714275742425214476417715677446157667364526351717662562362326233213141635562554643133451513546257514776545734421123362443126745727436413217751174322576112117613565437251156355721271212433415173556564712641542663115257632431726716316674657246657376371445646647471467764722616747617754552435475434533245446433323321175252731475242576452325667222333241344423341432316642337462615243471754477644114161335364456373742747327475226524156516364135322517551631342325634625544246171253147323556112615367153511512637243376764675265625734324576652717341136625534337224665435334526452476467243616627216763625371146425255362773655717676271737145726443314513771571662472616712475353613375514674153334614416747615167537217717535171552323231312232175326331373112171444151322434654577423553265575741447461634341121164343771451245213253456713214334767351535762513737366266611243643621764562754366426235136343537133342627215553515442244172456562725221343137417154311621177745241162225532463512142335354267115125351224464135251576233562673416254316655352176246172541731373337657655372623447256523637756313271265126312646773666362357311621657552523671561266114254314565653732113573562612624451712351256542663133412763164533735174311166464777442652167643256765326536374175233317537535142151673655516225132573546522446654744322173136543712377353517575271733243657625136366324765656475571226623676373342313773657421311534316777547214344643322475436612344145132144417165427651524315652365771375755764436534671341136354165136734433216261552626721656466321123567121731226411323512562313535215117322335276237572167222575425136261524244177261366322672333146165236664373311351323472645244263675665215647774745316572337645236134546423423746767631174162616421216162324637636722123531123675616535666352354247462745241441233216615643277725654253177144366621523276626711676315534541277253444654656547721663445722242361534123511464557555112734342571554376657626463451263565213374561121126717546215444613535775445567662672557512255746223133776465454533112773137725757252563522377153475766211322727756324677237136515414235257541657411172216122673334747674752237177227532344534261675766355561671623777234617537527515354144134327537553153227172144712516223644631727244657571724526667623171574776613411362363146735711322572172164325564723331124736171341462661333213674337354166777124372572735456636363322737736652212551165622516544776212215262423611117663143711522352662412654154356345762274346423773245333157626563453672231272572116652277251141575765227331517622517127246462433232764121172275465477425254631155453265275436175745777634317335712421252124645541241144666523333675623245643317424541337213545735621254147472444231473324572575261215732762345661722463252323152364176316434333536664122445172232641561435167433333134312713135331577753463437752376727332545277451457115552451717622644121652727174215654132124225372115363575474216715431553375736356176345226641644376475125631457456333146142235656635456133317266123431345561357244711735366415336613637416645562174377726657412312675556533422642461363142223354634523576231424664722437651215612454643557622311722266245376256415171545437662163413437166715656466534417517626267522641433221167144525475557415371654131542552667332112767721661667472457735324256461566652651146716264176622357326476454551665676516336331456521561326115213772664527552521562551574576227531126411457731771256447721633626627662746633143262245141134436222317424427633263577374421264116241112643557265546477141157562476421774463311266736753272351427273474252474633546454773221263323754361642324672631337652111344732372466527317574536625736364677137377141173163456442245274663617736645755464632566614544223623617513371147632722724467123575176757417514661173375644756326146754614776555664215712411354257154456246724574236121362427736145622546541312644567516151254251654127114136313171162711735554742355365772742253372763176645431677536447534162332621227124667757744777653451625117123144524533547136135573766516412736512274467513427117576356321523475635274245617537517434466552122614545252754727611764523572725326113622116623624613366747252773614276521314565256616473321537222653625157545275255136472454577175477374242173512435365433123224773634461711263435264631253516276572157241477754563266315576427377425543512571257577632322364315367734314675622713666131356121646661312172574176464371436451445323564675244673533273341225262114463763617317764423751172531733562172363424424766454654147252522743212545327625674252757614167464614272745741427154443533243323615434632425471426174546264516717454241413253426245611631472273341175137455126644434627661221465665411457262256512275273316554343214351371526477727457717566323635372533616445447575576565511175645227572356233174754543425536323736116254267511175563246722754346261715444514525213637541756424442544327762535366663541736517354522255363537367256443657431575356475243511656565343621675654373352776361445425261654734522362517721656634576225413116671127312423472375154676447751641743113245525655353743721615172216517245616415232647331333243455325431123763427714141463617364727654676366541551264324616534446425224144637775235757551345771153564362664765677475442475215413671421727326126166722273734666265441433476311227131442755445354221474154616732734177465242661323454261752664761371541356655727276735724312127261345574373165124127533255457466532373732241664475557174753633576135442656755326274225722315556463236434421364175427211551337276431313656116417171124262225136111233631531472421624253465212123256532525765327573237417331444671755136544376451763744767234534722445333762621637333733757544237474336645231234257663371244671752476372214247775765424541237434615546767425414323154421556633424361156232673335733515674557731457466472573136733375264532544773151722271624421157676362635446644756366451233251147775262125613327247125132546563574422634535777614726542627617256532114551367462754737133113732724145623153121437722226446143334651533241453636641254737635177565643266345627625732335423142231725244277164245641214147363515727643273372727514725432362642444431157421624675466132372465732575573644137526266262342477314653444137544417435245411652723371654467535117152617552747241571676334417322246527615772625166265232513636752745726536721641477313563157765153654547443431577642122547436355654337465147321315511175152711575237277123155325116216714224274126747152361232732753665271631433447446616622725324712443547673237373265257362735525773356335662512222736176311754653227154642232366553562413622221643641236551716675153435116342435723256734236126634211711756123725233146562364377711712226247532345652531771437442544675622715243721314414641614761461254344261474525276754735544673132465113254735665453166742443746125636364661556424633627263467271774743342427261664256264543564574371634777126225552362146526267636613323226137725365662653563545526752413236322267647125375762545454516141174313417524245153227765357173323755416467725422745145614533255563325155766631146652442726444122544364773766273161424736574225472232643251111417653256246561321664251467577652637155111776132237745125175763145264676775721343431142642451775625415216717153517724122451561352122753544551232124646114174131344531115653117432127722532355472154276155375331543655132356726135654553223165242636343671473416213772323632556743716267347612434143415771257244456376422324461715445255473527266125662213663774551476246621747552357572161561256316244125222267336315524774111733667312733253226741533322643237427441554172424331374647243456521455633453725357511314222667541627524152443272262412235324377573644352536157275537154615245336623352536543573467374675433376351516162646226566525326261631556641556144667655431373223476555451437434743637514633355625664331573541135337417114543234114447627313317153135246623156651426427542212221543477353677576542413557611222416756175454436312454142143165426424243622564326474772215533416352776471546262741561623476147775274234222232446525616257764154515331153317443426316335343142544267415136113466227363117536772432313116117467213341553536436572742364265343274522717362136625213351762525744637727757354165776344552624333116122136256575276232576751525137741253172142572414664663755461375524243457647217667346645323354227543721115726714142627451125531475117211714636433726664777543624534556767564336731616316364666332121117157433325317347317716742143255363435671531576637627634141566336572462554724611674756473552575366534721413215315614645232413342135637112534354155633557621256362155266332661477264632634762631145755721327351317774167677162217115771722761732743553643563113724515621117324537215462151352755335121142165551461241566734122665567575724412562725175777511776556637442123311412322132223224312176742265525666233437662214644245753312273662715352347572365723522262371671271647264354474376551766326416627723751477157576465465427371164177464634651621567436161127237646615272756141327353272414531425416356445262415344774245611664525562527255615553153677451651233171253211772661266666635714736437556127211666626675567272516551637551613762663644325454745623116155346744124511343721525376711726553367163455622125261132142145614342352537312534454466564167667315633725167252717366355664653724571173712637121257725674361664243364655151174313224775334513147575264713122643275565221773327367216717331415124613345545776636667551523674477271444312122726575664646135676625672424735247137616464216776652451634236754176266126547451437675777334331641667662436613646637436472145222327377544334722715641611124647211347325661463653441533644432453521644452522116543536733576734325413752333544322775611251755526367776132477141241742251366747767176673253157215311646665471511412471626244256627774674433623155224311234742635734323657351757472333357663256752415114241447517732351257675573154574122365347233472621511472716376111357274227567762743223314253165122253575554643151472132657377722347636423271416556773252371313557442314633724663662121251313757624156451153552131334361432627613421276414761275442711143246241512633513374623357651665313337327614214644227556634623564711753144674361113177753456725337545143633461572722127565351224277725312651122324546515334357176171732136331554121111534173713733236452224462115115271722333745352227351131241163522624171364223455423536563663255447166336752326162544413773331166114737645167116353115526161167762576472372212241653425423543531772541172322646635276732415662161256366512166752471475545323433667625467765573653124577243627316277157747627224527216344745767527535643525447233264221615515576452236521275322647371563245614562125667127562147716265612374764275174117266373375333724245744364174525534374735651362726514144655436213763577455474777667315614357372667357315156457346417367745614114142172677655621561532636327137654764355343135315472754627742737545373737444275155264765662276142713426464115632462757646265113414755724336721367565663572324766363156512423542622322662224612442166647112566142474574635417555164762763252267521171564325414423722232656116752171251524476747253576665677566616725711442236363533532312352252155755122256175562754316445753167766472716536475613443227116336425364476341122673241563674647472241617535157241666646345622771125216362167224213217744546747251172632237153673133237613516434644236363411662214627511262145532256275545545165661731751365742266117655442261756743251377174433253232616235232147565524645271537254354267714231317772556417662676244763165572533642111761657137764553251122216572114173277124232571735131253733333654264375732271315137346651125513332673575736257662117616111672226426175777535635137227242241563335155746122614421354467523763436243756762363125153531674262545453167766314526445721112442725663172277132514552343454537732421621752155436274332677452446711724211436111131453653631275166171412666477573651447622741651661743321267241536763666773261247444666715133127717365276425551526215176513235135765675457136417237141733445152767441226241112736142236572371467443476423534747653277746317457414163635212726613334332363327272571265126312112556172432655714273411223145255534353527676317626351314721545411756431422362354213354766133615722765737267426246615373277571363572315435377233115555265255425765236712642564276763423231712412234134212571312172453716177357514326741221352553637247141116261513511543567146332445553675614664146122512536351535414174555155672524765141717163723423112631311572112736126734247672323526667647251453366171635525151532327314332361711531733526445517732164436776261345451143777561565175457466216334171216576565734545222257277734445676457446242726441775736133571377255112147232116277172725366335343274472425546466466667427253127437216342135713653542615532144121131166312712417775355732347661113113145255516625344257415314414136532277741744662226257621372775751262266463743264223374334534342551771647255574335556212666312477677675123575137775525774636277276377772441165155646457144755774624623771371715472447654251751553145554675776556733711335534572126663254164731643245211165556767667326625221415132554774442457345467353114245761335646323651615564522234547457672577341535727515277512277356247511545531524416235227531656514464531323566247764615751247122567244317767673712373772127231311336766764655346566276511433564737525535223156745666647714472164757623444763667556452442773322726122377165465434371554166327433444713723671335764143542474556244735227626663463276464635323336623456431327766216254747571245246613447672673423451146136352715766433314614146423531453212522421353525315623565247314646111353411163614477155512634437232467621136327171716657253525652117112116151777111767174466343445556161766177117325336674537215753763172711733765611412274325734423633143246636427562771524236672165371725711653731132374627527147717273724172476611133626717733743754256666146631255546341445741446274154171174212676633166564737656365776126531737734232121415573532432254727233225531153335125472636264776622344231337673475346531451141742267623657656216142726173377313623525222176731545131147361331614375727327333437233237377433435174776632675347254611741614257676416474573426555346444545174265135165465731727453411256775425141741527314426363743252762524347445437562123752357674112355122266731716331627266145665224736244147341273366475321771712324231556672623362322754265256527233417271562131353661211145721753315445524736164553515713674673245611363777776563753645124575131513752452443331727423136715427612121365633165361333546337212364516635517147766211676433563723573367141254164675155732277611251621624141451347755667721622141322315712267214322172213474527644114575724756471712333564345433733424326735615726251427265721334776441335736427454537647343576116142216721674631473477444716537545766677756333513753127617574557466255354321661375511612673262227155713355353514376367646265427345747316254625366134221241773631544616533325153766321535624321475267752374211571444616312144215125732271623172257641461716326132645755351557116762732233176612267764632677771616123446755757377276762242243234147473372267127147146254571714531411141251374427524552122334777257365423454726171546762215626644762434112414223311316531324217626162573135667131352134266511674522712327775722157263723715266547132374215111225254657251716573617141561273325152641567667657347455533663126634121111717174131267742431753645451472472522235454342575614217146175456537154721465646337157764675543436455747216672646645744445121465433237251152455242147574227475341655614613267724321262724674331517367762227111533763256656322473423432644554751347756553474653216462745434231475363151511276621677774651275344113421573633535615515263413156556222313665257131611431773317376322552742566671753227336551611533117324474463561114756744726112323544325674253454761755451262434172645524151426124433277417573224477152667632655331547772652214754772261355654426514475672235533222552617465137717451152574266422767251321134135272327461126177376434556561213724366236347357421363632622652345664427464423465524721373471725615366326761237773415646116317262627652541674675346223744775615117114351447131575511725416311112132461625641631571672542572523146215377763155335325563744326732654313323741564336216473134731217551173377467122732613327113134722132573541462766366717721335736151421766744354212113176331144761224433347676436647361125231737263525142242715662631642476473521774512727211111473471737611173363753266221232372643647732241511115534346461621115561473511572673456212161364414154314656746247525347645774334741411777773736612455332241574372333542453147147274741174344775331776353557463524421527255664431521445634713315646622741547114365433227622342747731246414435765627352453671214121344214746456151215352654764476533264562547556577324621221761744254643236275754627472635734127656343656616475176257554241663741675264754714635564631356456742133742357161655433126265132636241546115123271765377326732236163351152764415523263215211335144511737327651532162523334577225617172724623176325677133413525425336531234535476256362642215767523476621375755772531714236136217567452512316117253464222724556525673754315125354522334447214177556165516241166547714547662363452361132766174652762557435775333572714215115614122361354263737317471222634436131471436756451471552565157534537676743751625766243432231323777667674171264173626361615147536426576326536155557416617415361343224245132657525666447527467434155473375562545324272163233175473352611567144577317536241457231566656136153542574557474552676144634637544721371156125574173777574167134546616715527417726227366675611465356241633565656511657456357426244161253642337212367255213144172411637213547657117146656274773155347271665544645651456376176323241361556443121627775745545577734164232275411573513477263135141656273524474464744214324637443432362734473741546167632215352725163367136533771627513643562654463123125162562644625211651145415116432332472756347262357374236661623246526715643763221357115713715423415415173572723162162562774647211651462633146554672241552147151156315612136673263571767364273317252733246127456137245275716356315671235131717734751617312147177651774521622625214265136443454542532325477652472222645512156524711342712771151463747421746712413446547751265243546512675576741376364272411145411472762552445665425155217323775245333612765544416323745717327144571251366253535456164665616634313322567374767536534212775767337673152112517663435267457156123123431641232121565273341367361573246233456771747471734154113373621545122711175154151666417736321565211411623431257256126713734114745115167544562527531332526341644454364441121213355512775731736364123577772134371243342746231771474663773377746163327624446547511121517741655654116171645623515536671616774571112123327273453337127311211567711325656666244667713634164353343567364343176666766353761515743533451176425436224263452624537173442552415447273611167353645765433617252617726321537566763671535736143334227263366435344645112614517142575625163727554351712172553561747641567753142567672121216664762666134233541721111224344242631237133556243445447571135542745251365553316643411361465342556375324271523317757225366113367331163473656211226241176622252314523264461313435342362354573644315625273435771426664132613177532324155521311354252676256566432675372163224252576165714653437726467576221546136755656345621523552542573761675513477325116272547735315714274656336461172131325422353755564363115644764277442273521145515343565353751477434664346462244761447274472641715475142171326125272213662157141722535135376112631263442657575717263775526537624142417715175765625234176663765372653664413213716631432231546217565745526146546432565622176736715673365171156721261163374216776651226636134636166266536246157144155152664442257167752577515422231135225751117227225515556431754767673311522544467342131174161657651172455623372436542641266355332453721473744116163241277144761247531612276717517244375321111245317412722524676533362133244367122262355547221714344557173631744372631315447651416764715362567116462444217215445454154613253274144311742764547475113613232542157522626214772742554135457725234226327252743346414127675767622344317434521244126541442242134471121154547765376254421644761531542661435324765722455464262244222517644417275611347225544771423715772344463363311322167676641341141415755273645167417366154112315347234665361171731761716526641516542332251472475674715667645737623156365445515414216674762475457765635472143523334135634773642752544373521773436253635356744241324765441541113131315253147474647435311356377712144771216267764631451626457457565365516446354147126277246214373723575442417715126657775725446752342117341353155754753556213212345646513651156764461146777312545223274552677516156352163113371123443232312273212141456671337342626231353613344451427317554572173726264446172537573654722363413174723471317663653147633773453764556135257256534251244553721216674617536443425734257526212343343724766543715611226317332577125416126663375165221152125466571233235245575213745154376235115231455261651373717625354211123635114624122251563544463124335521322725326454623116656161514256521623455422124436323333374743625776345111422766637354615322613424461172246555351376771443634375745154317355172243243216612343236645316444155461776331321646271155627673222757267724746244753762663743465563572574217724522732127515254623374454715121663165211272617312732411123634624134754175276241435766277464157672361111521555537247157227145734365365447526371334453425422125644574342424254421166547273525411752426661377743163156216557312521663451612727327544454433576647126375576667532617266132571316311352731621714375234236411641473421733136237666422135716762231414677373137116761174674613725276665716322323212333732513126636434226157213524751354544247143716542446367553361427173637543245721255225313642114115417463771673631554214671123524265334744124417665326677121474232156453265637626347341263443165474352671464455322447577153463232651141127565421656745663321653242347551437372371275174437514241566433517541617141647213265621167632314362573576662623242634744636267726175356145336662247643245265267267125733465463772665312721657675771574144712422512433746124714514574222534765355432726621323774465216462771527473666567533233771513451652134214464433526741342433671177214734313146512316443625216336261673344552523654632115735571531527754631713411165465162752224367375761162433652312232437642462433121231413761333445617614144476671125165475522776577467274644635737547416362461341427347744437332311352211457614646673511353326646674136173154551442133271422476377172621347126264311721772244213223416652565573144237246574124456717565763434152676524574125553453443351725533623566256677456725412736237674375565414473531344274317222323742627471131474441261532455716212574643766137524633116363755717167645254267251635255173412373222217645454461554373113555776337542545373753127667171456257113267454214511714763713257275217535574225666656367671136257617674453174553452412461574422422471156457145522754132113654726366573552466237546142362651453322263637777624767574642237276537746321431333122773467723133615623666731273576116455466763265167346241461752652531476475734432567424653747246533573433235712251232527224342224515151414376415641133144663225665512542373145641753361167372771641136455673456653113323252463557752637421765544276622156315573672154226215272632513621653542143241764526436633714316573751364712121474357334545276167565734326521712436473167617526614376741734144221171477377364244575512615322143153314353313637311772354125322641273527252544476516135456371576515751175342713674411355276465236244265712324715565513544472327235763555727512362744427266412435134413374466614222574514465521434714356724616437516257525311555255773674465221371325311252336754664145523446477632563511643541231654337714654547717367565742255252726726414161252122267675124651143754625444453764224374726313521126611545212622433764365337512724515652414675142341117633724226617516157437353627732125411142634715522576433224231432173217414276657141724336152125435157227541537643646372327532476113235222475462146616141124355177512345575443551431446661435155127453244771465442617566522436252111425126154737121171762326134455521234242536547751766312336673456512226473467566564526641432176756271251516564444215713355455454215434476355132654455713461327151613264733555733471273551613621713332745312125575515273354656141414671442655424316725363167175135636763457122642555214622721445337246573416773251772474777244777124675357347575716246645652262364163512557537327255741527645274672364531515441465272344231751442667444624572542461625341546512112757452221516754757424661553154362347462533331146717477654173523167135321655161672132731537223522436367465364464771113267322765341177256725454145265623554164622643752644423126546331717517311514772266721242227154364436467431347576462527731737475132111765113154222475371515564461571627331547261521262343111461632733165153171264414541153231325537737654165323755542557774135677714662367232647314451561175764764354624647133154433613122512321767342136141355132523125477532637675111625164776251564424471775776516612517117135215556427427227771771152164111631327252124257251341366665476462623652275522631676744634513453535224434326572663456253523267553415157511462767246153446665752423132222572667625522277767455717434656125415516262671577555367324712735576257176267447435354325727223773611631647525551377732644656255556651736117666736743226625434311366373314473217213436327773345565524755326746667334266366734422264752615512471535254213217552671377661342523675424144555624714244233367651131712336175756367714431176753267472734645343263364126245145464523717574241671137433446373753426131111636625127174332351665131644745131723535645217536625537533241163256533217641723625462436164172521463725723115516466731541362434614125121533213242736224442626477721633676236663277733366662522434621317124173513525765744337513164234247651231574312217532613123546363261323574234555442723434111732261433614337775451664146647144373437737354465134324747635652411655757126464211642247333722252361257252131552646173227513632177215234446424612511242114471627642465132114574756112434174266353522334635315134735362711337355647113577432234646577671144763657561751124241645625624727337714664771273521714516361752124116514214435721122412442441762463254775441353356627764332321461725525373327744636646262415664665441367521635412366225577256735612737623275646275137617625431313427411723527351153255137713234575547732323252477725441432765545422316437164425316763147435113654176653671433266175521455376773314373573746366217151226757646317747311616544576474636435523464361423575461142112676451324663432414165533751253432217443233475657355132526645211343576722363157725622115672512656126122357666562365566265436634536547676754743271751671333326612657756555263624611172146571472667656535453635236447744524774362251234711375131714672475174623252276767726633643324674315771317531421433226522265745467266337314457414746631247743612732665727566436134137255161451655235136776551565371215734162366213616517475554324346141561121132424476336725446774517677121234577136762663321127662572674736416531327675347462442532112515566332474455221361434617131412351124365743466614667452375436755166524222677461261125445127716425317122222371416437366777117743413536741271343227355167277375556131125246313626563513422352241743255172623214764434677245461476723533726247156523273321767737742324737654662545276621616623637263775754443731567342344347633653152641236622761126354617774372517174236131331434452752753422663674427443576652221427636267466757413566136734356422515325274272344533436332167122213736566226444126362125424427541154734555412224152474337771166275677354136451165326153752261211671635452316334267175363522733123116755217742572671431723325621242241761666255345512525246732257473572772616443224515222225533474163453544311733324145461144524132561146576763325731671715366112452575545555717614163275144644222472257125526621321757553251673233361562255236272276354711762276544524141555416745764454664115662434131321771666556225723325723257773125235425214737521152554212122434357713523235177125474116427674321321674126637631672313255346667723114526411415675735363227716112423775547711471115644267161172344645432423454554351767676127354141513745423771445455556457415211273511343643717664441226377712231622656244446536173235164274337512726633311353163415234544216251562354716743462733445133663421567125636543172364652574153424613626322365675134621177525171651234776325125737414424577476453677416342754547611263743673442132164111326774656774472753326623243544615616313224753161433426144321122773635356655275347722626451662173457276263614447543744672172271656666415176554621226517117346444324276775653245467341363221264636347147745263142166315646666341375222217146552771623476475433463214545464342552744215264621277521276155522776173615344127246231442461242442462744477213241164342471625161421524274226643652315465547346571574313736613217457115773741531717351745547161145247157344437527564662447457673311325462126112161666243212362522664533746656166164717441567643141614322277227725526472651756272364125236257152635515173377127446152716634742324716516135256234242332235722143755535342251113536154216771226714476333652663155254515416637422271734412612236744514465252325534731472573725531313642467733416272343524115572122426776772443264327772313274417653463473636346611621161511142237517757332367252333452523146263343341375433542615443534732761225551771444132223656333146255417165365422235457655671226733673622357133346214173663175611362544112224461473113311622422642136537642311442663315316557753267132136471536634266637515614242346462431415272731523675566122447225561533454656747331717733261323262455623271176122333435764726335573266625134657274531247732676457715567412271322764732136225163773763733264416576312414256666216615111546271742673745463562313174624777711715175512467635261577363772164175616577636632541531561267367127512452434316674656146164234135226473656321372161165774421244775636333264435734143633315421122735567216752465163457627573716171567611617166774233136275575516515667661666467213535366147731671561566655714635222141765761162131127615477164715223432321336552755165645554266711344567732527125534417176625625743333225417433225656676577353161424756621763226714714675734232414122175274535327131617313147311722233754436272125377341554615721355642416237552372246224716611146634274111167227553515226111334127536341557412567731653664627341324361346316555667766345737664727457473435324114212246633122634672741415157651311525422733217616174346243142363455221324756747767423231655175453275441156154752624251445146714345711236134432625452516332324762473526522175471145416252515214355746622141711735676623265125563257153256462574264266676312177415423652627761521346227261377231713311512612675632555463412446656211352533733527164533215452431451427763476157756342763542776734116116455253341216574241341245656567324152326547427144361425273162124633774752624647466447361667712565765564666343472367415575516155564433731666221556527477367275664327723223146333276157275216774447531154371344754563573423234771654163444667255735316652264655742453126614632545276263323712517165316267663147767516251542732742573423521136126216135172275572143516771274727637652353513314511263763713515412366635277441722232531132424254524316227264376623116323554212764334346376136122432375744575764426154124727642776345143423323665614316712766376234147413145423214655546756626532247211534466721415272267762645253115267727631763522732741344762273722625717127561765372326134355741253645767636746677133645474271425722421413327376272476347777733636171242413534464544572572614171611126276663322717576646137657152155776774327627567564471576674722622431174155145123663733613225577143362711515227626312674137717634254554625451442363654461452454172556332176253313711457515653373561425535453123424562553442712352534417154465137617164422622277353623647327224324223766251311336627113244371622445753562722755637653377146131465162432643132635132363317423562477744147554657352712452415763123217624761567624226474534322745366361161347223656415167533131661537636764716373154664747463642625611636327261666466254222576162564566512647737775513245425425613362353631743634425131573336726465632316372656337132321545451226171442362571323337651736513546557613143322354716765271762445224116423664234535534454562127731453226524241633437275543265252427142614441424176715573221636212216571144217716517367711115146267131154575666451521411623431267364371767547524566541722476534553112172267232711576512151734313513234353217471657542657144664156463231451431526614712136426234274427566732174755566661642656315747135621131547326125323512352265161752776254115721552733271326125324623452762665743246665621642365141525734223127344333236214554371343245667163237664216231527246314647537557274263514331512446371764157146155564745511553737667766473516434174617352521233222222171553516235617754237354616121447526277123714721545473264717753145754766261773246726335736743351765555515714232123166611575134132727611472225341651441611534342454535514126653742125127374721265632322135722327531432573174224127353457261424476433713322745456474153761133563346657172417344234631127343512157734755235253615362413437122227234622354173453323464141244376311774152653332553123527643313245446154452775163565251165515222655664342641467757666174654467666566122317545552651561146626625564376537425273551637755631532311632525577227676163757654727341445526417521512417625622335353326122754746727371264756311747412413712376212231457254725232263434124455375521577516321244364736357716556321512652515723461755522624671433624773364157315574366651352416717471646443313175633422556737622672615643175625311643731744137221521415724577437415121335631653625155557341273355156211775262564373241316346764412333533352622461716236174663234567153317513653153777771377724472421643734331557257341517523164425613117453647676644616671276541323645623217317263555445665432676262144456417337714562247123312241454222274347231721256251423747116642161524451652771625171314415262372565142331647633642663333263534714431764742245531111355175557352626724532657432534762572241265557363745333276453153332646674553413776542153731336572766656434175376263571713147636135713766576336345524725321214136731246726651575367751614646453347373276213263122111311165744362332673413141344666616136732362627716366663137525327233145474666567425415721663535451164534333122164726627627264742242535377573122534317471431735343437376366661735566447673717545112751517465673442425316717774476614664744533211442212214173564545345642336646614145457771466744461265411315377715663763722126465524356427341433121416131233163645373154217254567642644776316673334752464512161145233732664653127524763335554661424621227576172153462126514364445227452421331537116322212532115726773246271445467312432715136532541155115252722753236427244216362511312137443537164736152473433714755362336623631344253433166552166725151143347564311663273141261162611125462432163352663177336445536637516152361626275425342316772676641555174366276751627741647136124113533363214272474311375471413215471126356777247667736577647352132244773713146726722773767116431556357567264277772372571513456444463352477727726266446621166143572747171113126746673665714712253456567611322326127316216671136475444446571123135176717717112762527364153266561312112213223522674733342761641112223554767443743435172311476426751225734771216552373533673456343376171672124671147313113457325654475655267561765737331677721416266764523671111674647137133215124633424175225416113116112442255647112732564425236647552736344742153256544377133727176212147653761326162613626221332363577465753214724326577533657776456524222542354615566651347356124666312567734435315164227155157556427777763545465375631736545523575465575141511432235227115666237716566274455611744466676476332234214743412274267746647677443676311624276315755753746637674274126212643515212117474411471221533545132372133355326156126232324662416747243517233151153117331131372266112563627134353553417633673113724372665677436113565451157462764424713573456452127576713752151523324665242371474474374673111362625474121441623253572371522642244674427465646165456775767365672273745725512431175666575543335656152745435662713613553341174572311676442331431123371635736316656137774227373575725117713654441355255716137427233644754232667135674474471342464662257172372215776345675142271771325236665717717553254757311411454371156761653627355743173255432152271167264467425313523252724342663671621366431261544172465132421611113342217246423243573226477571722347567615466614354517356445647774662744512513231621566523326336626132514164377572661543775737733545126425265335523577217714126363115161516443126515536631242272423332373351662444227213237647712455676334313667473333655733745272673635277575536771366262667571671264115165741652127755345215226345156666474662763162727442374131646536515174372671214257471124221214156755476777227544675611232262776565436227142136617312444763162152726631656162754715161667217524737623171621215617327476436412214116417611722673636677453423635457327212315665351152126471774632664725247647465673116157266763153644472465335135436445364372617115554734567373256724654213475475163665354374613525272734265145564243117431233414245541271715563311621775112364121775125235124356547736551617321411334147642417274261245236271443515114272444453211335261272357527542152326675226353171322646731724323456446261226447511766752765516255721657763721611711677216666676312576615211373513614635525525355546437251422663253746422165733776652677131221546243215435237531426616633155132755376141575651122714676214627135556574763457672173463424176121677657245614673173554735535446646623557431121631375617454237115166555431653636777651736553673314352135233537436335541515766336775212735317354126613754654411317132224765114436426623477143173116241141541224266751431535746366223327415646255264336411326156677333275661626344671643114713612746356755136763564651151652153356215212625624364661711167414653573413576467717577672622553337526157547477521462563644731365351366334474446525673171674133671126162422766731431151231744244345354526735637173227334321754422257632535331351672726367576131466452634461436635731566637464622477554333567442254244221376652121117552131766223741472442521633144731354443265752723376542545253756123557226714317747626112647136751336251162523537623424777713617133762711273566541212513523225222621122251646613645127471133545741163321414366742465425527175612621243323142747225767542452244545773234542745171576643127345622522745513727636715673215353155327533315617613575475626554161624577751633715264735636513113375745652156541271713466346751311176764213157261371647564572732133722553161111237224314764267564166334654755162215556255613653373236734422341653341276767466725242154527663742466515425454265772221664662175345217762627245755317566146266123545463545674371243111116745741215675362141472626136351345151264764513721167253277724242756275614364657665613223145673171722574232717676561114431217521612272526111111771272655116267362573765667112121242437241177227577777566677721144317434553566535554534315476522254316673353136624476147617452777347237475772675345262243212473547563542443743566315631263544111777263521134313345121251524345335463146152614132644172164421355125533447621345443143442124263676452615711746623137675717527127664765655763645161147657623545435234631531226646153151245531415127423617723627436144261743174675751242345531513517136233552232121254371754744415422456643165366314144252646317163427213532271222646363641513533775126362521735321167545715461677571541732126547766644446224315365542635247735123717355216747466353557364461272564632442235315244531571337346636211545772443361743733166734726551526426573231336733343255647635721653743276431335762227614711572516274523467623322544535336417677617362731714355643325167642621671641144235573457612412575767751255352666455723673155334724122346175365222134525244677473724242142611334646312125625556757515123313446233164377251747545636342672257162411231266352237213157336645555125332357216441463777734727525231165214335113361662665367342275373235561312631127215735771322762476254316571514544431141373512752671233214275641315523654335533113146457116513754525114657323724342211122613317672513162134537364475627721343342514233456722751422375316444771242665222135244325647371335145161441354667424155652672746442352425644233165563457551155631166331215537147625364442551333452314525412536431357624171135574746531372445371345431142365245642414545721542615453677136564347512377713266451337526532577235317547657177135171264756327342274252256356373214322636561426746564621647517722345637526751565435226223363266533227171177256123635567126556321634753172131143335274216773646143532241564677132763575326712617272427467256274572243714715177126352432451577257375675465116127165341416466574533235763514437345272353112161435261661243615642472626247357424333312446727525775256114141724547712266162134644363364717123671561127637234521357516271223472662773175712364332414224346626774315614525154637767511145647646367761453161543453433541345221262362536735112567733377543376536754126133654123226557533264247745541465752564116775742477214121676745543633454444352431543256355253131323677336653726274522357176312444133256755467277653227321151236631247255715745733354377316531335542561451154762416736171644116773352311336134365272111216711521246367423346616526646167752234267716161526516362245145153367715717736227771726244151566725726427314236245341354751141743545421542175612555574272416513266627715326121266756376641422732535645677411631546575453525122215713573544731224175654237742373774354641434466265752466374524724563156213761517415755624276612361617621326411451146542371352521711673635677755253256317335621712772375264272611226251224616171271541261777367313337352164164124267315326345276532567215515136444575446363124777366371252655532212167715331747176636163262745266575467343347347344152517113532312252116553471535153443344117251567111756337422121554127622651741142251725656272357672765244351356464665363213342332537464712747726376735456613247332462752367352213726654555172145473572132167372513472261771275745426532737171263543161167317213645622726136255432657176121732437321634546465241446455457664141714266634673427554331115165471511121714415747726453563473242222435547217123126763342612246472734623553465777576134316632471515377645214113173726557333414676435423343645365756625662343123776542176464122711614464627233532516626665311613713543144767353533425414146137427775272611646131574435152174147231662142237153244611526735433546645752376374731511563566443621615313543413716261347727564756237677245526337146274265144551375354412274126243163412336674143562344565271124424676121111535215543221747752414274727131213135713235332436717537133756177523424651413667652624737344265247612276357735624716423547365122113444371464267667641126156677321654415444273162257462471271223421152637246566113153312543676137245437455444356764237513763716634566445312147637363254662154146516563224527613533257646263666441436761344334711456433241547574551556672345157114741366542423271255146473271311136155623275435462317156476522734642346555432111433351337373466154317175132352515732754615355262624645547674746531147532476226512276664755561355652646716741613124722426116253132427331224425731343675626454761333267323164561534215677655244417127761217666653465255342777531454444654553541117546463764231215751437124472513576554253567621427562575245427711756574253146311266347263756746755724533757771711755675272777714417154361357562567456277517417242367636675154242227237111751116335321221637363515641641157372145777122225154536322427626747163653666111727513335476462355264451141762175745461241227346266553761761367773632167171246155642341557517616112411321545364161416575456341261531573741517325556336174742777142333641731654523466316113223237564151253352625164134756311634714533547266362112515413343436131413767727756176361131466731744125424426534344374317655461665317142635571345166547524254434364212566356372212766647475242572232512346217522621614554461552664754322332214576657435175252343747411735165646434461271726263461542535455232716545675771716365532726553377617465265165266225761162731372254312152651367373172221415556174447154241371432743254425273174557466772132315571715351271572157226725142462143445273322463672634427343522746372723254514114476242177452655676211537112532212127436474671562473546561644264476452223722271361156635112541213247473765316454562554266543675121262572323151646115644612171724134373546144251262646427541732445776362167514622127152236232476267735245115611232147454377551566673316127622135442417141235273254424337432645472644757772513232573326372555336522127137312734124346367554477253565577541635336772622677336465734513677764537427722172246125521213664673355227312432746657443663253552771532562746353331415664322677777754342657574727261661413762763772347635574377316415566255545146472474165514635516364112666373334474212674367731767572761637365635466646274316526566766751177673331235156427463242252756276155322545444315354672137235244762634111655216144635157714622237524244223754672256664765347564557163626214664123611321154234722631232154452164466531556371173356471717365613442235323153252627451653511362647363724233661143212377667617215233434261546652374533421522644366741471555353614251633114312651655125174641333661655356727114363265614312534133131756552412242652353714257663316474462532167345612223641621253134563757356324275327673165224437177374442214723564455763615367311251615127532121676375767626667614775612564716176736645621676767467242321132732545432334334224273337463575772166643166521344765311367747547755643261144311716651621614571676564723137561572556757742331411471772224373354523521625151224463463525355712476661642451674252512174642444713571576254235652134343141276566256436343777554771345752261151616663411127176616654561611116371166532543664445442727122142162111765133511266733236337555764215413226511741633357115252652413164477471664756315335164363524133674553633321352125733461153466147535731464423635427176174563471444256314776362735136757436677144473335134763257174771744544452221544257756315225515713576255476654372312232665455157327355725614444674111376754673725763666557134625335356463763256155354333345637363331367575223131616331666562632166116265721224414241436375671117731547432564235662725566455465567655621177614572765653423371141235721247341622731617361527545751664617735117322414333414477266264546642564525776533773543562577165152221673513566767354623163212726251432612361277234727246561652677734235474523646431355335322613517134773456633517734557223573164216517345142412315754726266516237227244757222342241642572553475337364151172346654652222417151613661267476633622426652123221213671131171775367431425531243365556151162362133715261144251617415213433753257462217434753134115625351657274355475442137454274756624713633357137674221157676375256667153522535525346564444314723622631372555447164733511231733335621662247675613417152114221553336535641731431173222324155143567453236342416637141474111615375352565433174766613153563655475243412265665364165572141547471314666114674434253632257443314436215726516253567164471434176651563275256275464562133216716774154414321351726475721251253743551132455673775654555673121535774227365157457145634513135177771423452467336242135416113642733114461621654472726476411675272413162344433213576356327427251312637263747277647575437413437472676525221247245214751121573444733634557773136551356361531115422114652543245122341217363414166367155333547462727141777437156125723645233172464361561444553454266564376627155514664637416653313261521423421272761355436225646275251433776127416554336351146666525661161714746525257215422311273151277367674447365216741312422737157177276642671423227551624211225135154732222464717755757472423237754541164432734732541611753477315162311645231644131122326657521257577714431625341464626615677726177117543646572741343224613725536537515212752346472115427111715762652564662117166472353275466174271541346451377437565715554474214471435414443577655467234615347677753513266547426364371152525576573765313366452221561767261131672311742271256467565756714726177447535764113762151647431742763627773472213512717213147354653255246625747421622653261216615222656637545427522717336551441262467244321164746357223761735143372336751251666414436144147754413657564774262243627523241256717466354764323637132275631765757716644353724377223534226415223225173527222651673356611643374727646132144342442777767745415227174771225653227336436544275126227637762446752725561534154767613676574251757351247213131531521112672317426563617642145331372514713234217756356433651423554145435762513412356233511564233546323213374755114736411577214571432144413777527224174143175545521736466767142154563171517354146232717676722121416127271337654671771762553177247262472435423213224313672211145774234417353674225556136261364264511362317577323717614642672422262222552432464765156553133214324655124467736334243121435665326124736475361335753354417216152163566326766222726364746771676774463326236157253171615674665565324656572376425646146526326165727416255525361256162754715534336477325161737265773172573455121767723533747756466166356624337437542236622527565516443425752125712135717272261133676337245457251475177226456651142616722461475646366217256744241443345573644442461222331144562746362153441224452663117134614117137356623634312662313336711331455523375662332512632274277234311172432222455635732352172737462571743355513277113441752365443523627265137561612267466525452733326354171247231446475367235321763637337364477445525345257123122514441476257334176624353455771251535716633566316272646215175134226116672361111151244165766672223724624153275313426345155645177513176615234665242267674472211261511561275775533741632311423541632771231722574771154424557743326437442655134534652323762676322364442747463137534765465576331667235422567774756466334715651737163545113114513441275715574671677265775477167345575277157547731757447211221364133664672657652657635757773131444144523711177365357745145357335143524736245265713637435253325232474217233753565151725452775531161513537236614311514251552334434515171723525356437156333477233525435442123552424533375735661344176752264632715551727714573637241745463747342137231233673156113121757363331543556172373611433144233161535612367361537112364512225535611512642572764766116677122676567531124215473173735724646146615772714536266617112575352275177767261755565445467737576717626525544651421167745642711722675551245732265474311214476617266644772574733573254365146626656633442523126416745464371254241725362635257211224673333452766262727214631653175454121455564514626747333531737517321376266636231125162435532623655625633427453565373536223515773575352624772251611365327662452142576172661176277335167245414632112131216417337263111737712514726131342224246276517624615766562414532764311342312414776615664725471771343516637172512474262665346536573754757766247417147326763747637246634643667632635761577274267314177564153137334223274234743115424573212634561213534267765375741411142245123144522257251617423565672125621345711247355346321617466777463616521644672447463453433324473765746734323611746425651322162361754751323723711743542613122351466264427131423627115267613147226154627522775356467326376514647466247333434162143764725777563442377424756576712217713413462136275336645616416641732473742256715632625377347235347671364473414376452323247473227226346127361711767233461321734765731533511713123235473445452751653737217411122345716354132347525131163735241465375234756214255171276613327461111744443464721521757747313341464557333563165357345343473741276565617367566334261136566173224262655773163615344467446256611327526236635137674454411436316432524346242656745422762126767732215653666164751523121433232135456353533442747122533565122345123141434761275217563743654211642346421121232754732437634456553717752274321426122356262727776317275424156227733371227532523343374156475411324643766151223457111616565225351745355152315663664156734455314411346254514474773471275652424164222141532371762332563257523131644251343413622165434652733257454774122562245543275763267624562271574662226663324224443536214433524224445344676311666332153526111623267714513534733567765357257451677711461145537726136563422557651651721126613625621577252536525512715127712373155146155421363254545356351677226723747473543257525243211362413316614764251466531356617737271533514223637717663722512616556623215626173213263466651233217171523224135455115363351315625546712243756524424162521661344237733357555521253773345324461115227445523216435624252725464675326273746376231634342643313163525445742571525517355432172412775651345536711571427273414755256633171754645624267121452167616412722727475276515627666115277747343555526236121614674624434341376653434351263354655347123547717575142617126365143511622267267337245445347215713375356666524541666423167217712453211271152627626552277221333677121151265541433421631562716376372426544411665336412577773732653734721472661315156437547733322636237316666117535411575511134327342212271113766547617467614456474724245355555542642622523261731523141776655342526171352612124266513713672345617521667151363722773274663237731775173171237541732362761475467677326637754141344573761237616677541524632236462743443566641547424577263417356652217475463436512372227562426414646676454711763113346336472442247736674416414137564316167245551564454124766572551213122156645614463714614475743764216434312113552762543112577176511453125426774162546751331447321457771432423142416324367334366435425461734231512334173126675637463141334751143415726432331114164477534223346576411444511613221761744567743722772137627712345433647317313515716322314314541224617731762353154617141572256211772775175222537331245324553473574774673336523546673445222672152652233666537115715361214363617274426626412523335154364634125735571563343436152667317164575371151327664326245334474574154714232275363725743516265736454766573733461164661342171775744353333626276474175223442553346714336631552423222645113477645636263157335476622276721461564247166473326777751212124353321155164134457467475537741465731245754456225255235171715745662776514252165724537441541457255456246653273764451325513641565323156754375574342414354542621454771666427227644116533321572541267456431352346751545167237526644622654713346345322221255331115516764565712745617123257774226616575353755262143766314313726516477225633553151457211543256231177123675362761127151346573417526531731566164267315432321762735772774162112537662434675615277671772527127213363536315215636536646111733253673265111521414267164166272426127537437423563223341741751134156241176251537163516713272326635451762516663711262153574736532417577762667157376415775461355617767666165212333175714454611513473463371112536257657426721271531771347562736644542674617627714713141116422317173264756131742452157172743275114534341155163437656656764475125662227434344511675563461132553453774647474754733623152266354611371166125434241632237357224125345554461245752755262337262763431277735752557754414551576766441662574473542541312156146156132211477231515172132251166174716237417433625326533757266176411223364241623565337545455456336362711545641327753141716555371346431526374525444147241726655713755736777343126633541653431332521233244377623675351337613736472445172521623173721265155362322566315451544153446656365223366535565333427746473552327133571444213147422535375654116223572736441166122264725533234756346642617635631161454336642357325171473465267367344117664223345765125364723141716526515237665453375734546164355147122755634473743446232247576423435633417251455733556163244716452254526545622424612522235656515133625573364536231473627414476172654334763447362431724766425445623376765331311454756364246174557116726563713153447317143644432444446335736344622642647345727354721754557513165353651514227355767176453525134663161143775634523433411763475155563517121713466733374463642557337712124135413417656335632227252353466772544774763725511722651216555564742352761453225327626646534413117455563727453174276754657312613561446632766217636634331452544132265162362374376153625164442164474323551711431457651567245344114537115235361347335523546314715471413136755222155536213253754534674316225731355732154412177554253675621333561364512153464441767457353426775135477625363737246125153325324136717712551744151753577133674221223225462675414413673727317142275536376576431163553756176114333715745624666775363672411433756267164567257151716416567722321157367136765113274156724137253317537533543243554371274617635265252124461124473234354145141757614736515516367713352765513577572376256631767752326426376567647267115612112211342225165754741177777672122232267512431335743743754744256413542533176122715322626324133165361544155177272745236262715215654131547357377673436456556371266572666624564554131766644674724614163166636224731737614375771471127535411424226232213653554524535517461523246171323617376141433225354336744655717373422246212633461234231536427466632146776173541655372465337266162477277127373561422567222342162431351252323512754133155412731163231367612274471715422163367466122257142463222323176376644613525743761326551714413334131422174571216232127337667323627772272562713637242365263216611717231421621214231557275637527531645116167322656123754641533626614324324457654456764442525176177453275643532276175542124654454521152736222431351135337635313756164261123367424531455547377676516245256515457242411166225216167613541322277234466614426341257252525651171134573364135163211126317276377412172431144654265311151262122263473656763561111742156376421541211477315653163251575526362555666746667554164513563534473547447453342321136517276442222517663521255321524516626574715276154446654526571342134714316136134411476151632756252753425347244615746663146244173372744572525177714662217125545275572253325144156636266262155575345662125643457254162722126777434223535322657715413626747746123435111653141232614366173176717364165263471624125453464615676554254773353345167546275677451245773473641317235211242132771135634165563635557312535142243356741561331534322362535433667315121371344427153321564431737651464613651323537761741475611575735326724757233221436617471447354115117625541174351241172157274524336327264314742755265323233616451322342173567774524345661253717143476625264264746373162376571615156731567316713643161421412573327214373425336512232374436515747172541173526511623253627417325435512621214255261476761141114656427613144552367347157364475162145137445222352476424552323142456273357761237476352727343667234254412527643514531744777377322737411662655326773771317447372515557636133166765276431316455636524511424634532461425467234126162652715421764322565333265527627116327162317633212746375266252264115235355342763351227636554173414127655422611337351345332132374726715556751114142317743246577271713652651671474644741376345255466755343333374771575724551317167156522246516226375271657717135144735243123755626535533434541355661576121416311155747424177236134174626151122237734165474521333744445354355511573313143524641235511237775555645366674365753167647774773553446216175535232631527636237614241172613565317574757643776657275314615164634775512577176764715557241756461252733323233142634421356354313531725367613337524275423261733316411246147574457176747367473624475523547516265165752121261454223616362242267627416727137115527121656264474575557341555466252273372317751332221265434173621242511651756223544652515125521636127115322334517376541353236332234245616133615545521566373145457175765711363157643121662265734744544435464173177473571717623327775531211722331271651753754376476242374477623152241336543274155773332112775323541763651317625436772372563325613713377322524261167417767313274465635161232661777632527662173442235743267457546643735114224662115532241315273251564375737537637414547567421146226557464446322473757147213226742727676242115346664661712225131234324141452377265754156371714147672326464533563251166636737455545676645231617245445437223372755455343276376322766522545176473352716437266211416362657477337755266132757672633672261237273267726632741127324625244377217646641634241254317112637357312467253345753117442563757114756315243616515716164342741643447272126476367252261535141324572632135765634662171155571524263567662462256544145353124315645324324552171765513237643314211743475162473572264517615345755163643342612263511173164727526445721346641257422641151552534571263431425542515662117175341711747314466333473373415514352354461432111134414745325167516654223466577514356152625335476274625265146237666573156521371221623532257774172653352154213337421165314314733322547755475721673111542274676331476413254145246556733353732776137677334732665434326554151451365266122536714657273361777255373113616172763461417747146764523234536446645115257353261277653266651526413324253172521641636256754145127551376616752256342157756372224162212163772137753262267121432742363563774376364713242344471714233511131561421732456572253253777241464432664777255135363621212346414151441151175512341733765212162677733747267131264457766421526117714412327423452237236177162174775436571554733145261272122422131675456634336554474414635771323574351234567456716367164574625376634147537515416356454144546466262766142733574431277675251111746136152345635311421522451463661415322557342164346421755735423464127316333653216152242734577146651621555143374471635732572426375477645462121462555367537773632473451236431667145673756156342572241263137236143734332237264355672731435357275577224557467236615222354122144523646334312226127732261672226571276121461114626621241342674564614527575776461263411554735373163446335735665724455542335776376732775461261772441214447347217174463243373362636757534652512613243651227567154751734512662243577166211356375663765456535762433541472521557346635472366166432676147322577434321261537446271472426347611664336356522465416657731666741141574431213552233311213473461515555321452721244674735465735215673335462674122411213163655367267622362562364426456155443313333314653741361734511617453714447612467673133245526771747352716776236235651114676577764621123724751674453573363352442735247553157147676166525153416713441416734747721641513221663664231373375671774267241573652137653612233734243552577656154361257651215411725512663752576325453357562342446227416174263136664331477544771533515426146361351673744721332525275737634412537611226511653246666561554224511562714576675223172751136652433523715565355216527625127726262733244714541472243235641734672766423224522652775322216373653262144556227316616557717757336766113657673744536374314411546436356534624221774634375145312256123677463714114561231745677136631331377511322112134331121124711754174155377427534366377512114211621337767132225543574564164576771235244357473267641236645436236451166514664113167212767633546424523315174525125745354346724566342713524275711516344611673462226431172432342424242742743473526572671256572154571666162533125664765212753277741137646212513313123643153412577512517321663235647234632213564445725651141374161713477721466144736525532751577572261274332345632524277576656737355564121444241423753134633545413353655633446612221624327564434752341144521512745731462442275613251366741112315221277453565466673142655667731643762736426255156564752657653756255551523542267246644741737335263151234517747653557143347314123431555235321217675613341311614267445151514746125617134164366625651557742355256741764473233124521777775122551665663333156471162352452165343331711464763524642277545743511243456425114516163433317225615122557333154535455717451574254157226362667443121511656726555152215755335262613765164171745553675672424154345744573212215153453134377124662467146577637534213626356272751327344315217274735316345375573635562313734154467111155676347633521642355752427543557431375371544547776573755132417554514345413176117767465271442517171526271471512411557277454536645121657721112444411542477162146762767154274537171246417537145733341366615252363526561435532246574733623552772264232416253471361754236624225353617251267547765773527412125652252317336413313123575536141537764314357311653374654347345431336771525657735356634371326761115124175763666515572141364162374126527325724616456653122432763374346211773564331337531114373532377217317657223355243463113377637741762751773431356514226566661654653152363635164654461256734121616325454741647234663711624226427443327625112725414114267622464527143245645156521222757641117572616244721545621742151145367346631544257234716714312537255322375362177124525436277543572433653422731744427263713767431575273635731235676525236535562652561754651715465457273256636134473511365475245713134441433357627267437177124625331674131476352312444465517172726725532162731172357136571527133134626236332343771713563566612115511524561735325317677366356551342525164161622565464524342321555626546165141436114656422664732435411316134217137446277566372545325447264776672756516775636212633461336127611126716615477222575254417422373416216277137262453177532563725475326246343362531747733273616355227235152311664162174425716735447563372434633332542224725621466445175442126353627752545246415362172735251176472476653316261627237424251352222363357572537632644527245364517746264254446531716467523463244341151617264247441421473152476122341422452175733314345752223734352423661771625245613521633245774147446657751575565736123457347155121677714173642555471135212117722223115424111266735141652173264425727472273231234647134345655336232211432654777374376134523355372413666755554514244761453611531672351166643414721531615116162252471526414144557635725626445662133225276572357353155647575264571132651422757625343136277635416412776142431333176422443446277242332256312556166721355632652566722341211465275276335131315565466723733163722443417222352237677561164614125373644676134267341327436221523463661357354712647111764675161327716753172562767762167661466632743637241431736626236116366261454631765741733734641662421346474261261165177464162357521645615435454654473541167324376463254127575364624161371333162642276777757575266675126152352557177666665555464344167765324511611577476363733551276265721373454435576525131426436355167221577253123616513544517356155217267215527227271466141275114735754716457462573552466616421124613413347427761256525476251352163324662724112146722552317356674327725227521145747315437574353716717533525622525555322363122323334517771673755533465725321463726467571567254741216127643712315164244223142646677523676271533252675327644131721112373324466714274637624427432532161433173763474276272534517774172355765364733364374467231127557124613352646414134474417433511432114452657427133613454331771745356734323266212514142414574712447342173413344516113364745456723661217642277647552111515353255645765153462367436546637556114671477115455714141736622761672473433564433123541633636145325555137526351554242446732656377156673744713262626154757134775713713411171416672416115131621433634265215357337412423135321364746466221155112263425732654722326376332347142367631335424235361332254511425754647113765371237353511252335234621541136755162236571737363776452546652666566612673165115425354547536625665566166364215157676362536421211667567336157764765524161723154233222356275264552343751144361715447666416325623747444641411522456545416342733441315113344436663536217234441714246766214646546712743767533544251147677375353253467756633326743152161222156365743732736261175513721252466336132345532362572262455474732765671145612257437645124773467675556662564612765753674374744633511371467242351155446176573366547771157265432541315325175434421532547667433617651514335171542525712762744336334514241651635116717217314141173544361356341762763124155562712257716744771171426721446226426545436342152273234237313226757144521455654174526353373636445342734171666317651626246622576434546356445415314576323126475331635663437361132672435157717654731536172122235425777614526513277263273526643525336217763643364424744216213465227157155343763444731463415754476413521456746212725275447334716657331571464216522432216133743541474754713544326562723737225671152546141425147135441733665544742117744275623547473467165543347652655265161454333612711475742727325145743112655155446676513625646564252663241666532323363765441436165365673762545611347535313556575443123322576476524676447126176532145517777741733314261273272157474145155243345576325455764313342657565312536426351136626451675273152713357323252464356235316736464654272335553613442364726631566255676242717312646114517372452417161115315447535446217247525755174275635573555411243367231636445266743533121653176434457654537447345637242237441424163151523671634421335662746772571126112561553324561256542352633646656726274636314421376643235423211222743426256722153747263145476521715366274116425612531154624676767536547267221773355574266645555637615533665166314274612517376171262655233742674324716361427241356544377614274527327167222345464352712712522114237147251415365714115325667112625641657122747552364725674715167653157153357434664465166656365244651666133216616344763651621555233433347761751775414112274342716452117725733134676317537255476433554446353665455375361326265722316774721226753525443414424226352361673615523216153334177522557677776461154415413737457441617611617447654234674361337214476367561436415142632472626646375145113366341144341477752556377223645174731256522673562636567573276716323531322672157343323313622514556133265464513631173343625275764667216745525172121554157671576175115723476316531616435535575424236132321143126227254636477152664661732256451472511115746163242622734242177231512623336236644137342755366423474666232255132436463771537571737537452677413757637327314453667733611112163562565427551135515611212423532111457133272324216667771252636747125221442775435314325463746644665417664155521461215763356154642323471217771756261677226144631172443655555642661751774722475514151457234732327436546347472263772147772575621774562326555616275523413672565675454515364245764636211411661557325676634252762446367421426564627326371127317554573646621517362233153355425374664241733225264316635273134564352717222635343775672331634422151442364646364165765131225567114241376674634443133756761457457164234224627364771265175142217235651414766125626744555363515427325565275127772666453172553226157745666577577767634235513735754657546527467375367774666271176464551434474443271273651411611467156331772335745175464645127266314146257412217631576254765715635443477341663766745774474274677635166123323613411221767317177263773716347727372533523653664613313614452465535671353641331622364555333572244154172576721724353641573243371175626165661174532225215623162374766765555765341463375171526747455355143633477555215636717614652516324717251125647633433434132412355746773726624776253626332472747546345747742333367543466747154221765563557773221315665662676422527316673764226351157545746611254316175565121147165233737637746577411277172316434241654537656525567626747172145563647434431214753156743752257745433367142353762366273561126734667236243417776246765445441454743766713245344361217744621656453762652417145664775611373562547135334665671351142643113363536451313172562721246323624163337115355665254467573436727436662514442242761536617162655711617261626142342335317235533235235244346152417534464311153477113647273221561455214554763422345731661273443521433727516152326112267327764256212524575473646646776741137645477751431212677465464271374362242257313544635674433253214744271516537125611471245663323631457631575626327371415163315711165141231714557616667377747641651575511713577561351227124212471541232334614553721734156676136374336663355743345451156647553514247246575361726473671674553234542675455315311261567541336652237526364126567715755732165763325361327132727717675412622327641517542565756651751622715356244336473661456455545627131665513355226515652627515261214313264633356226725316366127141671217712441263174626565561514514726146374423633425414273354744457454324756352636371722357155523561233641567163133125363372144334457143123241445767517236434277556663316623167566657562437247235744464356575655453523776714637543123541431327274547157741345413124472655122742527624521765537753313611413526717663455643527424756347412664665664322126461433232157121427176574327531577743466675627651672562335317661666235115676665655234356737117265721443132111617523262154276115617164316521621674222431257152553661211254256446267542667767255444665124552427257123413612531315714516274547464416151452635676466251171555534275224261443252722747767755527251672237375712325523431546312447431763112624247133375562514761744732354635253355535274554144247643117564421647522344611436754142452432773277252517112354363667725252352613727112222357175464557215443735236357462721643571347271144531254221357542746227454313517364412733262147534467325666347466741345654177765523665464311467463421316627637422777655321466536277231214317242453531362441324234367412142767345612642276441774523656772212335717113424251367753431231552775517537263527747145412646725215776652662163257314256343145557456454533651277221736673177766644572165442613725712771322222216666715663143455167461614245457336247125333572427376551175753617634545462162225364333433147521514172731357412351715452665647121631735162143271471237337733735232226634142561631144111724431343674461214363357565276312654722272747761517145124645676764365526123721172216727424275264533425327633653164177141672427174447272366563773513537611743164637751376165574756321413511136521527751551437245177142423436411664651746772736536644716363233413717174715321313271563421755417617622433375326745225477775546531534671337162775511271271155621774564526536125777141367474166367656421313225126143162232641511615441461712615531157363557741721465445645237623137167434422534612567244766151354472436271363165433347756755114554731641117516262427425422244613315373474446265536412254467251512342673447276142724241627535716143444611631645147473554641433441774475657755552531726572644272272652441536374557563542747551762357413666517355443637223112271335317516567436265667712413544621542423473545474153744326773464541624364531367776423745655325761763521275434346377675462224614113375525452125645535374526377722341144771314717674423175136737365512121144554633325526432344473244447563242535157642516743422737364353667142741644217774456741712556155151356454175117554562753121726534762737441262147625713426422475115477545573121172574236117342262623671352763172363116637755163465145373472113251551543452262441265714365665124272456124443737746557226724646266544345624316313272324126613442416743646377132451772524315761223136544375421577667133673472645142135674346415414421111351544362475155623513355127121175353771341157752333661464416436373513737756153416776145477453272563256274173543453351231266626216434364164342716455567621472423267536336672274151627773142325744736663464775312373473711343757363352637326747111451142366675634271353375312423477615145134611347475736566731371272116532124351212614664556617756352124446164326426276645546643661724551461133664724612365262652763441421623312724474544473767167433614671233424264551231427536411172673625271617365417553527471611177373722213142712667343223374575645141351666156356414645316156742556514614423451333127761575462741612413255524767361377357237533524776333126524454624763716773446237762315157636421227622431675612522142561464447552534717117772243351637716343322576376327321535173265256322545634455416441635354673421343631334663333317363731517152317564726526761213353655737735376345757521317541276464367364124152557423665652161741471446252566743736316713113316557534552647544246171762274536514477145431525243262457677354146675622366531445674742133272625476277336312351247654157377571441261234165423447334142213172137445472111653121264572714333656514464766755377315165277533127711557246155574545355275257473514761716523414152527346155235515215416271631337423356375232624546476225211444516755715421613376136142674147521325216762262433456363553162134275717726135471646574152661714333246231754624621472216416516252566412616362763143465247117134214266457476716232662525435541362721566537447374653744411375335547726563436565244541213333767653544434711761415162373646335333517353153143214732353756573425616754252675337633152466436761662567314475331324733171654554643133254724567521125526614473167513721414152144367141723563772762455527146553322236337717217326655531454222464777543635646121616362427243321132275672377271253121464472755267311267417321557171337671775414544574644717166775231322422173551347634444343354276422565716463427572235673341657613272773542114165472373636734136356646114325144575636332226621566452464736433223627543756551621465745331214526127113472467452633526363313165777721461637715361554473643352263264324426411251425774252627135364117553435562545234763256261131632711465244527244743261727242236531677413165172466125121155477253443414612433773615421635315233666237632274615276751735556312612635527141432241256251737671762345737734127345552317514514624142645552363426174435577252743351435223352614634217157116312647613536773275752372321431252556441125625345752114455427656123771212114632546761426272366172472533745447714524567517635555716272677354445231616567452336131662242316754516667646524751753252377537426216765742634341336655224171754765565373455222455254117617625424174524773636164723423425417342152535244631457242426167641564173257674477444552734543426516315733724564437276512166452423264177412251535656627746773156416127277415671467342356247675535357267337117267115543361441323162121753165123135711241326542157273411711633246647165237175314443713114277515411421144143616352554265614666346571635243633551736555247727564544737663256633747724437523513277673653271763467351125271653212373651271276654523735555644165426613643163642533136725671327162654347556252436741542223465574172526515433676573667211451337637122164731222271467571747773776711237724745265445424631621237231464367774523471132535637764117346115176561141245527313322622747541462341454472245316647131436314563716164635752424471324557523261572571274773244615656445411637716357476176424116614657431434434562632643615336221517652735371151434611373137752734731224654162136526756462461774376522227635751634641516155156515561673567365562245236235153723663753442471351574337363117513272571154325564545371247667532262332447312177544374332327414622766334264473561212755126167552167614233714462413711433332427525615332742377652144216553715677451224327541635142673561152542411632263341434251431127124362644637766433467116253454376246324777116651231231167336175613654265276164217233442516326111377116746554266221576147772623762674567454113726215123223325724274664643453756661514136477271522221714242647647711315355474467721113446134721721163522363221124334512625217222432724252465611244636117642664127232541721572526212124717366662625172373363635556771512432421623443663131526365174345622753236472162375547516237754535634357127436776454424456445122725443465431331376752526573276577234663546612641637711651371157274774241122225471472776727245375664421624756636776267163217737537371553162645646666516136733126146115523721625575356262176517425336711414465345714734344326257613514755435363173667234656413514765564237656255535461767547111627567212217126773432641624546737717641151273163426614775453466457434551777377642634233172347215262741731252155331154354621662577774217335453315413152644732213323734757535155627235522126356677362761143652553517352665522322452762277565152333371567243415753163372362767332673753117451257675136455654621217525725163217261613651447123234216622441162271272577744765412123726163161311531121225533564676361216436667754176217673343742612632615665773373115215653147241534736616475745457112567765721774576467347234161713361467161372662547673627337541777736146365464541631223257223333227143763632217473625243165531744667257633264244525452172644741337466352612336622366675752366412451217577123616745745534772644171333323435136634441315624711432656322775477464247262753453537635657756637677423353651217573477266373356257122561156261341522657571127756161446544473427622776147253361217244232562145136327345354724734742566656162675637774433224511326565452272461265255637342134157646475624764212141544561115413527367162562223427564354555237411531656726357711677426163616561635722635452463554625435716754751454647416554232524466167156553731325367245571763431347455333627161531545326435711235274647323223415462334267767125736432475716261731173623721744436213342744763266217561753261523544111425135554575455654372355742354537232711461147625245564251426172735327476513475232172531663513616442421463743577117363552143434412663722435175116145413637264634124336561571311236767563412115617353243213435667567535115425117245561211455244112776677332253117575617154571322532411444662263353243161551672244325552257477726233451545736153615465772743746763247434336155556415125422626626143125551565352224145671174755573714562742571632436327436135624235723317661653126757623626411144655377355343765574576162132237524463312257655445215733135442435164436755644427132724236174451256723511375756771164517417254272264656627516475624265247265616135512514555335121557463423223226617261647562415462321753214527322451445415755424546645267633776133317742647471166742667564263715435343526557675563152142657151615551143121211777416622177316311175213525646745727612721143613723543726514427333214526642134636113426476752175345611665211564474756526523734577467557361341621427472364661347326473322467561645774243632177721767432512661155566313776125721217152444542641537371762663474527545111456663736775263443725567453263432227634633453111413173741467643275352745413625766376612152156477325422264446255716616115422462325167476743671412273214656215346266226734324464624155653565442257263776421157453277664243776135254553425524673213162526217233761537771664443654174365217243543716617216542141441111643657343545536546334737715226373771644332775762535322232155716275373135235125317131364562254113643355111613355252411261317727425652564745312741322431463565621426765373223337551625175444236367267627143415553756575233555524534627644124613471261114362153527123277512312663171222542757432353564545777375616137425722655274663331241161763675757441747667267513627746246545442426623712727712375213227774542124116417613613253613236236725137642472354665274574126743745561544614253641552242554552165645721512136423672236574353572366161232545421722354134653222452367314562435447776321176422667126151531773637747572671544133155762255365641736725116373676314722347177663157662372133433353666212321217616664234441724252651413734745136726542316477126324574767474271223766226167373134614372362173234534466475326643434764323643267743321351123111353761434721346232573622744345374774147532667413773476673347277777314466556537227471367624754143775544511474417457516512216712332276657127562531512573624525157471266361447623675255551243151222351377444447141677545572117341516647715552566655622473525552733536537474554451333674155644136422415355144511645224633436143114344172776456643466251423431641366115417255242522336412176252322132773622446721265247446264536652242534117173121645673531375372626771413513725222612176346166351251432713324146347561324334263221265566727535461457613247656271331716711164533717162315273224457461362477152452552622353775343272331677516164433626253443367527163244235144527171616364613676615322644552133154246365667357157622117664771425152672572427446437652541351324231432712264221774751225253515131313524733556665353426333615321452744437775673522773537232664132446711713512255557143166365712345146357621257125123442212122256163727123247162665122354565723623115237544453741564722411373766271133777555752221634164234623453555156144641773266576222714261647546362747147556445451562312415353112515432571344123372623773632253424376447675416145327731313521173623676556437235177273234511637222471367334361267217534215272213454624757425435466533164623135473166564536372251124434125521261671451123763217322665476152262461437443142363415513244261571637114161475635177767425743124376321737167653463352424121543175136223221226566224566212355774411343566711777622471232576276737774352364364466636143332341255255614233673231133142364632646564465711477733147565725517714552212622163155473461163544434222554656155354125363512766543154421727734463176634276576453672435646542117427214744615554743225672647151233354661453231526757646243142264513371455167143751146662377626477741176715133537634633773175636732242253756233326613314633336232466514312135451352774356522445615676326532371547737366351625526215141724265452446474241434276136735146575442517351115262513515511226176732324352474312472643424636546333674223563114365563126621416453742574154465334773316172352216423774321771523333675525652174147437763273246672162744431752366321437647374155365563236424562334417515435252712671124657446663444524371726327517533321374354621372232224267231324557616345747117423656466311544312273231735145211675445415461223452165272176737711655326265421165365225426421432537472312164163632354226761734317356412721347744172624522734456474254557523616337422774316744624352121272474521564775425422713557773713363145224624375231533171277671236443365751321244227641671651714651277175237354716763163252352741172173735654464363673311546143253474617516154613212544521435144413715165773355775252634717414146451166766325716644137637572316365315213746651544157243332553511233163367155231646773236415776232437166115637725715441213714546122121132614517422155366577164176371413615367431545215254212621452614165634677153663423244436614264614311767615366747254737611347137561561641477313321633625742745124113311351312535737222126324135557717135275451143275317343756624535541361736134555425461656632416262322435441126552327524521751511133315153274142315357723132212325667465615432762521624121342574453332123576166347431263227377136352575165164622764114425554677436777625443135333745527265656721532424262674331744416436334127313566314475231234776742574327347716541277724247737625714557414576362423434152146731533221352623562735371126323126373535652155545741572514546751771264753362255651122213657455655615413743257754256577774143632422253467116723432372313727412644773452352265537772333545516164464722251576263462516273764663233645263234253422774615224714441635453167526152461253115516252336173513575424552771472363172444455725465136425725166225636773541243112626572364762735531537225243444747627756566152545521632457723537522536314313566342434773616361344516451172461424571467757515643233267311551524313542457522427152312543721713354722276262444353414762353364731424533553717444115524643211774246631315577554355736522743143557452514464351675477353656264543527177447114164644771356375653145245322222632337147216137725342157611222426763171721734647574712612635217277516527724521571162454557477437312374366151121241576264124176237456125733155363452261714333357226237133351217446776166423167121635737475515663453252324533545732446577341236474632255741426131464345273326366172211775137652122656417142661577722132656555767266146143324513516622227174674732545462735376767563715136425121366245441271167157567364145751127144511727231246215245653442454451142335451476427334723466533272225441176356117235647116752472525371412436257364261162177347513252314451476546274273423446511135477155235173612343624271253367247156771512774241534363411651764772513753364711275624267464553254544752417222431223642712366524311626277121355576264465624517241233242164233672612461153624641764422622354655147476423115572612343636754453256211763314264364632314113657115127227651411157642264515173173626747146217224321631211727421123631535546471223225346441524626371564431312433656513566742324363433166327462151643131136357726463771624673272477713135674765635346332221451612613125726335232655627732271462554177763625352456237333652622261717616362236364121154532133353344344364476436757155542145374737575224575442256365151355126422561324164622157676423641463226375546345131245246211565634266736473437233266113723213667325231212544571717631234554144776632654147611721114237515332632626724531622624745452634456753234247513765251654433625263162515223314513421417153344274673754677122512155337234561211762377667713255573425542222343553674773673322212663437743221565154554154527737127563457112157576253662443337441321667617115265713572636363247472472452373112624274477326742612151427667271574124553525512114422563651612161412162433225526161257536727135376514651374246155212356267274124715573743357475115544362413726416267464732761513451777341543474324463756355445772712737123463135665263712645446656253355525237126545256334271776733352233667563446363117531631544113326675764242167573456552637447671572372125425576755523726154754243374625557227224617213112516233674355724156161661613124275137516355266574413662752375725541633457367236611266475634447213265643562416476436477254727641361744333514355327366325621615733741514255724466415447143245642355447256751411252116243467164322256274172342361413426775773545153673424542117267522431233526325625467155265314466632146331163765525543353113641445743566515273656533161313667135631121162522227173412543232346732153153445676617351644157315371415734312261263111276615746517551465225345564764213715522563557535452225763373725427211551126211157271677327732674534722725755752172272344447627414175417175513123453577144247377621453464256467126376424741671652721366714564676536472175275264566526417176566432412523343161637411354363242715347621266465642534751371635145772664122762657722327557553356156257661151336442514572757216213251141357413241532222326447251616123157722357324636777744763253155353454723764441341356144572111756334125424161326574472252463577432755621336562442212427567147174411273446325562723256335242363634765342265745436763517324562256656312621345772767267224612227115745332476216576534647341664774572525775525476351146113311672351424323275655614622634164345474656321732537411112376624462243632563766242174116446332177424617766464327631252126663172145546555515246223447552557771274762556437245271445333571661611527616551676426462336615764166337431315366241217532324222541465531562432356516452724335623172745125461627477456661334135345643554234317261336125242665422317576311753173135141564754437757737772717417633437416224776615722112222263245627672535135135526126252477725611772345761473366371325575517471471726636616345216441112762741212314166157624554311422522735246567216215176563315466652154711561572314135723455124221347731217457622345147515331743276112324371465621435415137344554575151417655357513245167335774475172153241115756415224357751511231555262273211253676434441622655133642172414523213766444535733536724343615271523222766332245622535162554474556761367134467243315134322653327237457473751165437343164462615741777651255375141265474243435331422426545415212341111526172536672143221651313637741224124466267314725774144447435556271632657617213114537313457125744231316411431743326466125136644457622452426623256224726433426175151426672454612524337112556575424555535674375656372222561341273551423313744531461723173346467745726451156432672764314652511525421376574457747147612476551733464534415252346363444574472666236712463217435363737411167457373265444165231671213354562631567117545254767261223641421713763173761415125135366563536536235446145127131755414373766551565441346261264252723462152636116552777537646475516266463656577355656731626466256275754443322261755642735614522452357125356616713577774665347525763765434424226775176466114276666374251533364354154724645355255716544636165513221623326155512424371153673453776252624432323574325324723371711641222665717476231664377621712175116315117151664163613616677227642674424422522337631232724745143524165647133357343565771374221664214761714342316556366426151331642342443176421365334166114336433677743453435464211731642366122511426765327167621615711247243435667675331337221413134361476152547527453516651722436764243142226372346621516711344153476174325256373265355367324732412212753562322642411236261674134456555234556743215332357346162527515241626522243716135272217363435362454336563254267617227267644363531264153572131111344352345775262312711371414626643212556447375536151121352753631163357213234127724145174261565775332354761313476213113433621522454722322452722642344626211364443135357534147234461762773243776321156733536662247346646363664525733747224113247214162727417771464261273615331342762273335224374132153554277335533654316232674276514751562435211616356473562311162666636212643125763622211432457637634655251654452745366421676773675363211275743357775541632521721667272431345564663541643726232421352514632427117563551262215457614756542734135713461421151627611416375567372174542624722274175147176557477777354647331553263177727774645756674461425613122523535444232736636466541321644127563247563165657627574747233556724341337536324427471765712467273627142736667423572612472643652163261454353436616166347523123231657126454137717537453546257473671614542254356342411154772152442632417636374227371577116425561164425311247773743214235166556666321764221122425147463263251246712271533635711615654374611626636247322616426416214534116312115133165257721761711355177721143656256713625725126355164157364551577361753655477235643451416173343472561167626652356624676575243673163262264752377271767641576767275625735542773633733127267177137511325162453146442653673714616571742561126423357454135545237711715373476352677655472355261272373132462427521575355473322341572114364526562653471242514132222333161543533611261315575273414757377445137512647772552311644342471355771153446537625166343667137264715123366333225733667147253263773575143177433346634652667327527271674415452776662366556577463372312153621222771331275166135355526134536657162314326244746615471415161655764215641474172154723154663667566471265235644253556275665263252213221754543252636456245664312534745342127344421476333112553746353276572435371332264616263467334764734171727263323674524273237535331742753173435726417127434327144247346745321733663676742414422735163667523635325725521272534637557157131435257663356565757434412427334576325415752522237413254426552143774636333516142773317662647245455241765356253464616615172317754572672447455123515576325546554334525672631443124673545313377633476375561645157557133765214217561312177255174751154443275627766131247465166573712557217711711623651626546425736275215226427411177161155611513544366127752722233141247142124511147751166372625122357354577157274263313233415231555514364472522232613127572234213164633363544761341564545671331641333672157655113372746655611175237516125723634264472266751261614755771563165574343561517626717416125365573363716375565541452413235155535174365335113767135375622427173714353276127426442262164337367752426747752625661127336152727115261156153446125246272177411414332357365623435252172412364635271445564356612447667121461744563646425153144311316311561565235513454262476247367332427515332173342751231155175227372442364475131237363477211643173246416256662126145425547544244462443371356661474257133111645314462631765745126653666377373724572674673571373261561412331644213612462653114533612752176374624214544141352725316413723643246776553257324617547321613211536435313532574264242263365615772634366732121447265514743634344627466353474652661442745327165456315344513367551625123554754433373127671141227411124413172644114537611725157132243613224321132624675711526532655246562234341642223133275262356374252576144227443756317235473424751322345676634242713725575131545671726616673326537722713525562451554555335567552665155326215352541317143732616274623565317154537752676272465475217456226135511517777617166536347475337244724215115177715672645777532557171412313734744544731631513162771252374717376762466453534253552767147537651471737725372617374564511464553733735141567762112562332471167553757753743152362441575745253152446555253451716252333147655262447516233671661417754267245774351422255436614166175424542352126151475151643442361234612241352357311335323667136262753367325663735751674174177735343562534312614413614223544551474654136571761544134557144622152446253133133321143511635336534762727432156412516161243616561371462345752724265115123423313342512157655267617411125376721375646245144652643514136565577527413331244533721312715663433516467113321113416547741647114566344356711722372257164341462152775343134237477626644472551155246714437243222215771351625624541453725743465776476445636322777235546253613572453417173145335262736663355546113455364771445263366264713476317645315776152661231277767237261154716527434724141267166273313331133714747342767117135145467633746356654612211232134741411474772637634435647772316774155215717112275547345346676566173725427441651435571436425265215677552536613766556732663523244744623115166466355257347722347754557177677636673311355357624512367216376263152474642467463244464414345364571741444674752317655327153511362366522223727342246171777367527666541764365422545545556677761657444543162734171745532533422627553346566761412676463735211562541276164772234433263667321477645775573323537262522171143113271677451614366217561612716437741131276467726647617711322164162115324164265263255356317527447577423242561417745563313466443312254661141221224663235565421753211767115246457756471267122227551651672516345452224452465627766155354525463322555223462253352177726311167422677312551176424643735677726757246261457566432727334214116724731761126765747232374716431343736144357156552616235737713131345162516524413674631444444147115523715667441741325562135653763656357757623127262131254131347725644751652254212415443247214327113612676133645716652267122654575256347162646347346554576754333262125144222266313161552457724442654567223341263573751127732516775444467124344534222325337412471256716711535121652114641722172317312124267113167477265366575746161374622623142213333771641555463614216372127347674173261336714466717751152717177627346372313162762757275316436411444215546144344552561433315357325146733541475163353526751615657465361756726535153544453544341417257444346221737214752436174345473347675516723645452615625252112437436212223527256457252766317654637641173554463441465675626725311466515153532767236735621514454434374271563172136721723115544216556161347657153756141561235657644554671676515714632771135723716465256235216721314414636332632611326151613576746311115737323474636545136326213353364267113462256142746571433651327736151436655561166745271475447452366422427376514311222363141716355111452372243774726255562553327242276447665255667515355533174121441324414233721771627313614336463536266672274314517552133477445712537521751573353337444725771563757722231321547262237743442631235231545616773612247333571663726653721521517712346263652642354351753735277377545464653257425143231545355216373132536754136634241424243675534131315323726611436571216617373115247761462263336317447421457661415325553172435377243274432431663444112522766615542762446671171444756331536521265515741742742276714636722774223173611175312433424721723133555155555766516151324125211533221747635523364162334646561654276372365737276776132637615673324145463276235136143336227177543156537256212735632366117221375524416435345652454673524546616357131775541445573373645331233171274475161335225645123657112331441717535762624477213672512744113114267167351627752342513121621142562672636722136362544255251354642223317313425354642356173332635141563425677434111256175521614531771333732675477634444235435272271335637237717763431163635546677123515531531521175373576453243345526271454637156526116143571725576427575362261742652467137233712645736555165152447626723755246543435374212631274266172367223116543414734211227657666135747367335566261773126124272116623652614463212412624546356571362751152611343413716453372352521126244346563753454422763122375511324152731236614246555161421111143652755272754412376176331352556154441362477741311232754172257164431651131145366372616216545453137335441654514355635557324772426442227374155422175744717427661636162113512363673571272244243426456756221567141422531765523776753641673741156321514723465774611276356574772535716411656557257366325274615272663524632411535474326146537346425171474646711561323137112735712523672367352331473116716323115367651127746213362512474446747626775117725547176466627364272263262664655541462227211241567626334534221676145277122335425426343125437527533353365421263124741243717162735474122673731234722757461366573443755235637764467574534573562147454377153263631527374665245552437266175635212373444242766455711737752645366627264671711765457663661146524571516317527515354434122337111772743614555636574351653777721327425715473266736463642253265316441152511137134112576725243773731135426452565277446431175374717724656634113732117744163624234246525422143447757645254636251676562323546713717765622316234434372445711612213413115437363745476543335536757412723755625321767744376151767131333621624345453451721737236252376562755312247525627124146663214264462112347211213216522521142562347442776647151462244526634124257324515311337467724566454177535567241763235215216656525246311776614724457171612667653316131337411724451411571771755225241274135337677741231327434357213323635362461366472544427246256672175734213452323477752776725675725511221565737267374424316767511453416465357416336717452362242417657427245316252244372431566636713766714445362616437674754656547256241524263554527671316674461516523576334512373454474364743134175445212573132361147567265417116754565755351627624773133573515522312177646637722433736426671543763374471274276542146117776164463124555615235272327221231247676121667447263774246161114221171124322256315776414433553275316521152411451251223556744474344231345526753161223562477741474217245736635244456635275372331163171675561214642546477226453662373463342372177453333246224524753323647717327265627345157441746371766667621647432455264232436367365354256433577646555317454473342267524571741135624544421262525644726575612714416154525755121615327261741252712731314212123115647675673721222525656377413134612511472173326661567311462774356546525756477467637511647137576354346244725164147731135132212141564322115523131244266713334531511352654345651176434435661334526564743416175325261635423667331216514155175537355551223512434665747354264657516473515276453141745174612217371247532341326643747551131363313441534652733711376253267535767435527216421112242767427462371455146151623733351461533413644771624623615122547726173343636247442125525421515617417754442457423645336162254134217225651221163451213732367614426441146357376635756461522612453221245774144141546375567651227542756567273711764624414413535671777756676371476263733414656457556544544514654674166427726763641526214654432121531563565464141134144442216321573742321151576712417764375247337734257456545435667577236763117113641517463135724115741547352374661642571124715436323317435765463441642743345211143414467257116573566664331153367631316435441217566565231456675762124177634765754634467535435225441751644464251655424476241164647735133512127224767437254352636732546116331364162725142471175771345367223351777312216365516316433162115544643613725664544464232541161636222414115673366135661746754241753435755536174177665773611434543175614457277777756665356321166317277746777676675574332364574344374362361251141722465614264532351617257274322524752545264657776271315244767141546123543331347251213746535442437341735361325444675162635562646672165635761445234732126674277751367253753736543136452331657165235243631243211434471525524642564312615722353426157342225511166611171614132575524451573255473375516716322673556325314743473633574466241531711632372167436733413143767233443437756365231133464711476432666332331357273316764356337362551424767725734376164623556575164135625626433253171562241731537253145537613331551637254246333447664547532155233325344161734361367135227446252514457757253513753667312345263445722116134526114473434661517265666171124676516356532312464572372221434123674523425747116567136241474716477742414277121617722747711672552466621332335436547145255336674142133175432117653776434277257554661217142442541132114533542631427447465732377514734571265461522577645347671551253724744613655244121576655643162464271653252766512661466354752132552651275475367446614542147443531127147777545523574142565424116321225226372153322147216162513544577221142366622226151177252526375331345574466771527636763246165731165645324134316272717424234136146724566271632563664737453166672616264215467757355742611236137417246767437525444352434466561433566456431474342616762441217463641617552631466651556112233361666157735131461456433234661127316134231754224251735467147261323255761756461117213641756614137464153267146341372566665666373441765275421356315765565443312647635576232467237126616362612217264743666746161174765533136456476773463366175315624511223751732522171321232653454135346555741134343564611776344677425413271224567237532633556366331171412545234241234326576624566766741416332666173454544337775665611753577775716263547373374264755253543434124754431562121441255763346623346143576665761146163763321222545352733712622736654254615736114742255647221324111647241633654252517215321353164352266262657416661611333377717544164623211353131133367531622666466767412536253466725167253351311217241434351737531441456623745265313367126211374547515517275634555713125646677443334225135632471111514361362226663415222724255277461111241463452713636721546367326441475644212423176771145115147714263747462643242732247662316327135433471675122435743741213254157624264443355437235631161376723725344112541413446223331562564166642444527551225747313571141566462737413472435333363554671651726223264535777443664332732137122755264757541514213636122245346655314712656137467144657273731715556147445243321425123753457451326243277735277342145443717646712635256353112146463221421526317513331367577115144455531623564645172331321331144513357541726524333657711145251732467334536417144323334532267353412556223263271644176642767725367544467615334312732716375377127215744644417251364554474353366416214662432351516274535372741672623312555123174723517337533734216551625537751543213157234526247135137673717175417134147432456463275166561477147242557533761636347765634175132146426471171173121726523324147355311167271427621123116332135274626735765227223325135772226136437334143656611154757661113716563616323722622747436424545747715471333545137443417253737644555415432727624667347366761755422264747352244533656526425623476114422356573366745736512365734536312447431777574361342417274661622767134124273643661232363753234333255767311666265321546234457714351247261467377242215242671713537653773152123236361274475615152131541147361614652763543233141365341446575577354553237543151311244421362153171556271256674746152435663277411576315544424221736361167317452532574457732444441311527561546121262537542771546516557637623526745231276575553343231315267651656561721562347563215447177775252742233212436426137765615616345531743474757632436436336211144531626376664746323276722744757523526455354151112422334522136112473351116423525167414767373224465122224175567266327647671222771573716326274214241345244257566655247122131663221446172531577474222333446626351314325477551611344577244236163135667327415517534224241564463115665721762543637252576764324744434327326513166724314272735322176621562544162165425245442314535417477754352672334261736266642374454442111377644363556315362623277535755126113541717651511763273367775577421665167164345344775344235126177266716636353217721544371772522641541535373635726763423435726174351525354537332347573355746766424476334121754177361515322312343624646447555176235427261523647242636674652563426261217453741765262142646116451417431515272211627254331352121262345326136451653671324352674734251723637665742332465122423215544635232237625262321243314636522216732164267716252367521224775211725333763163111231214336135757762425124333733266217753556465575737653216523233264162541517456363341572543176516134421413361317544533621327212214545725254375352735437663713124512473317747575171754643244547337467611726117711176473726473425475477672522524524374616457123753424413676247531271652637652247523165554372246465654141135362455173642411745515314717734574741552136317414275726317434214517765272133114534336277333763345453263476177463136656714222756433753422324373676573465727235161576742373624375265635331463272342256325717451267754521566376433752573415552571576361356176153557741212757247337156114124742317375425624542574512533356653113254617572256536121475132127332766547547655642763125657251335443421364463166464677364413647314655615355673432223162643326451156757475264531164413617143112216113254672466574145525632153265175514114454334157643526743463273164575244616225313554362727231436216634324355277465223325351535446442714542462437244566334516254722334717156322446726752433341154217621636672146751746123556655317363365355462271366317574563323443672427357517557371441737362737226562517572646517745151127313335374566545722613617426437571734654223777673163465537474443556235747351342751431113152536114137644773736224377377616161112525511271514547166237222742143335717237422165215131152356564727631555617736651464573131777472464653335341336465745357451422551357512347462432246674742215374521471146715351566476273524273645726232743671151637657142661256152774211661615171757773153311126216626176177777215316725346361312115126146157177747543461236351672414322326247244331567614653742313745217134152574662664352566717425237252656237527775443621533676512536635651623534417773256655447714617574567143523613241137713713475345134242414175431644555156516354176514656277752247735532424352762734432362367624616563624463751264536756324316617656152621125254637646471133733711626172214131625572452475617311474325535142323714342521212343513146722646772412157322443717461115677155766326644577755456414516316415223756732521537264735527451333754362165437522532146737766112411146255721172346462364354375536543571313313647426754513233727773354515736423475312664321622513151622436461732552757423614256574766132771764243341422773532371777514773113437675147441723163253343734455727727645613625333662226633277163275253744436252647763646166276626544142526435621726324243253755632537721564246441412147455164566733635713541416546244122621277113576211454524412227642123254274443454532215746377355477136445121577253473177637755525537415227567474153463357464247724164627675556364722367337753156456251131715555356415541456164732567773765653371252146325223617277266476255616644261222744335346464243273755551211322517252721557313732231626156272564571173161232425732233151162241522623342364536442576174214421573666214453247174453264714366436136161446753753531157551226173171776754762261633641536741767371361377165224371565651655154124162233232155415664353551257753371635257565235114662236364463622725433421254756444561536165551752526767714513446136171121615673245144155645173126737233234133452156674351272624427635267562231356245674735326672656365454662727654534341762762257717654444557435771535545744162273261726575547351425211675224554173365155732657732542543375742453173737424723126274567131725374615171153655151717367412515345725534653247766257216357531276667554343567676424445474556677477564317777657611266745313313363332773162166141371275746417745372562162277225454575312242146615754364414436275755575723236727635354626472332146617413725731113642344114357563445525721533635113436152476455122514416471753515747754135773415775347377475157563662474114356255111152112736716374445155623541352576711114215745522337123466435714616721442156631154166336311711572474642766742767477333264465544125671717775113264121346124572374754255246657315111156761557677316734642447311221326216263254325121576744714727151173732451712524615521121623532742444673613256541223434635322427664443654362257312655252173445335673367726344376664521631375231622157163727567346727713253665161377416611666624426537144434342472344334334335616561566242776337473726563115615664143761267114764377346567357247653152371212621451376164233347235553772123325452612412124441474142452764336714265537743411641365624724547451171645552223327346242635222277376574352573724262776373715244315264623762375113424353654572323153544144474126567226514374527124412236577221277113174424715121662176665627737142341714425237325636524315227325552663426151113776552212134266645235467274476176663213417137723637315346177711616226661774677263134771611623674535525616376215731331322525716462343244713535531555726311122672137453153446212371174135137346542417124472422753163476212356323475511367433632142422352577423164546564631224541712147427573772466256141174441633257133272462651576312522276353562514733263557641461753363311771152665314662747726223563714174123311133532727633656324535346761312426161473476763616472136734154237145216655465757727234736335162717621516355163154167553527426637622773747455762572561132175772654245451517225566144161372211426134671742674542467166336457421244634731127416745174727665531665457744257331246656347331213311247353672735152647614757711353567416115212117315276775675143321373173125226267711611412326651727446142554413414516657222171112757154233774354136734646256267574573336547175711675371117145127411134711741543734454666612515565561272376452755523113773254733572122352231447211532222547243534137366672747661753276563677253766736526714114112442327511637136132613514216537774327417574411333535176531423334156717177532775447161134266541345141257333433371476523232726143767715732415744115167313625543132744547612415136644616267154451564231222374117774665414422167156561614243665765443225666175122612113527125725463714514513326616726372324216165377757321763655551521744475415244142214314771665641756336267624341552224534613661655427446427165153416751562141137672646621621445776725173316522613717671764137741542263624516761272352561174172355614267547547676734313323734172764473357434324231651214621347545276544517242654653114466522616427363734752257735255635517767642612326724341355114676451467464765126622347514424714663622672477312374531413155566345641141421443573257422736424352246362434561251575451753516353571427773443577641515612275134314466566723312476441342563365637366235141571151126353631167162121765513654712134151344464463675115775364654166565722561331532433143761366115664467746213275542266466625526426775162722352236445334316261133742542143311524561334765775711424762367731112452624334124536517317536522533111263726337124774135722673147361511712746167451265766155554512553764162162141266755563351733211527337636752777766546714217431512655542446656746612523244277352647525662667664466631364773741235227617115164533436566167554777532633553472245421477226265674661253431717335171137162112572371326753264217716733152453543773135743352174115122431567244533146643217531231634216275212656173761322464511675225144675154674213244514365454217725514323613435161653313152662573345166367744453647372627715276633432272367144342463644634563446773233473321144422627214762436427743314755174435717752467533575512254651451743635732171264554325553147326432126613232351126552337554616452753555711345341327553541222151246634335452327452347715136354472366732667722761334436142777441776561761754252325161776276244233213371576135351276376126142476717347517432251211247163761347131276341414733763227346745762716236153315612222643616472272412325243665367611775265226446627142767467227211371136651626527524133772134746215222127222163146552243466164676521733766275672566115353311771664766465224676155757535765265443752722533323242641713423241726414615762313641734726471726227151542351513276213626565767572511675133314545565157647536616261251774336722572327413377252261217411254155446577642372317436567622637256113173157416541513372474652716617227436577354436177346744134136742124665633467217343251664416273524274776436367325752732512343625344745671541574471515156214575231746636713213544635434366655512516471313723471763637376154745225266336632371477764713722415241156713717136366375677211363217225125535442371347131753121443454277754531172135247446751135463114212775714136743127615132671222644245636451366667762664765116413227673642771576675165664475345666661255444535435234623263121517676623361134777413116346752743722674243456257122533571366562765344761436344366543112352237446173662136763532415636254377455274764177116363433335254625752422711431533461645267176517275546756133375544732457561441371246233255474257754121271235374531344752522257345757261424165647715573665713157546616741457245255726314125522616576364533547215776741453234416476445727266326736723151314146616642353373235141132341571115716673247611234131134471442564474455611772225637744315552647217746646167372765162633411616647645533541471712631724366557453441224671641152435447111175134517543223421535761645667776613253341562124171671164753653535743417456761572572721316774457156336414373563744245316276644652416356627375673217757771615373555374375235135456454455546376753414254677572251116564442311176451165566637255356246773343454433554434326345163727741265644476264637253226636342245465262531551233142565361315442311136222467422147326255275751323326341621562117141766417224445671646637716331345434415326173775151753755627755422772525544134542737444136334767176352235532316522457272225624634562615561623515143773224716472152444113316656564774227727771316643265625523573172634546437661445115661454124435711465432322477277757225531313125253727343422333447453247211612421122157322664132267625645736372573722154243765215277174517556627331537264572424155254635522575627674512372534252767554235525477367752271565222413371725617347317314445633545717247463144112153175652454131532557615233644152472251526221315574556311766414553711154177231711567437627551237637146446371513651634715663717663666444313564752144635524126716416252723373177475271143456467222756251521737761427524172631762161726271414424475556367453451761172733164435714673421351636136246541147513424273556714777723557344552643215635312113614676265231676263414317751371653344262625176725367717725744233677236537431433172174277614331721654527564521141441261151625716273666636321335413622647122513534223217742115767242435447632315737451466676565422765532515757564542772672651433631524717674653446557647235371665747447541235663551455561321477275252227352231477755434655735166574137764276357355132427324232774617575225254321224376441754275556527352211552665436212412141626572447552527117653513155261344224371456642553441712427156373725465523477545122314456463323715653446176763515735373252674276153536437236617312243667257777576251215342233274332737644635526433766614746356123215212766551435724576262136142363123333121363174455375411436565271535247276575343113555611476326471236256126664274543345314157131344271714573312677333755562514632253244733265465321725575655442766224511246176647753623422366455377762775775573577172444573442111276377111657241261524173441551771622733721755213256675233421531632126322437247556456313646722724336272544462551326166443256451124654121667735777615662317154357754376455461112764652774721447336775545275415624271371772137264763656417147632361522721145255554141711736112457433725731646333731241453365623175377213261124537654622351153453322232652763357534126465573751313536734233677542365124674112243527332154445421147652353765313664521136513355463542166315235424111324116544412666166746553326237261713577131337347245222555372411622162115251316432254542211453546155266625155622241616146215661566316211627511725277714735423412432254456346552473464751523273437664423246225464722431523132575474236453416145451724176412662533345124574472356352162632127374527433122663112266365451753114476533145445757165123577776421167754471244752651473763754625635642313436125423462157456142725421743316321762341656624531625577775236162267524511574157452133143576475524676256437154123436643332162645345163747665476733637362571166613522736114665561265123474613613156461363152641667513252544124541417657165251351421656234547314566544643372546613177714577442211774452713257252561663234217522531366676225343422611235667733126247147772537112263426225317523441354344427531657121734474546113147514365331316321535165552354762752377322443416651461246414174361441472747427275244467331742462536675173234363127556573676156323112733257775321365345546553376727313541532463421256132117557451572765141311653117634136734662132247155315364666762466271677712347345115743533441511441437542115744455152536173345422575643153757436254446446114566735623237535517425171746657445241723257334724767577675572636363576133256551266357247127415443133745362247267224351263334772374672337645774636454474726426557336572577267762737476172743722165744235363254457527537644347545253775434153431514466453716154772272145544227361737774375274664123321176427456562552312133433135461672454321317674126421774211166157214557171161612445544276315322243631747157147274162412443165412716713111124154652134361717551742653154356774363675335437414512776424153652411771545417352643753716414622163254447171226372517217152553772337673712734675166121227415725241341532146526345356372344155613737113327162117654575143467252554454727746241146627524763112266645436344362415266341641342467354131164424765424341545673133267663712563253615453437326522751241441711425627455621763546753167234336362253121624713377274514537372137255667152554213323714371227543561351455644374727422261223367535773132617337142774112333562455344541131175772262714137526773421216233432241451643367331121574735557113347576762222245451541233711122565446245566723552636651263365544412335225716464647534762322127657724535347127513677267622143732134411446361352731161153361673217762135675143257455563123223645543647547354771746625241653147723411365333633737623456434751643374444371564261353527474213471132616345515144363645716346716722213746621534164457242715676472722337213255775352577611561541742366426655456224464464533527713252213162736752432777564146751315526236442437574714152556364524375131165332312612237576435727341263411334475566721161725631664614154377736625531746262144123525242713727671564552577114617262716217472472557347537547227156351371351512677724677754677674643772736271371312712777366361755356661673732753254455524553662427276555742251676354746514274346375145753277351225721613323751612427234464414545331531163561653126753521273546413466675355534247144425446734765344144672556113711443337223633451755557145656267323566621113442557445342137156772452343553731317263121334443243572646115621152777421656313546227513424216214324375553316664525565121531562215654421162652344113726273261572366742241447773525726647176257415223541726626271664657677616547472165151742662767466566447435576675513521711227367335113255625525377753153115245161573111714575435444743263176615175326417167624361155314735616517351333231314763762633426127772646161315556166575657224146131434453616455273262657112425442476243523472133441637637273737217124517256471746231135245557672614464422453667413726453141221573142624253442414775654277331412126311725263524125624343266341453414475335527323724447777725773354725651432565166534644737541215517475552121531523111615562573365426263476462543265347237317746512332662547725454211223264151143275463641753511141263512231434664344727215577673732312424677357723435357236127322452735416534536163631655656611166463334121415514717114573555673543167471652324736756537126675363571451547763355363146251142667241416472561737665212127244443561621477647643723434756713547135111351455441743417776717465311221457534371475146147741717457512751623462533436354462452437571715771346632176145474653226277367177224171317125775373615644564573526246267323712651253736576275641474424455766255472174665575452531373652451476155356644634373456616214562522437366264746567145137762437622275133162555545552466554631513633456775244717475735512376457153421422145637617424365634473417151115431115217262512364144316315537362414226354425565371143673567416667422246512471232455645324255143715222214463577645542373711535226752363731413476164323635171734641161464525765714346741542654252461527212721511355152337525342471554475677161227146271253777357445225126135251265714232533571455376177673521547347764347527774433244244637713647656414365365722445773565466764161723362217122257761441116725424536164225236345454521533544317663473124637574353726261535276256626231625615344755575642472437212736121522366653532437616242154467273464523312775347447253552221351516361533133561524452131463511662617774427165131617734273653642123224556475371463475225473767273624563443274343522434374573623125665332652215571145564155546162641415662132113116566215763761266446135347542163132164173373522365361126113331645175574734316445374416321654151661442744566442262634656754352551615722572355674167556345114251452363544671567376443411211537676124511111167121775336451633724637471573612734133661536541233727776247432744341746724671114526435342326512257354366756161543475342514464112147566573373356627455736374115321311251672147133277664634335161321446627744741362361744477377321575457463161227366462123262135315143112542553612567163413735565373615171356757226335617173651521713533661555671525325445634715116572757146745221764527374774526465674711615527535371337741323263742452434277362113246252474723221565747467327532157614245641273242746116257143442342767454565122237152767713446674172147627332665513713713267241667765747613263154354546156173261271776766316623247734743564712232232221754635363375763242654116442754262556275425335752257561544632441736545432174563127176353656213225273137257747352373327625437161772424533437554614246337114224434575351733612414121754165421753443212315715356761177616567566243655125625543553664545413472435614337131776455733427362642175765422334534572216561611275414214755221515356516374566526367772371122312231712552421273231331671623264377571655126257562636627771417757726124535564543135731637162171172115562447735337333336436555656267647225217652716242716573462372476321143142332367557346716255526452577713147475354411323152124152242132556527454726251575177475631245432314243754573653453423216444277431157444234622161432164737541513622676322774313366575377444415171367233424754414353124251633444462516151466237566277636711365734315123162775664414577311447233665467716276665346126167333257645515515436236163775615631265262133715661413423123713466426244551743531612254567767437272216764761455446763544442414444556455265423177717463737261735423372217643453353233635654757532261313417745313736321716414577726147412316741433376471353122713727171322225272722672746247452765664727242772375576773511656244733635563753314764674265253716424177755364715425215723557162133454461311611564225111466514621176434655757227653455514556147366243542457562566235615364211231254632176746334341732461212346473165376174746462555734755323152471321241555324671465273734243524647664142575164333143556373655341247745136555212637174145434157374461175763626771122637372726756516625425117617123477346441447317273156656657762222165142316241361617475362351674724631272136256357226756324574317763713225134762723722553344764754354776613212414117375731337745373163744275546266127712155741512221526257124652674676273611151314375312235533132623432133142373633465717473676257423727234563166335725765366224266661624264472446147147516431161756147567341574321526511454564661576666613174535717662636436715276265757266642342447745777611447255143773657724277373764655722757465155454446777746346144746234223632476134734631676572216223636232472416123516616457717533125132213544547731711567652634256163415671446342334522517714433343715474541565632414665766332716277647413563367421217616633143163167742521147122143244131455154454471542767661215643366444241627356444632531752657225151415667634671265437536124745544714514561261316753136751555432734474244273244332556563547375417151565325641375553422716137517615674426114354142314625427412563243725537255571123524275337476134425111246125231474123646727524167711144747662642444632424577226211234727627123457233415265227232255657652674331364525344165111337125123322756714576223743555717622435676164775444477173452253234617311326127665435344713131375755116147241131663537321644673411332136164316366543515762462723155463372722761756236136365661277145476612171365222234163744773611551451752712634767567153564255344411516711164573452471141566435776147757166537114464672751713423231245245332243772573667152434757274741573637231477666675247756767464434736141222217211724132132162546241166311442453566372614123316124342263426675153724214517257173526755411311116421142634761761354242714244356231345441137226454112323731456462427373515541517117441155222152435365746532712634761217621246472331136712272574264414367423474737243745354444254744474446126511525231657433262567136514325176342756155212637217122713346165723323147761144155151341715615526161376414622237145114314176661577741511363426544464716537326576673763223416462121533476441222212411134575543756131472345471513264226617354742654124252222314724356336374771266571435751122614351324245544763554626515626721357411236623412177462434117121257231345347672171157414716621756112136764654265313343735731145645162152557266146474711514517414332551147177674634334525167132676264367276477773337171771625214723452421351347713612773175615311557111256313413665214425315256445447565536167657361143515432376744733575414472322446727664723721433773545314457634636515326722774465152774542434216177523515124573421517254437162762745427143614245337356122237436733576612274532556425321653626732272264525311556432274252653445776236717441525567621345523271171724524572655533635662535165164357641421617364746435771517236755641114314344631615414666611517214215757473116277641437211463413145742613224234227364424674246563266557211624237477751531365134374342272454111142736222441254723341477736556564677533777134626353533537474464755741257153655513266443474142641444461617166756364242513221324471141231351147167623115321354233231363427624543525225767736341675634216262645227133523637465645442173612116627623314771657445212511713223115111453343331275626161261524125747715233555615571317427612325113223657234135675746122173424346557754677473312216127241613337215324113164324556551675666223243174475175541335273363252214441741522433377332253423757367743251343576236173312763262227324733166456262263433622352464537324523471326636122576143373165717463733265153164343246577126631711414134632137475112163275777112243745332555624436645255754116232637464542434167164612421223755341377155217737757337671113322245215313745142346212161312745151613454751515631541661112415124416654253433127373473523754516347235763336751121352543343634567623333775574675144331755252541623356566446227145572671537613175444332317223327717176252143554327763323346562463514431656224656765327753643222562236424246735534367354647253441774636364357242617635433542717116561536275122412376241615717127617764673525756326153355156162142141542124632554572136755573771325462775477556337653547326737163632133774742615572157273217315611134523131432121425456771633524741424747273525551435446543224521663367377651437513467343555346424164725713257132577434713646612417123614233246325261763257157311323715332656611446645174112243316776543147621775662462173327557451435632634724422762272544532677634521714417162371511175557747144516621362472631123224712716132414465434765162263677277412315666335271767515733323343314655435371121217162754226645315764537357362424524633456432174772456415455736572374641615726525154726573266257416114266171752657251731461327357361727547554733761174234376325455456524461273563512346775731466144125475516265555721721624754771373253735544323234437522221717151465651446112424157242364465562641547574515751576613153531371656132122573372452334652235465663476671161531677134631145615364634625135177377212666172564322716572374725664615214724374646251227441755653255767562231526344466424633517734544414537112756424477263433447124475261172377251631647224457572243661711332267452547651437316635333434567717665342241474434431163526175376265723146116462327335617636367326721434356234567424214271221243165121667512361234655364511736344157356247576732517356741735772371337264155167231256162375164335572417735534566575424565474241617757154637275165731331167574664561677363214723716151167147546225415433764476761575674632617631372245653413372362253746336221361526374655275445773367113644163344365662473247756275217514214557177765136454361212142213535112123113635563232363567621265775216531723573236476146247376766621613716476123772527445465374267351753633636137421375244764423562657243425442374544351151522272366414665521151545263261454765135766455237336512232662737437242741716431564355671251454437365462653426576223723241316753112667156411277223425752213221523622127762122244427334454176352653265264566724455477755576533622141671441242627457565454321712126326353311572447527364126211422444311642611165241277612623675233563751343552376425427672272125314722166435555537271362422624456262477342121564625644225427166174344211513673454152674446554365122552523113361166356132671447241516777312757157126732323361424566377437734653765771133472434213153136123621237726743312566211525232745447563555661123371221274217424267347625424527161113343766732351415361234715625646173672466533764433656241142637557236415367557224623547554756735667537367454517261445424721625324467536513164114161632435531262632675557166661216314646422651754255123143132144114472454632721455371675271425237616154546752121557647471433366251257533431732721715155232457414523475751154456567376212451331213463252276655633672523752725145413122354151544244516714325722673316533152246673455266617523613345222531755755213631513565156523235511526324134437612171777662216666132173477254335445646545766564567716446464217665543436126675365265722771423421366641642433151717522722164545515471556732351542424627247715676545614516654122364766112713474347132573572314452162764355734471323564155317764372472131544274335115634375363124473526673322765667543112742355616377376522131711676226514152554315234226441643644565547255523344771534417664352637414341114442151125675654473575637313534161317531222716457636522453135645776742174274252255237415731514325122431162516134747612514666411242415624165111575676157646611734265766466211371267176173764267717527457477446554555565165524514665544415551445233713612374744543417761446423345757247517115661323222456237575474331411432131353614143167247717443414651273331533346746754165722472261271524716252247156555361547155176252653571716143612457434532462317474154356152553631714466626166745654271217456151242611614413326275534756634531766247337772344355741537332176176723167267424753656632764365115127436455417115373266565125746452424361121743772333312134627666137465611125415142363575277366113141633154526422661252673122642147344642335171477515724326613137265751216636167141553226111433553251473275215113352775515551237454514145665516253444135623135772555361157622456112435126323232517346564647724625157772644171462427476754765466165375453262237573532441741416436255733443575655232566663744726534341614264162624264764367752636463464214624115625333672767264243671413214516462136525735654477751733443225175317153766554324313436763315125746765263242674234417426641562367167726343422736517551546525154173775621162466451425513464372713312113212562537572374643372673135255617257422473643227561157564213713722673244631253233347416241442146236652445564126442414437413717543322666335737675336672654354431163262234127127645535134452135234663716411533617372215544666472151561323416661527142727335365514663636366166252266571433263744534226745764513643512765374717453165773662453657132331172462531231742422666155271424443622165313516652131156575742325616226756241225442551642536677477213112735261134323577662443472533144251777714546727716353523615213637121122476411422441624224145347442554624575746274367711336273247425121667564525165757122732267233754753723565373111123527757762271666171461222532643336323232541721541621752126424146671233377663641143251453335642423655126275573527234213646432624271724643413676732354641414516337431136467167662227514655445361245357127337235547512316742662726644666613645522574624631221412216766761246721377773455511642773712677134645664175532423417617211311314717511337772235666551662134165666747762663225225713113416735524417527127352265765315646543334716672713741377776636524311734336225526714154153147113443536372134676471125643347267434121741254543324445343766626661472577616362725412337535626426655745136665251731355237711663541354157756674777145652563752337464113211711511524373562257423462773425436517761412171227261527131472256246235467661722632124227271415341264134734125322444157177352715235741343755621755573522441652474272346545426535314576152141417131354142713567222712527143115221247764154534666177462476127631755764512355645564523763774667777515355474262647422621331621131771435365724111163456521613716177253713615337455114775266567417336637221755632534243752641571644537652751444737344543746237225617766264432735153431144757772573471437764276114367463171761347521664764513415753123433643677752151567231663372714367554253341566554666646316611247235653217356333613617451332356463267411546462663144211443612541776147125655253676221464145223332236331136564144176145662515157462336443312737446264753344742172334371633236164122531154562772136565657264122523176224774274517366165215516171411322131551232351376726511421662635141436561617741652544715774267775737626111115172446731647266266773175675726535113777764614533432231632434417317611711472765243556742126666517611772732341175444247563341331333342656172222155412652115142376633237737263317257546641555125612124121246417535522575564367162274626652614767451622461231237366651655247536614775255477434472477555212255256555474134117547711156617146764641511225635713724722674621537224415521323215476217471774257272743525651272743573634144552612116451347476674164556364751233443421555525574224571341646162447611766541422234575732735655111713222117252565254642255752455666221422556636455252367274453142163145324421365723363373737244554161634465424235654273477425272672174534217733527332712744564765175652373276461513623121561377171665126447315377763474563713124222734672523452462722511113426737323623175443622735175316552545471162472257632734565426374661331341722146233436116657421116352517571125741314316173146267124475365577463434155756374322235765523463333776523412353674236736571131574174655316633134656551332556626436724545531154432417543731723556461146622126472742727223426713552766561764644132343466122612171461346446234547713342345427746126164137743437441715333216175116725331345612156267733454354775771425561363662511514141517227616762442771377452542357421543445343617111242321474742725262546273664776122354335732343271355275564263776335757464727337675325174422132755464523136263242173624276512111666242664423746157531367242444442266346127315332416545663121474624652563525262523417266612652454142321714532725366416276454642246472562256447276232751637313647417666213761127133232325467643725715637336341444176232161765466171764737654732431464774773543562661263162454737717577161354733112322747226712722662711746451752325512633525736235426533471617751633727463175721654547121212227413615645264765154531653764126167451255175474222616173563215724772121727461122474223662123115414735727766117341673363514116541254157166776745135474154655643761467375216273627566174661454762242163723643345224144434612317623224437614347763377153443773765471244146463571142151434624333774111624464654157475531334756467711163532236645725562614322151162271443777673475254456177326434664722333422663612246266221265653356511152451632757676521757535163644662236223532431224321374774462767374335572744277531762571231547571243713321637613723173327564554562173435631623224644117256644424644127573674116614214243237573256752752231743623255772414373721727214331524127455244316746451453563227213714752576337235172147336741762272761247274216726343365113273432632756766417322355675415145311613711621553525642542224121562743353444522715462756111612671375523176541151531136656737341367242451336434611724613615643662627764136173555666351542545725377276621621376776735112356151617631534725155155741461615424425621764467265173561637132614367141341617737546735122125326754672126227222267173715121753552341452374337646656256772266554771145415247145743672671727775475512354262376173562642754145525415753573643563142346644253645475212653146324632175753411614456176463761532336435134414474252772541237313656511235766347754364457574636213773227715753652477754135521443632365256244543674773517362525722351115133611317616371337572315543665571252273215244371362613477775456573724446162632167242513622557437742676425517717155346727215362265455317162174221654557471337445224144153374615113662532774632563171416256537352731114314171267671652666543671714226556367376276465544431112222635613631762621667435717232553655547142232524614751552514753351126733465731333127166356253411623537115771144445556413422663165552462363577253731672245443753621176435176724326416733477174466476451352163525465461731652311261126365574155625454667155217445542411267515477146445543373331216456565645475424377144475127152626666454315267526532212715133325375152514333215162312514337772422231522245576475536721465454626143124442233173656561736564266174426154311617226715211151616525267215536631743553374473474456265276163765152547177541127555514235235533341634634517623611452216723416755137623214316577734366151332347742635246776766653411327462617524117544454443332562734763345226621574343626343431633533757572465454272574541713227662167151311165616267644635347437655762224322224133237533471435532221654377521345567643323375141474572133725242731736351521436676356472714522736131176162235215752623123675111735234143366177616217433113634737553266515436517347423625311714752311353236711145116471232443142373441754764773573553516743367422775173572312552221472517146127217737311551646252432674521422554567622776772727273564155137376164156357257552571741445261331236645562427366635743111627762175171542724154746645265251147341157445536255662656365123337375313446123752537734764576741711653126142546723637426167674115262414431674677362335243234754473755437511277237463111435232673467142214244361421732116642731262375617243612754751371256361627757542567257356665724243712765763156324242367166762476677217725323246672132251247327227332243776324314631755163124145262516216751613265473321644261211361272171362522463615163621631667711331467732377572422773171377313346524522642732174475126156227565431213376572723454375274235214747771231277413152471322736456264254216336476174255416572351367614336361232232657317471735155755511537763175464435364561276674565542437151511345714553613514252147323427517634444133413754313626541114155152515227662351612263157352767416667411577135225345763122231361261132322325137774464117332472611734266521335336116526663132423426755627143717511364342666121354161764712372354422251447341517237427727261416261576553427761113746752177141167237216567576677374271411426525442574343222211251671641112155733172447171313547627723245563456677235155317674657662426165422332456213144134523412743642325567735565262615366736224522644514521476326517245242255536732415756726741632757563672464351531436241246242537527111457216271234361325352626717612757171611645375447274367357352441457551746665432352121145764231266355461247113357552676416742272226664721633267346637517314443565545256442671736712662624367556424141716376472373462754373477232756147717657177447654324555517715723723711111766743365243735146631234534546744542722547232746632156421216272761152445371574561776547773514122131265134115665765543632214516133153755576376774641145466151753271567241217227575721551476613334313441672614575476665744524147512765145536126556445341614437512612545412414373257673175441532633116757221542151251661426571774415273335422647655133116175274636367713565762156564215125644431377372661451556444266672465241362231511655644521331221377214444577741746533215442455515547274743641756731352135473165641771375763267764733245115523437627757656276365162325737613255337236325244113713144756641356173136762417227411735423427546567774763144157242235111342427366376766373113126252152126452417456356126431744571726321267347376334247224327671672646654511652614247253674665164457255747744226742177361757476234342245252615473673732741721644372525433633374674261565657744374657524126556145663741537545115663536157736642432726212356776575252776171666142335265414224164722112733223736363113655466715516621134556762721331537366271142144167636544746172366325355453657476463246654665135771635472671641517735133513437146223754244431623636331723366272234531276733225417354556175736352645174161372244311657661574323617536145316632353451456525161552426444175651227655622715624761244172511317541637423723475765232642723264151333466657231142554157253562317352722611644147235733147327652617223473477215157652357413411763774355735147546443771733373373574341133631715553153257511257541164317714174654271516471515551771432542142627256421417461247436413756272475522565525673711644624113734273765145727476111275661472115426724541333214135345244215325261762456572233656374221732475214313551441664251711443446676336777356413571236231465742733576475533475665172735214771214473244127476256175262612373523163517123772721627557647711374722364377517112113752657761231622151611653674175564661677713174223413572771577367647147231441273434725225466424522535442626736373714526356131613156534135732552252645564411572221765517272462671264744575665176216667621267351317715465265775726614666125743273274644562263664644344255652163423217556176364742566125773113564715164173633337617612421733222713631241534767751143214211632134417633716426535633244674767314744731433315351134461161667717324127153523351455124234312374346757776341576635557362624255572517476423672476155214476214675146125667341611637347721732533347152751776167143711112226561736744242332242266471612733673775672325652177325375456562253452342515462711654513347336544173331512451553737311756771654464731772237324637762166677765534326327634666461452671557576341663635523123751236416475544311577254747253561514556326264634774113516643223373757623532324735436722625237567166261455671373151743335767157157775243634775423531155555652771611526721522363556763452151447432673414667715464272647265222365446727576417356616113121644163647542532363321322132555641252546623275335761712346423177435522324733477266311435417631774446611474144174725172632535635312373342247566351162256421325756376643761746574713131614145752513571776174754566271373777415776446546567165653473632133174713757625513423271651245567111511116162552215445623637326327411521547135346123675263244116147132325427265771371211444254172115441274413124364476653461217421266326651273623272251411632674124755743172555714322474566767672211776225574365721267646555436746747772451171672722175763535443241337675715714327437336722465123356236731544365341375166456277525441454621261125146766625454426273341134253355273171174532315145562515323642471673172565716522212472124412541741242421222164415554766447514721255427531657322177466342334747155626673771122342312246411215222725615214221544776123674215657152642554215273762614213525312327525763424343543733343734554117262672144661346552126413171672711362415265423317612673113273473533124534317641633212512233463156457244515572664174366773253561527554224714173624454345572752225172625326746427266523473717142763245717623666674567127423346545152763665343243622724765321116524113312747463754167466312522315717357654524113531611542624255147714163555167342533517172437245137645123642616152543444717744567454267654734653237574176113551447276254761467673643464475144331257114574742633131577356155577525436217673267513663717615465347713734625243225513775776535473473777462215531413624513477156316726775227213243545227551475447242141664625133427332226267723741366546137653315251463412314611747614431425767514653224345146153254621664362452757271746454372726471561137265563422616654215516567536641672447622213262624474443335222323457552773413515155513147763225564552653315566464255663661124763441646166745526244133323535133571565413471362216633365741455124214654124352573465124517656362173462274542722461173655653612122371412265377537757345242523645266347677346433332366173356652462331311344276543771611347134414146176133653641151342577422274571411334624217326462642524133514554717662233366135411672216667255645725157477312754133454252267764657475535561776411167514144753441517464243342123321262767464741122151416134355717737346415711224342523427754544551425457162374131313656564251627172746655226621743337317644146757153157762554551225356243546454472776716253642154672536213761421622532466754272663155667265231223477645543163351757645563427451122715463111335545421161533617613113662163336214665615171351442754253563116721417211727756123417135423735737272223225324336576523354767574615127552425741521572221537677371174251414121373354567563644513513347412233254612362447635216477725775317745446615742125657627722433273271734715422745522623616141471727133625467563356537112737366472424116656645272246267454474245316137715562323646666745375733574317311271533737727513353157527251221341414727722713447154147765171235471772115275642661464462373336166266316247625273242771341565473323263176172511746347463543214656275675625777214141711375536223144645436327367765266237722734452145522455313412327353265462237444326454225466632751366735162126551626241127713371336243742364252335263314415636161724432652316633562722564267766261643722263266535747316145754714767472622137123537562467276777315456741155766542511651661671541417373521327274454633633733726276247511734754431215572775217247763143247755317521411672443456355572227125767752123373546114642531164115715622133472147641446532141453343734357517214112347232545623157463121213223734161724162754363431144174415712421522347644214456653273634545671162237314134463461711274647431447662524336716445436666244227464464756413314351725713631263342117515457617345451143537766323534614453354471256473767756677163644313657321545416774712562511166621116157224165665366435717135721732541553272767617552354267162365641631247355437314733462417547233437563527363344141317642536452135173456516153456511564657535757667236217735213264242741713522611644555552212427153451663334426513352236361422542226274432173164512736764747314435456211432657332626434131172556313335572761134217252566715262734357237536541172111371371121433162215152736156367437651674146446657566661567435471556766373236735714613173745626676775624232245755436756253144244743536263377175641546474711525222776524153153657133713414557472661453161477166173574145633574754232647111237147426734427177416143341243275312255267643754724732255212653473631347445642355741177532116357732277345732267155264256571436433752677563721726446755724171733227526565176261744743446167152475461347257167273677344362267541317345462472422722757475615761121156525165241532736677371271372517373173736712276277247456417652611331545435756516634571551647732175341774663554447737214411315634361452252537274377222753724677345424741125155675521116321722655527123426143733515526451563657433456712636121413254123311677742427212475316457765411133212226457571742573547547427424645267234225432672156233265346644452316132774254372324544361354623264276367625356611465725753555264574534625563354513315214571321712475167637274655226131421654764133642736756445367374456434232555252555363337166115543326733321135214752315314325173445341663766621326576427253162345773271661653726615651667276433243572752141453344132222252135351732337635712336752115443545314527744727531755744365121576447221326722174373777536352533476432453466766516726173147213454427675344242214726726433454132414463321754266717723556223727277657373517147741733321133426455443313654671664161332435171745512243631337427137272444365351141465752724166113132217745464612161556162572423637161754634424533621631111253555464673366731515116173274331676455244414316557251277527153244122546421761637665725661715233656143176174361257163752752616373321537357177135253441556157777432415652563476215661637555566622773552141317332717214252747623222411614755771263223632146121353515716374273333655142455362426177671542152515273621156715161772761135252443362664712674414513771115644122452741441732412762453665542265542747713217361566135514252412155442354765734123125667415765173751315725521232445345277765616113235736572724171534445355137741464367251342152144672537344341311641766723231546136412535172233437436222654622545415562412536271343266454246322163653214371221455175642357232542136347117142377776573133765341444411413336457367331744254617164435667122771746763767425127725471257163472416376676541452363124241161521761621612476434762315122147322421674164234111617157553767711363444752566317377474471611673141516123463334365236675175176323464415155321147773554373273235414755553226442342711367777415166663431763526163365435426567216164431431124723451335711557671471154311422135374537431425476547565315361565434111144115765632737453321517253664762574212175461547761732146445135426757257127163751265463436243125712741642641357416256423341563454551554142377447466321664144313167155572132166234767765672333542667347563773736435455135461745124372241452755621565312151254177626154313621412462223331566167251175647121353542754321576316234454331364512775364736776747564232655125465674424137737634673336535447275676441163156152542176161635656547324322741655742353271455153121753415672671415744363422346647655326716376446143572144372157254176617541474322762217736254272772563656616457651271114132451643232426321166364475527223361456161244165215253713466477646125635741461321736331676447455457152656726157244277267236273642657146747555573223242355116474561576374452332153311537431477767247716565627236766753735766764172123162565611677416611521426146347747126721773133734136271714742136152143262466162674534745432656664112427576426717562266633231121531674755536421371617413727143215316714561532673164725431444766621532211275564763566232276776661133365325174513262115346245744151571343243544163365132756563317467534152535234674417514474735773257565731565255627561347643543751147534614342223113246342617225322416767534647367515341632655517741657633231157242716171476247255334317742151215376126356273327254516422621751572313342172543652233765351365534676324443711365511217636175552352214562253272163174171171645173324173221443641251677777774575146647361446622756157147147531354351271454237435443356464351316133264232746721566725763322454361717442747542627633322765243572713656254231424576241431154445635233241664746527343517736413275722335435132174142533526456615511144527545755562755336215167757155657734431371416342252162161716674667333554634457776175325426415775121416763532521342275746677617313563562735221364615331322312344723372515421467261714255317643345576766622771737242556417475122772611513724126733221172132653154446427122443356762712136423622466447443517155744236451212615165721164436443247663631762352177662671445372726626272367436745125424567221413374225455527324237661351413555125647325261223737737165236614327213355174226523516535261241514535152673324367652525364477662235152442613533417674422172257314112345656221473663236455673635356514471322373752374243742435163154424646215414544362765131751266737433344225672342532454452512524467114646337673146215753144416164177675547427744655552167537556257256622655651257634254137174132247242541327555441276513533356674621775137775543773744231666446221337144253732341735351556434447463511236632765761537614756314454645751634123633126726514654313716524717423776421232124471233545521222264575537543764535562155731152312171544532241515275513315423654764347724351521257732363236414232567663317363421534653376141464753642313233515657356717625165573777121545135624652653555454124323445433347731527116473331754417754631355261444465345661165426324117134563731477143633731673546246153643357417434126334313767515522227544626551254226561161142634255243734512731342322547555631356164356131233477643116265642776615345257273654757251266663153744771427451736423342461266515113672735772216757424663622513424713377117332137212667353543115415136247114337347536653147447121635642663225252236714331375326512367555177615142734577637372353672561467452365461741124163222622761247115345274411513212645726236442464231751313464716212614531464143567655116366661511772455426242611666467326315475676745511344635615564636551421317275667733517222717462451433664714574411151214324354513566245656337117136241662221711471316114136757152776765321321551523634241255253562361122345413575251616623451726265477734475155674754557134237166726122462377167566153177622641554556145264314454261672563147325613516245775344172251441755117572243777677435744261436434254223341757637773476726352135642265631127122121562513432544427747443656571172162432715153535622566155734735353537127536112574753761464161627212225171713362671316455265451411724744755375675646714634472443665352657321127614515367727265553472577632643635325144146115674344424427673366127535243163644411162423424153676151676274672332331673346755254263252273673127343533752746674333567171457171736311627125776541736746125725231262463376277143146144756562414622257627436334751765363151232625234136271145544643461717242545451774514721675262531743767245772272654365446376453656255312271531126556434364242431465136357443545522556114531713743656415561754537124736412412127415345735133627531123165445657537365272614266233265564342136273241752253672627135725551664624137346565155337254145634114465217234223621565423121623244714424557172474644316712164437221554131152331116556356656331344432136353427632417355343176333765212731472464646564311637564264174377357517373263623727176635234665632624544263466777121775417277164355741451727636637126571621721357753231322324211234313316517746644277423755477622254615476573351111164462233115344725664435174216424762275527344656535312711342114573133514652356223143254371621271515265763227253451616447521552733652361774111367557323276364471166314325625165732765425363145143763536237135632232674443147665163537352465342565755421646724434116755314241317124557153756412133131562117242353742746445436742245334656573721325533511243241576231736525121354736327355671741574671463314532145167744634632172673753213667175625711473176417617274426176217611322562213154745164636647552444516754366673311717673667536113554451211177532542542222274725474741263274351544721343573215145441661211557634446573152412127554743164342235662543767231542521324543267413272356646771255431573347567531761226214115134771147474463447555717731543365765163744412757644434341524143632541145426625721366222313711375552666431323115354167437732163642737673745356175524651664172667162162577234255621476464125414313632771124641334575345156617341625134236613756336162617572535627323146727335267177367341423324457754657623433544573547621163631627316417744332672256231456732214146727715547641155722156151263711612614367454473374412227457147147422751726377727452674741656662725224337276277344525222417275671524156116646712554267437467357422137731635526663423467335373334441545641414214467725662531175653726513654466155751651733243132324275562233747446624637364777132442332555761734527312332621634112434513371315176221543646742562625475646776526437515173716355557311214124175652734533144773457412533134734621723377175515142224476623315161273544664434142464135136361211237625273746464633456151771231263344176563341135372327331544573221147617256461232463437675264517535626744574727165537521247632775477313655366276763145262255545325355754412342241444373531376147666574135461725173524376327244324213626376471317773322265222745375667627676737137362621342637366766161147744141176351325672642657565673766414525453525416773177255144445425777435726677577777725542276131742616422371467562564341512525612174646111356236515343514665466767464366434367137674245535374314243713555113137226532415354615343734222123446367343515233734577164525121475233167532255661251361732445614321737723332132256515572756536361565476143445673444224321275744213744567135716262775446651364714472261274115634244171666134436176324455756642265766775677433244115643457244573312211777644361771665234262743463525714112557751137773313626156541252764251347354443625276115772227436154277345623214735757566111155762423551243574367166144744262661144512635124553563377115534124347727174615474164415535377123457541662264723541123615436551136174252477113561563263137716721631367437547217377625232332245337467523416537457343265331645477546412762636714751316242336176154745243537331737157114357251177573236613745241157251516623134724451342556463511427517414721422257414563532274357441511124276433565353645766424467532643363145425143527335217746111216647243126543126162522617431652535453766633255155346637663761144722321215533352777662752261376711133355147576775155344662112612736375122261772676444724236427733764565724113314357762415357362767347131553274532537761527556755121225472612375551451633511417221343773275534413657642214464317443142461354115364267522162623566114453611221241551543762254443465123414445751137174473621365743445126463251463414154457577473751553531747716467266643733663261357623127131717126623116415135262354555571661663465167747442371426264735124214662372375252512663473377772433111451522347527176467126711163475644125261254264243245737256417214517335453173626342146174646766457313161572765622237136533433377442747721227622734747624277427453641754777771174572564313345324772111577416516367546167435357751362342312314343211141123751677725253515156613235351463751257163711363771551214642711316534433735163473551673466577731774357754473732317577757726721211656654315677242213227223725257335333173555671223554561173527653426735324714136424264275567547211175547341755727546167735714645746533467665461434353346741534341124573562347313142465473556372324164344671632356414245532563635435272561755212744511264533225172512671177517716356514316722531773373372444355222114445547733122453722357725441751535213315517155467525511465462545456726467577345337111157736312761762522612536352374522414336655643135416562527767532613437324121443375264447455421622256211612156415235762637562764211122224432313245755257237636256361514357511146143572535611436466457215167274772463646337413342231241657771411767254717252421733147355346327416444166274556553277125752525577554272721516364574626414667557534154356436376177461433243111154662227265224745713256562213322617231251664477162421417732263365472516575335445717741135363731567642532366233724731235664157336423577745762264567713511136152114474311211327715627277422241543124665126152753654515656162157571151752577767356137514324641721146235324424361164155521214475411335161533261412226671612361223465165257517741153153145313526754574212372465414721345175447454723455625755616221455264642677313751533341732664722541244535475762166523635223626113246713472272521462664477162162476471151362543674162641567676257231345565652343151246425426345361436276774231437664526461336265341362261515751737323363536466232351577641456553615254421377112457421315554342723551334463474731114135723357443121154622273776217534435153731434552154315675517573346745441615353572322122774764411325773163612361524127221626361322232437732261542145267252111243455612625134221435255272513521267751253777421564212641213575725624742242315464216312533124616511116443674353164616173515277242452226511255653445355537466413541163155172667324142735675446133353762411676622447732523361273632321461451453627613275425654241363433677656342243553336714542671244424512456613161525436222372417762534771762311454131642261432341534235333574733355441571645212355172544123627165633113117727166767144666241366152553174177215114137416244472327565176525437341663724652411553423343236163721216522316451526272545171171313325377431416561423566417617641364115761122771143332372253257325127536731241445617751276525466367353357574632433521551524212142217536617374546732277263513126357433415435112724234354645251225272632416117213645462267624136565752212224355542322637521325274112344655224161223476561732643263617265126526641212272364552211672522433325323354564614362524573764237563524751536321741232572112634724265574756627715131311632715416135715323274215121163345547221244136661212732535653177755617133556335445651224712232347242146523565333221233645277435541766547116753465522725535611456445423334332567243555241133277154516242516756212462275427637734425332622512422777131663655652324161262644717177312461667546711516544132522642574144332327327372366111364552743466112453426555674514734522726254177236617454345126632374575414123156646625461164766315775646252556454445113333722563463347264344332666317742345423162327346774546726667664131773473745662412265157147746561751322515215465615532637554522622754127757426327762367444717211416131737172744744312246537562633556761661166563133356243312415174662152367147453627634175457356655173223247375576673312251277766675122445477341247471126247236715631715754672737617122145772764467662356757243143765362171261647721155754117325634463663723226212211125425557433171467773224244566511453241215635674774246564254124353617722474374674411467714437256447543624443744515744156632541514452753327734415322631613176241727124567453125557153145345372364476145114537475422127565224563233147551344274656351247673252675112261324744442367575564221472223433474162645113164544266347461726265615771673221766315242117312132722423612144353215732243375411674156337655312744446563213764264672544633363766324313545254562342436212441757772424117525174332565576754261161443744116636471761442337156264347653355257131326472646654473226223652371414545426573471151374316714254435712643524274311442114615443175516174557176521775116511364664455475243163146256767641617376745625332641256263761766146275213714437634761571217216233254176366743127537521731663626135634453366572645531523723314226671241576565763645637222542263153371362451251434127243326446754415655712237273625631164721737471356161313234626371511323535516634543575127422344544561244125677445124547511756332112235636347475116564635643416637154747674654364353737524165767714571562246516344657522342741152421676114664612276251426624721273264175673355575434675461764214624243132461342724424364373724421154451721246351123653212625376314153365413441652237451644313444163323174431435741776253525173671344554211363166267174551477671125413235354573511432226457436452223556474764355411552517543521743327157777424165453533611252376622651647613332166343743152422314671775166421737675271527751121472671327262364465276457366477651732273222461237767526664434421635165471757163172153642415161343162722126246545664357532337475174316532446414372741713157236147572454727571222415627237343167236375161747252434315427365674637577476413432615336772147731525415555327764355172712227223466241716651657414214415737752322345336214312243564336142146371426363115635153443276713137266432361511364272647157161415334376425517757466654772672154527147122764151721625226517734325243255465264377351273166153424341767447266525563613422237411246345423332213163354726242273437254735451573271441152665226451477172631137342517534633556323563414671673731373265561236761437677467566763124333221254263237237267235245566323536774522255277226154661446372766675341675414436443723171631236137664753425272736431737734157164753547222632145671775112511527314552413766212163272112374455317156236546367615146446616344175214737613553534351214116143544475762762341714352473224131316755454753116317646715437753174712567355576527674426353357661361556573362233324176744272361331476355625157513314121657117342323351142661742474125273324241573737145424421662374125557163245647654427162351417223767616343231126567517634776121311413456663175754725721331254324556713711212117513376452666337774676317531742723353137436353463143173757745346675321253212447163463171114542621343472723177117556265275761144372642734353464342361172771226757143341616346712247357441673672576233224157642165223271461751337144575114271316222552611716142256627531141213235313675777673132713156174225652512172772752465575274223556443514734223422752441272724412247531323655317576742273464135452344367755426576413734374127655112651647432372254647276672667471676754137251475153713772161731231135632657627526127427637132245261154331333326242374266273421247244561735456372422752762244261325614177545576232346646264622645445256342122135273277126472776553371226447644573713135715126163533546413477156541153653375275641135716356364332337725465315172216127754613347573515455317127332254253644211167552427341342316534252456176126213354421445517564312456467262222441113347231127541776145765216555766214346341335336333142664631341153416452675341274521116563626746226764444272321173124162565451272211545375431641262511166534665277265715552646755246345332127531667461256344232167725641753647136176213257673222223171376713615615445664664216441752112672164646422372671331276274415574774462243463753717226147571261762331555734432133756764135263453535774517143346755554371717346731621261376644541327757141116671153111342236523744753766177677116327564116772365173363212273214756645456355425324654274534146545441217244115531346166641256233671731644445332375114171237742323336524351725346166617722735261534515234447275725715621233753146517434261171614326131243642265137272611732214546551676363511225255537632253631626116736317433251745747256653735656743513657276213716135732236133637221676727651342266161223237522543724737735153312111244556641735421213325724364675722411265277753174527432771451264424444364362613456321511667616351135465224515744516661747637575512461113653441222111215172251142271411615362576716141551675712242374465223574316212271467272436667336161541113744374433544716676643541614126432762524762463463256543624447324532675313553712441224517365316651242612367671236257641766431327533736155244357115213412455426472164613327146167621162527261121431221453561367363411552662775151163341536655713255442722223727747364457345747475132424756242355324162116723774621174561416544377115337232731324333711143736566471233266352423757451575171656626652261726271616645734544532425372521723643733721424111653136576741153447634337471213211714664552676242236562643164324425115474553577624613167466111753674333117461562244562632454443132574716166234562251434663447663733545564321176425577277435413116574342774115151527647512364766755313672223721772766751317777664526776321734133443347372472361753563516522324751235375435565653332513474527217342161643422126543624354145157723223316751173167543211515334245661123717131547525745137654417177311613636274157553465564225246277262664674223371547436252176625755155535267417675552576777673572327774633614775562633634723374535546231522221776363766351521374741774757171172742237156347476114273612511722235352376134764776326117257263577234354377171517533453372431171734463232343333377654315551667153412746364616157246666545533531113527355737756172772655542125336527665551657477677176652263617673651446524565555665464672374554743716661341136624552252431276663355133311424216775113365415363722447177151673562274533413242654221132756257625245532113531716532645253177752567453663336541425712427737725215254542216173335736372264271723647225557466713516556666527621116251626775576151125715756641143177372162742666112773462465613212241352657135735345675755635145461536725632535362242156543267125217212675751516734233217535447372412513211372365121453337173233475755266436666372546172123446716574334267146716353312614141141731454713737641567727377736142156213614216212352265315321126443275567311331667736561312544472141636557614763716654627213554157142211112671312267562573761476413525746126267475464635334373353624432243173132711474127571725472254361717214424554276466651422646466467412163532273131716152335364133113332616735347541356613331755277624224726463537675556723322241343656251237474474262253426543666345272315466126454163546322722767477642417423271771554317611171747645116151477517655327272472475571413227461353441373423573643523774317367514751221554234422763472124762645454615763577352442121424133427275565575245162337433674327662611471247774474736113364736725216457475314654457267621323226757716756517215643672774727452356356165145766563162352164133351126246642462331546115423126545571526312752124312333774427265256247772371423265411717542512436254354423516224675716174354526535154436177733323115124452223117625261212174545766461236452663765524544763431236215331366565755626272671344571421265325273111563524624161531563112534264415664257651356433612223477711461351116763221374556761347442422541642552775224572472545573155322527664264627476747123713427153345345165446315373326636262311755511226754526457611465424666753434657456227177767247611311175551356224147256146153143314325164231154651575513321536366721631344562151331272545737557461553611361676741152426112277246334624153254141267543454614633565167675332131367244512263766244763653525132151216657177416323112311674516135256144154134757452723123474417235142557173671647742444124454577315563513162266262547341677567511361641257516426612635136774156275272321361244744131743633351262712345474531224746733327654714215453112566511216213634533225546313614274265225136413275527315155437167576237744616335711131757424532513336344134661571615173754331671145172576374344446246535352453566417551377735411334211136214562423472531545277342754761621367642373455631462415614414416636632163422214474644545277747643436744417542412715472322227213566564235312554656525751263213572341774526774372355743261413163421521263263733167764274355764336311446776363512611321767556122744721727757241322454653531552757453565563626742221616263357656615273753244232454534564711115117526224551364433727465177121721174735572622475671541451572675716421172465645525612667737317111664713253156522313613526441662757451616313276437711362247225323357552313532566477636154765521766135475761341121775772373156264112541437553665774665135444263773157224363562362142665522252551257312631226465772361743361456564626711143172612131245676133622374175221622223447573362266551771421343446757215264533662647647223247614611623453127325612517622155156436622366562533425765757166773535521746726172444144632747637223176174167767344151444641635657357276626526452257325613116774633653535526374521654555175765451747324276736511615464163662447653675335237772273731547747114112463326141142372564732156177671251512326434673763567175625615723113335373762261641751454255651361724644152411667675753367265334427115532173363252156426556371144155531741377526134167744574771477263377627612525224121511211253371641624614276711523664725143474561645435754656127417111736465154352716614311233375327432372127645757641373435165521553123334432337214445711517362457753316152315427264656147716244252513521751625633432346356274633124566675166553726353211237623245614665373351663522132156257574364154615143332623127246164253623431123636262453756113612441622365477673533117416426621254247516346437713413364226221236664644462445347772237753665721717463243476233232366355745456647527143573427744372231635363341322345726372317736243245775443477635527551771674521256647513353256621675676767343557545435753367262362242251325562457114712352361636165412633313647761373527757144162543125357735744273556565512111474715643647453164551531211532673473356655622331616162173266456126445443124361442367571121176711654422134652627165146352361173161633757435727136643572632142461665272155651764642333625123374362213431336524222444636532263523143417542514135413176753312565772443337672214164465363523173673151474474516324164612173514274422553122513445155535656341151532771222514257166532437374413565166121412727737623157121662141751654134337234325642555534751147334751374447762446734426224332266763133566576734646221243767127625242517557353757761214574617513426511666635333221443233714764247127227212645171345667367667313325341352455174232627747746776332266214353172626721116113614647165777446655137632733644336723622523566464176253567764527411714357547375125744313332723765155714162731634442165631722427155656455557743417736512525751166554522467564146142124315714212271652722167575412615435146471711775211327476241432166714764166177717752722146113432333723442341243241453757662134466162435563717444622217376421151156332271611755336667511562677626562773173361135713775755345336374415635364477272612417143677631262166615354415566147154554436566164655324154634447555132574454253742573121674351326242421266575163353554654313546372544753743563717476173625213742335734232527132711631323744341574367714177273414577621334152142771173524543275654657613412735125346721374615514161162344637553226221251753424742142426713751414336565652125532151313323531762334273652263157265326541133222455114563623322257772667662314553374144545167215315674574135613244561146664616437217577272754477167363161763527652741661177537655615323412775673261267417364361742575147451251667717652672327334625442417545634725113273336363755622164147643256151511134172411362462217263621447417524133474422772122742424557432514137477132442554151323111155337642612625152247765737337446272266457531437764774566522677636156723677154263762342225515567475377661617335623257412164642613432422523465347776146365651243416752134313247347145713667724456343657321644761666576756167425353742673171676676547435333226155542652352341331214261625257255623127345513735757576671415343136351425316512411472361433277514553615436327652621257213543514261552325251135337446461754446166244465314336163231111225751661474153715331357674715727635713754562162636763153554357332144552322541734633141526154221524113556622726423636712636261344766233726322263566467554573737335261674436755324263251632124157716166442431255614222224336145136754631264312763426751414322235724526645215515161665146611123726372256717652372571274155261452423537532516157226445253173151323576661743747672655514713412543134632137344335422373774446524137413726754477142412112447312724776211176456564744344611653156656516631515554167534326414722517461463443212631613446326112463422477744366542644317142164323656125222652637723454472771442631453365663746752327176367343637614244132546533674514534477264154472175361235625415762542552356727237776212164535434727316434246263363214424117664255317243577526255476242652647266236154544436355234241346622762674622465742766412136363165365454246374211477241464313622551227744575225357473533364745324336422112634571542135354161613257122443527171355577446744245654665121514635762543616524257136425241422215614262453436163277131665736251732561147414233642565654457415512771274236663147336233563653334525554411467615757662343527162445214664724675462467614356265441363752553154624763163512547223353751136535337637136521165127555752276242764666713656174676654463622435735433433622532312277637132315111755211612165426645632645777627725546627256611575467755465567471345242167151241617675565234313531355564412526727711551324644311356236516162654755234265753515643565446346644252176424332573267446214252747475715561313463712155717434622672472152113551762361271145621117347655767235443712123246631642777164674631376676221455351556145755544336476251272446113357165774542176145264224451371727645534212431255174425763212375371165626162321227772611232563324543326144427542631212245524155622255772545421575117344115523476623434711463654456312724677131623357757125414251112415264211373631646642522246361522352772233427523521613237165357514715327572465136221433452216361162624675253666611744323454413522714564213672473562333711363645135515227577757337573164312675413263726677615751732457772373244473675675566455467724635255472742441221717746425321173512363656723135346242174745756441776465467614532356677464362235345274133233577145734773432645413323147452143751554264536724774231634563116575553271765566256711765454774744423753243731657541751526226513366563217474671756143216131712347237547626276374111532355546174236114766737757371555623571512124726536331337367534337527671714527462336372242326643634624736477347714654211333237422125427262327427715525652314356651332572633675616471367417744132166445521722612442671543557252461525371512773356647724362317676141677151251616662665323455644447447544773753533122555223617355333427217475162564132655255274147322232313131317714312726756354375632162474525636257552447415146533142273765541475454727757675642245576775642622571262377466264372162752546742322332552521547271577176253266417634712254447476557551476624564651352511345325312451427422161765734315332264734372355416636745741371135255751477725467453256743713226754651622634373451666574114426335722275377141475665444165621565366577237333513373237557432527245117142116467126433521455536654565463773643765727373441124122512352752447655351527765211734374443531175774542513623453657276754231337246613174576255632563557113147153755374764772556725264214611526125565354155332125755316171253255143671216642265153624543567116513163314211526225617263642743534133575125267123614632327414766514153675534537137512745716326276715216151645547422725417341172773634433617454526632573431632741323177461346621614164436513726752452312546441631241714666261176345517654431515642743433351471335117715557731435642276536615141753663451444526472733617477124322571257323674635222513455576232422547562161645577752337777723166342331437635415472634644536235762214461444275656242735427344743274742117647446252366231364772322726341324457276445461421237453564512553212331115754227242171366151425747164326224636543164234151312217127662474761754374727434466771113272451151165615416363121732734353527725744645517545167374477735416521336724565532342361131744416351523514273747373442547553314253244624345741762347515472124531166541315711217344436115327774213161213623734772534354277176541146267541765574641415226137123231157224333722527557412325446763717723456667153741772245772167371414643443557154154477177227346411264541736153472132233364231212222717173727367613741366772233356556565167236221434562462776243732771527534565637216564175622334524515563151744675664364266323166557446665653352142671411453662547415413312541164355436465743331312142563657766513266235642374434542122327315277626533236377134521123364336145237174327357373645761317744552474315747776746324232364461156326661554665571434766316164262214113172567237473711553461111422144454542575635126315743254327535272566156532445316713432255242662251155741215636541113422255444751767564614571554676242467333731141117411152346127645115132526652153733152276211315136633216773112524231462322443365151562352773154677147212456775613761237431156536532564741641333532754721135111675354657735761453552364367277476225672615475452121357637647726637311411342116431466451456347244265446475617542621567726664611437265156547425717156252157451614733441335476167116735242121311613351424264214125721645161213313742125454164517421476315435757355567234654225156336367742641616364311166427136772521636122113751512611453577461654746557162477557741276566435625221716116355243237351327174756567671613631364777745277127535475375575752221512617427552434365136775613124216416453431573342244145726232653533572734124467625332123757245527271315711561643316432136153525654716577565642273755252166552357157621511374533721756156734261366452433564246651756664561226446273556736453331536424274335362122567373257514671543363725545766236277514576365441617272156656671527472262712446636576715772562635716424616154646636527337615112613464245754337333276232224735337516323211754177521355667473227367231652657251322466366325657717643722316445477547575437235236312615755711451445425171125657671263661453627673435356567265344374762131324423676534313441166635424541763324725611332776216711644437547172565455421621543355533117754753232761542645111457234534541247473763757343145333346633216424473773417334643515132726347313743353713157645126622133667731336564275574561473266371677772135614335214564645353123223322425326142573354157576177432753345166174264623447317121264362725535536265657114355476416255557233176634333455772632613542311343645447163547261544735472643677354727157324442527123764261557515121125267534176211421146124275117222637724443455537743555375175131335327764332776662357117721534667431327143454254423435536673471334567673332641423766431432611144533412145342513712556612714122674156463237471771357241552164245772532144214224442576544163611427774111523356724263251571253334423125217645447161575556764236571273634627455574644533323756727746333725174644432214547154747654617413212517343554241255743741442412624116143311145163161465543773176616424655162711216366142433752534516115735126247216223456764331622633535257775136741315225647742336572427431354152214155532646262152325361426745166414377555414713244774146743452343763757432223437247544551726363652161343455732155243531732661367467613162775174611274477765123173156474763574176326666565466117424265753434744776565444313334276715423156564253142716531153573475237446424743357651535742223653417554336733462357532237561147427465137133462527674226175213256115637744373575556371321142557362265461712371167111242355433573622561662122347352475624477167352522727143267335565451732137176352553666226251731615712225126165253642565322536616511642565465173467656421563564436632171657451731625557646324771754364462331433424312315237737135465224557533716551672534531545423345634777311277476543335423165323215676637157727775427263612453163764641766771612554575165342552247745744743245312162562235414537635341735442214412752174755332426262365223443724313534322155427246574417665377731313746264736752731563661421414545132751354263367557135371542126633131367715354433355226264375371514644555372156574235245515335516313657321645516242166637473164714412455532422456566453514122533164431225467735714561753556722352716141616612474764271546541715277224316366637347177155623733664616347277164122221147632135524116743153162575732135731234116636424142342632425537344477271173146542776172455131275554675624232116417437565312433212712673436647517544632563136361672162446434416564156436732671167267643477147717425371164454462521675235152254117646764523173344644351177435735733531373622157634363414456263166332573265513666326671346265563437621236716476431431565413272535627654565546422565634416725311174172451446277366252524337251261611167323134273111363136743752252352213527346557725327125434741316527712646523624347462345643763736746242135511256335561354564167665522244615632465334352147556546331454146642227764322537615673425473211176321327762345326116352231563762526767666234666617544751256446132621627544143234111615723767572155147225541254565575467167756364161124577625375764624733641466276321617762532447232536212262122143133233516763176252264322644742375617362161562326636272556254313115233543611754737661236764315735441125377575171171315223565457234446267141662172324745325763127453413317516646761465321131434412743316456233241311252455521271475736664621136367475642425554623437415776212141171676232726422164726636467573714773737122775113416463232122524233525631231632212241675776262674266262475567722346427126156347677635165645737253226142146764764656475352156114526532646645255632512347566316762645222717634321572747125167165262174315212733724237144752651477721352272465777412527134222473414451571131547411754661424674235673162365443423532322364654371162371621575747424647716513254352623615674571643221131613347615167352251622775321334535752642461536743245355271333615422627165351256572436346313714557151161627135725271126146446125132341333347742561613411455366763336363621635115115466434353163416455737134635346114767427135477456352364647414425134116712763732656715572554216121631543132444522334123461123635212266572746521765576746241653365625464672554662433441374453721672342132377776251515554413625675231444575566524675454224575275121255735624415166743356146577471436324176557356163522427376246422455755732671626211453312336312546245142341423455512153326347414431244371444621573672243216152524532351536237476167314624651734527665141773732642773356153347632621435634141426536175172447442734716663476442335245656132766372112667327265427334131634244273373673645754437364167152617337761451644532216134533552243177216244431775325141635214321741651516352353115733125546211315472573421666171774277765616757421771443531343433263253644542614724762334562746364612277674256761456622472616645336557546264252227213553754631464352235765673134245533731524663321434352132445153726332414163325467136332667514117743214514756535637574764734536542153535243126513662271774451325533126533255726226555756323555322634527134747673551356211565421614367313617677156313134323156356116731431532441371615346665623424431473547723754245613612463646472443127713421135636311456152723376712614255362275226275213425746756231567436656417346751432327124131121163742672745764737252375777722242555747333221634563113574617233311125747463655243644314676612243444142711365123516231727522735473277471437352534567553644151721241371355373667236324573217313447467625466654711632312734765342311363723612423515747344744577131257662154336676474532136527522637525144576566527313416457343426421435725663636676231716133566432564376276463442375316322762646126555565345673232672645735131743531417353134341541134531253361654625752466124171313767775445522224622762613333454162163747412734426735125447126524134431472616347253666544545437233576646236765112511566142726731322275131147642233412226527432553714536742147353634156732764242644326223536565151777563753311674237751334313132331277616257237752751725546163225456437355311316675716664473734671645574446466367767646317523313567357113652421517574436321742222256251556727271251624555663124253262367272112337432111777322157466735644264417563113274245454333326722347122261412123457334167322334461674122274376665537337372526274455767316657537312346475766577445133155142125767215164552533461373622327632437452251737323662612314446532175253371574427127317532216162363117451437213314235321442461611321466442514135653474551137311444573557127444232472241363314462142426342477132311537666221777214456422663577731214174125236157414467646226332453173416321137112647545571334662362533465611523671655334566276326663231722174465464237617626667447774277577156634246347242121275174534474523315142167173226336247632371254424221426427752614631623263473744456632475513675377464172542137516461641322622453432132325731622462546777271556122246472275456735122723154321343561537661336423135347754477644322366444516461675543557321324756314162654512713567734157212717532251535127417666672371423513567624771612554653542612155335775766577667246625163354672344145755635624641522431677357413331735521473167152326415344416133146731161561566737662536261115332334353432511413573666676617442565333576161233613211762652527116742333331363653265473562754774661133356425112532212662176467265377536577322566726114225275113644737511543623414326151671322776472554532233515247256356311512442717474531171636744672533725272464445227231333147537114416136365142664777722445421422254167737544722411324651522775323642635521124355526315356566217575167542753512364325154732663753451446753345675237745442731246674142747473264117715661155211171515712161571121222611726446557542434642223234356547732576563546123411623156614477464645523211214545531145725574654241723444554242724132645516373726121455143476661415612554313575417556353633634174564132463152523661537212515115573217556754245625771722364775545276244142565452352344663213751577524341421365523741337667266255241764246266752455422411537446372317723753751125661231414362311443355763261462361415456734256514752552227257616741415317755726315673714133713677741513517371332121413235437121226317651722155477652174157162374234333525643423371521236244374131564746643174645626752667331144224531414734511214212671533737352134116522362523244333426122167364175766115476714446711633142271712517422261263631542734351511622763745274423717773317734116377576174633315716626266163614635525535122452343346374313513261742525341425764411241662244663677243617762561322446645773453653761462451646662257134644212511116154422416476724731414135377371216661233213275667732434274235257255412622352747743376636452277224774367525622736267262127446462771631623476771727655167125775376562664243753146123743646455375155244767364672524127515352272711544233362153235657627466617111265777347646163767763132124135153764712176616126134437732345753452353453346367172546543776515253471757423243363646424734615524175173744472627314356652453225635454662331534554213277446761554433221353547125646177233733222566117346733635423442366752373552472427312676552725344133273652121463335526564675333736365653166335657443411771634147777564164736525663135335537234135214734446427217613357122136651473776353225257232476471614413653363211542377314463423475256454173515572741762331663344272236657127671775115447547274513137126721111212733417454575356773174776717131435776155625453454665454365311554464261763422166565224643413661327735135516736674526213454153374211115665667451123654223747261711713512367424627125557144153344455745175246722744631744463611356152773417413517362367125526654461762333373564614253266647625274413536767455256563223176772622352646554422336226547141757243471655533315642663541656164271551545422163646136513517527237216472235453741745536727171115146776223171474672444367316517434245267467547247475133175657622356765144111745176621222721723247157653365571211763236532523157154154373743174213537512655262217715356654274735421371456276516517355253573265737157235265737712737554144363267374231647464554662637354123443363775272357625424571645347624153564224543434217667654512415232572233777233764753141623213625176431621755443752467542752455374237422436164571631624133462122644677144172543746742545224526624424531147425723736224755421323675442465531342556567164627152351116345132166443422431223231466676434236456333665137262525654444216732676523121535654245723477127733314377571754542166651231244346761437311575263462467523657474414557611652577157217371776737471256146245436445466326515521452477324347214157527561343214453634575241353671653532677322761454724541777266364737336251467525237615616534572266121146216267715165667553233542354461412242342767657524136473641311451766134232316261575536233264433623435762112131322116121456213465642537751373536736652617621277775151257227763657644746742162261717126247145535512325123341657741662516533316177332244517565673654244231453472326652234323112571235747116346572467723355776256272275376244225363456623412437461511331355177536265757331575633674141316116172712521554624326727435556567477672163341634366261324712657721771127543736365324547251337441532655643346315141514643116743237536333666527333325172412327734717642132175747512323773124131532527133243151731363552775511674156262527124337357634246731737546565657563316245257765567573657536223312634551215374153243441414346776254543753523222536272344677667615261557232563146156472772772752571557672751365272234424724222563552641736275626241514315137276463647755765667474466727523554432127114624372442711623614171635756751543273441541734225745231635534611232565552746472266671765647342564734522727757115166265653726164671254555564575415425213416325115232517465735675441153434366176522173142755545411527772537331224534141335123554645655721155271564371334236524127716622736567657277342755537352462243356334413342375574367325554671346361143376435375633654442122266116222643425256152351124336656576437615247666674732154517516355311412226326176622721511562517452414647561512373616667156321456531134773254514164163167623151645667471626477717435734726344422227177263223135167573266233776212331367673315714174533565156671223361451712423233526264163663626346515617761475667615314714415442314765773134624614446137671445766375276521324715451275265422231151771563635225774124742525747146247427122645544266664256742767725177772356744553542266763373315114124243147635173212227461722432235652176352762414537775771154461356476224534665447346246365643661632664246636414341366316713313577666213277147473533463365711277257112442346227673142571562512641541714252113174427617757332515572774512732442715616773747112672271653756313624314215612713113223472711553144515327117271622244615777765472762525535566741155635546455326524776451337333342246113751512354154633155712457673524712173332637422632543771662243535744416662525222365655744361544252623512174526656443351777753512774355576341346123447451347721222647436263411213661635762765217315347216641161341443153442274124761112115115332366614152411723422633733633457717511117467462734237623226675766656171737776312135121454443243121127333244175412224362737253576612634362172743166526731657337121214753264461777753565644666611723421741317417525163651332322434176213354336371226574731154316737651316131762113163576614346251346566313513713223573564111756213763723374575231511166677116737246647271661413515524415517412447235366444516276141513354215563675343177662521526776335767655235652373462734726727544452346153752221567154465461455712347356555777156255633573651362616654532231137155532213577535137624467512736634521743212176711773353443547543236222444653654755323557244211533356523221676214135524447162255612465611762622336211556565122574154645743136463223462457152442157454152576435666336464412656255223637226753452425354736323231764456462461746177645442273537636374343422416337424372532214272132566137311254227751133344175371457374335554375463417133442273441577242727457216661564121452625666722325352314372367773242344134636261727241612747747454517312676535526544634742135773463415766632434412774571674415763343133137312643133624775455345572226623553147554756345122746437763546734341431725773615272256246532336773135141637221642257266752215216522447524636732367417214545257241424466153667116151171545374331472242141437552467476654515147327633141114272337377355647553674577215325735272321241134722312771712544357176341576513375446745257435172113147316176526374167615552361662375227147122152461362237375465616542557452656236264417357226711664142721227132751321367411323471726322343357555621147121253414615637774433417371376317424175466243252625156176241172245645414432657242157761625735252647427174372426625724126621546124767116646111173576127722266112611612615517617261112123433353443535725577561576517721475633376663464355234315377273442245476566146663416141661621255512362337145643375312377463672352671745152555315735266345525663154361716273624531451374167756374732134643245721755126626525564267564251515426435346222114663421577136211743715433454566466621771713634737337174453233761753753754331744167227554277517674272616354357767771666417551457211371346774713173362243312367372442515515216526146363624153214351632413325266113133426234545212366546171527441144416232577437767543453546673121462415776642731616364741622234212554354151344545473111274527147326753462535222762463623264112243141517673525724274556216716143467651631212715446735645637464642626113135535312215613566434137323244651335266527222461444157213456135372723764727266224732644221234154366556351367223615112643667474243122757117143335156332731771516227326437443776424467563752234745771634612313255714772211424731531725426557175777371631774417673765637524535336476461667331227616412354122765525373362436657642672247653761434375545117775663162477354754137666344156146745264533571267773653617236743737556232612647637435617632555242127144325523525551452356633556752775431313554443512757533227126325271321677354735132727331343116736261452516221624136273227641554474552123644147653672135222211752336432735543421111333144466463527472676562145147212416166124316355646426622436447712637432162726673645437772555647723776215421411716542453731626512111733674646146624161574555347441644134521335327637716563327274472175567633565552453332665626476617375362641516154427716671547421357216412462371742153743717153221142713363623621125521123122443557151526171463576447552175241617726771717255546472551677424615671417412536214253422521664354235217367443474213465731136453277122767134413223471265212256616612117124466712451611443551542534735237577517646137374561736112514341312372466263233671714615161634666225573423145336347732657634234146635377675522457554641725357765657427527373551526213476134134632774646715264245267427323747342532227137645372211162725432455642755667765434746755367133467354553253242125512411246253412547317745473675456727144152434617651656415715663564462116443725122311161673452147617737674371712234244534713126211274374724725357615552163475426546266772364123224763371642524461311377546341672211452545711467427657544362542674731225727766141126113551626115512634436346142255165543634645436632365331156415234671355632415377537262411441253552671475546475551411762126245634223364152732671151256362225111424763561674153171216255371271434142411511117536561475344355521245477657772754633612556125561714644533532737534735272213672673451244517724176572311541232533117224666671221161323416631715315337127127352562534775757267622566411413551621114524411531622161741123561664714465736312364673671212451641341721623655123515214224413561535737722411213654374111651231224117723363424173543355342566671312424664336747215632375644545566142637254267222616246144617377314571637245267457275111572432673353336362211157377112261435736454621457771216246261517754456414776153163275713741113717366327731645353774516173313515653575517564422121561312642313712371152141523135215445622254555715112337572115646312275334112513224566537752536477711553264444677266252367433473475444163427211337265524567237577444753336367324443335614647727764462125664636373527312675617677455661456741667353314475276376234113167655755122443214645514627322637627434146424136632322775136322415351775646252735377677373344675334434231257454223274243671461334716533547526241462716577645772462434622615621676221272155755235462263555247241272312621427152522742311725162222562745771175361654725131651272347643352453372371172626173112257244572757311557557141652364512636227524566533622646744373754241173754534477152367254614213626737435227571517745773375725221234161714663744652441712613346562361472151456143227422672347225455534732277715347321571144757424211675115226644615754762566542362352774616674264653472542525745213422214764513262531116267765517152473712453771255377225325277215456766325524743612533476217142777575327772517261335114725632133772646656137255322123534431635145432236132177722145421254451154627253177476472625461515152271664771421461442524473454373622632423664723177242723252712365667732412175514542133362553122771623253474245622146575653175466467774444161754271141546266724662663447167254714712775725537317666323441351651462663564456311311244611736734174273651217341373437711113776527156333555412643115235246537421435271656437725346751565441413545375473356441165672752535667355125765233266417116415567467334256745577737767667621511441514321225766771116716173243421512334456366176371311217545121271324773732651611641763137651662125525121326477554653167244444756532355516456424122441356134532515744624462335157414663675271543456132517744651523272452313457736641123226524777327565116465361165367773565464427476321167716234774664253121564544365413475212773473142444623277736516247172473143347474166526512372337337516124541522141122663234476422473425761144251352652366635477737373762316733171357626571352365425635156671312547441212437665527213722721253336374434677675447572775377515141171444744723576657167627671375476544237643223211217172261232172666373361722334456316526641161356317547531264523553345122327364216373356474267435161513736165726566124674424477117362776524317266262652424753175224334175637675614763346653353176521342136125777515133717356755622146362273714665571272141745541745674725435133523534147245732736627222756571152544241266171373266227527377414661376536355476734665737776641336377344171741554142746746733776735763374571645363576463376566572361721317375234615555114274754273476437577332114663414123421141411454444317631227551263535653734263726451444466555664251146452777462441475155732622356363331441377645715534237522747677222365425422123775332413611661523162634415637327162323624614776376561133635751667113414176576536314527723511671672363764555432372144156437616771227537324751227324121775165156172764115414525567273413113717627737537411764653773434154356331344217447557254543127625242176242673637615643321742123657151774274457541435666763166563661672311777654126725624244722511771133333432744736431264576741131253626263356143625753422425542676351176435343646443726271255344373523467233617554755716133671427772241174465433141743555255331221545746414261574712277116741772156753514334315125354366254263461377661414745467325153672327677136726267655443476373614745144147152167146514263225615211634452576674711673232645325747133617756556447646162445177674627312316315242225245312232313115246377337164316333774237567761576435367467131753354776656766246712447527422427155655654452266166443424477752777656553117347167123465244342552637415716244364276456213731215472442244172621247216136422533462646264614766213144147722266437633652332141752315723614234177773371535732131462363565311637731361444141464524743432263256352512566214252723331674122551526161256176434727353444256443536436453474356742116463172647422355133563221225435473172376342576311771322344716657367621656735677167111356766155713176355157651766611147155764575224153562667666667175774674364717514274554552542651461152571212164673352636274362531745226436646247665162113441734721653516514441531337657125217523617262253621774131715127531523723143367653653466461163157222633441671765265623553612326252545172261261721612161363614542716637246466472553173242533227522514523553434521232466542363355537313662136421653223217336164751672271575447445166477533343137221457627475431157736772236553574642635674431636631537153731211715262161644621415667516313435525355464651434424274264214461234172541445471754463122644373437737225251122326676217475236561674515243445617577411461314174153635563221621671732112333152476163731344445646743264521725375124527545222275773222773776527452723171622132643365565255141175216426412726223452231745653674414457322535456135252356335534115653716271636641566624641435155632244753257244223225713155573466774413631545377632433742521176175537133121542624166473565566515461464766154237747716464354144673741541455111715626655374727471716253222743245646625554255326427446652165413376262641467323265221727136716336255642111143373125337454264117156633145242611124657614342763167764377125375527116111635143363462131132672444565375351164443172224241527164533273622742625227442255441357125544247544726457324653411655667443167234537574547234515673572437156163656535314237712611151426543443742514455111213463622674557125431613462372423764446536114226772173441561143441115172624337236446614775711466666577171425351326327727432567557547446572341463314315451537516662626676232272632374232225276164457346263512676235642253614623362215244515676621414523223576146251274645345221373754377761674432642325273124144452222217211765241364213426224771312444574762415645376647473763115461151566731615544331471717332772211366373454231774234346362673735153123371725224547364334625127647253512124536223263627412135122156441542215147456151122234646753711764326122171726221354131646337545277112323525431565171275742616536456712454326376127236733125172656667125551412433355241653374551456461337412554172626115454133271257474345532343546347225641351466526265751375652527543346573553536545243373161444421664435123566453267531246314647746522344624562122174221253557564446612375755267377723231426515251142413371737767763226462442166274455715171117127451327454764713462262774115126764236315773365743353652264777715431452362732446175362671311212165334553645222132667161332443661424163466322534124242365643243414124354315461272516156733367527233772333712133323331245563645572212334636142414741264652337121431573356274434141277564111132365444173124477214324373124147366234735357626747472143344767736763457224226123264367735533446444122144566511127567552346622567271516364335351446425741532112731223151675443416441245431733255317525776552223276324767264411252344145732145365416726135575633176614376623452222235742521415734715345137575611233741132363776566433246216117134427524753352241173427352152266647723317656163224657715233564347351613772772343737732455144461425616226317644147244422225614747632663434517235341622134635443435515167542664421413726522356512473122216466141212514565623665745457677647563515775544347737543411412476455736635412246341226557637161145651534476522557761657652771775572545315161445345523512771211771254714444471354127572612734133151652435116243766746131443757275373546466314522415342476174135564242717741332574437517521134723547652765137317764755737143446714712117724754654351173777455367777221323711517136235646713543433455526111252366112717511275542727662612141276111372264473151362453643151277212342572342557725264451175115235463654177366351271545646466273152556156215743253331225773714331575474325132557223246155367113373154516331517532166763632543264411153726177163361217662246665236345531457556116246234542421343117673741715637655517375541576226215513524411577247376264234766727661152634614531662677334633535515633216677363553732165561244726622243123153427725244124242754635141564162444437353166424721324122277616752535564264746431662465525626524116755475211165243513376151743363353133644752577152411426533771536732436734314522662635572111363257423337677442522215776127355614757213313341423734555366314274663723343771743357724663525145645156424126123561462251623441125543614416221567545174275532554441743573325515663574124771265543746217652433312552374765714651264115163336651756475114515214433143552226774113744654446277643147445756666461675454727737724331314113161731737564177263365722242653253355352241757617236121335524153371246464471561524426542425123464517557136315366732776352255433215353466317157762263221347732443272531473572417637263427422716336413662242313417346571454744677551141465626357334174162666246325532661464323455176524673541573246446415241515215167667343313731774755562643455274262336776363362167647123572222651275764734263573676522161424522731531233562253542423543774366572646172462727373546133533373253341351427722652345262634264411155173256251457723552636344725132733362217466357734237165577473717257471537476361125243623764254372242415565325547354756345673432667122661433277236533466257433721734133376635642425773112755267454771337232117363162574673331377171144176477536745216615141371212426735615761766517417215355576652556457256446327367311136677675762737654622454313343557451551257452551132477747315754732127235213557674143147211777414515632353642723336744174375245737512751454546112777316146672465357565722417317621652466446727554544255517451453631727755767635422136721667745422534642441434216423324523437272445721275342153735357731414334571364524477615217746753113555135265657326317247345242454141754574262324256173321754323636733374123356713734356465116473275635341617577713632411322352572476233423364474152232453577161237754425764425242376433614724257365627526262776125651353165472532224375124424235645163312162435561112634366722515225656166422211323527257152433365152762535155227661627535612231736247532341172252434421221455652516562116135353527353415652336516365667412446621767327776131122752551432665661766711112625737335414556744633731532653235641664645243731614127373661175771277755411125377721752347451251272367241353772174272326414531762127244271572121637174635227415737755475555777153252546377252145243773462352377525113133262575332633372621741133744256676747663265414677775171415243123127127335171661771473653476717413415357361466456537736276166241673341466425465341244273713741127554523565334153216646337744766735476746511217431424451545154747521316166327374455114262176574547517437373424761613442643514371253327467133523734367654236676134476455551144436776154677567514253227166113556565463164143214531164164715352241711326744565151256575375734361463626532272616144745565461126264646423743346242755445274216236614656264611426625562312142166767456314764146741411751175375264341161671214211363461567436266512531711132653612151226273211252446656753151332656672631253467735513472626663751742244371647733414755147747254452566336412526167555263367224662131164636177175164613242264753167266753572613412173437666464664623612172453735346723611646346721373523163366213774274461345237461653261517342643374143276733162257565751115272642247677673121446426325425255533757641632133317252225661515452657754736153413332664342433371466453257265436163351616162411651625154263626434173154763224423474312121323277776225723337171357712215457771761632535261162326436661426426426621274623742174747735171732514476617272676116473517316413574334325245424345115566427451647474126734476232754623575534637666411374646661175651237714376355315355232737141746762153412251713657374667715172617716461515715274343623734635116226156147732552375671214666417222236743745133364254364664524537762767354271536244663451234617727215254664757663363627153545546571325114411471136332456124611551623325676146153726364216677155137572273176725416344666565563317456716236221662616415264753323252264726732731313244773561734462771312326521652277717457564232343464636512577127231166245551714355757632122725747166713571672446135227541744552657652242242515531255341436123221377523151322165323146112725356317472177142352113321222535353133174475321646767311445631357572222753414662567632175571727726352547722511677654154743136721756223145315414573171574211113121134357272652432752142663764415622357471666142457565163453135716144725175712246336745314626411335146667351616432437161663425652576454423574546723733121464363632472254533272213427732212657233514621374625137472574637714147421714144645361327511273315611764765573156624657637767427212477726566774656344247357211331662573553352141676433467322456545734472637254434271656571146623435176372237763423471361576561135744565727737371751126267146352755545241254214311422442355214371255173231752313455712147567321456356613777332676367574564617164122613312346426366445115617516111412643376151176653475367231153115412631546647635175743757175417141434511416463213117575625356472446127257237561172153535274244417221357474443553251445375612243274343313657346553731467357475626452722421345334537665534663465244445617754477262152644234613431775666563244353571765522312645655534323757376155174755276473271645371665636545354662573443152356716716662547316114264641256525417527426674634435174552611562353226152142525372123561162141366717625142426345551747155472521323415322554412361365313253435561141663152512131177631367633413436515134324531732725264347527763744551313175272315243661552651254543765374135367113473467646753547747677412251263534172275714361474356331645755437751262162421577336271255764527725745254437576643452676414277162767425167141725273564346256165365446156263476226666342257166736472427357616521371344462472465246421555435321462517156416646574435524461322467741665531326275632524153125355351337322454214162344743364113541615646214635444561276425225513575263213677343122142723647421761527732412346757175417165736235211324456623412521272377774517442463132724465551767111212674537171424736376243332354575664451551524227166774237516256154633611154516524325752142761676462752171442224767575772212361241535735113335733722513145273431523217137463256451133437267534675137233111427465571145154246525441455665746716555662371724711564622322136727565365635721421466252524136722712457232735777256215366762674265343375561362471422161161361771534764643172333475613731161177242651345644112352243436655764612217445123643712125572376166661121156562256567712451727647436531737525744623614262255442415267374261155556141551116743224744113541667346353542563561773571322777165222161445614163464645766266274717336373254673241736445365215717732761227511244331274144565266362563774764712545776572262711631226417715527114523464613175272213155165651552243672412723642764472212177164321672144445622232771222323343114373511245741263373515141466676325777134621741317667615144655517421433725213253253243141545327371333646471616343561175251174143167564423425342721731656171474114162635376234426533611521567371627213144751512376652734724644145176513127162433427514225513221732612325445717263245776641263377571143777472521156645532652322273316716156242446244127315531157321311217143211245657511474472443674726143574521416377457136314774576323562445416447315431272761532463653217761625767523652141214563241473461464362343537745177555273352512761332455732737556534245672164354476644547743731674337111336664344332676773276467733134371356622445545446777736741365114133626264741615534521425553356653244164451444226771143717445332667465144212545555572164241675254214127542136575254574211372726441754741244125752321153373475453657365421143532173377547171656244372743156543652373366417575422142356774762247571147717177632137275266674132111226121137123437367217717523633145741764776352311333443415611215123311612756327364521251751113634155257545561536221337545766341756513651441414445662656345362467351737114166432312666633452631565762772312164435624477746223413321411733253626411261156112443674754262571112644152171712357557365174255465763361612173231227346256615553442611111211544776642651542311644246241351436226724411675736733657513641114146152424474277213671552256361774712343713444456756125342271211721145546173652457361736357467673716574475172356376511345425516777666337146374335276344216157657646672516546372122646477275273371162343226147251646416447377721746273416434362347211265125221225245576453272345377415331142274721412456667135655737652667117523654232122235613326474664616667256571173315717442213771463251117177171523234312633132361527747756157224556226313526156341245352361314663614635327136763227646216356656236733655662677212217332166763626523271171251273534551666566757732462461617741223771771756554561737315567563615276415473452742255216765745335256727666334642176517416314756666477467423171217171243173477455346314357571623643657267541636553414152143234421117136224216254615322637253635747154776336254544477663771375772121417243162545374374664733544746777134443627451272572374757365274377755337314525616135524664323144152675745411211124776465237435242443337772133344635613435411236463116225342765472353626567722672274715653742522747333273315564715416373571152356412643363153543224144534642277732335754371645266674366742353465532321667744464465123721266526362525674671451127532234262235164355246636765176153216634247767434261154764663512133736564654536355563272751432646251137415171746534244353516763512614566366574367115642123133415515274144114532543237543145517277117633244521165421575722664573715671224715715657631423611472663362474274115573676742243313573741222731333223672511145375756253314416642374663145141617476325565136134354652357774255326257636552466215572241247556412237214262537442333546652741713236367616261235561156645232443657616617425652532536413147414172764654627415751244225533573274313771573444252376617564743363135435474752376636521576174544146611367756125127672742762447755635775173626437516724232476315171771421113756631622354615656476576551762367263256474276153714664652661221336654535254773463763542747162316273646355765325743327525643765575271241747573276542614361777461112335432413133127312732142271422566231512126331461665771331414553415567162735174164755127157646176766615212122447236641665741552561551473574741775751757544633121266446626414423312376354147463613556441412254675146174422551743227265345554244751552323562775231357773562277714272324764173615732733421651552372543233543744631243416564653212366772367573367374754634233554713713153142467521217773445124524116534747115271413312657561134656521215137757117352757635142447231443365373315352441433341414541674244164416243521564111163636647353172543361632712413632116662731441615243347657113465716716371356537364632517632171612672533677653612274656542663753132316575452732362741735314513137451232711225564752166711562174142266361524372172327322361472215445415457217427562614134114425361721676621563531133435756422157343533526674151353527336372426554137411371736755337462332473352655627756242156613663226556123311174713621735717216527466311632142642123236737161653612644637155331544171715123171472767454362726214634745446767137446575135331361755341726725741174754577334363551316527323726226624363336155544566447472623536527367532541415174631772274567534453646223365164667767376754732417764615355154633642673672474546655356213722526113413772232737515443464677153763334544167363345211441242366566222515314243471113367573633621633723645473753175333214617171355767455114422731464127511631677666524446111313552365237223312271263537441571356675422354516735254446513663712671434661241755774357322721313473747336554751541317343534775244631664452251356477535717317134627126475713237111754465527532325337277117434536644224716671225157211111255637425246657546771416426541767454535263251246137271154122222366644472711245142161377623244374351631222446353463613615122461216312334771627167457732544723144776241731214243111225372163471277734121343767261412231457117131124546763251111352466633735141264641647155275333513315671416534322475423244176547771561632526247321762417726763162142235417225366465726632531257555771452415154623516513667174153754712253171563155126515426145432733362611751476121762634457225431167467666726657657133571613356476435514416364462474154146414363227711363323751121636344115553276267345667275411514432252631261272145735755517667333452745174225531234622474363336765172622444127132635165433766756576751325737653246156532247146715624166652556113112616122246731633231136375326621221743256163347673726767421414525612241157414465777575457621362155372417462137531611466451471717557731767264356451537565546741726721137257625554746625512317372375422437431317674565455677647217142226252423414772631431526446454575434616147451743727273736674455321721626775112514534747527375121332425336136411754457333372125247423345161722121455522142443377441676416627132271752255433154217417267753165375373622466174426467426534133672443725374174557435467353766256533734455166643515455314524431414616465314161551516457741415657347217747457444515544657121515442574471536413175652247143334171467231214256465353516434751577556672124442227746427462761731126126321764126234765124334541664567332521234256566377134671761347412565617225275744156547745213144423124155776473722766672514131572274522422352663252753335647127337722254423621246554221624727644756265631133256145666657462556154173677773231236134613761336144655344235667124726427717252176654471235725146431364476313622421252475177673547717356121573755213444254345623513557473443752662235654377773353632711255662752265153415514743327527555333631251156337212675241123711654256365473347357441355477111166524453212645514557615356466675457125457645435113174733511461337441117175547362762565746214457314524634311456746135722654421353144427261247243756652257712741445127137364371716614122312626664616522651317321321734266341447721713262223365516712332366334435537747372527472463535754627273156263112465425554147646242371615435745273756634341345373422613546234665373251614751671242432116733433353661652457647664147442444126445745224373457446162227474275243747463222477344363676555266114472557774243277626217774533344125274275621237233245145421166572421152643667713437234777117777132347633232233516422221333242266434417134256626572624141475715661331335663646536621425475367756122356744432214776132711631636451676513266576216132223476563541732514132673625537653234223566652142655256531274372635247637525732337744627157417663421513466163325232624733773763346317746555216642235731227436753623521416327213537323436511426772463434376411774735312254325326465131577432432235765374145661446353343476662774614555151637714631275646435736537175512676617374534311264761634644434724515635311632152551545332674476266742662756264531626352542322151764343641577254455314551614122237655253433361635555224324647263151616143411514462275641435455763263111542733312623427563441141556276354641112365737626352376465475433211431667354446364635673544376627753132271644515317111554114716115411641725417247241316737421322764157253124241265327212365431537255313536342372233165323756742751611365123462616124755364277576776226632117461212771637366447236252146266234254553557616454571426633552375633472161142726577542444712332134574123137342211166423734251574165667114241372621554167626677425275226633772154333741634624655375127712412521354641144435114654477371741134361645743517432717551431424546164352266547514615763736777555363122342316467757467162772666436131364535464352421327521716761575625377155573145211263255253233136567474345553363422747465121424312362716474624376474432244417742277411367753523463127455216213334375333442223462174153665416143673346612234474614431111551466646373164416157551233443532767765625235676614753716463155355445236763542433122333263577336163616424611245441614134515547357632614214527475566213753527566541122452235364154774372754133617733272524355652262732227623225311741113637336476771223126557312417411174131111671724445323364624676676411611672173441273541144523424355357536657323544721145527262511355222126762437141255637545117155567713612266162227772766561676366367762177677231122332317571337275263414415527653275346415442561211652424115113334267731614154275372545156776433752155245654374744311135734712316525432237561264736742556357411473236452331561254251345363344424737615252221447754127657225756553553477532666665277364326125163347671763161147577546261273712357451447666713774747677731321656624767767571277574664567522711672272371341371257736425411513773233463421667626613665426517771323762444534615477766632513513656254512255746527436422563765443271742371166742724656146544211537645265465461573261174652373467464322152721111437631335576235214555774365475642524561457364115463372631571455537227264323625573724216466525462414443164557226632253122713643724461766555477453571123333737231671176664535663254376623325452553554652334114443162164417354532711376532344127336455235253627221261155412113157735547466752675133231713123532635511651556656351115176321713277652147125714652762573444545255253467411213672121367544231647466735715137527621651545361464543347737653526671166153613653436162256254625425625642342542174722141765561243136512135322432125443451331654266151353276441764621177342321151765133554332537213223351623722721534272546611723356723775416512675326572373576144636246616651251113673122413227674537531537556756345661232654564141223266253162627576732111566374426746765463564655541763152172543547447176566253141247544665243421564414354212515732617476213565634314143463643537737661611251644474222577765447334333314523521267723262261735162435767451634664775314643646455621427476652451751621376763641434677757536773172264425223517764454342226136556765437263654743377135361174742651526454742535765211737151656144316164572644454375572526514427161766455543322751642723714346346554422377533632125226626464432276747266243646751414476245517127623653611164753134465412172175276455145264652265644415525136555534231156544773577341133636413367723142715426117243256533513143746442553426346253577554735442646613752314331265544622415261345225633274521547325126351166234167553273654731673474442442464163752461756553762232766233472212527757266234422754354171541751242337266272544743567117153352375542577317654367537551417135466242411551547277364452423535264717252341516646515142424661421222341415666544435352415215357462637711577545111735217637556636111221277354755141762766755537352564514641447155355654552336373541233627764113531435173246765243465157165576153236737444252117365174213173712234247275514714653554376616276333756776661253657345175755665641147256734153342216716614414267425333235743361621532424164515666511133637267262446511331722527361464761117147273154311312553523763461473571437756416651735317526255435775752756637615617452444453125526415522575676351425761426741633515277541337374446146312225412672431315441372156152714136711167222363147317424333635452352361324653177121273646332271336675637315126137241645512132266156752713525331455633514721341155653265536273351255536331454463361516353214541576452315353123552543462713367657415756525231515763431532717766731635427333414223556633143131744127761635166521167742356663176572562764514465673572137727427471557757437776556245357461324355342441323314263726645514156575241475546111531732727512227776532673451472544551153223546446422622361327475264371533217755611172337362342261521663214322114224357417645154145325756412623345713744741557273626523554657215775413127266215611463132527547241113524542363245223636112166223444625273531266677264214414346674476216572617671531342713447447777631511712163255373465143271117214354565674132752332255566517637276745645467556722247127717764723637324152247742366211221321724316442757264261526547562134227667525732751471563537626123544434625322537667636321372315553346637551735624611532671123711235732716212774316463652174375511424536457557377245444653414254327162747624556664537234665213755665251333721627374226615537725623442674117373423736737623726411166346166126477714717713474356464312121134663774516676156574343175416531131627261151767746374724466442564757177115314217251752542377666353353273734365424512165336225754372632226664646221336263124612453536152642547351425444755556715377225523666535777544243617612354476241531524334311734236327664325252445511254615711543416464237655132772121612323477147626353442254364776751213553557543517255374622322211341637225273564572421724345577625112723644322113244457213174267771214517143453711566477177526527541122246525116374143164137722166171436411222742457775571513712533715655777365553443323515177263565342251371755443666357157115465133457521736563264221246257127542111262364354663325341356462346667677136674354615441517546764643742156755413764532722675575163376674572442151525717317257677236131527665162255157717126276123736727116636154662572673614427734546557442367746135426171553547224212255514511424376377464642763373522372163325765616544347447117562722221544452144732376434345423715341326763271774143716464127512446461376627726424736774325477543513543445346372614574146716673344621355121152252723437341247574276334146253417613147213226315726662366114456546763774236266161651717622467354153454167726525774115171241375614351777763654565376126254373275532632631137625456371325756476153246542766657625454676475335143571354643441423261742623546364734771566223465713121423777727334634122735274676321562161274327724346543353163614674123332775761534321667165347241552116316225262633722747676522767171742753573675277373464255545645752241511211721761436154647525323551623753745143215224617753515162254441757573124756436535716425653411625576217675551525316162666237331112142224611164516535614441473625121343723133623566457125274566472536221545727465334345766645515767673757651621643217126713564363453777656741225656562552237776334633631546652446434513727137754556131416273441313175471513472166172333163431563172542523264312212435253415665315463655375635256533241623513333113317136643361334651633115357752222336223561624371475727464663724357312571663423674366434234625364325674712245634474232764347275547231631255651411135223751667554671764122617251274735424424561252352663265173233526472733573621155335643464771364233445116471425342246475276345662236747677651426632613532566364617414473472653547747312562317772142413152346733626561136361361465136354512375761746252211257326133767437671417515442654712745651256222322553535271575276363162127142474543236647726646576114337333563251473461373367241762614551121446616155326644762772274741152337211136757655354655174472521743664711617675442241651437572576166676761651535743747772143323242122127225277165371371676241456661773116746155676745236143221717127532436344234732654562215225327414647515121624713472613445261341626717523574365736236662322356552452544135464361113173225463351427674476156624646345671451716157751337346232735553344412512316324466524346632321765437677142175544416153147413421354354351651345116125441472653111537355454512332235771157355665131777635477643156545753111517423534516357454652537345646137772454737764142437714647544446456624437327134477371176142517566567223356462733173272727371456324357675655157461711323253217243772773657366435446667216547674275564742171655332317242227177637377613214373245367423635756631752653374644151717662255762546743221551244662763743372167445252564642166565764461721237165622172476615553462131333365475367477757541326665171225563432252232237313335225745161637113442774236157474327134643727742325425137135275641753347543537772543357453113761155522516173172447714743373673612554746645365632533131552241542117614471227773246662147263341451432173224126432333537556214252435736267772556211465452463122475172631721276117357745474117346257552554775625644667337732776625564143443135722511554667161742631356613237731373467157265272466613515121114235514512537267436321773414615332772464647575641613773353745611712377754644531622222561266747152271366163546631154332551455562723243162447222341714262331121413741356622546112214532166277252556614576764574125411717547675142144414323614435216371366455363577352674365622552421651426266435552753522315453624172154162646625724475627466762562667416774657562132135164712152451421421725765211433233733157315466522723423254311543137354516344236422175434265242655622363131653526737513231766244647167313371752756731455663571265214144315522127723171556237366777523354726221124543632655513323364623425241463151534721563135474266432267326744727512752376145554531167132725331321527747655553346356351554421552633737126563211145764732313451553146251226651665554141222657646263221334331517264762124271366225546613445516536125437757226247625526152533516537364272334142234717624117572344463123346752275716772513653117456151325223453255144426714224263162424146413132566322113545273523755462344741326267472656517251466245571215231757117416376325454211651172725723745117647511246166265315477273511412416456414424243163634764355427777636512344677226613222641423423516477524115136111442647673355535474357172624536674177171526272142512632715571561111227273722337521613275664744244356415727353425525236725532247514366277244517472214216773116771527541564355224556361361511527663751721467221766626754736217317675111166717127772617413443374475275314315226337537572736467246676531151714746733172516356363363137256366164161317651516356774321257776726524566644625662462224351362254746515372775453723255712147476163655414714553166423114321467367565246757325644575227562621641727535332365262642465543645132134111644173623117466343646552666311565116511723672627273147447417457161731134433615535243211142127136142354616217162776331536657554477535337167177467423577465544114277123133152122174454412366611347242656264377417265536766651675733227736576547577343352136236723244357231116165113447652575416624451575575324136372371541322325763132523465171742261344517632427643226454364367516644414416552555267746575234314112543213171255275212152715337157235555264322733664763263737734761456465217523112421757342255766133171522475276357445312541456263613755344755712757521114352112574173626434325533615715553164344644247722545421773475142457214712327331524567551737555624746537773635727466455467544447133727716272114252127576662336343644756666177516727771767223151344133621632524335546534566164131645137224516152736713561471114371714747531346542544723153264614125622664731625772413723241743354136316712275115455757315312636453314125355255613512642513617746267713557476167552746317617574434435614743663651164726777151514157742346625274322113724121273522625763666416241353754466576267352242437412325464672337221256313632715155277737426553515532564157257656575611553343625411757555573572443223472145337171216255724315552165535731674774124742435265743153726522522212613311563214117336732515166226471143122553163237734274722655635732344532731454466127513717572465524276472641217121263464353623466725765352374316546116554235513325224742273733627431425753533256611415625132614567743641113522422573366111363653657243344526162343671513733327524457175567516154344525122344337175226766147755572254676133565526331347154761632151557353533424367415414732215413577425113444173234116412643475166147647314625352763624111562317123177221724662151442254224464475726742254543742126334167546277112777215771215421364774157711112212324714145717135445143254455615751564271773777653471727454346254422752242442331777711757573527263367715243416476316525475647756325225142372253214265624422421363125521152317622247122475751776327272421642624761165344131242774724365463756464564237744251562274732572776756325162165624672121515165265362135733243724424645116615334153376773426742475171671563327746366177553356626445527776341445374225373541433317152753521665424256177453526146255363756755431255265133515332341116514471355472132634326152326431421762221751373471122731263236261476722727146517531125154516436576567662577541433636445126162632417575166143225617655457356453534514432347662362546215343117463154531655734212357311134455524232674772476217554575621456231654234534713625673454156225251246564337641334225562167123537664552216213246772447767163346345723344155513512657756166333266761414733414155353362371124552452524317661211155515744747524662145665565726733674561176741557164644532233247626366416324371477174646773416312342212245514745164541551112654117332655346143563346523525113433555644571316764237272554266441717674364425325652762341766533135725554225157656144377477254651363132555372467274635764723471546253431267526556241747452713767675332362435372237424361662161252116354517357662534163262417536746674356374454647357675146722625625353273542336265265162776162653517142436652672332147431246345626622164762353627723166114141633436746345674255141546461176251634532465366613431677655655414617462522367157424574651457232632661244372311462153432661514177256313632274243567233523514313232173477626454642755431721352716215465357225621137773774133323245714643566251465375575321654377211765244262332151642313571121141237753462645744221461741143251414312752245651314443651775423475735234457255416153557541472152645467145253734542227314354563757437534453655432545616234712311363256714212765253633557261413532267152513711535222571627171366514534624316571423514677617737521414175627416642323123175177163224634517461464727231647357466712414156116354646572667734763675145662413332137721317212672272716466646373676662633643134353543412216255536425621274426154532173334141734517362412764772546665127635731471541672112612167746561553456537774165466666175763633621366353453172742627637547724426466424663272476771754121734366344316766327571477576371464734767421327243233372451222251765454426567615337561126342467675344726564666312471614551711617545236226714556126311765767761145562324115562314345334243231355725157561331472245712435742176711536675742113337247574362513613676667463775341364445774256437131737666377723143626327756631645737637657562277462435433226413225271365355565524166622154716337151321245633476715777216776542657172216612343254743773564551756766271271534742447656345124121731667721164552127716552455761263263365574272575567354522321451117447321747236176734426662136257314447445562562466137736153177241775152621117256752766714335241442247533553562566165176621334512241113577267335355154746714564171223674712647574373167777466177312562253457436167477477547446471761217665531547527557623571552751771157643627771647743313571766765274157552442646733274553643552463712767335531425756543231515145346555671444617424261614654551326323173351633774422514311777243164476733136426771362714223336636416211524567377446147461124111741672765434553527324373515215223412627372141424457227477132743325516656263436114727757772377731513411326653473264173113334247422662125114364673323623257574656155457362627211642145563653442366124144245276464577466754421547443261514445374154123711463647625144225752422721423734263467542365727515157362444747477155133262173165674633716574453552275624244642342636236717566735364757464147314677623635673416235634673271342131714476166441463256556167234447652422232215246573451461425172767222556761615415263332574273512545112722114664373635215546216463115316511267737313133617632472112632523742634666272573657136237424616273477166116376664776622665366271647566461321221517573752521547525573552574736716167366457424577346614275777672571637514566246272174424335324415461543232156777312764527241772452537153371371432531272125326555132741271437472656766111752637533637751134263561451262367563647332232354673341317436776164352275521657456672144116176616443572454453421221544255257157625275433311553614762476335244235646322643127317127361323236551435317673116241362321342565452527357337651564624755273362231413541575472552344751562237553644111252631227354651137255333617337556652164122426622741473665727675672212533775667264233533226336717321473173562521244621253126717753212513273465512375334755667564715357717356247377234642427416727656657725532571535223455435427436315317174345537341517452325257221752162526372347432466512341462477776251212435477546531654114363373321352416266234226214626356617232576651677423735657342317372225576564554536124722766236366422263133527213136432641563622664212426612734456323411676272567113454346651217152523574524713713251716674125733115565151641153371513363675511122662511664172533673233644315527717377366176352543256653314177171737166167634221547435766515415521631631533356343425335175747522616162145463337622544343151223524323527477134125211546253276657222615556663375716212127551535667151746624163765616131226363253261464257667376161173335254473122151676775745665665317146617222341442342147635335157273165117353426554162744427335355665375244675664373461242275722612332266555434274444567177512173237345143776426163442541522122434473216526471477744222474517154524746527576636544356617377315671265257147124721466341271322223243761175777412457424544567271435734744644526764726472162714266663477754545335731611111323632631377366742676413473615147434537757717525714545235436244211563662673655366144561423357661651357546126764662257223551557656613766712577257375341627674762763353353634742613547621521236544773247633421522176152335351326136362464127271427226462117353165135273616736767173642273232547464174675467265316613723446514652262641311241761651253421213517726224455412411665774436567157163175532312454652352636675723631242735367646233457654555346742166461131115647276365742476472622451674715671622667364645474766244334744545741127156632373173627453151634447553561463724434736775323476253341527555277633337236662333261414475544473457713726726252467432211766335773774476371237576652774274146755355716757112152741141667275163731433431342657145161367411217473655231365563571321456527641621317223253731421543521413377472622744262666731275561521151131314577247436332443121172327542564255373245772336651772235312562326746254163427216576623444733155161727326771123663766243537255654156122721223612211734421545334752573775137412632635427464311716267666373243526723564524366457465455314641324326664457715653533361733537652313163531542331614353466741737157567153221354456175433246533551537535256424761772435762756323376463111144453643726426713555125164365562146335726671463751552461717477774647342243273517665223324364355143217523743234222635257626355763273355651174626123732714741551212537215436121742345446744231442514645471313527644422336162246321114654116457555121354264417351363741461227364116245665337365413726165317241741766656421341722324233254277215315273145312314547212521142363723553267621243721653125342461674352671772117312576721545615174543122112434564645646713674374167363614767446244647541722563273241623331276212516563776156575732214431557472654523223747621533744477565635223515231434527713316751747534357637562525311371642741735127565462347633564524611275273624764532175751346722523733555756455132341247375376561153542346124732265412552312161376652177122525655417664226445566563164177343237672771413357746614324133167413473612144371414375137443652613354554151421561312725162567751477155553626174326531357535433564613351763674437313541425367657341577615276752614251332752147164244244166763344672144443656666223656465374641341545372577567312717767411114337525246425573446746144715735562633367123613356164761562375265441767772263411426125264425344717127117346621662675324176724334446447515366366657523242145477244222262722561467541755372752177622741234522772645744564772212364561625277566764667447247377537377362723772571276242257317464315454646135325445271525655625366733411224167644365446235121756562234366176762521265221124112771224563562351644653476627222433566344522161345723474256312664242777451676634536176535456544362661537726713376276151617465214373546557553122753761252311733452137716163374671117225446552712334326135576166376431265154356621243265735654514367416334672554711227122511353721162135435723513625647221356677777374157662243436323355415274314445243243456633556723665324665341156474732625314117475331136673171151454647577221272724226726336445612217261213333444257262725771563123133245511756664722235726114325722256741155636347652555466232733262266214171744131427366311425144374324735142564747776636172616355676473111267754764651667741515276345547675674273171166164144775521416366256511711726734451141734774643652524536542344112326423722325774347732776143456777642145416375643545136152437227314531361212117554461265541572434226355417727776446566234313657211147627633634577346263524113123341223315672252227746331731254617133364344472715621553757216566672242766446747421577164225765764271411344241174354274725535234756136164577621347666461335261667563562153234252151737264773171167436634146575623716735356656774747634232723514216113657535544142224741253544156767355242716532645351477743562461417333543425774441717615263531513447123454364637127722451724215562464643461165261363547553363142371775255454274323577564723427661162616354174436777666377752742147321366776431422512341335531755711136745721164335462515472577272415212775214546326477347637567121542142553331263744177154742143137454642176426632342457765262576554232552514371435762671521772666471565137457533223514665776164625164776745631353535124633631334743553541343462146767462146372616353721264622146635673227146247215611626372517573262515621656616567552573175145473754546624524462451642252676346754522314156436774252411517555362743275672555564173445437515235541162552737577327664527577334111217465672762623612465335462172224264754254356651216652412632154473217736363267272176346432657336557643562211222342277254441373367364533155217434654673237367615745331646367443121611144164265152576774642616132323447147665362653444737312335567133241127567155321734175441327222657763653751424531241774127152347346643231263745762163676674122165762276436723622132431312625234632263147632334441614135337154447766413367532376476114746743421437471731124254223134422426772135215422524152573115641723732236751513174472652363261363665271217362571352657717435464163514726645236374453564427276616266762667523443227476152162153612511717661326751621645755353545727127237262157252445354112465171213126745264222555423124273222233646653472734113754367127332665252146417123444752471513545135563717661664237735276367544441311511677666322325136174777534776756137137762233747647256243732527333457356411115173122745337612755413347127332241454557225315412243467413555662141526551212753217657621116715222365243464662223211174324215747276623253553164375515147551366415317735212532272744661556727557312375126472622137515773674553513743456437521634516375676353645243612455327523274745644573267615176343115151317124621461177171521355666465426527222451662571743111567546221773136375453643747452531616421531244174553147545612766256712175321132526143217661277215227447273576657663215275334455371354374543431527131562325673524651427774346522545723155754447736167257725771154556275112746752571426512272327715636356743642731122164415647741645513371756172313622263751146222172343432251472755173517635447747314657715254452273554641426522644342352177655175444141212775353116264564643562337754715215744255114552357526753757351111676223145433751732741336374475576427135577176173416533474133514355461341251253524517247553134572341474631257422763117754471751215275757114246456766675434543653414113223737774514563247733313743365521114174654334641753475612232733144545232765463661332712335531245713446746625114241331666351566251525422315125651726274742211136112753314731525636457263414511333437162755727423472417761543616162217476161243523665765141442457572631451576357647446164337466655753221372247225261271623773651466711242365327156377362772261436337454724456554475435624752725752127611355142622355141545151755177752211635216445351345242231157265377462113767526662477623131257776645156466451337676672215322423221135774531115766666116752315526522431135335225714624622752535427565777532465255557343557134665553453337517334723146524427276674331765145761562177742525435435177376773572652262177353136573313332322523117426537675277261421144317471123155132131641761142247677657151377214326414613626144233232241477412753525377571516222656172253215323714535425667522627537755466231431275646527471674656664423347312533326273142321616474237563435771224253457673754534341326771572734361737727235711556572413663257515772175731633777761341621247232142342145221422431554736154117223557664517762334531236144555516254243635544771543755573257731657375771554255321627316625737126157556733352215271341234746751667544441116337247214421114721271254633744616634764437447743263272775213574571176531415512731362552413664433454337561253456624773334634271756372442576755637447774561121216246314665672466323333773125347163135523273531574136536137665613316162521774264566452476564355626636177111726376254413262711513415415435437451375156466661751332164737513562623537577376464637145532623371464156126255726571415362454724164511313221133613755614252555264744176532634235543324732311746343754526713425312734437562756722326612613164636122555644742634177157242661453266445231635112531547563642177437464121213125212455325732243126156662612324244413245741254676524413615147665325652456413214256631211135115541236565445165514417522734444312344124661471342712755252636361515231637716253454653477673532613427412323251526225466565131332665536171526572523373252166221317772672764744326756273572324345346535144451214112641312633367225771625453614215571531125465376277253111311133774761273141512621747252323535126436556753343434631656211464365141126635272545221425337415734452465457177254166242775636322167446174224252652675776571443662727731442277455655656437513212414311556665634532411355345657117652627526412255437564221716737126227272733362234172614616411513436546153321535244426127771252616472471743215623475216275232414363433636151744213725555461742461644337256353674377754533621157254711645463153523412175567715623415411361677351623243722712525256721257247275466714315421662426312547563513251243763544544776641134774464623137427714561261266362163431232446472513362321536575675342475742623173432664137716617435715412774214667775412512514666467132331743522431312563745434362474541755327574745315723465735316174111634725511453145324211751551161365656441675322163575572651771736514461461313611361151437527642414264222364744715212465431534665423157425713524246425262234634477724756567232666622357564257737741346235251541433671757376413477643567215363435725113253223453446125236676141754655114327765232243767741565163542462713123555763371416565365641171313714272271541621667537223434466651321537625676176142264437217276237313464275174122231614745756663623263773524336563664361265745236656167632215254452211237125642527346324544361736267412324172363321343631267463313343676326464126254657666644315542233155734447364741741535366253576215177554413111215371247165446356767156527121252622736145612457356454246251466561175612513647615644371235465355475167347625716575244267127565424343276373264135551317413371134451112751266613361513663114226775171315444444174365543254577676417452236612413733626244615575547515631621263476151774466355243123726771226576474465243772626121422333466435275755463273474317363615265721651357227436716431477662517222477646551445446312551441621644223176755231776636175352434622233564563376516412413257324176232627466737612462624132273624441742612614667735236553673376143136331522371224731516215634452666621764135356152143665552326625416626323161775212512367522414165147173322312232513752725267516424335556731364536144437345337263635324321447123737412346212332614455227374277513564732762315417156711137561552122534633254735742543746625172425562264513225713377614617416751531756331762664224315675546444527615651661156511233622417454736731617776124765111323663621334146326236137537341413773265322745567523435522455627127355277413273255527372657333354222133173323641424555732775233764171511744447413272666275722222642713711365447157366175711142335537141216762771726527317325667543557667676176267252114357755123517467446356174222543172771612154232177735655461735455555557164411721624422352346114672467317147151144525753311122511766131144763217652376727143225423437443342573651721732736367743417364722171366571563176126122573423224535573564643253265761251634166633414172455114432232357453171763325644123734517643272246556555211175627214664667217334311277727131612634334612654777331567573615671263627322416217134122162463253272675636717727624235545773332753332735635736611344222623355663117312716571463527142445673352663623135775244526643176556124213476121631345121774314253275626367112264331234234676325645436456366615341655212762635422164133772762537615536725121553663415776214551541333126627715275655556476255233265616471471132626564334343165314166635116233424363137664174636335131733555726566212271672474231755157336152732753212273432245432157114133226424734264447754417725136652175157544363736735417471215173313127715434737734464333465314545257177743446541111545313754427246265252527374515572223537213337246155347367652522666241362634741567313343447523723656776173661146177435762154566754754773363476277343143351126735423123442771732766373732753755511113567761254563432726133531421643222237367645277673426171354441753176235122753133415225453726314634557463577173444255724435256742421576757167433162775337756663146216224143217517717433542447155777633356766731743616264347456366342516516512716217726464432357224476457221512442444413156216231771756772153217464235533454411472516477675327375612515143623664745724713536465467537355631327734536136523573432425553446577573256772155445777153641215765136353362671344735253456571416322161317677735531257534415655517126257256352736753136417276746761517526553757564761742661566464655737676374253163156245425365162576566426145553761624571331137316376257264642242444124247263124144671621415643176511226154457155654145277164374246372276753772457274724734553271741162167477646757562355644365561517116155153161737265652311757141252757676274367226124345443467414713772521251272113441276545626317521163171221532716227714667531513621222254327637463463253245316617723241673566635114531244117167171525675164261611273411212211131372763673421472731371423745167117326627172353545676147434234255321272233467644434341415232561222343665324212764522554411556511155343275727136671167527675566674342751544566457655647621477457124321316174632737523515565534546272432231735131273565344237625444617144347164324713647363355123624721456575226637214343671524725521767546462354315132534677311274262247216444124727373673735744574131743611422135266556151666437142347541713326135624631127662717233127322744641443746141737331255756122216664632225141244377424123724336136511644352575235171612324747662434621467536442162263415712171354147216151126336554134747256325722743662765632517122617544576372676364654447521433125712562431531461255623566142345256336672645125242134524422666515347227415247663177552335524464131243115631611327316541312651374412733415616642773546511165334766162444334127317665655665427127135213535351423472176756427442356277563331373644163152634761235166146562631235635244346736163162115655731265141665331343163472673461274433147237663117447776176546667343641775674276352342262256135271476567357711646164324532346257336315444345532532163555112637573334212556423567616165765262342716336624556746647556265124441643416467746753656535465316144247521451565363747733673343241564645114253722326332612245473452245157465177323256447764624171436343223723155413347355231532714632253666374155312457262336547323451141617414256423431665641663241346346417226777232322117367514742575547653452376642263112163561642526514151411216524135354722127372143552522153736443277673276245643317472727313266476576727743421743723215247655426365271164537635146477134213645414235355721124521577522334512463226654361562144334325651333671114611347527645311742647673253475766234216263634721274365714253153666317235522223254714675322636236167774656772427137427242345357276267665574747654626644211647766726725415213311763767472476316317213164626256465664723264135676727236731566336234526256651331334366263342275727473421275442515144163321652365324566576443623531247413677135561246137775357733157731212334774227244233672676173115347463172525641264644133744364217247461743426644232745332772412527566553135612446642476777147413472347763644121715255155162124464621626314626716635442261513253545741661363173161636265346673161765143272522247234143511377126124531241534651175412762732145666352476752357557227437744241736674154141377255367433526143347231645352512441317243515532157213276635215563514442132676724745264167671546111564677251164651376214274367272351151175324672743575215645775334451561413113371651511316717633217456626137566665747261162746376434216132112111714623743252721565315332653163365161456113275363735667164413132541627432753672316115114665367655757123431612754774576274723712516537262344553252533563155557637414533766445664257525233727673754431637575474221113621322323631463557546217523743446461733225364741715646732236462342335757516124425223116421271534177776647662324256466332451645244343241221454172751674753236654322635141127536633723531753632373576314435371374615361466743213573524276747267657515754662123563256576412522526571476164215665213163644117361351322131662357171376673415335562524747125353364533433164521367552257271137477154426736427456434763673217367266547534415453426734316626755674651635215144377312154636634535114371121736356326433127724461212533646731577421475726111566717274561464444417456151262241241261547617353725662517536744177317575455423135514776162657377321377756612224116515423712653515745132134357777652424115412673417313427255265353535157722211553573156174722451733557541773247431155664267545532726114374522655663542377355121334344774465554352727141215711253517221657546173366414534446454126247335472212652433117653421234151114645777356531243227572725423535323733161643767323373675547224756263572656255316647337773116514432711176725546442466466171753435627137131516363632571512617152643657662743712216456647137146344621617115575135614471474521544146331452143745535226465141125531454532646233717642411426437212451123311334635733214356212143471623265421714617237675517125475567116541642334357447221334163643654637735352627754716341641335534111323252553442253276463437212634666223362737254665524267227414172723461565422272764514436476126311651147623244544114651421432363561676671316753375163146211347636126115247246466376522434661764515517345351231252244317176276656531676443677714121673513543421415575551731133656136327674246311171645752154532346211311625667777264161317753311332462465253263122431761676347563623262617436751423423613557425121331532576523555217511155721623166143414275543374344562464567175112455174652211646325664243262764341751446567764617316733252551175313457246334726141754271545566427655711544356454451711256744776675316453131766324534542437227121661537142151713556243476422423522664672126337676522773636217463753542755727777651251454366445644211416271371256414652411255751373444364523542412271332567276425172441213677741361536174133676477754166346353423675414127517567566264232267642132573216361247316145661177174476557277147263235144643754163423421331454464116734427726434111352426573252574466241343127627756122672336615365372437141144133154255427271136671234157355771276725576527633532546263312121251154623615572154441257522724141366662343122331775124176211726245743277512136235747461322415231136365357664471315244415657314511356214363643175633364262234524563523343647246733252762224565355546263646663677124424536326244631551135735424346171665527444241325432144777343363552334371126157733256747775334611145565677525527234232132756457655345234277751164671724312267244611333753147166655661312531454255211525123132727615647223261676426617522735247337234157565656432232374671435471515322262141615237371162126676157511141345447154213332545444253144361416352377721464541325134457216267737257343411165337743512634562574533452623132664772253536215474257534627224412212446613545415133126611634316536674676363723547251742136467343333733761264642567764311157724457764353512267567467227236337715173431173233371451362335152242642326527752413651611133657275473645521436671356347454652712643247112157156274137116515115472635747365273233657761552364735321735764515131526416565124427153366765547353345375364167543541277775553572145516335734612366416316274654751641674411112232163134743342751134235676116333453765553227324431153652454417666355144456421264373661246617715634351117661777537727254154256642416511517617663776724421257754315267447341431641532216433341772522457424651754121432314631741213452314113111524657117574677131367632442753734313334473173175345232475664277742365745356775623556716616235321572365134633536215726777533356535663566163556461152161734372345724474412756725745143256715131744315746255247734441175667414677251655614337334612713661543224152257131674627412613173366712437664671171552633734456174175252147641747736212634472273774631756732736141753257711242531135322126333346435162164111276411252475327554516236535355574335554623466553126152146513462126774477745624446364462342672214724453567253736654323551131442164523172121333317643331445523721473713336371622126363321772375455747273143335547576131141471236734754377634412471314437666723626335674751521672142514514676177124523121313514621172653243162265546763113555256456544162411737513511232521345273151661142245335527742225341771417576523657573264352613341457521472355652633251717277635663656726364153235554656675761451745641576313536414112763552637134622672523217762512112567654757453642135356365535756225373612656145447216254737624455216611115121576637456151134412343324334747326121277774117561624257573217243165314224636615177525574137153571232653447347156132512336255526652257624551666562154476334215114232324712172752266527553274114531662364673772127112767317121574773232721222343445653734736126625251453666743471176461175717562421455135741212322261471271151413462266173213546665745155374445134254163515152751656563223671413131446711425723211761414173143356523434475311633151132432156324367633374225421626131475512554213216446772533745757721613167421141616516173477265377562711762267461353152522541311457661756316244472621163357571656635644664422261363462736716775662456146612727265445632633533222477414375471521375251533226452632764533374455624353536742126421511264525373256614357165316341531651342172517472226157671535577766723142313452565512563655325424427643114452731521777254121673346342644323526661771121523613251724371644225175114215261653272373723111432233654375234423742172464175147464761422244617274423553273711156546527735525446111577137531646614475562354227732712736712165757336216333646742243545445645554476426461146653717364227114651233275743251737337275622732521753264167514717644775667773245343662371361153757541431337655571772221357454162747273346334715216337565534333541467715742452223257235722444132177212716165426744761463747343663614176124757544352422725163351641462273761756414656151757214412641151467565437125634723655425572721767136711713476171576231712214413317221413753673142776177237767432354424633323731227127763152125353635431663166211124233442753412166631727356167213526263457737247734237264212243525445773777133146653611222545221764464176711434213413645211734134512313224351111353646467663266556121444172272431736565653273161113267576127453555345722443752252517561572541117743456723437556746225275561613611365161424412326231741631131413442462524266327252257443455627374432615425357376623757425321347714374757515544336743775636664674325132723567234737437334312713456251552132155461444466127432677414662166373243216666662624213264553173633341562367156252762212771317672346316654563527637251467431422745716575355646622747126161333541331311156542544732135743177553525757275151444241453257561535117716126535772536564112271253165176777654444626575327547564274613413511256741631554637577336726411151227723227414177261124726776776221144565646346355467162163162125141417364321255735754273473775511662732355514416115634214614365555167335176547361154515175644523331363173741717124576226772455617737446153153755544576317655356452327134432151546315335223151726152265531147223754516342647143757377154371214522273236423427646666765415647212322746671244357257255727473423756153744172637565522314265526115134527241524414365415234616631554137164347727355727654345242417224242766751725527675242775247262526726625637421512226425243272454357343136711751314146763273551176232536336435656263162423767111625271143715564424724365573673776416633134113554247766455145455437312624335713441337376174751414555631473165522575634455754114573467626345711277654411325647436674567515216236233675731434367267756136747773637227113147477535434356344434726747161466445322165423451123526413511661425356565447615627372142525623664323371735135727746163446127417252412516331122137137574426561476747231164276521635616367235326213346356176762245737666713535367723761671676134647646537274643555264354545551156132725635333711427265541416624431622316152443515435223363246672765226234371643526347576233213312734757326524717555625651163425731426362345735622316263313666461524554711514317552371722317256441226521671422416645641173732776727613662145316373261371614114616666267514436466714135226627427217337217544413214727643545417431455475353724455761155331112145323753622235762662677333543661514122513645345623273246622321563115257644511312623341222463633153672666356416712446462631223637337437456316327454412575527223347522457422254121653733516547165136215347674225373615367144253677531356246667531731651775313712775143767657723135313423154546755661277364266511453614243721535415534463223274341532366677763523217767312633267254412373372665376415447523743777352613242431362222775151465754713214431714133277466315453342153365137132636365235276644162366736533645732662315224212631161174641325712377441274724211316526122244755316253313115435567433455612411341167532232615564647275776337354563556661243731424555354271335715472251416622174642416125252762621147112713212616156773611126472476621711443734743142333444374555436441524247745251314651412266643617663416474131252757222331234626614256217532761165171245457252733561414456645664574721567674711467631217264763443245224375176245331363371777355762423252652617333562722233162761133341637121165444646272622217214551745767216643347271472613745332537346357235571622663154461134411535473311167351657175543655425572242673613533611637314712555526652233614276471555626427715656455617262512651747532575465254224624733114463677643214654511224615371623463153151512171451613464224427166365613653173157352611433164114643435714433751125276351662462166531343616215326157115373452651434561152773445244265616343541614374471512245173522314142515667426167357564414166336654736524561576433473154554426413125617467446473152467136511451764654723671647155424541422466664362155545542567332727252327226754352137675253217521436572615522357674553272634677744733135576144224513243435225123427742533547352753266642455276641556721475345643163156315145123177173133776654173317352155757371311535225224524766723242147171321313226742425224125543747756171252664671752575226164462371213337436117125415126136466135256422455476423353775772652455264145374154126344543444631117527243774421133761454132526726612736437172225614753455647433434637564515746527234474361344677363253744437323336116644671362311747433716152674426214764132252457423734742133615635235537165233216522317533233616432126225651262153325267674275752353214772122237671327471722636775315174226553433566635147234233664576337374651127723631664326627367223253731144746433523164156125147464767175412455647256664575322361161762643772676634514274137265475615162573153646421757564513363154664153452157713127276657226644434742477625626232253147262255527314555547332244473616735243134266744431564612462753745573216635622276445137317514712653274767552162737644774646356634254652637157442437731524362165614271464412355622736777547765646276356721166751344155231121715634661674672617635453366471571265763243633115212157476346327555465721314726537155715643576565423114344157733732532425175743425146664471474777263335155743425232211741172572617264711675257713145331542623715133644744553664217732277572173526274567456644465372523462672263114614542346176635716366666175326177444627427423134154752553224224262643626757372711375653174636356543145734663264333121433136164641256162567117643255431734652356514323571413577724666764362527511233523774345357135125564156726253534233777444341253742441253161445761461424252317673246363613651466535617426556647263113574771141714514566454431457151451257464476151537414151125235312327357126633716747454566422242564532434336621626573253734362632325561124117362153467774522775146616737452572116355456727311134125631716256477224161664716122624321511337167123431531333154331162242466515511763147263417253262425755535377376714133474322642173661354214244155461121663746157547614336763417247461547145754132722556354734152721265113712515627176143536235446557467771143636645452135762535423363453467163641526742647713564214543123141546632525723115373114462165313467342435436731467712551761612151115461234231471412767765246464575445561323454424613622336376755622362325662445737412656617514365625251656213727672266157732661553261247271664563711627743222266725154773253641133325313644763756664274632115331663525222527236116535121243175175561372564617427374226332553374752713151643614645256113477127424636254341633327756671247252225721535262455617716575632746373174147776344234135715511725744265613513547364617572442545353772652144522467157741176443271617775313755134231146165133454435345266474317633157776472136563427146776547524131127176221277542555566552634241264275727231225412363357544361517237642756711462721247334772143267154352164232433661614223531241257616224547723471573214667214233123636324316665654216776627333656342214646425372132123725661346274324717761412735341642431565476731443441612716634637262241112716152336417722714371226543653755764226157261553373335273462176776327226155324644376225576715714556662416352737361223273774465254133214242345415436655256635552156677324567421275252617674362617567622261333452161462552121271366342662736273522761145457411436463753155676251447563421352436316775213113741716174545514151171711533154442444243717611435457657634351725272537222123357224172276624735564736162213632544264324277613461175173434127215624376727711251477317654455467352622724616745124155153517467316417771473371112527334726156777651642121452574757124616513424472677112251537244255647411164524614716144221156575361332452723515317234757174744412536713115577322236643542247511153164476355471725611166412563512111661426377473263313264543225445425571547517735467715462173647522273266337244112114762173557521152377234362712224622233427563771131253712213534235541122262471574522224434617333216222642212261754265532223257462424611121267454174657212646726162663766224171612321241435436256344744557177362523647714556514352146513533561754347442727777445552435772462667225151454455521376552453522611623342621255731262257314651151243611172137724743157132627636754345445667653466675627113166174431276764163322223215326546445121132141551173435757512366133754271475552673337135276346361667316447235516142155666534453641562536552433257464354247625172362555424677126174633451432352477665431121333153655324477525767155731143277525173736375266165113715732442323233626457115635537727633277343666351316321233675521675315453751617651673725225176367732567765257255245547463363221233473512336344772645723243475627361633776723433621332756425221357534743545211473536744777622656723331624446517264757567442537433165167624674623322267345522574174622614375171433563626512653374766151621421454143455326625145454272364436515122467222174621357676134571452164432364676267415317233514752271745275764613644575421112611121114745443235422272654165345341563267134457223432637436174631717336342116121364667723533136221255211312325464164157333756671736457611154713422137773377361364241123341732375522422163112241565771335432772644726336541654134744277654243531144166742747554161571675413166212612625123162517576766531147151352634545755246225125771114723161345712637453366271617712413143167772154232651562762653236632151251467222411577667265517364412637766717352321427335117257637122122113251474455513324251344255566171425566144614157514737455245256417367314616434426221367115642523643675376252623435664766562133531121551475677153742441331435217222311451241165462636752746461572154213327346115371277514462453757512735772613442573554313461167237444243435672361537252637657772757374757447665151117264261152361312716764654462662521131345514546747746334773154445651616457144151244777661316662347432477425142255764144267165312465536561475534222737556575246577262151311263526733712751564455475623755264636642132421577355124517225645337325447173144111624475327214656772565665263573764325177212571472557346155336735471327332673653231264173746543422544411761356772121642246724475742522512646547742135452365724537772253347423337444371641343125115343616541274351112165332634455212573467627355355575431615364175345624675624462242774276124444272763453346725132443173776443152461626353344762325635135712227556557526153561624576222133244233712165172341544113746342577312723342753327574114512455544576771444733374353755347414377151652735522752517275643523354461556761533741223244721313652221366174257545766373776127415646766675323417227266556362323727726617353724646655532571733345337331377661466254741121325671445567737636165613417432654343321167173155763544215257436253526635544154652347167576652667342134711527115353351341326525552765357531543371535671734676555143712665133472456346342143137554256344251421766513561114311265723551276332421313562572324554446113242775251371651147473757413425633243751221226433463672753315117434143355416341621217376647467544247574335262454515657633571555373253716546714565363246526673544151363247141517355662543434777516555262275267324714261634435416473123334162214625354446123563424145377627747533361124747325777374734225232216656652466327111751564116731363157656124666767176255565461511235222145533532543457247616161214136434111374757226332232142362665632244214711633465612226366545441575227527613362263476324111745715647642622262477646472272266172576462755274453431417727357251442421616347116551623625744172236471552525635413675261765365611451646721525255655573573342733212366151333762556336126444657217537355511727176141752727375326412437222223344251456661731664524752173236672331376265361456232741151575464726755776544573437534732722451163167771554236671663257552626746345345523256756136564431514521465222765423247254732515757352427262553224542677312552351416651716265417265455416664231273162353311752111657411267514734253322542757262456311447511225534265353647776233174157232453357767624121122634345162214363711126772413626723546256361137442453463635326122377324353477355423772455117122262133652332456222631715617532157374773235472325472412364356575634335567237572443524764322372756513261314464531174572144474772553712144573365465735253733423511272427717236775563427723355635756337222355164654127231666343251214337465165663314231327265572624356314224623153677731757441733377322745336745444351545422525165116324767675431175243135411217622654353352725245272516446557553141466734236164674155723662757253322225651657336144746226423447713226723227164161664616562727127553355676726335334716774276222176535235226753577317121457473522366121642641232163274343472743212724211576523742372146375663124426151321374777137433273153374146154126346646651715234533172626634346114761765157514361671774657475315725713631672331411521115256617473213615766233375446577315176257561141741754314751737772512537516634141237661375571671163345227174527643532573442533632156617731372365732121456731325524324426566725611233371375426212644427476317117323663612565327615347376231152274654156425466367134155112237447246555431261137242751551673752665633417436552576673752253647746632374337215465355763322715713616145562423262221631463553445725642512663332545747715254531323221463562235412377377236621744365435715237771232163215771266525451352765176232452663472522413162211321237154411567136312642352573644661766336515422462746365444741527537473354237315612432315771155232273447264224614261311222436253374751167412213743164227453271641335345417632225525246214534622755613643535151633457271765447545446723317115271557667165632617565356711632563632631737524724164531523615774457753747113424132476641233142421517213135367174453241255561133224237552321421156572621371414135542426661742141127322553533256123375264361676672733122375632645176736554645635132433673516163713615563267753656722423674672163365233563561245151413614263473133546225673631535665366616365562257713464146221717636427255735344354533251774275252124251765623257734343452762511734342551333567653321556765347442777344411757755417565363111764364322663762766537575333736744473125224624723615555312616473254466321713316676554215417361575355277271622422361623563423513437241167242514743135314765245612626745172453157453215524441132424232631275572441153645272425557264376527377653162456265446215345614566436525133311321174126554244733776551464625757267672461774516176763222624322441332667671452273213625771532766232411312547777227471312365675522774234422412344425557616566451561214665127364136614515475444513735523436366112773465244712473166642126156676166534352162241547525737534533532316143353566552634437324166552124631465655442135561542252127431724164642326641521565113435461573312117353146317477212465335414155267325541463443654733577347146775627363543126475211677535652542344274761373253775266352157334567311611741466166626554752724373434635133172111773757546741472764466362513723133531525512653761531466751363676253445116474713256226224353633563136651522332657513435262567237452431524146335416651471656673552126217515451213771241245135412515345417254375565672636441212574241111237766446346521475517177534545661751535472364433315325267544334522617467626472733655473561333776261236231167463751522177122513342576331337417715257376411662227576331575645635464314344443576647413473257734672343767445724777752321636632223447731774416227225457444527651316312323674616631415363634722763715157557232135216154357143352744463557574627537356113226654142512757747521665733554777654451633242135127317272451257145614177314531253313233577635552344654726473437651214563557334671276772531715174225574252226676737727374514225556327746377167163774725466221675631646565514514123626466311511464461347131412225617456417452511367525547622233615663535513675134276752145257742421175565265672431427745463557732243733642443525762755535124131354761345573264152361145757363321116353724353752211436125153326447464677434633154327333742473257217676742445763415531746177524644544531714473754521725645617215552246336176413756257754536656425651615434464773522737423217163762142516155654237433475126234433641221135534357432713524431215572514721614332276576151534745544726322412135366147154231646412114736217323243166114421624465515372324355612121721574655315776646271527211532545724313235746632562634766731325217751265771675143347135641114724613133542622446674677564614376177374547123456457756746437266166136422644313162271214147165175772554657372721237247765665664454543341461572715643741547227166552175245335626324737124156766633254171545421362166161466474251676276454236274513512661537246546356335662412262632732114242215744767656737166452655766623133751457546453463337625435226633247325312357527752135761523416733675525662645752264164237511514775657455752551716416233224365765552531345622622673427141477227766343316161264543225323373424523547772727247633246161331512364641741152276173516426552744213667764113423433614556544137552751157671143427177466342656125233347431444115716155122427333167323456533354246765661722155474426775767335743652447443752532265175514636434731174241647113242742522215252555675442525541164261553175722172772435621464464134271511323643143216771747427232553625167454157412311475356371645141657625324364414655313253431345444535367636377756527145521645511164614577431537512426311374756364156445422516456532553572317147655511464534312354531722354471366731266553323462236431666336455367327275537115332275264231176535666626512623457661527232243136726611561153527616657674232434445226315524715176153244556633476321152745346165764411157753422344563177644552451122131247511155635144731516653165312437311426373716523575573173633117147113153454436625574775271612525647354522356151737437256347433227365731166174166232247115151314432325344354763617225235744115452525443771377772624446244545524715442753124124225552576264736427275572724436167645235255551524554325616263261366112627416667244767562411621167672764146625751551527671154172152361766567255444717776175514732371361151217144654545465247653272442656616734313156626452447166333512513515135553346274451461423774345625341216662613347426461162415272145366164355513655614613165725132662661236127375166441761553475654233467271331737614114261431327754414343576773674415724277323331772545215775465747431251223666765241753652522215161317342737636342456734215437146311245452535462651444265131255775133777154613177254674326434235151551677361771626427751734557376454633772163365241246252727156635222612221457363377245447445447172364576653773334452125153617737267646534125462226341146441435564451433256735146172117154331716445521147732557457771717552653631473526412761745645157735313675747311253562566463367474125415321352472751247716345575117752424552211377434525472243753651233617731262234717446773262661713375311427643434312311746325326756426652555722543614672523356254135714152763247522311473123757372163571677224315447526332527566775246447463113651632665731177717644521457661246343421214336237214165143231266213464677442254316726532255413344623373256565326121665713654277671222546416241252352163447271267323661542466575742351735155165236515661136617423641733547367723775463667561532737224671731642232717366346312624747347533536753253111144716211775631625377376524144142644564653457651322452324721544741411777445424666733376672645451532523566341121134454244323261353647127773275221655472135365412777622532142674772451655423254366257442657147541625122654273633561534132157233226137426245443621775411726641373377331246123325426267352356326757722147153414255774743261234132734351465646364265662121334157444712742645614323111323466113241652157345125556777222662572236213522466162756567621271352664625277536466554542443554722121413343437266243531175553156472634271534563371764274753471337524245427165435523253652211455436244675724456342767466511755421456757542117144344312163151725262167143264362126457675324527246456462127656761737616551224242716566171167766162164132353677171167767276176114433136274555574614772733644665421734664443122623224526224512345431136564716371534317223673231775117167451412664425346547253343764762647111217642566552411744444743246257311314554523773211745342565424565526373666276617773521671553321164625323243723143315416573125335626561115427623255735615321754456436447272274632435226142157715761524554175467622455462527411276452147547376261546276547527656615721774745654131751636671677651363574317165672717173664164141111577221331112472312713421135356435461514534665237431774116633577446517264764417554554354147527674556664254634721316135552645625362152671276577742745533711462333541631752731645142614226354571265362377664651574766517346127245775244223622171667441515421545444171523224323573547637412556214624716327763443721714664231163555267112227555147242637364562151676521742121635752146265545753253735743354351355462312267775313626333671336464333574634723555731714474647576133413215671455163364743426477423673325215342261431736477456422711453165531141323536376334316611656365157314337722651625366257255216724144611522621114533567616427222637422464755255542121212755117213245424122647515126151447152112526351673166237653777135743143335354544763617715375477114423165633471111511471242772723465774466127247411461615215477646556225241365225464666476256234221132656775547417277741565322743157356266133175115172251114222621666524426137757457775217642724123764346362266345435357253465116576134173422465222151115354274145162511153232154363373242752576216356555117324154324637146415335174143553416114545232356116753652276654335146633357515537325713144722444252146574465331274664371113257715312252621565725324145356564574436655151246737571376224114564337126534762676655626532343632365477374162352237741725243537767631677376436751664166714461476363363413467256344153154423663612151511266175632457676231636211335517525535333567466473475317552334315262714273331212552414462725356766271727254374652734463764513423353444372743427622362561343626154522251444727771321611734436353725253331132132375466463145163576313655771374534473453757576245171375774235522361627335315332242271111434326545747673435252366516711163534412316477733567621672673613276756371147144432514513663454674462413436554216471742352616375755327573542264133237565656427324156137514633245562631416361214621634576271625413667747666721513515356217262132422415515427461151526536465677253315265747677715211253733633747211731634635636556565261563151112325377173555334212642617326441672342441727554275461663716753753377655756734464223411723612226557535242255614345517613273516373347113321172536427521731413452627627262313567442513627777335536522541713361344516772673737612575141152311544316425515211173352156365535613444277161712223457655615471353637461377467772241236137776225412557617556656164221144233245726274355233117127541555211435227251576232453556524612422575332446417343627375157542174454227353235372563513231325435164625544271721267642375437273723474372721122342246565331352665126565657772327453332255413572315163662771223171423531413763225623223312425644177462623132444237551212455242563423716431716323311422761624114545167632122765426471667652463141757643256455217156255254534751746734351225757755774632475773216122451573417426235717151762274225553633375246771663717176437751546222662377316415716136162771764777156427342122722636535145153543662425351574775362246753571154543775543724435263511317566615461662557243576225666727717517457446723641237143642635637621756733725423445453746333137113121724327252427266473326731643255367723131412321177542335522741776671325355577637773147712226316226447264755137741454455677433364237357155652766733312261245573127245243741331145515624141611432357275512655751541444157252315654664444643452535662217336657455734412376534617417631775564531345116356331723774751262647224351163631454666466165273477522157367642621436365164625255127345373351554527445165656465111255714342521262247166644625445454254611162212547655633324177746464156275527175762546772511675444262771663773412656566737721655313425615115546743632626637126767322123644412216512774767712777623244527373414375515275216575571225777727371731611522352232612134634737766172254336674117411624217672672611736572461163744126656536136311423363632132446161655532355375547116462775243151235112256725463573452552466614137641765551436777355542772774377254362257224225252136437536357316654761124556314627454346365217774574625315246621676244262624534375677531254246236253562165457171771754772326331357536146675625715722512754621156732745736521434145426724417634537635547414647264627723463346632724411562256264777672132567363566326416633653343443655735764353176147743337775331616422331765315223126462461314315251414512333155477437615747461227477742276625464321222126767221161266417271631464526141631553172121153712116246531435531616316531736347651576352425217312334226323346334414342526341471635257212637663433761343267247323157172455434667376534154267122547567626553253322366674213336673771773552177321641541263627471177277665274237436672637313264373412311121655621472674725353613244616731315276357556151715317645426231353713731776623735656643316322541751464555351753551436777542711716245524462451746273262257457667475361726275311121451677654634773531634543414526764253241724324576762446771462352771314417752531441624614152417577642414422715252243644352623774767242514614432647135673155456266373565265737235351241457335243214453262675121556762147774627247576225425331425316422533115241332264736662733664447613135651725233546435522271745626241737231644331264156367354147764277213476132251566515554262171521451712715133322174753473512654733223335132563114472141322521215521163677757467131346467641163546675155164243266313153256456734613432252566216757465622657663453116345533545353312174273351536131764446222766321621457676142665764441363662435636665664662752552326456156421174174563351657145271247754516727536216553632746476613512272275162612557153441327221613743254162263541555123256262452766223722241434413424143763232427352654211244724467164413725161127216736754557315236766361217422553447354122764617576446656521765442317713322672654627576567657434654766317516115577657435514557356754525477477267144217162451577474267147711646763375574651642623431435326432427761532331326627263326162635271376553775241732161423323525456417365676514511726257473766524566435315166447551467541136722511353274613561645125172116121362426747437727275616426747551611152747723134144746611575562753162466361775412176671147537235654114653143674123712721113127776416115331622334625231431144134715616362555721422244311515122622514543112524556113644716532633275653373556243255431223116272621517741425242656433666367227321572676631565673647236164171732122472376456255652675414224227441622142171726523773544155577645736253473466447647214632522476373132671256124127242535177357371533614122744465472764575532553646346652247525556646437174453147665663317262137135667717365562651457677716233235633625763551637164164265171333125421316664167776515235744117522374526515124234216141556156241477151133645352162617254773626666713215673332642742156455657556346767647274351465662541335372245155132142517667447724766427744661374422613711656642452235322677737573163454552557225357772371213364662231627276227655756275336775453616111731643631545356222722567162163275453157224162674216566674724334172577513322421253722612313746377657532264337544146337562167626613677115651535253216376475377371661672461444372513442213154213272453632676345526264425733354673141433624451433253735632267661174347742577653112474367676575715432445626673314555214374155655522656547441171457372632347745616215752135136314345531765773653674372524437361726471676377665345617271544673115755145114164727621531725514136634547257767462443535721411225121466414423561735422315365526327571341625363476331472121673646716754255675256123152475675262153761316217145646165334715533751341512322525273123665361753251425466747213134457635674661127372752746177313757754434112325356564752651622226323766376631565445142331524756527216157753132775473736227615467512526414737136711375236316166147212164667612514755417331231145177326625775267566236362516524423455256147676754516536676561132571425243334132613656457325442632165721444747131517365337375477576367434141165337366133252611771531674311536371321233541643732126126751734663735251636633337643564453556146551276461464726613262737375313152272151217671672221433463324633144251273174364517753331753357755413633254522373271524722461465237523147532162413664367547716522514712175213455634474561452335575377477221576362742412566122573322472324474334541172262264444777247511262725312533151311755445372344564755527172477637735463232576255554446467541624737577723313231727455324421474116256261622345536475247772142463311221313637473252176276414753313446561154115344663574345154375752631756461225573263631545176663766253711244725234726773573564772616331546147773375364755324634136171246763763312141637463267663472626525123455562756726444423672174746642377765364377133566166465262156217226746466572752667647467675625646653633513721271375244133617315372656146541752772636252734675336625541534523734316233327721654447224377152355116133577471676243265625634262773677257131312245555441143453762453577414634757735473626275573151421571165573666545741757447754117277417167367335222211165262764675736755724646461613731446736537235122614222161252554722715572534447532253572537115677172761154611674733474666617367267565614375665277641321121166117265166427175735722154157265216125623575424311173327136756467372165444225746757311314322261131437115637343343314446171316432576517373246564235563472434477557542461114164417367527163434522565644155554335255337336613365654441246734577435251215176445233677734737416452277321142716532123735532513547771722135347214337722576756344443435742776727352255535334377743327123324225254572356122451464716731463125753323662474551727422424474177774347725165552744737261642461352776772521467665367315512667115326216461537417257111752357362123734614756131767671717336364516223673312235433434446561331773724225657172656331175655177311573234713714213745265642353424464726427732544752577374643274644355221323511277367211715336124451312335715136265227321255766524545112613526545361322331756622576227321774741466622756253166237241213323716266251366375673436554576247451461475643674363647616215722171257221725375634437312242755354362415577336122566627755442117656111662625521117662777434645633533532614467571577761744427223467743345124774154253347773124554461125626337155663136237432221567773465511425376521435512124273273542333476327173357247443163423177233572425444612636673213655166212463736414214511467727475324334613117262572242212214354217644435746154235452773234662315371744451456113561752365155426155253631767661257454614513256264112464463443671546331172437257657136675243523617533544111245124157736663136527672267561574417125731117443215376624662653435436242344327752512363653231513257265533274172352512116333523741171645174626153235535352743346455643363144651313757526612346215762431654353573312273773221232742176174641222542752261722136223534453131162446634154355561423676434141166222114613251131162572435133231172323175333545654133365212435454675116652136625431771621765642432243241465366133144126335722364412736175634637353666522335453125331247733417554244715352116421153271264536424231642576671543751462427264155571575145745231527777152271577366456264661514767777714233414343327156645627436426327143414231474571475367232114736754435742271552632361475625332247612425656135321566727413137364255421125122563542545516123142661532645556626314651332144561747724371766751671277324542117374417131126614165334255533153724554566561563174626443327545136524173152233552234711434417224177626335552136243553716361373123726741536632567754455374444757351265232135315223767531275573431646563717541272661535754533117314264565452511761244642326721651471167625275214321715336242221461576552463124655666423456662141132117247663242147123467457655767271235125443556661331366364763773217632466754753716145773373772324326566565153564477277537231373645624663312677337366352365426722623474734125261126153423265177352733326132547762571243561371337642174617275264555662241312546432742443563211775575713144421365561135474635736535436653214453122226167444356132665452714441152375374251515531126564664342447671432147231114217266656312656646122335361572323332226751356144757113733222445712124133151175572524727441616476512314623643423775417546636566557771573151433132673641543433311472551167234441737436472654214345623133765323536561323617341166767264463236611561733324457471466515255572373541635266625674643613341212351544721431434115572154527532766743555732174524375522165241347255642345565157677362611425553511217333123537632567657133511152373247662356331427526421712127461716615232766237371253353676635737631355554317431557115574561363347474163434577756661347126256614655463647236324173151262227112467225623545576377524754165276345471252445334256242636365175742473531675537356213367235756543724317471354412333663676314151664224274222673125323673543262442765314741227433276567244673231327162666712754474454411171523665765263265372152421252371343641341777426147454635654173231535753273244162727423211622146221727246454272515547167343556371474427475125476242262316564434514157227732572436744266756511372126732144235577374124733715135347354451214664724535341642354112147615126525237614432626754575711711614657473455737213711472172213573252331667364415726166377541211637752241277553454474435321532515622146267354623362724667742233716232151276762327433222335451142764112343242365441673127674712311133457613153617717423323125265471636737344524626767312725544315577373327611423211353656433174554514241133374736274552516736413275711735464171617374646542423142534646325124226356144717263576144442374215737665563274333622627364424756753742422732476157433471154662556154436633772717644113327736174121455457647251135656312414335741225652757166311767721252625513544432746156616116112347532474657314727725516521433566642171577631233224176767124412277427561543667222733541654215635576666742442454657125312634521277177664247576263315755351623643752652376367226451166713215572211516737776611656774565126676217367274375266455254644555436461427537367121157514271666432361343336465411417467111276142372436663532563545413525554452622165744436576254724417265723224444147414454312615446474277623466773153422152333211751571553212722327563177344656153233412134235667556156112671415132574176432311376315226526577474663364236476535566311162142122612347664634527476327536144356547664763447232271134117124452327427236414331657654475477254527564571551225272371652412547312477741726231761322326671145176336443655472671123364353461372246774451232422625244672351571635635273316461754571262421672164551367622671166555663145136434122157252453663431327644561425146454473141336513646643421664371346116313347331535532714263623657551313746613176542643461744341216346644644344111415653751475427475352145672224456244651611554524352476356511256163447652131524153312247322446256633711214477774236564536764622514216341777711434314676675356541262126336231374145544423163136166477424446417124677232657253773542674242213226615542736155455743243761113534326212315314751666272561712276542362633555163342153443544155741117374641457714223567733541255465426714153254515274112457514453325136545773545274775153725563725631526335773433233647454123445331423355156522154442516122567233375632556432546313564417765111457144322255552423163643553353411515346675353634344531276643225317745725664247774367521375727561475271171526526254337477263231411342451534316234771637756273444561736212553467166363351311545324331343637115135764323443521354726255431343266175436773345313114123676744463272645535173634335751331244674233411375724371634431664627371123465626337767764437626372443646325177732641756332325465641127651461455651767732374742626641636715754642641653273577152766152753461145333327731421437635532746475421355527634667123726473676637512546431524213225527356657553634721754246561713754623612567252663152477446667156641231421335635332511466446363161275357524476143324573431376614735574445116613355624371327222715674342754754373274525751172264154571715313144454156744764224722413574345662437754652361173514755336764563136144632771112363161725735523127734517627722367516722525266672664346347353572465466742471462561315233267641211661655234363551523457676663115163261673433112264531421317717427747131575776235677742214274347344351431141663454561772423246214743116122321676354355516135156544154767322422347175657652457334642352474556112222121775344311765332662356267413714715653373473146426563512663365656543273744361224112474773321727775335732462515126467167411523524257763342513334274312254537111537647313455717631261426162173266363213561271355374557466766226155467755116334175553533422444351131737637574214772344526772531733145122161511111446121631274361614527137212433677412676735475577351365326652132214565361747626665724465343657277647366473566545257625462141767155174165533471236222667265374213734442214465611522621641567122315771113662443525717173253374546236356745212463355266613244727743571475326464123751553277572465746126661427132426614224364644542354254235152425415147567353731267714347264327157563643571274223214757666421446426172363572124436735134176133115726264535746523525231641665167762711564272253435352435524444352644623453561243761234717463131416211546735251457573275164566737547125631346515555214622412216274277162245117675417113444765624445345572425474245367644233636472327116441121456314267715317256421532477572757617436537271227761243513473571651524571511632541665336676255244425216456453737126642532351215651571345214576471376641116226724775721743322264323121322145146745457653126544277511644761576463131217431325135211264672742517124236312553457277227621136426542265737374733763175277213155723233145775511116326136167575476633146747437531552566474464234121334232274157325575346114527222266111231757172562315135511633161613245334244533665571351445755145551315742435613364432676374111657711626151633273656236756471666567741567743374561473362341321367476664552111477536177223465515544534222332511555575511167642437274615151342526317257367453527646231146214365336254373357734631554552514142776533364612716311356744326632233216445327512432566573335131353575551314365421711751374117146547414644213157357346466217324211152557317615542617446376422243351626566561355537515454327433777253743722246131712457711165354472716427544341552717721726555225531562556214461552655657535461345325562523372461646445432471526351742233554122225261743212456225412535223626757676663324753514364531353656544524424765454645463247315712767442114514452756526243115676174131353133472617563476717571327734273475146237325555466437461575224554462325247615453437317556311167425656512575354727747636567565641337217577344736634131617575452625547526552356142645646525473664432424463621546734527413253542315451227472667463755716345621163621752722271257555357323126324527714117441466544372244656511173165776743123677431754443314434754444341762263135124657212655454712356545763376121517531136674265334311716447351332315512371637574124225262111243374256416511671273736644755163534163733576765216412366163673246665157531447261732267777467124113621615652577714133243122224524117271657146247553767311524376117126225122157724334364347117711123746662276177633363231141142255652541651471564123337343557775463637726276345767313367636535315711123633561367422647622516557267462165444473436622526111757675755153627366743526117711777666573372673643636171611773113722712333532125312223323534236431741275657753613236577153666543747177664773373627666675265141546656744354773475453442162616172761656323723453131565114276276574561433145374726115627457361141431664367731434445137175235341323412132135277735552471315731273543157263122216753132354767716254662622134446443667315775775733422714226674431237161767461174346647272162644751776775134255521376325544737536545456351167552722564452254341124771547751736132311756275622144544721726222735266265214617113571373515437632551417242632643224364634466363542722645721325747375671431461646747344157311176227726252221316124147465516525531453362513745656273352724516363527155246644333362627133514352635634561555221447733745326655247645223362124251355652424311126122744473625333461147311753175621225555246672342466517676216111133522446346662141722713735536743424562536326623115226612375362545315577421323625456346617535123644334466432124663437427474375663415745721143522776651721361157311276662116452763667163112317251462462662631737335335755217155325453553137242276133531352477222677366573526156163357416745667767115775267266275532663461357267371172727156776562741427546575534655751775665543141273261151525324132132611475711131451465531472724231333472274216454523267347531345317541151512576342562525417655476463622714173121276362234121762643234525244546677635251653762165422163516374353256763252442777641151452472131457355674243343446645723263576745674574212467633611424632212275756336741217174566747332564173611554441573523172676542111431112267745214476126217273515567771231224735576377332461633421331543566262132763135265361523765132522341665163367276746737436133414542727437175117114727752665337113216353372213234625534732565466127756215427752535411774263622534632454236145427371561117572765441777434357722741122242333521475566621267361656161226451734113762755213142131141262741135445744243754357473511536132345723527353651315465737713737353266657514162323251155776312231667445426245561726126525455612761745521544414576521364132723132236621775555326177327742235531254757267634566576631645161654663372411314163153737224133221517257412542361676272324637343324453434521751147771334727164317155327773177225325351754652223122654754365417133677764353514236414222741573626176215643334656626341645726471212743531354661444517665566436551164351476154347612777457512576676443523321664755365242114463454227562725723421247774136664233564634126531213331333755634361636431744626151374647154547376373236242744642173467464252372231554421614417527177747565615242211642743573565674617767567473615613727371557457131141116146531422724763152116223247342355141213416276613724736362435554471622372313164376713643126675455637777221531262173551762674541335234177352562611356466767334457214633651141321557527415351716136532721234277446521472236431444427621745565531374533666633667321314427277742112666265151431474536267226215337616444242326356742552524535461353226634276134731127471764623651213116527432136251111327171377421731613546153777121263262333574666751335343543556775323665135615513655413666245744667166173655445724664162177515415333134532276772461176527471131574177552762663141252123762216565216154464744357365577117437227737646224511336265756751615646541636557241365214721617712515362555333441467221613115215356215553336764743675176516226764726675247137443143562433346256761541365312255663251523161177775743271742261767375361776716716624144251561666617456446457261154571235314563355324171736755152642664425264622453174276775523777275756575261337736546555241532461177146775141755622467323467627137755644457656347617541227373216215773347446364444432553514144765555123166135563226514275612427275111337343121454325745626772112614656614126253626532315215516671367267571527122674235157732722151711767233344543476314427512717227226343561254614656311352653675727653233361763542512657136517312377733253461155225512516477421651553211561575327271552313354442627357427576341451536161336663256313255236162321474272225134452274631364373526555175431133511131514763413754643562235441633755136624276515161441763531724231745641467237156133222675611434531435473426434356672273774246533665335511545263763372511125167457312173357767276546117231751127761312636646676453454317526627727167354241131116345117161163256165123641164275142642762767426225647335343754477775365455426447245261125524164273721467232177134764766531261577212361415716121416235711131212232471652463366357362163316331454723721377527454523723444416454157452611673632313715253714552266245345425671143544363655334552577243175766212555114512235524164127341237141336341611245136436242215342357473447422456361245163213146415456722665143762126534265513544312213372275475627613422372547371521167317361763145416647225156231346371426634232773766721526341575435517363727327636421614532612455345375671633615667757334526174527556447433625474573536317131514662426653144724364751573526616366447425643445214672652235726764531664451625436227424751564362154342611113557473345732221551656473774774573532167573725263262123423734513766365445747656174327552255546144714657465444365736724233717524326673752417246642543375766641463254652134247134311557447333513122616733367472234423566433113515617674142122334166335211531173653754367572746545472232274415614171447517724677441673243774565175242235246537675165311771457271115342775767767567237421566625647314575314322362225357437313176737511352773341573322265226527334426453554117357623733564536473145714263773622723417657233274511322131332535136567446472122514755252415771574344321372414574371737167776147415157271542132562755674765771653567517554777366553254752453457726677756557475255613271547176117117216265225643544765251262172714135143566464641436255273374615331136414343641614632363623225741165725553231231525153446177574713424373717733214733376277256651123663364251613216545574513511634223552217362623477267732313415137425655513166435463457622152675636425215614446314763744163243136777531222671531331625524151464375341663764746262464157556636475324414722436366526343322325154717451153416355337174437751567162136354636554371427172167237356473232624512243215234533567616455172264646163414237514263244222142261755663135642532361516342445674762551264651145364556422556355755232352747254724563334523452256774232447475167547773455722151242566742711621615516154656274412667474775257337111135424344115265344144562525647744616453764574232146426671555462754712211771415611562453422271575266431527672364532771333463644454336311467536272471545225471241573543773157676156444155634141132315775474374111146663347163377441231161422143357146574423142715342441513127345362133614112323246314564716734672226676411554271223563263276677221711752137456662141471111117723124212535673553761131243243345666371563242637237354467725353141762131465642775742371414142445554151231736226733364524142216774673616111744641216552357411411767462214371175125114331313444553613134465574477317654116453741422725375164525547545246174311542745576215761644622546456227374612452412122115616163631663713474653114426541232341754743444724312623354342464621715523157461222424741515654437641513112767223364662742641425312463775175216445145353637763533763363713625453476124527526173411141352734512142765431423334574717144447731335633576531273543244252716721145531271165274553266715176772275652172377737615134146547546677576776227233235732445432327226375276122146462275342274536461322343254462431557325636372352424742276755227376441124155422554252472277122253117132631362657475535766717324535642726766243274761667571524316263375215721452162251337473734743372222725263411635662631335632163425727556727374162265412265514167562546451471111346126346131637616274131221432455367224236323423343656112254332361323747773244672276271326762321342755157463154474323566365616654162777746364724466134773654552361561675424146774521227616373522512771654257251743775756716362464754731466514577176774666615163572175145125514535534324117717476575424125577362746511212123154633575111772627225125136362777373753673662775121622347315525465663242543732653736263135676444134467754252346732642355744511325675762427554456654272675367512471371542621376364673153622712153274461643712632211627223414722353721216416171223414427777463531233444325225457611444553512174221564127751425426573141322622445424137744116761731446617164331273676512433341445611463572145265446441675231476177337627224142727753742676645554521412524222533422137417274163534714367113265641253124255763247751517411741634663315632522157245315467463647335556352635142156511446325712746534563665412611563547462373461454723423263453533127257326776734447772331576253574413545355361644635177351377557332776544363466263662131261156213314177637176114414717135242153515134237147152522114237754273645452214221226311633246143663257726156577623553755372327615234227744713616365662531763664576132135627321257747113213512252165317263135253341552273463671731652662315742417465675245536641137227447345526556345272666553755717645772553542467326515473117677775476764451611642723463674655766635645272374451542222611311127614567427651415574716377532643744344375474444325636666543637225761422272636467262751645342374773245474661521446745241776225726453122717253237144667161773675444756257366612726315434535716662361216256731222164637474216774234245272766721347254315745535352617426737543777135467163756615116251154131332335174112327371121147245641114346247552123164117323341146257513521575771471131154327534442323714764665726741247671765422654145644333745651165146354126374722576243537334543351216721657253443466743717455122234136124252536175162572631353476172125453636556266536113157337341643411774662521464366515657613617351462757322371121112576471772727255363415545761162433462461774712642213771667716251511156357657245455166246247764236354372267213753751515432541265112431661771417616757532117135647774273364435525433376627643526536257617263745517151134137312365123274134427272326532254176335157471213555616747534151672536343314425674474362455764253426263634267661347767336145553726734336756144171276323236714325112645643646266426461675677241163356143321261234762163743677676234142575633147446655242532622446263433325723676464312475757334163337752545735674344515214237647313272457263663221761613336334274535674523121544543734361325655321221514235412777412132264751514637711444175215156462612311462165166232543463311167457572541156566472767245667665634623777216164645134247745724621372513633452246661476472225717131413676143371177341171332232156317567513154153116237463727135165755636334653254277146537454152751643677274533244147122167415123217677627472727445361676651462113773165235437465234224213362564174473217753723647373724342521137511243131544231271573136472526676122346423747166336543524715566477735576274213157135326716576446532321341762317223754656545512376622666756317342637426212154425321516425366313476542464112455316371233161722273246526136375226166121521614234462434256216722647551732734551216463121743746233272475711475427365711215611435745325716157631677567521372454162615516534411517567551611157565167647523364346326274465673562417314356524461334254724474744274325654647325451275566245643353176674252113752112557415372731342122657172371571666741677773127342531437771161357264245344551575657134744343377425251616474554243255561216556522431632472146663112671131175161323577156364142664763775226135171541546564112461177417321244653741134713534774124165711235524222234635322712543253163177763376632426357552735452677377417656543775633712116565164725175763746357143434547335734547267756353311316542336271715551571515444764126674247777111667151122766466171162575515526616723746245114633643124675457442345542551271665362574364241316433227466415675524723453166311364726676657547433724453762734153545345333377432744523733235643211754517741125322164377733426141146537525641372513252156527334441424577354324665123441214356714257527556127677522266327655647364347236157142113423254342736665412545542556767423651324621426361554322617576442141172664637676744517711152136442443132626515524276376374511444722325617461432753612543225362763326116766122421621264617345644377171176722264256314176743621451477571512632461222722635127166135214356653111252444627543562315135674561714741214777155344476312773463653261222722736653234154465743321751713215317476732341177524246344355566237311213556751742456324141631665525747234233337676641245241227113571433247412572455573317441442632675322373543721667222167345547742473733216627777133343276764157237533165156157252517747755354477463662571416345615612611345116744344523665431121713373341241756572165453236342453613357375512353661546252226355647374345725263462636555766734612552315716536214467346244157532717131642626436115152775414466651664751333217711636726666445434433127263474416611423423456213655161216657332132213544112623322737141137764176436613415717351443561664654374247241613374231515754252631351616632713244677141666373566724126611273411212216375134414416127712241523534656675322164624437532755227672371161732152443327273371733713333443546163236651671232246647214541125724351346436642276163713451572475133266142737256165476145125464277427433637654664433457263731552525677164151641214651671174363534425545152336461756256457125373135671315642572621555524525454671461523411662264231123516254733212455726125334777173563377714444773475211744434455633354364737527167711715462137532161427133215334325437266472454574646652112636462344273243372151645524645232172226555163333552735571275122233454333253515773165746275777233671235643135725244152673473535116142737353746673412511142434236742345373577366727111224471113727164713264324116321344174126412431232467212634656122423235717343456534656252641442725432342266434327716635221276571244571626563225336323735356146274744737725431174137442261715746432746657515736541416736246734571775772163567343574411225221671671571677367233614355561322412512651752711134324161642773245425523721332536161577574663411143634236462644454625514314644752245762721125562354146566154652117725111212671236644413531237552444264476676732126467143367255522147611472274516356364713637413627771147271751617455147433574176766264124321512456263226417217725535251673643211146572544464557443362353651263317277544122661644363522116136467416474226376372732413615531477352332644665536741312773455616754116412762645552524713462244731453323533721465756351716243647715356633234213177145246172456461325377524355665612426336514562524244337754554434517634424173345773445544222655446422764573141752215263514172646512717351776713335144334135332272463432633544767465137644571617167443735372612751475571141233242226412353554643173652175211535766721166443237451645155776743651544652436742777175613423421615152431614521721121523164436436345612673454556762745353727664417211461745514472617445156135577537577774556227411456163175746622712772351372244212137451146142242342671727245677713141365162276553743736152632542166225734364241444157675162457675521433763416564361351171246236112145545716764314553763226143744362736537435267646254565572117635731615661517475222772663173776562764444625576321621717321637517116663345134666752254115371452374252521334223227335756516655115542124167471712756554535333144527133551511622217175542474721574511755247322543663437611312563233232166711256654221213344622155512617511737614336557725477514364456546553535371247241711773531317255232426156373227422621274434442256531445275527662144355617365624561635555237325532357742211712561564332766727474721146257461631117543741644723426522551626612124711426672275647533711173174276721752643273161234445664374735626635132341761275552451177562364257662237346466154321347426656373472726164634631274347372377141521113711413761111445416756664145147451622111333417261165154551475343525747772343363412221777737573145533442776446616122111125175423377553754637427333545752651534765732341723165131515422512754463257523524244761732575166363143351323615431227242523223762465734167341124236363435167476644457255213234751716353773752546214242752415773174123523717375337744153413123543345637221362214171517747462656314176121277417227411315354642413723535755626652713135673357412113455354757734235442331555636747326244761755371255317556341246117635433437277327167145672727731634377743763135744741537731125121561555255471175572555662165671757745664434454144332227436336435444233776355761434665732665621576211573437147272771574662555644465646223237261457547146414171657464316632542571744667532253341326156753246437525115267516753125123117344216251171527661475711512214351671527727112777247161133365122213475461461577615623121466177312561431571667741552155114124166255421472467554642157662474773622463543622661354463562721431113252537131217344724273415547652216552475527564355776246124112344223472355233562472326133655171523773231664342411644567155665641337664753317641135523531426124257356744375273415177554515531245262777531267422331477161743767617226161221252426567515613223213225133354413655625515476721352573317755525112665556326231255355716714555377566334355111135773673415163623661534163664111721371742451752341615323622434535654151237435561742575776352626323122354331777775346755773166732435664326316426144742642352254421276632573536442746322651776351572465745312246553426775174143122477174735152721372262612417632261317723521733762312572153157266237322765161476527171315613533555427726436475357461613315767346121713746516454533615255744772773715471263122675165612576377477171532767412662461151432453333434421527677265425543616254671143526511611527362146441365146263655546627171747265222261716625223176772613716735657777171764525126137217611514372371312377652565577431312463113354414645644133713655727267572237611466253677261566457416376613513553472772111167635776645626211675245444645765742553356142763753516444147737644722256263572777351124542646522334552472652251277223776263156371756326513747161223513342147671717662444147276417672335534535726614762416536461461614571353756641251521474344512613372521126773747123262637271373743216337232446447766352372443747461223445671556565513744321624564627254155332321763471722725563255114512254575675244246457137565477157375754645361725773126774634552613477255615627417122633417175365635544334235117221523755165623376264537343275116271477316772343252636674113625634675735526762227574473714476171562366142741273263722433274173162411335523653212414751467771317662634417664315465263233223464344436277177621377226632264432267643663514467516541525644427657644232574252134137272675431425472714315623226543552142615757511623443244577543131346537325376377535753432427723256731163512533625524767332343561564574265442734575115241374752223712321275371641562317346145467657212233152157237467334342727715126452751376223172346713175215631675264313346766313123435145541541461723466366311623256774567734213225464432362465773513251255675326766342617155656236555514274126126654745153757774541433762574416375613531735626314546156335677637421674767563523111127753644547572662361351524245356444721375465554713247223536374241733174633421213536651235275521724334731372523777664111541223415751564633176317415717253316541456534117611451411332457711666623517321273351413655113124374366747661117344526724634255615335242122143261643554236655546213126332545776162447153152527457752625163773572146755472645522537122747256527145153523111553145251345462455461366651161257455363537277546324544522531646715544716146224766442215377565356733535552565254732342772151727523267744222137542677217535726117327324756362346647561443246146212245742512137623613156514321241566254544756752433751723356312552361645343347574271363532462631277364222466547257316671237334354423245325262226141147265327666232666417241462417415644366446472651533657617147222776344312261541633211112137143443217631756225477612232354472636246332547562233335442616455641475332626576143466233324361256336163355345151511334776335543467415734567316551513373147723463333221517557426417141564467137352775756633775647763731511623542751556452142546445141333414663167256723221515461165322553342652767512234374754262715272447724224276423254761316517431514615331152723242547777661524614366232341433167254144142315615445367514561267176514237552243127646631416524545537242237565277165167121164457333251513552462311237251351735761317357644224365471425553657455576545443254513464435314773641432375241557247576261733423117152422346525433524433735211533532115341213166431114471322314751271636157576442543113136317776735237146115761335646264125126622454452273773125723651363775671136616135545747642127366767466613565417163771765371336236114775465126245645744414437354355765624445252136624374757115544353145572336653646376113224772447653524661656233174774427121364252644432611545154555317222451116373755347325724411332364532633574763626747543123346476341544213523724711165317734615433416241632144545644565461251624175132115432115671441211325521237743355117237117264415447213236343717422555567515247723735472327522573742511471226127534464627761142545727176321243336765366276472576462311144251513323243172643232261313536254336677314525123436545716273127553552415277772246214724744256234573743662572136642233747455461242456735326631515642346323753217366273124611773656113735445765734553266667756345366552437127733321736536533551377256521543636177264156642317546475441424111727147464367432416465122355176277314254672755135763515154555414444261552157672411163677455126473221316614775255354754723524575727762652443161546333626277741533541646214523516432134655742125513777527212673536153647344556327627513643242425443121744533356452442646253336212513611463623671746222247414234515165234637227423336553533166537337163656611652376155331756631765615212173371422431175372167355151571111537713255275724343272126216337474574723543356712343554476321372651454631356151424162531374524622177572631656637337424563236622132712274363255271344622255131345445676324643473637323642354512255146771566735332464141277767126734543713527452521224345344456452745231622651733255524467125753351273265464657216772437352251416436156724413433333676523152213165113116641323766346222546157367117522577641237265211374272332443435616564726146656625246511746311271151453461447322256127224255275513661236374337454366412737647431717133773446374143174216174136247254554131662476777411431745172227765477576755556627663677477711617541632536423375264554534636737115277344316735664342636322325236656623453257736572165636172715773575134541555435645541547651451137642237316252756422667766243257244571641456755626116225733351375755742227114577412423325553613512316527532321363535767655346517151733176341577743443547364256264467771626165262641124162617536275376517317726314326144235312343273743174716757413327153724142352667166577564646171275516224563751777647637414333454346177646143332227312364627465211731714532166317342571274132653756757534142712147326456162357645553536344445142715662677724712566153777544351552257536542243432347657625252327556541516743316542637513442615673546737534164751334326754135534172765757577164226661556263645356566264333242664563151767254212267727443676256545252241375637145247214414422311726344363267174721142572245575517535174422443755151232556247127263763345611315734167246272115123534171762114727325453272524237622322427632333375144564135463444517161245411757674244751536164556554612453551657275774766674453222612757335513443444742543327543634232264745322756364632173267564216335122663252777574714233321643665411567274415365756413145341521371556477231776575566164527573542717656763173164632532214254547647636546256464146433643272646543637524331217535571165615773766453436771233226677725517316625653117621133454434447237272263647361454476754431276211237455642177246676574246365217243321175415532422362716746457515146266637314655715327314264334752661544515273114557577317653341526614476227527214275226173541524325154616652613433154775442413155654264243333667215614541622331216545362625315235136414615732753741577762424336133713363277416714763151333657672274542263233134542751225522613132527747263677344552773465746343634637667166224571173451255274466753143761673364575742171727366364611117311756646433154167125155546651621126623666365663576313251146142244145424442242521561111225132256673556124451544713225246752161767355161535611222534251245345454412231315167311464221234772641312545615415336416727144644242362656446211734615611525473136355552526447553333123115656162111766147114161425127542336255366455311313722164666743177715554422253414617225716673223215673435654225526541333333655377776332227532324161335577266716626453765751273622156635653545541426624423543744343136534221165147641413761374122425211743251774661142357516122365235323542641431535613754777147553425173266343436227636225342431712612132176332354446372125361561753256575331576132161274144222426755625557531554173324632353626624327166251421127463156314776751523441265441544522137761377266341675134511754447553542673722676666362152141615552246446642122711641755362553253467344337542743737745574142476736773426473662374211162576156152753326255655116536645235134753347672421316216763651413317115452432714236266266555535156267745127411745654662446333757577575216347454253533717733227316466227155224751235535541764134714735643575363327272157147653454157654344163435355663771676235632521354662346773671262261114671154172551125714315523153263763161577766171663434116314654242461642541557647373675647234762141335512571664715416164121526643167641231237731472371613665762477375411544537776237337617425655715545722415415321353355236725625313275437271734162537463465167527141774635621247423453122637512626627472265323464733246421512764667536156611147543277733223423173767764656662647266352615356766265275663452746675624124641437366115665243447347123535212356314324224641217343355732553712632356761455775633261765243553737275175244734637247455162357143773673321624427435412231576573272652226221753637377622672652112367612433532734175756356635745315276532125232631347375161776627356323525357443671631356566442417243626354432113175244222277432465657525362413633541273513655725512675544615311666715377654557241422316117532521513242327115121374534534677761253511744754456515271544345345572142136433271762622717433277646764376252573512713314261471565575136764334725325646364545525416122731463766617514533211774634467753721436232272746367476762527426621664726137343274233732475446332431133157773423745352412257113365462676767232536474555173774442211512472435611552336155466133454634765231122377423232771673151533332165217431414737147131445433157475226253433127243155333215424364226235417134757267232443315744455372144257555674536174335232671541645454341722565566231655245321316265511623213653476674412243375323715276431126376277731165336152453114146152123752746154717726164564112127322526734632343335255525225346472644657353477644571262175541521627474431772777367425626474545747671434633233273244736676363266267322676213642157654444312621646672272724221536614352622214462462671173535627511337631252731271457666243734125362245463557716754733757354655523631417176767674377715733442213677657656556537216377774447662243347435424217331151261745733261515452424745177227357344131567532317541255674716733177623671555126714721521132146447421622117613573274357472725563526621142134373534263233444334616567673276536271537244527342642512511223775726112226511545121413654717317712622735625712525755344155116221413717413213565374242647551562544235176537116646262556435614161613334277271265124373356146645737463723753772625365624447425227267461676276461326117553417131151127316247127241763131511535644155717733744762277424474657454753663777373173213364634311467176466775726547167326722464623542572413174161767122124262745231512142363111277323625254551415456773123533553626271637314644323112535171567162771174746322154376661477546455745155551324641371266236322271774473362423127366477423255415574354514166472427477432751431172431123532462535674657245217421674126372631125576373317221364354165724211313173632273215454723331133663725324627247562436137563617216777443135152141374327277751611671555251676722242714733631733212377715115717135335131435747252471413214175232655572744432546627151513213725224714217644132115132274435131664265716114526736443174446363542367771612254167644354622667154273372563611421425252545135742573134372764247272727314216723372616256566272322534464116721452533562541371524171457262154312516764331461654354431457776421672411244313461736461627536512661142367722377572342525517571651174333336566436773256731727176117543215255732741467373365415326414645563375472632662232773446411774543173753347625732222476436447114515113546437334445626553526527212714261124166423426273455431561763421634352324556416764637616715361444172225614645455132232134663641442673474752647454666272662365342433273612215353733763262311345621251541162637324622247412535322436522732234277562117151245167344126422555275263474473536246174676432727457365645427763526547227164365334464251732621113176111231571533173422534127241561412626175142552735271623641717767343142747115427152233536722727143451646761422541763356351452467134123721764351457725652727276173774217317754712725513115134154345166727615327631412613436244562372174166621524655147413437276326646256141212617525466721757674657515331453543715465261265256545526361526114475343152271137623565334677571152515214344547441717544323264312463215641336363564452774435155323544331564423762441541213622553141673152435744217275437722377613773411755541172232174716246241541122316264214546757451316322376527642652214777775733174636276147235434656265354261577274213731154737326154772427517546351574672374336154653716776742777166557711554473157461477375666674663773752422651716257217166667456647344517714116135746656644622676643325435146141646544542234325213546271125733216174647173545266443373426221443354752151434263142471733656723351656165337746362631634323124543642562224222751234436172313161456626747461667713356365536136373366163242331333571541323337267525545752216441632715756372231123161765276142236336133765121232647637561474721565561267662726313317366425237226675123123426257612547573315337137733235667424574667637251624746732265164146416274361377471116613244742346321341667127761262163516173441364311417432532642252432253617137472544516161265574657215467514453631272721251122576526466447715461422733257253333125175732633573545147366475641364273766262652226123761732536675314724644141354257676763347326767552346162231766757666313246255144471277423532527525467615532345675735171463756621576567244571352166577745333136215274312672631231727624541263115624456635132265261263737166577262727513317536355473777115165173476357722775533313623644442363624662553143637161454147425653246624711417112722266574536234662445146221222423632622415442737374712743154236613115347114326247751154572325116536454474725753741166635271623475433713314213617617514423514743611221462213464556437711372116562573742352731476433344563174643732437555167131174437117531215431714653551674624357472544566433523321577766541116156424713666352574565553421633657513225623557721576453726213471553275766443546516464156777357435154653627373255123431441575552366755357377735541774247321116346355722152755621722536662673646464176414611413414661656147424414133766346412753442626544577247744332177147345623175162531565653217437444572453663571645125712334367434124253552232427332733265635661372137326531713736223453255645115221362246346752664342566363764527655772736534624441627645355736115524117173575141222217745542553246557671147553766321415253332755744123146735435476441356622731624235643655512251234363346641644371164442214541665333757545721552667435557135314766455341254431531564451475347646674542567334416676234414241244145512111134615514521372727153551442753776561251733164465313751726314534574522725433773533132244217672341733245772461145352516331217454561215114263461127471333465433212344745363731153124151437373614231635364761176511131214233434251254774573514564616637243516334451163533124464244137144336352737256443754533157673571354273416535461776462777176457416236517452122324173374313251432246126165417732353613245672735353256174536632177561115675772636265766542435644612623414224517525334312456244626277652313664737672444673426717531617241447155136472172454264351552566733731555325535762517355322477574766235776551257422546212553622231155555433461534711641127472716123572446714261762765317356541363753217722542637757617635622667364716131376551657547434235424453265717246724273251334656521277617327243255775234457745727246221144261526416341716713425432453671221463445362453345726461636425656626354173242616372247434275162164113523157342272326353773512117627173411535655117155355747141133243573656454365362131734742155412762357235764534156263661266631136365422322774472427716126721145115547112372752225226222725221131526636757164517241754366712215367243241361131755263622434744573531155225321336255447722327767344442263726162171555647271271335613133535554653147545454674731522255422276574277263632322126272426152212163574533225567172122255164425733314757213171172473732447723426156545667177477551253321422773521514373223264253267533676116567531362725434241467554733543322475744236612226466445137416751321124441433665644527323464272235431214441631324165137467117342725737573776741457254212234161362175765465461536555216423121251467367125665142736457322635153122251164163667174741724376714317634153552152251555766316211752644441727234563557456327342456642327512646426614751614651737724465337625667441746327725232133561435427276353357211314226342521764636566514752674124536473654755337326267655254577243122471277633674513612326167224426755276163452143433576525437211727647457624141374164656432443656544571574217451257645511765343237627777511466674561433543411734725125266345225724267645125111522435155172634427156233644466547114521232424271215131525175642763445471653312442256332231737335562443527162325553425552145772552735477417543431112676274114273375236377265432532132753465214553366326436121265572777455176563133154727632761641751136546525127425136213473567765267754135541513335366637125125635743446233415641576461413225122526164626351254235773254577412564462164131147563362611461531616356565372415565734315463436527566455215451137632263722464447416444265243256141376772247773755612332745364171232222446357745536173471337156173416653411526313323662626723753215273644627657123372674467164415145523224373314545625475313655472253415234655342134765415114644762342166643371623412164774452151315534321761753414623223771117332124557765754436227543144254221332117775514357162266563222633676216217771526636155134557642242262214223374357375177546443771226541263433252111512765544243266253362635153274366555431765414242572755664113641416243353214747227336114435113174122456611474517542363145747266711146146176641535155372166276366314321341236222127656776737757621443477624546757736737542537521756226321165653666553536711762171132754163742341325572364464713726325733241564527467727456156551374711344414275145236114723761132542515356766623336351143343356533724552462343727644767235672554157535174251543531136262642127624617512136213575572637124335222713155251272461352434556171734345663312444522747124671523736555243616142434531643423615217156512163761234626723455737557566356675275227513514163767635724643442352775166531346535431233611264433742461344372366142255566717353757127355125254167216165166733422435474276624442573313112726451625554114777443613244654255124225664274774631331766365172715437326656456144377576435155457333455254211236557436373121655722356114525651637562533754153745113135517314477467734342757454176412153125664634646373572537257121237652341735423352734216224336462541675111753321724344356673553721227732737472464227645636313525546633135165344676653447272544431215421342775575364731751245777732614737147731576271477424214327477174271264243162322374724557531647457577235443776236641317472467424475322765455311365536476735671447171317156717256723662775555612632172127721656541747247725677164373575571775542556574675366375645226715714652156747326366117663526321721417715671644662572571244175177251151642736325676166274724524543661755352224775713653354627475773172737152563465653311114155654374467425564143731373474122611237666747517233537666337641733166155142133257634522546424646155752677274621774366534417763711421717147421612257234575475166247242256231423641763434213612547563112145376663761424755437714673375521241227437562277143244643374746272315562432762776424177437233754335173357445655627221364311725347151525553442234367326657143511737121666234451171743741745337323345434446234335333637733566632266731376321145671174266555532767653113754251752161417465342437535246543371575615755724567744717444422741111612577372752765457434775373515515155716314572251125635455726617315226156627755276752427322374245761715561577226124377343664411227221171361213225656622111453565526746175136447346222442411777563457366113667724737174455454422677637632137131625625253627463663745132255352354136745341411676314227335254521244142777131132163474547476741166573773117133331512267336124442213523234156472662271234256512145531744453332732243467174166474146343722265557775245155675634251716421541425425252777456242761261134227252115742131217144433552766321445747554756172225661257566427464162146445456517377415463325255764271245774564523674443675533332752176576255646126563163736363561761561517264176165313776626275275453635653374272632423215145764542236723353672276532163617326113436222557757371264474156127131573435513521651617356676477624664237722263461442317466247342721534646776234471641517545561673751444434257531614766133721112416662227656621621431355556767152731453347134237363527375375372676733361464126756331461321161451255624763575513351411642652121357142542723664322473467155261526424767273572234374753752511653524124245435551322117324565665241662317143632673175131511476224213544552235335755652644715536367544133347113611476763455241211164616233144446526416765513623631421345742526667442447121423626162335243525375352536542614217125362115451212147332216577122135664174642173372244465435447644444763461777421544113765432517345653322432463441252547422673732436152324663147355543475675261345352425373527554327551357115353717362712364252773162131152777212241442672327421137333457642652116254543776751153127564551757377326663273267215531417275213333455344674114136712763713643367645461152553376271417727314754641471626215445465627531552367764745236147624573356231417757755462115113114564122156121125723561172614125675427534546551263552752353765655311474247216345732331455164653325555172214252654376555254732474161621232667165626663421135376625176233533531324313655772622524435257632216441162341357643725551216271523457657725243137433117122151342571566671316512665176122441664255243123243135215124147273352176522133451753615317113744312513464776454553233675577274735217467266144521235525315346732664532542556241363146676533336524271465734651677324313266522514234312775572573524156476351632245715117766145511316355124277435325137735651423555474325746721543357352247423777531153756651135363331554636135221436634733737567732721474427141275171763367246341442621354467427346345675531364542624163532574531555356742117663766476651132514753612426721716416455354576777576261442435446417355214665674744564747174651432466311777566364744437451137113452474514562512225652731234254512253523213555771665262214632324531214534113673652512623476732324645221131312771351642113777342625556551723133261244555265112314152141334557115232517445157317725331554143163676167124742773715541626334542123741153457651341726217244527132346444713117135341271216571625751726537741765623632754544736534737614712121673267354152444421215376777271362527556463547322534265155216356431515455132153246775514225252735716554357566722622463126534131532516255135637231371773567372366531565372164126376466655614242126214244354176735665563365712225155462121631523412372637421633341227442424667147377473544742476427563635425332472551735531661643612116767423663147254736235322613124122774464671736443356127312624426535315715117154313215357542275162632433253352713435273147377176372545762436631273713331351362213471266543535566257622741171433672621664231127636737226346472672763152616711773667613547471567666315565377561266141325455434424355235774744752766131666523276523447146564262451464564535145647315323261626165225714377275172233754414475414341143472433133456655316775637364512761225541716714455254231171661756272747152743311245662112117175135423541636377315274416616737653536773265224266716357261755152326235454316125626544572771576132655433164167661556336426676523672444153552541615531414315366666744551146324425372533373133721736313621463234664147461115427622463146225531237633714225676657237643555332354351763375176163776773441174433757256526426224635544171232664272337272154677373247661113273623155216414275144552642742373676215145775525333721375414643333164667471253117322453233617243662341427536151713351613375332621755127274111223551542173726112126141157472623167254565157761114127136217461771736515213222424127142774642143155736467112445167164475752366515317265267535244263742451771751423551311364111437724271462461633112342361671744747567736215371621145474464662476466351113533634752411267667727756575726313666474645754142254251122634454654513271777424633257473665343147522242241224716235315714447144236444677232523551211112446564226164464676142526557761336116647667235724632713761777123145631617543345131242532741663366752144237565261415571665764312317534246325145216776264774346577552267222737652462372711536325363612724237116355515636712654373573166573623453235111632216647231647611174543766671663223217144327223323777216117276421132245567723255555677411531472425641437622147525475456432662145531674777274257621476352532136612713412421147232212241323647422622263435643667111325361754636721347524372667562635355454146752177152512677756142617355771776116233414674671675765734523713635461132523172262172715457752455315337571112242543753522621175627452441642276453161342635645346475552746357236534572254642516466134451377214177641776553744573326154124256666543743522116665247247761315263151455747262151774721621751471117356162111226316711314311462663732537742263125736256517665145331414511637343146664645534347314365647743767473273767553127247576463377616557217677544267175254734355456435365444333141161677472241725752527255711216435524565723724513774111623743617462157753364146445747232446741111236434663311244742766324231341464336715347363171366322645761241573565432351761727752246755262352732475644752754762277714633171464535421736134623754654351652127474247432355141345744572777172243661525762565523526177217216534113276615165747422433363225267712422323241645516143411642561462625151364551242247417614753232514431461135262527461342151313555231367472332573532677275235624337556426772242636725745572454226266742741266441343157726365676616523726245712147554567515376371243555363165471367735626555514622377236455226454452243122772575735741727542417255372614125365171575777154325433173374115654453444353261713547756326737424163536165313514762667621525461376543562333514312511573755533553341526153343773344413612555734461553451624114551222623262174443611266341163542663265614713366141166124232617776434126511256254274215631732733666411363317326757371265367673251213252512655544615734463453677223551733321116467372742326627742327513154256736166363525427524766741446774771571447722574556254262327136636177143135325763711537663615472312226542475274575751657347111243475262531251621436624657652117456275361516672745727515514135763614452623474617414365147542431723377651122613744373226274537623252157373553141511133153436422737244373552265247353752234175272326746435545462431727152461322443457423371757313416333612644221466531162366217662415765263675753737755275235115455155765366173566474433147767435353764612432771657323731636773527135427753163362314621723623164211763157317736266762764356576327427726166153672672177525415357321224132141341531631614454213354477713327453545642633371733357131741474332726573176447544172175271332775267151452225371612121652175215735752211343112364417574775536432136341566776325165745556342375422465634545477327224772737257732271765553324445371177374322326546635513734363222232373634277744547422616455161324544741557554447312614462262224611426413471135275466124434556356412362521735454322335761357215257316661175554315531421467527446317367616475725511744713765722662732713752454346432144434247337632133532171444377514357613546532756442743726547521257231625572171754251462436411536663745635136244762741324255441336634527333267655161112641575741725466323542536346561754234127122752573267334377256264617212333421611327454723741676357311533114215347376717315414332374451662473246177171732573236565223222461116135136132321545524337662742153157763517142236771435314671226434522713717243232276747337543425717212513546153473271243221664455516777464462622251276622127456347247375734237356516562773652516633664367174251743612172566657533212561672226422714334574572556161456537171633235557341717266116253237246342766555521523642463311645652627126174665142435575136232737311234244532446512453277132434456612326612166747316535457724462354516476516422444211167251627245625565547311564125335263464412265154521442631352215625263734264662454422614742363156676263611417645227511216534741642651142274251113163215753556654141245466124126624355162341326642767635541162746464163427663557155141724733337176626177256443552357452155411532316135255232576735773111652134456262117522173715615326414636564324535521132443334756631324263724371254271434757565457672237533363412131174513561345426652734353734141347732211345177164267725417134171265426562363313732734675672311541373161422152465751457231462646766474546764132621756612141344142112666555177452561441666713327641126765515553732177275267433427621621311167562113123733715267142335476524414715337624315144152325155747611323755157672415124356165673654115424232222563374632642421627437163626751226567353556622775637757253741264742161346237531334423447754264672272226162135162625162161627376527642557764612165673113114235116114252362752271652372623336741751477636135355553614275432446554624721533462137531152616274742543234227676312365473674514221375722354444375634475664446761121613742626346141672361135735146137556637575511762231343146652577654557546327527643667316173554543121174136721714373345265533317522742346337347161434353747262354447713641514614766514177136364647631335415177415355165171726323417653515236276744443244456421673777347174623427274522167121222611555664356632641323542664117262246736463456744775452737442351414411267644431742617273357575556417546533377413614525262133632574541434765636317173512136421661356322727524345346731143726276424365451533161636622647352172635353132214624126672275123332635354776237732333324443376521124763364371414756411265525411523321766331472176741277143613766321327352433744741767775265665421653622274572266265465115673456544137256735154673533233634372256661517473371771345662266737154153324374635734762652111674523347663413176673312576677161643176266631247221462541641561756366325271234347516674251347345115646475521266351247656114157662367146721241175122211231546726165713615132242764275321415371117727321733141356717532712541563555526612437464365351551625113463144135261146666424562765675245562265115231227163543642422246124253764516541651335532763221124541751522516673637472511233445722236312554353757737122355712515731753322667365361412546347422324532155355314243373561516567723465664522264711242637177657751321371664213614741143244342357513544642253545251365673437674746222615234622436676375632621415447641555247414364133726311453211214463271341717333745566744366427266416444546612215775762421372312253237714676126735425761722362421143155545461353226114316446621725433227656123445357777645536632465716715617264712122216662654734536447241251763115326226414217753621654173162414246167732452451133131631257421145765157226574611133226343415533321146151732322446157624366251424427347633715352161363612421673246222176577346454472764347427644475726665622467137437264127123664456235721366313346354777721417144711624643773237176675677737655455546144434761777767447554532411254271745353553442617565342612631561656423761255537526352444747117275147537564347223751324122143164677743623446572717132645751257751744337675655255152336145272271365731721417324733377124644264224726111262215622353474752472213526536566117612137377174355477162635523324414521657561326767765151632375735527616775737725625434526747443316467277673616561443725734717342272211212612461436147744344477621741273454532516513527263633625733254423276566331514523176412375714465775644617761343765745115675354154731331327465174661461161715424111153376456365753723141344116617634276143773511272427654275157254764612213663673255244665414322732422634133324742675265125452554615212715457744134663464232411111742344172266613372641475756757264512131347342771275346733641667341465621766166376732536123232376544237446255174111375327643172747562636454275716255671774313411357633517247741665566556376767726122364321325615363252272711714725365617252633573731257561663365714425533737371614632717277425337612455147116277673174215161723723262716621747741341773512625221556741632735133167267541743654641556643145747257276244447646434711575212615144764621256252236526516421621425134525744672234777661634715261713475363164416217166352664574674255724423754765673542647411772526331673217677461255342413574656672672233333373517245425115413464564127453723263321774514354724314125754356615331437117436247761373211636537353426327473236326456717773756624256122163515437376377277516417146152461642526556416336327161214732363357431216151615536656677412741267143264112173567545445476672122726356161311516553427161161462665633643674654633276216324464763556243424212676316247172652251626542224545636571425335623247343227432216112761734677572117143464531753665764267751637241155525371375754463122237333347565451172141747417623245177534514541561715273343345552462446236574753154714231564352522165612561365714415131221756342441322477426331161665127225741375327551535577515175676617424653426465551237322731621513556234676555334461512726711252536362143737673331333625525634127167464667657374546721513417132237177656654715351454435115131343464352251551416444221632544772442711327314555322145241435126452162115756424266573226362214753352674372335663434157725247755274464714347726472211112737734653422734457562433553674277114461722226563653116463163573674343346661451236441216614275564212556445622155712743735455144755143711563177671166562447164652476777165466555764554722141437717617525473353141637442557612614775657421255462646523171151353143537513521477755546167175443747313415757226115773621541425712744424122235256756242436517372567241763376734723556123663714174121216546442144533534134526245657671555422635371654467133661445435574356552313471247154432516351232561345577146264271645216753276555613463417435155352164662311365257426677742457314624224344514423466265353432654435767325176641216755673256545172611543363251263277771226173673753747417135165514573725634115524232373277635375166461243766547264424134737661577345373762557676457154667546626764634234322422366365143136732727513135577732377225643247253366437642523526745661545272317557422515171452255133322141373451333515414452776523246454413151114355736474665557273132413117227656363333124612521225377717733132771324745425611743614575667173313455753526476413173654334454115353241532363245565243566235636463617763313736524337617634326266567666121423376141233237572511467446362443173677133447336577556514453621237521634311243724111752431113246131315655162574114223566571125747172677477656361623262241263667777256136714154235565711231536436455367172616233113514737723675542472312613645347531325227526414753125475773521573735451422455142364235134316366652431474153551727453366131667664221262677145251335755651646645457517676724552675563261255233771153152155532122672217335152462561776314177272571612146565123373374335745776145346544432234674343767563353176733717353517276543232272531157764454413764774667214545621637645372143441252741763436131313271637745422647743253427443463114361315156344251767441475755475725157664622356566422663362143735654543345474454225575245551765643237564344171434314147716214671314363646345412743466561472172332752345172754362622571642162225523147661276725276456644762224765213372531422233277265563715475336616751123447657766546241727655545453665242237426413231233311155524223746362325257612734376514477111426445671527472615445225764766241114765146277377235767657357374314774517431372415225273231261521332673736376447261712236355447662752356177155113375521367233123421557571476111547323561474126461656726266217253216564744547415512515333254272633422115563535226567213632262544115317276543474252373667725261612544663547711446567245157676771354643221332366355273177161161126573236361631465224435554553765656363132214454115641436124414371321544174533243141174726576347563566367742467774125537317334314662627525764164475241313346716315667742552251627446561135727667556454731166341425414426222277255133546564522554224767621732161675351147611167523331222425735734652756741261233476627162656361166456462472525266751756355325345372132311663472277416255177744464771142331511732173721441554223724147363443556175461545633354757365334572151767646724517245733673425114323322226211662626413713356166621164315236336627667267625425317415756673436427517436511443364246143643226151222274165242562226123316741757171332732566746267272444447535546771275553356316326513157234772571632317756777633413737153554145337472567467553125432537115411245324414463431153625271112554771434274652216324726435657735545611321615241772565442327333117677123125142152432175337463614574617233737245371522365325715375176122425342272355514355257121721643715451772137511246173175361545156724224436317435444755624771415412133566537613441257633423573456571247124214552616672145415164633161164575165355246453235133537246254735655313226775421135512525363165752524736756511634475561227546444736422327217364135724157143611323356511441511114715323337637172427461445525746431372635621731272243317172676543773166651155176422754763354147531746744243653434732342667314261264272616115457164417516537275334154255266634732374566333453125624231151744351521367134363674575132347535163255475417156357727643717153572236666437445472464462662661241373353336274743274653231531656715455777721424755452767232236241675516477543352136346353475421632573344422167363127746227172364544771553761717333437262163321175475564752154226563422741263463133672311517232112443656766425641341662653677121276463453235113246236423123226445323163425326535467243674236164536336677342316765112362124623426343123166237745647716221513164712225534557463441442364445764555717573242127575533752437335724525574112234373256465747664465241627421663314743671415564143657642715173545232422673442156454452643564157175236427764273147635113473217216643615674235552444356636241172756346127644332616235237745164362126132126462643576212326224653156162374254541727652223735522241157221755333535433755261643271476327434361633416174613711347377333216154137571521373674741117234465212725766157271461274276313151611774513522541621751512342541722233624366453645733215341625731255746376243646543164521714517746433373227623661377642144625713561731363344643163157464156641327324452715411721336374773776122163441632513735761531331541544653237314676271671164131214352747372324124734235455767117655163132455277564321756465576565473616265774764526535473253122663355173613412154747527136441736255774355626235543634737514617535334763565572367653255247627573237736316165324473631555447517243336377116657321674763546411544161611622611542123421114656623433434526777164366642642431333666132624534533172157454731764253177351643316735354212774164521131756253414411345777377727471515672537161642776615545641617767541733153347531532377273254363351553162525511754324234663333657146555627317575337753432175564567446221261352175173456666535124157762122247461261437426273624323333636263221352424457316677533777472312633172244613643654621321267522675316534226623371663715144226416357143465346676264466213735567414427777544444353124754341136171643743717464111414222757762773777363665633245327132236236537726766354231565337334457313355362167735542631463527176146575324544457335517556242152775746517354133765437527533747147734516554466656332314277573617714366244672676433675434323674675344162462641625125651372562352217736275563755467365316576145457452363131525375333774754677435373542766232153516126524173256716374512525723414225111532157757716467652554116531451635742646657627614372614561645132526723621613615335635315412324567362664165356173665417267522162332431236163714272154273355564121273426335647357574325542422124253416452245264154675563734247656337265512331656446215521334421355273155217476432254145161424643374711453523467676322222273771342733217572147241772315445146313426731117234151347511345263113355251263376723761131366714326744562722352255653175325236761654344647764222611211143675574573337113723344645766274564344713355357752226713421331121444756424242347472364625762264242747671436664623161564252512246343444671666252562547176541164731474274263271462635655643751344525135663215353445344732426554347153643355712357225731163742576513211545247565616413411125475346767745552531312352524637466334233337725262334662235637666423155577512341514273516212261243551321463627111547112723253376744716345631742715726322737367255666534317424625337272465524543323275537572264736766246717564726346222211437733131764665634336273716136312326642731437223647461762517547613576773735751445414423674542644233223637534512253714374162356712325722665446563275635445673674147531627564544163666434423614311374477466733452142125457151512643422451264642255367235133213411643111327724133771615417742422476127264355777366561232336477751664712331137167136163315365463562363525721137753671143762531227456741433647645234557747333456423427464757134561335443466743526257226524427216233117347145536344356242514635562162117134626453212137217774452772313227671547257572434524173474634246246323351322674446265446731466312255512735134562473256763231771335775312725675246454353567577722533364676356262131467147136122465123572441271574752666571423652464145473432522117465356327775254551422766141451431355221311126514757247164133316543456476522414212127247543274767425266241572222445361256575314256774737111243417256224714634452253656761116556674525227522256474172111322171157633554427654435235446661211227322677343222674421274165216331362643676222311154124633464417556132321254375424135521766521575371644151422363777541657533513443526245316555245122311264655122475423254241655571721751545347617453711425624463576514552415517556257322114554123714571644534611637761113657361673352557132433515524634122252352777154157223525466162575713351441566164216667427235525337666633112621353332465321274136724527321423647274432265415711613475537661366475741367131532712362755145163744551717113176371537234631542245533734746357327412424221366522476763477246271141314126166637217217541666516524764467377274225245322312254137435274344374616444366637155571455376633462163727356332341227375125621167275562637613751262223736611737756646742124441457713425377373212377113416163131243574244364725244264536534751265435161521223741467242115622632315214366521736165223335126413653475134126331141754317731713267647344247172326424756141152572565633457367612464273771226575654551725164156434143353475354142627623521247172416745314242556142243427643642213221661375664577624265162557777323371547436776711547345534535656121314451262172145263156521427432454221241457573423731513655711167611136115775331644625373274323274471321222666752453225545367531362433656754762237652436366252412655343142547763151215155673143222155463547646243366173573717442557437613671414144654234445472661623614274255752361774557211561663344674322211456555322454534633152541372434572347272547323676313471522154445762722216237537561121212311164564757311134216156361421752172561367221233655573333574672712357316237354733423167347737241466327242317715461161725721755114756174335545214312325131246741456266722567321743375222345343317346252527452557271132256624345312226571655743164167326217655315541411677473112512643464442212166347337417721273367735413543143766633763165216454341272555773362366664264774651425645713622342517365114415313446222733435663144113614365217653476673237125543243535273125773343333767772545763446266417311545212477467644553727636417541735565645614771466767154136112116664451152743711626734557352664462231356443633136731476534723373625742626223537532673567372741223631124146422415716365225411634327333157723174664433355126212644711316311721317162517232254541241473233434466575147172426113221461715351147121525445677621343422514452566571543427117272336671263541117157145576427541165766174562572571525366357333433322142622762244335254773735317733351443732167432441131435176272637774271526572735142276725636212273623614564151675135641523455674167567356755145652545531276675425463517415132717265657767557421266437472324525545432432427361377354434575251134677244516446677644271657515631433546227174755641471571661455621275727736435133363552542716561571413525567214632171445556525516761232111241624234373767633425423456667113275611452647743425151435335235666346513711616247164137762426314251233634736643542364354636557115321675317164452571247742517537462653324324172453417473555632677275537263612141311461735622723742636656146453425653657552755341523321134112463241547425723447523245361163231556733175777334317543362461723211213534334467112766426676171432544227663332444743625516326461546262357524161466161733564422517435663746455634552646126667142726514222261654432735557337444747621452662661434537415551535333225452752241223776757526773625151717315523554243151343133426343454575241435153471524147413437674454372346164334415231262535536275635152177543124646176351735756452257477343746322222241453161735264223167553326652266235545641357761411366722526735741525371347457517657442623537424476327553421473451436621314345726641726361532111353146267635536333325364447557615212231234777524266725462547531362616732432525145156515752135273565472636127735443325734241751447226473224311264516322656645711732673135567516161122226123625621211413363334153165327331713415625777436653371617543565767331233134766565125226313663552526632234723613434357117415764245141374767362535363375245144571425545253323566335665523347721262757474146326252141632157252372466347154125644261244552511737116744761463261676734473754156777714373542277261173543741457356467721415526654774261576643612447542612466364765414554437631216153444624543331111557214217447244672273667314534712734456333257737251656511364764251637662217224342341322451251717773161313426744317542727245246256556726452266611555161175732556445346175433335423221242634213766612633377633374737743246767275177454114177441734141356365215124772513123167273516755573435151661132544254165455353233517414412424777516226654522145525477132214713154716575361575457327433554146575265156714764532664737475723612431157751467144343745775611271535653641716723341555456347467643431725116111556544472347216172536637441343517514245661523442616472446613275355773553734277462243411272522357156535731342427744275325517746764737423662134237657422263377275667743331544261245327456726735635632265442262217132176611525372164313247577621534635635127666176536144215216353657444366255164131656476131155553531266225623436524374327346225571727541344617553223654711643323526473436211167412717472576141412342625657755727221352541354525663256743742544575734117335121516143147344531221623235261763145761266323776121313536455565172577727553144766116573332212612261353331635444245234567111211337466722126662327743422443554721767653176756327425767234672473463561267776631673472425116446716274414424317477746212733776671637461232563643647662774475364467427643133517714164474235674432575472175456467275646452141615266125245173733753656514632134542455171721215573162732336631276434355447577461761154426313532416144717671746144252635666153314221623713117623342625414431763416517171372464737233174547636211751161331461173226436214111621727136351331557263135656256351454371226462646654267756714743112551574543726514333542343147442636726463766651325771145453527612613664152167132622145723265257447126445654666152265151416325271274241646446354513422462313144353671116754511362525675246644261652752567141367653553366362672157356646762132111376726544224343467365254566171247132726432276436575213773573711624236273423367357712471652253346761671354624641631171276424751551742271562156342553672645432537624145133351315562153447173366441166572147361157466143154313351467441565624643713626225565224363437417372777477653575364216546212263223523452546727465176754676135446722266434437416226235625427364276335362754115621453135611551367333162266767443621235626114153116416644633611363476172724522123775561255555775356167471154357666336554441332177726757265524512446233661115335336334463156536614447137342174747564333541424315761114157261654634456744116557367477176235223716555452174653112742163615437741727565775573773261416777544642143223723563173324474475562246453175571156557123562143711146125444224341317321661724316422344711443276326252441553325151324715252461334352536615456154116627436716132671155156613532244145221112736216435143124471545162713125437341414131434274261717211432164243274717743373722124145217437243573264271631233445162673656774365624343427442127626727374315634336762425372613715577547361764537536112542644334215263322432714161661745343775416136551614125634612126742242174131775171513476761213271435646441452362443173672134344316714652126365522133432635363715726524636454341443716211257452155727573452115162464414623777225717771336441266444176562161113725114141715133176577567616126431232736147753354344324225136111235547445453171536251713436436662436374151461654513614157723772345216523673162632223647642243561312265664313467612215363526215346465165616264156377137513524352231157631441266226141112464722355363355533652463211432661373631467135672177447171154342473677156751642762127137245571142542547445642251453567424274412776243321175422567136712541313412247671721552731745755122244614142741134223325532236752376661376573727331574346661666116115235725326352543116716264716726653454317255421633633443253266743411244161643136332677126534351724137457554161724314337124452654371356334633745467134735514671331565412174512242354766537237263442374474266412541256133246375631171532251722316434456773633536536721247232562534173762466631625426642576166232732242571375456211115375374136443766146315754666776637367114651156174134531227727614642744542667777372156171273374671215653261257311515425655115614745634153377321371144723443324737524233453516646763466743366761144457736271156755443341676475611466362312327236172426476455157216154415741673612155726564463425242713571577151475267146526267623214565634752131761775657415467117566252641154342332131173641653731667264372137474611127314512716375223764366426226231252643244164627225644526431345562157474174565411275667522665345753612333772654663443435525451157442675375553152617242634472626653754613461775167115411152253332647222467551477427152267424741224256426513554516633762724527543261144714453145722437642325261621634246715341233377364416146327424251753526533263321763617453515343532124117437772261443417772635212334736162271311555137137333244317113733242213262175172134451122143337754374632152653267625147453117125446121446645263166673747352454237742216273621141121425553721445431663674365412524557225527673347546147466337512356312175175542636643512546526656611221731525777754245513464362363414511512413471134726266634153323176146326566673376314177616341647455276154145514456176177724772656416335133624361211117721512611552514421673243454565576741231426677433533266535214763771125267251224476716771411121527633563617632412424223455567632634374574671133415736365143147332173543342556227613652367774647251644362647451552137375266762727713542627615752255215143733344346722324214672231661565172335163755117547331665664734544616526714625511635113661374752452335145631421615316776236624762325742736161251722613526412227442256562362526627111473343454522641636276341323243313737275157354441467323345572342536466374233777736172346136353537517337162473417427553565533776757624734315566522516755637231746141635265143735176274657764172127272632447152772612471477117311341634111736225476657726721663117264674617442473267263255344745664244735711352771637256772476176632435147364665777724525166175662234752721477276211773611421221434242334313444354564145377532674311545117553322711415255222412243321241127443653725543475646164525542765722326733577756544463736523121523155747321326373642335126432514112625741172622127444165122273574177765765357672536144757176561261356766513573747664452373451511546435326666374352631167336517664547272162132451743153126176755422451771273451656364677576515361426626747414462327711771742571653556443314154317321421635175264641515156664226362334437237267544635444333756715141614557567645237115437146636452635373461346771173557473267144421267526754553754242111521644227247411377754343176217374557213246171341357115516347576165176432443471626726511334325323743616252622723516566534256721325616424716271662547534253154315775651342253242526512236445766466364321647274446427633577417256125557644764421262356627667515537314471266522752176172751741523544324434417775126726135131212667422175446546341254166673734433565715562545463527246136543275454356744111757232356372356666544263776421415442677646173663546265576447621375665553562152436366145623676745524312651266532551475377677514256617215444317566626557547427245747177535265243137774151723736544444527246163517411216222625561346732756665355326341362465253471373571371126641615134373737367431172241463241351255516111741124335452627355322631571312527522364122424341112374454616167253312134367624234575243735643751324536355251614454371774462157372655524433423172621711561765116215176533115526627112367377172122632515116671463474734773623235421672514474532113627416117323165354525174661213574446447472111547213732421641121665531472714251171375541624655154627677117526536756533526224122674675725777752551345726647463553342245744132427563256253322617244661375771254322657416741231156545775416643265343413311443642436127771574714551232464627374451414473543355644757346731652427467131526164762366214116374546617724715615413552574214153541521424734616447634274516134517663726421113167152663444266751236442415537146254544771536545551435777463576324172511555522277454164242422464174254433225556614333746222557261725361724561462116513344423541634412575155214526367734316764757511767575337613543545217277514455555635451451626313234163733511366752517665161712336735441721157165247236145346511575253244463561416443456274765146753217766244475352717627337253742474562326177644136121255172517766336512513516313136354765246255212712354534575271136535353312122232552135415326422375234574675337626722512345176347164543244767141645126362774731146624347646763157663411711324542434151746736353331713715157625767575612615442716276477225277676646431632367677617551573224313271144137376256337216475621242672776412451367214245276771135436625577144213245561412273336261754645542363517366547751323252447144532167442471344253374632177274567615753222347775335127346357146731646257525435162765721656663676773622764547465765456555455734633235535212167757425412266653457114766471726114756527156134512634222172275276674556664471153435757277537347347735724455672246735165147114141243754433213537434132757651474611176651372565622346543642771353573367527616561735572176467535726365346447327513474614443435231767633577542514144526164536451461353734677267515171617263222361535732432352433152354214635775242156312547723442766427774613426735565733645372461432442722465461131633341171341414667272537317522526252362427461167177253315266531466614267136234255272543262156224276734737654411122375524131662373117513661321434664456152352673323213563634171567235754312572735455645227127116122621462532747475371713726736647132211454767757476577112614661714244313723111741632743133623724542363774374412515711333625227774134333154445617321364766672712434771476753544577645353255556613412552447734315472341676443424666245511615456226444543326672462316767251126131776553714774143375314242353257267735325135542273633457516224142755611323271422674353423255653761542714334475566333576123712322517677433173742675355457151222573463536255553652517366365427766246523341126415777135754536426343215452564436236132731524356322634411667443365212516657215241424165265232467321562566521444417226135767147161351421413547227233156554651577746712142521442576774561347431524424542114162332332621156221263746413725433576121324322154374577442754511771774225661116436227264361143333543167545157634645573342456713356654542446442727516233511371547525413557524737777524265336512475336624766362472444274736771157714515375244373651361773764712174565414232762356416615313625224613364177276534516376231632355737375176736713553323246222466273132643655455724445673425665515131335514451353611417663452333746271653437456141112217555772516327426661736642663213272773245177752641754532137441167361725535643237334127223371517556651334222444461213235565536413471544157324764274421276752533272356163226536246721741657142352627636141133657552156144241316611564317533731716224231646711772761333415177211143556653654646154227472271232346525413762557464227256417442767761422732111167671637661645244242325617222232121324412577215631274755767324427662233613635431667255765716562442774375651335423541236641627175217536425667532177232237423523353246272671644155711335476752211544565154252677567744515512744131427126644733123227567232545241422523317123426637626752146663124217542544277174177775323221524334412676326247757657523744725552213373235151256345416773375253475145357175333357137721361175354157626546461737632735763214653451543526566661664276676317714363457743612571561227327242254614242145537671761112135262577172615143716177177117414132312321413326536545555466527144366637761334111765643512465571341124124356161276663234414263426421133471476417415732572211463425642211361232173776267411666222725247265322542232162122227143455162221162336663761314427543271127242267524412122242725671231333457576562232533667262742275247616567445672145545573771212736116776752533737675454154275471233233731414621672346155576347472724331462153143317326167614665267723762177425146167767762341776162452772653556355455543612121136275475664141717654332624147242252122711326326375141444757614233446537751523444342327714116421664447436527265713154155657432527375342324233125443152647624176225662224557153627335432533244777656717554472764621473757414713712522661237527322372771741343733224524746123756215516573746443666547134137345366747726234261667544557274337757663656612341337473752111434553542231122356521552161313557134512725747376341527735276643666441534447567335516473332216674632634361442414254225457772652345637377444514233764423433722166641762735427142447223476761276172372575331355622733312221241257417667524562443536277312547765737736617365523716725166344343146733543672554156761667625251565572765365642267267255341766245716124653437767176734557756563456377775341557451353641636425164614613557535514532225212163772462744413476256542654515734434662177632172721665263555467723412731715324426526234512457363735147231764545321153635163222625332366456723664611364774227412335664633546125525644444276137373163556733736512316763472426356765343256662433765564745376144743667216174456146515222751666372671713532267273155616714274725224226412732642267641751561164616441271475573131726123363412173737261242732434537543272544754357467423536772546533743321725463522474166766334127434766752521264344752752716531573273111373413151656145356121361612333554735453431456174726256456513261664442626153765471317144125444423266561317716455625543155722515734114245256735516463612415666463274621436441112761451632421361571272336162214513541634276345434455777527142632217314744661343117671573671174314256652332365776167246657751411236723367536437336464351356437644457116761735762627246413456533212312222324123215343113461335666117332663365625452653332575374276242437777473341536272462212743561734134114541514434772334422771774476121574566242643275637147147617623673442377553113677674627572653143511737626331627517362342431145426423514556532522562715271276747612174541424717165277126356142734254621673374314744766513417713332124114554376613422274544546212314125474233734476716373151771242644524137553232734164372473636124616323472125231737517651144165547462141243677673743641165563447317633641331231646322347217455576461165123356342275431554421272147356172427354674457525177316433461377642577351625717436561334773743121411336442144221167233632247462624661634157572712625317634573164453446255335536722453446227446213667615542325211366743666622454143244617142664133736214171355663211571516175512714646456413472723713263174746156652426377631243543762413121736615276127114321565274445656752654464416337762232663446135133437166526473411725224567413127463472455434775717632471351763742212551225725636621152226215622152421453265751643751263115617215547525254142135434643274176116564657374111224177575714525325324772732443565116265167543316747546742276465316224734722343156234731242231761514311712257575512125353566565655416411647616467773437116756453214156342244222123455577566323755474332566277423772541536461756636351546467541752136212747266142661145724772276412344441466274573611313123243274447174255114465146161412747371744144653364122525445416714653747364141371114255133674516263677545353323534153756346736655146722641323665473611435337215122734323454653513214357114134747243775243731212622247161415212237541214571623174412432412233467534664454556755537163343477155122521366743642534444661347254157241417214512156613313531555364272453564254552453714466445373124261641376645224524162127546141577665614612425767575117765613653741542333574214155565675455653357435662132663311171757435224542616564711216547747735777522217411261762712765752755555637151123151247451661566764452344353454772227364563533421177233761256747273121666243515726652341375313222443643657242734731256417237663747443122157363766113755771661375351554273123431343747457655776523712422145411534732176173764645246412735465442255565315775473227172464123777225773633544373526545673325626641447733416746412276156321212117154147311316347576475347461772776423464625453533374231211311612555213714552236575322442513714261623213772324375237375665157517771233643115635447317766613665554517175415171645677176657356735415526267677774674673572527513264137656637641441131521113755413126113777775142265436436145516127631331332135263137662717467363365421654777626332432723761116346111177616672544116377576617634446566547437625325346426317473746525472445437162726761522651165141511145627636141631723272317125216223116171615171313532773126536461173614715516737233522125611661167357751543337462735351152231256274313366733672215743751275322254614154746446567355652113545263545162677535473441137351746554123541722164545212326263356133655123334554232742175135364217675527774551375462612516355615616453452146366736331613447132732617166473321235751732316323637217135165427643441655126761443455372221763757335414225233271637511632131547562444766673323426461464667135125461161157323654634173573615331176376324445644437157321511464673534475132637364272344325575164447716623115234664122553424143621532514134641341752231674321773766351663452515513146136651161461416474133224165311235124232377351212734356766536741463216336463515621446246131736115425352327762453617545361553365736474626715163465543371457175572451244735555224117331415316275443667262757562164231211653573351546665773142452166116314665233226275614221456676517447747574125634435251227216761634732112414311644563625537426422235435617231336125377152225177222756651675741543374422534334366675653753547634475736213757516475273517165267627324354562633474234615624443525551226615261541363155547274566345576457176263312717464525163131617645656515146357327171511225215263141732546513656656131253774634242355543323717775572736347734452517454726331337221314347343627211157543576542653624362416677721237225676462741334162333234327544576256234322565275427152515473153712625451647376232147431212626127312151235274111435571731113735766114141667412555345431643145135657453451523771535411565712615312242627162361445376456261442274531123733352535276135753721351733235542767234163615424135164171524311527534144545317713512322375746127114537214145236521743374172674626371332146551534641261777171563324467674563535221341331442511253511472747334165323566733174212573734142276524367635531142774153456274323276644631424527611335674624256617473165136422514547331723541422372522445417661456323524761224344636173644733161632173512625363757667264551257253554245531276665663571366314342737355132162752637221457322647143211124342556733655123154441455677122457724621326131455732267161773241233636761675133535765175275623747442342442144421237746476372577444772246352125151256737767247324625141767312227335337336454376171525635655116153575642677341162233636535347244535422613641156273576441366323766531622326324144424371541372613556752273146563236676744715375562461512225774436226124524265734313374636337673624646211636443175445127154144446222743247174524361172327725473325622246367742572522764157737471264411357444625717326645631671721461526474166576627673477457652621164643442231233123553622627112111514262315422743331724215326531523331573434542215311131564536622154334511354614446542737314216434161451417272755532725156477342142226477526625477671516466422747162723164165536425776646427724733134544153636472371356127223626141626323626617736274127252454262453325717671775635431365632451536262773773163655312551254522614624124334642237172257216757141734336163461774615232162761675162534534123213674417726224425233316162573114414146151614445157512417676371641446263464732556521163252772277455263731434513474474112323544511321634167557727471272334712362425417117765177757261344135264435317417327246153163326632461134756617752676624333666442627133532324312613574227676454536643325561121413674326376244631524747426641113474135665573376347744726672114553155645536165613627432223524111426314271776561152124446632452434465274274163172313741735174456114734455164413643341554364641563256724523273577125312741325413721534216537116122752156312153556643263146257762167414236353732525744461376416525665372147553635541227451311273671532136124517273324363524645234427534445117146361127311165521254146524336332372314355574256376722765531555775246765554273142143252734173623436346224655162376724327751443616644565352152321113647545721373276666523122344366753131532663113112154356614453267664647246461112317756641375634712317424372322644631425446331642214346666147424711153731565651211635525323474176373577566365475661443216555275126566465323263653117351326156557427376741251556151135157754741724155741177164674116534544231433257645764163563274167533167333547544254752233663362356775732377464211516123422151317226721152731451521444117224446351253472675733216452273124551521547276475272533372611234621163141761642552635275567613215414122237324462766525465345675456152465437117476351117555446223241517454474545463515663331262527567626466133613364144311437712771173633557131467275535712713173174566155151237347733624114425146426424233366214216662214756663445317124342373624474734341221575345241616136511262565122345426142766751673444453642453711562367677576666224673366545247215555635625414237737257133761622577273756527253245364211576671742171575457314532451272253744247457437265125611156265574117435563535555466151365114775377453131315262121147176521317151717332473233435531542433565563664621167523165641725361546436726417437472671575767537524456341121265234425474365337321657615727246752314275625367422611712515531525767576262621773365455646322563373342372675175334172666527667326563124213113556166455237337263251464226527164113651474547556774153564356355157455535311257251766246773531447315177731167214373227121414541614323317435355176437453523177351712454337275116663747311632667762231764775426375571633116316316643751542223744643726432373334221435672213621316627764133477722174663225577642443533346717721141647351132127363646374376267374577536741364212517556276125265536622416655267552547477323231125727261255775142337277331654176667626734535453775635662747466456441455721666166552447545523351325463165254152747174247722367423251671435243357377614716356337666746722537254123225737564327476314215457376117443236215757711642372731172614747473224722114212331645155356654724336147352773237235133677465777443341315425132764471161227731774331363144741152632151164267251613743367765113377514632251216267674233142663114274551716136746147452775363615324113224737145642521127657357113624345742755452533545634561671373647444532361553231124513564724421464256516573226232672262574245314731773543265117461521661425156653143441751671531722172253772767264647747726112224535753453651671355443354366612374163442726116254732257716771237757334436347275777336341242256365321763721752561615531655214752524623316414663155531636357666247631363134623331724176735133657542762415177434545255251764452335645716517564147776524633361533521211263351676776642234574657332454414141347237224357141626652117461774222255261616633725673114153263715124642724627221711322731357747652246352143775117333545672577566774642747557467423671461732727617214511456415461141127213415317337612161733661676177122452323346347645741331427231344422745372336334221354436562516267565335651415237466142111273232321753441622445475413525746462524622177352436367121513327167451134343462554513536711333452416622366537725565151742116554736512757733144515422427641627212164272376674464227453556631651161721252152437251237575561566776171225423675624156726576554564364525261651533137733713572361731372122226263677774466756315372332645756716476466126734754575737124732642513451374476775555262315772265546115355615625474332653372511376377745526321171433712252524763514627363336345521222557642442123524644377243635157436432665161552157771616312126252734333743211545535615546762571713436733464431224726664562653164336243673347471163643422621236672625226442422632236571764776775251762547111474621571676217276113123471323553345414475435566471112563515164427251642426265245247425717526167176362634654467224276776751556677445732411157713522331325414465431244515524634176341474354723567723314267662363237317746347727613254773661231554526522365451441166466666173251633415653531576676635533544751145527274557726627513367643252476257111665671673744313467116256214335425314314771342772674622544176747561331641214474574157423744741616153356566337726434476713577571526153123155757613364275546525711625231646354436174524311172772754677764731365275761412521731337127725511751677477437713215341253264146134214354231242453121345574311324736474111144373625642532263215612551263216757232137412721353144322542272171735331372565622236671756376616621455416656341655554563423373265423273762535615462147423652272135346744127722551665731236555151625422225336415513517542437245331172326141721473244131565411354354517423516766224641117652716445736167452441274777111177467445147147114461612223243444323266173121733462653776212657312641541353356725313723545732163346333561226742663254541244444672645233355261341667434461224725122635274112257356213561614477211515424746274221743431522363315475341645564277414741734363525474222325215724666464577127322251674747667352152721461414456575766573552521145357427661326216124674363446552417462457513534346626455732576151117454445611334246274617177124145774537331375121742532541552355266743765134747154227574661127756744242156643661313364744267314271524132137426461116724454314145131635241213161223116654325621543637455566716137347246667453447223167647542465412445324262645651177353241426251434356616263667671727444425334366124114734322432525452134756426342663466212554737576121427374321416765716265667741554725155511663572264273763167345646566337315574724454644143167765733555616477272646443161417415112371261132262346123521662733654174122345453611544126375572166577272547315676153465425265415374424562622511536175541351122651214773176447512512466424646745275516225763643224563346123626447337142741345666346713615311345211216333557237274174356226244764226752337354363712531352316626437326661527155565732271332333176141727212121577474114141363713526722732334423473715512542733425327522646311751461133477614246777751246277315443567121112547347235463374336773461474427563617644523253717527167337171767342237622247631672622655665154171335321554536627213417375773514741513557244136261431452362653447421777123446354511567126314661623733634217246611171173124523626111474134241243353463666542123634774421254412746376774742154551151614633314571541342157266733757131514245625673136454463256463576667314177666273241671221276457445577176216136443633755766653616556477412234111574163662466157736665647763514653272552731546642532425334775363722211575562567743115652342112513144315275464451761656114225476172534354113561657755656411241162445272514262241245643675721131274714215623141265752332743346377111622324727736545712126543514525177342734141725626741735216671312456553266261163661763525426667725773223142351647636211162647742452164372626123116747145233237514624365441362662576614346673643435174532577766447227553553246673312166356354312344334721436425667177745672444671335646173635524544631327665354421224124417272565242415364131574525237672633211146277747453533225641632215447644554561436772434127424546412365754543725626252615746424264324232515277162611271674746355121544725555554755765165551427323366172556333147547456135217341571512667634331414453366121154345416615761314346124453464473126671461361412151672341627457163153133361433647641265366324444743457715752455542672437373746634112773512757534725261221524571222512173471364156575527623473526777211541777314365151152412155664776743133775533347554626235723522327743353735463531343156667233476472737343272566513722521644314153456424733371253556647744476123562543136477625363151254626647215462766745636456164172675451472341557443245114723523623571537165132777424245637113414753157156773173245562366377541357754772612222547435664434572647536246526742227253142514255452336252135142464313516171516444717545162716345717377376467335727613421722656451317431361423115216542744221276237373422465615536512617223342365215651116521373244535651124454216774716161121446222777122651472211512511733117623734746224365517577752256556652154651414242724714122447215172321116151575177561112446461211543744762153663643763227176317364771461675154541741273323244274573742732661235423452213437767447745352537562435712324661657734131756142727353165417216275211624122736141216625456476226147232544157664114776534414447444461755353452763573356127663531271475144573712262636642637315434664411251552711375351455516261147411536615225365714162733572576641735736542477367617274553743731733435372552471563514262466152255532472757237276657315555463612566645233245276775636574454745225711624242162151663544222726431242435752357566555233765156122246471117335313362115313232734261221332376137566771442155251777122255475421377367423642366557462717651412551571552236475444322623612143427671655112742477141444736133466456634544742223121365767773243127724577273515737166775666313626731371331773517535525323255441453474537627211265746572121675132372756741772111516565711171573144451245445656747527431531522237575723656355252344226363554111177771257115633777423352541361377471625627424113255524772141262332424217361673322163573117237463645367225425747167456756111151454173236777575573547357277375533163576467356137475533462542316535124754123635776563241325646511323121622126737676123254751632154477552165677757552111616771221767635144643531617111212173324322475212665367541553673214456217341263353222275444745356734745113342611223553411124553466263774221512643232563665354613541132565646133555734314152444727133312116722471374726334411773125467667552133252653617461572715653552621154362467147227467661357744327434164342257311341331577463125151567334643514141315354233645354544676354735442562331764441316664253121415162442576715341572472717331473221555725636373543112275147326537724527374243517121432155171164165636767373654677643161762711526472411332737511476714224315377231462636131122253765576231767713163345151253472177557373412373621255772211561662746717341672163322221542631727214224261241551123355331624126141664212447516722356723225731535714344612672515734746251763747641274166267447233727646754341244364174122175121424517375732266735436257367273345125146652271174751576645665232734641537161171666647524413145442146323231447535423315646254131435476632766133774244141776471555214277416314614341154254225374234645715745337664761526242112435231633426343341752123751262344261354525453617774327616744212621755427276667511332424321741344342215335115275241374127225352716331765476126743213516521356561524513363215213433115771726776147521156411331614325715111727625571717667614775436346151252355245335234316727413336355313631364711643315311261514533373651776511676346761226366143472171161142342266175127666674354653772127343663414315274214632226527122266446126457311621375637412435644521343271332335575251332515362744277522745212651327543134552166616762157777177231315627275425376364513473513437467242373244775525217451132415455313632357146632553531535715644314571146742745213566753454331672362376273576421617474653277476545774634114145236317714335276143554331651456113133134667527435723546534762613336752542623756461735721427622256753337411177756153565621712347256571542643541547135621623256373144232515273351463355351776626344766147157425454112641151744671377123142175552365563717173563613536232553232572267457461747431724646223646736254333462576542644242253641654512345574765652145562617266463744271752441145252122414444312616246333671724651174434772324474332375565767444664226716242512356615465173247635341241266347515476346166473465332367576444416355112121667347772347331174556473225442441465465732655675444275621564632117667553747647314125627666463673652637233211253665457346425674363546463113332622456432374254724262241562225411557322661477272531666145461231326262457521631725224137777724255113342434611723555161252255572413741213675177355164213521211441755777467177135755415657772136244144713133256644324212112326233651451753271176527242454625542237265463123242125232411712667173132562114337643365637641146146463742252525672131715711724722777274512773553767172572515371571637377411765365474545735475456642562634642511442715623362241125374571175356514625517746373514445736235174654437322235275457223135642551157624645761621356477623511656154756533333314552523516156254763577544766431126467741667575123513557267124245274277467537252642226235257564214645715661727274526541266356771465377176217331614451771635545714555554476532532367457453131631317775636512674225154122435431663672465445535351156461545411477776136562455313331267455216266175172651227141314523561213243152661167213221361734322453776374674673724235265471724371771631412112324141671457443772273465647152224632121267344545775234132236461165267476442717627433757372251467215256133324315342651511136275126744756312632577276267473213735532137151255545554473532154361244466464573257745576761367737743421356746464471241151226323236672641755713453571716731753215275371476177445115216111177412232172133142735637341362572444677176523721333727165313454737336357321634757362467112471164117766611173577547176771257375777776677711367454354255374343732132722124162727565113643277612136242544142455534255553214166461424512135474241665553163473242475255371137545534471627377635164572431444532316757251221323722412655132625756764672134265551732327133415122732411735453232346577673235651253335522276612157746126533231446712664723516134747742626251326226476277561415721125316224456211252161157312124236761714443373411531745165361713673764431671333425421137777767367666323523746212744167176766735713756431724746142662611611625326735677673361126476777271453125112562652311423475274115352573473553152373555115524346765254525212621741326127762436426243625347631635767671511155636553134771655757547641112317712567724614613477565641763214275565476251551732121676174325146614464373451454676775576247154646415144473651331241627644663456226734574762726232234323722377222725466155366173437261664723736241717615345366541567745351753616677651626455233411316244452633632632113662514765336153617114476152373663743553316325625647217226455744352747261124515461523545412226754147277212572342513161542763751476316337521164447147134332721761632566652677434541554117472512664244232333476152227742622273372117423766236755371476561117336641614213236244774133723723157144235666323337737453154556775712545335166433536513121667561272446371122174347331633122772223476337542643416433525231341563733766133221453425611525652731343741744276455627521672361575642235333764631423574765235475261375232637242375564354116646474625451545651212661436756634513276754241626157356413427424775426433157233257274156522454264737573217344561673427271547166662551273121516777433363647666444643152564655564521756443331316763277557144622474413346672132741471357264755225656123114237534664132261556417376222523156122521334442531461522534676224731312346124277346511765455477172123467461121745736235674433434657227366477615311333124567234522655515444535377422145514531372476366734471327273516257743764244162175536572612252271274573217636246713672763112423453133454457464365556145567622361574252516666315173121567561721712526711767532333754734613125325477477566531175363176461613446316255234121331161461331433176637446261673127225464531573113765142752151563416246711772322622335634752131511446241341573766222615423637677144167125314514435637461144744661461472133614256742727225523321457431743234763666162213675227474346454767565755655275575321261635562272242146644355234656714276756275422547524253766365275515513342275561553371661527336221612146477146333672152144171114174411357375332522127544154356666247415336252444667654352176776523653537346613273377636247136121317752126671342671775611634535777615211712245336546231323776616576527522756622666413446136136637572665263764344314572476312275265353773411135456245425247566275744455725237776724455423471422137514216721122134413356515641263144575411614226666333114672631345724576576111771533233714176233636516366316376361525216617644347311147171131771252612614677344366312413416626644746336726753471341573254746723536373274273453416671326132625362132352163431613613655551154774217454754317412673377755272561212157755417342542172117627715236555543473441715135336331433256143737261634736531375137364623546152211274677654124547677452637654174234724713425711762721223312622355741542273763763176232553145374117163274673213533556653357227541551212561223516253152427432416674724214245616435153225262543343744565111713747464715545622267464333755245453412122767561127756522117545312653775365244465474345567544475553263722546124653321776253514272512123261212677433442351732351533656375426726151335564776145322727751423425423456346636653314526415467142673352276172767321713754534647736464614514123746156544236514617656356637432137654522155246527476433235371415372155263127661642576132762233673272732333232337617524722236625235442565111343233325611344126643476566376434767432334351764657321217151723412464717446545242365325423534266544345312265671141612554731466234651412742433656747316112251213662744231314671615646467675725474711524665266451136715715517251752135614432361313225735476524623126527254514554217172553535331654435553125412133143323676433517162531253623231544216466343733633226254546251246656536454756343666623361226252251223271566633123174333556314531653273362345767261635373134621726356724251147776251622236737733661562111336445254456612475517777146471434267125563354733474414432362445155261751316671142613256514757566376473424424531122447321126276147117363724411533761732134145761662731334715752251254576315774274477433123122247375655775515226667642264666774623531222162774674677115664473166551713122423123672673353142452437537153326547127271647253512665741147411275116247235252534723627134766215636653776434726511213215775537423211672655266231351673564337471631122216134752216315755321451445667727723531642513471144372557235347242614171442721135656743756613637132631166261374252765464366652655732237767221557156626444331537224341437553737745746513346511433277243132425412226167434476553262217632174646161171253624473721252246555243262211327671452664113536425251561621162153231537242425451115254356474722254427454736565575324653633424652435472765744525451756442715563735575775672255112127764274644247727617377525237542642271756573525671641723656644121257445237521317374476765751362326454271153223253624633327365636464325332654372764347513631435474237663251611711545626222365235661767276357577664447351627544332437461226266365123167253327754321456411341277112321445611716431666437564714636251225125316162141724173575167115147551312212427531131571427521226213453765137223246317551624757617245645461473726667655137524625732426375335751546433347223774471644564437135112154572534135614772452725131651767551744446337731117321135323332421524261225221233164311133376647722531744465671121651765335322325671765444135257254453217742374255355112536343371155516414554371137742124652373427267331677347553547662457612353412434735663637325324473654721253526112712416447373652131522751224244556627464524773335311676741356134125275656367512454434341575321123533421266251525172647616551654246672632556632442725617654653276257552627613156252734611416727656633725126424452654256426321417273576377343777264513456417542471151612746247256747216746124275412663757713731624755662614334114264553564757153652331621355155613372642457466653727273341757631371664122161766467511744253157476465171377476346316424142467327456376327477334165737543613754713732675645772317213257657155657154454142741172123342331435314233667224427641143417753127647264454516261344452723721223116236715475315351126422634156471435336766522266471434636244224261623511473522573636232257672331322773253646126413346674764246212573127474226257525325714327357531133713646565636367162534672754761373757546222267317563242331146377675561313432572641155322546576465355426771257535644417663454413241722532651743521263152626262526621173462455147166514766615177751177556715512532422122122522631752126126671155216532634726312316511433313521243216462174734365247372743415542164733144457276113754347711564163456173451411312626354345434143512422167247361563427145711345716161411324464532114732625151643651722754533217512324416324411677172271763474454616366212643742752213212553222612641561157364652173525713326627775153352317175326771612345237247756424655666522331432657474517425357654634477544716314344616761637534317167755465315153455355347323764663777545361215444372145271477167466532462423377721245156225243173766326677226321345153765523233441473362215131364212512464671255316635256172131543733262763771531535244744267445641357655265242414131646375331235364252177615156513677636463516446154273365174156546432417772735644475124644462237174355455561466225641346715247161516254143122645443576461114232474332737342656312672532553275556473576634721663252336414744621552142134537725433675647343146324431544337332266566453411116647425472225261511467336767262766137717133652133371443353272472324315331525141372537774414644777331253246144314551661332726516452671335342662451547773115156735235361115216553641637342757754516455667412361645742766364263644523371441571766564673622342737511751136375475443744336673777752146361112743421116443432142737144162374672143354132374677173117536157446564111434774364314726771617554532134311671351771512473553541224531252443411421472732371755277653771246621652131344514523433321722246727126222367737411645317572725731734766324227261466116167363276372761613445354532343362421647611727172445214567725363525723174315315662414163264723316227437151622471642461611424754565542547542712176435536667256644521176154365616451324323432236711221237566347125367611355461463515731676634647365467624574744215177271163557527366351741435267771717727314356425244451535354444456557422161133667235411246523262141222343445744777631646531257354576742277175514567764647175743514317641741421117117513513326761422325432675615726677361622611665721663142553446347215277562757462651256443177745656417475774153337546323633747636411451151655122266722425711775755113231227141351452524325525433145563724641115143324766552416732512714517622425161667555717623213314675767233142132276116712322643343241164461613144666766121476742356575243335742447445367427234572442176522327574531467442456145472513575731711555534667246162732314564367577546432121246154441663452112151245112325533347125374553773177234135467152427521252727221547662476156763234277324637743726125455353252614435476271166372313157726254536271741757177137272511673532276136233321447544763155234617131643566132117264754351725516533626215211431356743513615476351544574315462527425175367736575751337161537172155554414516476275347256443444641336117461437451175232216542147163174132176344354111421276573522242764215231577117242372143536643731561274455467425654272445432745225444223762734421231414151465227665477626112555671633441517431321152753663231732114463453525151157364664326511633373652233142251317777331313517236534761314422453452526657337264147535566331517164245233157215622564454311551457214737455366257347126657626175715522471341157223246124117617322273542675724756413214615717641272556756652457317541343234137347526433437674535523766272725752734677234224677562751617173611115575537353634613722214325525727476162226522215626737463134627677517732513143525431477113476466537423615221715457527631271246123166467222413157153137151376217617465427661316313737754115645727775647636766521233121722417211211175262171742776417613145776237457266415573113665646364774617565574445226626315773541237622617361145577352373214467624515666735731521567721352712163554454246153225374477445555155334161436433765635366332727625561162244171426172741664175171646756312623654615722272522441436345166461757541343473646114367133753512717754211557234756417422117471673771321477313227262134346315515776721161122444553666313153733624425645757314162361313521213616251154552413212451572165217677526543222572124362543751513563546422153223536274461677757437674455654476763614353342256312273551456117716376735373637551762357424426327367373123375354463717662425251277246542162621277561667121756167123776115417537576675527614515526726631471554545425276371151624635631661156643476336176213376161643754171766436263113634274273261676417425462211511774533244574673534615444665746156633157631227512264147635423341224441434457531667475367222455677245427166243241372741754121711635461577324652172215473726127323262233365762173324164577322363673135356264475731546126251416676313151777536342316321347411211243457566443376647512637771233446614752617241134115412521633117777366667515517331213465641262361427276266751775235565253472731762123742637741553433267641134124445741235331317643262355561164447354576333464457117355124334617755335361656215326464116642234233776534623655476335151744267673212154757234675642541534152243473612416423222775142225642257526221572534765356173325122331323345314661367216725361163326361625467156375336131767167432451442321345166711524723132774242217552575324125317723326427333665532113655367122224566537564144727232427356461724462356334151644651732671547642272536473727274751765365431435666741711223243641751576342416365171362524741326533573447712537351477652456621475165431532616753714713362243224122565631233127522234652716447743322226341563646273552742615722355476334312717726213311614415634474326761353246177541721371273744466364422156666642645715734437767627462676565442736527233676714616546726615463656442465156647241226121773541147114252751636663115727131415622542361666653552154647552633416672122371176465772566545742322313644765215764564133111516757323576375116735413221522514523544134664516413154566641233615273575315165736355745731154446275466217726632557263657175632442321142144737214243532451234572734151365767621446622177233574117634654463455621423533647236541524313651336731372565241165142324646133257152222561325533357473167713432441562732153537256337556546222456544641257743652614572467411556434231356342641733413752714172154511635563757253533232434745163644731617125253526243416125644331735716732546222246417422326641145746552637652767647623245743267754542134131421315416724421747656543657472634665446332715211315151346477552242117152363774135743117766635262573471726337133621243251245773152423636451575151174522536236655116472251421136257521115741625347377634617134652645757553636464424411273216673177665754336316642424535156647366445333677537535766353761565513461215476561534344373511771552222242722561755571131512612677211336641121225676122263454655565632615631743442364513762547226122374176265541167552157244177173242743572256556434542676376217443737327665534411175354215146723247372367132514523452773511373736655115131311773341541132273565464366171243443777154366425775643212112245523222131656422333116321633777661273427476562634244116362673661771443414263346663413343633111321465736464722522764421613235366325222767562134453115377613331375136234223447214534354246623743466412243517421264632366347544223764311661733262545614637515231547271377414722317117464556361356417457431124365265344622452627652636671714453113737532711212271575555656425145332316571522153332727516562365121462443526136363665656625765411556113476373241427126712677357335336717557265236352343433362435252263237347772747274546276351777225552577471676616462413337531553431621761261762722172535671767333435644753161454574747531647773346132631156313774411365561552126741325343374775346574353522634447673447777516352123667243427773164341352332277473662615346257556324361523132773362454272127275121466641144545773331152374234736176652177544254621636257572175115714314262616361365373254474125715446776266126366125444114635327264274114135174625452774556322352772524127727371251561147211346446721342335375533672736646173757653676243673466761253157761466564755611262637535554173763142717316216326422466343752352667167231151774545115642356424774714737144344631533437555536337732334441766662156322477263226123356733243123427462622641352375533436162413656734317513631272645322241322127622454335622141236763116342444546614531233447673572112156323661661435567745724374516113655335435561456463255625266161565322766456613651277751511411677323623561352631742746221473552623216665712275373477433462757231563541242463233463536716113137326564671157472752435335157473524314175232273461524366265244417251771414624152146675624332114743152314766315633614365132344653367627327262165445715622255652217263235355674342252145273677121141573431121455713227737236241464434167212251751274317233267346622422342661666127551515135161654215353633731644622114526445542254712375562165451772345321764422713244733232171167425146356717227545357564763112755473331122743131655744354754353133556561176413612316153462227643212177311263643115613362523677222342474422177417272531723312525641222563765646766233344516167645776245555441237164512372177155665411377733166274656715214233122763232126444354142743565321733222534146674432756343731463566277454257241575612656143321571421576214327461163357374536716752141662424464573732152544535525632731373742522136343526263236742156275571744367124476436644447764574364462217233763736634271216566226775127253552155131562672551514414236253541765572557147325577147673511274472243431545511367314363656766535153337475146176347777455264231735471341266717734634663432155251111255364375362755455711246763765223762423242451116621734524144766365536754321433234237723436735653437345666143455211112555441345772745535552717542542731516642433636523367552646124427411474651235116556645231133516456625372536351325121735152422276272622275132265717314721274333342645766612731533664277427163517174774574767254454113155173344345756525235244612423627447174542456332745671373434627773713461646661176665125357753763463123126715716715517344343641216622235135747641412346174471622614127642536524665122733473555747342345512565154675271642217174742366151337755555365553714115622141767732121715545322624335226434622634351341715456742475137173554141776722134611626267172121317124214716232733236755765167311213635447363566272711576314346467163621677346176416565327153733742425525543353234273745764466773245726573741463174411317655554112624565272251662343464463352152253733543772167224562242566665123526172573671633473736114113515177716367556551212475325726477127121747625572733214636441371313225431323774371712374342363523146622144435165256426252411655363364567233743472334252433622462617355371776346412231314676155246265125225143715221462153157614433245767663274137275414721173555772511471732534564326731132377277467647632726564236121245415546474457554766635351263417262135664343431126622547577141277372752627162215277345424432461521627172121331151125657334412555536556157224231443122265726313777765664776332666272437123163454552241742674153774141162467136414641144234742443166175434531311174172734321666174723567333374514333527262341262564233376746327153524442617125313737266262225222564232423545266673532541172514164677152436265145431716135326135416435671517435211313126641665327263752144171621142363261447112731337553363355561631346414324636762646275523272465522453726471377674524367726266757216431362431411273642635555452364346376542714744227574363731371124765732224637361443771314454566275177223615544711222454122472421121153434211722253511223473545751166331763265322773226456144632651615723343715274515564361755263344745463673524176745414623441774311241641123544332213775242242713131135341625361513773526753344761773641723563633143435443161657167553545134317624277154562541461435713625256342673627375643721765666261717735336537666464166376156714125711455431321366165125633424246641126552633651661413266542256153256134326625715165415361517535744766312274116535277635127273777476431651452234155752664624224163137114262475124721121574225644346257615166712375526776321115642461543361362431214114156277754223471637766141363765472223321753323417476233471171541163435432155315356271557657144153526251567232777627776175771417751717167722122714175715425565674676616717222433254754426316266645545347463645163557132162677475363217257444354632646155356436354716135111546121426233171643572373277117363176232165564663353514144745765374231351131636164545141555254114541775721123742517423512347141525516322433147432364745112115351231173235641614134427341451371323432766563754566141165233463425172462351656434347456273452724633773237326151526654564242344637346563526424615564143657723417543322765546331776414763674335471753342737752761632322521364735332667274262361554717263331735567147767575644122623643175371756153162743646351544221447362376225635143427465451164242362413444337733416456123332156215366534257264635662514137446251126613432371674554634357323142154156413752151527123451374722247744626225433675776355424127233141644665537737537566237641775223416715651665637716622627117743314215713271774115777371272375636261172323533243743663722353237766365431724342645246447676313221141725126644732545322472344576772214727724317565327661224514415626432423155234777766777561232134777241546372661557461557563715576412577426626115154122111571451213573546532432157572624174242362653327262336654645237556263332626252172446434137544421341774376314535712744441524276444534164725411123416264237657613266776372152363535543266154256475415345463622315761377225643413353717655147372177241254251423741452441365326536563612426571176233477526361143723314557426537453734716646662375637315456433472774575463242511364235672645325624364232467647777423323427361143562316644542652534257421556563252413271655232325733116164154461732252351165437345555475172452644272531551315442126775416764152572145232474131344234715774422672277133362116332766467251722123344346776227244433412421533146372747531562516262523776741476336632526676251776442642657116631634715116733133711364453453357533244165661275576635475644311265673211167217167643623317631166646171217247347255636167153152147757717743161125672617626244551466477475113226116461562317766754723163674337141117156417516313724424623446343464371333373135546372673346374744313546277414367321511255226714356544553635264316461517431322656643211564222754623174737172377354616166427627421622426335665723415213155251122313466321111612243774323231253374643475626621145446217423637177574746527622736514534576763713152677461454646531273544554154563753612757354331452746514123571275557765733575744147621444633753642541443723617315211264641235631714153564146161713741536553436547354523337367557163247125477255223716443411357466713636376435367671546116245214116472433215135724171712636556167737213424347743462562656524544637561234677775244412771663436113174226716717533274475573137752452713774775657267747511123227356557167557345475471454465121257234243221356736565123472223232164712334553465254177437761425643433676355515345664637646117565131521545327265663365241243333755127274137756455773637155377565377436233342116717364212142122663635651374416416447767275316515761666717462422467356416156121531727622677742371247177625627774176162262376526652673674477467776727155414267147446137676546557552667331156264147143233116674762341214423331165113526727721536763224655212432242415416372356355616375117453566146571547776645435454275233423246325362412415151616336243525143674434666226743735767574167764264746545351364576465456155155474117774533661251226754663461242553653337525733765162552221245422116433324231547346534746163645756723367772156174657364273557365271626537736656445474734413442261355337434241176636441772346565732566523336545442375516733722415763756213161634164745552253435224513543743146555263151366731453245412127343122757274224221367775557752715421525534361112142242726634235167252636555676724242343347753662717212771657652376542216175475675617126214312641426746656527216161112744466662734631436311243161263577346144337733166627755364414164732736463575124716113743424733446541511761572214236632265662346133374473552774437212532421554356527466635245627641234365334172163123115543326473416254121447657352563446172733323232633777175123372645556742313626122432542264524771666563114377211554741257641452441216617351312351154273177335462633525553713252367117436452331414167654256674732634676544771141657546353254646233534471161115274251127544132165437717127341262517633617313523377267213257365557543733774455675624756365333172745242541277777562367236652352466313467611522671137152151277556411157141323423636534141371366137134252413165347334752713231143166526766466332366753263577625325317175155677236144453142135661321241146546562575144462175564527653761735725214122461517457142737346542245657452732122776174316353231564353422515621741742312341753133671132514277473477747373373716366313554314354535622642312512432464151473242624477665135216563143447621244346116775512332222536764757713541341251722265571163663362272647675122335653444444132461671275175577743621274641263523724134643534537122242736164441152465752436713724341544464241245374212555445641415662422745161732553637575463543321654161676173241544634564757323511126377376624711474144551513264215236366253655714431117271516246773633651367771434656616661516526122512637536773367352137222174725466553436325664712235247356767527464647472372162374222267166241111575645174224555261427526553563643341242673341767131114753342627363477566233333345567366622115743313372316742277756615566711416156427751544753142642532434515413454343436134542737313655346216455212556572156443314563427241316741327266415452713573755711143751112132613551643314521222335733745252452127125446122133377313511425564165111755566773324445135117777416237325113772446114711433532573425357167577144655345522774153515354373343457156524465576324766634273541275223775355245267661543363556767521121665433242241225655324324276421611553711235367254111533153135216455155262637755566541261673334312117637733131611575724175441772214266272525717777511322156367617247167343133144124365514443324431457573727444746515466133374141175256551515224174754556126532653571456531454115473777113766364743722715754454235544556154713411222323221577332277765573274555767232555646572112771451172557357373657455334545145214424673631651357314757434331243525215571667714745442525157365751571352551453757625161515655542733177245373617673372363262155242552515446621771242422742246164343434377253264471543157274213641225644762322771246455476121415646334724366566773741512324475251214677435374216672143316165573733413467331141641156521326117372744313445542737144136152672623727661145622116743545353652145461441644426641544127556253467345411575231235272714673531267234116255112325156346136422542654275124626167666423426477545723554365757565755526272732227623377646443532437222231445657542713276753336572424647224611676216426323657437772376317672772722554517174141737377321322532623213754675372316457573634711313734322721661723777647332134275467133245423526135733766363713453575132763446243156565314616253444256545113146364332764466274751315253774277246762351626551245377127426146173771127122171124745757112637636126322344555576374711613116772615551774443133152454645346256537274214742255553721526344271145156676213541327733174721341456263744515261424316625427664733553241641457613254157513661464642255252317562727524516165344637756763234374676561443343766562576576713553334223356714224162352321333672245757226211542351416651113564717516631553546764135142144532244335122266553351166612217562127543455575552727237727352242553647225675544756772115153477546142155654521127127342146416364371615313756271113246454326365715766637335145256512447211147542452336371215634415163723121216463717557661465735635146562674552253131117355762656462441532117324637752777516174743316472573444231236447512431226451317571245671714661543116321267321217324113315174161462325533556616642353774574324472733417776767554122433113555124437172271766155456733243621333776115326345343722714342624257561462334161734247542375617225273343476116211745633154634666417744423234156362254463266645527523165511327155374143362246742623332223446354114512147365371474137262625444165457674623563533346375456314624472361754423117334364732654446716155363736331365114417774452244171731234271236141523524351575225421563373336244325577234315131673742461135743414264217751553652247317622526767426131135112417735676751134134166713116527161254653542164677216117421372312436135523723473423444427547112254367742445726261635376454365423143156434135745141717746465141554763726442247143154257227633627427123767223131536164776173364446557156177424661676276216545213761165666137437517447361335166466476376113245226162121265173133672423244462374213536754453167447722255535765517753751426135263165312275775556564152135147667265717341131626474173426133122147652777113275134545777724337435534144155475211766577661435462354672227766411616476465527267316175326225171352222167753161132643474427346375527626734233345643112655612643334427322645313267411776667145411743765163113323254464353461121324624542143515143672337565511732434172476657564743377267157144416227351256125633363222246353624737676613635322747373527565257653732534217752257226672567316473677343675772121143133212452312612647247137341455151413651113475772735732166334733215672714264155267173272125432754453145473172732742451575451746333737471131323527665144571576642135266311434176175612463554537653472332576317311711251636213271552114455215337347565641571112266377136667432467445233312513743773717671543173156771243525232432232133176537144745262445251334547173424376473267775253772236514633274643413723124652262524376662312665336742244643773144774674125325147755162566166322713473274646353347161446355276517157361755623257376343171712652652621117611127147714234425523112213415365417426417143516361663223655315156327262277561417677122517357175627746367335316467412572437546452346215342113743115364647515542717747475575213514353147131626726624653344274656313611624175667672367745356744774465467171671677736122751555155614564563552553656471766755463354123472751345624573663661337676372642147215176456135314457357271374612534353221125766425472422463244537176531653442475245417767225662771565642327656574256346367767366464252423312352116144614722642427246577132376477475275666153325352121235364345426345125742415243366512341174647474317714366172442323557661445474146146614515162223571667633474221735725477275427777156252413144131633372332274274223231572725432526175222541252613346417711665746555471655774166523463556634431227267345144554536775464256713244163227733522174175743361262416235556543225444144551277417761523372346661444142436566531421512243477477443251433423466542532157327457333652135576136723275574435475431136332123626621141622265135712125162363566651665767226633633736634163552337536224346142525131135535722366431263616633716622725562373543376435137713423315511361422166437413226121553123665124275415462423155667746357647461772552312653152741644571566634635212453632247434432111362245747462731314442474141351426634441416773744427651474423674661325366367575347325354136417265311151111277633556323736616624566663115125111577322635535427216765417211633172135322114746761676531453655265571234455142741132714253442251147154631345642155266624367417513632325463251555375277536676757344675433662636567417373372211334624361741143213255226467777734515255451414126544367145736141432366724274717554324337745651735254257777567556271535642347532367716175763142761245733176153311323133732445555762656175113345517132436663557457536556367734414437763661156214371145615617352124734313431461112137731422467662275636273253455661564726265153314276117544772561747353362177541251173746457646134761337537614131232436414377124534656732733335542625557277321673252146342575453544413342374474233441275465222416141375634313627374313761574744752711515236642661222637611324113214464311214413426722112244765217565227352713465367471726514335224147174315554413363375247673534242142414362634254623341332614332436617445541357652377444624467534435472366415322643527223652735377147466321762257642663157454114227277122221345332621146274625231357362574642516767774725321134163122462767231721132635566573222534664272326422536621567351613756555216537472556352521657737246235765532563151125277365262217233631535775224226135164723145351545137621553176623541333657476663376471545256152335452156126616347226313222136473147255277261136142763426731677115244753112224232341613426575615543147452674327474666147737423376514652143475545244767152134475465754377557335142461466713462121737456445511316564634626264577672641515476431326713575325175756143425175141163175365221737525443774525341541761536341335426264465241715753761153127264635644413337421127327545156175667466146462444656522576373223173242766736313661652143772335746374512576447736124437637274677537117471335231753416471422112164176245462176314545375556757177516434172413334117551436325445426453773354621223211453327263646673114442243256517655211337724576126664717445326314235277362743564543255121653674331151777314573247654377464745567516617641327655734564434147711151752646172166652332166423524532737234144243142475515357722314617734447273521751532276272443135247574434115313356476526763316122273656477221545526311416641652273461431462557322253224211376616166333372656511137462714754745564517741135126232367552357743432213121135736662127275534421264315726243637537741162635317426257153166353446343451554275257175173513341776542771265716433553374744312472265576635526413151422126556737247136131525455673134357145147275122125376744645151616532457477312524353261645353434421777756771153611127323152435171371276275313565617641347514335475625444365755456442667642465144536312142637474241427524654472164736432524665371354426115565775577443535214754123475377265164545572255717415717466237146754541211545337367172237154777666333565542474534554667666375315231677464545317775454544375335761252211676337426175642312735534641163363125271327715245541225713232451614524556467215162124715227365566142617565626324547131554624573427677657531474357264353744425667656645727167516534362566331131716774475415466253172242215327317377641511367114413741163624665716163145264216651245463656345145145361111542327353222517433157655424636712255122445626762261365727424326434347514215774334452265237752535452344654465127466614531635132561114573332745125625371454366554666446663271773464225373122111667543523752142511333772425736735113556763211553516217353255151753221727451546716737176313221427642755724117177113123154466641525133546256176271523131567554637542236144754765156562651747443327652666454154572551737144771443347537464163554741235341652117353425575325673316543467654766623316257611472743717255333742744264113173354447152716632137324754465615333611625135711335367764334234657351443245146171736635471713512537674227725645752635414626367544534255341136633246121672431425711426364376263527522672755227627173632262222513666747255111174214577627751243521536565475415246515511426642125272141671353167741633674551113632147221367776674757347136246642256271441347331746714116134617224155222356412526336747643245261675521755637272745742646364712712665663567416624412515535247437737516155726717442543427353237122162711513474451646112146451374614125365546214471312427464634216637367143154534675146716572315377247263662346735453464453775446562611177444331216554233624477265346567544276237215632124455313141721165416442362256472157712436541757622557726364334441553616573561654132235763517253321622671361446763115774255164537722122347475374524416734553236321532655626556137667463152464316463667553437233222212626165527367766134316322745366467366257327315112442414621441331266214346267717265326121266311347361726636646666412323532372537675671564351246727353627166442321221261627755766615377277733274415645137725513415134264161517362245742734475757475223742713752265153267631535614337624225533741667175761134526351443176652157235344144347633471645355242367223756553221225676654522336665616114173515646525324165331227777622442713616562334133666611612715341443734713236652331332422632356524127527154142276421564656214267672654772516645571657355215725715214673144147537725654364277772422112537233325317215634345334416621113731464326346131655422252755166553521264717522721553661276115163356564166757442511117231141647315254654451526767172124142337367175573341323324334447153316245245734451624256612466374535542376173731124541343671427212757277137423535172336535577631227247263244616526662635425371524431461625376241147423255726111645723275645473611643262765575653464674557237611714224432313273431742417543535627451135365776252466537523217171747252612511426765641532254253457314676757723122515551716434773123673572413716276745157713472714475646221422431345263154335636466263774756223456164413246732762577117674527164114664222224314464575465257367771467212323764443724574332451467526536662361726337711343512547633427426754257723114241631176153535411375714115436154236456474741621651553155737635372237177664666143311537223317146362462452157155415661613243257126465733152257621527771215543665433326544763765746137252746334771332377716275113116745142165565537171762721533744542365565245131137256352535131624253722456363417334362555377471216472647616146272541727646626737617175176722732126331226271114214215716517673226762224144366676437232773774425334455163621572445461661171543476153653255435612557537657724463361757376131631777162157172532172371247145231432447755765342461712746153576553716714674342517713216714374361553464145611153253474465136454623261615476525733473743645423125346436367251654215421615551152617453473427426131513674542757341327657213354261451757435643761122127231577135264372345131441444665672153176626345572326462546236735334643534362241574343536453366222516172632767236673246223542364536556733241164753411322776235572566363571716514265217577512474752727217272244762523514564135524115135165423713155445724537412713526346117471127553456231372474757714635676611767445211431717326336712672673613641471535625767623624125375775362531615477215277573375745645413656147671621461452711516414144541556456632611155256541372727514553537314615632561436477773743441714155546342617154634634133476567216763736211137514277723263143174714276221443525146237566164574364625656722215722536624543133553355144136467271345121615121416745551165725654121634715537711626564613426214625122524371471662432233675517112713176536516674257472153523445645355241722712346417615361546343271724137421655645547267454217431544257224273756642762636367422617324457767476373563666634577167133567577647461757457232771627622372362346426534562424615177173434562726571544313464266167776433713315265351773343172771611553165416236774265531247437411576225765672671321715242374446537451167761342574616422552326363321341457473644345117256527457273247424365752475225255136115727253325743652721534451153274175734465162541652236514733343743646315714372377523414176424732425366156517157722362161644457522351166147154156215424422256227455564471416214746577351467322471247617752772367157215364317666173164163252512537551311141146746456164312474647634156154377373342151771152656632456265536665213437421637134721165715677455317543615611714376325226717764536522174675767511552475476416251742141632547422417642421351267263577774157122463457612651167225576667275216456624716274223344235213232654623525226747473726453265517176572254666673544747724353724135125234734514761576471726431145657374166457267346276472345452337277617664673636466326653337564415517575264541526462341673742324266145565342435364522572116451167775564421653423275346476334553654342714212655165732572545114571236531261357156662241316131527754521636173723611724246163135232725711622313574717335343656473665376477521212772745471766727317156637621153354661322522534567474361263411147535767242315764634464522264411363762717351267653233625234764733523634772227276533734651241643316613323634755747243721255453715777343727334121256562617554755656722215147651767656137715523272114435152136347334137741512242542215734137164227524537622255333655547165174526572365451565437725563511322174654113741717554655434726257456254554167262347635412213722676614463171236554666426656252452343772223455344633675664621155313713346615541144545423775122764254511372247365752414725436734343115355662732426667263746541375727555445537173762121316273233145123757545544253454516526753467261557644332167535316272166345365554442214412475237267376344172647314434276436363372322266676262113456275252211551775233122737141527441267512767156573125311326511645175155353251241543314537517514315722661216333511151435476367127533123234176551566723473342454547163417727764762755235572647315433664666577275564326176374334176566266145174554316226246512322263111636446234656677525415531157372454337253642422574335221336375534177235532614264621453576535213723756533733442245272653427257453757743245522237667145511446525734737265146352252276641115767553166274771646265314211212722116425255646123151573123355457567522456153166373544256574252331325663512217256644351233567224466154436566515562137343533555213222765544425314527654247524255567166543126757341427743715442232231715431325361524537121665217334535471434264435711723113633766442172355613346257363714277517454565123523151777236527251222277665461153571717722765722235344233113222461471564653564677434251562273353533573271557247212737716347666331522252337263125411323256346173356474627555251121255512436347765645237324253365514264437374263167573644362711552111644514244542633127666151247467645237754342626141126745762641726651647374456314427424134337443231325446125757512444161424562124266123136633515743462535275326754657273156541256624277731473377166225544312541332663555724254374216162734371334622117712547276631646243663636322743644222131124271235415777743247444355462574325337271771176313476735674755316251172212422365724737427225656474615135376636341733716627515466256763633617443546246731712561376315511262137414341334425713744764556665271144577632375175313172666455175413774667217117751262347225735666275563515617675725173225622322351237421373363275174316112255373516561521267577371143155312243414464467575657711715432152317652322167157745755761623132472567732141257253757665651265435624721234352277675754542761445236731754313623613577265365323155142251611374575756166734567775613247221351141655465467747151552765717146243347226755763161146355157265113347462261776476533451365324125453422657741722564243273124646314657144252343623247567761545316174112636173555272261166234176725437523533717621147166123625437274356532743136244262214567232252577464767373337655267655672226417567176136453557477376166322463332441364233571651772621453611253511756413754751252444623173142514672642241656774247532142555137637724341335136644537154332146123134652125721616271377733257273425273415277361121352456673612164715355766736241477534534126444134573412325242372266731354311135625155327744275535331567131233614423354252712555421467512526127672227656156435361356427713625614136235252226755712754655341131645671317631437331535333151174352141373265432455447374712722351574725333116455121252552146213362665522742771513721216524334664263645751251332545756637264753413166574133156452147733153452132331321123341275412415114563616731274315531651431663574254544351571222115213345545136643311156145361413223561445261145417516423253223655245272137144615776542256512766622433645652343243736345227427321674251745213521133767612555427516134132762445461667641227672643556372511154523722116322322515164725216414177471613635157231157552312344753733125477226153167156277545353745267131742656266373334211745342257154267566315335577122126562171227547515456274653764177165366417453445223133431627447545275245214652473177452555522576437244176664244645514762544724757715424313136414364673157663362252635466662642362763312467715134436175675161411626367445536442715715625323565567427363237174415226777543112761743712326235677411322476727217413613236161757723164425316347371672226125233336644417232116135315537453265531516457314614436361145113333225277136276651335354567372624136765612531537753521267316411225715617163335343514734656536747652543552715542224717426212177275542127221115346741674634145774643765621721455452652236752453241446337333372246435651556135441424447512752166232631126732417553237221535754661266361274535424641652744431231356116345722555351357553337353417332256767256674152237562537771134443341277177624731116361271415151316537556547255356315545577415546422377353412137761646435567253225465522273326335513355135162374243626236451424365533445345674323725637576731371153537365254717211614654667717135512551266757771771567255257264144311521336426636674733647571324665137273145731532224471562523313725146454256431553134324576227433247115534476554277521312224367614624571142136446432653774323414716557675777663636114424156426127776175517415267772344742624625636536417367175275441746347633525572434372313142676114647723315165431757321535726731424537151677333441563645457454425262167367313647716372251216761617721166736334344115434666554545741757553426742563446134673476274361446617625123561363164324354673142744736441116246654326743544257355757645746574452113722475713152746634532311757371662743644361455452734175374334424717215633762541643464233557231523653336746212316756361747662655132477273724344231771166146423156416446651376133422447355111435477344131272124357534662413546377344647167311737712461641326357224712712642156156326413556574535225517615123137153725372251645577347442164566474175546665143622656634133473353763546446344546735727433674233532216152777465267763727416252526736655746225634743356217135517374262117621374112336141154624665314515576537341614521647343132563254734721165245631726742456545264566371317135727221136474347277567516757774515631733513231367255127135335625571574155372427455261314141633512573271732374341171221645721373642273317557274334447644456576175426667634646411756142677661571353241235713544752575756135115254677624526774413752457454266114563466251752332527175133652564134514431527752144143666345624247622374546455761376674632415142745274552536225466256752124621126645323567321251175173414777232716441121162221321131463274216477255467476737173216256476137767724564535422431752761742564664566335717653725232422517776554143777572466671513156447437276622323372452351323741624651672674137356623147213521672471562762475333326743174566557127377475555371644431751627515531457431215746142626635117162734713166177715521173177527626722514722632622475515225176262253525136323615356747572322241565731655677261617625615141465434346533224233335411111715755522155122553167533375416611476161216122367777753324164154116124156161327417425167477114625521345245217242323132162712474357414332162727142465715116355724775431556141166344135637475371717565652567675633447222173744734113577165766652216132432745342754335353242736247162327524461656323157464571425544177161537536561165135614666534153164336323272371215666465232746345671643163332544334263725212141641235454117463137445647572776774216764565435137715511661171112533542211765612612374563614114377554176214765166436115515127557545154115413322155666546451537514332732574136344144731776742723456642222635473126513672617113357245461754525736111317662674132767736724515212133164263543156456442355725637144362611365673542317544345721226565667115576254325312636442655634432344233752415136433367566352625152565263533257212442521456532356635455721455317565646175652717712551353412352321125725522734736374442714351574626312173417112152426637355535226141451122133241512576535217631656725137344567752322166516511676661373447117214437657521572772662733466461511355243135376416774267435215357525443655576356267675631563332323157356237766714673577756322445152727632541352152433447362646345646532126263462735271246334377154747262111567763514541515144153551577111167775447134114621447634774776726125762766477162225121632333344146745334215123337252355417743547555311722423251167424165172557644464566132447567422232752231234713452376644532614131325642676376745214772365545251214172352212776531227466234662124443771122433375427466572112414762253465621161634774644165426224352612463513776376154573345167526716255625136155774344672517662473211774626435124561351421521152574515266723545233261444625644213555213275653375635672264157467756676127715345122622157565534741521544555312224316624572256643136213772533754426372141477374677532232415623474235543672532333426652114676335162546737324541122771211571535245432335277745766356317571645372245477236234744572543613171552777437554516374664251533734321531415564254225513232474611334417657427745566247673732534776457335412376265771252466732332267333113245163672711157744311531553175432141327632156265515671647346723236452354662621373162367314326551311465345446576116354216537576647625542226276271126457342413277351126557371227323177235566725763276144214236262511534374277616337153565371236372464225646747673621366736741172251673476273363655615517424634143343613643163461142622674376224452744432737217323616117647653421535161264325361751553656534167243762721553312427666164737465474712214373734275265163567545416717432772365715543261641724675416543743261763537175362464253114672366515623311221167226753455255315157652373535533566555223647472317216557122616374243755242312553573341253553313236425353575652321656715454725337313747317775331526537365167523544141272313246211265133732113461114235456713734254677273314753764516265275462277667711351747356631656466345466455547575773131614173652616544321265256765361563262467547335167216645634474443673242237372772712716662223771367674146265475616177766322611641631355264134625535534465657134237454113627311174656435222347752721433724666167454421243466575767133445144144711544567747736426432765673426727265555563656537414772673134746156724413162655125426777213716634626366616175677541532462164657442261261272662546713152467146222432572711377664666164243361172455635746166165544554271437541776562367277125612466776751135136675245155757551711511427522425325241646445534725716251132215637553741526472175675514521141645724427513352662351223614722116611253324563751216442732535747647765321177315547324611774662555664526537661345416761171561646435116163761115666656765154141125545445753175753652451267775216673441345555354541776136227642631215232177646232533446452356442653375616574436611166135273256434774656446212773123736465173747331117664616116311614462372665731753142433333175357626166356252256664736453672427423341275114342327733767361623575242361163437663566766134217677324542762436424114712536356446411775363446372113414767516452422421251634665175346745636614747312537613313713547445247227734765141123454665343221146251155654471623252651516742256765213611351542261347531535753552363644113356566723715152557244574171511236115677311216475321172571572715627421541571532274513664144345131713756237412631272667464121625736343356227474434733663414617413347676517661344637236577251332655636421516643337262233272324411415251332336552511734355576251422147374436325676672446111146371424445121752442333516421544365326164575774257574744626162431374113674573111271666451251633763315674245657776765733752146455176576322711612427224633147614435276131342523675736411614716562423226262544145557512614474453525737766244741535516777347126577213322346133126617671645561541463624357164475376367444223266236631256376647566525572213533566353472431424374357136367732313251631713145415243166714711242561643743251731546264256647674263241535262275462211726514575223551635354675344674676562251774242425263743411762551531666155613156714371742752236373572417172511311741235443656527217541661742273311425361667643564531621734144574557377576653222616711773521262756716166645371551462662353363462464462267716776244324641217656135465613614614431264651772777773543233635415151267655656166167543777452124731241327225134743737231376611213321463475221725312444473354476132217667421513354437176535314331542637671143411754774767521153231524413611253467161457523741375446727421556136244323476614133511414457635441355777441332755426476245121774131642776133327163642666311411724211522435661777274553425565671423474541346437567135567246237363633417563537475521311345351327623255135527571244464521367422514221735417556713453246274356526132245726174616343567416254136142266171617311235624675624326233562473573543657543232114447372642173553136525573116327764634211431725332214164475227236722344411623555617315755571633425652434426663563625313262246627316553215713372754414734352233275152474265634123574361735352672427666215162513253513517445725176155115714274513175466523326746765476261777561277646622354352357717746757737166164756124652777717115714117725633332344632143145146757371462265632255652156363771617656616235127344222427267551642547447264116742564135263242227474552461111715274611427133366446114363374675425175341254614557461726456736671421246415175544422634573517476532777631351226577764544715665632122125243356137235613215714411724235651477224236111543333713716521236467521144165231475166571353577556541645264171367167147316766635411576434235363312336457246132613174656362121363625572517434535235522452653723326165457413766623364623722424155665333274674565135627322464262161714344634424131532553733453762154521314156561543632324772471616477422136716173575731447511571537673125127637116712745137127264255576471465317177414217321241777456316556316236377122753171371246711765527452312416613324564671411471252137477741523255734413444624653276155241343561363725363754543162616433557136364755414722567777377133517433263751532344623623552667137213642131224447731314771361314534131345466134237472712251312755461635364216723654156373445733613765434254255543352212655351543743625233751544272313561437424121313757446533363424113246227623755462426463611263714427253344643511753622214434724457516752557731136421652316772541523421667673776741135466377454636171361257467354411251117264547361526535515653424441452577155224275252733527152636714354462225534452665141265351352777556767455222372326335173227432516375554275536771724535751133375355134553421237332774674726347174617354717743777216777362237137627756547654345276265334546463455452346425152612422144627677245613247173527177443566262341455256664615257267334612647175353761761341777636752354641641415124213257367242151276652657727523365512637555762173771266162355673343546524332643144252171236726243537472144327733361672715617524217157365736133451547141532475227134273676672147234342425716522445265465445562615442616416367535343722567336537463745516355421165467645572366325711663537263472241345125464236741127572532312427444357736452355471557144265537565213126174332773251365714557536261673514236546764123624363257265465746463256245661362712447377135731561225753652677272436376312725275226724421521632115745567161522333346671153357477264153152344471125725723442321247756375532211214125621366411555555474167277332134726755727265153514232253317634226233735154652233555113545647363225621425113337626447125621741272753134635362455232154536743763151463266736365771325712676275513652371215253754115676266226667166415647355752364263712624574523574461317115443151553145626371641277442464147565734351143663151212256426232211115543547137556576715767523135145722315432476266262652723347155557772654114123742147343676574352363457267763371524451132622451616154172772522563242344647725776714324634176446173241736731437332774567176134743471574567634767277657577513117551737415372761121116756726341426413345214314526626535327364525467734455216162744726552427273742646523344253551163132314424627225766433172546554777222665257272762745254321376776721217644664264357214647177777672623721476115554514372371271351652255324247115477236466426545734351713446441217132772743727413731232575452514627226323725777374421677445725377213256541347367743132217612542574222767123253257554764766244533245543456773422477777576532115542226664673155415325416272413351573473154471333176736555126465445715222763726336132127723763446237162351564427443546647257423447546675754536564151745613645322267157766431471127114714312233453461376143314326231731363515253523653667312644577663132423332513217676527715476476773254471763314364256361231777771226775165425155572527553653753774715624366114564146135513111412222674425435715421433115326361612712554226131563647351212151342534722344347327723767712237453627312455174747743332343576453736677246166462567734252541415722721636644423763766515661633534125322176651346656526275477663465337456344462366131167527616246762746773443572516514576557565474561561125415667532222117167626316554657521326463615127125216157135424416637617271113736647664667342623516677636751244732721471535731313272266253211724235465451254216646754773435426141671547674426222737436162534542741226176642454656621541124461665177611575732331124377311741246747741711524751772332373511535532537641723421422665135417562356621616727352524724546477366533425516511657722523216241216163536327361446452623255271223241624555425672437523257677134367442121752452715661216376421757134456454731333132253174745143256624472214231653711422736532161743413634451646247373415352677775345547326414331462632461647531255143174145462637123472455522657565775511361465461137215171376445246121257315265367421231377334751652111751577446371523552576374373614121112245275257635125746417121524734151772521575416224766767232525243353626116561572372277223366713451743655523773333443555225115464571266767257424777464276711657347477365474455166734544345534461531556317155564567234571354733716264725724613462316775134637142161453366167437661471324711734142221652461524524654717512514231564642121263634332734174266713261564777125412245441162671572111171677522464571246454545626237246447311666437565433127771524552415457645513561235566467652326467335313265444661347216163324274327262512345135272212132564324757715365423437266427734113535233243672564221147122215535121645261562141663117113225617513661417575122111413435647447522112254135746267322775463331423533142456144772144334763437461755561647654244367113423175145344714117165513141243425144551475116627636427624142424337715256777652746717673421572336337265166743357247141474663236163721627435163777124375655371271512775741547157173632421251412474774677755772123475751177231512122472517277512142741157274356477641711742123347554563714532372475577714217535523311513255516665445446267344126367551776647535472346265312625555532642636712451726635577152641344621124115364555452231246334477163274724543231166222336362642652272514353615115137472322517715126416255457271674745377451562215166675443463554357771756126357756756533112557125234233245113122727614324474325242775222134545647747362232574411577442645322727123762375665335317354441273566567176347136552513541125154534314325352454233423761212627314745516245573137411727731413453167631554235541411623536761235653537725337125366451744534667444731723567572342217413777465433246542721611134255226627565342715553756756261717531513472147437326523437267467443515245562425541344717125775641432146715261156322613725626323465672514443457372674167751614153644225551126267356776665155673157572467573422456355344761641357337466556127354123747555732156722772746651577321726773567776517116373361552514516315755655445557427157335476167737626424277765737145177541566452445327631647553461367444412361536361355453537115145113553122375244412146533534447262436151412136666714766243727745222137272624474315175133534442353666626171541212113637173656113562464374557671713375275563474744313643227371412741562452621336767354516647712215465532125257166714576553463775445237533261367271657436714475251764747375435455554617427167514714411547424262656431373421373115467633715325522556627151322723572456167633415764645564625231477736646731212672356234537442422536423215436725264711564422674157623143627522447142121664754562664177473455512716137327725414663273334671452644461312475156544253527277345632467531161677563312764714652444675557661751737362552244742276767454534542645673261416112333341217762457634334762234745312635157157424471155543177573333637546554416266274143462352625311355133614533562267446664155617155572272546124445521377116777675465575162114642323454475375356136617425636314446725465224153165667541435476133754423135643244143737214653456665336653437765362765177464733721464342516625365553454333636331577144436311247625354626213245216232774636764647515176127444265121421214213571651472415562111723175226647231315555126574615117527243137263214763465454145666631756361317531341621366163651553752517742636152254412231517664251542636732741166531163334233662137423336423532515533257572251575536151723216561233651641276245632636722353321455143221347265171274167235671646452766123243752112511545345422217517322746235535727275741574135126767255177554346365773253676471216334753121555325224443732773234776564117266231643427133434757357337641666571566242255621417445367263252141331345474375436374733752377414656174645374141162474673123275672613376736553762233622245565255435676662657156461653177656474251747647235253113272672767641356353451473327531262363663566723562231377722716135474754242735424747761753365217147636462666442145235244612344361345123473456672526254636262521665377757236116457415271121412562332321454375334315135341371657123465643212136576373231257456461737424145351241261514533661527723774472146263312364166445431532742513616645277436755713566732335417771665515462377772357254516451351446227165425436663622362347375353374223155637417172431675624452712443142544626646172262765433634277615771564357366616174657252763644555733362231212731327444732231775411131344566662134761565122124774216254623523625335523426637237552567263534121555346771565611765255264547352347714774763465554422232526444671713574212662431262326661434235326667217675742162433311355167532422453333237345611131356767143326453716341366156263423432356777556161724254751612254411535536613523514322631132257627715577461743335751244357515411573363322525161767173532623573554213546732641136747433626275672314762664251255261235511341137471261466175233652175667713236175326354375731316637335236552552325154673415557443316122711265521237521162751114555461662612555777663671775117666425524176364754142442542453541314266777525224732275551731324444273763635561355464253447471146665273556345463143651134214232112521217233162415664711421234455641661714214546344135171114652346445635457245761564314336714251134627576513212352172546336765171573543524155413613266124112533712367652256737311631642244421721257244373375237434511735571574721644414743667132413625615665457454225531221325577762663462221156571365526552222332427165376325376444127765321453634534354315156613424324246215611473742364271153434267614626426556152311741257522151132525366334242474511627663117334526345111526166547743723344377151616536622432326313526153573612712765641113355276561375756251552747534546273714663733622557645131114562512113673177463742625341542331573773473773752366443116313446525737266677375433471623643211753665525574425371547742327647156335116556331152155253426412411353155734667115213141322163435462111625414324246554675224561346641732562235751736437342731774752755234466275462344362664673462571314763722562726366645234613763124514127476572547325757542157461243756627677743716515661117765211517311462367771642432633532243435376536765764751334411774222674345221136626334561241337663142576427442435362131254371476713373136114457326443552272252253573117137465431464641172337545126546542422265233721742274262714551526777227753446552612431541116372271334332677455656122276227157417534276466444332355564416435475442272741625361615363725761427375414722713542643371773472555476357642754432615155265635213762616664211545637454274766526726316316636174666633454763635541471322124744433317755453747534563736141644317732746425121174564166113217631635223774416626375725625345322524337547121723653356157714657723547534656761445614521522377471156733421326554445727111347311426423664136723351743765231363444326526223725442467757473623261632673525137664142247321713233225575751664563217434477567223554235243223763323357136725131416242765326616347566412414317357375464236237753133614255517545674543276712727322723442233177677343774764166732333771223434424562161461271113237637762326177547155134344364711614712235745122721644372742332533133346154675111366736332575641343611617216227256143776256754712472665615627654562253171166476547745536321216774213532632463451364147762133624454631224574732777414514126322766552664334747146227572275747135122422146534657563652162577624436777325312666736333653133116461452473123423327142526233455314452633246511732647233256623454133426743723736334367525571156662235732324631563323474154262257574276332734122544174413142267347652535621343527327772417646663162344147265556512611753146646245471115235612573655162475251216656767573264645243651127656167645654634353737453142254341247254742435164361447764172646664612316543443211246255776153132533764641226437655672463417634276565263314267255745325757652263243162314132767675536324323552777375547154463553226252714262572433317435273452715724214644225471733715525263463175517215736566662164645454723443324246131621677226513261774347663427323426675511473121131576666247173454345227277471625164653466517754471214133113374114463741721637376421134554715525375573765261137173126464276647317257557476412422735763513371441567445475347422135534225556522771155625552535147523234113676717225727575151575541174675366177222724674513752437547247267116132333734574173446334367417321234461773544254422455715146117342612612366615467535447155776622224415644634464456313322122714346717574161631375337673275377123624774313577537353432763412425721417247421363431175464735377212243167231471144253123517357367575133766236433751473145772137211615223736762371547755664761172363714327226556633742427225345465667432354342224622763716532371277144311756117673711373256327547664315514315415715144473334211277622512244774576213643366727231223464627211757672276536447573534274566671715116236723577546132541336327332232156161457435441536652514647772311127366341216251257442125735276327456223434363577534657452313245213134471146416463161146476613435741522536377357765262731722375162154421261336244153245441617317534376426551314132456323314245237777532422554376545566237665371471555737276535521261273361722262441243154641512741162411612232465522221525716214322573664211361132365341743763336515174626754261417354361651323115635417224633173722567665621232724465416113423126276264156212475154625635377622442361176727377714467163614665241411622615644654414422714375721262354556233727372143344764577726254723655341411524141551347332251763242715246327735223357423732147564674511443557372641712316423411177563727475436733734366122462412677273244117714426144157217462751271425126137462475274326474572613765576472451621551214154534125323714755233326514635432716411244654343767421312674537137672137424162561424564753437532533135767315464636215623376341524727527551231714645347576423574377341336562554232775164727317147116241226575231437136742714712734661713763516642775673273775211517671377652547746646266557411411561531627164772755574453413464544731222133632721417145517266543246352674161353333442123142126442317477176334661336447164366244475444555472161113167176535453222675444324424446755765651516731227174536361636534332126262165117216561527514466122434452562263314173355336615511144421761221542163421363154734732374573516573772354313627424716357731323372511746417612744455373317351571162277137247434112743314352443542161115732176517674235664747425535645551751642632455245542675362266644133136212467373267551426535432145441473552622232316341235172215753114372564717131166121731253751463133472772776275137323451166225541171372612533456372757765611465675744126312746517174164755134534421234164271242162661477224576341364664413641147347417531111145263663223517635652624566621124543222456147142627213663654775452774353177113416327726215524353554211637543273746731663534272657212365351662267173271545165443463623467557777716335512331176454157526614574416332123447451336754727777351112656161426473637544336326264366563563546325712665312245764544322772445276111276137265175441213312447377377337234364163641161331566636556612725465774452467423713775564455641421237666125211412172741325273255267366171733113314672643464722551571421624244676257344713315653734716162415365123166556111666272662473653513225443411423413222521762351632354137411644174537611117446531667373444427141514674115743626724755311674717171452353261453365754536635326346423642271245614412166662414362243631152115766447757635117557773465574625515462477454265343242472361654536276345413722455663243461666332261735466761236136353722722656774167645655671613552145436635434154151735536531215532266142526243747754737623644417736543126652145254657742247727613671323177234161566554612623625376337731653363531527221313664324266262356615372344455525775431167616155746675742477142642376424476413127777513642767153474355726751264265245533732667321655551556775435252134422627643641536514414367125221772265352547613474245674675437431756474761642222646447227664726135175475671224312355367455751773573454143364736174633611417627377656274624436256532722263154275273122424251775752264474111622442754236645654541651237647132376574317213771444644661555651111161512432143276764564551347462667642116333543542311675132171357345667522116454616165772172347365764655266134525524414535761711517214122646427272733417125136311233735133665625221663576321242374661515715617432617161623141311167251753433375556575771215446445563571744414253243144164631516456745151633252676213632226477456254763255574764514167421472337354653217761356131547413642724742547161276343346423454742154642735235255711356221466254473167273117536421665571656615455653713224317152232613111112546445636367117725331633153255431465162631731744511665262517353412221524516724564544473554612163315477142153542227767255736345616456464562145477465423226253734672547317435474344316632457153543746161735564232652535714731276562517724463326424771772364425375455557236662443244343573344775553437353343517244561241466275664227256712264117656163243753661372337222441762146666274513711731375416554662267266177652252366435267254553163212722717126465237656664341747261463675771536461357345712127245414613474461437565423214437453215617251726172741612244717745467361276212111426427635445353211256367121443574447434371735366513533665631222755632451465225115562742445666165662137377113633472777254153753652764125136423762273312636334612121634446412612242574776531333554656234264456513773363356473651445451117556427736375723774272335274375363226231772664264513747476227165371234444734452134422471434442213345123416744367633164137575125452363644542277362662316376271746216573257577426725356225136334254743362341314126654615521344662477146263414136725315267414713353257216441754747511326367771337666577434542246227253171161334312261135712136657775225435471732251375766312211272733667546533757211721652112243455644517564762124311417627744472375761156656277631771653767331451351375354274177371467155112366436415233553274344372221243362336166623271637353714347353622155154756216262321111637616177424133622442471553565752742662524347721176231325574372575763246612675115742163553324465374611673273775512612371632372121523774323622473675135227456651144344776352632212726437315264461734534562755376562335455114554641334774261713662125664414261657772571131341626732431162517775666136243216462476631751122121627424552773642111674772714236322474742342536737236746252774727267675723216723146132166216711737716511732733257754253213774277217272275462716724343663274634656665225664165757324714334127515375136625334233364775437231113644356337273627357756521644154341715532652355312227762256563317411275563732572724734341237571532764544747316411215651765756132432775511433314546223523421245427537371554716572314757422445111264224372763642173572444611532652273642142337547121466747223572621115422754731752112616631212363516357455251255576761663614252643471356214333222721771373121375646713633366572173374444746167563564146516475615156622216236125464161143612574221173335257771646356562754324746157413132241236264742341773471327377673231444262567113124575636665766421556275444465117466262143753624762712441726627767626224512773412674141254136146727643323514265556264411715522334421662334162537556117211763235661641275513166244145176315621576674715475614621346167717562653642333172673466622532532412767243476617176554437712154535623741372364215262746646765531334637161227551261554452447124356743662775762232271745173126454452657252661274425522343745512241546663763113545331464651532667135733431642227142227626161367373767322576732746262364172331451167731272275372322461161323552671663613234763326574674147436715764365717426151637431136171761571141733715712116252466375475655171165366157471335665425365753453672431241227462142674433131375666142456411447764243777322353253776235265342341775576431776224534367777543711111751734123745522257251135347562551563266562435553571574451526615773322172455223513674352325315715447567734557232521357422143654312371374152264457676547754342114243313617247775665433547265476732362664777761667324511637371174432732421417615731413515654764331624776151231724367557334123657754443367313526256133766577276213551117151433441254564445464414763174722264622657445773442273773312124243726114167767245565176321622456642664262371426264715756752111115364723242425335147544531153153621313757321255663536322527735327462757712221116473324567563325464761752375326356521361441613452151257576247176767226464554232437564435462571417432371667473657537373133322554427761267121475467327734477545327426435546517267332345174763524656431276246275147373224712263641525744562413326467171471611316561255635115441277377347532662532547434155712142162116171361633726173617317635143355365523517711722313344537245472321774446347552672136673626466632132666433317517734724216245231454633567131212114677231745562736323772616636257531643651537624556146337124731724171476642635224222155267564666277441335621452164372712777456316353326217266574134336546414446274645476514366271744621571247776454234215756575663366536763773742474126734514473752725633224627167672474266527234327223535236135125375114676623356377555377324746566311771753212251137571623346326257361357711126332221324651514432557526537632476631153651131475554627612665145731146434647177665361241441354161175752346447446275423666634533544352426353227241673262164531176643775643375413612132447124234121432325654426676121354477724427662713471245126647116656667223112314754271774571612477465421742263677421532273363544613354557661267324416636265642333661245435555611241744753557773363417154731512537645333522612251523641234475551636463154246564555741775435223516356555312252637534743477242513531427251417673655352733657141425561417667557145774277675611743623774764732155756476365166274667266765361517414254224733662441351356716267232667371765363621666614615535657145716224754337536331131715474512472335143617553416431623573153434656474654631172145347517734471165136433717137244661753767426536441275667672627436425133776742615135525415771744617333733536717533375257751254536612375567552544115724122137624424645413552736546251753157751422127557126223277735223532547671274161114147356363125577745724245654164572527557771551665351126673313162334413314472557326527311652261435166537176255226262313372637764513355255214645654716357643742314632561472165654364333216513244547126175475374732554715777323777772622552411714153765454526726736331476557742467656435216171774646717754767321325261672622133417427326724256212721722374676351213345347755666177273432222151211536273372161617731214426734154131157427626127133253626721347762171233236241253511274717243241561774231144161544675465322646714115437644264451737477231415326637414561377655652632555617542545526264325474162354532434311556337256721662311536322555216464231265361566636772633212733611325345214353245735332742256437673431261525231655571675223167146313331312235324773164716336234275431563126642241657451414237651324574125172236435413554277365336117531232456423153541172132775716652115344215624171311635725616414724552213765516557742544336216671466516226166654551136471312373352244166765753442655434656117554161416316214557136771366277255664636677522211323113252172121717473463546667612323737237551642622251625424525747253367445543735163357721374272236566624471714512257142323742266154637311511153311436677275513331114154124343615141647767451114326635451114414322316415463574126123557572353115246177746335751763442421646346163614711545453551215357555312222513315351137525636475553314636126346715222273767647425155542343217121754173573576641366133267617623737457737327274442265523574576213157154216157413721414164544654173277533437311713255563247525244555637273245335643312627513346724417537163616474744337377545336117263171563533136571422566232243252573752225441211462653616123441731226347273345314611262165432534657413534257122522647147524177554625311135741312415412473713662363124121136256411251522212572637353174217735717135377431711115233453264277777772424377561611535113433153163753436775154145221132465712312616262162766364126332672362633125653253441411733675256416671273172526775147244644572342233363774147256763617375766123447615216623541437737171166672335226146632215252265214414313537362276152314242462223763325771636157776246654134365655326716272211117644642345673572223124755365366463157314275445777212776446215263572433252731427551141116647356136372527112363337445645522571413454536657716343416164757337371746422276271245476427134156227313155376325441122255177515427441766537462226441751477342223152351334372525573762741614727544612135466657546736133334146723423626467365332336243516114716347643711637354617634114736536364457141234272554557252754631576354351474223312166125314676156613242412135476775626441141746531264535647516327221255252466352371765561533575516734553711546767266645137317172776453645121132141736442563613114651255161213431524471657241552151216716727472654325372447415733243754767636115437171434415321535243532525427274223376747672755672345527373424756326223312412271536212443615372134165427771137313144411671432745464327317423555173534533776114652314246371646455631215614614272434267111276755547672462153614157515517627525212212441676356774764534537573224454712713747542147624477441174451243655141236332334174752151547766254752364131454155562611264253717416546251316635374615624242632614557375526312254634435751345546225354726767216672336144371255777436232142263164411235665174514667512126345653325347147746321727772214141747463237353246112113212434151355414647665372313434756421747165537223311157372644352314417437273135377475535732477621472534454761522562256141311374433716444154237515654651713252535727655462725676573262364621164775673332644335214633263555565254655377454237651454764233711527225766735567445613412235446612744443257725762563134342126711276752311212712371674441653554715523754765216535726353551147537311616426146732624463141344236277451413331334425174571525352371337511745761332242722715632761225166263771744252463565467556611411347737733562721216644723774255322214321566753723721522113542364526441427426727412574116563611473337412453366331671271256551711445415654212755146276214272273431112767411526432252174614145412532621752243726443662454251633715371417525137714363641356532143673143126633533373566525621736325642353337623352631523474477332137464727113341634627367147174421357162263437614416355261371143111217337712174434352121247365615127162764273556314616643713563315325525146433274765563263443174736512326263524222112437614225617571133652343666117243334166561551654253476166116733477277155243441765336136737544213234153711445444276273717674226643467662725462121752342342114662221227332262475572736364574364526542514744374763267127577147511566656453723421131242223136127266764623234617722137342556477427316712346137731345212561541473534535663576673137567736273253447112711371261465343457367626263215475646665145561147175176136446117775574317177324234144166623645644434775716741373171576372757445111521522327366176157127516554366457523154723723641762733711441216361567273674362371664376534655414664613113633172261721674353733421123323737336465657757515722464675242644567347236233214175244723557634212346362125445766673367654637261625555757434322123443347744174356144633615241552731254261677336342636326744112414523353444566333616631545267347113341715366221523577554572445546274365233746127371356726162746756525337745567616755656576174613564411575263155162667537431733212753724553172612267244227414645133446123523725334351713145542255623445726432264632722347224452345511223265475167374631653311554226457615556266425122217442636352217267156114647462673637122156277237355156644722211475521626657673721545333135256437371364352242535521445141575547561736455511765456534332322166256252127572771647522245466617625453665656145233114231111173166634232116624547742475615126535431753365366632747127711533517243351611436333637732143217667615153344317153455452566221217372127554216225573451641563614633156134555471151426512677272564273715573243451433325515624774523735775231666742474254636446711413214736136722263511275141752114535221143146454736746563777272565211435641475372277766465576765626652556537456767776654525413275263447423371372312176641373733553737163434565615145123362665234546554121517212135531766346263657424247327357453247355313243531574331263321467713642574237513654327446771246247645726432422172543627437445472565461245517121274666641616457546415442313236246725511773752625677454676221146141632743257453232371167613121624717215532677132452462552755757547677443644656125463652267754642731176564252164544221356345143345566545164272647363331365172446215162677231626556221267177243264774373427421376122247241365524325655311264414436563677727513345132662112544226174475461552716432631142427741741411361535647613165213454341535517555622526416716651116544621413367252324264167145165734526566136143374723632636454361634523425332573214671255222742144416762516766327721736441746153735533115725757152155133231145452144455161665614112735451476343451125644743633355561327456424152265152456742371156322251232547165564743647267414435565572766775644451645674535361146627127626624353556237713453557552664657543371557562454131327364664442427747134774354756127767547214567464517221766355377476564476155723565527526463312253231572517211661344325174424153477566637752157275536356631436716754651757264215672646543626536435212316235556457544421712575431163414447326255141614675255732157312765111137553733333262655273225334246351237624371616125634341713341275422415144336147634457452125245177251775421334431766734346164664523722465537274473276743743342714327577343473734265271566122324655634552122425255674654557771376152641763234152631426175174244243346446652477662145166577213621164131637117766313221761712475424121213223233155466676117241112523545276612331711671571545556631316745727244445536525663457354326332134161635312253154322451223756363772155725144551274451473161711211527312235512743471657277361333514556663555151422677637767132323161166444253335416412312416547256264232647312143624155316174222251774172722227622331163712435652151551662225277344543745322117414563661272713766334742573774646425673724226615552266445146442475165567322114763121656562446776416376327441231552657537173763733574325472526674271264174364751347762533715615226454155524323356356622122612535462271662314553517373415715261121241247562357632562742644372474512535614143136215422775345624266552244752264126752252125511346114441736164616514623146716753755411625543233224777323224232437212264641363625325451774516773713243747767462135773163455444636362656746614241637257614452254174362257152665767126717565612412151377224315224225736775566641246217331772414736641442321115233163717726351654647624756271723233625536354454141133541461562276471343112641366461746126364425354471721326354214412224744525354726221453211731473726542125744455461445767153332535571712517165735111717636352646316411763712476327312314243526361332332522161614654775332515543616232314423775362773646131676276112343725416146345631544534545365633135766673527322475161535364356562461352534665246644131761316375644172266655461366172272234173651352577375234274114423646256635652733172716446767431116643625323636137447475213256367154447272555672555615446163723141515425614474562443227736431634774557341711456535141143775112573267233425654636352567761771162311433114573367134573413473522752126437126446361732412642233432633517521564413517657135367724321771653642472664751664333455177177355642173473761767514162771721657544154514714723165573663265363246755426117522132572172427246573562334146127233473522764712663332565273715241411664163564662336515245656463535613232512212535516344122161434136552134245537312235757166233645522125453136266312171227743237721324263475424366616622736263274426245415357176757743256776425771615566324334323331745654426226316165617344775242247746311233164163765632223147474361122255475275514366422746115645767276145576456216251355275152551671576375244264773221751667154145126746673221131354463542547264715613573136332377135312567615216177467173726265271143222373136636715615311347777274636167473475265167632756765124471417467727455365467664454265745726165757635675554532371631336747647456442342216652172376531346343417266432653542752312154317155335444227474757265417526347455177645466347145763634716543417321425154721725533226617665236361424242754167542265246245661631163427636335222557265112611163263646631564327475433245545655374557344533256237773431224772622316445227445567561135256667151413357762156625775711636434352523751157254136635447523466234416724121147454347125176446372744555257475333171213623666517773451277246772472522724272244145514624567366537773314744252776467754432371354455175571227537366574137376444113733613736111261131544615541263677161564465675621774555442663342267246626576271371757513712437547563455334255314413475615141125714363116634355137366257773116677335657532277114753562572272763726615667117211675265455566175316371766167121372321155644455215146244164276235551567363137552376223631352115753133761475552721644226464575312615324454141432625242227571331533275634257514175712144124257334643547174146566351564277514646344711732657425453531361352747615417512766732517174333461764156516466665671152261613153242557522371271761266315375713421515451771127226336377746456111152736227231254127147743727727156353166711247662667573215171216244463275422511111761321142254161546156531113114214355571127436573512474675127447276665167742513264433123734621132631431534726345612313526311413676162136541365266311673633675376214417274443252124223416116636556331361724443555267647561463432365523525252441371366344522256424266542351646776734572354662535243127456444234231727266645131744367335371134457543562447262356115167511724472546135263272341244752144236665143745563214547665263476722711525731621141626124544113125226471115366514676471265576112644574725465446137777136677527715465767647314317217212163144245675415412553174715146366664422312764635272522134742567557312443751355166237533237426415447613171355154677753467343374141723444661515365374743776246753165531231271731652246647573411631574616147243441576454334716172252553467575742232167534334244372547225276113225535521264517357635566317317753627412432122267243622663625732216247424535764777472771264756316134277562461762741331457156727743353232561661175221366275216173541164343333542365423454164114557657314651124463125563173524262341213661614453755424135326155373434124124662166742545211226157532235556445564577646566612531474626414242721561564454456621667252223756357437426264522524514643164362227253325234726261652245545313625753475221623634621245631571154652112645736323625732546515724472613211675637132636173764567347422142232615731214134422712135771216421613476531333666177472112322275466636621755344164725335571617551343347635362177511235114216364322766741517711162126731553571134343137322413613735641616257272626343374655137532317411347271574537761455271244516541574624673246355522343466257725174667247574442314451137745756566255173154537752437432437244713627531756431537772645271235726321475513447623513716637153645411647431715767341541535652237111216362362277125213467344461474614434563113125756225243622711472145534135457345271116412623153276152576334471232444224516723254262341275656771135461232133461277344575362162316765111324672711656435153373624433153275674166364236745474157533751417161617545251165745544436135175225215163722122635473246142662574234144455561654523231156344615241746314263361744451465422174737735675424153251626776642252644541441213621337321332227335512376534546141373346571124756437667633321135175531572713371254253237572615435127311571742267525231327412255761721762266424416222345425642541554662272753524457715446235411657355466773456223224762715466654572352262527552275774115654442132457515761746356746566445723345624565414511546354323351163331212662533124461435151427426162113372546767327452377333314213423754222732764733363426657211643337652264373666236661645565663117115334753353376175252732617233344716514251512432256561663115333633524243215461626566775216143447621434766545527516477221145471474546246122674664635751174744713461324226317715571367476764575244216621562473353422451367741565315272347521255536665124221327141667115171227672677523246477374572574414436436625676314143214573153415267744526426467715437716423775414611274146714715661653535224677367427745736447337325667413274144125223726663716737537661111636247171372262572566641521643145653663723351447617575761254451346736332576742134113612637476543546373463466773414115377237124571432712267257411111741674727566743245363411452674162261762642636342717442526777577627726372575333534662753763634725636557147572155635743232535137612677674655172656454717252776777267251646366554522142161361161217336312242127473717226365414524667422645247137422455213153436216251354262275347575235633315336265222657267733724547443663527455167364314477711455422721364332257177641417312547413515744471625736733773244331472763567147222626432733457713153452622735751354136433667671226554756243752176421454644634157735443361665714655724417114511515253611661371156767431442723275723273473544643551514667163613316547216772357645717416524175447434356356624772473443426237674736674433334124274631214226127622573456621323162546777311333215566123125251556144744715231462341263565223472277713375122361526646326247477737621361272432573567322236217212275344464737121577642156716131352227566362374454441757567564723134224153324751425513473641243467272516147446617462151437453122733123127174776146353517464766273424727141537444372744672411221563265212365322763166547711143223543364432365654173161152376737325744326665344155473412733545666454126175742441277442736322211266571521414551762146252725136245236427451246346544471772426254166642617724761536316577142666376262453465254241272242156255276234473742667324545761377235765711451765245316753462613636436237475614447277776354546132176732772554131247347175651475514471677156671615632653431661361123213222211371255552725225443554116441662631147535741562227475216752247423521513477555777757471216532575157332561647451445426557533722647763153337316364247725771214567557164312432472716117611741417554454225362631133644725722772657426141677174217564375162371577542465556556116256576425556725773252736714535453434216154665556174217272555233515235244534422333744165344777467324231614356611226635463163741164417611345126357353221427135344624576642555323441664136241676452252745113646323522124151352117225431343747572253475274422544656433566173163371631557222415173147427337755224321577423773523236271235134655421667542733314726647163616265136215272515756452435545136755571523353524332276352237742551432574731414736167124247234422665145552632326245247674721513663471366441614631455446141211671251277245335727166733537661642161221145512315424217773652156365377574455516367712771371575443312453121712647742342572552327757316621122316473727116453615513635521633163634227247715417267553336312631325757765766636545434167632124146543643441324261145444326521346333631364427147343721362356472426121147612726754365435753542174676723714316315643516315551151532443755475436134515345233231325462776547474427711546462776747516615663633366366444212413276267252757353612641616237511232757175273337621125277123113226334335164411472614435356751313346162671443413774451125124164521341537665137431275217723542214342334414227373314234347624145562734516231262612347773754362241355135741176261616515274742157324746534653511763653574262576542345212617371477776266715166742276137322442513413342233632536755667712366531771434666252445254143155373246356322717735263717314632362616434366571673513713145647766267743563552651322634341724725745661132326513736222657751564251747254326317614636124131317745141167513533635221134531661765412621712276652364517364353541322514716235123363143171537174236427121154676226432743215326143725732246635541424631362725732333137363256734777563612223626153575424751643454342533755351375546412226324763327573212646715673535757713511143123444641541347715523614166172475651436513766157543223533543614412645427125634717232625262462134312164776662253317561326464777522742441341557221171132112612765261326562731753163116426711121736271767363562271522464366517574515624654344553625174534514574345147635361656341151633375654371275172721115643167153673311152373723314326223532456137467514734335656321342616163165135135621364253114251542357556472115767736545767474641717766735255745751735633514362573513376133731447543426117546126477736553245223316552562457462332326273611544774652721276255411632563143311771467673124741571574163477137331376375617225266456264525442564525555436462271757766441225364135723656625756243152727241717524236614566273711436631664775747572354634564264321115173513321461727322712337152164773355716165251213574636654174464233625633457517151545332142517232425221466447555632465672264117553374454327365157227721136657545165543165133732155147164151735643526736452154353171111526632426171174742251715336446522375647457557355663674526364246477164242227355736325667627444215334751273241735551357452427257714472533256443132261246417337437217563777745342671736666633717627765276472337521623572575765157756675445761744135426677426324322273156756253677542323374225767221526425244643617253413745645666742615443236411525177474351756764254721233215271117151427614623251644771323142154761232124417124222622654152477716222524374377732114371627276176627211632361464574345547557377262373577646175466213766745174734375645631451227252441455355662421115571745771635262241167776141253742237131233142316526417323541155311224447655126761632574251357711242676655576475561657314542453616177166645426166265316163241621637737515456476324155764327473665662752537461234642457272352542431537722752215513661672137313456622623232344224624714127252426421774327564227612213625732115746146671551373463624216613133631444335513652212664326217532115152635376773325575336167144355173366136747471251715615632367171431354241111226437322124243354326353177221344217352454212447773737356471535357275554265332342536464533615343474251667423657224774456641414755372561523112133544272266236735474552725347442127656166712775435123325251236552547456357557314226567416642626762137765733675331176251234316325522627424724456577534646471332124227252654432411353157117243446777716213757117246663675711446255247172566577524413172672636654511621776145721572713362466445735211231235731217427747226174616527643665371422474567623432722664641231771244473763744317471761465511617135475774272632513613752632614711467257777254335737234316611312551416475512256141775337337471646726576341575573613457474453441453233267251122512257211556234362715344453475766174226314246774216132571752441352775635362263714627161365421665765451427746347731157116562641457336461374232345343355343431576523472532354421255624357623773756236412641223447232567653263651565346624765223245434523731316476133726314227453117661275327266172514355167745356455466111137741333767577674442476344156272367322531611611454515351167121341372466666156115666434643654612652237226724726525467255454255452565727621424217655174641265142332133225257717715625213232146473515221756767151753464727234164355267265174212376666461575123551367327136547711717646727442127346311214272372513461474347451575437562211342612152233556534675557426547714264513726274261657324367255255675355751512337325461236355772661527326426643715564576544254432624647421314616464145721455722313761733774565434241653722633754464557166436313136225626721427175554472456376573524416212454374242521177736617172633664733472217472671514566515712361165444666726111371741523423652162536225121142171376361724321531115141653676217336275311733127322745723322234177111751755267333437132573126547652656144575537763116256571556434522536377752772472211271466331713266217325615744317531676531643373235156731645476342442216414745267616612665435263536141112626456457237327263621213127242535562347454325335731762364422764434671736361235721136367731121575374317236353766272231133246337757417444373612522645161426452457332476135526611276115347115353425666562234134264265733735472154733513137454112632544132511126412173377235557152336142212425375575224251147745312125337611341227153662175773624756613564737163267567666467762567367637233343761641546416415654722615642376575752746627567256651141735154634622126712777126623727113631425111424326526547331634546141374725167533375141274361756653724326134117337254365733127617312633457261234252711514126227241435172132255613113355771713746113524136465155566234124114312322514327265114663516221623344517771433353264544135746121466237227363731347134456354276334261373443655714117565523232277725766324611422234213674331651644543414276457563275565232216473167447251725113534314126451232647524531734434121542355223247523574161353137541636755477724677357157226622677172761547543343271317232115315324424511575121442563525127651473256637617522667747332234212262611564665737326234256473115343645133422326247263722653275733436133575637654714476564715572744757337134712513352231743423637436561665275567715321414177352425275463114753753415667476435776627375776414673355744124657366352372112142422741556261567427454625725242575213272211266342277771514447622433163214442417536546711555656723423154512152736772713752447451734232712211573374664373541476611234435146136467156676363344325451233131644613732712542215647315331744231633325517673235611651415512235321542414315527222416551231454217265526351734165335214246415325255746674611421154776412454177635322322133365473112744213614517343516121557227647743574156647514275717156112776713463272757641461162211112311211557261576474543762223333465516665723174743431726257574252723624325734332674617635774432736317752455212363163765656412675446534712533173312627576431611465431732325544266467536313375543277414646432142717673625264641371243727674172374363755465261322555761147451611247646316145377546345351327317533421364277747115752616742713656331461712215137534725522113317244424535646552635346222333764111444137623513176643665137526136314127713574774562161564537454334746141327711417726175452527254567565716621151164764542723132421517272164373321117474676323554644754263513154265226675636175571377616276616334166767543554434653545365366111631426473767523271665325153774256231111421562173261722531722537363473645633235563756331444521546125523415742517125741274555543556437762566651663377517255243627473563733621726345337355162345474663367553564522444371117453214513242127476262426146361225547331545767141166227136764116674626114674721726552565374116175561571362754755734222762472222161142367565174766311621762313532745175144764373235327536651143337156754454173526467453242456712727635473113376236314741276761364266746267621644415272412312432762657625777775555376447762236545724675416415353723776166322176761361232712631343542553474725525553776216312537724261541234176565164776646123125555532755456345144644432454166735421636576442146523376554164167542646527363616552122171617237314677562427617656161411563626557241316661741737756137316671566513554542537634643546577567656531125663256252745323273263251733246145364221425361612231546652317113642265436264456611766544175776462721464214763553761635454255725211347172471665255441276723515445471412661767615453573375657524275436535724715553723453252124643326271772473352663231556671354627656757237656145462536336574356243231253252155634177144613342277423632266375272711616417144353234621746116626716221761176544151652756651543545367567717553262266553552635222662732732711227566435112366117415611775315331317153564124745176677171631565726645234746543364144155242427313117733331275624247666313665527247333576537313721727761241132156772461454315711722111236252561461537764415227211522736563742177164262644566427562756545152362477127313662633513171166613142222224165565641332653762653356412744463332737263451657154573544631316742155164332537455224562355317273427326762146124635425543415334517643652256777373234732463116671574252367271141565267435131721777516656765122362121174726722123274763563414734137151452463665226525114364157564511755235524435427132467166245526614537221774537652721147764547432126152351735723235331341125762313212347544435651514642754453523235471466722627772567655232514241712257162355354624522255537363463711721346114667241576352211567161354517322721635726543765244262431772135236323235772412146676231342544251123535246512735724541664141666612365223264367263636125532611612141652272642667363266641233324647136456653752117327124347573266272231726424724767771334415734664177212254655365255427752646334655515724423351775557555743566255645431272441442316264767447364257734755321464626545354421361116112621453432224212741472632643664146124477623233546516162356634432243613664221564444452611473237455756245767746423251441622235273762626415311362717764246562212612773545217436747146573442574765166552312256263277157324614312121716147476434155263234525366472673521552434233652275751471447747422511755512167316214364432536612153261741151722733352726272153262611775124325617156351271426164346546361624476424362413465263137674634625455231756117575234636726371174542474562414353216611674544744321477157411155477352532226513246415533474413362417664116756213245712252733272444432243742673317172331434754121554162466667227331455637236657736455725614537662141524757545631516421312755155262445142125522764735167366163622177515717671117513412452262654174754656547651631213551767265775313161144122225445133223253742513233346152314751664316724231423145472371631247435176762415651264724155337465337147155316175334626444161231773771715647661313116762411634633334536223312454754553123376671345712644265533241636247562452627521615444221536631445625773354247342176622715767235717416145462525734637147637753554526424373464271773117173772357731764335575224433734744535672564764426216632415777415267657726416251171175335136211627775716751576617126553467211363373764752132734646634363223352611317176412716372275524257574775236257711372142351243757631431244161773234357615742341423567524324535152527412315552625364255727374112353234356243426156615477347152311633372326762677461237273212333316756271171362341354414124266421337257451417743112443746475441573431577541645255513221767635774251332326413137723235234336727545672724675321413645572234136213113215666427477765446761475326626257147613553641526324374226712737743725412615151672341764774267364777431611416477743151547217336725661752223774771326514634666562361566177517117343324177556535774162664634756122454753733637421146434731536341516225622224267213246752725652133665457562322252567456761667762352126216432546224373271357366614735755627715741471711256225177513471373415271241343462413123774235374635344572636175245461761415244637573254437357715665763144571265345553337375377266666273752711434323547577437467255216475675751574172152126165124735675366263434753273575324236523322142162526223654124556371244416134233316231516131626555773444357173344266351174356124613361725725361727744764312334626255351143713124111617352514176135562777311712433534562644454356746347277372646212671275542211225743173133327341441551335547661575115421744617754242215163762151751524111412527335566366574623111373675155346463252111161652274243434152777747375525635613223557223637141136177542344736352746771465512725625563136642466664573652432624426216611474644634474672254436171132614163457253514215422274175271473772457574265525467617427241317627775145554346715176747765216211221125674421242153766165517427641763543275232547745655445422316515762313246413427275742624146717626257463434676626534715532344426233312545225127773575247513155671222415341153163432157131546346467532366464712355673677164717646723261731422666455136254556642645274367343542476222231715612176525345213556727552216211661211273631651137631727247762761211421724721225112325231337446667122236637161673724457773766556552775661577766272147751447424272413272462451412717724771132553134364522177341433435144142431734562145454572655221135652724737476732471251447361314272574271242144415532776626166517166676633756511274674477416471316367254661633663443124265145316235263642735324661313623536366113721315511343142172574741716636222354146264661217567165357252164422245275555616755775524542761534651667356137736635327775363457136124253177262165637741461145741563311631557767652645725731445633155247345444432527433236413265674323366123656742124437417726516337576411777774126553513615466332423263463362165752344625565527152371741316616324551352142524622152257217261712571525131322774223432352477462752725647761362713457526756116423626312411647742416357265777532224765237413321451427457346244365164716741272451523667515542111637421426465724176375447125435531513746524426747776533656333176266664535161174165652337264514343332614534744553341473523164632264356141436723447427211621314522361176333144322455416561621364623132766313754324154743134374677272512442746517136623125545354275545723311162214266472366124654441253574624755563444673616313642766346732547326764454636666344443311175261322221557353151176643363315744216421617536754264151511743641352233314377264514232372416163222345677326236721443773153153575733522445472473451742247666336722413561427551325422656656571414645243276364416362557555334575263776236174546515754132574345273464421231725776615327511346165434365323534345235651642775675357127753237654316266362572453212213312735724364314153442616327452222426127555217625261462315464616252763141172764513751112751432347567776175375165354475672146265333342162732437366736536732662426762262554737177773656463751123711241517224234224522467665711311536717722555171543713173563634117721734211112275576776355742454456561112234444224234253141227654533735267525356772537235257155637324234227755666141253112716511653467713722671426553263355147345574616217571553341757275122156635436241212276632137761573721574447464576736733355255335747231775654445331135562417154751664155553326142265744176223612711427115437254563461211723323514646757424552241577511623154535322211263637744224216377725411243564612266373726441271374146172557241551412774732762222727547635752226456667462661224511476361265321256245224423636311357325335266214242763444241711757171625444365722112565271311416315571244664475717256616137211252732755554224115733734647672127323431215131553466762456547662714351522336473643531116654652154572554776647334521622417175272552131531436563244327567417337526142216362231655411361331365351256477436652751512531765215742267746672651745227313421133531147743532117325247262443656243247244446641613421456723211225553467743741221674753745376522367737644357512772416672532474543636633272242443613514167331614311274523741224617361617643645465516267654116616536627624127677451271376177671655547532254243222442472373372467154127344171522757221352672151765512446157332621743711162377416256434442416662755366366525466315261736266756254773532415254214744756576573421132415756514236122437326266632144225733715347143477331367344552274617371144142412355414541227431131172315123264332273757272136252473623425735471622217237344272431623374271743125347253317747173376535345552775531567112215235555431376154463255434335566371157634765672352676531216765624124216724415742131714135134535351662654235721135336752566151625715274726421644461476555364565366276572543741511551436275554423343124477175147225461221116541165517147257174126566677721776214766765723722434272263275365126615515327713155616135545315716771562333325643335347734454376166355611242726362117713561221141176561775116146257262531764177321376367777115732161245433754115145774675716473671125562277571425114615375336547642511632623764517267737654542445717213475674354374417476153237131151417271645366127766613247243367422542526366262271173527455713745312675445465616725471455255652313664547276177612451527334122363751346367116767246417454766215614147667577567623465522227151533246235215175767325117223431425132665576375715747551672134316722221662632534231216276513243156461647133476732243774645363777546733656317222547256642471761157642331361314577616463742232457343677635167546641416123447524451151733652737723174617355247624721126513117173413214232656541352564344756167341561375663557515764431236135171246317267454536345717134741551715746756624467234124241744723713717676577247174516333327123433735126667714135415452673616152566477367262664436264345647654143673632647757512621356754642545236522617724615277336344647115637672274116571427464317174116513674213634424567635267277617671171423176557147223733663554644754126537375431443756246624321736541425455121276563417273725737714155613425544424676635221134144451343625572333634436362475772557715376757172576352277556267544446366265116565434644723542625472221152673462334712473767151611144352543121343655225424422624741417673275223627332115547223627771667371122415532142537643135135333454466736572776162246553376131467147733614115634251126456253332447344634346142466572536455122356313676433341526515752637442571333723566213364245132326363644116372667411147573377632571176576527615757175154674511152271741714615414414231612372411631736121672453125447632163433636732644724372574252345554231423427614317146427155323112524767442433765111744763525725217627763237446346344142435131663654644376234151135432714411677164562111125444656333633414564474242462575353631663267631376147475643224152455455164156216234274661312727166743452167112634355143165477526314562772174417734452277737672644322523143475417156375461562665317673216656326435264124163261133213445422264147576372722352564276652315534241337276461535115445433563346773737166126112113667422611146156363361273125236515567642155753622267371613336321166163372271574722753144411333451461621151341633137555226452626166152466412616123267722767352271226456431712634254166475424753165744676717372621347276741535135742443334255556713734737723747534772334663551453656343265661745556672477145223511446674454567444324475572223664631431277565532355124563726375761145256144731355151537242713612135644457263311227214321431723235622471526161174225757123226532335674756756175537224227641525757437235233743426457272167342747724737453157512366417727743142244541626343315454325416324741255642135651312167521263115621747523736425555763745255676467553545232113552361774613473342321714537642427667766561127354617711464461534623533411514552343333413241324126372742124672145412752217432134774271513214311262557617654151562321473123664722161243241757747271451764443244562677334322426355422432175433712312336771334152733316416462662132376266212631134464336315464676247155117374517256673423363763727646541617367276166542761371662765633624652712637575715154243442344537316427722173575312736373526312244117111411761431635675341372636247352422622764261661415445727654773155347637445424665442235333744252115777143627376142366112476733255764767453373327555465626432766564174251622244131767453427627566316143235552154343427763156745676514136614223651213323631525325377723714426714135467753146577347332732314225621477476113653526654751372734637176246156435727614313452556341252166713746441441273441737753172211123416363527651334441346755217321562437173262215751116713634667656232351777232747261163565345243775223433467574532732227154562771634367626626261565117125565775261526612574423513433446125616444527511171444116351724636421274747622131174516353466742725754552654751761441477735643135652341625213323476546443337545432766157612244574451335572565231531346427554224652616576664521763736662756372761363243143624714231331525565674134461765256747574526611567267762447536265362442735625765723633176153723441776272163653466153463471162356547377475164542357626266376434471332373713557724727636566541271443574215554465261154732576737264654265744413332347743334147256533362167537163337334761574611475733342225335567624422413165334747374636462252354616267477133641671354233542676361376457473776767126551226416455476555416775713726513625677534374341122623424715776262152134574232443545276511477236444667347763137524344325354327265753616726341514151473331764772577761762726761515665221426127377477616172712263652414545467527476451367577716414664241127263122111336216321351647363614532155315332364325344421377652336644574247565137754327457554617574244671647553447212241235526677314713167155434545762174767767612232632656511255764265765763765127374571353561267726426336624437566246414653113174657612474247237154116514214414213173353777124131532323635476221521166467572115362624227667621664713662652153621113535435416565376655242451754165441215755545476263121367555263741161657445215744456616674424721146225152514411766751647413115121743562152414523427424655267661174463571241514157132531347337457117516523765514511673746763737152732515224164455446742642345344646231662462137713511715232176464227316655262362643754676176136477427325244363567176556457454233266231756424764173647625754477117734731572371112316461375746646653356546716117347277237134632626245112113733761172136241723326232754256552367377574437533265717316145632151217361634617326736161666461716727146343733156752651141717111114122756452661665763261373423624247455313511677415134264526212635512353523624754476236511523615477544217611276557562444527712651645257251361355244571164775262457214133153371134675725414244413433147565726741522333264611362525243222723627172245455245274567325547741434434651336744675443415372217442776575637543242611351111331375517567253147553753771113346476351447365711666354665116533314342375435135224252751472255617243413347752615232537617134715632162527435725542125125121412264514167742654422634435237372631473711135414766352635451421674735346451222737665752527611761475223262324517616573766646746127651361434725715576264252257261156476451152663452217735152771217241726735324672222225743344675722715721652233444777513151531333534446524151326717761375451473767425467165236231237361135275614645325335167174327346462373163451222756464513256214163314512251312627476741476437235477161317442623573511662624551311326467533626317777177451735177333272256651622613732661173713636357675463554745342627637322725663644472667474341423516441634422725357556636362423165742235572673532411373341474114611125775174551632662236476111672713424324672165254577441451431733475121421637465235211266432535164676142135213637542577532616535336333556267663637721173475357114647134164744441452453723551572267212727524251226554157534625243164476351166321116634671362177426166724744665126712571541142723732624232532444345514657766157564746573165323166531346445254333746627246177416353321264123455143136753673733772334463174352257453352641245534762427731565713767416673136672471634647616426115257731454444515762366466242242157164233677451251326156172336635644476766624642673513432676551346715674657354634226552132627754555456234271555376254551743742446273236545133564421276464762245776311276772472754263233533766466327541351621135545762456745613446314452545747435334511475257614556234417175241714464534452343622645215325753254724577136462665141753626523142643214337167355173372553526234321752474512441262622711453377732741271642217435521731776436431736155133464321214276417264126332136753312754214524576615231154476374736143674367146731653662332263766513272541555461446146362522111763313667144614767773632213435424765455452244553442745267623376114753422746314551165613776236256745326413335722722623113747654662413464121512124377717215213671743411712273476245137262673274467742753363724547444462741377747634141461164447316755152213217373627167266633674462217442772723424433563546135516737113212415756432711465271153666776321673361344646774535632232131163262532555342133626313536152352671243331155462643663257174323572617254372237324624342441713473565613252465522213757115325656344145562732574635324345716664432155724316457143775432222212655163564115163111511353566777365115363775514234375543223134154754522134724541311256411714432131514137521376346555336527273416666212355415341336771754673255234164333173731254164361652376713522166565272217726344542172113456774553472524425453257356557136626374644216572437645573541464357217674324213347344113471636475315316737562125263565234431467123763557636747675154611443413435624312266264153672472536261544345777225144553252322515344531156775731545223533156321164557657466251334255642146712712566555444273347666542167657267431476343762425525313611617646712163727227572444216471661655557766367324373547261242237436175213143214544721141375412544575216422743527232257476357435274616671275647564121267716161571313162212676166467416527336527647367471671616445426371434426314432572673664522373333467132773346516177575241411134473416615253124144723547777174453133613547743541254627631632266512173557663141276652644746366246466734113437567456533346376133711625425751146113777324244167477662323131245156456472237746615673126442666575452333456452244144547424714754412746224161415731516561262556331526457166241154225263222471543534472311334431153673325575542124654124251724743423656536413525314737545631444717314267121473335737715572636241161711622163536231332312474332551642635154427343315636777542637114271715456514756642452447742644474576355335634511765332336632371751626443235617716542775561721127322355672564465442653433635757712257731216656323612154441145147454557571567421713127675712546475263233422364565721171713176637566723454513273114315527726723771713341713442642474345251154365565121322656244324142766175444323744175353267731455644664321753256667526244251325113661334432757745631455263335255535561333522527413451317543251144523546231473544712733127535552324612444625261653167411355242465767234715533722231173341156415124156657533124451661135334165611236224267613451557663325735525651563222314543727716351154646533614236567243546641466665362344736361331265631415564464133357143611135153737171651227642271216517524442635755133255342662772554446123317174511147674774365543231142573474266413464173433217532657136571116156526337772224311576521467513321313236137462113172745113255431552176722657271511114636145727175375117415325476617362117621621462113253726566357417717712115255466714415255222152764156466224163764426153766175413122151113512177553477166716457772277371562164751431536537415414635665154462771153227273244715472172617246556773426445162554423543143267155755426353271347713367613322337236777636355423524163144476632755555432466142513222436177772367735611141164244567743654653121225727134244651347444641437652175717613446125162136532766163473273175532435155471453554472133344673356523347211247634274577145426153744312432566453214674621573472677532675264222454143645725454755632121647362647253656452117615517623711157333362641616711711652744255363327755133324136137325413141676322316233665371114146716323323355516533723642764511372325766335176161453657255626767223622666467275354631656442331364766264124753577274463436673743332257753451742162541715174372644153251527635135222322123663766515724216371115636171414773312252155517556656552453533234554712321113767655622761344677346157213413623571254563621221365163223465156537564354656761136646161446165737737456143743155143742717635432524672476613321135322624637373666346517517732236771274656626215141623663676233124254552534556263455744245257563312776152621551125513347275353775264711314562573465722741566267611312553332411167662157147266266231375741123322321621544553461325355242364717241434422171431652327135373763611153516625672757322245766274666664345247137246367523413233733621266724727154673655326734436622131142554551242647372316653634731746313672115362433664661345642155717217321251535233622145642757541671744162156571362467263462556536733333657446566125754432577463366622127254223735634276467336765561773727533726673223271345334223322515667263164477636173635351572164644663171533435446631465456754457736466533776643436614551367735637777552153737213273652721714511771666163477531142527742152534724712722462455651735141256541233644236376543222435152267154171564277241725437513327537546255233644767261625776241324371236742437246154347131765127567672516663676574327244433156134125475263652543266222766275717523272121516654373236524554465451767113253252713335121517247114313435652316611145747137165777427153652714765111676613711422463512777371617437511561753235375747351311411445435415624356215123141173333567242614476143653565272311534713137321762665163552362523767477712745245323243517756321521451461765611354777262266211463532671117761116416544672434672245445546534647511564154436716333176653637424315554272645655512223127574436276645464652447332445766136413322317245744212234412177113763235555473367622744575626627226651427177527621716457341134257134167716162253455224157374622536135246266474132565164213716151775523552522226514324756546465465357635116432313145642437466236173157677643713327115467446463262511462456756311422362236274414764133371177141313533656415257556172544664662713476665535453432452725313173274534423117645327554646467116337172536156244675743537411411443364641465272672475153133164242671256224155345515413736345162452677533347714666447743677517155344311745646445271276576567465131663757555411321541322167147543742347425166112266427536642637324461423221143371153227225521444223275421627266413126242613161513132773176735775311336437737127434534255157551422545311425336312666413112217242436377332165725324355666116134316136773312124555414163774711343345366527721327257667361763136464114166752223251347365373717545265765563615233357326146536423151741427721544173224141615661276313446551625345651265266144265125563437533461246355113722557463131416561226352111722415562521144125174216134355457711471552661372212634641276154146217255553524735227575735633237267277664346643375465251744371336357356713767227175623627351414451476217576532532314676745115553722643523516751212713616337225411774267657446571172463327441372362722176143714733263535561511147242361275567274522175554645743671236466244365656257644332237436542511334164552471464237354437224565621437715155124651676351273652434467471277723517671435666243516256125347241422573555354161443467372225153335614153721336514742713236144477267776377343323111421645451237257261117754416127353356735251366324335352714637655223137645715536363237522275172725431325126512542154326457271562246361173164441567313167211361424463414623466656577127247377352711351663222116177771635766123324362461114214114725121737742274743221322633355157673616773233726347512666334142122422323545741776756255211536147212533211725124733651561734552462655376372114626274253547224364562312353565356275734211232761447712347526255774671322545754212224441424352152653624162771422645421454122431625217727316451655316565277432523345337361226415256234754627262626363321444316133657445131151333372525762533336734672414622665334517326462725711412662345545367147263741352754126214641424264217327535653251663524311354112623666651545174263546367436746333721517764613333616537512527452664156245535251452435317571437735343151643552536612554523677773647246242611165155442235636527213241165465574373251464366342474717736574444274522761317354514115211777434754436625767724565116727126173667444345145746526347142254773463541174111526361215232447151527115226627162637752676254162435355271762762265273553567216542417321327637155514172552572457621754116172716667317554734372264461763673174653713672475234464123323612213511213614765617456761433614135417542233633323461271333724447222315432724257615134177573147261523465577225126622343323547676741277741163514467634366552531526555653652233712775434322664147635423121445646246121552652355241134436672377225131276463632567772346125465577273324273566745734262714462333363616226615521214733233611255573274727612364516222555257474145354167752127412325574421357165623423532633713356226577645754547121563657351676521472565272656671756445563553435665734574762651665621471756432322736575214363562353524633475627233712423262441566353645225771713225561127363453477675416217412134513534654231462541323153113317772364743456535613146353663335334452267534421271625443622356771551776763444555756524126444254433433331674453242223645573221764236573772537165227613553117177523563773246344217217566267311262442751366233754676664614645665232436666412171671467262657435251435325275516677147175352325144217152572463453357266734267114446544114262521746176673422542225763474113354362361272535771332241417222441217347576652353577733273325472613637727574153422335745367746336623615676414667732626466463426471172552414172114377245224555436535123365614215745673434113756532244664374115573364636347635511734424743445235575261135111672775546254621555235753165767761261135162564731454162472462577537533352527333461226365534773745633267443466135146715571271675562717164424226144746626756146715226244677233241644737545541353116722523555272277663756535774214227372556467726716475457147572214254431311313274735473617767121546122343473633447227472561414551473637171475732155726364546235465662713252766264676435213125764554154372571421722674515231637425124454735167161367152665762133735463775574523643652241647152446316525475247444132257353461736557433262777764571135773431635413556716411327117212112356541213471411342315435347652217164325575636174345117636634145164517266763572226747124126434243714634633223456452474715752475717573277513167726176517475655456537756737255241762742623372157123121625752676175213564245362363616772576765766636276624452712213213353242142724745747376666126357674232445632436233373163765724713545673575142666125435134737322716677161764254777653466162125225215215213722521526154774276131741663323726112153162572232735133212654145755263662152465577274635713331245765354671237617741423335762725524261761174175712144577477571453712277317627421634415544635662264514435536512614365143625425753325151534626777525243526457144516325421272172155712474233251732675446665276324234365127445542733676466377241764534245221176411671647566423613465172534154615715262142713415654565751475157761471715127557256725424673422417561552475343371264137417151331411476736472731151554536454411642713617457743161347724561333336621112261264414531622312336761544666274224774457643773345235412111731465254533517227453377141353356535253747337342327751754122467344171575431565637725714426174731542512464444346337142525325721266351626474737663777262124626746514567526133712323331652346242123672565567172333777764411344456746325765614141537457122346623637652462162676653617723146642334423661111471265665761265163326761441462522651337235354163524424552637113377434356225743215741326613634163236513526222642557523574767376623513255217365652534274614644645136565215345724316736527115471275244674431344676671544645425656463164621164465355541137771466346644447447276745611133724214237134567634664467142356752472135741417514172647765222121361663576631612232426516242553612661347324515122373345162247531732155127661464633257757124266372417233311451143467467411137652232154416654671347517551654753166314146744433677742717116513223754571464741341356541562353765373752211716143217265246414623464762272473227652761676447132577266477541262267355535312415565614645623641277245712652723612512376772275326543245432635236477721532151623461124567153517441544726234227676771541555236113167462476132131722276255761611221277557362676177327346734125231453431476767571622665462373137376643773572663744142712241654614571261552741336153455562641441727237214511644542276656253217422556576361345133243242766421352546516445572275533157256237276563435571352513356574623436456325562432666747316276551234262734623757246153214243132344754256552346263212542357772126615434221356316737125443333655647372625163723627741425151536212152454252565167764235643717542756213642117727635452155567455652474161412574467136333122266754234732113353712125152363621415251545165432742245643712264346353331151513776323217512741515533167274365655417727712375366232551412747526467373473534474217455635741724752611261644413744773575371514172363522576351644355634575656366525216577424522267744524412352235745724667532767776341123341565262754552426715114752163527517236444123475267111516126461542476343755215745756137632611155335172567322126614537632114213755665155211323325671553174516724673427341313635424513723674416767453476537133676356761341672612756236223235525462367314516676115142753317772441667731471213223136235755655222311315456677121444377175673416757271756637543716436457246517375436523477565175732716732614654416361742732531335645432722417251121226531615147535417513154162215447214315123116746737336156266134165536331562357343326323153257575451214563727755321242657376466323354723425424365372677647475427176511743625354115374351432214313164271563421732462232466576341656376455727133413625173653611675536474316212662145664152543533476347671523122346725543737322663427427612224347242727333354444127171752374621756341415642427222221237566162271225276152234357462625565513143156715613147565545737527372725234125677214174751543535555156673314275217637334412765654462441713542253237273745145623372447631175332646577263716472723267264376731126116735235274577127235664477611534427352712572424341241521612164447366577641122577715766741246773741611676611277267766772727711224476656457577437526316621712744513372137111163735667661663156541167313315435637437527615214777177137572436131215251241163463513427576153665177734751257437117462342256645355242747166122733172336464447316133231356262576175222271644775672236263222462261724253337747641155624336565726122546173217373312273636416277112266175437466136247634574335437557567223271775732715375131714772641663112323236341277724124414611661312655271134155157552324615115147234155171676414462614314116513446255764164636474666236137722376224714433226766566312326527651573375747453242231162335277476446716512541175437536772423552437327312656716542616416762241513556627176676653234115124251323612663764775562216527431145211611777377167556161764746144774755165235134121132331624542232641351263617312434651753531655251226235615647122611726372471115246172563451374555661427761762416427716455414772667732641147321274365123574164453467653667612142467272551271637215163462543756126155333453647657376634172467412221753321624673542536157417457772761344435225661735752624562563173146471334712227124377767355556172733256566111223754663627515425711347236147352651347532672555356414526344471766133727271546214255521566245445441742672147667316261247753626564661167465454424434557546142127576624763432713546114261115217377172667253464647662272322134755165444462741425324534175302117546374744247313245631442173415451421225543613236733266417747526657172657141365371527561465557344245533547677437622572642416344161644211211265346526713254211611615437451677433316321645356541542375352453325766727114643611174225753321563372214325712374373136644366544115535276767236677223721567434256621452347264255216621776732341143317533563371233124213127354311731714473744156472713424352123127332763366675534746311757264416441557776777654557472661627261135122233123731376435715771136233654276512114254727512422534567746476256466214516671753237575673543361141171643533631243233134371631756775262545731256513215655732147751476653467515466617464371515674633632171753512572652312572362756331651166457637216451521767255722216335163267371247322431447251473436256674534751613356332251422155173654456255367614537165246354254653231247115776443461116153672351573726737526464744264772452627611273366352322716445145414675776717437265516711645562243723632633561527272212471347575161463747435422532662143216355765145431475356423713231462317236734461737455437121445523665777673352345424257273337112517276267524152613442452625736271237257232647242575153356151172114243366463577761676134151152463226446424775773764617314533613325272754545245644335366142432675414621476133517344773677243442124616156762452526116417425161314674513413641112124675631441572261153324512732235625522766756215413645336421754547423612521441371575331214411266127522774147171262725146427635451534223531652117372127772666544736343526614734155371471677445247275566451164673433573663747454515253212431111364634233421465246665216453555623316723475455262161522576145546171163333167616736127376315751757157424734726713524666526335432541614426721512175564346312755331523155157141442431775625133666142367275111166421431213136526522661677411536372444465771653426625716647134263321767676154337312723621534242615675574572145277413665752417767451221617225744176465274534433561624774736633354222642327173443444234541524751413771343243517165571266332631111472445162343541212341364461571532615525661245477644164433572766167732531656426312112465645235753767232417262734336414362126724423336611731343716646476527513154511472615732242237277163144462244314414317534167111127434272316651422143227627627743117426761765127435656732635732333276274464316442247233335131374734665444174641164171533347411224574247741545664474447115256461142475513551356727454475323251367441312767736737676346161417646613754254361174164131641711716767376135453513222534711722233733163675444734446521333526741354562763637342675661133576464622271571153727327717232612651333563744143344466577433635112256644241646213642513557252664122716532525546744426113721311723234177362247753424225537767272525225253571475647463256166275566212147416546344472127745666345366663533517454114227324724767527577763434521133666521232727762653752226667173463364426512672276464616576676155573155745125256214615475256175745542255771625557332111646565262137365275357244361462657435355562622341767114542722177253611577752115324336722323543552152233347462325761663235513171376523767136361776166472452662122115334437276375324164233513735237772345454214135654417652255672671245672433257634474553671572672716417754361464134512113363452664646654214344757442653114452751535422253677366442627231517724161644261557517344636663744756576573122267251216661451766454434324635154261312171357456335762423216624453575774232217232142274525411755345136562622745242472244116124751655424516773621777315125747545622474156157553642614537434512275444162677754243545327473145254732531731636564141514553166525337574671174143447622277476452314464153363667144226435415363424153572127411434167723674533275614274517547524224237526372723414154525462543265522464414577251556347717354574466524266657565744571671527317655531256255243631427471652612577454572531244641772743731311671756426112135532632136433565645743626527623517672214267456334231522464557227127232762746673325471746334446541675264357357611552557422267133234153412446442616765747256273626223564642675766766563412332725531117413673412411367632275566253264246635277441677763113753617347764557477545635725337634126242252637516564257142565551363117424611662557316223473251227641574376565652173625365773135721212642422327621224662463165677721215567722175127417765215165177212771773313735117777632451357313513613243645457567553637155227561761414712661546615117126747627716151751256242224646757565566561416576523556172665474543232711252142635373322472242736241553572715317731252533161253276445734236157154213575123242463337243666565572134324136553712256262651537211525147662456141375325412555666131656635172117156771451646435442446321242344461252426613466323477432546113442571733714264125476431615615352441545147656272131675777467316653136653541561714274775654615673116175462541642472761556156637257151726114372531741117636622547665651571227524617713165661236215113163316451141141351257274226646365526455471676135243273726612531413362741231135663122514375661133361565711234614125477131636632371361252364165477337244237133353531547676415155212126643666324576143744774673413635533731753342247553153633116372255467656213541515133417737562126566654515253245747412325474576565363153162315113265327157657427365573273344246454226236123264113764375641454213745767573731432741412175233656362157131433517714156375121417256565471644226226635466371543471447127215626442435314335373652126732152555423566431255626114426332536773545735777125626531272734271171465277771613515451511723534555724544644745316154134136622317172556333746571416121646527157161446273667547612524721513611637675635214371362634335327772765765561373632171264717653643743542327561154265473714173367775253426564612347171411212457557265446316761124135275427665732662535565365577323742614764577166431271141627643157457257546654421641146122225534562516573461242347455461512464134216267645772326273641622261615345266154743266726274477726116532452476764213174135416371312176444624613243644451221261422532377772574717475232255314545111353462631433314127445275643444512242344571742463347257143422112327563345552721365313431764125347237773541743211643375516227665717777345452764257422263175774415516742411616225376635135735316176664235436262123175621415256165166511245273514725576651415325243713147571151564344332313135651253577546655143417733473626315522762147735543173117357731672454764261374257461172236133232367177527647455424644756763375545764637623651424171515513735523411114776365521247321273677352524635325363746762134344633562145547213632336146362127412163466244364551115121157362433651121146564362362114132261434722245342232757117412134463535237543311523121741123236674147763757311464767173276522472126226523554724424444164646217311344225513316761335134531451312457761653175173246653327365427674514771422222536524156125751641432142313524717663372223121226361576726262774753414546141362131212173133322131372767665734437467771473646242312671677312146724115244642477737227311341665467211635412761675526656724772651512715556756236621416517231517671271751655562455636417442624525635133221711367143715163344736623347763773133747432237475111163521427627334637714121262112111573645537673376367112137431653723477364363723743665177233432744314344712473661366777733465553324751351512121247257152321316531136364446657675612717252323276222157625412412213415434665215247366447221473623364747446361174243711723174365715422465324335162453556176544346117367221565413642221142616452264124136235175562115112313141551373621543344233433255417124373424725763331753326654524527367632345234471475131725567252317274547264634614526532272136451612266225672372745727247464232413552463154273511213221356613156443772427731422432746763756464441631162176347414711521336166622726136346264344747121253163156341344271137575362215432752456314337161215275725246771276455476743742253112614341242563437171174411747242632277433712456475516256442577654214266551126666446265133412571113541417513371345365111351627732316457432772147676411445527524154734177477615674534512364451775672221252342731425276424772172662275234352655137657513222543743353116455642346334326541124421756267734531765722453447541314472332235711127622171444522743324667123615137123233477141336771466471772574616242513526743653713653764255735663153435333717271467165512276156473736562253374453463144463412251454444562211657227544374655172341715465526774636622243731541166267125616577263254417772167376234147737717736243634635243274736533635637633661253646374715327274457353357635753447377767622552221265613576374542561461544732364322174454473161351521516312531262573141622321366332523354431656247455546772227164246674357546553532215225537436273753421565444617742563336322331647121277133535621117444465612116121357374766442654727367262473436454523111166243636666726357612561232554662425122212723751643121254523122274125336647145342555612365776137552315373417243412274442232246233454224655562234563237554771523252614472351415764426475114275524126555773245745417466176516461212751541156653324452263243113223521516714511153611141375715431174264756337546136244313714657767576174741725741576336627426335475415113126723212135632763736476336242463476616213126334521567332447625365165117423355147116151325277136644645527155651662471643562515372767551676355535115271451723563762747246174661362271256442621221525441462742111322556433526652624571747354465511756532213111213754767626464246336221342643774473762164732567434246313571111547157267763243315623563133153321345365265622243735213517134456473342171753277573334715611357331554775163513563117527472547463652362712464133453336466654623311547751231535772446275273665225373261473466165432363123472324143572643321121775244555125356174344631252465675311677422356155613275324664343265456431556474365675547225543273141673663642271762456577355665263263652136456556634673647537446765453667536413375175363355432431276666642422153653522756532775215714562744243622174313366665417217677213527213434164433312163114274215676521265575347562111521231653344335444324752741362333547736373636473236634141166431176712732325175521314127146611712722325441362143275677774675127211544427547743474273164654565416563244322227656276517215655315376512344476364324216126715436376141466247167512242154145512431445615521636611734242645435771745637322475376572215412265754252135171347116767111663211617446643543517611627632727342532475362647127272364456652677153423353546562672231566564165773235674147135216531611671376716442332646752673456541731772573446762267256447715763266356646123133452461344235645354223177712324762132155671576225657157261424212425524424664417374323341413124366252524113664624457114255667327235411731327723551562121716631764434626662763331471733724621717362145153251515555541243635736666273617135376154742155441354243263444566336344641266744171525135413762735653351466364113166772543753355254472542572173412222576274442256736173453563145376547367223352244266623273627356324262375733267626471121313331272632252756276267147242373637757343567756615434447465726422531565734142122566342411314266332472116532635123757231453171734365476252454266664626754465577237177625762511361752667426116241247243652133371377565541352216324337536151372542511376434655576233225132373447632762634323172726241764323671663161265727231532447555211577676375534236262235563451363454533354246653561724574251227675242571114272572674355173235314141317342753242522377111434265571733176275631714343445412237621715214244637742376733515621723225757573167264524427111673715327735774324442713467477551251614626325177434635314244331446537123745564431725665323656122766177475254726731536372676617726737616435731744217157357231234121121775417475226234253315422134136336116267772726545715647764411244264114224416264774552642373331756467121553413112676254425642736616721266437742241267721425622513575535577575623151743116677262533325775154647254352662553472756277111526374212747136374764151712713254115636124146711476123223533262673566462776777737653214661316515155133344343257344575364436326223637374721356472262732465236252655514117245776325622262624633117667411435236771773213315771313373454517434345445767311122253613151543675423161767721743371552271255445371727127222337657745364422276747742163176421427425144626237733747255666432673744462144157164461517416252542747525142651667326477342266543747632435712172134714151371144442546671514115212712336457674451726526716317732223466444334771264746637671615731361334777467627324221277461374444476216246327343675725775234612261212746661626316711421345735163475672461663515427672127534352622472651756432263363466531167361531711725157317736314271421347433636747556517673645365537663741343137215776167553413175165553527124146656566444776325235713474377715673542426236752676476736576467161336611533432631572466445226344471363336613115166435272724567242477634625125645411231534313446515661264166753435567553274552342222351666555221771765476265411634772262157612112127761716441525235445554555756277267457325571223161547325722753112757112573524224211244757345646754156325617223645771576423327225622455336361656366536472723744627174747566664432424374517123676626414364254637772532222134534426566115442736745232553777452134672574251564572314573162141254655236563643422554334644161116673316175562134422155533141251131463372151364636143527133251365444774213351745751243366574623471761511755252647775434213776445455427534441746146612233543577436277154431625533515737325674747557676341534326667374426126523572561436673234224154537433425775255231112345157566251235467267126541753116614673517534414344345121317631423122463557122565122644176163244556715463465555256454164162315772673533172757416463712312544453753437647155136676366431625363552215111127632622542414677437114246647152755236424776556512424147725143347774746345113155327133746653177116513451261676431334741725336356321765724773746113516712646463426525217511225135427411665444716562412564526231172254333176511666137277762525745253676116717176772732131222615532123746747756767264476512614571113426323332221237576551152521633115147563724731122776723366542762567646141653766166171536414723263261176153561371321374335746466775115624373444475635272165734734555347777343734517346645452746313247251275627261235112746154725243367312263232346161456363655513752123334766214132267715314165564115441131652414523615346165735346212416415645337617445455262736657111162755411471545414134236124146244433313464651512334662574227135512144412111262424213363614721571715357667616251673221423235275416345345346355554776252475335275143767435363741432456637452213717417552211514661726623562112424564433744125614717671257361644212645243665457761151276226472734222757335274212317437353314517332436473233654116352226641333456613663117474225744175162225553455134445325737625244143456244512314652525437523257774433457721352161443176161427436772446352477625752252162243275116253121352353142371621754465367214536564121426767742156534453515257147641124713721237732471251616732717233644247362266546753753766367313617334363522576375512272231372773736364756226756446777214355544141777476411227273272224742535243333472333466325634257654226764311567724364126611347425741746567546651376721523766622436622462557345566471563751743126777347625662431272457755153465264322413373535765223131746275745576756476643541254476662522327776713754541225354633514777322432323621315321245547227731662146361653114745763441463556557753512776311674563141271457334231622712743733512736245224166423514715272575247352377213522565746457367651565532173114376645353227267355325112411723462346215447467524447352423615164422433177156147614642115476225667223534452266347144455215137637742226764123161164632443367462357612471114433442224472727166434315644157434777223774116125757421115714757351473762373314721164115176665533763273433765477575326136617472772421675263732722544451353222423665744472166261435273321553124322117666265713767677133321523254576654463365674655672223315634324171651211167565446662123716441761256277227365233722245445373471626546511537353765121555414765156633514777626225136125777567274271661352444276173626426416337757245364542351252554526566322437344214651176225514166735717242217637425546572442752764466412143126271665645772211377756727233536447545342233454515422415347714552537373515154535217542275366753337277457366131562656176645544277216155223137316474415271146465576525237553574534165625123762653624441525174641451252765365542734571553272766125153462121766173543632163462474213551173163773341643763432571333511627347546164261567733213447611613757634654363452465115441434436123726473233417655365122376731554255125552714763531344674411655274717664265565141215715455434353646734443332747271673537473731536321776321635645744227361674147673774736122617514246214373771161471164717261253677427266667777156255755675723313355313373263111146535425227441777527151471721735611453115242341334441522515721572657171615263417754335527222273461517672437162761423375337556234325415667776276342671344433257723553453553473331521764547155156335713352722356331431214222121765565232323662424566527332655754444367513211343632624757135733311137122332557253544132156743413427421565753771245652266174445716743222736236453151211331774475474127222256214533664111177656545147162427332115414226237135611536644276343453215547553476177352256667613167513466435774614652277766751367357736563263765462672611676737176161151417716544145236427333333143261231332277775437273345511215543677142462453236366523365517373774771247375733652633363745774413114221263775252445675372772544145566676215643211111531742215521411317322226647647734121263155216357473635512576612335443662423247311515465645626261736415556213254434113661443363465237126646264631451757724453122556661455475162236225336715411676655624563363525541215177651641627522177537722677711632531735127763313467571167262356641135646655216445524534753321224441124711542517263146545161272756762564647131167363251766777314273462147162272221655654643615426175372327541663162666254654427237667222216216624712641236761124124145377127113523121153143264667274744766761332745752477715475535131537447513177516756741522264177154217171411562467455546664464412135255426676145115561456125666172627462341146767447515437225136331267524631637774646472434241213343224711774114661542126552564217441232442262643136431215675216173137464623217423365416366127127444474175416441117667527431444611252561332276317276357434511162317466522742763733661724515634155123776312573175353476246622331144553324674173542121746637274312667221671321775327423217347772277211412454554376347772725126255267442717364133667766162765622332375467336132327415434724475741271141714617762133675361141635755263374776615211517457454657356176547146147552733771146524562472456362217264557167263256635115343463523553222331357775661411255614275643175231366457256327555245665553264617146615632663641465354241557242266267644144437576335642136154212121116423166145111575627526337542562544744661463532333425243111416663361656126313545276734255226215534723536556743464467176631562334137323162276455223224117265322136161416736613436141562572434747656621633624256753141422565251237133125376134633247412561326433447751521434127544615755126763431435511153475453253642563563145272163262642471725423512261675536644354631127213145436764754627423261655656111416262152557242125443547446447411237544633657171556123266223174231276762267367544357716621332654175775233362246615515476623127631322155475621513274153745357443475513453145226647244641517443114574242546377354272667137114525115532126756174524123737141422234716227136736421122435442414631322344466252723136373237517373426554113741244656526243124263526474226422647234117123426754337266622574657714516421754661413343326565164264737561667465637363625515434163655545645724676625227767444242441326112523274166511611665273546561313655316716677661757417655645775464224136716615113755253647357217532345236137631246665251226337224542265271274312222656117744165643771632741514736133134241567445645741235416722734231766744211776513646471312676432531444155346227514554524775551133161615542574456135526327115321737731525175644466147172123645143155227746523171175126447145742256762766741461561314351254741355365575462632617152476635231467327176546142324441521574237376427427215232474741134374627667531664626432612275411147543532514664355231311541473417663157427127456361332526665347437155726127776624667241731665737735436441552333742166372371774167742577765212515615634164173613577167175617767662355765415167446366476256266246574373143652527566426255273227277541755554136225761625356661622666715652365271176171727626171477377156415336445354667551561631561717641414342211566653723116375466354524262475464342754364225174132415233513253711216555377216513164521272621112223712453564546746517646221233545256314762346243235121134367554371243633276134346167314634722441615361571514241267321714576654144663154234662777732144614572225774422736415625727234624375436347112415367152644767353114747614625166725733111617656177675665367115711573125217375126215675533444345535137661621534454234627364732574411376561744322646221267653133664624514672423616642777776373661254745334577161156265365215514721336261741761277725644476346142325134341557667671466237765572723437253327417576645672761457651323341714155734722421711755652276433634343745541722223321727437313617343731515521153574616562514214247544626511536177551547622253761654337122374214173351353511777164621742213635454112246517721626412427737433177612745136137113754235241274513665172575427423121453261311662352261342113255451536264216216455674731252561446422347262114152542345464654711754217226541147434667537124624113445351334342275674651673476277533271325161412273717771337157123554727446571121322422555673616373676752542544716161346745327157457354547115516435562575321337315452225137712655444513446511543327632346447736563254522412667222214552336421277435271442631754165642766642751134764722375472112667265752241365763564125565176466374212537666475674475364114153624346622512442241611531252656357115666247415632113366315414441551351275335132352673643514152137355314131644171472666337745261217757464661372443742575571426551447525214445613217367751224372356331161626426736776714146567624651166161133627631541345313316774774623126522515671645577227721527222544526671452556336242453446462645417377545634676434663247216473334275143745324376766422352223547261114371144674614445673225511636641477674365146412312724416572455414575434131113343536367136215766446223627141464131676773624414361312615511761465464464755527155326576367567535375744352234143774654674752635575473741353771377765355643137627556763712311542431376162515611565553165436673147167117361252247125445377267565615625555663126721674335445433115567455244667572551323261633354133212636436475564726446431166572223416451221776571436312421272513163721143254235572423575735177475671126554171651114374266177736737151746566553764425234144151155764267146734442224631456764262777436454357724345131267176526725162737455466113726245254136632547733712461513714542357153736323327622161232543236563572276121463555675122275522477167471314452721627331661435615633764734563176151224473647437214613226775225243254724222164216516241732663516724616331547151642555762241522435117733327225421517325543624267677615136262724265126573714524523676322237441157653634234626467167622745621147244527244645475423475763565712635311234721662443133723313174366237362754144411723325645265735557675175511362554126724554546325314226677136375727623417154716547372172115646557451732737442427446557161565443411513727153225152131141126674334426731145371126433547662651224765671675545666532127115374525224173263156646622135756676351762512741446333224431246136754764345651716742364141264771577215753437631535754367377167257112777253336322211556626545652674163121445477722171773656455735443154131672713114223522476172746245767267357662325766136157355273771721146746317177122637764414615116215221153254175452367121523354475221336655374133372315566125664316442431157662213453122145624354132475424514744273625131734452274435217657355726411224326765224667322471546241172124667667472171233474447374474527375363433632665336172131572363224164427174473335146361541777432141514423153326223762745246373616751333632363215674111745575266274237622142473263775163552372211743645243514742432342527167221316672536727433777224517515547761662246157122522545235117763673761214712634216564276117726416675726521723444322642554557437327133776117565316673261747672533647157672767411471727123173267645662663161143324317421747377465154454163377622454337323452421237615313644746314646511257423557537372777364225712772116253437514445744714446247437552616162134662375766322255311377561316611411537326262427251411557522424554636662531162721172347333464753447337412621134333457423663411745661742135347673232314513254351141245551215216523754445173521646652541672313365574242741324411277553542124343213636143266741172147534755411123326232561474475521575372743246662414664133614366555375412145625165665312772432216246621734616436314146235412544457442544246113633457375146432776143421255155361746176523355666514145363762537734643616155743723447216515762764551143151566171446456346246456223241547136645671657524541416222655743746532332411454237372225423327614567123464433256215431173425425274177445122331261125244477341771571456351524552654417161116225376553373446133232774722223156716673342617524157457761214733525314651152224641677516736523774636225433665353543534431322733415431275564323566152525566151333276326265526216735226616633167316252772464475372724724576215257265364434274134246537321353167715655427141444161755776145354365243615632766415574215221765423237522324524574455716437445376633725256731371135636573656521573114532435555662464335634675656357743215773462622465151541335163751411171556742111737774147765474436746715623234336337644632511353141142543767422355442735326444151265343752624162536741763547256365221527712432514332522275122767413665657223475247433543255455436726623546275623755333551426272764555231151733352274441573522721416242351555712241614775441644125132377456157214375114742147451376525653572513354765573111277326211777456641367677467671137752513724752755215216244145257146337631237435346177715442357465221314447512457266261634263332154216653645772121747244672335543354142536245447545563262425211436163437263721115663173436156232242675534226236724444171626552266466251574326232776477471365515455372452725757247121751721672537377536747556573574613715115272222316173241731411771373115524656216737345451413522752464147545556451316243325561166235732626364121363121543422521554241532362773233544521173346523351323552653366743436646263155474525212571746744326213132541211563474765772766321341655222253252513313212311244311466371437154345616227352516237416436514611236727652771161175736672652234557563451751167317724614113346735773341356566511523225625264766556124261247232274436221131547435331767214326447213135351326312254354365717764116422247313353411235664366465766542167121347617133532371241151734242144211223226512733766163276613731562614325176472711621347222635713324647467336536621145277453265616362247213176767174724763321112642156216516425536331637263264367576526517451344167252362622367347212173131265614642272563632576521137434553354751377457133213264367324112557265315362476136356676742352621647471241511423342343146274577664635751732164432756273324774753545233446657332531462115514223466373641636562145274514266677155116513666555761622272717611537452432723672577552162374455641726151453753223117427751426214375214561166472622164161133154525456725233172275474172325623466223135541261571257571732633363136431216344415523572576762422124767112155415161547127626771373612734131662511575671564575636316611225324576666547735525221243234457272642547534427273134152465132142335413455116241443251331244451573445724436452437756221346713153531222775644127236747214775374757112471266771723521641441111576426766226226332514612145266347221127152765727212772116625461473526624223626756145357232617147521323136322217723641674164112755227623565777772371457166667274726772467266256425454572452471263113342377236167745334573643763373631167212112127542322626126457653752714116317275521173126764161557647467231367152353666474172167245125247265212532212762464612627531246175726312524732217561763746763623416467543236566446644232141422174632625141116664451314411564664261352277271276555775457427225535772222152112177761535511432316127332447767217276352143216547341415762677112742761215626572641772567661761275565625471261646655125124234463233635565623177665577322745473137422172764213313164226324175377342642732364734452164127437371335523137377773351757363445564527472615744633261266326563342134775265662355775133175655312515324744642711617332633537257442164672256561753625271465473546755434562561557741662147517754752626376564742656145241122231535737751546344432446153376632717522616764617463521545717773274166447446141176452535437446757476443311314325163245122156765725552222342763413141662261766572261312537747412725113233432423531613267263224336137573137461655145474423745412315375717657146663632274561341563334725123231726373624212447526151564275621634663256516144726734112443334427726335225243646543164532764437432466217644331276435272367734716156661764437641514343563567167716674714457435627353521261116227717572257223615534226355457412374454611533225111434261127167321777477663376721265613736755711217251236677561626411115612523545673627516466567542643345617265754256237717667533637373164113611446252352442334731751476771372535453622155411713272331341317453331613131662713424561714256224557742255435545271567662376122676674121655442362541536677621112172424772456775252334225216427737211672157141576731464116151753174265372476566562637351257356656474145316264132325362511446334175671322247664727665236214247747447573721176612511324354671616642732244364345425551217777771666262416145573354232254154264363272443357237466112337755474732453526766112157762125113763357515766716517726125336251546775766465475467453374737745223132621577357226375534231345257463656736165227751423247274112161446352372713112164421452772377345275335646341451133217426657675625462146763242254476531525526322257365375512731611464546431262417556326217414565545223156315557536567417461137623455754625472366235116255267353737536221162327254665513342377772765527626752177671453616257141431312374313433412441641755172144365425247613163441555643453567327172727722342616763657235515537657154745271373262651573463337436533232652223433721717365722164157464661173357751762732643263661737326646175172371573767336735127172755765474724174574546451165264372267141444255635312266565224555774177244672455216434374135673373773131521766617554326621511251542255331336417365216712764271365573346371333372114125325735254745361332556126447741513217725521261413661474357345636251262645173145424675432376261117227323242546322721555625635156762634361546471513752553437156155252717763534724233417154272777436626726412775531172211721132215111172744234726127332533647167677717374721323445372445133753753744174477543276647114721225522127431211255566562574275227173324361371437227165346666421432663423664631552567324223154331636312667345333412554275624347433374652727454735223633424152126365164365333737551245417226531571417756613376364571263325211452424521322563413264224545366524777543774262544253614272137713423367767416774421773422635626262431537677517141242515761553513666632612762676133315215263544222725276476777613344166615372615126646677677577135545537266457261165155746726131626472327275314413211125727524717556672731553225656161553646341227227523572123622527716363337462314456746252633175276135571547711465463211513724544451331515416554422644614325113661613164534573245522224765567745147446731511745621744342221135541616423564771553751315631634521613654233634122327551343446122214671324717411553631656313325556145171671543731413411433656425341262342537722153544677375131665124341524447756422113752666755567235417753767524125433612516366411162251456541243725226371347372427736773667775317132771746175357344255643744474511617125734661726353147434215676676711615474477445761135655334133144326155647514272425173726442747513422375355676251661253126434415656721645346453552561212166627415477455231165444632744262744774645673335544412775373721236655333734471245717227757253476373237542272327722753657716367326542526157472415574171273143164151244143122354734555614231547344577215526156463731522345433367737152743641577713175433175444551657753456627532242775225161645625632177153247463654516315473365757267315621667255735767521767554614745437627655551457333542437132525372454352721267232677144167451171336775317336252541646464321642716776536662527773262131673157367251243723314374734246336644673732145457671432145552514471262564667546646711136614754534753122627774567461673464773456154477652653422477551121637176114463453657213354441664646665477146413771713452736224577556236343115514726365561372661737563517132612314353222263452645643315231331653427141361746234627342166121321564661736124736332466766612653133422424437123156225225776275671142373146761467322143743764443457611326234374246342657346673331232364271631364211416452342576722357617113142563745623157346231457451451166245533435732677512661726175114141625267764363245533636547361776271717715434757524111164233333152243244117515661411431144516123251674375466266221463571162165422472233172111642122462677276631217434643345343444523113124721731775471725652125517111423724131327161163741264735147213625227453461511116335741455577752524452732222444377164242113172354723235451614353353116221632767553116754756413141442274467565434756644341113427674134562441325132616343565131117522271544677412764721217112134176326413273243443136266167472224147717337765342655474324474715323325251347173361137473732542375637464421432752174245552645265751717552635234354271647133562477461447643567234543627543132261331475472141754337723716333561725166645143341615671372334513615423317125441541331462725477161533274216753236373542143514624671327752657264223617114555137441663567165724355736736416223217366555664365723636532573525146175653531171764366232511154767677466743252262527434716224624713143651266515776143635451232723431625755635334341724562516711454547345131654421613463655465622376333246244626717447644474276535462127633436326363456227547333114315312654627555223237323346661332263361743131642366211635634671116445753355452722633721514374426472167426264515661373365726577336546621441212711242677473262115162654127251452576756721236456355553256214452632531532556324363147456377136231514667145171536242111251355112253652566276452367417646163564623371467327356676551644443723524744212253312161147135411714465174526733465674171715566677246146631444173574275277145626554572455521222611422251255751747327464157312573744163272116212134714531661742245764475516347563374657736144271166437312246134573167264717436646623643171724464713123633516563545133543654314724426673264252537353631316651362635616346664247216671723621151354156173652377321317413776214251766565264523566516657361273637726775514366735527475533663145751667442271764657727513263417326514451661171656552532242423565436173272421517464651266347636472212643776256236723733567664643175351762611643435742422521214615453552143226562467542725136626365553156362247517573164771563523317615544772763153563363442734275365743552751265644273447744473132646114412531325145472576247642146746427664737543414564527475722537571661363257531121663644345432411577547254247352537725552434575756642561324462545651325662352241225374546275441246261167234547663432217726664727537655512366355531141753533324371275256375233115123227613135655614443474137531442675765212667552245616232116354553343764264243476361274525343721354763311746476355576247715217445744425621462436277115116647675413254636716151173113625622623573112564566314534745546337523772472552442213666353746763144345425714241371566535141137454712654455273233222216712126154665153522432665217537431654671351766341515613444527663667447565664532774475651324372671735724514366657321226357711361475161651327316457562436531651117537626741113651737273246233235221212121321527623752377212635361512114157321314671137753235115155457175137261652166273437441166724734547567755275725451535634536343727775174613414363436223777534135126745326777526163714414471113626532266175247167571232771713474357476425242352231454665777236765135771625745271337125526653662476176361175525541553446424673233753613112773451647223755545152467161463663231425346554432246416434574162326551275163536652624466247566127676236635221126311767675664666666471464226332262362461367646645424554375331557727265423427275756545115641727133751614245376715651453246352354561743351111111515753267225353722226555676771161656315231166572734622312311427515435262377241454746317547671663425255415533671474236113273372653511252125425556373223534164242622157352124712541763447166614116413342565155333541116134716326361724372777644117327324734777537541361612766316462514211711663751727217327261336527231332431127133154175145267733156272534747753257761574223335643564757544553771761232663237113372776144521127336563653316211551767775351574446416165325337325323422251332675655464236753775447712241464655343223745643334172214547616474242664151644271712132416517447274362171175635726242424374352261637231252144747764226546263323517733261375672667312257211553234237545666365565525144154131455167145734564442134737355161237635733526215663276663737436661654461743675463723713275252141337665173563233635225446363417532441342627253637342127646211274441716177125477435647633655666344434244246727163656652337117754417744572314414773757212234342673777557727351162351262526252452742711722161266424644226743311475771712212437473767571316737276177117341475634144734255167171771122766146623426731467377417571674112126617252255424463524665766417713674621136662347632412227762753353735152732265261433744752261625112726133343272356544252377552374567312737247476263571741127347737767363371342367657763274233135144262422666726113172532345567264624766355167761412664717557516311617644354253424522123372264224316262721467731513735356615337171737234273276366651526321255254456372123344172167243214341167425455767224644153111332776175157626425357144553774137437341255142623567564232541354437374513437532177255672165314766725567133115326445335445267675466346252463336362716662311277657515442622266214426216436647645726564165224245577531374352356151121437362677567543563331566414626773132432371355645172371232624625137363635764642553622734317772515665347156454532233346161162242742567576453747253616626736153451531477346754712463466251255634676647113771411551217746275657447244146546616175317324133732667713531376166266636657374776165756331451261116771767227526426234766235363315215414627671654466275122551221152534315276264543564475764716223516132741671266454225723425446126723226417646425136732273147743755211242235176622615746453551767617744177727711373176744313522414371727121131252561565227612743414516422524752122272725115312662333375451265561721233633465655211542411436325437442135513311732117441424366121275322764434636247125151617433644376515262654662773422613765243772764522676465666242432721554155345736317246745771133336414222767562414442246645751414356662262147472755173757465626443333552666737234754343221124767424673761765611315153316411217342131341547321363277437462412347544771745177237556432562743377364754251661714763735226322763722426155233344152346251223511113257174611255663226254366531732351371663111677233747476453567724145233655744751355335374542443157714472165674723566316753327746137577117676372557327326651755561641541522461646611743531726574662756122467643445641233326117667164617147124571255467724634633532333331253724252722124421213477734361325731545737151623634374376636777514557344462644141671232134624714563537377453371357464617263774553126266134563527676256116427776322347144513176156115737772773555671626377711517521233224515772562764624734116151274626461117467667361665475313434137767777247126165355114635372615514514631553561326121524445726511272665742332574516671455251223254343241513664355335472236242677244462543232676433213327354643757336613136327353714346315613371444335641513442132467422322543511344237271655151437312633171561516231362447266333373566275254445361416654713645175563474122665433465464255452272151421234314756526276614553613222264477141647421442342121411733163634541636672756373425666162412165642135716123644327115114365514261374265776373134756666326167577656366166737343141636662511672556526336332266514676676166356424477443267617571271261177634577341314743624615734152253245536664634322525376711415633251145135427253444375117241144562717533376524171637451566512362574546216752463456534774655274553247161756216563457157444375753461466574516476144742637566263623672562253113626425621666514267461756163515771752535624475325274272271642452656233625376121652511641136213572515771631554741114311315245625176717764751446661211253617563412314373671256235256474775155415755475776113726653424234641513227751651473776755337743457522254252331517126114646644312463612246472464566417114172443673364417367645315351261762245636165547676773645464513623136533532325226117573442724476622515151223155167756414716447241412131352667416423355767624647112334553751713764212121713377421643422626231426151353455124765273635737643724721166535241647576152655652164676775762676664544552751447666445256164344233627366663727625553411216654477771127716411414361632764762433432654655526667227412717526752235314162654643555645737111127343214624111574253636543555766134355747451441256552535114712715352257215362311366532352744246713327341217341477344411717523333566523734661141776356651524157546421714314511527464453436154221172363734376452421276443267773723341655375353435645523261152555773267721555121615477716234513323552545523436517461571314776427774362745477352421467632231174265723236677635176146221354354773465117617773414427432567225626366167161257531113246525457242272112732257244255612653321445756267564621746374154351722261777636775361554323643367572711711714674533523244457117767161473473154631212527274316476334564734443146167342452223753526366171536754652526154475673364324133377474773264113543343772434146416347157376117354627217454761742776714743645773356376445755141233243537235625363223251765562725233626653345114426145255744246163366243571211764572427124541547116744414445634215567562256334435441772455232764542432657623265123124451274474742225423475624526741576527377665126761231133516423474446375476117177133246527452621476346175727726633357131216562631566475277262166414331561431524774544463312527472156325462653454132471743225376673544223471155452731736361127771265717351455335537734652674715733635652731664347333722322712535212617222372135772374436737413124326347661774674734516311442765636554553763444147532463641247623611266664322737722261554571663153272177633237131356535224374622252572655271124152136747411762221467756477671326443237261461522772661541532663631163123353346535135112265354747265411135462246742553712541346254135241616244141227631115342261773527511535232465357461235455545236221374212447116155371756624346267337741176226725555763546213732165252373325211776565252774316536355415146561562442251557212275722573411366545123351337451677413673333364352753371444312473454734367726343451111156621252526321761754621266367515517535627543731746432567436411452345727213417514557645617662727264767777342323771155757136331366765775742115414633527434377436436136742252734416752736566433365212116334526261167313151134374225535361653662773734351455224656321141246644245557116255766464335553661464211656766525215363615573763242663751661632364733425375513227475714762246476171353212773316365256565172642552527741331571347255144645243411164771224215451317734532346516716325431253712253157542165667552513457675217424142736135713172263627571331374771273117721441567151142275435146276571413541727635141472334147676557632377312426143272446244333311473545577741554115351375622353533276767763742463111351234372645365364253651136541615622361556315144563252475252453246375553414137616245376735372726656345617333415241172714555647626462363235567325425537374777663543711335113244617372233733133371771235646253744775237634336577677723417345132542365341664655555547122165672266515443441137674461314413313531472237413636617346577141413766147354235627511546417434515715611757473165156324264142622532324522453653577344663517612264316167336735376452152422513623364273246241773547654237372763222652117723213661666471347446162357571562225524672533677744753211277247572244644211567574362613732167137354741462452532261361755354377235732271346522147116415234563527322541616571715116157674443715757245426316326141147236562264763716642512445461575421377627416727675155421167352133163265135736627435217436455557176415231134127173613656624414323366121234647557142541432163425165776122617665672155222531714522423345526415366475426562673366627154737677537471143731222557431556242123175146143445567645711276113326745552367734623721511631552175672557726611373514556743727331117256167752273553341244556513615534552446656135362326173153435211567633613727466611531145511422571474166457325217464571362435715255674441574436565156316461262717477743314741621536456336445646617723444152145227775721776562354346624321546261371114273141316154636372446265424636265572733752345364542471233717546326513177244713567736152664542473355566624235713776614263657227545444227753443654646356654576464227753142576775551416274745523255363577741752537571531326772312737421436533717761253474473625132163337113514414532772441223736145573514155627373513656171474322112373722575525176464265425156351621313462244754723342174523651752174354577216172346646331627724135653244364365432216253435437242741355714534316421455122675713316443235771331314362275474164425362726417453674334563344652425354445416454733477147564262533252735577544142522636625233427144357121116633174371163616361276743156261153374123243525564724627335464473142454171464252153446511347127323562313562127325661543616727663351672261462324122277477472471645126344314646242573452523753751562537361754611162326677177514564151111116677176231121131722572216427432321421244346453555735365237263426551774422471156562312234163536314374147411426374625751571143714554252323375334617525774111412156515737476122524676576217367575356262223345636317257111747117666514737253645667626537644645745615371336724612675652655353156637461524437712372267356214522415564647323334474714751563346417266753715251611313711176324365325112513331413654144163136565416137371633115363767417113772533447476473174732232312314674257425465344755351675125456747456641317754542416416322766565544327551466144316357173311356743316453432346117746767222257244665424117234246344332454572436216742352316743617343511362644456464712354241543567151377574242717522746364547126144276155573714756253122476327325134652433633331267562733674746543127474651324532522625276773657173242731162536112273134635223243677713212476417521245731563711461571124363345211344741116527576747261631255161124431542315376264322475532332344117264515456314636177663136372722747422271732625535523737656767365441677612265657434146125124253626775775315113256663575371726327311212654564121771451112373145266371577266577771136357411735544514565673463553677524676672547137627317656245436412211111266171263134122745521354464566624635143467172276251275756446347734432117711441256217115652426512164274316443461422333132374145364723543411167221444166316634453754432112212143271716651544211517164474616122453455542636347512637277761664143427275561426517664714774174517152272767133613713413774524114112343442655145435676316762372124347535612417363263725714154366714777477552471717412113622451353754723677241452433645146315443651243643767145311765412453217615743227637644475465326664315477315547523677346735471467711652672365341721756661547775717175366534462564662561654745645666424471141336626166363761446334216756763115777627446144122756376215124525434437364317622221767712534116752515555175271524523634171422326671355775625161542135645611254133152761662372556762556457565171527615765335573472657525675315556451257714465136225317766637375243461352732534467111721673633457125254556633472322525514176455477315774767321562154535246274153715675374327577774457274725533133723442275144245713733446221434735372621436743654241514337464776627712346152431265335162737331223224452266543562324224327453475121575616672252315136552536177572663555534163343747626771772762257445213612135642535346535635264347152353567344516453347233652275273441716743436374631743231462122565567554121751454447164333454723571657372366425771111444712474764142162331264173275442152223613236556712141441161636133456737363257151454631761153766435247277526543612466464662262234661711174647231571357147267374172273213517635114352355314255665175536726722534161426357115665315151764666242761133761772551313121236735562657164453663152313526543446325423522377556264324767555132163636112441426446177667654477515272723367433277277167166626717526731467432763173222141123613766773141775313513725341553145453442746136567132545211356773441115372225274221465125363253517721552714634356435237165474766167156351634373335762167631331237256214416157473122421423666772147751331346317631773744442332545655617144776651751265731275553337121136645434523652346575343617612235712655231525763642577277171415315573336311127525766615725255617556123755166141641442244673563532553241667475662637753554732416573211311461246542457124427651642353524562617563731633416473651125467146431327713277647417176117767765631172173424411443543355443543336537146421152325513237615262424471375346455676571714116645727557627343322712761773575361772647633677332533641142522257357544641227264537724342434551616773351574632375271745271565657446214365151277131134745733611576317757654614727143631453134173144141727427123136433467162423647444646622724231173343443626322256744645237653663331766352373431426723636524224666165124244526653655142734557156175577134576574752576761457465266155772343332747321127375445265762661136362665617632672536256756246453222311273267566741766564422351573743172532471465666545217556627233453735465425274752514671563476154476236762623421512162147577476745771577663124215435641622763667566536637131663425221424713213152144721154233475227472264574221336141146661242774754373663276421236344343351651366617375625461614552375734721161762111674442544212451344646764163373564232515137274431115124532163441263345167727452574316752261545765232147142221477141636165233733466613627132112125222127745331717661252376627723654757153627727127256575566462166555574255261363217151731711116174744362211247561677612174175725413132364317467551551161572373255462717351427415453661641112536214416454637667446725222333517427773647423312367253715341712655765352415757215333523451552747546375437344255721313751136332417357133756576371432747253726351376312726767627773361215526455526551662663564673222334215163645524613171361757471125447355652434115424654651731134671537324576217652447746241254755731764353264263441456373422216721117654274734371547366631753565775764515217757124743547645134523433273635622623422176762516267542163546247443174375314664423377675263776754364135556136511131232657261257525322761615675612624213231357231162362552342733235745262427444462722167424627253647576142125474767116261644671266266264316265655666574772351571426435166714571271162552727177252115625526276416524113215326254554357131662523416217541364222777346453541713343374347517122232376343537647175544272342365627257773456333453326755273331122237141515452626251745675122144471415467325527446544423345553322353122155747714672245562357771226532751545645324547317454344566532647124571432737152136572162736323246637664266274371161576712645262764153473232153173253253347277416714355717115526253462125246277171546337451153767347561476336347335351427545244361256417333257223751123267723443561532576115746355577727111464144127477272677634474316421467274716746776256133573246277257171571576376215237521246757175725715165124756462543767656556452162611322127776243541637425454573755127442351276553737621456246555251225542762547753644113746613341374241537726733437131544326153322647724715727263267443725724255532634246737165415342753555112765242666463311152527616363715373237316365525534125116655365725332274122775651264676463312113747256571161566775365145566617313232112322317371241764655455517232554615156277234224721466347474543334742763725431143222266327713336744233534471516747375327231563576223576336571314233166111167536551141764635766523231152171255233337336123521313526724143361175421464366542772354265712331547223372721615116345763554721166211657153244165632431727531631562556664111637423675777653746725373363713175241421231216423334275523725434352414546661424166576352763536364426172167143452533471677152177652472672675263546776156275325473542121222131315326245755411267655161323626761523436245726735133731152345344526162176527414247433542116653435254555346371124777355556443776534212145716111511645333171572555277373274126367345111531511755576447176611547675327563643752623471417311466546412357746243536776741172357224174232326354527437444554612645354116442467152126163547342425362773731211216412221575632113643242646766111741165354141241645262566566466554673542145273361221567555324273673341566416745266336213645375664322417357254664637451155675473236371435443234526674611472251765634611455771364243643624741241734425663363432757444146543766763545424663246454421124611271217464227717333211652655357576537516241232256476664252627561534625441664173752532356557537623475162247751256531667645722714455263471375422315575471214375153561121361734475345725236677314563676126231662525327154744614372653666432612774627745331632371657256213415614317373226313552646775717257642212242465436615772761552571464715133313256747557747125415544355262523147755732737153623561135745111334433135342357733272415221733176432155623167254474536267355554531637521746754413171626764651224411453556553225624627635212443215362547415146532334221642227642367563535342336453274372513471537516162625262757261727271532724776725121737244214216336423714415271722226234664316241723325166577511132656445776724126457255136127234522356267271514462416313226341724352272211363131261222434261363727231462611134244456633362521122256324516631455124117345421544761523275111257171571526461544244436167671717627176251711176624267265264376271111125227346332667617436265125246357273131764153143117745641575332443756155563277621524411652324662167714473614765147621717231731146737416717517314377517534731744557621432573434165156232625723377461544723367775614426717612143173267651316217167443354435651362511476521552452426754421115344415565541525174245144575677533215774562544453767615374254127431337725313647357432151577211265422323343641715161367457411637472645261666757566626575555631511765524712717757631522277762252252634424624723677241472377625242446112614476615533764124126632266771271532413276665372723576136126156341673122122662153444266172726562643166471567776344163172265243537147677166766733332641261725271316276126734727264551677763422652463376111574522211361451632116365716537727473724753122275516456367154256316571217522653524563311436753675565617672267441111352415423674554344343452536531667241773573162417244613155741247174374544362534542134333747254274624317156322177313647153112623476747144617216147435353773476637523637437442365432176516246731123317444311547314525575422236331761645266344524166656412645411571574534412753363357222516357531521364744332771445571751717662635175411135236312163267351356543453123337163725233462626655633467613346354746473741234231725255255523441244724421645277463212646527165172613355543362332554641623622341522251134454711376174256552725267424537316716155765473457551311254747161672577415265523572123351755674764345227735616367462121217776416133764667441471347662613613655461776555432672637636126427215654754723475755242335141122244632446732411177733267714226533136373316466677573233223656523226746371256235126551774451242555453323457464317156365624741315754416764724454573321213611753661332321123467247612123525623112345511612152277251454136527142366236331555165124353776551564133647673667477272531237125114617274365643723643137252263675465314244732323711224342557247626451264556717271432757135262254711736475416547773372214634251552665636417454353613725621236424523476347326743344656441675437221561536467354722427463454231142232476356474216457426175417435177346213764576445516426177144554411443151537574245716536643432173251455531612337131124122454574131116763144377223336751217567312534522737561673237134255144216462245352337421744751366114734513126564627761166763123735342712434472775713232121533127753165237761372173425741223445533733565674733243526223235612365771251741344751334165522374542352477664631337663211164314762226565655351424374524722464164216175752571642472764517747556211727635216272443743323431475226232234145665242637112444415337263525223773531115725253734567526167612213556576211136343212163163154415764553513616552764212622231673371166336737775315735321544734275414251243243164567433677214724664221345763462152735426357142442264331336576274411242117125472622354417467376147274526531261462521362332473311337113755125264456425762121443477511717621531166142737141475746731721723267375323526634774671464676671337261134515462761552721472371544564616367137346514727151211464244625663676632524315323355435241644322173777361712634373246664757421722321267272465236552442246111314546755615244771556132257251322675664465372172247764312421563643543222752253471576246472447145322645142367537521444415561666437625323661655747774455143323376371144323521315216763471143363332437171442574336125556573233455722631176467113135573363715264177373423462472776467125437356657716357637776367246252614752651542577662563431555464565364451535775673243425673441211737415451262762377651547123335342474153371666137736113115642517641265525615511515415737624265163212774555346436271115267516435757257636573345366416125216762556475361237574434275726531336414545224247327663373216251224174642363111153151472133642663414211441153267574755357645144575226464471137711515353436254633456336676111113154721365312665343366166776227426231257611211744364112113744117132157251413477747361672277611614732751211461554424623143135216513121253221467243535243557377262475613246274312565412767617746416377523453215474244453444541522442325763214753411245522217362525161661222537167115657112147233152347352425444455344455562426143266215467144672447174744226123341363732755436712623427143755323341755152536527622264361675527765252161354237221456116275161166625135263626532677621532441567453356715376143344336513761236315543544373311755371352651675626423767531752251721756244454237111517462671216211326353617444446511567156171123264711413556224214274172123226554156327676432242662372515147715532356436211334623754236652754526263737542614467164411215414267776311356656316325756111763473314245414261223155554565765235566313764572735332121577465222711643351622215652264244214136347425642145367145363727441154777143541165613621351552625723334342736145636312356433725517244617114631524346413366751532667351462765137474346715622767365213351661465345772773475775634466723111351124634124563264756324127547715217572375155473762735457345455167256477314755365667425453127747664645675474233631764633145252142435236775322625725317725443767133756545411673415156242726214336635412354443615532351552374727723565732377777654211256526212224573375545455442153272163675121517131615562346665275513713616772716711667223171531313613265364466276254277517664114375744463233742671422413571113554247627332546137212452632133521246337274447464525763267314755111745665343422163653311252541351646336173545754453673131325352537464213561366134325721152511163133554143312215657552767251371723272625256571275264454512633634343436263133363212666346622125652126146361617221526354237551437652666515715742113147463357524412677652444337451755626244325777267345522156323411212231573472432457142467221563724331317557122371326554575765256671633711733162323161642431166167262554541766221641725372327327235513361361322477412231363425552344713131274544415637177452237464154461611265746433544522655734342112174322136762347721127613357571777333635425762654177171437516627762255732431716537547713664546545753565747142125772763352736713421661575511713424622257364265636736716466561232535764122442226122624663532656133621243511734657252647314572435711745436552356214461533113455357364141725254214754726341616544464211313242562267574537621465234666716343612742211513665734551456241214666172214254644547135372227431127137457116615253376726357325336443472513573232451264223254621664245315666312457515321556231331144576475326575457372461423557655345325741717665636114146525413257712626627777474415211164656164164345241332211652473613367217526353261214346544614375745165151775425546213751552122726435342343214652612111351572165741476732252731112344573553163667747634251565666133513162571767174761575645333367737457627735736545515413146414471555631543445312164644251213564741635612157111231724341563752447632434542554616771536724331516662135523772572312576362134325114417371612751223512547664315725567421672711244625772177422143523675666276235716577127253366752331121647773465444455474633641275371315414154532317247643247356727141522321173223241125441577412417663135235557264317155324364645525241674441467332347162432226612436525262341464622722175417311464446164331571364456676441512662226226641127257525415453533721262275772174323275756535771413431742451661323744442335735166432426775764736423161224637446313465455145657423123256641525565744613426116361664221716271747565345511522367567272373322527515233114177435573424754316651542465677221353724376174535324411641547672626332762573345711352557543533726751267436773664733212255531145743162146135334131361677363566374722125622364761136217255535466157272154323133145166274757531436465614436642166614626334316353232734461256574456251774434473726321761725564333252351735565777731132143713446164223415265776171375421113361467722474123723533153615136365435436667411613276473775677536212755734665766317156566446511531646543223732762717675543424571674541265471577772762655117567666453562432422512721116111771171746436662144316577717612733742137712662176537311412574767373611521117316272143113352752713373466466421331645246613212513753412257221365451276767421562266537666771137576717676557637156142722621734725535416364467376372615777175676362234163641512533623423423123162375625322414756332763447762371543444177457754717277745744174457624345312277611632737423744413465222643164264447543616323764332265342661377744731312333633275515351447567564277242414761312272627173753133643561622432664723215235542256532122215451641244456371155562345651711557643757535375422262435314314471455764631577332642715636277646115575377361314661772556475462473163614743174453553731771547177326621424724462751345454522633775761732435263572626374757352651447544126536275357326624562147323476777754575234276151647264125466465554225751467216414343156534463351714411451573454177476272642367461132317461635456426456553711751163323452455322165723617111316435666335512333652555736151273135624661341464761235132147161314266745711151656713636234343314634532432456545545747674331653346633765133111556453453216274632516125631343421477736366317713365271774132513552656425457551227137237553725322671652537516627735661746342114375474646636512516415473437542371131436421473665625366623627766263445227367755441316373664562522157663631536473543463742331623221311574667536213463751123326531762743431324336675274226647434423636163335761757461713761623476672712355744741121232521513264254345572267775227342424665324632376745275476117754336126747433562577337261173717543345141115555734777117127432415732457577356163462574617752122626255145114712262542243242444735754552473774333471635341535242146625265455777451544312454117224216724463263251326656715536667317313662212636171755666451331271321621252444253352152726253214456637655722441117324516434165632426575417644655616461355753557122111642637326721751725614371274375571164117123131142623444664235614132544647153276462726476132724547714511536145715137171124216662664456431446347174174276631637237564447673541647257611575667613573346237674752111772253652733422646472572271412572137325632263447421671727267351664727422641214356446452577546624417462666771447373251321474467232171456446412363777243222772615136274732614242653667322612713615524231332646244432454735237532375131253551374746324727544637767412431716247545576261255631647671144354362355726656773567645725242561311535331126125474572374727317441425152373174745535666272333367421247376616424367246276331667542766736631672327445254217277164462456251341464521265576627636314643471634612356314273265152673451737725325664526145564213472751254145711627462276145676156354363171712163722342166556553411157451461611372527635522577751167235314414445711774566136244362416247577354764765455361326764324131122241537445374742175673434151373426513556477774315775441255276651442727666616337741524633564451415627671661534622613476646313465366457456531214414754752513161521566433317447173677415657255441527453624771721312242147156523775633136625136351516722147132523277624517222261243756352364635155257522455773236433262421714433341314571362515552177333444127453616265425676554764131464117765346375137637574264667127537645312231654747726536235231125771632156253747632625632445647456551155113311415616472646425363251477372634714576445723676436744115244441741421265157346222727531255521726171231756713736147113322115311221344342233547353364726337167113346113227613552121533466365415632633365256524747112447317147644231666475367164115353323221336762147111557677272127461174241236353454443422553675633143677614451117553136314673371615276351635246125431362743273464224753756563474247267573134564225614222171352165226175527217531422135354512622544365231242235376513241732215461236743771313744724342454716545761765275236633235763331741625514513444266152474314631624726561252625244763333173456553344223251533347255511117566433671414641733371226167212367334733164552654215346246277335367763263647137667334353163136565665223521635513657424634131117717441112315177555537212735757167723745377126774746661165772777713417357261157565554663364563675236263373522617455154412772452274134575757147115623364673132253766356145262373155415275477716276244252677231547377116566676627554163363376452322444333113175262512141461347472646471712323133423536676743773377337431664376532724615521132462426552741471445551343125322671143731235365523477535147663763171373526265147327373116176315534674347266713735176327321251744433157717677213723664617644142615234244125147451747433437244435157663475213261375442614532275622771252165314443317572355415377561725234774451673762211761521476461125514252453661113112253332272423176534772467611122341613224575376162562732612134251351714363214132372565667172537666756515736441672157757667742732537472215141343461556556543156332413535343416746125772557165122262635362542546561251446566367525712542725212151377555433273344135423516446555724763536266423247172464227275616525262112663211132477732763565546455656744476521657654152547323162657665434216374472117254226625123173656476447776377336767653565226473353126236767133743747317121752317732655664677314517641743152324327515314714754544527725343575237227651452166432215317234524351262267425634511732572536372746765324367163645641122414355543552275743753346723246317744622176437133521765667375245253634145671674356454254374731546132646446437266134651312114372116313246222231744541572173643744714221152566574147337631124531122455652131711436471454466232343411376513614761527754433356573255374356541346327327754321271617341165751715657772711333552754617717526737615725315351627225526621673515617413234171375417161143245536436471114533152513432637255732674553565341546121473757716512661357746563557372441747741622122247155124363343616714722174275423547242612156437431122332763525162227472526451334356673111354174426456631517753421511721167611252737723174111454424637736116145247153554275434115661564567474222336775434371671471561237177622765656432152333462547564614566166553426743165335613671352741657435176173372235626116355552656633433332672216712614541336533416662216415747637732316543315756554776641534431423664641212671555356253327662145336132144434422351275541541145671413721355731265326112356362153223614152656676547567716545143375767474662562435415515473211657347217717175442372764634154132277231122741675746135621236743264176127434614417343226342246666276722764455116152565421556534345257367134637655234676165647475233371375171767572373212775746661321462272317261521143243757647163241467522657133231565163756755312347423627734461436244441447162235311514627356322256725261272434256437722751623231133641772144662624627136117544557145346452742135627733545512317213741616113437232235513465615647353434256623636251643313775572427173621624171715213534734513766615367442262364214461774455155655514762112441751511627474213717562262562645754126217247762452542667747333137453275332422571145244351315722177537372645125342166523654557777744774261174621736622226764774662472711231513716677132731522222351553565757251742265457632753317366645554562677225652655163414532437374664244266655254162342125461511317645454453261577744147726161323326754522142132126634545345576731536311416631153147413251141733126767232726143441523152355352665563576172716363455753221747227615376217412242626325636143767751611533564721273736532545145744135211667362411115671154751565272634722742223435216333142221151244545142464136657415711234331465153761147542441512333546213453361661674662236317542117147576236314415173235156244444462451463225666475121746563331767145275637425265161255244576665672533226361127647174623373172673247572421544431341233464764364512672245311764131244522312641433513736561577273321713334411663245541417676627253443616361346773656121212274332567147765743552157153313534256434332431335624221247577253677544367543666641263311451476766143573547256733752422467631547564134522537444641724473357534412136577154127425626366724667441653434553165241633662474163131225672466116622625274444164576532423671672454546356124533274167333512761126613552573156567216242413513736617256325744633753577151333635626644517375771465146753226622314261652772512551455353515467727456743134376563522447727575617764751465237175367635541421312471116246752153522675352334465636146673512111363544472635214167164763345446615252633115645465464252627374264713266571375143622341623653311713442313343167443716771457711212465617355653631242151216371422671572637316612136243414345521677161464314276513537161535376377515545315746621273174166715546436223644547533753363711572457314245642336422727257557741226352775553717552164211177273235172262152542531747351562512245665125343527774217346526617224623525363645655216333326176217573265714412167622556717727531622167662332632733111721714651154272261433516612222424625224422141267434715626142424276731363677136762564256273446155757126317412227367725736372111776721762724245315211774534144155161357452716636541551234732556365324473513575553532764451626655321161331622467743141616772767633631655756225222446641647737712416475213125651226112176212124456425256662357561363414324547324167715674142212432612334721754462463353677117342544776512617346525153443363327665265236326454337745212641172262727534377344176164724172121451562635276144663673276177232461456642563511166556225125147477556543122374323171112535331312471445647116551161273555321563732167665576553762722277732211614233112772566256361627634154136552264364553561417472464712416573623342736275446416655455637471172326511352215167765624511542562714666133255254253155425563152243742646374123637134717577214432735223763565762716517651511254341272572161751341232326377415152271552677115143257312331313131351536736746642261231455517733251233137743731367472641421335653116423447634762633211264426125427471746131531735446465741744527567674471655157525564361556241311311757255754735425243322347471522531666464167742477131466325471665644523242247426321561423263453251722345572433476655627346614241234457346623262257152116776522646324441343662177215326125167365226663726315635546311213723752414363666526372267227342745243523253642533473712134761355713474132327464743455657467426221471273536676272541245375347273352372645435256533556426153774421562145612541323572543452262523673726611255217671155523732124524716716134665646764647134455737542332345735732531215122456353226463717523316551772524652517142712223275535313474665344536532134255576461123473161616371155461127717546651237557757571625565617571666555717765762143145723615676175153565664562117335131521322222646326715355656621434417641154241213713652431333567247235344172112434121453516266112226663473525177472447122137647263153433775524555722144247345453772445655327114627134567624352663121576347242744647336417146424146117654772275773625476572355761673662351412321714563534152647137526655136271361746323637725122774561365215353541513776111624733523762414141526667277112364676342531711325472367327431661357475562563735676735177253252317351137226521311215725134551711746153714767131242154651246247435343555243356413612461415441475241626354711742342473544411552215561435235233556737325767255316156333746672357254327726744514432456652553771137462575472253525763542137521733711372141356632441126341425527231461565623517753765632715451413642122614266254464247552217357545756241767676355112256317335323131165164245173515123754711644147267115422242513334632442526344373273744262454126523766251175644154561271456152633241267216163611357571746745147364513434454645713163161156562612473737475173673311721145613215356642613323723254457573455716643441743316577226774653312724672346342573452515475152323615414532477656125467126545116577237734263261173743656542353234251353713321441146335322547273522741451614152256222655133162543641676177514743666253667315452156356266147643342251451571456574432457254252615224273354421371744271237655237751412747312451666417432437354253423611642737226157734316435162433714162474427325332672736455517322131461233264727116273147631554777136242552263264133341424623223236154433552712424161243724356672611365534635111537653356713772364513375162574766655272714425743434765663264652641372663244642325114513232726174343433667463625437221534726647275541146715427363314351153641677354462464235364514343441145235373732371625354745473747165617437644274357124421371676574375431335755414326172321472262722565722627461232152274544674176345747232171224422543327717427345152175226347113371632733764732447747572436357621713216415221375362352526553546537161722645674534772365133521465473516164563137541166513164234774355255643247234453224543165556124741425753767424756332557446367754126734324357664621176254122117631543266525423215326344656171164247667542214635471335734633752367355343464241127153666362757316264121467214227134424452541413321752112724556552335773351431164271621734472461625325744127126646631133674752234676573115717614566573163461714375245565367447137117425174165636464133671536642664536235755541426722213416364542225152557334416321542112141426747555744717457371465676273446243311125615542513752542452116633274325177545136533616255466452772424334322144617271236676543143316752315421211242255245112436157656227752773226444272614746743642573461671214152612773317175553643313472525234434634264173762367511157433257532315724345734252253361424743725356251614521147464624155463755433441442225441371174473251647422757134457123343464134362456412721744572425163422144573742714125322773345753416532313717172423356455713627152726347637557123341236727371426622667544532533262314327361533436514561243435154414757775152414276755773355764425222223737311741636447675514256712334541572776763636727517125715357735274474372676572442463275624736557127651247121274442753645241225247334351473512356674151716731665622466536117336215524716523622514762735656612523415277263564145534737615575761343272212561114761454445226726253472724163313611757435356251777456651261631323527574221246457424412542644667342232664711657722563741224724142275573275373366545142175517215346225636467725673411632473434377112766735647531212274446621347462771565352426546776543435663631231411145421374274167433213617723153171743712422147224544235126345755143344527133154532244756713411216542225247555321446133124474526374627433527351435352563334715656352216461327562421511244546435452674553625565147312435122665333633277563452155216353255554221673133212446765517554114651313463116447624633574463374663134473715541644326617456115615111541142737134666457435337232143137335632644323311365211244451763746532727343773121542667335425631615176143353555743242175747432624333137464153656164314177144426152365444153541461121422546311216356212736374342355537714635746613535742761326664337541124622524261175263346324771744166652233763772631174127511725323322536145445521747553734736672243417234171563777755242755535752323336737726326335243347114712144511475517352374722355477161376746117751626346151327166176235733655643655673472623533642465361657444741531271363757244423352441414711165225344753776451776142274674114546413712412247446264514163615273133544114342311336676226676536752347147675235252151613572546344611625775522457556646235572447731733634515653721626451232517612725317752456152335173326416361663525413761715232742375256276474647321111121744241461125146776474546641652156572742164777677647224717716224714371417777161155177461471423733463545555655673312351532673266636212767655344565733216475725122643142727653343356567537452155351654767765332657636513557265623672472517342537513474151711662342432674637224176436145345445611755334721133443317334753616361575431142345622363325733325364454111224551444673245141573233767372434272446237463377447162361421574115361275144573441451617253432144572722546315663731122247472716575171364216164477472627677167737657775417326155226411311417425572671443414322135777141213265646726264435266562372426437765451263272554264133363524471477154313623171537244612274744114732554145466532677251567154665377556364242126416423561617476146134252567711652424774275235142754463752643131373773432345162361137345532255216517162417237456462436213421241723731373336365245427331514627732246476731661376231165355741134461237234232463376426154667664324547653215654115767675363463135672657272157571377366125564776557745765164154273333244122523511576315134453714446663416757342312343147624135463361733527644116342756732544423652145337424247763261265331764351655321354277176425554316417154243115343663763635413234214123536137554253543235617243653456731755744551246553444367765334221325721366513462626455545317633664476446511766161737615336433721362345221426235441541215251554722147612644671446522743471645237555646143432676451655234322246214772677353443412516423165472433234414442716367431462111652124536171656241116263243444532745427341545462473312626273657165631674752521171432625556133152735724533615724161453231144462656441234415327136274627724472671536651333155751611464467131337414271434731547747217756653616757311454761244342473461455657645676754363417255524762241146124624512351612741412222536542455746537756157444426737274752237645537636553537211175234734256252636732576753713234756543177116312214354362563216573547161262724135554212471721512165274323514226615327657662143352172523275527517453331337545162313454175551541677233366453172322777577265231431444774732251424713163112746121375776572721172573173435722634674514464666716257677252645722522112557257141167767776352755121241537654662777766165614223726153345233732132122732613345531556123747353555171315477143737775726414441637557527271315511572373355113276245236365417367341422146647161724437465237266223474612666666677443372235354176446237435414274251412745572312267213155517247755136223113343663574112764617616421354666212671251562667352443226444242753143362447647676743365223656745363733267343234741371134511525365667277245651464635652322365224723134761457526213167212551374115412722277251211411542126267667432743163227437612776212137126163366516227254346646557153176176436316231366624627665514224233177632465624416277157631263517216163342134514335443427456137747767235547121655321764741543451551514267361567232321114272546724715423564732665221332153337323733475243547746572535143316432735274722477564554747644214751354763575746636373166764414223241547236134626466176765345151475552574411213162161761534443412161432212224442657757723477141457424635261546624732725475371435511275133377172614227656317572444464217537551152464342313272537177621615763777236673125554121137733115524123156747343137533636631353734346653547675112164341144373665233227515676471527355471231421354675767556527513531472536677745336246214266356533764147747133766512534144171654454767663767356247413236536635462171171467525332413635572414243442671757722566637322273345171337536733736315211243463131637154247744447471111326575217373221735732576536656772673324344775172615275742626621211453221611522724443251433426447415126111363575342676742375352333136157117571425515412742476543246154165254217767632127266262676425234151473411574775635563743725447246326667746447332117325726574617552532646514537642775417376161146332417461245132332174253153267122473452567313446757364713322244574252441361634543563365517744425233376445522375765313765762444156427453336466255615225714257665647574231177715567422233641726414574237346441121264416663775747421144167125257466737527126123275371627722557426312315237143552212215377565436362512335451627151463134172645673756122651142761236431242436217675427615733322354341555122642633416571473736174731117622115472742723753346175672714175216246353644243577511417627227641565433717544124276236212334322311263475452164524346361424247312441117655274755473441614422562746757756516314255421623256335632521636517331157523514232776562634727617654752125325732321276463166166254662265617413656766536146754772457615467447734624571514323713262242712667752554125217643244562617222317315663316237233441237521643774735514156672724372325377555144641522237727211642714644733447134177412425446634134531324551554373235511354346763345666335522142575256414737736313162126662776257715645332446466714337116327254154551414747511412234256771635442131111616757731244762663666443747767241147752167576755254212426435452657554664654562326131213756523712757457155424755757171416461162267336233116413272272543322522731755511223163522654121453624721226711142442733427731216462174237147144412515156153363232443177773121452644452467626243511127127321577654432562545461643155771143312211744322477137333632541546766217423746275331365652225462272224165563314136264752114643274326725614245552477276527274524165161662215754133255136147531257667156261777412137553367333551656763623722655167145413437725174173465166445153171652216127737346716424461176576663715631523661562334762113753642252734726476445611411721227514731134546575453144214316342422716132526316243451172533477532134751223164772257357534113276573267213621412546575642264673544263234537661246735632141532225545762444533641454156464441674547237514161556614331261656735313447412731276767313534721734665131162375416375347633445432117533742172653674342355611565667642336457755246713231131276666544717745654367372624627146145614324312276646776161642567573475736571611474274213277567456127632473474534364774325464342365347521777564122423365735573742467542653621343616235742411714253331527712136527344231411413342574647541165737674321351533157347133721136733133556625177316433337732145151353632623323364237663577714521657353545276545261261641541334322351626346323252311465452675347675151726641366527677554135572673512515371531514413361164555156526771547523765445765175664572454353421524123576416117616217455124557631444633663616611541476227676662736423711313274257321243234723325257451613332667722236662275426354222414641136141365263413265113635266653657664713532173422233627436334632612324661272444777452325352754336667367416564353222555412516333112252112677436162346177361324736154456555622431564563522765551375133712574756744324716314762221745235415713612254755527336642735562432333714252547432455252566335411643354661255127466225463226171166424122337153121152611144153161644455711627343357542656364614117555347542465114177255214775526463327473652553153112633443114664337276564741347652754311721527253113162466534622717552654125134554752222115467671656753456271545353515116666646645633271731275132412224112766663467726113144557121444756356345514515511726423425573311246763655225177312163436216446664564241174715636255511443326315164421627332126743524662123155664346432555676613275753166565253716552721421473732526245724541733727233374445741213147532217422735651121654462574127163235361653351472461241311733733466215364723173433666621123417166677346142351715375366571143241722166712357541411137711125352465665575134117142355347562327465354135741442567724562447761747576213727764143146525161761264345266662551315622513313523642475134712271323125376737413777147752464614146357216713144354351257527317734652613625132566325453344216371777361762566756771447114644475665634122412377161345265642321121614427567727147165523517751772164525574677714724676251255445774455346726726437711636664532332777533335231273314377376152326426372746562672124573625542265737671165654134457747433116435231121137726331167263145546413326547664565331531467613561521163637717375137324373274552623722425426445362414153464151232545777652527446521226675213336622432427662625617733513344761542724365254346321333775442131215327755613257213256567424547652524423214632663272167222516675141613244726224655164216467357273275531334255744562213241117731451243376725633212633247361474443477137743635275362776736175452721145152336165634134727521475611124642175114716322125117341122144622242644434476611432465477724517623121575236131263423213275647551354333256761721464174425213367436161517425611676475751613133115724165136611717641555547753264165414321123224371456342347516316166611632144615643576134225156765657732357147535126142555363362257264512526673515421777535174313331623265774446121327264173434757151361777535557571637341724412336555764756534525777145246616152737427724717572263316733625522725161774475464624254167542334545345445125573364612337375537314242625421211437222564635327552261352334344321443521115556623342371423256621755341552346242665125261516572711444633757714163775424614554644722414723623333632415176665443256327113475741234575415413142467231242473316441132774644362421344571152374337454755331757132276656753324651736323756155271337335144566355341174512521241275327144614651476626376551675134566612314771752634564352551255644626266655164357726465543777465251776664573247233212166366444263273172553776133454663522467277437746224535532727516161437452324421253637574615755655737165431164221623564264653447252272135244756157536255734212331567173631336144227144641451614674715311334357713617413462654353754525652416517112744413667326734575373433475525712453763125721371732375746517321557256451344573677146644416347535643522766436137733727461335371266552641575521425137166231161271155243423215357763673435635144263127453764412421777364166764524725174464246377522551276165536242751327634575646725734543437443551712716376754755452147474332716121412441357654523146116452543556616754272277662276217764331726611426147357356577417525152364245327133752127661742615523751315136731337641747734335111377547362265231226312326752553623577635755417632474735632121324614767555336412663266741264436736324473135177367515473633365157123552176716744636565251577225231526727621525327176735176112745117121714267721732734533455553365277411231133236442126564442171531572625727244111423311744145231471573266322144177337324141673734114433275571313255321736135531142677226716251465336423245717233534457352216456121753371713137512347316537465217315746157353243561521475445355326224731767323573555735571236762774416575636127414311161214212323764655431452333154262313735377677464146275537156574136343263263223527556223337111614557765415726311266121543664755332341213676437666461456145632465512742333116264744222145521167742255312733552256611126711117114432274461656215266217711223143576726566563513233156166372516275277757635377633347156117372111721736123743747213321123152473466572474163457417733155473534272263333142371441534132612274615123366763233216453157357477262163533333655317445654612661721127572145444374232127512772273225176412347666423635716176336652573443677577542735525346311376445613374363347653426153773132717672133663227114557355566213523614236415121142516545335365537121533315221334526564331157733745212644375332114153525624631244155343763636146455736623316443151515215571316364277253514451755246677451613551267216671335334152641725117355575636525641464173417513323351242725616464543363625775241515132324124164441716462372736717623156667377753164144364576477473127615646553252666226715666737241221126613342631564356144746753175471373536111367636654267265676546576763774133237725333452343221277277411234647552426155222553563624765717465562625424256334723315675515656324626452716753345767567241136661363133453341716514564512624514742365533171271752531372575256552112774315434633126256536244233453652422166642165713756712336575162435743621146557146631274254763347733416522576614517521357745473316547332613673353436474362342573461433625115542226275635762342511653356177545776615412327544726115442241326127111663134211514524252315651463464654266671762333152324172151431236655535643117426657467676752774762456342753625413552653551661451535552747332113472666233331477462237444461673343432256611152122245212761252517252317271475611135567176124375213444564725626723512612433262114461141634315377661141214633244612727713453114172315437123541123425436665376726141724736473515151624613354345352374617656131736231613257614444673374262264372224416643635362651211536666416731372376751517715227414372254141311547345337437362223554772426547514532475547565621366776257223214777257625665666726637464575127516523624423273275767745425237111174465237561711521524467212234234774517667767152134662574736462162534533423541744343614227265363631314766342437175475137146714311553152115352473153765773576346425733244173243567156657236164236632166575213471576474337346752636155645567147311267723666564151756653442355477426422672661315474372645113744116751252352513254774167171364166715722366547774565114114354154644457727564673443163564231737334162254143434762317667312526461161375722366164226375256527465515556441716524437261715677747621365433434316153772113762767641111654217751657151371661366263464462124121376313453442471416745424625347477222676243423454242124527463424447536562125463127332714643315763645623236614116351453241511477614467723614335253431766756117177646541222555473747146633564574567455676164734241256243531211767146535444137673111635212233431546322275723112314577427654127373346475371571133423366464776737455334274245362724354222623625664417146554422524253614117473161534547336771354773363173133352535113156166214614143453156325671412736635566261675244553514274445542546424344543271546727551226774261722567133562557363432564464713115455371747234354636776545255566425165363315153436446213132677543351117342756433367232635224271446757714222164534561654316726174171172524153626374463733626546246357543247423453221423176764671646713337412757261444653653243447337674634223151316614362725352225214577213437677571237323241373214665617143143212345371626755416174765612317531756625777516346257555455777752161742542522456474462237746735354461745137475446114437445432276656652575455313323666732477521575574653532472624223237517473564335632376437723455161132112367722415754721714451171375425755756131535341542172321452233721517422416442415636751136242555626661143777132725634137753247742621144434556651553167765312426571715452726725163472312233314265377144346152751432672127557377147753471425634777277411367321335234574656432232152233452514647463754452425641151273541712476546254622764551766776473465644622547222431775114115154334727412556611743154675317716551153134424374371777461211323161316731462723462553522653116326466453611213553131413572273747625552144355744347371757377613564352557316272626567564615615355773261332153356226114517317135736256312611245261762544674616472331361553511426436722313674655211336474165131115677221421225646772753462275475176712264377275776364533163524434335453213322732551344553245577242721331654267455512357673354312523657136566424374623512241762364541655433314755337521755265423717765441112676343425433342775375474251451542576131675331442112743367536713173176166513767317414154127121341647566551141172154551174176332326474462477617115474524243167332363742211263114744335651371234554167312542742457212677136352741357412766214441372662515534132277351557467745274454744631234465423471557455374163651255411751623164231327757576155312143351342752316431336416334754372627754342412455522363335734573754662317551737672131463157636235724356334347426532671327373336221647462136772745145376226563515562432656655753566315341331571241523722517214552424347563642771752455536466235517143233611121236564357145162632657372654755167641477314222315672623117516226413553423136277167463673655416241426161465335353312512277747174157156326162526241422752666666415423466264555472644733231221272644313143517467643457774125135332753467647617613351452754671534743422315317211646713322611765463624746616747134135461551751637111636517424447243723171376371223475441522267214675226347277431612657721251172663514332363326427515517635754143423257526741524675346431146553225654635623174473221164111157472261653444745514237337157276146366354721335276732766675724547467235521764436421631437224667736743534725477233315361423723725613175661437353775645621222523315526425461436727575376331424155721663441614677751472445526234736726263464243132313446231154541543573152466113233577323547334411772217457357714353426714747471672122271136231565237131635615174327546763677665411535721411332654742737311377242436122274426624227422564533641373226556112764427372641334631161523567462572233174371535317437671251317477723442712765537662653777732713715352644254636515113414411723233167355612265257751422763266412731156557176534722755263623455657156144745637422531441722277774173776374761124316453556717726537137177576622244722477371374157153162142123451152322361511326344662167412147155411556147263117515225155352477242227233152573653365274732372426532664213453731477227634164436313471311757253324346331757422354533765154712344171635734116444121527325736163564657564276142654726757454562741436426245762357752551637275513547522336244563461736732752523211163337253723261355361557742454462135242643172337265444451717366512326614324567426363747131171751213274626266341261574516725124155565261211744254234625511433157627555666772411235726572554161263331131121472636432313471117246563615711162446472543173224237716316271416754514762413634246257121131213277662472642235563511522636156377477637734241726377353645543513653646652417511332276453331713472656654226166333463441174265525723612333143115355521637447233744326462116416353727122157174517333111221273127532435654775445372674136255551443715575174631567761365222761744346225645331511511547472567776532354257623174245332361451561334673211472711436262411557646763352723754145322251512771764774242534222557523747722311411211535121544122164451352524766117273615271613723451516162451362321622531613325552634643711141312314567752373161454737342567617251636745175314352766124212163171364267767532266366377611137551517347436322532572431433546625766732765736372453717162557441231144342144165344746655223267223347163271777545131136651171224567476127226274727123671121334773752664517537331234635757214675112472253145772226612416541132752112431645535651452624677123211422766152626435462564264265617761151155341223764352771521421316535534462513213541751234265425411275634725447615722255575457111337124426264356762216765422444517512354373642431563451235563253244561213676153332577632412736262632162453251514773767247334342636754111547532332731654626364547336757243116333546624227145523655454477713755242225646553434722651327431647553714561366643444723156223276355655425564561724527136141371146535461257735747512625523544767752422556543346331522464652242356532726764231254235475162427545437622521153272625565315447524371354525744463666435375752134563622374271647337264724432744513115335756352474313715467663345667413221145315747251121217643541422645152614577425621652556124375573311461257222115113361273522411731121136252453373622752344515713725227256315534327434662333325536262376221714336312171333666343371541463555227261367423123157416462532216642757116151473171752722375435422517527436616216323625757513365535621655636551422113721773342735627775672457421533335425751264746757536775636123465231636764561376452253747563121654647656235464321556153752355353157236751411254222237544762436145157645127134667714757457722735443441244267756757356434327433367733151477575474433366131714433547754225375145512151754165532175713546365172664762271617374573315662422331627336656647676247611477741114376323377274154111771152155255714647261211636237441665764511413116725236231254231217117452513123734641574613335546456525611333546324413274446324173245147162465311762413766717531756662573131561767322537342515523572762376365554677144217362743424723152117576365373714643152423126444645726655415117575123265617554247732637471372353174434225272727624276256476534144617433163355241561516447323747542675113542377365546372335732775266776454713652526367623426637546357335636224467336421663666644511635431463723166721121577364756232714242565165756371342471176732223657235743442462536176127712335623646553227467642643464566722515112756317355343636215664567741452661522557424677522221676614753241333571542132275437531531226553515266243466717563557622655522114732667245146125572464652535656241541455362374165424122366764721275254713254753515237576414176226654356613471652476466337137762656414314655733314262124121136324366626424211543161312125231763523315366617165473435746662772463625545445553323767474464764123525373746635367556535375713415671441756731456445431361751333214261355242327375241377366531243661726544175135643762732624732331444431737644531731335416124357533265271375141254371153774543415745675734542667427436746413765662351155642132173347145127415315642161554177227645762573555326174473562371433437136417774525535166445675137363315357256541423333171777473543174733757645717443763753723477611274671665576454163361673334324355636116677634342671172424166613516321227214642231342415124115367222345465764271435676311612651573121567466775151532574766343434736175144745562756135424361723326237644432117315221674442434276723616343455516222211646221532543143271457327353575663414672245463173357213351521421672311526466615333445772166227377541733662462214652453772524555643735324462614473732231474261156351113563754523717144225533142617121566274557251375711475121272224314333771746175667647443573735467122323526526326422557747352121722364645611452314663571436637142211765657624256745425477373271531637415417745753616355315145111314346111115722374142774471323344111722124626266572171541562737447541154447375266366453533145712666165422462377247175462766466765763546715246362313152352237127525212174621557772327654777113774614125421675616757136547441757441264237227621535632415553657635163676521513565451632311766162662243234376664323525765755663243371623453343116357265763663211651634311646157616745444134464442636266445353254147515337767443626454411247475171363136234272454432213446416126356662425235414741372635665411447225476323753461427673363244417433313344552112154745415642223356571724513115333747672375426155635741532143515113263332215213616474567613253174313746371721312362742633151567232627557551713231544127336315547722171755166474557151224756432624224232757621266215337145721274717443647722752714557464266426711744247433642133512567226157761256613767444767431511533351366575476715742451325566543772147127667661375633774544531147366377466366315112522177544667727557526456337232423622617275372367342311143157232615776136756115151471515234266346757563551462116246431244653421426475762732243261134261747372334224713127433763116524631651226647437151715374615671353442663446471575516437132611746323512755526677567343466641755516151455241121717754422477574355272341264366567474256416456215635272321756736617324276255766663422554652744545611437356764654117374163267744445611636535223745664463622616364144237214146432131561252544412126552563317143356545563741422734521161532446765652422137372664355565647115174571154271141221745516312412123573772522535667654535365647251542151323677565564257727673712166373445145215764471414474165314134512425347756527761441141612324177453376214167276242467547612423367512532352272217465432423775344536612247366521556322575176632314166313343234411334623434327541261222555112443677361734456434563525763675151352317524363137515171767341156223455537256472543263463427435367735617546515753323651123167635642424417351167521715127426523316542123151366242343254237122552537631155374322546755572523717352256363124655723731472665156214343362674261764371431637555466232462552271477147172375243112134362451671732755676225152462575325672672175212761514321657131764544144255775374466117276213221676314131532263631443564435667157177423666114311445735367155262264245524535366443135566513333653216173555315342555545436153352763613157721646133571444443117277471616717174676361545112414534574565476477166126363714366631412171641511437443471773431334565775152243426474734234467622372371727245616555142664233337676726221345731616533612346771651653615632535527363764231131236415665567142735674213625132254136535474422625416136337243552276151612345446317124657713472722526677245713544556245247517711253164277762455734757515456356576114435445572416715156635663653454137565256537422231734414761426141121557442475631644224622155162374362326677452555111462717517137675241727655223143113323415421411124236225747345665227667442672615431443156214674525425471657251725153361311112454226655144772363161431463673741463462276716145543616766356653733362412373227764466465223171513732214554776765533463214535616313445212521517272642172666447461744466657121752256476764742612716565364467655714763563357452652622367125114626216664323361455742111225735516447336757327357343564616312173147174773135163721361161723243557666356771571112252261453777364354322122273323547175244545614433764467517741345344172556256622121557532546563427247315133124346415361635424156162123747441216156626772554162171374611756267775676667155564113345635124742743532522437317611345741643436644217561744165257414127225553546177747153651476537241363157335354447374753733616634164312455213547617416722212274624264431252446427551352474613476725477626762744613737371663324226675767576763464751127317643266746655724642171617722163256476214271675451672773766215622673413744234612163273413333716375547153677277477717367513125745423441132761742154773745466364237675712111316513224532311347763144744264417367613465527653753367664313144113214544435332721247336177425226547335667532735162136736617523517433321365561276513317317363743125351516366426467632662532137531476457477332271276456742156122352236376323553712551444763675134347217134511173461436145525237665675622272473641125631414236225126771237511775217173244677432334135262342441172222647226371424251776134477521743221153673656414574521167232347652776367675535316652177714332346547476565252773572171111445712766646524243542732243344422324513466352175352665212546321452743313257451226525346524346523731371725664727661426417755727433463555454265145321161777662626266444212627435367366576564746665443755357423242272161636434424351577324356774125233336372634373443315144144447363535556152422167337245651335354637425324566775632656444577334711162624373372176364232512645357565761421662261227733125272141717515641736165317373614345642752634527634653474425116553441535732324317774443726636415141225727262633743311714676651354476272131325721351563154131276746766212344731175355772416437324223243467274224753562124176721453666236256771517765216616411656156172731731112112532522474663411311524627622243417573132617267232314776171324666536263345474517752551371524323216125353122574671756125361734254166735247337617114747766271526245137754717771122625515426577424241335737741152443224176646621345472216274221456117517574477524474614545167335147121211757633312774551377324232155276364467621111676736151575774523353722723145425337245225726361736342444177633356363216621561654611155454357775634346141226415276274753427411264532535577432341271676367322551134371267344462611712547513757173544652726364446637724115373222617275467235612565661371732365655665434361141336226345552127575355137565573636551316264365546265777757636321276441366736672521221337224156376353512414274547572735767376347274545776325173753357165126652562357146712622121456355277175365623646437722324313247771711446231415467571645465622131122166773145674654247617473675121236246464345753467557621112624756664542166575133111263414576173173441767756563174222454235255574252242346236536141427253761541375523151773656564746665254331462153552651246225613611337762222347626174131244636216443341652127121722446653366116244411477713124316564343711623641311452563765427476144444647224265344513713564525331776462475734667342643121563236536575645557346274451763143475442323116776122153531626243413357522734735557154346421445726355427733447125132577542576411456323225663574311652535726761235156477367547477476642554563516324264323271131217115364153424357175447157173214236664462634463374157756165417132731561164523153451555365236142446625643426133412457326133757325111614356261533712754761366431153333771627174475613412542475422645354537657421211552125255637144611455443475525614716635412435217364132373256146456451122456316246751121547344112166271557311324132255421365177216127314355577313541223352262214137767534374336614735363511142444364237767423474717657227335673431165154146477117165717153743277425134537417327435347244657361223746521553424576222257744174127433414663236576531156253663476352524373616566452561416174434472744314675555422672752552236665153624214151724374412651774774413174414123225746316664715515166465146651363761632622423214723561365262512112275477633255656224364213453664115145741466164117645366534224635533246425354754651471353114471255473346173572356537566717547775634162172462621664653454447331733543763333424414112456724157163447746372543325726273116523443721125665742473366226637412166471473262775246665427473334652523552111217125625456525151447711267517532655336124667575652554612564637234671413213152551137427116413427226257667215573516452663525761112631616641411762641126413212223416571564655745223445376627242413464544341135657215754646664146416762515532311443131415414111651567132724346313615767542253352532445751374346537437574732457624272176137664551613674417555657271517523623311472163523477365426466542245565545143315565633466335223536216173576221671463132766677264276125465426416655371516567626336241711442433412143334274375221245446423655337635277621257772736664545144711664414417434325521511266712512512254614551322115267416216551131365756545577117646517431416412452347233724735112773757727652236365311614217722233627631737144172623725346341463156732224241651144446313346326724626232556654152535367714756561153166355353761245114276563353557176134761277425246656526263432451355144374446263157733743427654122647366742752266472677231337741234174717375535465665522644532665414114255137577466142335112217751562217724273132156222723244243423654765375611117741234561326552757446216171373316423712133772376444376215247567443643266566627655515336254333276673211277273171142615543266626616331367476726124315172432433224241216146151752324133477542274717137745662661233536116763212624526634412612134477421327631232614517342542654225366431435641233623641724313745574547622376413714362474225431312166147411362763523662275751212337245276434543215564734532654717143674631424644514216552157552566256651713476247661556754742212241136126576414462551546353615731233756735617356624671627271714131546532332367352653155776276512666433775345363651165564514365655632133676424773222112653312211764277576442253515715173435756755415466432751232133653337124732564442225524651154552714637534112457663444222231616111613767361635724272123236427342524232153255751517611346317255537244463611516567651175627755441556134315567357435556341357724212734576445474447115741166172522125474431311655666463512533624226676352473671551321711355556261161735315675754126137256124643161274736525334735657576471165375514316172635232116275745254724416141147344277321141655413276756772727165574527645733514134743533135254624477353257431155642134441165557231167574641756433646413523317432551532336435311675536711253325675162314257617777544556614247137545677315326326473751743366373367257111643575445643147376336664513623111461135722235155172761451654354323436131354172773263447426244666342255312723232662126377115475421545416711243533744563665344176374134746753425732477177544245274671414222665361442541524141561352432244424262245423474121277346521736472731256121361173224161132236766271326337367517121546653266775625167622742622734211276415315111617571116412576311427372234134135116321161452373345215537134646461334432576737265127663777455434566233314376425346334535463245614541171532415231154647427743525312532575757463612375236232615356621111726654356415132765247114717221322121746516423632545567257272334457545535371773141717745655221776662335176375512773677475327427215542461212772373573533375437361246475527726356635272642325444677547322225152145676253524262551646762213732146545464735454642735634765451655442312774442127422176614352547424555656433544617231713457633774562351123311161275316553456157625143365535744264635574151167142767216673561116612362777126233321543442712743735173473314237672146312713317772422751222755755252723334755646177476627136623441754476163661677547323425321774761532442137121274246512445434243426762176121131564555122575332615474614425431521316111377134314244626377144326366161312335775413166736133567435453615141647527147732657326272151343156344217323326613546467665731256273615657172253637676656363577327722526547155441521576445626752654235121727664755127173664562757474315417376674576475175643251331652414553544223274674572111233421711356733355765467236557564136147366372626534374326263254671614554423575452212634664372661742431762443311532636414145334531614173341672746141122546362735135556173364452377572156714371225612632357636265155353264726137632215333536346163631357762574677111556123761776373531636777577577766572777711731475477561547537626476517617624155534573761643725576557552653252735317775273564354342226513142435277176716266635262524564177433163763764774666424676265676742247656265666356221612637321114342427457255173635735212233355722175333267771374276126243672575124541251267337747751676366655351244363473445452447527461255123246174555732677143216266273726353254721634224237661576537132767224627122535161757147713736226157653554727536634641742245261776773251763756632335333467317311217545735332226441275654625557571665451214337273434112614562551746515736372213645467762347536524576361231562767635724171244135476345571647157753646355462715666412171276374312676634463765453325535654625366556332112412257411274173555414271235336577716661712431171631262474247126221127221574614671126266613626637753714355735526531451351644437534734573365231115252417514156242656445775527742477731122427454752636436212315465561663136173572164637642713642432511715734315424217265475153425576611473235617327441127735211152743773527221254332354241162276464775441463512235553217427556515125772141511745524145117754736442361474447653526133654543445273441572257154537444721415651312165336454472154117513654342513711545474143262712164352116467161255625233562653262636241176716123525441726224554746764165175611272747152764552155145555265156216514521721476624422316136654575556231434613464747271274151542427353427771441255216427135212445413755765143267127663575327656426724532337566611776266137126677672264512571363564412325441247321646427677136374655211754111134132175754767631336257355755262725124533232325462226245653573775517273426752617741775464135435216246577426571675664534251713535551322473353432332126553564131575631777335671244447425713526516272322455246363131114574757737667131366213143456566246656552541553713644351536575412477266452441133337154147721553724753517163177443442156252236622237422521241326663111726142125451434516644175654265376224537315442134721437225645476421775136714116522565611516246271311235725446322611572642477321462675367134176267346624274126174454173216717636563555165677527375625336237213263447367156123162653577534655165442562417422637236616771357277643224375346643766551441517526433146415332136526513541732614546264744577724765547733127327115134532111322711555567273236347742526731762263441126257662417423715612622142475521545525176741443124425521662544731514314227255677243634114372776156572213342123246441153613214731111342777111336373411771433726147165375477443372753754217413327436376137715455643351163144476452372226337765563132347554234162332564317316265612736114437257413672344314244124221122566574545134461112635337161264552344127542322433617353462417255511114171433665257215545626653425627441574774622643511364261634336462532143435631322551371365137777253561743637661246367545247237144424527273272416456322745162777552333264575155114635242742252241364723474112712316132336556762731534164576661233745471457257553745454735635151364125354312451645573116671516646447216747175273742254155336322257317175124643147475174547372421541462175651274345246623653125173352572351417253671462657353773321517737771115415645732761477734124221211333273767554663744146462223245371711377246745342657626131365135225346213116644133114731151773426154774324372124346742151151513321632463224327154751276323474137133472735561576315444366746552575336441327317232675445331317466333217331461325616352115236276241453375555777671426531353314321666137724515675737624661233674754676677352133547422712245545244634614752356532415626152637353146541236554331671375272565534242725242711553534674325515451215427344655724471267733425173323765132527322761771173546266611317233375337536647746424252233265371747564531324421473721243573324417567244316641717473426115341672661575135722223264627637365566664134556361613341724176245625514321716756136373576116723625416731131726642473153654556752613517623126722362667166543557732314217523324654752752645222316641372244617265573111275127262257226454135264754375414237366674525562375124512231673425443244626515736547321435435117745461163634546324455512265716713642667344637673337212332232142427725163455555127231374431736212115713352137651765735517714636756657275512476666572464574171766765716557737637411741417146346345755524437522574772133757725743647533117761351641245554555452747122523432467663777476243772376371553126365245656735543253573535612134163521476211155312663347721244642235466226335266555272173337714331761623666415363113233665657374414676164135755376612271166126461741767312271627612243241154734731221163413616517223551667452776212431672154644767444532661762613746236434231747613476755155346652575442165152752413377125543341611545643562656231452573361624716153557225524547516776424526317116414546311755746635577253123144216562423532335112771137332665476256411773126737141353376575434462334333745552655712353232676445561124522316574376623257556512272424176236116636432156144715346511117154764651534743646347275755277276674353445241545571422337257276157516763576763433615241156715712674572763751235426333432243154455735334633155536552135364671437142776462667453432645573173336444643672761746312666356776341375662342641755627177145144777131737264441636532551575272772116111736373577444621777621237431342345316665642324434517522575622166717577473725477242125476157466367351427713552667211761575655515653124215473763775714174672553337552263722432723434744443531275362417123456552235633311654613531773714353347553246667765366742332543212436575231731621566553626273523777767473616117276145446366641352251221522434443351124753647275313435517152515143155653257166731364155162244152576354762617613652377277323143212157657742133532761777143551773221276373416163262472427766177311441272643642177341612711617542616146223571722155345447621515117713636227422546264127774164715677274725751225253566666316176555415277715131655134733663464352232743755667655461165463132577723221635414561221441217634174176532524256734767244266342662373355641377163571515334252357721256143173211451542376725163165313127441151127374645446355664525231215313435465142525453344726632763425162531446531416733445232547213621115241733164771355262445556741252715771411211355174232117114233423334376427564465731352253776347763323366245775517635254563311417652411336746427574423771443413411643775612453434776216352623263461757547716243743574431713431711176143243176475664441443676117216734257661541347174131332253274117435524761135134541673242562313256141641663476753754477656226534442537625155764473734132153637415651532451256726213637235631661466453711135137163445571254444622661171225742247415254211756351631641174617724756474136334262365453562164266764635347374714142727266526135643437175224616234426546521335132564614436221153536474356321144224714461373311773643461234447772474252372632741346674121454454634241512614272436236737775333737565657147651125647432423357763733537434513615313355631166764371643725477162522757653662471127335527577576762367355634773726151534515465474533657434745457265451233613552236514662355134152611743235612236717476535437754436432156547753654634571354242715551156744152357132523547264475354371316624151155346523543322741471631512231247673654342563166236322473727254154432265453664616642122434341755522637414114416462665147474513355441522333613643133637671452627455647262564251563756756115326355141157437744714421425337152677325433476373115457513445443544676443612652364131213567225612372246647135474771323571633514154311265371257751714464577162667221441272317415527267646654144176343462534674556475462361175426343611715464242212742217421273737212422151614125222453525734231361442751752555316664235131654623777375414661422421733657737521221261231521773234241635632514745765211364353616433626422514277117537567335625672254225315126137113272135621571615421261173126231542754656736136772732733444467635144641545351351543757314763157665341524362411474171733442757645363545373644625325531116313317157534354547332275641152613253251244662457524133537737117434153217566135116613165261173157655375365271712762212147257515473334262722124324544762717767547113523724337161446245336344422443625321163773247154721555317545747773773472626644337474235323737126316567762656412452216747332245376156764262133371622425543116537535344672226456637711766276162136674375517544331252441361316523412141522416232366534763125176442656741111124353345145351262127315172222424263517414252472524545356411563412653715332662154541477342431161256657324514732526656512766164113177734525131473362253552361613313425717513652212337775224325547122612664252613756156671323211232534714543123437334224367612134316711455651225162514354346451213113152731244763255722446324534746363576624413641342617432115512442731622354651724276241563255511615776236735246667515763311772253654711624331326361166521527146544235426153214734143114177274141575347344566372616311137747455545261336124654254176111127765641371434336735442253754377266743112256672614351676275734764562112431222412147237761675364643253426541712227343453532372777315767655145277225563146316415357256144541577622312735557531476533431125275251522625573467531413167163623452523726577156131372512531114362454157626744567726171453455125472117113171547443453621267122551162173572547614263445776617175214424163251353171355246747756676452761427455655124641646564545473672143272676511315562347625466746353773173764215663227221767565414714323723434133544565755143535337772374641353547336135652346161252411175224517533447234557476525667166612263357623757336416451367276167415643535233376157616735665574546343737453173717772616564254722665157135446736147237177534227416224231774777674737641623456417342756166556656252446431776641674112722571566323651414624612672324716376444225714755547321412753365216143675576174761713765354613543351732672413712114422247741314753256347572112332614127135257764372136726231463663466572231137657273716722762367627611723155133143453456655724176157163317123421176433312723523522431762713466565352774115367532716215416746636554663264133125427247112116763657247675211423355312423633633121246125736111357112364551133455671424331241317417536223337615466632354377547413577321754156634521745576653624265137346743536217216176154435265662615422175737162611616253171657151713224637745245326344555653661151564176264627562415274651257256436247167651647722541247476434317224143731115276564777757613243277674276327151737327336417733463343164737734141174256717723461135334137124647667224236147416612454251373651647672425232213164341177126525673662744651771321755265276161642331445233234465474223644662646112145677234573443164357755243154462362415775442751327424241666335553634544211576647772537625551236532275645726522623275167645761634165751654445731257666654442545264753747515377436514511166244162551166236767632624266564511126475513437427424715443222662775755537272245211512355567167367765652562126631111247226225255254151227432435556613536461316735433565522166543534121166227123767245131331215662313423246257457313226351362251312744371116265135556315544762213311147252761514363434111527632272217225535616356621423574576737347373166657515417652222612615643674112717151631627743334524272452772273172264467364627362722151261521132251737176567527712227257331454613716736675756767113131774133633235747527426315335741252676152574272265237252724427636235754223754163516445537312416322126432127437722775467521661623124161413457361451236271377551773513643322241425552561631516727461766437655737674154237317321461561343342744734432764126151317567524247455157534142645562714762753461537255341644221611273661176556723647574561413513634123233127633237277766127412165477733345442754615614527577777431444771655744336126572661661744712472566263637553434614113216717257436456162236412114515737737765722777575721673113564361264353166265156752241441727465674233632551366365471456547426226651235412642472241377265327241737263644221372435666614445453757677363616246421211772456323722723742343251712243443612454766367564621135247474741433572271221376652775623763477433122442565624573712575273542536131315654347121331672333716361165236115552455677661223424443763615427315562343442464146624212464446317166414141327135637442621256226236211516541654446574675134655672412473251455213174654357156645111357716163775225774441447243744213125134424356147423657674312632344247622346254125413564325522766574455523531253735414136722127771346221515642235616423234457456424347422125332743775331166744117553516621465561761523123637341226677663131511626711414761735176177157552544746746717527724443552471447633426213125217371746424774131734476421143563533721664364767274534576574763435131237555264274657331217726362175121176725356743717741133652172713124716654462772166112471621732334745634462571111722263345432765462155524175215417635373145245775323775516336261353223427344754676176767522552572223656714421171621517572766357411767561244344335517651157114155364344467235572452341457451276724562342455134363637714653773615463521166572332624526323724225754546544433657152534567151574471744622454653767343721637121457665256316114313337543747741727777625567471243466553256154366455331227161214454332757155413352216332442452237674172271642416547573646725241327137261355516373352655661324557464622641422362621126775747516566157545527755341463372217151747766632525412357415156366374417476462644426753734632477227572652512716561357652346476522412611172373151176755311352325476767167217635645643515544775545444554476551255753324771317265142516367234463351723523665625431723763627366625736272572364147232632223352155641571747176513547134266514732527616613734616273276726671214567551451145445466726611562624313361325533377236741623113576136475547323653617523727232671425364141273562254225637643725276725541662132456772574652265775611555734151227236417276534335125272765414447362333364136662375114374255712651215653367255414226666314174463624311737755536351146176421161342173217216763511735636671717753364774735624216322276165266174523213725411233165314224643653346551152133356665426247644333556345464677236115757674652374653621461157273714412561357511316561737745775367742321345327447337544532341271314435573445373447413267435445565242711344114451422747712567337163364422242627752267361647573612241713121212311536555642531212445546141173433426313271464477653527335546722465225656714455452724167745547177632427327115553164474571455466451634566567355754314173141511546743421461435223665366672763141134315546623546736665455765311315156123724261765654422322742213727633225643153647322543761373516671223711336624657255653774355154277671744146636663357757515322153744241665741527765672653516634241666154662134224624112455257614613622327543256737442677445426126512144111445231315576542314227177373716154617757637515746562462432144741323337423574371357427772115412655212153544174332215275516467644465774351771524656515355225311761662327521764462253771634456665753226371371641275476651227215713444365314512521267156212123724367116651421573632747661173316734746723755135521725723124554367174776275111773166577272751421431141172574773211152112317353437543763133643154363415635773246323622146522237767322724613231763355572463726716142253734451567725616766457451275524721566646742432432277255366331643122616473556133443371241763162364665526114146374643667667375545233116617234255642347336477244671271263125754437774747677714313434652375272746746442422414765431737367717375312255331563271735141217213243674712654724353557474415525733332744231644372656616361132747273677324411147436417356363657517171232674721753525653522711171222234425727224617315756261377311535377112735517557365374325365452223224537312261226757512342111342654231361411543357332557172135324736175237375542674252153365226523542467317775365773321567372255621157122732561362515564524151634743754357436665147636212626612417614443317376173176711263164346436763445474315624536646356712546455731461132724476374222124471347253322536637477437152373644177115446733535476542451611274525626474467732613566745136167651334313752666147436334746655643676327525173727753726523312266457412474315616724225267631151737677147412162765427355332441633533441511727317762717654127114451134125221343351563547152272731133644567535752141326454713127322527377352161375547474765416332624555523121161744615414156713265754445747767253634416124135365753426133231156543113625421147765221143466614452673374136245333155263623523352461711534461225534363656137566634136223753175752371676422461356162124311612427641137611241315225426761252434321334324542514436261767715357613135671356627372212327322266361773454612616535146277343553522511267661142635433363427775341421647626733226663221553563337312576552455777677122361641213334433512651541547561621614144361643314571556734613115215713532736467751246231533753474474751154124132145662155563744474272327721443641541766634131411222353356432727274273756573543766124562535136147576714654241651462252534247244234125623441635715323476122157572225111566642542275546442767147472214262247314644337275413327466611346554525272645655527161131121256135417236522321364213435551767573445371264416647457633577677667324754173555441377472753743731653351762357235276335643247444532167377546452211735632246314677216347314161423537312447461142163127742471632116147213362476525127235375452773577532172333314136241161546147321474723257571124141241334247212463164512463676313421555111243512721561746441211654732444771251564532647615735123626163563621666443641641345256547347626377577534127224461175162237121152132116622644313324243366411526632242124421742474227466336471474632254616623163575645471442573376413775677216566352733111351622453163542674444363677217346431675215471662445715275226363235326237677177333143673316254577421354335445312615315747574264237464237615336531472165146664317256763753627414545763677456127155145453136217764453744123134142766624146157746515223535752476675566213221316271124467255335215773713334577317531177125661312112413747516451423634545444476711152556637664747424177634515375414672654544351413733117567236161467746433277332534236125141761127135772311454631453266173371374427117441475261326755564123254535555512653473526415175577125417366136423164336371727462414364312136771426763713175254326746416623524656664264615322165752523524277566465715465237556254436117521517346241621434572331774515661742116133225462133366466157746753374211642572614154723631745654374136223463655373775372315262533335246626274744235165236745437663321372222617333132674662324324755725247431375612111667733565254755573547576461572652764353161456347623513552523717177534243422257241522277362664715172425151416433614225273463154573636555636513773427347675124573277266753523734476533423336715345254241524136417453724257251674533376342645625663156615622123677126163261752532157137532735415331347666764341465462454667322166322412311756714554732427563711544176437434436714417642721322515236762745371213653751264325676322227515355466665363521144733674735177554414213753224432124424217111165627357754277654767541252274324176734122531627336212421552273613616411575757774634267255515716367321417316477773413442123623652524665726657656217554175371556741537322217174725113514343531445522663775714317317677335627155636115514326156711171145737735431533224755653665675122614611364531754461347736536341531223271143353631765757733557732255414412131323321236123422315623463245352324667173116451712415745451225457256276511466551122627355417346463413265334332434637566447373243674323157612756541431475335751241613321212417264447576322731146357571623263223657631573775223742632134342774462456635336761466762175443742321675651575313553452662445633274263157331162531715164437124343173317534553637137646273324652262634717374661663651571134612141425736666555645233224436131336561363363247135757412156161324114354772237353162733347267311732451762325453762376523642573766336334556334723243126413672271124667346371164321723665164413626426442313412253256646455126517442317741221436164161736532413551711676721174174412515561622277277461462572212564156624127357316465434774235524132724426465426364121531254125541633416455127656462445572215151255526354256254212367156317115244715552271726531671775646647474764443173215152251342235733162571355555176724251376613325733174221117631433157327212553346666422534417564113146176255513413455627372461113416327356137472656442413662172334366433246377575443775273512656376241464435574457757417151347376114363736416744151132137353373225644356211326633147472321762415112456471524426145714257455716427764534716351355766324353163736724417111746175673546473613215111552553657567351746576267571321367644132222356444234154125166315272725336465432155663366214146675171635614357675453723633247127747733523251251727433616233356253256631356575616542134757415332657543571543243337433732162635113167551636162514567164274367211521665662571752421527257617521773752651131136477453461562645645344431534757526674354442635323157432626315271167536163256111326271552423134152334154512412555575544115532146463211651733317261745367232356315536515622163212217755762126141623515461517121243147746162176151441311452464522146243143362271335576644124665212726444772322466245243664454366471355766217355113726324753572353512411222361272515437246517144536767713332352633475321272127662651562125364647171642163414373652741252127475516573122354723312515544145215677541243412225455737613337142631616635315427175161763315422635116612343225334143142413346431333333611232665261626756473457513137511544723541733541412157141545527673214552654341512127233277763143474153351774155357263634732346676313541541256775624127523746737562145133247157633465347744741727144757215333416765632626423526643342373245477417162454425761765323553176647677727154437326534257524143737131722121473436371131714417112115226422572154175321323654677127633675766274715637762261747652755336245265576453442667675752157614541267647524752232331127246331715133231112627154416512546512573227643754356355635517773654134466463661415345731622531317732472347746171745542733127347344413657754673116573667471335452734432331727222211577531774433736462516727653174254321437173576344636421426745473126151171341116672645721524363566565615753264154342243226754344324714512732446174411743642476131532314516764613346452736215121264534116775376624471775525436656222633634453355635125576453331352546131576733636432222267434561146761732744331374417625761357564354661764526567331243143217257625474463146134167125421141275167646376714617337432114311331241344365276761123177217742175223446276625623747246267254463225473223215611374232157166547171652264526476536351475625463372676716477231274233214165145476765777746173214727451771624555354153261261412715744255256525363761326436566777515224741723561151222275154155235767354457726245261527346753676475434263264212637123157665245216761411637451545646255354772622522773166134322726734673212365651147457463714217123674214553351455433461773514535126447136454433465644234515351263741743513265525221645326744164557665355573345167254727623233612717435315542452366172764427111212365226774241312321436112712244563224215621753226452473515141511142553446644175634275455152322436623261154563366776453372425752544273311757376217164423675373661211631746667621647422612552231341335531331334512543744321543671744511754276767145441764241531734416524235233256614113427513777541423141574212122424777151551425671116265516621273612621765141722732552334235347637223312236421535712236561436322344576132664147551765644111732176667562762565542541345157144363251237336475343531174513636265514637173753571165165665142177647343343647321331747536343542547675233426543615613766633217565654367643627117712221115437626374742136417432523154275741623552256562334466662267677313476653272151313753531167152722451257617125156544137346344455734262244265714651265321357634527246464712622371536272321323767123653364555725171137371424134745344573252754565677737272576274747327744243632321415435715545231274117624127261432215726612535656277353764723167212723713256134753712217613313443655256663417216571622722453617314721711451373252355556725277221734224363534753217655747576632645351117452257412416274165742336754265233562632772713431344677416125642327513713215451625375255167665737771372732511674424252762762554564635132473673246674274472551237733537711367715614323774252476472756656624735415141447166436275573472264766647544621647473432112452772317373441732735716441652127327461421155161473264147225527452527763772517656316613735677555141231447622677637631144735624527744727771272156232447733634226212573573724341164422435112434254525214617234253734221121353711464215766723441745576671736337476231731732277465254134131173154766172264414444172674221237635244143312743427221312634167143677315745252524637761255653561151212626533725411517645423173122334425471113764145232713414125261524265366766372226321772375134326155525514355667632631272725356365136727345134727324553646513543256147115622435556223621573257465313424326562257173566536243112654335767557165214462446253575162516315472411122671146175355164445276756211333524741547315135561322336251215567164141213126575731253211332211237644175577366153212633776226342346156526545573725377677523456773677562547316621351442534711672273152437367263421565737442632251567133763121363452256333526753242254663115245613747614277774331557245656513265663654315315647125743641611246125424145566263375272577551615521473717667426166616167746137613152354233316115176116722545547145373737351272612524425673557574334131756267362633315215464443176511716544612766337151626263574455547333123323366474465325775354222175317742377357616551242117423532374371531455557325553665737323644214257336274247114414216241635345674736555312224765316233326253153446225146477766527543776634332716737455314313265332643545262572366323164635355111316662423762121764362755473315346236411671113111541736616237774627571652173514661753645662661253342441657121527626213172251417155311466512674667521721357427524265435316676364236351416361334142725546537466213141212151174472713661544522434757262466516167467756134415751365475743615534664662675247746174755442133516365763243167164775562227443725654352517225234645413736662364742571162774531334764357356474212552551752545571117545564455275544632141316165216263754412342127523127362161512531235717144356237543562161153446474365462137753147536636144512551117666271176324376371226667155377256116216252622562674674611431557367311347423612173672354637616655676144177471521171437112114772563576126166152261325337652261441711732631555674247164143271435546633136214114627626334663637574577713634345641623656335631512271271655373176171366323717762221357445276576315455316717626141166233743633554433163165767663772635223426174637257456254243544727543124735512536414432157534147125337144515661641475524667314326753177462361345576371667721453362672651176134715645744136114543733121131144445322735433453137423155267374151574116663227634516215643674371462773661314367757762456147471657157445677337235233411316356443352427326342366711452623461425764225166124343154223475144175614237146157615113635214612422314147763712762614167777572754376674513215513675213314354541361167552112554253615236564351372421466776355672362115765433662735213773721421666761671433712324735345642115173712271344635766563227124225635247457614371167145361373735421345424424145164761627751343125263635367114523312314413447743562264734734525747211742327434623133525232673417542647212245637353636351642173267454314521324251554372575776334262622415537156343172263653625255657227673622565766375674166624571412413714152757711461276172451523154354172216376455565566643735243712313443413361147717675311135536651236676234357442542362475241146263742765432577744214544362575425631121774244341671256675146612414517717434751251316276114715146631622565373311551471273713527312575654473745124264425625371232412177541255161411143645564611751272355474373453661146724476574734172732473651236354146626666263672176436635757716333334213232422742675562367451224556266613745251431326566423545132152132347265322464432274652475712225461476332517244565253533234466244415347611736416233517124672536277134126222273726477323113375236332654417627212152115326656461415612364455317615726652446316552233562136757641443421565536474627216321317314461724174641621274234177322464122233754431413644257776132261573127434177252636245355357677666371344744771354272636464544442473527235744161522615564132675246431444152552743124612426516422364322141326413134636761741513131574117153715227772612626761375455167214475227231513714673133572411341712624736111411773476156321454665757544555526735215124755724573317355634417212244745443256727257316211543474717414361675571416551361556737432573231212161233221247435242224474126141256473624132116622163524326242367331622436656553761443775512151774176444231375564641131712317321747175437551441735241252513646642753436575742145563671162456344652134725411725573765275352217574711373264355146655466133244224725167316745552446316112447262665574435332721365215127364313512362635571713132664576435267441677174664664371651237114722667767767345145514762126247632121136144212611471217522335221434557453264566546656621755616653447316725514367256151347731136362434346111556675622147153167136462137152147141722127245454476336553557174717771314331716447472361556555256257472124334272133473467455373127251464127741164525773747567711137376711175123665475671751661165724626737432722552351447546655567343256123425574632116263751637655272724366136532752777375571476117432161765652166456427367447462334652742641767625666726763723267664252536644537436321336742351257575743646333375237263276525653642437635667121544673133176673257522526414526513273516226225543516177652423474624415347252136417221316441117513154677735131762124255722723115412113276611121224632433736456221432141633734267653726433271123276473576213722677213245466561121751431452643744155471146737132247314442645242667327544457364511552227314242431472546315244625713325367613156235412433361653465717646647265171751234553542217711165152117621626131626313434534654552173755256763264714457744422117316724533422737341176213666761131722566747244112323144533431444641111625731552774421173347424111123214727114325656156424355776127352645767521216115166415215121257554342214345357755627452365322271725266723541557443477747411637633461553131326362543636517673577146324631763522116362343323712636461254354645746615231473765351226353773466373163777766466114227754555124664263564663441352775613471274663312672352635764253745414635314755336473666464121526357153675473226756455215627172741755446115337346313135621632735233771513357325146562354447552476667257475526244212341114771332331245225767725537174175674147263317133642755621531257131434564235252556743447622657753237776522346513411765747244252515516467634676257366164222747111573542435226754713723344637642731375552314212712274541235121325566355515235336667244456171334773737411334267246112541561723434627671745564572412767157241514277367564333723273573527444635366235325642343564234426463167716642463167224673317752722347451245514134265664316225411756714141722436754532364317761266761315417743547224562214123332131252133721425437116446761414636165361614745412534367376447143142612172477251433773133617624342432732111736262661164576572226371675725237247537647327216542363563265127255321215257311154474753373115133555517446466514255642273523327616577533473253617365616167523514474451711236636666456466547722551135237362345334271157624736274326152127344116621645746542372125732154221733616713421365514126522141552764245147411546321133714421467666323141711266731144446121357336272515625735742166522344412436456547323237724133615343623276734621754277262615275733324533537332431757777261612414745431725741214222322351342623221265266163315627152476643736367576235254774577425765543247715766622346146427562257134461463462264422436417356574571256424754212565127661625515365322265763374662364463566347266711347135366165225765343216236231265372741747571461136457474416446375413577467626741716757322366326266546516477375565453424563426345211272142273652527253732474341162323526147334516534237471125244565737653577252245561621734467245752156531566613561644751337354152357333311272451646434467425123361215556766343547373152723536275436123623556222263517621264213747651242621554174345336455176572457524171365765432255134644524173156667715524377616322126472221526415317161627613646741732153244116551576761751335143246354611422476466355462515433667626317462624663521351542476174757721167452752343562556126626435331456415724167436524436321364211255236621237364255631663631443562325117342262527422672374342712253175731361453324675124661173237531344473647211671424273213547632757336724645735277617332525427126752154457263712774731123675777716214651517111421115226536437437251637721731312324247133176141167363375571522164611725345242452327747437613121623716442267526667665721632244327622575734176675663567552165431514664466767667467146123233115157657217227226274211713347641567544476311443263714116552437615663332274332672362714661134715574737367124323543744433436241612226264276637215612355632546537762611231225356237474256524417416761225347715632561327313643615616627455556441521754614171572353156234112647131327621241321666264127537735651773156112253331261565641754442652251771315641177367745132516763222231453351467415321735316226637764123457436471142355116627674672415643626656673131741544635226567344745524514737124311765627475343746521372616627461567343213731234227346637432567546674224627654365233116151421325375631313361137642254163326467221124245515721615254653216765111132557442234336153452764673475527715753275632647325423213552235246244464357454476357572241573237144423141226675423513721771434442723341363344126576113372456712225662731455777647667221456261523371573532442345425546624544536166246622166232165642634412166675532323643465615512775537146647313555231421222772373255163146111476313364527726245463313521641677632271652654461447172363357541634753252436776243353513151126312727434517521335773443667773623734761552523567361634214335611123721275451147176361123455147151553614551765615635641315231157337621275475376152656677523741164156277156715513117711753366465112733747731412113724213451411232545752146326521132653137362326564272515351334357636252272534313743225163216554641565615261632147452367611566163151753472454761637255347326336553647316463252366274122163117665362223262677245776517737441441261423132323347237121214151224453434737363526643654776575537375657462521714662157657531225255743613164364142461355332454312775366575335643272247173442173274142121755531751316325763363624221333537314512732564453622373736772455316757162432161462732336236474246145173347656636122355313153616513332776754647543117732256446321653243231624613113217336373134132447163265757267622764514727542727737346244174266364135541434746152727733343771721535423475263172313276553152346432263542472712133454331646214767216654113423626274621115647346376255575141432463744146743117736655345352325654162516524734121726564412653442151243315721533635514146324771276334665361433735577324267756166131421256223525416441166763773516767776721313153721747756347731536646542572221513627624553455541436412572124176467343121376262425266445757367236274626667575641467345242372224264645543514212362325742362536155643417172512152224121351635543246671627172471512324443636313547427612511161353474131535355641524576767176223463217353171675156546335434466636346314615114522575441115544536472333734545237517353464251635474741434221754625543213631724475271245751145546424645331433272633161655763447413711544617321623132221727464535136124615646721445767771737413327332623311322557266255352433165721313753716373323257126261661372432731423363726243345173252223566162145363675423746556175326566474512451641573711755676432411251142376572753255352152125256275372541411676335753377512427351112365437526561367517612743112313432326262257415567657755475637215536364424454342327426367162273656416257536362415567517625136514365174267715367155136131745517245166514516444342265267364135172612554345172447655463522236146437516142743126713553145461374237111735222634445713341177147653665771532716453255611612625713373773166367334552444544746631367661376146261657223511324277236226357263773271224615646266322344371221522252464746433361224551211324516724272766643212445113234376651554173473477721264616222653647625246616256251467767623271465457314275133641171716111322361146111521333531747752552775245353263346411175162251445746563431761326276475223432416373262526734157676536457134214745463755657356355242271314735443212527476445363221531662365233564136275753413744721216446273451164774671143347153264231761436535236635141516514744357565731775522314132272144557126174111271763125637151374742165625526637745456151157217624124725511463367126733252364355671363254213662674567325454171571641265627377566356471157656747124254145174764721552776654651674412727441157562631147645323422165451425443512616713116642224533461444327772173715215273434127456623256345566256611531775416453347755612477426417462562333171535443225475537461447637153563757433166535222362437433551141336372772564427745222364643746172142343522274172733353747453374672146511741371575122437316746437654526723752242654211352256713617462255464771176621155363275466535153623422443425442362772552536243626157434767643172463541114641244753125434512121451646151555671216511363144256415511427476265426271431755473445125267347177731661135132672236651567534643537536141554744367265354431724371264761255652221241777533525364313723747626141364574547723542213525722714711757437174177464675256761373763752135746556425215633743762461177313727776652463165552162422523564176266155213533322621263346615434454361123465127222431775767434263531734213125241474674463547155341534266677524565255625371227155247666647711457215167527743747464553547531617731547523526724173642127114375361436527212114533111434345675535572553474615362772235672572355145214654444214373627527666223731661355713443273475441346362766755223725371513162726774632131747651164613174372615674261414412577516317637367651431251211763243244165157126174251377421637155371717615536557264334266363477146351433115152112645275334574527555521242651272467336253522215364756162461511757712531273335253651567125116275316671611334761247325321232164524513563627326444315257474773365636126511443321662517656257626373134174151522511163142167742711235635362435125143441747655756371756514157553476153241237745665172654452341777676323347443343752357715352352532365732717333622156167615252445715477767632235344263264723256156536636523145713321551342661475452235227543334576763731217267135362213167614375163577717756763531752361352112637211211217275451656715253454646777722252212751155766675354732631734163474663617516577224521115311636366766367341327252744245666761521527457324446465571315765754146312451322756725514645454252667641177342447352234621467714314317531555723761414776236146672242315573275675135535452276255313654425744644541425263312127761356127535331176241657211413423641454447313413336524456426162447525363213655111164631472322467541261612171612727413544116364232561642162254567631216631566324474657277515274257377264443314765343462544464112742162437667467134412767525227425634277276355352643253224137772576235156273722325642154551552743655563313616142736345124112426174553224616622125751454175356257535267651434655543711322166674661577465641246713375546755645344424463157363264524272376154622363732466325654327146277114666735231561422216741666676511371264726265337661556564544526555774315235771756226114477242137521352376775173136636316434746731266326125636353135176742345342457472324221145453263256523367426577122444561426655164137475441331332527277242247757374344212244272644764611135723162436747365725272561344566362672244241377772432722157425445645762577627637213414633714552346256325321215335777573763452516533366221453127111157466124214177537452627343243252317323644454536473776723356615236251556124477451157653117117633652137642322451456344766677764451564661723351427265753643741316466154465623165125533137335465445363721613333735511134167636513242534725347754435641266363234571755367123122665452412347653233322151773524674431772236235547172421417753452726235542454142153434676574142455377165423237556222672652377545466514267673761673163341511575444216744734342422642177247331164625423727453716312422357412432223166477346741562235373355637742452212256242221335165432114212547771236743256522231175416241416376511325644526742162723556611442323465262633531747232516577555717266114271654657773245735213613741752362467265264512425136521725213563741157575266541353225237162347544641712641524542155711117343336724125372454221447141362216642655266126474116263277446667654731667412352763612143216175753577757131275565756374524534342733621524653432241172453247663255451643332774111327476112162571356432176266711732113133333514641525124753653757372674141532117271624422116315554634461633135165256632133774553346625111435134753656763464242467461263345742557136754213537776655764437245422526324754341237225634417524276542463761425541564351131274634471751357431324314132154264766447534563446661532145263723321355337727374363437543373664336465111213243761444421157346172731642673227527654325334462311513761167413564553226761431662744443552633172651373113366456753327764251677256327731376334141373372121111226261163222146643713333646766772611736451676553264627375113114375377336525414732425456267617341717154725657364626464424315431433447143731771373243616436112345623521214415454771371135147315266451573235173472633757665615343172361625425665262466566246672323553744517316234413351166165427114322164125747512751251777641653424543256754734241267277164353725411146634237753173223342111313154267753517515235457115315346645375313655546452131132552427475245675375761725237244431663644551351722617611435462135223616255314525776777144612126541223251722374115774121512134617642161363532242142454535731322326644763357513117465147644776241145544262143354512236212712527733416145442617452674535136322325566413257452511612466272743376744126444572664754123745251617425126172443643437751465173353425141157334731265273452373521264772711154541576226674723365425215425434277241174153464125777421263145466513623231671474273247455672532473765321517547261674553433725157465111161356415476153527732631516412541766621461376742745222312352437536511657717725321754115233576662454541643646477675316132523411757343527114663742514411763234442366542453251455745317477724467515573651266235131673733645314365235422532355761367565151712441265727372442251276266614176243361274134462517631666656267714354573276656136123111166114135663233553457364266411527341154643367646223341761742714651166553712777522167367353544342451325626727711236255124311145272345226132133155774626346454115441154171473112723425342371621575524243214725121463117451553524416732354155666635267226373766426222467114673677525642472267733666146256655255321125375514571776612527325242714717546336111127171454416243334156124767661612633172442365732446352657657142244555732262164232167456344352677364161417526242361427463731312341161231173111451532461175335563662674124536564641117417143721271577272755545332342414321622743123143332126552726257672673171573177544645533134751652232551731347325722615212777174427576763136272673254675116135677567566773722221537231751564343232321321613134211334321571134567621144246442273326761731154534636144561346575131727133342736422335775142731444546553117314156311222737222466243721432463711532654256172352366611744274514667265674624762321112316737421216135716312711242354425412364314311122143244267525277631177647272414611146465536367263314467427752434647415262132247571136217214351635677526142255246463274316753146637512525664571557167521426743525516763551332416326371543436722574563141175436277731115452443633311627746472422534656424572165526712616465621174662534373422265156347215111211676763513146466273731653553675766765255562331152555754222611521311226614257465652547172374545617623523231417175453474623411271164345771131242716447742422442651226625131165466424332563136215426221125233711644276445742672345377471325625772412355153242577447377521323123364523331665246372232275446751317161335534367211333654421336551556523376134145112561224466243211273643555353173362525154671231467154341367517356427236727754223222665115175123176231134242554717265117521343644576724437615215345246327343741312323657657511334241762737433676747336223415437254353656612372165231164525272237665253255474514446466141651113773521245615367734763717116316525211325215745147457142162613476326451262765563641655154355615447425434745524222317225642434312343726524276631162173667243763211614466127712222332731756354775157636552653215341544642517171727774662741462216373677147267362373751165245457376577623743673232531731664332353342234621127344626612762535753227652335456533115776276562252473577134562454764455416364672753434337117254553332273231632227663226137755534176336653145471356613625634427731764662376136265266441244675611717515635651671317365322772664764756631445625667716547651246646443237373266754156633631665641676332362721717534417714172567641474632144336211652652452722676756442665321252337534161453553442326516432666122115515753242616147731575153666216667456113274772774264163562313271247247456166266725425664214543777614642651411522263753515161451442237426471542771377641357536713226261741226315555432571564365576526532743575352215515554212173645532136416154316156635365664361155361133147567417264132523343457227342556626777637232514741327341264442434434326452523246361335453231464236572436621244173245613336476221271344136243763211122445325157366423147754442773714252715533661634357265533143544363675367646133551467253566133663254613717632217467325774611371725417617574726164137636331357353124115265677615211274136265334646266716576566321432744764426714542553434272233316424212545456724311643274421151722342517364377642627356737745247364656676425413615544431545251211775566431373663556112356214235425373247371557125745374115451222152476436424437234156677345477674143126767443577215174732573472217512422565136756666462643112434314656725647456445474561113346671475371166245171532121341766667626456666572273367413636746625517655554424644373464741654536427425263645333153431725723317342213123427153552735226131372426756252623642217523255261437571566525717463525567126634767757246217677541233713725617311416432363244321434135536221353424351676233775751354247162227571237331253553351427244253475455671543652237764136164571131616366452741215274711726477524674642611215245776476662523515274572253265112612561457733214644424731267771262442527514736533274661727717247514665637243127436735226131255126434317344757613626331355472275152512647445346722565623473722621771366233757661137621262553155145364127416314511513722111415133752373455227771751353565635557756326754575515674743432126764771632527212152743347623124714324576161771316473631133345147512152751261212262666761235732673221327547662111471277422226525737272146746341327347312644416222243641554472533551523117542474627115372642216665147347323662255276726122443233631764637317544454257773347762365355151173766524352261425524654513427531747612341477651334722412645727124116354333321454266336633334447262127463724272617433426751437555751726231547141715367266442416325317233417434525463323276547562324357623155437377741272155226561126117325773722126347454377156271122144653165417434373624641561772317616326276131751343647736126461342215125647146274552665511547715155751446553562341447227476371175713747634115432416537671437441331546432243117367134214361336463546423647242377422133562735674151133427454574535152521734523331535716754533227725361363156322565376315667311313133172571442512452472167221262665124274347532771141357463511761513242777142343467535563155355536164464372636375257147465313257176535155251171627644672434743152624443251362555541232524212527712556714243422216243514236421421677511335671711655226743616661747737752443555652475472753631636742631216673351532471677363466354657712661126312453643572142111575477565717642177374645153473444324212174257351321115624264531262713222541616741762564272565625116541635126714124362122371262674452664466367112452654115324674352437216756151325614325756337174431462456475447321754441324345112267536465241273461736177524335453325365132343672716615771434172435365277525716376167667733453637467326212672433443442345773266245261111271554221454627311721555474525545734345514215345541537377642436222557322652517263336276272446457736772166331266634553412757635737531636673123715453135442336122174267266671112741355132364177417726646625147355513326544363235237234127735773454775763413136562615321435225462773462122436225476242374117567756436552115737511534765566555464421475516413563551346726173552125174646627167554512524525213416225623574523572363546212642114727511762354734263537362565116572453643217573332575654132743712167454765746361552346752356541266235634421361535674611247134143757542124343425325615722735452751735157514147771673375671355563556374355173764254414315333223611647216116376114466216743376556734664665536447716537524163642536234633477243255741624424117264721413744761426212425167561611212352666466437362624333312463525653151111655723176541173442713512717227326117331215425651263443645657622523566726452351467743336115217473763555522751727733267272123252661247621217222114544465776244623746632142264315153632343276651246341455665336145341566115714231756113173535333276356276716331437257667133677327255714776641125733731745345361227117671475576473616723557416547441632661552523174116464425372355532632117472723424352735555622466552773733345576235447316717257745246643366757674447512413521535363256476465455733273453136212742366226266625331552127343255562611643662544311366671645373161352357735123653773574751422737256523416331525227676214467562511352624651733565445455233172444412674462476764431377723442777341641377651446112233244411711754737151245213225351776456451555251377414236451326427366333312237366322755634755621747562233366414356563346755636744714327556411155735462366143746541262341111226122662137735342316445662673116132411624521455527464252562274711252254736775546526254433653364313657243233727773527264551721552756172427722112374414273475544651652223136436515361777247625222477523235772752427612636621353614776212112271453543736621177351741572172413561756341344543417675664274346616123651115453733124573322766757672167362241534235526151247147236444474637773416261165324331364231772374373645565613535271321754145275735422177572244175221235631361174737151247374773626651355514634427444562412222674563527372164437573362523655246516172241351135776444617314227111732145174326737673265226632744246443263615527421157672566653376143562253636717125774352251512537217334721621634444712337527173715657353556741376117354335446141646615252756227147775532465212366146775364116123122715145766214232143662313224537737553351213737343642762315751654732367572715143326634256654152544712154356152325127657655353441151456124724357771777655473147264333246747466367566564245563571333651465524553433323741526776132511666551337664335532774564511153241127342232654446736415176214432643577634221555541412323134577664334336657126612753475621262367724457334447331645276767227465461725162546563666577516422561436442351425315613664635516176143727344317252742431714566565473714732573621725257562231121762252766236512614453423646741756164472315266461135476672617614634274545465333457221117471362646376762542376744666761141267575336236512741646234235231467347173136616714277734556213342366316522572513144141516446772342163255326667373717762646455772221635461351272673663167634545657153713147277366656375271165564561163371421341337457117316164643162423564732166124145167616474672254543236445351764674676535136354721354211746755446235712534451164121643731736473426217373741267571766362555346617632553766175765264223362737727712251457461176635241671313225216524673742743646574565517231151634433621314571547137722645653746522223244635713237222417164473344557164667372714636777116556713551471257321432216236237115726465644764727162424237154264665545322121524534766522537247647523345661642415125776252277365247575354457632435134153473432257237766335427773425224464737254217277133616616251164442145764514634641232722657757434651567142624371334626123132765563642656732472544226722345654433721115722262446157154221116653355377111327564372427743254143461132132265245515157153571215554676113233157647356375645776645434446772277275332152747446434171634435756615447766263137173524527373161151626726534241157542233252471677163764551266215361513132572663671161645663515434425131212571167367364152544311762666726276215334373621266736124413215235166623253634763556471732353216116767324521311656536721176516531331464755275364246733253235127243323727557316133146364671322547172464352473326523453243315562673733577751372365632167422271467174345342413732416734766126376375133661231424775577316232151611514713126272662533553516613174267667272121421564143513314515434334243466622611325767327111644376614362353445616375347351435175167426544222672643566533661417216251136651742235575451147111142176113171276331272131155257374574516125345117331445552317256646421343177621745112561611746642615642252353441261431433636523115561126453121136312446632614135714135764365571431776563143567251773562122672736135735341711637736214537626123637532266451454447261745636642345222531377344117747243637635152663147216154455563517174276774175572434331116664255276625426245716341625626525343163145711645555473664347331764414711623717464234613331364473243555651142111643324667726466724472366413515662134522634563514255574545126716122515777466157664356123545435441612432377375374132644217663537522665225366115511715547425172154353116534435221411174737657156515225117664316541657454451566551273714162633477675543311377344364666414561231131675327466434262662432212325431631465444316736125371623755531625764527252155767537512727613675574246275573202356347542532233673221247111341676432517772316576131245267324375251423412743532535553471433274612155425513275542337671145464154362735625346114347447543212531251555247164175443316264775251416554377317611356617535246754124673334455456514575452265774577377533162547431112646276616467326372611166242262457366351331352211413612547765134163731253322453624225572477313622236354776344626252122261322614136675375232615533644164215517214214754567752445122642263143255517374653751134637734243561217167137416224227774716534223254164176251162514624336213645252771421446555747522355277513222533614751747453536154776666372665245644137714471315775773544634347235547652411452353144522315652766444532714252476123675737534133111554145472553564144657624236537515213663241417725532624237324376221426143374417164355772644474217261215555217325645354542211722652163637562413367736623734236433733226374555175271772367613656253575335112622434533153254633561742515316612155537257564241517725175736736134527734613341532523234747632546231224626363346621246642735323345451142172435317434331524465623457615114361111163627711441343722773525253274474167767245311613114465113342173512412537352454764434344612133415655241277545244521345126342523422245274351766552576272237411643277621455664532712642165747235665547524474167472655166772636515373364735554413662511412674666326755371246627217451631112511453341171334115246225317422673741374424547161716731562633133427467121576624626521771165477753121733223174566351542552231336641655376577357224471556112145233227157757675621351446457775512745143147247633172146724114666172617125233237446744655256745644145141773221174162467314212667473221331662773421761621442632612325457556146312571573741344624756634721625656146137534567153662555156251747654677654232351747126634652167754435433766325432334237625224112665422731564326473226121142464654527722111544423646651664322121474316516773335731526625351653123463345235572375367451216415616365712735416546316353474344146714625112652537457226566222736747422322417764643754543375677664645771333441136424217531227327675574731275417352763147163224224674477436211245545151171324145526166131153176653361561742346222731644143363241516776773237762255352767235553724735625241156375143332364142335127522437645576432756214721253677751323371252125323135536544244351312752261573335742425312747465536223452542175663744566762731523336775341562367664444233536527262262617777135224661325671563672217572472416227737752541626277432573742224747142747224317337373653167311675612126131662525666144462313414215537343433615463411746371754514457414757347227557665736234525262224643676712677777563577261717333627217271471411466747657147173466436441621772731745132747161431273351344433647744541145164327351775232676263267745153661324352463217476425755141557247371737366621577542347164341356316321457442421366624542376524356111266223465633636213443316744755775637276672254275542213711415316262112171227756644155457437361221323523656553531245113157117331564747434223615643463161172236315612646371662566744243463616541221426367456724527365625225263326477436374377663721523254164336116242213633531124175433243676626554764241533746366242566166651547145662745442211225474215273457374173317244375527267712442721742462122747576242367472655241355524637233112157277246434352316152554511722326256273247575635644223614676232166726334215771676322712413325525436352713524614557751221454327762641251434225612677732267523522775132366711471672614124275557157753322214343534734546156544553642213523261635347714622516374662122375724211634646327511451241352522324734131534356441515623647232464161664657315253333116514437776524514311243757214636571254264737522142276575637214274223641435416524143724576531141554247274645627244536226773316475713143437222236612543553774735557153437361675467753322721525272171543462662432437161273445264514557227416752236156275553361633421543574473616624444322557154326563142612214117453216375473744723231522734554422142773533747441774156343627462675276443741614115522557741111477317155561553364146234141343422353472147325654262274627155327465135341274262521642433542464342156613743353535632715452627364672563176524717512112651153271772151567343145736347635753464654162132276572316343346143412167567714234714356274527434175324374415731432277237572656266127451221625171311333274572322143122135337136262315745416547144465712454557515757554415272277657457536375265173141572233544542417562333242752376447662146422764654726434742161626614122774263642463327724232425225721221546145274547542275451263165271366373123511574125662111321252217257562243323734424735761216346463542766311624467162662613647426162452422674233243532733311362212566721371135352645141473532764242154215311157343257321673172517724546376315352766622611321571614467217251676264767361533614115445455573664574314243317671472355732573271762413737461472532667473764313511753367336576653143223531263544142317334223112427751235443727425565612233544117715141615217253732522655342754144562643474512125261556423637235724172452134245765154716371434245666145447764564362764625761416374327754163751427626312711251722444553162361543545566766115276543211637277253627315215226156624355431447375157721632454353345613455623662361462454713542777567744627126345314662264647141121124517631466137615745342456551563255331317223314721555723772752477224264227547252447243543142221244574225172237664612275612744251741373224556535227341121425134327461122476252175231244317223556625631117744344757214755667345241745155741515274236623423441354452276674754675437222663147275744264164563253635761241464414212637346715244647446463533275636723657657375762736614361772475466665553623423625516245435515455453232533375571442376143634462137552745365244211331154441277413367655413127641675113666676537266354726351335435246524473367326244737654727563326261642372233256753731343422645564757221453161676263337771375764553515542242242272545435665573341632576624252571655532221161426611752754471761756632764274236717226325765754262245353763516327432373171617336554212621273124772331532733767734366551671174614236423625324311146724215326626343374676537152356261171534336273524223775224442361461654376336772323743564221361521515155272763135422717423662645125644563752264637737113462666471265544141461254271212542741571731525241416425234464552747131344327743213266773452236534651714446353673221132466523577265255723751341764276546537727746474276574731727557324167261365145666445131245322254664623743666546323147374725133632325721217155127334353765517173335727247366711143472771563662224737655575515623273574662157373116263654435217646117676714145455375752435257233254143154651436355744216135762277524232626773621426147244742263245651144753334417324342745265412277315712356127752527114743424655717511146152766351352147312117671553676574664631757354325636626715264263763556545673346221714724554273472146744425161673125426274714264512315151567661362745664375615465536345524413532146536265767627473246111553737253136155664645526243254222626553277775665361252166475137322361627631411136363673642455327647141723274211266647134412354252355367711442557434551121357774122661651724263146515737265164577775764266776223115511537246627626515245136142453135377224126277162716521526664217747763474325434634416652642373366476757472345642324312516635375346143114332125457711161165715552456667324446375217327426211765144733156434374215147111733133646453753525255676413435522235533561166451277761733475361624516766315252413423535776536527277217131646211554136735622574424654557655576665261174777341722471156145626514444455254271273642651664367151515363717331452755334324263167252677271344513777534377615115243343263417761451534275265717433766325676666743117637346747723332255154644547241334261276271433752557154421445561236456377452161336354716763653667645675544753716644335244622322376765643337541534161625477631162677564711174257777161632635733234212624734462551561644746632366676162574252321516674371164313173113273721354435335755773544165516246541667424256655465743362253767654153736444333762776246553152751375761645361671261725662361476545335441361561671713413633673551475251427566756247627212572167131756731777614532424645125344351456361462453136471175671535164123161137364577552551441615333656155367236717764353437511243641567316331342352117342233357744223144111245473674627254622516241656257214744243726755336521554633552512316643436344117772247642217561622617353111522522146733354434636117745457443735231244513255637552656534571775512637311536323371557433173313165341471554417747116151463623321756127374144142153771136432773272215154552365514173127172263623233141527667537141363272532113346743235113777174242672766366633541254656265215622171417237234617724423242664445566737164117471574236654252517377113222533674755412476734376346367771164555254736166161432265124224343731656352257767233452274626344656154671127236242521731533562147664456657513431672716261636734743571356447612613225134126133641111256124115427731435757764447462526542143725711754662571146226317354472764576663363532756567312457117426777576234411776666737164176142253142765546637635537556367214431136244131625777544622552672356552377112314113251543721121245123362413735345754247433645172514254415111545252667742436347431247632333426255443351534551533551543617262276654321413162234522677371211341347772243662715567151117232366534433657247457237245456472742615261556673637563521355135321413331317276563541223351763616167512754674453146362626734426245317675275754357326572475247174127777636425743714754124652661463374356311716227724531125413553172536561653514527364416157536757322311477653544473234752734542575726275264447221434232336123373176126655411544517333566371737447242237612155527542121162155222357664564772555542164273421243477455144644233611727456611125365434251644451141154231132243173646465461137135353767212335746343372741254371726436356472377344763167374124237264131712353317676224265671325435751261416731732554363263425161577725266162265353122437663413673674313222551416621154254435625115756212566727512727346711413344133643231724116471335336311734456644256462214744271734775771335132562537757364174177667457624537176261257326636556535674655222341166315347243127774663342275321541571335353564674353611731653147117244762251741576167173352555655611471637144214123742471566345136417573477222623232462551576412344233613524616333613171252113341763264536331275556165324426653143461143177327715623544227124321561515316237141733321142144516776157711535653146417535142533433451341534323736671754471753226654611764336622612771451545277155637647472365547151215213723132516612652111775613634564157472664556634155254736232717427376664433335744561475231522674545544216533341731761523666166542316747614357443462634234742725257253145573657325411225531734661717324114372324274417164261566752713434154327636466576326315374416151567331324173163715656417167676665727143453173473261732741631537332436775374645363476664761144117243243174561327661556356353173731355765345567646733752617117512641336113661666661366441463445633757677177356155374347417154556155136255174121652215367375753671575412133536733145614744442141221653176452344642433137474727731227437375521316652265146437544157132163545776554114527464551257362461145656424125516645423551476756774751523136516514447614765764573267243656547522255247756445215445472657545616745653547523444371747246222624617414762644217631144152615276571541347544264357373112312723513657613676216744174474635247627117177457412316716457254177752272113162232364274243161662661771322637743313643457276265545556611713116441144422333261146624516526231275211554117335452244715671613624456633235252736352664554536212566451114622735753252637312124373151362755362156514777731353614332461777425644526335331467157473753142725672456221755223121772477615217611257711176521223333574655416477535536636527653276665244615754631523477353437777657513125712416467131776243252331212633425775554557566574131254425671254743521317375356761127653344471165357572431366164375454617451461325316463612431262146447576644667537576167443653766743132617477464544442517175464261663265325264651225566576345764153512235155552674563343367177515155317116663153523166415424366174645756636243625134775647476216574472365112565311772556536447431161337137327247241437312265232341363416431365413656627737653116256616553621473157633745644166114665454135214411575773667475376765542246767537711527726766617525372627525462554546651656437511441523574443613366253342224276432524714441743212227564616436272455155533537167313471262135756223732414717727661127345542357172576757461554552575631577645665136144222367646236722172167665512326737367254211773223532431213564451377336146146361734211442617346326353157174744137661624215133774742261372765413371463273127521124453412612544113262513124167112546721311575177525677211621622177211233322233274773623125377427431565226353764363176477236312455433345214572142541321245276334116534465756253421452666476343654631471365112545623122163126435731167126647224717331531134116711727142736741551413667774424315327335637545513663362463735566321354147123574264632262464243175334642664353164456566135652213637314512337736315373177756361673525317534547661321731146766165341273157443523665662167776674541752276354637226125435334223611176236265667714535361714537227341155174652654436215327163126242351171567766523333274174525341717726275113155311542343725452553565576227426261534671163641116574345357333161155434554147252731576225242662766542336734763255445257715273473357524421126445272721132552131457522373325252112215217576612166752272534462573624355425317516423643227556736321666422252134117463775764667511566552671215635675274114462343523371661773465244665465133471744215374414652417216665372731125556227751357611542521357564766554515474642524771353311377666544216265751134633652223353341235767516474511315774125463727244643733773365516276622461674711415627311656531362343523674214355137251356221366524216666226645467516644477627612333212123111567531535215167262414646241551727614156716536655716512337314617611316317352237731623245211511571633563522746741133461373363542526115567664562616364425754331624435214373753254722665354616717554374136533763474752411113723162533336173612162456731252553273446672613163312657663677156575152753235554125473451741156737434632365742564224462676714717664451671474742475145336336127726664755125422761576341164767113772477173645735125643151561562762322241635542363747266444614222455672765443761376435211774326554454543437127156623543654375264621215667563461473641335675513115226174162442573177133724575115647551261434715226242645225737533511737114514437463741553257324624611723374167125523672336351754544546111526632574175232767255622477427461355536245161376325717361222162321274737545575531243362313632764275577545535321454714256631731641321276752575653364171664771155127337245335214552353432133147652616733477327175323567772216374575467141112121644232243363334713663777712133321745351521263564143552654776432535274356365654362756333634667753563237267764334621453157445443722356474374146432616215262746341577557117623575757611437635563752627741633313112772255331121426612676773423645735363126331463455554465726313227666111744114543227766462333545435445452272646152241127343516363736675135422347455666612264234437421244677133112761553172626452525632431354574764153372673432613467634661441241545716265642723463456245312426414314344737333573157164526161742374231543667347555664446364552122435421236154143641376244712115451133246154571765136162464715464567115633422532345344413115653433545242514176323147522233731474751565166465421137222446743173571561366345711223336412316737277356324241652675322272544436356375336154251452113344621264231762515523157215337774467515221437513465672723667666434326251315376545245357745734577333361413244122546224221724414551176341565377455376731132513351577425514333312742745152232566637672453216647753241156212371464345523154731735362377331567546364757374767764634775731271154174572442141141535236742751177471252335633647123746542751257237446611465762614272156354373436463354424222412233341376147472342767433755326542777247753622256556612127653637241264253465713767642164162555572527346724635335212531357424215561434437223146571764111164615464447213235432322411132241732471744166371235366647743277463523637435374321151744742361337613317254775437644642447775741122544471771554542247414374221424762332343321175321262633444516276533751323343174313617253735665547146172546746511162117413372146263274457345115135447421647265224535112137552465222265263312234726537733621166712341771323556147712776372311312536735777255251262563432574624117774514542367477766222471173524624476262432312377222573614255756327251413653124145435126435223266223373662363677553454221153363326755443572163141426741156525157744411751267575657544652633442336716115345225172751456632366433444464112643443752727614132116352711532716263661163764371613557162234336365654753463733213477575122566425214622251463775356445251426371112573721176577446273737763732753224527551522655465777767263667323766753145224673462562521111233632531245666367746115471412536123417424123162756777636717274276537412224543752541735537666517354335557233532625112774112654711455234267643736557761361667261436352677674261257346415615553717546736735565672636517361745457325221124772453655536666764631663415537127375563556434244637726362734157126715353236763447352271315123135635564116775432376627661563715612457272212756326311271366566446525645757255177722253271266224116773511536347442567711221234554555135211145112461473615642236715527442557371636117362756371312164221476337412414442657417647256562722665527177435634615612726676162367143743225712463263565566464534547245461361531157336274754526113227166124216214356161665341362515525341161622357375464222361643536273371474631652521354572767342353522761455542625142523623756175367666134521124721273476764615453333357721133546657126136427265632257152366532537443446322357133352267436323675652117142276312741161143776465242464517631672176216322732561315665236333413633553416611151221117733776241633321763543662724244231527354441763262436145231754367533677255445664731744577565334217461525472252566763453442276727776162622241437247576152362265265213476734767713772611156416135757336231621623222513627561574372235251443445757242523512763313636444522175664721174565753424621565247467157661671356755327771167525664513561667716614555566666751541211571567762662341116116774157172351447447636274215216127435555173351436413442773525541413171672236272234417577262736777511567623653166531527536143752123163166344754636721715721316627327535472267563554664356511472424417166376464733431157232271444125134175643447112337244365432744557357753337341464411236612126514532541274232367741755746241131515162212644764171276713637733223733254441151557711622274211523235552327446435626677116541624247635251325161542343365342324632634462514313361625255171343747144512763424753256173574632226243524123356764371111452255361326717312731636377411657714634776666637734127657621726736412123673565561173267263364266137453742221711137467516145575471457754376576613661742747436267454353772763754253347655537346225762273562767514152147522566522312642231537417236533415673656111464617653635747613254754442363332123111473371353612377765214431743264424163112414645643473247244562235644366646233721267613631316443336775562524126155735412552417644653443514216133636511665221334613266446271174577347445372424276434211221331677744622651713424457117233366466563264452652224663674721257137776326773351514273562354412424534466266525175434724243613257732571421323123756457174475134736376442515237636475414245767353314352643377352222673427225364515354532161126331437162274732324241623132244177154262373166337756751464671327426755314714547636644623323354427245767561246143727571743411144277767745162666171142355625743353464371776376226344563465351627357616117651562536376535474457424426327324364556415372132411362125656611431726667517123265433746434434571612571542664324756454337672352542622117476137545574121117346523716331361173156737551562627512224757116227636533477666242324545244255276273146326326252574161615343153172417341314131471127177745242662224151322735276217337424257447752567513126636567422465173347255424416621515473336715436753761544215711262621355246722636226413124635644247364113715211224264675261165411341242553313426155436365474245311426575245511416363112751416356421411134726276724456645125642614665112614423445773771472177352151771153435772672272232531677714275313557366546166411575766161471231527465452461223473312211261215467447374443664235576717136361737174725572761515364275212231243264657447636711641271122236352762561524527431615646657113641257326372755727171776553675263227362113317123744244133513322654672224457561274621343525157336726357735675735537755446255211114641633434137712771444451273375771255531344335536612341477737431646521654371165155313362365441446311466237456164614144413246223254223256314122624442712347362627352666521334536373514131761162116475367425117746317713213231453414244315725122154266476123371641356677512425623231711734354347515476541673575722124321745413564334372373643554165621626566146471232372677265575476662442455335442712212221111557446624761514562152273526526613761742341542227326656321174666364551727274315451355227337125665443555465737676733656612535435262547427113714716465256432164523171232134545146176634561611462171123447114621642525265465425545657214236612215461316745611475353316731723253632654662463632367731543646155557745445514266435531615372311765753536311637574441631451612721527213745231222666652122223526717621325142364444441645176452242244466312431275542726446473527153623445721131675171754624326334716353165271351212271572224256557525134654123333553544166475353335247646242575253627225276634257713167123214722314327147642461372622724444747177533557545124354546747375712733776263451162517264767131622134435374732731321241756762255361745564366563625142141156374144257647376355647555153271731546164161111647534521327637733216125444654752725317441434441661664351135643745516553726453553731577514361665555443744713361675144125464664342115321122462541256162622377644255627733311575734632225346343752653767222361274657212637674173371766711151371677717273162513153242143262322423414334653225543767275614155416661314761413351666615477716651556611377451777155746627117676754644665722233232137141142222137433733526651375472315421634236362764256253274155315166253715635125443461121435167616644334227721675144356321241231234661472315565412737773227344567356317651437362475566117245514533464452534553132622433551422276446774357745242523777444426635571422147133767342541676357143624165413426725752136327145251653463223475467355471434452176374644266446315354124377735147166654272256171635341677762617516564124341352544472472472773754643356122351524374533714313512226654465723776536112524346721342137577461172755676261625526543767146726226324113122124667554253167162774645347743364754642457176125316722656663212717513141742753615416615573224436377673111217672353433123535277237131542664744212544267443373217312465654252663757566644173424355513411235325733623576217561227711242475337224526717742617133734162421165177651442356547643147555711137657545772357134221545424336432426313214452476112276752414357512553765543712714133742213541424772472255466767314771122477552342523641411276336746741332326644116312544575441445452425746634254215562143517653412663461455772333172376747635375565123251641214634173761775535333236663661113576277577717563225541427116336616547437327466622565747741664656532514556616511661464452542337213474141143723112152636124247262632457553155656175361272627646732376255463251262717136331315223542467347664613115127153214227475644661647341762473517137643514467167144111111441622745121473752151765576626754156363774255543661757546432231646566175622577165264141114246434324123626265165614432434261135557263565574473274746222641154632642237776341777575421724133515112326336373363452325426141322243466222251411156311753667712346775527135227324355453752744217117673676531453221765362567221243322523566645256255215573526734275551741534343311723562233137467335542535363613624273417133271354227414242423716535116123334571314445761242644427232153417766111555254417774336463677232237242317145477567234273452415641666121145726165121542711262156335256274715625431675717146354171516556147731665755566564411722774751675611161666455333766171311717266767276456424156566475536637566555514552415734712551325217255144715464724521211476637342477274774553155631652721613741171121522216533427525627111525626731113245721563445131143324716572724447252421155672615231632523134571527161277757341164251343657437523432651766724144652716374331312555645735647353657241111545666154647554251117474522743716516323627774513723763546732344315147442541323526134512374647362176253437663334141631762555425744652136224541346331531616561254743355177555771535712712657116613342153141541724626736334445336653272476664676377113735472335324743123273563423443747677222765351673213471743327733723636236763153475134252574417712465322122437676513337472142153313245557633733774426477613222662117656651264464127677561274353674773562617347152141237361727327617265357324242457673732135156151167744677424562551144451165713114727516541237415623451467367662364336214346517212541677636726145672433171141771456446432434352243326725723242376144127473237553715671512726166113436576712757461251223434354264547316311516556673136362137566233174145227175755357227433411325646352274213722441472436617143736515745567151226356632533531135115721566665736665451644327434145747227217612517446543215351666563476316467657614662273131137776346217146144255735266562614124651571617534241134653542632453142121312466112225513167364631245461623251772114775424453246464332414633742254554326775311351625167544257375163424334765214415113161476447246422264664426156661267346374312165323722563362267216243263635144677312651227345367273523716634435455534565623552471164475362724562256746621176347565224153355735363367152272137125757457716612357677516737352375162331233713141242232746665234143267413615212436551165664327123453324775436562557656554176221666222622365254433427474115137227242335464222755337377622535557564716466117326742763765142736726317365115137143233642567763655427545266111116442147326325114565433263173314261464337372773451326645165527236375132772272547772667475346273122746255466552542731767536566712316333113767254356556641421321552326526126143512451355516551737151144766572244421446127175111736744432322446717265217311121234147613736312124142763725746162516566162612233651257542256255436315324426742447556523651676353313735517424751147613311361335577724676657346554444675135152722733314211344322676265162717373565237561516431631467467671637227153131322166251436476461443456564177223442477642611551524263153654576254324211573557733462166344735643465726166454457626225162665453711514534563141142755574153631122373766435751774313163571763175446635572477671431747327336757613576366526516542746762735722723273233115776764457267573276561721433655465464723251127551427421655253721557151466611766737712267115416574573752644734647557117121651542311677275762366354455467556732154355364154223241516356423226525142617316741355546415357672554261453524532561456436154245333742221563335515562324343177523231452632265741536162636245211444522776225623115635217233156233614114727622124626456463167624174615327413625221766726346537157542315345637453651574547314222365437254747135424573166217632152645763361314156437745776172371576375624166563546454355154314574344747545334771655374112445224651354242665464553513115471124623141574773443227611113553765557765136536713436316421776375253242745622532265236272272142556273417274367516332342452566745676236256726667532165223412377177624552443443316415236611242251233517164421151633557552675722136331336172177372661736126627223165232232352413771175116611624344166323561722422651453453636454764725473476642126375532214243652344123464451674623325447264462617431111557651233655522451216411453664743137162541213561773554722412225431446634765435426713526656771644712774372246611513254752763147541131461775677161376173371726763116345445345243213124563755665275132677534251612224613211767417222472355113373426276426624576411752326731257642452425271767641747262176235111466121642647744142251577423245413215462567554377536616747373734464324573652223365255763724416755517167466627147775573275547346117126776757674663544753621664576522532321317776443751444542124765251473425324352761136472715315142372545217746335347317421353767227473235441265132254235353652675644271635163775113635364662251646465551277467311764534212337525464332452431462657244665231374752476745117346445552257773134542722616327455311276335424737315636716551535267377342775412443135637576662421551575775646113426312463351432517651457235156427341571746212552657616743541313351432535566145322424327763735262345432212126552133466355751617135771322544423545274142646736152553626173636122733357645442456645327147333345452627774441526422345252324542416617677355436221446173325772243133124151615636773513155645163375777435625371311663161564414655566531322753224373513572343137516372424723344663343533761364436275446132465764431714323353716646412226566266721231662237442435266521467227712245224551525162517453522664576113545323415213375453726225764775263115356771441115411442133632461661427431564715666622246422771767242315365756554437664547757167713345164773567334224771665773614341157441136152414273213173575331447425527535716446767471657414541512355232733717675655743113577557116642736346237135622334713761772775272146172175677733423723124433154461377611361373635341654326633212343333462422726654742464257671245567127362663541155414142743176656751621216554672544253446767655553635666654344631445714713711555742641435163665733644245645614521716161771367163547173667551234325143243213221567471166154366612537154564127376245265112631633176113574276236164722432726171411323672333246745346572174614156217571733257264627677227611326231217214542567152143154256217235246317764243141456764572533655474334422246463641657431514263732366122437326623717153344764356724527754777671172226553261627522375363174754275317275534716771221167467265674345375251762752714212261171772436275724132321532143471522612744675461273345417625254447521736526376516753633515444112274277162622674511763334111522741461477672152622611346156232436564735125443525117245753776252722434237763454165222727327234447613436336665315236432464511254255522544544275711764124615734551343422115534346445261542355623157423744431175731567635162666313266654327447134322415125425346775662424467314745271613545372112562744473434231157141436256567147343723367113111226261127775123741442712723333556376527421332637774276417643211252723175121425415135775772334541733333256227661415275614256534626363672434423663314216723777373321771154636116651361254444364635736145637641435573612277647322225241624572766546221457353215547254446237435313135374221543317445713726773633157676411466131265776362263565272273734224737257666626246435356666263774317426424327235217736625644135666742515346472113227122676322112116277743573714336447731563114415344231611222666622736115525171624441541663162644246751524443636273356535153237754753735312666425743727434751146644141672162644432124277714721616423512112215762164515515271472244525127351156266757427341411536211123767266226733176134365357112315523642565461777713333172222545227514773531642634361761113467272164553146334436176165316564575113462716733515324244676664445257527137743313255761372177735452433447544715323213344573565333477155221631472714351747215152513537263456525126644647761677157334353537323244222526626115714146575251322645251442354355156563553371434727546624161516325274553112366657745546356426451311167312637416513266235117765126325345522673554214236647546451423351234314672212736612675654715343466121517741344135426314616453121732723121154667321263644422634731343744762442415643127562665472525112521165236113335374562443524426611721654656121647337675167622514725772571372467534525243226416772512161322662534327143355225326416614757235311143757315146662432414222134775222517452265155227562273327621542125152377214746616226461543627232637277122625627533471565141173357461314615476362732121725234673732174456331376472773776623373677116664511537516726437312653233254152634621572564536571155311637444721423612762535314313354356334126211562767243774546265523665271221271576423133511527313512433445775755721323713166117562735313114721514657247556577646753414134435617274122277247234223473776543323454275334342366112341752735371646266721455724635772277313244431366261346251535234455527144571546466522536612345124676713364341227162236231465377777661337764115124351274334774774773126114426231766116633232642342663566341175375115172426623257556225743262622434234516372737174617415744335471125566436631532323474172424264377157723776162235665315557276637754656346156413262123561521425412717734632672221423712263235166277372775255511564165413737656577436626455335414133764461355234277153721444424137527266224147667575166244727432415333356762747737447475266232374146574362566663647777527542112426215555145134327321474361461734544441266661334467521167136331626464612411634313256365411233436265746116263733362332762176531466154175124416146311416716662142167466272744751612662564544147256326357454752234522677464762227143171755553676441541621426542667167264143344372456547572566655674613321655475552337376665653343134577576335774246117116775343547327217733743377221332132775353414435442637376221455672172647271544472776626551737527131225235322173362144132234216222333766611137356573277512123756173411363415443323552623137544365536766437273536123375772655413276175742161354255525436523374724634442647715424217142634354756553336413513356116124416146645532755626211547351362724731525267476262212366224452654251222152233141262422454722477234267575117435664246373125255362721771522455333667621332176626137227211467313671674721127721635546671656617277467162114116262157147145726746726725345657516714111724627524425231754551541453164277661533374137226613767235544164762145576121244134433556333733441666536351475712544122764462627725672537677471544357666325511424224466366446434262342214155131652222262125771427655215623546533256374576377542541253145412375713552233274247535753367142261773367623242567643342667773123324762643256546624247346435151422711215533426317624652535434675116227664235275261647132616266777712112534445263351475756675576717121473231657226267154645546437352411125212344374273661345371246477514346572321141347514245351231323747546712116252323756474531663157134135345174325623663546535144157563211127463365755222215721341426657751131477266122233745271234131147354324354265372616437552356454412155473721662243716765323362733242622234413536247146762317524231313535367554511535525647721443575161611667432525266654567724375173275473531722431437125217541452711541225216553536641463557514615172115635574167744222476341743542153556447156154676136172216463762347214321247726533542773632242576437752376271764441637234361532414323554575674347433447117153325766355724525142114552552471733631677413154661712567656235231425676547755445656245242754567743524317316154642677413717367464747367431536134413364655714763477346322365211652227616421216647613534674425514735137771732727611155744326277513226327432624625733531172111161424256111474165561244254375515757315226466776666612431171741457577242171712662563636746244421362375616726326465761665512253413654446357473342151351132351723377744512642177375432544173174335433213467611541314471311722465221542121272256411771221423651514662113323542473413635617165345735255517264435715372162772446432166537666223724654163353637463562556535367673351666324717656346514561237117544543466151155672464232255277243627366275272173251665122753677363312242653274411671323637231266411644134453125276342535657615657645462247541362326512311361165263722155223263526371631661676524137354267726261231223212412265672736566457417434545117247467166473242121251325663513637566626555272413532775575146321317372156666131515624474172645717157275365112353155634255453154152211641542717316162626453771427631134112473533353444313773756732755577747213632215656347754651766656544575252463367225213611111175152432156336556677322712233244742225533366343144116371614341745177742371236543253112314641154773767217333217545746311115123612311333475637673511452654475666327363623416417167245434775574526465157422364264322154665336722567475351577136661715565222223373542416456373351443322154366637174334312352527654317534254147761525146415566565316261776424332374212742521416251716177151413752373671154224233233254262443147416777125446263417145555722226377377372756775457473351743376136166137335236114753272417137754664467523257251647271442346433133673546273332427456514651625341522117637254435362354642743666742152735164427167415173277666663771365114547665746546176166745354574225512662365143752751665423263725515664123746254543532414624425165654376663527265542722425156666554214174456574452564136644643412222743471262727266611666262633765352622731243263163343153355645573665262215635134557176433321711361726251134756325445371733144264376234351745617543273477723443172726463457251235656326227555765367225664573635513546467546245714125715476771663337166152617417122624375215474727647544144125127423153575345137734612327721644615323774447243237631262175253753576275632667373266416625553757447257143341472732672565232647723142157515745142342611345642634347655736524442515717143541733471466461233717261161176552565136114744171471437547756525113627441145645625761155754546447732676123571463372471375662537532723644224262512161112777262145331534347676151367561661617223157142667656564633673672773124322347545433323776367567776271734362245717442742611667576517623352567261336534734123172164257424765715257124427231551171516657245647464577351315562771761546674562531221147217656246446632612272444576614534632556532416671137275744645231724173656237216233342757543377562362561423435457675712167436474534713255427166256767367243174567272611353472231737167124425213234414643173415422431452124646261522376527162744111255461244162256427471421524335454322357767226271132213375742677243562577623532645167526223574427176356441715111717153614365746156124777162612723121323141565574476175714365476711153461546326766675317737677571617156144167666555476412462452634542565275153742523454624161345631117736445163234513275574742445756742727545162543763553351424222126411475374461167455113156471622664134565133243212712321271254553156634351776336437761121347614233216654154671544544745271173616327126533422476263567377526221754166652114453463751712264116324743522743327757355456616311332726471676147246374743733674737143712263171134754561775355647164375624134251666335434262767667421113537345433376142667157256321341733667444164771151266125747764256656732431121336347261764773332311313566767114742661667477133373425773673713321571771747663323564465666151522773164371261512263743441466541631151577736716326612176354221375423513416221244146475422144274146427762523751375154716124644351213372465752712626316233727354575736375774316661513546731666346252772612353132224411375474242157477652111425657217357237563712741146457513217342371323471771215322357441772635265227467666627552711665755257176622672551553621123311127645664547126214461744356577123776575352265136664761416377412623513337567212171677642673634215466723762724333532427776262514543435756347774256521531451642426763571335426754747112361565727726476532375314627621161136631623574546716437211174313337213316765332342226236347767234356527415242416721534561461523351133775632712715162542527713347444744536747331147235421513141225522264267324332454317567775716661117636752325562334273373114172214277266332772334163414736446767517536462673746445127623467366357333372452755633435437667727754626356414723575242674774667556361216162653142757356146545534463624532627135434351365241125564155522773127652221356173326164562353544155233466515534165775465512176525232671562335755645473265575457214415453726514211152371157626656226775466347771276436544537415247757416443353562425412264126633747611545112477633464672425327614716754565734111567151414155236527435214711413672777752557364357432243745727417571615174132571533157453366347337322232554725117316465713741713744351546352752123762573277272576335412346535157455625345465546461243416463177745647564333117657715355114433431224363636237335336753565231575531361663526542214273663476666543571566247235356117475757655633174263121244172623763461555247541261614131541744333711757675662722223526673177443634142233623135456632523134162466173416611223752756231644354433342614575731446543567544212665213513274167134127566444174362114464713412435147716763374142454723524266543346351247511124452264546275243467424442523545214533117137754313245722265542372745367413411143567363512376437144764635365413751712263423376373772474124165462654713364715755355525346766624113515753556353272765423311273614265764241777411616567722142433162761325536571561446547765227546135276153643613166754142574661574225222515777217216512773452531263125366277321432223513767244464775535554476553664246454571247737423262742511277534412161226313455713216561572465136345576431716477131777157426133677451424414464476566574537553153127263654412161131622466343641263214411243351555756135163551577221772717365443142165765232223156356447475242566674564277533241165642713527767776456717162415524217511163172762726541447527462124276374624123316263331222262574224755647342713532265376536726431157533561753246564225271172746153135514723246726431361572676614227172463177712766725266366357673672752463474662475334173727777377615255424114464227536142141273273722564275655477462276313534264456645376264624753313255531346125123562512314673234551435473415311677251312773235623157737272123273111252452674567214277227443654374433571771447377117233176375734561147247315255366273513452244614731145166524453313564142355151554652462465223453733447516423572267537616421676363747617662353572555646571671647133235135453634712675546647634647254776555737442642417414477165124524571275343537672642412312123415255476334677677175435666171452276657672253253353735414335663714711661216544263565347173563254664654716673323661535536125334712576311277421727114656477143445624556775651753753351312335671374151642436434142411642776565636334421775551266547624124712615431214374162311274266672313573345567226645116137656656711467634514437424125141726623614653646437773754451264377251654242626472563277545775325354531166451337577717775664437374751276755117151263264743427447235256254674773742451756327253166113742431232435774171634751272213517753166343243563646255374415166163373337743212677524265636444444613255143574165746565262736574165513436727525212261676172152471351525537571323632633642267421466741534514746222476674122253332126273643341262533333655762536747766354617647123465144553146632742777561666577246143432655652156266235413473527425661266745363221153635265537462262311227756377326771526473332662724246144665746646621651215564166513427121524571473557612471176751323534527267231616717156167274346612364414541631423531461317144725265736414466633275255215322734664361331617574135742474346552337665612112273675473744461255571471262314623212762356726153524663712252535756255523515314677375667175462167126517157612412342341362131351354244153255416753117235341515634451756474155743454372245336222756166747454361726461516442274562662455324752255214275732361647126264737534743563214727247343245116621664472651312675723647373115776165536723155454257443573215615424317172527266775651327651333214535645127137746525641745212522375163765172775766545641561732163771211621112617564362441434743344555567761252342171334311116443222777767124451561715545757513244355345267735123214661466341754521256176112514145535614451567231466417311573277764656333413527765546761747361471156711461734634417476414453622631432612775461131162744521772366442722131677673113417762262531415577713273262514145154374547677461561112337621235753474162242121161362535617723421171516624146264434576466352624745235121446276731412347375471275611522765624421561636666445666466441751543316465641447213162732716213371621576364547461177313414434163166147175453322532472144417117525422423367523167346643214235376151424753146544462446761523344163335742447223672137747721456176331234572415714211326227465274147263733374115541762514653473227156551122523316575666354724336443232434627161132631576361734662324651352277473665754613615575646325363423554753641231532473276723661342521216572636773254664577765723374416376651652227676346356167426771631626175236336254111126762762274356257714536454775171776216425264271372765524323134244265731646277427615461134547264574416474424465457337442726745335716765531171755172746242146613424422365416414314511536744646117441761531472744514766654357251234434616167353645244232766615131415267265224617334166356357153335164773436716153552527345363726434134571512317765246274743444321643422464736635542573211544376372644234626422367447171144575444641453746521147125125323164531324362767641755777612343653227242711226213322222214447724457325616631653225457677335247676647421315564226664654777423425311343513313724634422111154535266334776336632434775376424177636571261724727173612433215715712761177213626636126453713425336425536657241735766524226577323364741546653761456342154634766215722275164554523566664367757511333643561336622217777546534516651135524541533754754747623374351475347133277665264677563722462641315417141727647321316622261354426357453566542675645647756213765613647225713274761654552473171653146262162511217266653124533632156174314565726146633356731314622442264554465262754422215357132416536123661321527271522367313543327232617152134764246475525773445567643661164572327276742542715454552137257737263213176463665443727234262256215636145115563231642766514132774467273214764327313633474111472757617331131563525117457271332446541674721167442253121157274451425625427437315523735242263647624576431564434216513347577255366736662642316147622245334254772614674177332145737155717436137331711521653177762717422475317334434517565215274476531117557614247731177631341721775176254134661673774757114325326236144461257351747546567213155667675345472426524612457571717616666433173455441222377467671553343215626273741263334362351426663324717736444464126465623175775327131725773442154713575215175647552765565731257657231151662447334633512226534532556764263427463265547771655431511577216662627267133134331165455444456336422547443766413633362126765512453521575213254436175377166561635321371111436773672543543531535456626631763774275451636371454231214766176567126654757611756412622332143122733722431522727661752216323734131533116261454443547162633237644731331341527173441567664316272616652126262271546624723343274575473575523643727623324552211667536727462166561643275763114174247252131357237423644533254555312337544771733666354731445133753215173573565365134446413127515137151437717547253526571223175731736172174151176362342365614571514414733431551477634273653444514166551725172243137656345611263771547142552776433417244725155444532537726237272434561154771446223477412336256522261376615153114555526152617462612132733651161546211217471557751165461745744217142262332411317426264361174617734153217547617543372127147521515213654542632627266361464447632453731424711262117747226753655123427672372411732147751666355267642533662134226533441436465125172344542165511453117164133744553771366674546523225245667253642342312362757523254771461416172227567727224276423134272243163525574576521237172515345473722263154534476433543733551317521751475151512454621133572523615114363777252427772125574657242154573213321562562763453231266475145356521761237337774411537576214753644143156222221763167137752466642366714626732232547553657126724343253636633176243132437532334162426172676175222546172754211521662573152612425711612177631613112272471761133735725326312413115434573613116522223766617157462124475265411252575173765713141353134642514542723433733434657176311675257625726473675252547647412612536622335164555412676664646746232215537257735566155745532346261471265373216175773616452775524775123564316115725315353543336127533131652454147611436714447451445767145412127711154755422457635433447117423523631336112441523266524524476141424551571746112447312665445452524113373566371435576165732667132452711357121375144763466746742221433652714144542157527333231544517116417714462576642514327365157171631733462552435516332272726725112175555722165747773114225217111333717423631446335737463273215342634775261446371216345575226763356741661145765216733624345354712717116123623433346621466133524736146162343517153155215131474127734532657341365673434236377712715467566623641432714437266371562241337212576732144476426465545163226247427412527266131177654573116632675646232152766276275544265161352255271516675525335233641457515643462532323276742474751737171564233326561271775144643156755144661222111331331255732351246653433654176222354461265524651656312671317221367127356222526713645236266322557572427352643635321144673544123173344223576262615121511165676276443264445363654466531657337341174534371746435273157244217235256741371314361777316334754771427225355327155345416332627437562614352125732667337263466421411763427652455744671721476352522511754751237723514627656474746131335743165767442723612663457373427134542351325527211417646766441445132267421272234365463273136373277335471521153473343662116756366233162135242423157346551455415447747353771352667635622661531315473421631176365461243542626156617162266365215154117365656554557465613542474273523553341327774734526164443153336714347412312115566476153451113626253324655775655526533172274666424756434145722515452771311661533137174622314664433642663152145362371152214673445622121427624563633731262641126711122365461731323517646124345136367627356463435116174727344167727111141721363114714417544164156267375467426731332113157565214222162632674661635745364445265671711373462242236634573237666557751722357674121114564127727614613714233224745757437141154245735447163516113521455461616333127765774255156441516266457224637736436743561535616645573636231224756664243337111114765357272333132727545277223233643377421644257552636447462615313532575762427475571536575756616163443133474435224417457155746766232655116662525255224143736745562766661566737467311634141235125223113162166145176172625141743475716336545552261112214121225565375227715452512724255657772557311243355712313615243631642221352365622425646231745241345657676744627161755671666523767456536333126145144735235777476553336163414312235622345155126164417327577342464367635452365274635667651775365635111565114643231726223414333745556645446233665671512244611174763656433446136625717235625744533122774342344137527552253757443155455722147742645524141447413722666562715673277162466643524226425474576477716735264152543166731662451211123716535244312731744233361572623225177115556762766573141222315746467662357366675645153264536242211171337376265742641176643467711237454413343246534545542121122144113565221455421276643754165463114474226353235246132542167727342122533461713641464747256362316537613242343741126623641476631513415623261674616561165146132173543356575565356246455371174425172437421167736652616436557331732375346556553347532576454376573143667556523251244514462733774227517674466775121561226532733564455435263763475455617654167445222755564273542321171277616653565172652263547172113343244723312711366625261212514131454157471611651632462522764317545263344326523517147331531272247166422255147537535571754173331347312531344217373243252752315552473757714446566173332537762636117515426163732542216462462746766637612421124211542321576764563566646112224746223364345334113552336341663361172531374741351727272127217645666233362757125211137553575551456374522146151573676664345724161212565611516175366266713415123135415275366166725754545717522146617327265114725614461162255352352225135755356247616625233172227451364761526554544545263664127174224632715663237673543133654563216672212662324376563215463232664554674274336157646266144561757435725556271126723743657436635671574351172214126534121265257747731467517141554437751267615774116165756153231614621731732633444252166775321311612116212475732467766567422453554754775256643211211161133277664372763527474637157267372633732452662333314166774744765252654133331654124524535341751466564376531717431223577433527567557227263465337463742616361456445466476635562441145446215243211656516313252436442177127645365344236766325561446756152155573421154654717675652667476614473137244742344425113473452444713427344637274636351711357614315646714316437223267262427422153641642273255171517546772643251456533753272121162256147354662746622127556662117324221167555752744365342232442474217435373111376724641274341477132164625336577363757271524764177416261735675635143352333733442473423526316712535152315617153434766241172714177615736416535261676524634134654534336311374724713174461175562246672643773565277416354355244361152446755325136177644363227547665233731573217721674444755143122745242423754665176442741555171365222565754453253737343512331461313471277735264566532124351516631117241344162552525737566641635746173121536115366272362156141646556152244155525545764112125373251767274622563457247661172723357467316767257524542531651143477557417317445521375557646652313462343475352233253641725522154423767427154461727473615361515357666521645475416556737657641477555441444313743621634613717167136713757317625317474166477575612474172233224756136456335314166437746162514373126763627347166723637656727541162662354371427221515562474451666766333754115141413173342611166675641137551465427647264455555556233357234374255252277746523472326554416236554371521615467727351237577423372631114165635547575612653724265551762361243641727621717311741515514643751455556431633663167131622216515643337373477755365362463525476254427441727715644374633314253772434312314414262742434666475714241613153423243441673473332142667757356631355721712441615121417425543437464267351635127532773744521155123643511674575461772365751275771465647146527477677736643663573632537443436465455451355744333627263121564333271647165553225527536241221743353457356145356247124637162267625363332335773126222524633762754523246373113525331523317526124666273143445117664146467451473163714327764576675212151117347646246571677351241762216336463451266257447576533632754727665234553312245335171574713475464326665336564216137177671142711434434161136661673624714131222466733442466354335727527233245575417755113752525337272314642413354252673371464216246477764324552177311647126436363224222545322654514577671445414135541636552146437227277455236642427623562676742663614652514462643624263454351647232636117566643344673342617175211374315273151475174522123722554675325156564635445221322635214513246153633325163675646223143525142767453116724324711743267633451557625226111432243431756153427616567313314361624357456353636616475546761436532266234163457342312755664731714132156556134161311527416712173626134712726445476651511523743224241651144677457344435577165326144231344625772737372251357713726441576372761465334463617621323267541377417656412261452444577237373324474361333552626164655617647173443273436714216226515476354464641371544446276211172632666336124143227754563524634727326253165562724712462744526332353212522371573115463651243166415146321451641261626415443162134532573642647765257712666265467754334711274372111122427247677715431132152613125131262316416421265372611211613326345517451523742673774124275536574366245316614174314726445222271636662434326636477161746452713775665237552555534444637416577711677413572751523377753135115226326477141347434153262475227741774553666734277514734374136742233522117723434376111542254241564757352364641372214361626433514211337576262222454774276733513145172251161422567371721734275622432556755717376346542546166757333411327222241175142337165754116447512433551762617233251767467235277453741767347374531736675731662637235343472333115272271715274466513331771333544466517727447226276643654171564223165767145756776653352751731452172611515223214213447656152137341531722454176417165752667113247224215363163745653552141761375437141616236633331776274212453225132324247133455466376737366511434765314436665444475377327212346644616341131716455316241362416212712637754246724644471537762523123415413241733337761253343434147521473617714336446475722364172154213514675442417367161321722346767457151514155114723255351425225152761151666577372617536577312131347465654524564645711571632146112161645411167464155246332547367516512443542521236162615262121172672246524776111736321241542653142257141651463476441674641137444763611765134415263352737254221627372312114656415733337355677661732252374772743436153112672672174223652251555232131552732231431162341675163676722177375437764772346437345536332642772454544155312356273266231316526765431136676125755274117241123122565771661573372131534567613335514314473553273325572152153475247671357625346517467765113353271161235312136726676764516134354373525357454346347146636433272631214731117545562416371355664747211574625761451612652177677415435516277677244236534145235175532472223322337764647254167577463523155476632631325353152142127473721657443746772636234452764634246335371776715111124572761365222755525625427241343124222462375512264656532555671313646224445115433231173242141162546361135556322744255511615133371247344732764161516277461274635751726422521237371237276326672511622555646161722135145716617151243521225233426641466266256274327673725557213711246256714723455535141736647351415324124526163747564756554612642474216651477165254542537211415764374153333443267655147173233731452271634271417576323442665367535766152563543624555123212157134733747117373775543355616715111415112123764473347675365377171252174377616256674574343163714142451111172731617251714434136444612632131323323453553227522576167353476522253631116532635774713731317263312776227223575374776362433561223323246277456377176736212477612255663423477426346233754334525752532115444377233146564211554261555155522153775413261613753311466214656273412254563763352613163673362121552716466154322674212672222454423733712511243524265545761336672115575156113576224172572624625145725424444723745545634737622337222775341134547215711423475732143253776223667717511653333137235562163725414314356454176413437226434136676326755522233213667612464177177732736412646177567641717531537543636677265215273157351333377454646547657511221646674736467436123117716156261365244651617754567167172676536654472161361367735655756157122717451771731266174751666415426621777217374424343642731663534337537641612253511275471577143517573661643171462611352323331112772367555765144335554626351352562137175675412234174475333572761164274665546663573144671247546665374174562451631336127244231127561362147425621763766623446541536776174245727736336127563447523522442756642736661513573146131323556765161265154336717223736167546556254574221755655561273123367255114654316414113771732443673627431117531512324633725163452744716227114265417762364213561166467312423142614614254665353452321362545152343633351657475753276245512237565761326424465353574437212446426224346322167615265641762347171724462424533424354757247513534736474547233515242757714656241644475252275466372671571376123311747476616376337527617641662334322461253224247123113711177334775235362725332344546167271345644561211572347573351266316352735575635717244224552612634461614655357251315637415715267546641426254113235131711512327313316341351171435232233313546517241215343454627534766222665556574626353721324461766721311176746541366671144572612524645744652635674454661251533615472277676251647316776133316617447661767575662633634556127717655755743124714217513152164154253761475111612322312721247656474763243664155217541143266265724424732331755567554561217725637373717352351221175554676611464435636553212233244132621511667322215114425641266712174355344416722622274161227112322747614354347421652357472423655153743571236111367424465636224722337717123643163735315217222635261161164451751364125545661154673711231566765723435312112217767262474562461162536267517622721747121477746155433441431323635723146125233141613147312455151744451264177314315612654213127214542771471432762544241553165217664175154217476763477666174716776415222633614423163143662464365236147435725466716412611257616342146212674544554327577726117733257771361745523355235341242245664673722137671335752625732256134525126432423457364465361677423265117754326664534212237331314542444443774774346177213346366142476753254654211217141664434342672571135433254216234413257613764234356132447167122554162162452776433347513433544122532637175475242676647322566372445742661532466646544565155176453141337522157655631221745555312727764746245232715241334122664267276672525242353276334756236664625414656563732471435132766556337771567346753132365271416463327327467334322644273623165633366321267132464757461164562266524346456362541146226334774222214737777546113131153726526151311775166752154377426712654663723234752671276737171711217676372526124423542436446557661561312664415761354632575342432527661741373273331123273637274356454651711442164167526213334663557236246413613433325336752452646652516451132576147514573737233121312247364443367457737323351753123347377655373257252275633622143477536534365512536157742334451727174167616316663661575731476512622231312142121411661464534415517143174422734115375334127472364361717562656376225662315354623352353422717537463342512257642211446717272266334663233461465715162674725243276575711461441342151447732566177166567745122245453416524772673722771764615123767342223624225416775274766577167133455147451233132654343123133755413117166373516174432143367775546157266127472411763261627727513411447452522663671327412515455717264133375663262415466737574276316731271657316557216112752513543347476675726514635447754236424257137136622622315153167574545172274111112275445254562642227736347752154323161615274461713776742641247511227372732411572163656152276256417331544114263473661576727745776143326731347776376555451465366372535521665656626464333512437257543314312261153122466736211327373635275534642154232246766222253537467244631136672217216231355632517624227344324545557463437324514561212346771365234174357472252641773227117146772473137171326514713344446564363533746156171163474637414363633225523437341557121423465224427751633176143321323475154577241246341642566131364625323112747264117315564477625211754254457375717131626365241171175433262333144247332161726736147722432654171426552771162774712674731237747122776177225436226517124336344345546566472344266131153427453711665453233471226243242523552153233772235676721735361543221437752342476367163265625172435571576633313232251417312111465144214111551775314465425537765512243554731732673342113767657542756445131345424761372761767733231274617153625434654162257254477627212326672545244642766115655647671722713357114461517517417163742265476635746475576651611637145454234137643473353141243337353722545257133414733446554177744457634452565135541115152473511246231677155663446551365635316333257357254254412477446332152716233261227734316546573335643234161511622516266743613146734356156126272454272276461116172436443255275544274524474624425661425163673466217562243624467165321146421176711176224526276124747763635636636736762534363274662667264167653656666733561122677277316624773372257163443665766776137622413642167275543232747747553645777273513632511733236233221675516525216472744746463316747137617463374354551266234567463577477436777524313322245724764333473551567443263535752554342616366644612667176562467745363655513476167455376264323427156544227566374333254772545117725773424374333166425725262764167567143613335745617312137357756736743333567354254116233371376372176523772131446156113533663412622475714217244163173357635167462642342152111511221666642561536723267465776261273361156334411413131717627555666236443276747727224235321215175727553174177771124657512734443355234643244353566354234521275524356654312737426244667352462244513417152356217244643672232366131512627744567674277657164332356436612626315266527615525162327162163246216136627672465313445354774321242145647731111642216155645271434632435432642647267175763414646323475341446623553652451122426342513447613516174463732145216243535771762343263521233331162615252653641216525711243576674765613161367517473174231677471276666216445327457671423514554763753714561312361441423764452762451743421562721156237627276574752755426475677715531513643524233342174744544536322474171543267634734441114671523773412567116171464137351732715425757337247761137654611115327162661613621531644633224435176176374464147223317713436171527531561146642665337347574374566653632135632231663616767331717664267414261474572162151125116116625667475556127346655156661471363262123771724661656373363444512142444654155434522462121365745261336125432276751227422567365123355271634765652675656226245767416335322121615116513536464364324167732235327142133515555213536254366673426542655236174525272137455455221766344277711574315531511455276476344754165236671463544572332313256554362116617646333625251473731526355465467553327711626176372463327176734613455366451352223471624733637422751527365524145314517222615551767141111763371232723754336225224231451551112244457755611542365612756234256473231346121174533224422436163122456572575616352614345511437633117766357147166266524376542446746656614537537457441712657133621536516161245312347551146753355431312231445226553422637545762546777122271132776352646532321616616631162265365324611563626121772565774222652514215253656571662157651372677751472211616555644152157117277375344556546535233631155267226247115672467433266562517526542576577276546621241126316251246326277326372154311414254273427353112745665114644776413144576423745341731452145644676223663446153677172157274171452474753437236436436745174573652122527262316261745733432122571723115144475424537422666772361364776412162635417342622633752227717562711373734162253436745257342427637151464163311665561415452625621726264573134223623655532614515517525376612334725214167261742423515436227563265117617656743326566431264342571422574561465726676441677225314456736416665477457225414535276754651522512361235361121513424331126171443513546414427577142576611422667347634565237316324574465447545513566255717631654235665541436416664572213365553217776454626467256746376536373724624661344113242745774156621434736414543253576614424122125351654525321547126117561273525263351723556633544456436657333151425621367162337115261156771427561453512412765776626624645777746214465747236735611513276775673615463166273116761751361171777453221537551261757755215334434412725111176225213321243665432113316131247161623265373661545656227133166275466714655144412271122236554464323235112526367511523746513362624346141322242222464661543172373141754116434566125615661312532247254776751427442233723163437754773312216352426742345664126125526256317345616513136634347262154663534562253224547434161117325174367636164327664731446551512312142746655426427133277156136461764162656432413516135242164124132631731773253625432257465261673167373313722313251466344163354662712452655126544513341756414773315544731553427217434542474275635572125262635645722315656377773542654513177565467537326256156343641411712177636622754773522465161142334443547423622422765244653171324671354416711153353177566266227727756531542757326635723653574676615562545642774577362657337116777445523411721477336535651552553437422774166125161143742711277442415615213226745743436647156134474274725347234637215771127724353172415341265767771511612625362663243767217676717267352644372671325534665766761676645232563163315762567466365456452175464714334143211257116645423624462352626323545774175153624226676735326362736545255764256671652565327365551445353242677467665734476335212265114422571651636443123755566725626372461647754621122427377212675644724122216567613165114136426172615316431311371611321135666511171723676631767252213317716777721234514427527444755227211212324346722374346223712543474616131575567737475427622176356147164253623736116641532153721646544351654357267765752366662745532351356114224312127256344441235452527337143664216224261636752537113255363543264216635721536613724232161445165476462265351242434261366432332172141567225442525334373246573613127265226764256172433757627122435455276226534433677214277321465233654665551124424435165111367773262661336551122656566461526525245434577345457745734664656521555311771125673511314613361254221753262265766347572172432656271417725245153611661172255443362534435353767461557767126762221473146615224273351457363151313453167751672222567626754274334672211216465621777171677321154545776731667553563673762734132516417222317456745325523747542734665627267126723666341745622225513475313435241637554751543765435176741376232315374763136435272722725246763335174673176142562774367124124346267546766663252451217132554227237124632532157316437454622345461372176251565536472457242476245315615443523276256333341411335157741576142462377232566547713631524675622767311345624612512265347147622731163327712562652212646652645157266522432572176427514312666313332375447721231273345625115646312432217211225544162555365263714267417332564441747335175614225654615751141575613756666357711466147656154344236443421446356526434531545212626472744273147731615252336266541521625456654667157675731656534776162736635214222211725112765575315671573324646277462113522261133612161413311121251461633262314575125366711123341311315635275766511447337453717132374171617416361434461536736151211717712154622756534577514421653745735333644244127517657313577774417255651374717777766117367361732751535676476366376277246366461676153543523443413222356375144245143537171535117423767611414137655237256343345321616676736553547364323366714456447247233271465424155314316764541554511122257633431211633441214263753156273377544564751234245774363777531251126575274227643543273413565713136117626362245623344514174675312133126745171763317172613263135357751556276465136236516137442277275452373152774626511513567116127555125444633326316361547557553431342117472145667527714672747223447641521224614765766355563575232227322635415125713652442611535751122475157651544221564667143657772353157156243756726625623172172446145754617376211113764375426763771467261212744144533254135744333513433654161414257616213116552244416775414655273264216411476512364364145523353612433274344136465233737523157352614135653365145571264336534672173675564734637527546362145646145447316721415667544463717573511364226722262741736315676647222457772716136442536376267165777135245557364147414353363311122144752621556262124562222452474577376651636655271661172357627217257746243227752247251516671623651655412635123357275356247322727116567163676223354212146172263374262262561323641353676476636155613233312444132371557521314333113536177254751172167142273635137514414541247247367473524176723774456133156174143712474724616327665667115116434735366767452413312161272124166473321231276346677217241542341121544676615542432543577563111232317671462347523111461347752174435536565733626237316454453563336211171675377222254211666246562313423614353274522154332255145367741323651211664211645764677426332456143274274515762571271133756334131547276661361442561664273136532527641637756234322521147464331622517672671524257422447516143225515416676751576642127277725447131771661477667645267277212146163253433513512667426437461666675323657137522177143715164263264617264111172213316711416234543244164676615245417371452366153411136516311135716747115345364735737722544661552456457225153467252244521127165333112225734472327754427531551473624346752532675773445421576637332757765241541347725456647434376676665422577634746414372336775665455226567554147171557114674473231762641516124134222322713463226215511762725327753215577156361223714214315241356576256364224456657471142657725665423442175533431411525714726574356624134717253323476211623573322324747431446112453473475164417642255322456376634174544462224111446361437476463172657326631352435355341217157376655616572537663432366321426355333725764357436712341172354223647251751425452454512731257661364223437461347674364467614614743454717766223112541317412213576243745654676117365437561671162776463261761662732414374554574714654173372551654116655224713474152472741216314714673535127476175356563514436146637272115766716454423113456464346376671576361245716317565524261137721161747155656611577463272215327436632741437417511656166427162134721335371444325373313155174277173135775232664345166373114543644266155572157624322173573161546364263152371364727246437155323163512111452471113127172726543241522744271442452775776271265513666262622165344644534464424174363272473613446722516246677227756317557237464276547574564526524555542556626357234274654335117666552637613447363113661234736135673175277443472723473535322234725344265232413774345627563676411156675311461761426371246647572726615357525623765515742747716211773631672465664456253546551373512176157425115563521175153333574123621663575264536637554276647262554643213742434421315736714733272676231526771444664567462264425616432624524667346735775215666557434525367656724721521333732777653444174163775466537673176366464627441257576245112111522361337633761727166623435556721246373375515626524527162551442476526747631322115666776254232511562477452574126524524553117267335616563634436212774541252117244126614316743773274667715336444766656216224425136435435351115525323344366121725577253171223775546113541454657327354554775275761772356435112255112677267711626726355131633151661157177712774766634337524131221435556457766576351125177424646123667445545314353565476457135636336213151521257437266743147743767627235217535412332235653651341244356777763625761225772467425641377371317712472433234474546344574525746746221473116566244117456742446333364444755645561171257154331375535372177764442663717125457671564334554543116475725727416567657473751444166137541433514574471532141114522526512546131617261233537541132474455743566747676711475442465636464151447335434246475232417214144663647614447764643457522642467147444434772172466133226324773716644326126327477472725761457652646217223256135166477165333317415446561217733642472411353615767533422633646123463636763455244237511775452474743436245674332655745244623173561145751642375474377715616315575621427614744623344365756777667352424375173576223562376176264133464734655324147426567477226741221615412144661523572552514511632134576773562555246324516267454667357351637114721543335153222677636564756677262457713431162343437216675674524172774357566112366427211167452152451726776576146627757757124332571672573363311262266364376743213473764222662723332272732545166526715441746331664714211464272145157725711755134645465434264412217211724212626312142624434774334345556261363224521624461171434252136746175436772274733743115533745742662525435764551145366742346134433616461261636154573426652666322613452671175612363524523712754345614714135615153447211523717535326627444225743416331512174257612515641374161431365445756374456646333552262324463131727756515313155534763215655317472361343174311175513124613543514654171412754253743445247515156653274445552111314642576547366145565122767111331636127174123647516432622642666161113112615212274236311476765514625245527441567314145325114756557215766744132252567232753453231341751744367574144177365743266323531636355435233752711514134766351534473336763257451431234633577754324757557774142224441135576674346654722632446571344541332112556434246543777656622461433535713767313357647645437166141445247446311746634727574573521774511665527635637223363634326315167356132114667722241555276147667625637142621623142136656764162765447554746222526632436325135233711166562514656533616657454226621626676746335312573362447171153145135133175536677347424423431245661465665551532675631212565672572737637324511672666616165664244351435471251331531311226615432156123762716243426556561562344643455655266174446224774264337123472271716627365377617447762764344653765766625346441474374572347726324224116652617657317677234145111424236734316373335316343666566747563355627547214646662162657655633362253231261556445754152241633262577214443521475262766274267626776731566757727556655676416471372215454241244231136736661631171322757314542264416371271254464415614754547666337357511535275656456155622617643612653636466244122726572672767257446742727533356447432632231356433241432416143611754147463521453111153425221572511314363535514224331772415576756211536224174535152341623312111131225257567232151376551722243455417344232246563624662765122451232266611236226527177577211457573711712247252733154733754221172512614121235431147442131552772143434156173736153117323372671216451267766463371513455215376416265373213242573565133644474246264635256564755223747325655511321713542511275731234367765436662172566736251155327747757433422542127714643141562667565647213466611713576114153433522276317667667667231231547123575636661657535623751163341353633526414573466352756766323452155431372153432357566556321676173747776373645174262731574563574262171622315136645131211776467177277463635557434147371362237347377436733677633357316444761634653637642242226564415461157154642135233446561556121661777724372625441725675753676164254167626212757151642541137655464113716726325334521665711776546151451263224657322422113374261275245374726314466621131452211231155526311253622423537776216332441333275323616751443344156122467423153575166155132555274776335371675364714713425672422233165626717545346631212673345561777662563546473366471777325214275263542737666235175276237151412141525137717733463313136235416533625437532536114435151775537413774551633727727464271472255127421215262673766746376536145767622753671772461255224177115514567775265475534762475124226766355346764645317717241764575415433276216562334434553751342112746266217176432175554143316427715724744753516126673411632614724427714471772614474145342432735466377131141422763517334417773452322326542574114455477157151327653216762342753327251176275446444755654712271442451677521275152557436226456513661762135155762257113655614575154362575424213547462166642221147516156631343516665173161223437321236222356731521441761123357322335266426312575531731732471332676335376131427173267363524667141713553567532542171136412271325327514154236373523535577737151774664472724655236522373215233443142572774473126217331663526162466657156537752663127215467366625524522565472761274125753723626577242411251457577111627213514463476741266234374315511522112451632636145677321664534517131466562666562442515613461152775134713312171346621322751177566213624254575642424566774123173715276635476262344124714426736437157154715544711524235761774637646764466233644137452151252755732542317133431133777316335532324511743745422425734155721474531322515723664727532241734374767112254665145651523157354774472414622427344722775412331131511742545726742445555415652755136344512413317644431163762266113741422573134132674614314444454752725375611223372173644371746544645474276211652772465216423267666435254116365415643574345774762536454265114664452623367256764231776515237125664157525454343156366151714715664272145723546165715633633434213642257161346345147632334667312516145153227155762665112617732274711526147274663251753153255466761243761611476733222537165725644752341442513415131475524327713471746723375756651732673246146417515527156664443655736453261142233715624613347545432476736143255667442132467553227561363271625515451674154221654622162321373344713214711544631234434575744471213443235312676121565354752421631115531262552574563311717151335456222467646115573134345253316154716356333255625331165674144763474421355612375242242122646446625461426326557473637752235263164734117731727666142156373132457144654647732731645244214516755762567155242355541276626371376715254372126364732361243174234735664314527466261321534754567273771543214352161324461176556677116363523242551714443654432332344372655221417671356734411644371621277131311212441344714112542535766161312543771135636441525712511431661136445452255111364164354421576673547426543463623233651442411272557622417655437663142275556676164156426324251136462673441331261665436472116222177461736763221211764723244156476534531437753173211614331757527463256332437647171352776214265134442275537534544672213724343265522762635522366756266672246455347556733624753552471351614653327465351643332617757126227676247315133237663754153766677677635555462726725332137336337331314152522124626352654621654671741547731254636674762565742543557525522746431222727277713251535621373476233466561611613341434217347727744323212273465722164726643544632364615745524316535326114472165414115723464236171624546316435117631522762514315577365117643564567642152423163644662474371657337323632773273657366627357455511553236336756245214267235374764233446462276224144474327266564311555535645676274654326235214746724666464143754443174121751446351731766312121555265611776153711115124756367555266156157765377417122637576444463261716125656527642245215171531151262175762554442165617427672711736346755233711117772744734326433367255711371423423527222654617145174575635117441633645243625633552143726541514777364271563357634157442427677476346157327565541365343525575435472476322211176126653154635411362522565776177123672326123573722114362163174126327542464633346556324523234747562637716512756544565251664477456633654525123717467324373752617514171464367767647561322716211262173341677617664652675717731157261515775665655353534245241455415456157756645472155673437465345774723627524465512473746116642451254446427156637117514325213357576242124233126136177543254622573527721434746573514661227671161352355512227277467257271272312456723575127141717135766276437575476757552575677573411347274253723722767246136127471544555212775317427445351364233417174536126641512655323552115465466251162756147225157326646314254272311415422435353226773744472112342324165432166427427735475617134477776642767742614717557451374143754542151145446741126154224721337113321435161116221137661463516531152326746267212235225354636611636152665523535767611357734635711616116662345145225263377652463555566554712526332261511417165353141727527772646155337417317255462654536636722647564445516443271477153636541145714552233116347577625271155362172657163474341432433253372132342636646316154137362621251553621214272133732454474655112161564774425637224461727326221446634325167553675234346472435562364126736174364227545516762632771422334235674316473255164347547513155512471143772431256673641733331712262375516743267161466651214217445764644651167176155733144675552351745523743753667462116417365524537473767374563533144114144726361432741761551244441242766351317544751251436544227335625563524672477515752726347374265635217617146217715277725764472266127711725637631542643343713333234345456331235412566224525152316143517553566437627542314223464461743117376352435321553215564223227622562536162534613245723434666752227363213556247664365632337236542472132517334334654456512644521677112254327142431776661155637626641276627535162172171317763155641177654746654775375345444642446646644241125626457213646434661654441165376761745656154126516665431651372211474163171412463352716263333555725543753115364713223743416165567454642364122533755463234234624751455524337512217165372115411116164656412452764163634146717122631336216344654254657364155157353527357325173432136254663372447113132173714452574512377641174215522742343117277647771774215635311775123334453332431441152545425616517744422156222365514171652442224322774272724264156465543127442174374734237566165734511223256571137534346336344747331554113262215277626661426724261246751276411247323173355257676123711242212236172513757675575477712236357662512764273353142613615221765644226524345564711372773416615371723616432322623764154434215755161562325657242547266632464261171157222717134271327122451711217326351561563214437352627737761113757135315536263332424536634156364461312175635371453135732536574254376516413342477713616772743557321172753477631643235134331717631142356617712167312735462454357575733734625344275411357436273143656241733557177757715167676314711535721367317325415134224165656632433673625666421234656475362255331737324212754117666446165473247443415726124644624467415256513646211713636322615454435343234417442634237172463222774521133675551145462411747273572155251631437634574644132162532156514671154247617215713132377424416167214532622754554161322273743643674367442756335154216347534131422167735333367714335361255661133341455211647641315135362151274532677431416414654561227445665241541514655535134573614561447374342532227172714365567235313444217364626525717536424441272656261336617562373267231665726373313346346316556715731117622552274441264215273114726231224462772346376731557171562474626376466113743545524524713253745774552354661134717573173421725515364621311334146725335677671563221773224261574576432111172351612773426234225765627132353511511123464217742431224331457631122243572133137413535257436321424747417533247117463311264726272666637722357367337662717423442532425537164114231137221374551724277153771571315337463614261264725722232212334276236617247266762453776131474723757633656616675754344261321732441434122674575463137667722125471433236447236776312472313516245422146112726625665126356621656431645555151654543356313316465341535213121316763327152573542316451212514555545716734325573724573613174551436137134655434137516111321176142165761446222635716717252353261476175344166362174766123341671742561516227756375675616243343547635116122737761567443361635311275717721124224213347777762414634536447542374724267351346627314751524511147453171246263154216674767341455522233267117535365156656513567453765224336211647655433424614641136161414235432517364726417774121726251624477751716511451352773764714175655653754625672721337547242562457145543226725231353437354443611736572125721543771335364747442534474716527614275431167564527613454155731211541414534512255256634242146151344515157642767626671326632457414255164241361362143316162436417135745463612637255426326452423447334172453747755646662431673256273573151445553231216363443767627177314452226552773631175375456377442211434311511265375244123763136266221662144362713541342641154762625123427745247525651135343753255767422426243336133337276563721617652124752425227644674543155256254456264425151247626314721446364742661434331465351222524751527315413655212441376431612271363415166553475551771744145464534166515572232627721226632377153672463242356651753176653723742321577223562356554254743235641774143255524763747455261425372411225454227626312251776251122253365142574577321547751566767116346253433174735213211377267312156763336746452374535565615646754673226133162321675563355141747336752666375537621477746553657723621211737622775156142737215317571712126121422236244346451122171373617521673736743317356467517747422315564271165336376336327333476646425135235177631463226252632525367274626527513662224253336517456416771752734323546363517372437311211326513344731557322361534564516757641265667146772237414153644652556665564662473536666376764541727626565354425717615556545113315271241616441253254142615437762622637747575724331735237113172374561664754657272416323334645264754142641325346516447174477116615211576531455246713122473424474126477252311746731353622163434245115734376612476533125434116534435351771651731625247772423466142566767246353354217171453723626116124731757324154156233524227732643357555617426334167353274377465722717512654477216165414234274777261342537271313141771324754353472447713744166312573735542111442727727434733574753267133433617723615157554134533261174551242353544452437754531256477745162436713441724632425432362477226461352637122524657522752221253113257543565731446311625157375676235273551354421263254162211712724655124271633652217636747141334712635244231537747623621634171473767573337312416312764767561541247136562533765635235634773761714737717353662456172754345654665561571626214453272361135633432211262364175632362431544347713135354523242636264331525343243657325177313516435277361215443721762563435775652361421532465661167447612373167426662644714612712167747211637572552647251532134442437561644733172466373367614367534473661253473752513153245564451231411627176565745453677547124256336412311371775634134272114532564435757726216113435146256732111554363265117111363161626532153343761417121143261411574366614347546617623736445516567336237654641531634146673545435451373363766252436732132326162631161531736654226733137462271474513656663641273266411541662732573762651135264574354532627224365774261375124574342624116231661357716237632322745141652574553712622634511653167713771242531243334516361467776177577625112135367142611757641567431433334557226333524522627675751133456744156612354746141142641643322225623515744332145352545533165416271651546171226754247724433174724112477276423222745136473723535247416327272624737434415726372126266113742125522564125737667161176121325647521667413115215234335347372177151141213534444177632556427737745762212475232642644213165161166674125474127475762422721541567551162632453434224356662737225263272475643215637375154466372731342512276637423542267126657262427562721515667134364267164114255334437611376411147557515317644567233225265126342421361133227567512234652575331574733346551536421544342511445434741565344427462567114464622476113262616352311666611251133473224532644662134213214441455116441214511171413135466134373173746151621741172426255277631147545463556763164235264674677124112757236224522155763564165177527616741564137456266545264774155256752222646614524317736446165773577133417271663214321274114513154271532653652374725735546136554365442631316455741655323345223762627722144722536724566723636245421424732434527422167771455471143325612147631514122733377147264616516734616177473715346252317772653446137147121322146675236136313751575671673744151141653566436725274655156443761275274554326231151637444372621732652237553416513777744465756161346572651132123523436175564314542421616732153425751662557272555627112715233575373553631751246742143345267547326765352457674611736463222216347246715144135517612452774324247365365713536371472657251523231467127637313254314573521773236466517413543267522372554754217247117262446765157277465162422456471517754553367317357767341477456531526215534665633632555736763737121151525175777464552454353767663117352173662622316555212522622322341457157433573552274575177223641626723671141536146437346471655647643222246231237774141677776563547163411233445466262253353132427336767723251136145463621123374346146137565572577246531643212656763515564355526553326524746234233524373147723577143114511345761343113426521771114314175241637175476751723113113656365111315325276763175417622416246757272744563553774444547672525534454662357726426174647627713656324724162263136747333416527715731535153262575512455716762172675142556276455126474165164265554261556467224147127445345774552112366126742545556634557251636136265117774162751733311436512426344155256555163156317443434566434141666545354652513551113472435742247224151446527276211667234642756111616654647771512712724412521531612676374373455766151632724777251351312742221717736722334734743117341654716211174715232635333655573677371222433134757144771255746235365326662375773727317536232166715551531751651153224261113432243127164273251476731447462126342643763313742112725152131432377654154524211422523332644611242227745326641173265511715577524147745666654163412264264134126623537417375713453663221645357242636667527331566255661155613547134714667722111746525534316673725317716712124327273166516517771642644635256571431147722612773166363646353344511726612112372511547144713457131232724334465656134752543112124131443176546234247654122442643451436136722646372357762235532161233747632236155314313537412627753451544656675535267553525627725473457255235617437415751552564324612536343144317241156124212745536722757363734742156762324622575476614654256655163162425727361742622426144143651251533235355551655116723541725254236562317266344265167644635464776665227245213632451444721666317315737765517273332465171171731752565663354414756216637146143332427377745575173134737733741275456415512263164416222125611742427451232461111561373624316613765134151437441527651244625577116612421454321573562617311167172762334362734225574175736145265455672342645477257657562575235172664131226765713717766247164573763416531347242443433466566147557137113257264437774454223231126233144561421164254722344677122135342611162271617312547247343545363465673122274225472525552125545123513224435257737173751153747663354575352171774125424443137136454145712223433234615453665672737354144475741254655512111777163131645215111347124575126117137532637541272435331772613535457544646714734317142242324716574541344335742463327534177471457233276732627267531523123174241165525437713733675767372613327447322764176363554442472673236213335434244173462135366566113753375752575325565177627575517714454261441372151667553533325437164513757777315464452726361124743524111711643512251453412534137311613124327671236375635111423555757361733712245775672372455222731657752254571411171231515231534524522657337462511634726552725511153357423453643137531515711551576725166535722435417451263232321334134127622754636675724257422454271523575624476477261617651137651732322775555524443545634747736132374615464136673351134447554456617311746462361717724371445714776626133663132332435174131632432234137637143215541257764267533755472455461723616143232561634122172237117311563466123271364777216443543513753223725454413113144617255546334556152617361672315676125672535213131323262452523412325226361112526651211545627262525446275325661555667653545664157623453374273257147744221111621512251412221655763656421632733775322364416674563762523677112573245564246226566174356757767241674344172614664473741737636763242617427571371731434631524423631321372363522516562355336172374327567735477742631755431431671334313315254151434433315361447573234476324731114547772532675666213763625322432217316562652541371777361734116327252147336512743233273565175741765171235726314541267437251744754673117622554147357333341454742532133125364121257112547514322574777312152563672522177151414564265227544712413576776714355644264115772464124374274175633517347652551727521162521241134376433321417512455675766724227557413746376267526316174116537526576214735663755576426231214256146156463162566247122655166415422221271516755672725322121771534166276351157641252674715724217626547466574463577161473374736737713153643312563662741262756562653361555116475754347576774662151471566317266765523573574162471632721663711727472753233641221215311567762164333622154341553713644614713121544136245612161363656341731254431745761563763232427454461517153367767255664277553411157331357675775633322752727261475542676656546433666174375335416352432321276233632431172726577445772144364271563647166452342215776122652271451655573442676117627432711142377566255622112124175251463567736176623515135341757666645324227136731312715652657737634556112734627657253642226232224663674776561466514212325241462262643252122361152562735543521141226654266415523713316763256452514472712643436721442341676534775536146234661473541765764747447224231253533713256456264661735657462572266476724772511217472261237521631467472172353315444674617761164334364613242413251637331331456773333133541612337324456513651552226531275267512455714766463652164757166726661237141431311565175473412474462525521665116176776656126477757421272372223244754632455424531464575746271516124576755431213452132747577641463753762736767335542736725773753461716372272235111315211112427167177741251374715246167272354453463566624755466123142173421775355634417214653575773322655655513475146761466135745217465164655225143742117733431353423121527442145433654747422646117323515542655533717425357534535461132716175751452523262244627577614115734643612254513747522512574114521324525733425621664145426721414545226723465156256763625517652236141153311136153663344126215447355462633147144544771412444171745674266613521366766751314614721571321273654123714671641441243324347576775426116467464647154516254135145676611461541334332714722545351142124272367322766477713357715233436266526452667627631265167712366215257726224217274313133143414225152164617437451723345554224557254572364436575517133722353131766546215542511362316772246641647525436223465535156767123171374267144755335217736635556267211736153452315737123625313322453557555133375217114475246662246423572376646457477147664553671543232453451226176272352741431575731367724757676525165351315466361336223731622473313147311746566633654251342422153361412477457432611445463634242517541127776643145171756353767241337331422427623444443477776724147114267522415752426766756767476516244227561265437337245243313165712533472531475541475112443141551635376551611354434235471715764246776544736275547364745135633257267155651661364424111534337765173721677156225776422514257145645356447445261151632173511535412137275232167266361671253335177324333767277126745235352675524555171571627631545462126317262646556737131125272141453424342646524431444657411634163325162357232715242537671663472635544672735225733225225375555132616415621434331654475225612435527361352436752137416222723266742111235411426533573526721336254454511363524376556242734171725364144373645416464217514234326265612343746577337761142664337256737275461442414324431631354471375424174343413256623715143413644326135663134561452654351632217651554443761446614262631725346343522177577544545353647742466434175425515462147514262266446411721673444212537417247366343274377451735357642673727666612242772741244611574155366355247573773277324674255763421457374364653214135535344752323561522257646356773556374611243521764211216745734313133434557741231752112727523353557134522535652757167462443761457464245317215372422477645245422452776441562433616146232657422761252146235462152667413161243442461774531416624123165374511155334425211242134655354724375574246177531756261747475361727571135146232236256453333252246336452257173236244171443651275131665214113445263573747326446262351272514251171367764127665524761711373721231256366761151733343554715217323452477326524611255633235166721356427562444246475357714412413531414454531354213141142423753326566236621665326724132213671244123157632631552464211322723737442156743145324573233466567164132337334551373764276645423542255311245624755453714661443627245777233735343112322711145541575375222626563774336537745522771432343645523133455332426211471653171365151553121763246157231225626166673661364373717626631664566375276514634374676657554744414254165745442261752646625321753411211616564612117264266611126577721172141431753763471463416266257467675641136344615744415444361327421174311145646333124651221444375325156253756713225713234262732575312241546447172662316746142422254477654437446636267165771353412151147414551554474473113231613121324475763231667431653375576112135416374631731173151322272273316167617273266415714256417736251176757717337371763521571474332343357367434453563236375545212435674722665443722234264132552726625317516442635767526223417623574246227165352762133165335427667524346355113321435753417352251233771535447712246644315344573735325412247257564451123646326512353715333261246615116373335277445747413732156756461412744575632547417124321116165336433213777343223235657171711445311732333261412146524643136273635727244573644251744427144653356752777467754473667433357735373361572431535214474437664661432767246323477221677343433232415575532564235157156114561775345116571151513212227242727111545257231345426747363227522523717535461415356353323656631724314451137211746675337625511522264631745765163752476571363345663366463252762356647517655212771426364723211456342414372233432575535336551726753315756171455744621543531643641273662413561274675643317374757177457731217237537433155775373414351345566512574556253755625256525751521312663347366773555273164663146116365523643452121641266144342262221113461655251255214111655263426526156233152167717321525335776557575412737236247313356712512377447111413347265315654554735364432443475141261613517155551317143217461264324526167265744715112333411547313664472422227631442616151324454654234566722725263453371333162656271661674115625164433556256344265365355665647356631327336173612447116514362431423565511432123467372343712255226676457633135463434762253411232222177153567227673272431771235456666714453316266537673174226765663563137461421373374774326235724374727256331351621212654517322151462371323352544576764545577776144473545163347637526363243243757411164673241234326346663317526561661341774727542316365726711666155173172675551113741544454433347157466756435636243416755422666714752761723417233565562345544445733333324776722471161425271745551114347156761222441513343431125226664612611733217362715242463116176567742144476524625453621332342217215333173745537276677734267412534357677174741672562565124255337766755776463564744133745453237236134734514363166413777555167722726323714442752713213271612613276147342116413615137547641722453276334555515176723667664167235555521265646676567156155554511466147367155744623742767435226375222342467154556154352326742611443766124243522536173235233335411621643451143217236662515142673775162436643165117166456264454165674157734333255264723751417126726333446172411136641146321444335362626646171124121346212355711651134627532645466524534752664741744447432636365146632227515213312155132215234157634765147767532647552712436734121437365253226423461651224127442526644373627661246224336151215377363733336215432355722746751522557154526351214453255351366347526633276134165633151516744671762646376213632415723274711471576773623653236411274424115165345246532126552423643216627446262116763166744216573213776743572773712212215536426737431446715326526757161644525422575732523366337144254357732614173666142511534451267614611161512177114375447226345335117127317417532251636747574236241263234316451577762556647414221341663324251231137336313343675742122553171324347413334652262175211357761722557627154543161367211256366457745627735321527557661726664433536322326147223211211274272645211244365214337561612642351545466574244164527476667164232426256227554153646625475515147471337243137645232113663433247377542477622676333634132376624655731111163463436713425766651256742162212642325117451357246474261517741326641362241475422351617761174327274342565536377535735644164617527255533417247234746634342623516533227652677632346222647133324261522517611674127132426332675313576761761157571575651673273644325213311536515766563654374562324755327462453242721417147636751365111266434751263335342226224363215225257656775451175437343711431354773161672436555231257557732257542761151325274136164142144362457555664735546143161466772532776744534246714731247427331674714671364711621415543615537711421123251653645277164344131123265476624112416227126654366512731562563174435367373261521412515765154574231666636155321471663463317651473553556464127366545124346344324761447476731776744555413257521131375446242341245623655212365477547375322556714517276627246626764734567645656221157733757551541154624611576521535641337215563677363745135777153657173135714274344641455154162557567274665316753441616324143312367476156711525172263135531262311257266157333752361513466515646174233747174471631731471341145645457655774345532745275241346143622771511254131424235661116734325517767714531663317766111173535417325437274212633633564564231712733677727351635237615475122123426126722156152514765625437643176127713231736326715511344431652463565717124646641321455111216445734526441246122155322234445323716572445461263511243566224746341221375234463745272547472216744166235152422136646723162322227546561367633145142635335676211275744214377515322615352231743152667311741122755147714327313632221262366412776524514335276672124342472432541514166612332322645361641174261552172653116332525253447447277346545633243277463221565633652676462356514233172524613466654245723342332645365536236475463711624262414572431115141721557261344672233633165277773115263272447737163445765624625337155376643657665333141533325251156726624211277733246423765513731624625256376372526571771563766252534261222241324314524673212237412741253517733574255646376412354551717377464644451256176141416774175734664367726153754762732533243145645313476223621321513177423631536456617641243464556166121574767526421415642111676424336327116267133114667112263735562443465215322643323543653366736273651312143447772346655274111132317451776443344672676427747153324462563326763464654517533541112547737373362742337112765342443637743773431525661771277734212574517117354636435445655752372453243355422725751534222127341526143572245556344427152374431514421771316153717452551727363554126235457275517544723125265532255112751777641515321532441235544364551561546521452536173335773441127365352344311674474727631164217137675122553543373715761176617533423146313771241432241341433416761375135536652726353411454725613744467343141334171533517223773371747774417434754221671733223663761677431474113546536633354554254254227351773351233137365144561327631777161336443757776514264425322611521664537126137127547123644724226216761774621622777771276712533455244343746731321332462252535274622357764557713746176344627541122341256735626223244761563436652177135722513446772562657233111417333136311754554734131254564526661174634123412275627734423166654175472374545764567553334654451261741367653463241227453257625143256376364732446461445762754572131167727334562531514314613462717726111154543716766521122361652553463512165466355341444512777165445125244172141775133424625735571374137651154354261432135621517541265252367635454511134536516573711446665661536371374151631527211345234633715545616314311572422657473166461264756711452422774261137457427535143144213465756376523671642616433741562147746717562163356657413727117234322434314623261145117512422444217442173465613127541412654237642725125474355771755126325737125226737516245155253166727534637362155246174771525134737722576424743567476166152676362314563446743421367267216476336577246623536161132261412252216175113615357267412541612151361311222533452411463751133357327562674257525766126533537766131117377726777567313255541457252474423336325365237556332476335675331773535463327215741371344744617611213153515436232372527234615616737445125551415656237242634425432566271757221127632667242624467637557666612723717265113374142145113173663275676526437777514627542243451762642434311327361164257364633732217364135166136254763721515112332372615524531365154456631333465716317262646615524162145211467372233252546436112531745467535565122456733567421664751531415265177344337617661751346522673433242216532634713111256141337673217442435611423645654677644724447523665467522115613264367763441313772441533644535165525524171242532117152456132757623375114241414525544713636734126567262715247632425117413326641626544756563547621623574225722773757455323711673776355671562673361237153544635244712661757357776731747325672335735135234261261754261213713155641563326645764772521643134542236425157134644354626173527164227263661775562226511422763613345454753763531744735767366566222771377676161366761561521417322612752732551727617776357317452744141435624725117127646516665762515652445156767763157632612517651546722447336445643747341513511666452725157614512227153335615173151254762763554167725267742562267316615224562312274722727215435566467272662222341644157111644433213224532644761265713713711454765327772365775735526227432676375141141366266771554417462543514317334574323322411251141434776331463233674237511626142115575541521144435251231324341552333221362377153562714157614762235657616236154324525333334725267746746654661324676423156551277373221275573736426371677465515546277211171563446375556535317265724756256236672533327364225245646453361215115351523642375111676533172314234764157545174524775662112434166555213161662253754433664126426314134552531766365141436741713645361636122312252667123731143537255242353623741347352745162335353217336511225452417625533677434755112772724663244235172561444241651742354754271624435575551364562766224612241423776557235374142432254736263335635613637476712347674277226551344136423353263431322142174742276572554713233676642257456754264255532133456756754362321337666374747364743557544212445577477337145273777264152674241731177753766417216135653232567752152766475237147162561775353351657766725553461576765154523151236245147614163233241657432157164711525617335542266264227425444255241122745632741766411454232657524525722476713222253331155243214666467741543254463735234757211766646732236455215421344642673172167773116153675437454151351657167756461276665441377125152347356463423454433216356362176333472247624271535145112642752776456563664274461376117473611122756546244775454574425365647151361335153653421162643471266315544577415713445564747377437452236516651461736515272333475554767642527775161133663126477354754147223322132336525131171146644362314746253517463217231445241671731426453624774225251215732231235377336542231763427542345561614353471364477616257324552331432277657676346347354317166321454665642642567433452224232774243533421524764626375627244544361544116161466262222125141635353431232152137756362473211213141574631135341446265435657117315476161373737274124677576676721571327447743773414115164664666747112255143554735556356754454441551665513257554341377175542226365365236455543277427441225346365233747614362622665622743517557263567641477671761653767447516535714771131711227224624567647423235626631734266112664253147222656431234447157257337656364416574447573157264112246334263624515151231455464215322265515177541355477546424236661111761617565523464541313125725146145225315176445132263515371115622545466216154556116467226231732117647661575264175735766112174425323272452111621524223734344717541212441561743125641244671413367427654742147442345553354315755616714511725773237226644316214676617357543353676617664424235735626565631177367267241672435232113662446666524452677667123745146546774553336173463442453761565551342137472213563137376764144621165271241562242564624433137632632451675654262337722365611774267435525312131265356626417526245271763434737767514577432323341161367732436544425275232563127237366262445313764574336676321335355124467322517277533523444611337761441463544664757331616416533643116254541337735752143114777464665424117334227126332734443372152634344371134246772176433173211515243713125533423643527137461642467671313257533727472326365551127736157566641354325556425273375317336215112337772461234155376237352215725252351511743347171633762313716653277452456723143127537757452256566634763674277513566474532747735512327677331472761642324522525416541642774746235421553345511462447433733536552215574137111157424377513256134365145551463611553372462772615343157645115476573724363762153511225223733574443755314723127571533446652233571717641232544535711445323756335447324557633317127264627325251134767334227652673723426451266211776732464463742243616543572432522536765443731164555323772245531114623566152172556327511146632733324664671117366227372317372564227726317327556361412654723163624617641512667525757255557267461263251221411573262327115125773122457513665734364417531333133445724164352165615476442415721376262611336654435164142373174334354444571455232742555774425161417263644712534742236741572421563472166551744542664661641272451622247736124561667445443563121224431543555125223151736414716737474547224637561317312244736742622317221725673224165422226713216556572774465121541312534436767734625215665376553514167434343331722542322161146427136261636261273446771121124166711731224744773337337531554364275471513277617154217164352171437367341661753677312327665776152271255355443642673725214624433653771635373576767371213515357646136332152431441371413763531615532464611154312441521131513665351517311516351425576713153653311563533775533765554556775352634624376765441156525362262111314676335134612716772447766361521212144741541733733116175744716231354152126323626227241744555461535243566431723646763757444274367224664446657235134443477237665676466143727144761334674527516317356453656673362424714575657517456413612573132274715455343334412243635214426666456236763336766223677321764752621644543216176737327362462766361456733354363157213151311426456624431176425133145363434577554437172222754471175735217757644471412633122671622526347256353713264351662163366541376424351662171637636244664547677552371367511773676523322767761145466525415475166147411711777724553426176747557365446636631732427162612617665734567353356342625623125375274776556525263121413275626357171511566447255571543772654513634125164137256726273412671461764465175521636431341612272252451126631512615462535727247465732744747712313251344236152332724222626632272417653277125442533366567453573154141572413351433153631616276574111351633251324622225277216166617756141361414165326157172112673771614154125435367315326537637236321125557323141221643626621535561713467532746267465747722216175166345421635563631546431762671471455227323712364531425524615155123636567277547114265741442147662356146275342254573476544761767225142672525643433613662367456412326526761655222622311436515466617672412566322474735762654422414464644724755325731521725577737467264755364217112374417256252221347646474237142271742676615741176772552365273323536625611516615425573133663115462455455427271152623346535156625264622464325523716443325132634543235374745626137774436143435213446167575376313324767774257162426256336765717452741752476525761725642557452436634131212163672674561645674757543156377526176376644147621425413631661542453422227623726151623326376464731274526521132641143564435274777237673454561164111551223754553566466125613723443521544243522262131144535226452744231746437556763711463115154467113217743731731342371611427266167521616322525551727212354462312375456212453242253375534373625154623543611335662341725355641356131316711155634251363121624763667732623647323131166471562372757764246542525727147117357626725114522316651364417311457332334745512652637775346317545417644251133227513574341211255717775533535161232522255376424225335777264714121213447461332664411111347641462513766126153351113235351456424766475371225543654376745773745445314154115763242672566475672336267675316274631131377147636173723173643564167362413427413424736236624113622557112454435777413247222542135212334462725626666214146312536261524163366161741752366337674432515123553473576675235757132575766511257626117116532441454635434314533426441341225551536322165426272645621645177556741763273155715162764152561465363551212511371121527125214442211577721261232454525521351116341511422432666133525371436541475547521165465371763622666642713561653773643463672153442336647317316715361531127335761125721743113675433627741175575711612627221611355746743243632523514716731123261765561225427764335135732745363453142364235343667573476573441177334652216142542413752743216426452157312215461733332536267742617125155277155362525161671715116112737567475223515424515617537452544634673435127652443225117246324127571755657655112544265372245656537745523422323476125654272757643746512263435675511216736234332525511731264154646677513445761354234231367776453253243577215444757412541557316645362643664431127161345422563567316572761534645755771654733372333314423577364162563741554124367711572141711417716214362165533426675213423474464315743254736411372722255634272634532166472334565676214777327623367476435772451247172573534637155735772471546764713354547322332744634775262761562227513546161376751562271417556762742527346576365543763143131731134417343323162537246452755267214555613245563157264142441257211776551115563212327743271426447546425536325736162165424666524517442226167663662711464242225516454777725615213475553171313164742453346226651317176516547256663122465211276237357231216233133546626557777534672535745562275552455243234226776161655424754523177614257561472417765441735571717772416566646116175652765445656547121771776517421317616464251236247331441322364534425455112235152216342314544217762541252375113434363523271531531775734274724456176361711775241351254574215653654522623112627765213574316713472255456761244243154343165716355574331336354111417253463263722611345371346151222236676234647141365125263167272426426343147253211124642252372435376234641657271373766314534717541613261456376437746777553265142232551536566342357241326536452675754141726744111126357144671271166613625613324535364371771237257237633423655322152611612135162226372543741674111272574111636147111355761251572723273675667615527765564713763374125374163254136746515216626165566336746354177165655317262177666512516343154253641512441541636627762535234652347327654641144726124217134622746117166564661374276637652445641663661647426556177164762326724272472675637616536645344577412132313572366457343327755544416521162532671645512144142627477263311565765143715222636221151177431516414317612434527433651767753736676331322555237314663663757463253276347526552473262647156125353774532614562732367645763565433122415677355562721116574263737232414273142727223343323742436462543364511112735261523137364323426154435436741561633155224547113617464337144212276625446222233525573227234655215267634466772344733446572176611437414162773231634311262471462535517327626252236677116265435671462533416434561547561326253143211453135771367435314556574171443671315114352226767355346756223413644365614247146125541347353524212637522345362263751224362654365452545662411736445577125422242111274663145141125666677553166211231737234752173771552627246157312326543141257651135221245164125467334551666764177634147666311257213677157656376461176275735254264564663662511477671517212147557336715313575644634715646163257214715657126723315717674414731752454352265256421331411263576714143617247655627764126234623525341533646734426526127664447131555747336221673645461557335337314211344165365752631716733575536351374724542357634134141321214231272715472547623346143375327134354555215571673136154374256152517264714474563176123565372326576535237777356777711476137252231213127717155755657127733762214435137142756645542454467167211753557564772757524173541546677674362451151355331141436414473464112467675633577614147612252627342617661463732734531432767163237312411457153457242226515614246361541525533213236561432214637567645636513145477245422642336314412175747463133257133326653415245456164722345564617232116451274143652344671461251274316165215622216542123212327431251211632434666533156476647574633153147322112665273153736726573711434376677275626223426321361573546316316226727533275236376547134175126742544636367774733711734434246743337623651751454655747474132746461564752157315114721152674717557635433557612532125332523124262264637226317462775441713334764174671622554523133517111354144664245436525361573174176223747336163527513332472111637443157113731313564746117411573651356467673734314677621562532237464334314627442744126374451615754376131532767273526446715316773533356343632562244177712453453637275242526775321132233411746242371734216126651754367632737554114216631643541647376452655544154515572677343547416355434317616376247347274641572537412742734774732655615412672155725313617326711177772653752351752724376237131352353532146473612274544557563721156532755526226436122417557161217764362235746522424774743762273212547754552343525316613311632152446534122346737551353614777275552326737374276254411612321343127252265126645574234336677724246374522445223172526352141254672531114557312522174632156363753126457724766237431134451271515221155257667472546753311441432355463311467347635623155322575133572123362217312164572334525321667213442773634152523647421163153265642731425132474662734132451777453666121643714473615312667666744334245222634274664316674563566321636562164474163634524112357323515375473154573167531152321353724443314633323722676774346463775552274761232625715725451221531375616316441724535331776227513643425366243435712636646461553136472131765327222615512452637253114447545311332424374653156274476154237151115471721416624633414332644752263733745226212576131574767456676271415346151432344325623151641462532455374537664437112317514763156415155521571233245416477266613445342734214347664346375333215561225531153617577423264626441121142626133414314346655257213236334626432774545271257715726443315761534144437246475475377355575364461164547574545225744172542372752767534514357112516326613144442547633314753153335171751476133321473735532147564314422561375546677314767273353713356535676462453473212241567171526312773542116457711235414424577542632225447376316531211744433471665127663625565431452656322772761574573265643577655143766265373544223643346717774511111637477153515262435347347727131124164773464374456374247142255277717427667317666615232356574324425467546416575377223451422763436315353124164624546124357467123764511733443246522543272247153551143356714231124461111336245523747414215141153623733256113566163224664467615171473722633222141453741471561217457642145457774132526777746177235322536314224727313172217127132655132163624321341562112725742221744243625447415555765377774326432146432277347736445366475747612227154213331244121651422326217521647371724142555543625147761654141167261766254642333757656144557566675175722325541746144657425473254174566727675172715312445314543342732643723533644574752474167415711174516762467737524163473454156377647556114127162571231477124744741736636347357537754223146633237332226253211364362614327174537573116743455524343624256376752131553347716567125516335275113316474622722572525215241157667212261664757236422252716114274326545723423347311546137647367133616423155323256322245123362265466527136662216752115727266376255737743633244742463155313354263777113475713411667276737466116575425155757232417431343423234215646565452375546513551212545255653621355526313453641672255674371752711673444712416516725675244343645626363674145125726611334262445341177461174627431412445254432156265335346731673143427146611126656511346242242466222247747253757732166673227476411736632657265351467256572541523626472766116643672531621716272553434623625571162456541753672157522114577257566645512716417524571721461427467463244556517462242243313565644513147515456335643167532727673455761742611553431651535646737474164371463537214362535232125755554374454731151426763515726634423754622315314565554745547524256563164316757436273511564446264734452113722665416177146623542256624734436736511427345241615734525132675611552613751664646552144747247741126216613163461346552257375461513345237646325451326655574444416142776672534361533411377745425432633522775345421762211316767533725267567324265274436656456431634463553624334755527415452315512262657131664373765726664136777125313317575335544447336741542653413755735551446174737734121275657365177746222721335421144264153123632737552755227664777326734445733135224411144134635576513367254471322664111624317767751326233713736235146131472462477421454765462225122625775355425461537335763215626222613447323162145777677231723744247524546155263672762724727313246111574512332642131423234166472314375146313566672745257766526167536335266535536632567557443341323257716663547442611677643166312741753742436364556645542151713271416774237276544332216324526157327211634663541175337211654573434466563252636757513523722472645315363627114611672145347517713654314675715477566774442533423172642333733663753643321673155666744267572172566764327577125773677427377611177715537521522322611744773765775715552543525756256344644343243643422615271766624651356723331726272452272371273662137632274367126365415646175464777753274743145113554342152747537446267563271611356113332536512567516475715715144665322665456746637477372173617317151231117174766746666177462524531765117717516313313223172354737227637542613554775411737255651672656642133417221663755764442641137725231512624622221121476663176111725176352153475471541347557477563412251356726557634772756127175337654122713672666276374316335272277613725414674634674245762712143133445116516272572215115371514737474316166117466521432262254657627352171122151123266425742547534662772214432554274147643111274552163375647726546342346641172467666216613725612447773771277345324256156452143427316717747163636355252226444716757742655755247275634147123525423427615572236366741456371753625167151532165714521167726735417127744231347231522722715621352465372125261275457752154636675254614115744163522527135522413237531343146546231512535477742266352476722776522664157717775335162243245345327526234125235662371634251715447421433757572462631614443534427362426734624264446641215662223252325337632362726674635514636255317243335564756647252724417444276322545525223117745331612655316232516461113424531355346535465421563532543215767736464456126777261533627441137223162447342342457432735761175137347613551776154221513323524346312474141252777512563226471736766236642161277251431163723236745761565175225143337355761475412111367176621446172746554515357561537541433516417615562354713663145723766446411472252476111477724415125772743713227367371441453135736427633233556525456634711313716752755371746621476463163234635644242671165151231271577233516413126226336245372521672616271131433365237145614166356546475572556775637655546245163747516456744555441435372237135333325374371656433476337552466332774524244233216545411477656572772464271635255733615154141732333511332425254161451266674617132522546117535343311437316717624265552362256173324466327331434143611247565464737417443575541356641766745574371341375746432657654743557331157125364752626725172676164226235256714511674616427677526131154512572343543135766666631555563343433656334756456354141326716334676275231526474421746177171645434255777253732465512432433636362227627736341617377632116462422634635732566641717714315264427624217113352355347447763521353455766161336653517454552745274541451461433312662631216524334721256225477122211573534516143544562524363467622672365136143327617152611256242331576313217532632631723147155221462423733727213467661266213725265331735437357736625144675317247613177532471474357174655326432432143726266436175774573245272445752354373246146557237563473541436573324537555433566455715362425316647324412164534511373142375136713156417726373144274411632454466674545531471725335776173251711717464251322423245156766225436436476133165436763661561413145111652665214747546235414564112714212467111516564327151541241452263321333523363724743126244221431762126467736421235446464215352342664634547573625463441153727245444137423364756625272471612737564267143411177153573134234426375115222573712621211625247512452364126375666272232414222272457617332273752672234475216427675777722241537136361621542514575274276423677514542645712263743473722765456426274477272422715466677276144627631277321564665534314243241542424553575754352125457215533516661355646433162414263373157332237466252135555626254475123256362441267572247742677357261575435671727667124232321456376456222112114274115637771237167625557161371632244747747263261355743142163466713327314343663112625332452121613344316133333745137773241562564112552465131326143242466654223643722267172235142357437414126324725344254511215543527461174735446274712372424211663631651254121747532672244755154337534753364572645244377166774431523311657436633441111226127674645276465341424761172124147736524243213746117516627142557463436764414672613754747754342321665453235615116375762771525667145524236631431462271417563451356242555557733261372553541276324231325214226535776264647666622344317121542426237156533522575632462514662245757164651132313776355645434647446455244246517721757533475262337275121446427632737114353162335445167244716172376476734244516244154777511422741521515243624551357757647113211573654471764351516415472623154224512241431716156621561742367722473636164264171773143151376412541244144573273363677226366326414627335724244673253324144165726412545237663363721463276515311252326242132472163221432212144251324257474755154565732263476115331765126513331727613132512422256454457232666757752356536772321275734757145734141276763762215335727526442355162213223531753415222264131375275537251435623163725353665726646331446612364513126544243135732576732514634335741635351665467731533115512254752145672162737134121523273337126343732341654751463536757322435251565723277665743327135157232161336141372361166521534343365515632537766125334176341676226176662744144645512232255444277116675712516214765111436264614714715575757662371223256114576271761433341231562514733743523443443626344316556736342636211656232433451721577563331624445643456722466551741611353336774557234727356144332523542274175463475211246162614176544673414352523544571417712511376776331165251626415556546111252251225223151353214171754766113347361224431675336636624422333571636141425416331214125551125574571575736511344477711667172662331411275365332111723223123411565726757577342644145467713245513274273363217515312151151525266417231567222172634131256441157121144124235355537244362335443355462274511246722737367534467736564723464612514177146131577674444755434226367777714736175256514222164517346247252754675533425147246127754612631226517372735532576577565366561573555624221774163643622442231311677552274364674377763247363523522571627446741577677114152424716366367424437427476571117263753613542615252224373344466314722414661252177222753217756627212543243451661623211643747521652137453721117213533721224367465672541143263315571213244764743624112226555117577617234633446742464576454275264255372775343346514265133453372721661752525743724443256524165361356553735642244611236112631451525373776554177562625627212257333274563552153232413216127456572121411765373525667211722171757353334534363736625645751377464513255531276573455242757727155547755641661547226644142155763647644421526714127713521136545232237613765765577471163267244661214274474113153734232562577276316746417121335742566135226135667673535651623527775772525347247136522376371743653542115551466512463624663651245422624571757622771454732431555426523313577663163331645227366141123363533622331755252675735741753372564267432627456745451245352672762512464657714522466614331531237471756453555337416361724176232113271246424341322351453164116227647664447273344473637146557573571566343264517367544667545616177165123541233371265543637532441467273556563723141636123715153322341626566272415571474715624155312574454374446325455266741367137377147517264726465315223342265435533573411222251613544171337173646127471524732233427237474374671514553736333667342354323754453545133347364562416644316715352727532775625273545423264155612214267367251611465141467175567112631677516777737553731741531643726116157751155743445642125211414424433432547354712665171621172455217454737774476664365561661135645623417421261756526276364416174777432473512716651611457117137447412562144334233424552573576553524772217544377651237416767745326726357344175153376247246244676661536562362777227255213147546526612552171311344451273427513456356525135166323662122454345674541534347156771461572141415275753736553561462631711215466225114427464634114367467522367223725566526323744313343435674727222171744616273544211544343235167377475766716263614767334657566427566376266726417716151556525577547576426437262254261336222173256337112744163321637775736246475422532147557121274215617635514356643747136737267772472466147516563177273116125226366635542634512122253453466172641534411514365417724274742542756721473564213753165615372565153656125414744443761552213551356655561441144721217474735273432227116143151643174143647476732265265273522617211635212242256514234144526617732725666774423263615233775671774216764765327545237763364255254774562352224213126226555173621311177446661322624547326235431561772746536777273657722536412471662177154644764352365641673153343452466154453212457243324532156424673572257562637753375161377343733422737626121127566476545572276457744746651174744774661541752536633232126337734345724261377552446172315241154611424744273141416326557363411213246652272575756617575425157361525512643734521423572355174224216667244646232474665213633444157755613371313543241753255622427316117356376754472566125717143275716754574512341521534235452662473377661453776152335761425725355614713271461416532331412375733425227536514645631164136467253526357323115671464513336275323516343465115516656346712732565146714343145725613457367564752565565233547342234563432422137276165771455412635375652123236167715616154625111652537632266115216771516371111216552445775626431342332262274424261446345227163121463512142575135311245157166472532222445615331162326124133114267413647441314424655567174316745717475341572145532371421251155667626354423741415754137255473362254112563157232731534462222567775516765472426531674343576664675447357711354146336763334232722467524535553277124722466113274553435117666217333636174114335113446367347361314671421142616436774623757727241721174321412264264657265167124227437762133472712517527345261712655565111547752133775623552653137727537674672275415311775154477473366457157367151612772617357321667435443413417512722312441572572545413643326476512643211351641735575173424265245422753172266361742551723542266732227641257716213451573147366272425411537531462731117425455414646421664547717323444526455135412463453741131763447711667363234414741464471611154255344212536216624752513564511325153575152773764472742322714735654325123324634474527753354651556227643376672233714723347746125157734474454527212673231345361765162531361752162262516643562571427514143142352471753656236411553554352565714353352757773745723317135223134453111317376674475747643474176544166327251241511415462643352337146611635663135275745233577724127721124724337741645471657763376467512373746643727571555653274154234363766644256335374172423237553123531526244176737441623237276621175356274714616754145562512415414151161562152161674354636176537155365454671221277145427331175223753532121344374472244277421153542734246563132673116547573717255567213163576775377364244535563332354762241237677627344721671344462163216433433525563276357473743352573447112365244563522452755424565131143371226515251337444317166513617151364254162136713553553534736753112437137443355622211555261766361633647715442135446634352551417513767171535142617572231515657627147247332147227111423475364366363327244567523643616367126454314555613263355532224752175632454142723343767453765374613416765372665133432477617441133475473243332156431662662627744314754471744352125313471764171422737511574222443274645753554626122272253715163573151766435737542172331621546127446534371273161272545537515526572456726135543674141624515471251517411224771467164156437376434574435551352327341745722641524274637415634776132136621726261617273355132431333547442533563545574222635771235512665751321715474217312123137622777675141131517322362573116171211371776222413535764143554565677736747652132416375622311157737623631636152332152753223241134127574561415537157254566222424247321711741635643661357361544351374364372465262442576526672431567237767236745422572354244411467512511523531274444671226777156121311364737267534315547346455251221441155213267637574421477325356434533364623525666441521442261243727246647222111755137213543567151715771714246335151162546735643154754256672545353462736532336744433751647733562237324317552556213521515612377414457771766233255531571463513655223333341275613565546615367655477734362521373643536421257135775611531622152357632664621744434335571563772236121271773766433256735174575637441572671267243462365215756442376567666176724363521332727764335215113112725364646172215224641362712414727446143743264635523561651333625663516213534236277455554777371171442373156471212351236637676127363424721671123441554457331343472145457457652126115542626664124427166233132243765633734623236571627434737155563357542244671441642614417336715443421544344312466767522666477334577563411741221226272552331355144734464472425636567135261227724527255614265652637643462574616262216671436334517474743233614634166667732654435516314547232626424222125324171642674267273475231563176742542647726356476735552631351265532727633671441334212416545573356652555145122266671141126575142237315222145254244361473364711233364127423252517337577137637653213735777416677744614737622771432634424574665652254757751351515671454743522417645334342517651452436143424666762515242432421456631536111616575766414766231377372546361351241737611417443473442717546665622125127252415666232434521371213315136154316275721363735176116457262277622443335373767611413467375614776253576257667747222457521212773731372337335333345524676727321534675247213147365257736631554541247754616322262716673567644322445334135766214415376555642474532476122631442273134722526756423764675762145356173576657564546136436224452226227467365354731745677533277331443323453317613116677553173255222663222542642253244222543157672211533721175423157463746354454664747251262124342422625454723512377334543655422764156734547717241173657155737326624626372274311332537554357411364767617237761215377365723763223721623746645156517655461766311714115471376114166753522637562562374734264765465273555647717175425131641457327746335232242253126531736164116213157664117425737524727635347162516674275246643724426523247466556346776514527112665431166126673541547321772714363247346241741435572544634134664212337164262324114361654477166616743752471734354174171631557352367664145237574375725172366425653751454167256737523243411443142336464114222124276434174231646172642362675121647623322746132732236455556472466457723227143247563522411351537475576122125551641223565534616555446441563441635656345717517476332117167535612476343155125254721321447423114245212626431147651773141112533251712264146143247231655676142461571111524442156172257141754234323435517243441362577615623435266532312326774233414575277553371353514757746451732473223172431667151645543417514653275525751237255442326571642241661452157264322167312371354577657614731161413732653172241632711773475514676372467171425427631731272143643573632743116551554757117225571157445632243731176574514436217325463157414726737716467233164126776225165456362263133247556261267172622466425654377613672422647667152222264152421513113444532422446661127526671163463637473745122771224377311416756351331625547747172532462434433257222425262266176463631224156365421762412527541517714745354373146334465551645127217624562122535362632526625346457452227442615545641223216652411446672735136714611624344322473547441535441452734226563216566143217273636775217622511232111715427357643553373256547663273275131766753332771417374463613322236336244511717142711447747313636463416777771775177365462524121776331231347437251317156427733742774137163227254415433366473617116533551174732573356715744246267233427631244523261752646464222235517662726371736724222252513637411471614634746632463572752445327561651245741635264455743327751137124352145242751537335656565717632457664527636111245632512222274553451124127747155547132253514162436632355362267155167326761327663657276734164262621743734775163467312215614344536532126436246575646166661315157644255111145734622421326446255341666511725427273346367345273637727777762533653117757175525127123123123377754376374373756571524236547277116635464225634574765311266277317173543355257521236757316126247257645262621764116724754777624633537256557646241153651241334737372337234227245364742277322636577133746571526464151362225511477324732572664443141371522374434576261332631364511742733363737326144311564533313571114343136177725546535227451242442726432341432316163514563726154465331464737151171361741232251527353533326344555523727754362345413777223167635417773717345613455764616315371152143435372264533221621643474611236463234463246472674172441243456236652221556515716315463616344177765271365147737662341741567216275715755461364454511776165125736427235674733411151352162773666432455245642222241466615214474346675532227542757225727632311655536371534517176731624617741246731672144435436321513174112236742221535211755677151562373436332564631551765456564644764446314562266354353231171674214657577247466234751413414673324111161215255211517747322113455155255375223244224222253565732556375746671115541363411161565642673511371523317435715114252156457621161343573547257162411717744756166223673351275314554666674273212143323541571432711477457117442545216574654627211362347352317465275165643446467436652617241117531456253617457432317512525527613742576251325267312462544427317715164122144653724163447722744754464276523211524234671573111476255615561111374727577567777241767661447441671312252142261276316264431375476441657274422643413432165135766742141762424671261424734566355252555564637221446522325663532341425375151714151132455353637165147776575617234247515343736635551461452234267525665531135642517655123446764155546321535331412461313647657355222155131763725274335623617644457665411577212631465147537423262261643722743337575211155231651266354566162415365716245161255264223573413655314215242641175735541731462757427252676274274176744156236525571626115134545365163572424316276261172714572221147417563325244152273364644175212353432753471716226445143553474632265463133144156633557136365651171656353566275261455551317115336413342732562371456344376427343125562755143374432366735567735247736225741461735264166756741676761614327557653413711777514763663755416563452112323523515373752377737617365476641233613443732371265347316746743177367645252571727465415323227531457554311452544622364227442424473552372356643225543276232415264542663231114436214633467731546234433745257522544147527423471423166373217163441155237272451512233152413533177215147756125276511227361753264216712717732463455567437634362612613125121477634413556442171372663364177247144615253137341471656315124242155556364617733714771643345162217754574274271671272466713522143741622242672761122367261554751366447665256344457525544731446465241331146613452335273665121771535761114715353525445634341542624414526327255446274767524512675546331153267633654352325115375753725143353456134471724435366265556464731377323762775547317136615655361522454144353126761173774572337573757464721224233234534213347416675733344567372636372733461331322136453241171464325612267214456751627135254423256136256267645432634731455236544341375125212166261764133665642417431352713312241247754342736376353372612134442476574121334155122341541155523773644455571126627155232447213522126555325541332431253431543725246223655523565632167533677273627633237173342244454436727146441435647761334442211553566473446572377465437275435574153722356237477337212223675545364665723746716141152415614462212671413717721534743174675453665166337631623716472723413247547465312416467162742245515733731666537677456566762226177574216277743143127176616141142732543563451165317517512415513625113561137257727762152223175571272551665612524524632263613352513752151642214577264413175443523223347533155534654235535362555116354437744627416131615435625335364737135411541465646424215757526431535215373542335377622427413445521342212556611531523766741276152216436674576642735433436567364526371252742647143616242721757422451417714267175555473614723776234476376216336115754346157456272552423235261773672236134262273461722266775115564637542272414743146456266177547233117426771375612652477327364316631773672132533721162213243614677677261564157462617122547722522521651637346374574515253266441534712774131762442743661211744231521742556655113427776127234757723236475262714355444467413117214437376226337764432277232653663347317322264154631157114361561236156122347166552577511231316522347153417427475644634157211753317435666631661456742556667775336372277765255222127216264354737651277277724447763623542261753752162211125551567751335663762271417622133612761776142521221557537423746227426426332525756724176152545361343225151334123735545453727447414126533777513726572347742717177573357767631153132277375567516656115114171226532162221671551435347361772123777315427517666132777726126431141162645636725522721723646513736736232735626472513616313164357363126521313354534224755474243272624567632256522334142622446665247637712136622246652144271177625627511114615123611224745145237721772124614427721152655463117172372514364747743251537466717631167442172675711327573443345341367435536625425751621375632457525657444326161757153373266445336725171533553752661217647475231244753747415712372334417567324432737434515226446512254134265521734761532253131712336753372263367777243371124116452461621737477516423773214626664132215322372243176516136632417222554277546663374155761644725141315155722717437156644737441346317115626231264212716372456623453565361373323133233174443344713461227357512115421741415751543771123262232354117323465263451641154512725363614647326246473477615376461331622477441274135416317331211443434716643772516352122246277334517371376575257714336564313447137267427217136736563541112547463312454376511325264447652226255516743523464425235512617131657531446121457112746621212125323366433335463415721573723146777326262635375747431421114537336371321513343246174255357744711557772152426732143461337423115172172411562466773252474337751452571133212451361625155612516745134351672741276251777551731627443777167364413332531526523616753363372332674337474656641142736454715341547163234622577623226275766424477426732433774676312221611653232164161243654433465616111216421741557574271635375757762112754152137126546742671477417527126534647553536344524775236122234277674543125763545254761613126556536323537445612547246447663457542463747713575752777734623212255513117111461267467473266416634375727732211327476335665435422763555661711754723641546212744353542427522627221616663624231755343475546622655147746241664152725356733736135743737565765474615533346633656453747137736417767432167162361326524641534464362347545544112235121574677347166423311175616232745136525651552515747157641554152554446224372644341257243421137215751614343521255412346671725757545735353746765426152753265652637433351654564446244542257745332274423422217645561346565672425536171553613671467614463254415371111357657346374366746463735665717156733766736555461347753743434451264674567456225452457143427166224714364331153622271114557467411772542164213675726237614563625124361517142421333246247735417213642713737112346664517622462474761261665515131731312363632213571537716471374477541767444655246312323363314164747257213612435367522162423732541555417171234173146344516222466454324224341757373341622635714742363125553652522256437534344732262564352751243467234317643355674155423727734373236657544172763467243544452272425213277671377547675242727136412242562553622767747665176773755161447736227527424513213214621341416521433575457241663224577743225776142522361414573715475311624523431612242372142454224144346622356457663133441715346143571572121675565271445437263271562641154133722431576452311622717164311635346412663537777163373223745137653635725472311427747371716422572254667537667643737677177643222341147713172267452453453657172446544654165474443727266444564721715364712553121432351335674417477325727376571744212344235615666511413443334541153426233623412374446124451744263524431724475635472424753256674265721723463257731372177326217525327432271427432571612743555647472546156132276457657744433227257544543466677454531546271523552436274553434471155321152345613267221565241512526242461525427647561551465435627654224215741145714171241773666643466717613736531362476617166143311313274571564722272153173771432563113663633335654763473772136215635214617243722432711212526341143664355363765242444664236764111566124764354117353652466376116255261777326747176573643672412321141247163176715755352641213445552565616126137646464561713267744324226727724117667446647155762515226132235636735761744763573754477322435232135535622422772376746771244161463236631272471532435426543361321645431457727273356221776334456643325474476527255776276732417375536575145127745546465462533672345215733636742626476346431721265777513117675277247774747141267767142553644364317327714722251347454642226645376441441244361436465251472277121774131256715261746653714343256455762217712521544522234551716744653165175362556227534171222227614324743672146761144455577132712345751431646635642421262375477743541774762556444725144264134741425525225472357652466125631436471252774545713171247253646172653767271646456766123231536436724322442437274274725242434276172523767334364774467325457111137213622656314614453525264375421543234433354155434175624255727163317752427724561277763571373323654563735737516546635126356612167556152565737624577422347237457336243541335427717152211233372435253447673434546443774727456522331614615261634672362654734775131322714532634424643142535226143116411163366721426722315731636156731757476411553456577414571327313521561431527764645617477532574746135362543441235737676652722437352277355712246133723771113465332543577472516521713473425754627264454513775546651212764663344264542214614572467621726575723442735366747437716661163733546273316755762736626626734231535545167765563167661544446264466133742642517137726272657666325337524137372475417241535534457172175677737211141176151634363372523414427547655164663155425756343624276253141656456775647346474655275114331537465355232116146425356261624716146574311541555421165113276576573364136213451233352754463454345615311241516642266564244672237127652616176774213173616367523436423525524515136347631557633116151532213764517434326315371721526562123322772747513443214477453342644117417624764242653433372536713533474315174521717342763156161334765336346131231265565113712754463237754656173122711533123332777412427115116332643125341773273144315337232175262564332321732347612554671171637177542614111346347425224335317321215576317455272255617432274347477251111155716124625662123547516535657754464467253742354641622575452352737577516722251635727211756475671641713525153347732154261242723126121574311634541767576523726241263433255341135233274267572435444121447273417132553212251423372115162112544466755275524676245547256467735375312132514375131614633571565436156352544373776177563153333177614643127466767666646265621327221575117156154743741767463514636636447556365673316516564156632534417556416115357332217625571643335572442264131763174267747125677341614742546554273732635641541474555361635424735437523421565544322147234766572235221662641425267365411221772324147335513664573542214435545777424551233431371645116443437221473241274456676764475553716151211536545333213273653431143757171253242774324745244476523112122356764163425212145427471772324442342167343165461233372373536472537636773322167324644213577437673777677131351313776426276142143443444541776757356227247245352626362747131735663615642756514175745331345452341533437644636347144771236673131224577573357223327627133623137352742622351312635546542725542411774277444476552235222535372643653574537216165322143335756354551247523544553315421753662511176113264541215457221437125376515426655332554411343515511357221774652424572234277661542577523612471543213447166154232511563175335322754427337236661242322731475346645276432456345462615211367724711431474551426254446377326421132376455124376124572431453336452573347263612625215441526242117477644772263456276733716633144175251561177354275171572375622431241437436475324745125346141414621754721777433236747615423573255244736147173426324375251537155614311224234466422763621675612514156117524272745254446646321613427227313623227745423426341543774737257452615672555116644121317733741617271672257651546351312415721113132222431335423347571643544756261513757124765232372576142451471553267373662515746325223677731726235455654235732564415776162173136665462115521717341241141361674574443544446536473537734274364135471765432475346631745364113636366315261421266253347116527174133174632765123731265316177221523734536736451745175625545656632345727513451555256651524322375553344435773151766564647471632477633477177414523463161127314464567727147722473753452574526174643656554555635342511752533353137525363651545272562776142516122165735233477247417626433714727347142574756172743724677371614741646235733553667363743764266662151773567145443461156365715614212212652676442671126764666357171222511617553754166664453422322354625626574271727677266627152317762654534154345426455231265417515613456173421363337165173754626416754764446516131351762366151723631347714774611135135273272365761714126425116111734543273323121123635667411332544212441174316422724514665721265676253453124666752543242744162663617145557156165353766153571166351465333452261135425344523723767727554211441644576232614117475577465717244431772735216731611351336221256611112316147134335362525567515377511142756671324143437275345115766172361167331756321241766577315216536554521716542775765657517441215772543755723222132737617555716425774411114336543635616775416447341612714546522126711721463436363553755343315536521613162335175562251724346131124276476622541236465577235232443152633436773737766556671325551167463635436731141615675747416636565251133637133134515411463446435154256652565162654325473757714423151146235145233676355764155431756153175513435126663563261145132657367151414337116665224427124323461377432164225715636262374147475645622131662562345374524241272776561764762241565334617435654755633633322655634551352424172677374776332517322167236367171452422721653736757266221761117246471772767463251211124332533667531522121177436556762435712367343426641651624612512145546676723375252266457742222426113713776235744272147244366642543154443377175526134162637623172517154514624477414723126211621261117661352133174466711633736746157246274417626366377564157764613726536277272142773741477375165357333363414727137425575535343172136464726411533466365232776476622551373234277757525432631462464633752366735134776553146116354656365435231144655532145641476175124577434537135511714712753663466165221574417267372162356746236234751127562521561766135123156762477472542623711117233156553343522651225311623134156454222667151335551313464611325364726274121355123355525315457375617521342577312736421152611741541523551731171264236454644642715761556542541677313261555351442362336373461541573231376243311646113733372466656271432265637133135337671751655565632161664616213647747136233773577716214576426723626643565266455557371151713576262165555464242117247276361657567617554314737352466427345343423513671232626663123174121545227471751113376264677126427616537411676617347266557561444435471351452433577516475463621363724263347524163144725553255275517237574455265462273642367777552574665233141621731435654555433513372134542734141213162451113515156362146333147161561745757437335274472445742751141144753627763513353536334632155272667263261553711465427713321137437456175352563633375376637743716764563413561264414245131146547335125556744152634351254362145112723511314733216653763522647451543224265167311376714366563531626231666415456677471227215452543477476336114113754167127665733413342116111411126536541537444614152372274356571355332315343133641717341177647714447671445751445546612612677671355455412227354131122323673674732567441762631344556777361657464652616616272446133744775274132531113714745272175612272111445721122323617436637521652164237741144276571633537572671117433541754415374357624773364375451125132663312757732333752522266361173452714271314547746112447376416755265615636413316331475435466365215666563533175132372754524563473274764247646462513111473742332743453167764723214514564262534721366616675371521173662371555251371361151571652162551611166614745764172252337656225325544535222732542661235222254716562335257552636136352774223614512136543623116131667157612273563177654346556462552461461572157556455172667536125374332413637676653453543627641377133274467551335764451654531762665326775143217117456643336526626551361276627642511514137113774652722142135221312563176227417116411535731553614153464325455577341323136374555363523164723663537762475435723551132452143433715115456213714262375644742424636547375126326135365162467622326372222145616614543361541542774623165463363365644372467433743337755624153472276626175241546271117562277636166741667474547361671657116763771616774745421561651147751667257242151555327417665771175164213241356535367347337136247156566224251225663637753766773721671512347353131433521721711224414475622547254327712273365526266635427614623466366617357132151143515616411157617512446342556654245746677174176146214151335323751654545556375113133641614446143222677555375126452737111665671324424463124736674116231327771243614453676463264514527653664617371747436366627217762757447747767164131161753713771316243356255365771127235535125257215532567427227242365747553327241625213356267235554241336552515711532157717732571136351347431321575114774717367472231254246362451363654265123254476435251111256416774314735464134716625126355326115557163733445745727543461113125662571275441345741725474425627577761221665112725131661422325315215436534235437343451514147571422164647463137254521613226376332652435465717635411573725755722276432262174767641711323137532151624254453762746156212525617716171626263451656574515676556551461644452137335324666566344322477655234446413335124163731474553632555132112435357656353322116413762515725272736724652224436477766357242162365357655261735614614531466765213151137765261641422716255165626323337436154332565776725534325241613556553227577377263656317125216464441163733663713271231354165744311511225425125356563721337225757132353735547476264656612734532445513217664735563351343436273556237651641234622351324761613157114171255212674232373163154573673214332162342176426136354134314626251467724324266172727433164445364533446161527426632674272657476254527347412455241441761366347354637763644272736762272341115732516676173532735545166313425237422473273455751644552513255672554114346623522526313555174754242643311173556722542227646334761256626736423326514727613657455564466461434155637332334622666536215143376615512456612374572546366163514564456723524745334571346255635215753545126614456127273122774425324677511313742755674326417272744423365535233421222544526535732364634417334576721315776553446616372743176456361512211156433313164361571557416566176225172524132561757126157735536551477641265433431552461455131727161744253637463451637765412523621636454656726355457547221472755251727525417455132177232311627436651532263231744355417531732176774741377533737376137213316631527235365341745114717747361264247372727655651462154151771236562621123213671157265763774121721373415136317535464354664417511632214736761744422351641312363547762474372567241567553725363537547616356726653123111512231514672664631524421742353425651743533613466442123221547223621114476771336214426157224257451461221732165716557376322136764743256463672414362332373475315112541517711242571744274655326337474546657765256463114561442266325113177777625563116665631256711623222232224773575354757774515667373536741547137756444344635433564137645713735132665423126572157663557362555262561323635515624713371327515444512754346227622223552625517263755153577423414637316661552471775673164236476273135623762232441132457163623653256657367514741765342352644242567555423565153361726254351775265333774464272422634542116317746462762547157323525263474426333312523666115141513332572346212534175315325141113346426764674761372233675472613147723621272771742256555334516132134437656156364512471134616521745571477524543124464567261744251121172143537131617257216413131252464572754771262221341213535542172652751567776121256476652546157234444412571623652412467744551575353634125377575146226214562742567763475226315122143665243356537535214146661512615374732476353336166574463534125765567726764221131111477752465254132135125657163375344352621556152475326125224565312147242316236375747141774352714222357511433274117115274642354116234374351777417411142635264664527141615615747677125471226675357364354156742643755416447331175225753471374461166531475542662514313653673433552436576364663743475162561235522155646515174417167517156172653762546427246611736727124724123511175652616617674516427224645126327214374254255736571534311733675515355175432326275462713727416177726725472733554433535237217727133625566652241673366172723135257432421277433424753654166412227213344555517162466655455325551461134513365364543541377722616665771562717557223667637533714623413571713157213573555432143534116566776215336615253621146411132122612634477367115511625477623225425612353371313164365126127453115716244474625144512515331475127721555225621435116351224355167153241674555637337376437266675713331337675561424555527657537342615631732427653352125212366223423211314455644372425347475421762314335723611237512337316252247512135637317344335661513531664734251754676742415164355631736533351366167663135753321174316253612651661656363762424435266123475773761756775414646423242163534234533641643323712654271376143455231536613246656744454423426766513766576214772766443115567566337647526557246446222623511457413411353131256123654247621776737471445161175111315132225224127261345264315216236743355716421542665424144654577515132643524772161743367745535676313567751551651145413312255746576146143331437635575247356753532557454117262356726632677515161455313135753372175661161232741116651354261412712412617734231342346475113363675745336222655123366237741311667414137762251153321334251373372232654552717216447574131352512635223672212234112153675143424627441132244567317425126642274576643645272651711764465461572261144342262361451567147775155374411254574622671167163163677537311336175471767116126434734611642776617457466517312365752452657167651727665557521747536615273313317572451346211414471371732463633673251375237271731777313443735346663124647516773712153521224751546252547627511122437621744541536565152744726132366352346112276255654167562574723647716526146165744362241437133416512374311327715344661633557111772322753715176544123316763615714247435145755743355615575265767414551255764651216676567415315255734152767456567367356217131567473777366434213233367217224274233444463426157464733654776527144517266531546516312517316161114466414377554345277541571526731377341772756313243237227263355325353353441413121333464424742575333671254336637674144615412752425175133666442531355646326414767677422772546712131616657532221121252553747632156151635711144365374663356242467265271162315644515273422247515545264314534427211731413641712576324156441224245341511215317466331137714126554321472523344314246362452765754476546727375136442412647247754415372364533236713355531556453225664722575222133567243431276521377713372113336575523765275761722123353565217261142351272171213315743431151271215442553662113544342615613133253717366556176444272352155451715426445324244212622166374243243724652525351763255465425732366751556722557656214742415312447445522534771777521225476231365432275341741241313335276721161534644412617744166422342145245337634415667673312254471625543267352113613573133351722723667226164376667357663321414526216221147477377424424646177552312235343314343316147443254333563176732374631262777134563126415135722362745274314417777322163576471746243752412144254275525115764151776363653251516337121633332146356116364714275121732335661175133754723435745667673237725226722321122575213661752475376122624257263432153442656117531542744452562724343627116116773241434112451664312673723624644151325736215373134234435122675323466353173532236662346257431364642567717263516565731565632162445734624653325215777757533142215612313111534354743151144452663563735245321756454172216664142421713541362477345155276265571154354731761341376175624543224431177672672135355365751335767444543624223355314132621664564641215677323567422224526626375751713473535224365411153135764563663242535357716666714317126664154471753512423272212553564353177647635377552173223471757526735121215146134245477237344317113634746554556213662776622462474676462351626641146437233571632331261527512576524456313652755277427572553734615354215573671521564545713376777634355136535611176553343514523416245161634436445324652342625365312717274746523356655112374233674166226513465133721432773315616326237111461274676743133374254727633655124244625621135674233645631226637365147532756537362566252475351426123217476363211561526666425551474724775634366545616476447226251662462255714652343314252314342327666126716514751312137372735267256271773663272443655615111526555475515164524677155746657722711551233132525274222716773776267354467774255115547747641352111146615525154665442357455613734147723565412111746315352242546162253443115435641663337544132637756433733515272462724172614711725557164435366536147551731442643523531375245122726774711264441724217341265717113173413532367451172236256757661162433175343212413625554442437547723334161571743235112645112277271635343424621154565153774213233416153514267464754563162413246511435775435465163542152224657427563464336775514172476722476452531161434333215635115711251226572612755421743637341242261313163454663425633317253367676641257625324766561113731477451246464356111571451763275336464522371726747237375364523447327173242345353366226155556224256167513741565125756665432453772727671375365267675553326454164266356376135744644312735613322141166136752447133473777472743247376272767343247526217346443771131741251274631513544572437746253356415435121273546217562476415642614347261372655571447727771675257524542712177751135141147246155231626116336424537353561424443365447251123676443477757123667116764773124473357617725737217232127427731572237222313126141763216161254435641673235437354354715733152516213413626563522266551453661242174434137675361516465533133157457114527521356537416252575723151163544536554537577537176717226236413266145631612764675467511545427756653546647736317166731124757764663237213225157266163114611511176331352613421447245466247421432274422622365441456336162125352411344637266632111135643264733214331125134737157354151367774224761772515312436555153323432155554564255115241137646261443742537115633334252474461211455753145167743316644274744765123731245743146367364174561217623126342757263223352163543553645361225433461223451757323612315145257132377522167365231612734651417412743135344313727127334731712753251563221741444367423726237536163332763777244614545151114261716332622132746531125744265574615431713235443427442247666456136613715431214646524141247174621521222756716564456162117211563655177266277157624533143763743332231361112137211575272671315641165414626742754243773264315113231762345353642267677326751651275363537374652111761112621716226646143272561661177312673675417474321747216316436556746446211161514677623454437216114167171126271562554223566517522237231453314473761573152133714337464523253532721167414611123657715477616361673673654434555234136775777526676376673347124746353142732725616545444162714571536754361572253141725535645425462477725115344761153546423165644273116717555353461644676225613434744646625343612777567412274636233731523367757247137167331715732324417655643751173723155356752213745633436135346657265723637151546231614427344232257753235354327254435217245671716124541475741165531242366177372123671731624734617635165174725147447543646452132226134755447255132227513357663225731535373322146257131566556171774256117431654462474543521352542267272246333113362741424661746364324531375615244551524213227757571365525416134611774414646754735273145617534225315667464372775515733614676321162652631357561332134526117142257536731157135277424277711125254331233442356266332142153255113546662236575525462565674233744322317633613355223313273616233774136121412151662124443126651257664475657254333665221533321456545136614642276564216462735772656552464741367156567437622422527576644347477414364441333575167131734561631512352715142421246243255725711262336547455521744672117721424543116763131712177576671672154441752761314475716665656646265742731341462141733642327224144637144377356462667243415437255637655314242211517525166642757444533353711242212355163666265242725244654661122351757357316133225151445225337565663632663566721526673515441437216671267436341424423615453625557531746724657733375756543735612576563656264356526425271674465754633223141576467333752242612416263524731772751774311636127261117353155266465466136222135254254222421357416167672623246654273625211355417335225411126174435727541565237273115567762562245747723173736155457346355535662476461111425444113231776643441611661772244677322655755642116377467466773514646733521316521362427377277541345231614745711756122252262351374221212715511516431655175424554375347531412564547725645326765435362245326615351364142513422255124232773673522767565635176435236652753452725113252645566332145743232667263614243531316243457254516766776377734377437354522537117125126766751412454372164341263364277175774746173634234677725255766716575273122415232522524351247741737661163234241323465133261376461566666322735162442255515634464642637562666565642251641444114472675654144733636745143277527261551345753456733747665276167226374437336615572117175716535661421274221211652273113575451337572631363374563773314675552575567142161537317511152452321562457354612665716777276464615765132262553143554554665545146535251567655363557236726574377263171151767626173226131177431366667766276177611332345546522647647647451477451424752526511115262156135174232374713175155267175313226626343572364524332257261121552445372762122673237455514525514142711371532712446326766342332656761211273574732653453321644733741762113572364462131472456263457566777247477156473542721737376344245213353361227414675772732566314745362627744174465475561667611325144247443154433264743142123364772626673172554273677224337755475661641361445276576611354343214112376435512423213174332656311722242115667123453773427525557651175417375311565265637611477365575246366737225745531622152711671426355261112715562753172474564746574312433534424612341571252565434175332626371753336377536615452171124316155354676647623535374523527252276645435313375651421772366424535432275626367756221411766521363137256152712626641772762654773376435233533635521612212476775346311734376763454645257327121765515521352351537213132754676166531313457675751173325513314212776121475565463473635515247562172625665443213462755647554443743335734511133472712665533217614231743424636266477557234564646353466722474325254332265653341276445456617351177623752637173214151626677545155737345421537251677171762757554351375156223242432332521135213637157575521145222556741245765351267347121346177246152277776525543571513646656613432641557422217577752246124725357455633776327316474521543245763141643234767722763354321745455763146463271264462611454547426224531417736255624215253631612545132372376214117431256543734212134265514546346211347224626447543262653421245165341354756712166476673335463173736215612422632613462727565716473214665746323513163356344155626236627333376651366524351175766513566433163752171765423533433373663637237434755154536172445616314777714651467274647557635526367167261657136745432411414256116234243331343231764236416124146653276533766312412145616621445334664441147772244451352155312155433117223213437216233547472676451662714345612734556243212473351556141476371564141756317651115262265426255434757266137115136754113755614441745165167211623412224431312657764613323233336716222676727225315775341654227117143322135266111521354343775117123366513223135376435272512223225664646171514244271721162424157645321147212535357341561754451335177314335511447375455552216453152213637427655516354141352337535765342223372162121434673125162561426652313532135211661372721277452337561745357772171221414443522655734742467571727141313761433532236742222312413321541257313756113127242513644376354561522111733235363533137657424173246456653127556232455534475176524362441652651563731573134753726455613711375363656136552167563421223514645313772615552177157432554735413144444634373613712654231633565112456742573153455544366342732634162616257474733637256724236311121312137217674266274716421372474635152162752572322723666126377752667116224575636242621533464373453463415175561325571655314644122461133553422664445544374772424664767464736226764652313122265744454433126751741346667171247145474147452266354421377371434537317734162222166632762723166653625717436651767743243454764652444146771775215171536174513271535141652752662372555365745466542346534732222352531377113742735252236533146363557516427124316744451343656476153144717713544361136263641632447154655557125663675633111365641745343211233122373276626166542736562124347652222431232231715271167373127735246373535167362773122242455457264735211127255446767375542317327723453666625352367321275335461373641331312751117242351124653722317543763172222237375511276571133116376727141455474264275165371512543555561546377625447155675166334712451544565551326343144742716477754737517365536364717425626656643457337477162121412563366244122556423554672773255543271724437616662241627131367143453666432313312427523627665612241637562734356532413766665465723776166461227774254544333111774215233761214124541227752474664226631227442154537662571137417232136151225434727117271413555512124643755432123245375336514476677353552324647173723547331177661516174426174733326762636637726771617453563166527417773665671671674652221436211353343642632622772367411564426553217474757151442671552727371356567641337344521772256342421556435532575643424525733771133121164631237724366741645135342664763567573575233147334751675775473743624213147444311115365765435233435756472537177121747635372215562371247522523444657534475637476647663545227475254346615471551535434122643613532155147621716153716431625226572121726617127636321254355717767371374165166262114123452362277327557275615743145567245375434557526545347133541236353712666333326262137732427533551261551313655574177173344327676716253215713554363274641375364276225655457125444175552772441271713461336432116625473673737266457636171735146731471151465323361365174367114111167366436171421656366126147542567617564465646645664467374352447532577347744737427267227656733715176234137634715144156145751352173716431535246642452467174333542744512774611415653212133575742357142341732773511223426676413741765113316426717241574563335743141662113166771624164433177673127275426125725221626363573563174115761673516427473321711477627432232421662534675141232462553636761123313466246652615163332635644165416765574351643361725227773411253151132477464123124655746427555162276336315727343237125767744654273747761473547174176775613361711314374555251157671562462631732263634312136255336316544747252562265536131145712553331634753131341133656754654131463466255571646741346135523146314664621462575373626442115532363152554614274144327163415362427745323725434131652572253672755152613115561214363533752353467366557162657177537113521646224254221147336336471413754142764512125341463237777141335142242512735662621235135251225721246437543421673136553467413274331264267421612335312542612133676125454436611253674251544666357253737463465472772527674273242357563532261641232425475136542667655131441644772243114636413613617423561645456573273577441133413565153241176666117576643757221476213631742622542522476775611161111575671762246521162172674773724364744763317373571621111573724443241551111241412514725266467134451535556763235425127656415521376462256356573445267246721572733673127165635212627745747737332612125144641561764161655652514166472316772147246555743431611231271322132437353332737473475727746262314647575132335475644347353363434212252765231171666423461711363714132342276375364347776717756357174247456317157513674475512351551115154115123774455734576134171312727421343744471173764566117431643626753356626137535114635767765446355612674411464366162552677445413164355127175645443622113246771416256651572475142545745471272334342131222572426672317756216433277424557737263263424431441424635717464451411736371653622773457162127676657743664761443552221347463342246143533122276545157225253517135751435137367333142773512113116513756463421445752351733143455336734763244371116335447145522246751451774435545462135233174322127374464137774652766611112644166126665471462766266156377465274127125656116225143752772151511334245134745667374712212511571645461173571367421121443724775271631741421557432545672164674313417425577646621175575115574226671743412317372411271612463215115372534175735376517717265577327251445145661417461372227271123251214623521553532651273332445763225611252231624722233456723631243645154316562173425773516271316613322753733153326226676426657552124333726334677532412354253337652314676443234117251517144561465716567554767561515667614454432333113357665745136725675334676733463712772666371363152676266272447147451637577736245435364214451575633126167754771454214745323563467671571616216365115572433122352341432524434474124614141442611144311562246717322713531676166274746735343243265577243233743163677472346562223113727444652167441627164643276577172246534653731713212616345336256573357145341563715367234161625664123137675154364713136435526326121444423221667361664641424455367523176521677637726322475734572545165637131124726661247134423671417214226241644533666663225615756671333267554127325323546327236127252517464277143764452225247153772252221632757446274326143151557675237434733676527243151566555635457422216476457575123262146542477353764534511452264524622515245112572164636114224765361553367111362571375276621431361547775717246527656476372544713166767667625576465435266353145363362341344723172535465332637375633271236641341534462236512452356565722715743125655217152427544432343434331553442163177433327663126572236325652771427553776774477351674535314524655733342132663627617463235621317172545742242443544674137721752662235143361534117661413576713213436242661754376455536177677317553417567775444313166117716737126566556657323165573314316212135173752637562112663223754666213122327523573723112334742542354555121772453656376533137473542131643154232627446423645576263367464763425611566521716675514154722522153655633425626417361766471744143447134515261241177276236332646224347617447563713743667533737753316271355335726333613775261377627651675527234266551741671737722776766632764374261356445442443554563357655476724253221165233611261436513253256675227327153444553736577135553554375431436613471765636652531775545411555456725234621676162262147711766544557463265246254474727611627674451317526353162523135216317377645166151715325611234744566636723522547631474255467165465351354647223317466223663763541415444231154474353265645354521672535242457727554773677435111217374232571574541252553616437441512344515774341565754445211265346663254654472652556113743762526576134631412567636641135433625565472755136374261154267744246726655144756617236354174261525326224731526527534472113633615557373616161642727457671155555323464644564661252311211426174727355743421126345467521753762474331135317521455334325324614153525531462454622455216737432147312775245512114362123717152266321537454126441117321723722341263246375126664774745231432766716532363165764563157773157246257724362562371746365366774722646642362552712117145614613317563557117364576177714615216647627266217246625437421211732136731751711726721673556566173277213221321533335434711771671322342664626113445112612172162335461657253253437351442643163316744223357576251216253557166426233756214165113234152436455321253542562112623236635212246712236573752373664237234644162163275166464524213627652345755365576424262755475162757223132652343114532131761576775726433511155355742354454435445347312574571427224353731375252776646116676641754413115165774163157772752656744525136754565114612611117265173556371377146566367451562621322611457676624614542427667751224425474364366757324675755653716547316655314311454143747546257234265764614256523137534621545457716624276633426721115567545414424315126722364277471357233774546267113774234653613631674174651567611177733311672377457277664654744764756371472721177711676455251551365126267472572563562631356535553475424354544723473667125771567246711456233545226574516316476322323371214561422273654615456427542172232711154413772463341273367517633235452733433511735175524474471125572174441121235754527276657662342652425627753567243163151151324523656532537715142452177315357121417253337331255513723154571614766674347274421273565173554746444335761722463573153674253657423257745751217671375766424772764371466374424324344243214615715454615535362633467724436217121566466243763165535446222254266346214122431641515251114421157774624537612176257676111564661672363137731332251251254332621617247552654721346363512136317412537414713424641617352474236371653515216567364445473553316146324615427217346613444721351366131522255316343233617212451671523674233755622146527561136225361767472711573117652741754775635625676277456671676263362762554447346276135134134743473572767444471417333247762376747331437513164225357665665124121243227161576121646735635331752766411527717522726633516243347656526611671763155137512435762757543545645134452275367434324623616363157663342572447473145527772737346336574144211361575466467554631754534341173231322157136215617676461136236643174222225146536626466611544522722444565473255747726711164545751224514544763577511572517165763724515153652142722173263413213524264712361515617231467121451624434145465556336451531442476672345662332126763722165231473473522311654176765477616423654234516757734645454323374255634251641547654432117431152616373111275461546171272354473654523235366725212122353471242536211635464477121442661147364441473577245616632765265262331176236416543444336635564374647657673564431665437313251622377465356744477577233274623114444373232725456446563712573715541271615126755632571712361663457666651362361145416437656146423372367437766713554427325333116336665741737632226752624447757513413376472566672667261535543635315536576154155245254441225611342225776524333256165423556346473624325317752267266142431265235427163624621251217135467417332775124476177216226431117152716326737511312433366223433437741673575655116263621443717255341432622517222251443611311336754211412654517735111562533776714326476756446443264344626137727452332446213151376733415337332377534677612326367464634577533663746346437562532561154634611216614551334413656745144527321443235713756417165171526312344471745535144724724645737651125666163657464165572265167156167745755243212621571727645643462476364111432524714111764562131411246761124375777571771377673755262172173543454443434675664361111422532217465122414265654423734175241562547442522341137411773373131127475443724251355235334765472523773436622456515232675565244427717244247574556473572352275546646774431371156716377445654341236226751121257151777743427164327153642165312326436533276325141765463572232574431324644576413412362531675144671743531217152423743137326144635742324336444617213421362316763477632465342624555337377621527267263422347543237774133726277127146417736724331341744345166277124765772665431454442217116636741441357557212361146356251254252426455533665713237755714231667122767553731433155753665311377312572466772155553262657472542712153222221345114443721777265356673226442665417153456557575444233655531711661676333212161746461757543655744233166511731235774173157444141474113755767774674314522567315364714473212221677332714274125645256727437562743175267626331226754756612761356655414476342364162657451751777755437271244374123412456654764753536557673343755316463451157655231216176443752573343727134133646661572546254325663164161614167167256334341614373613423423132241267122567741321713245426732255474417765173334324742424327545425266166567212754442613455341274713722772634122667152427263314175417671763415664573654663234534375364564744522273567356772466135675445141434744432471462531454244127525767374637777245427566312634715415334111721154516675527722434374136641654662334234627712265525232226475163327644445337655431353474335145467565122755643416534214757554333221724222616261235655253332766227423745345273327775633267455317253566213142515575371721667537546135767364644325255451447412477374712651335771525453427451722141453547774574665433716765167265432726716477756732424233132752625136731777616771144616313521724637543633534424641243163336541223277553147411276323632376262374623672277151261223415736564614416177227335463415655552521123664674636652412752657436711123412773465463635144322475265477741232422351755452225464213753156374555773262147472131552167565434711521247465424721115225375741442525553621462165277733662365423776454755225535254367556725667261137534347114542372457351137156363246773614372533667635141167716233143645464647147143646145146772425772441226243346542467275175447337514647463111755323253753517554624211356556765517235433175752434164333222117761714551177576743553215437757647747436446616532171533315373477316451434336213424677131762222262221275737152325724736726247575111341754151424116412414247221122147354763326646671152416532743366225734457253234343724517674333356161625552216743435727727453722531614471622536162165767646347532524164357443461661467363337272565313632617255444473453175236424245547631656512262647147763534251634737124775235511525624111527723426441141663545511472223366371633476673172556241371613342272255645536157426352322524141377526413366275356115456621336366462233762674351351136121245174733276675166524643765667174524321741742447532136345144145536262477663141714316342155553236267446336742154574432746625142762736662466773354721225277123333435315664564222624756577411143526367147635347532136177751174457315333216132716331432331442116141763324147452215442775241452365365611314562613566666313457727455355427265467636524456734726754423355314243237112567463264263635254725451174116364342567276661321724511731433363626166226176342554135247513742423243265716733111524357322535761325734545441642634452414671467532335711646733226574135635675651114725213775331227624477377775115517331621563725117547561571272164236312471163573551641111231451773635174313664241444445462727727213634354754372435212757363356467763532326767133654753171347216225577733733736323731332576421343124227523127641353527667633176372125717212217345716116772412432655356411632676471471212562626174641513675266225275427565747761345537727646452361234222127237264147141746723253366121233346264671516723615233572314447764724415675511162615166431274114675357246127235427347112122642233177223726741673636551163267524143266561375475762757167525611215633512551321237435453336216347733474561723745711566223744711623354622134422343511532747431432177463575351574765241536473557157726416143124633557724574251267273134751474261635627317746165324521235364112176661723627546367633165514325545523626217274123727336777532327112564315345147351315225272535555625357223627665137541272555222615554466752751463541777144676277744314371577655121317225514534547271631111777621743156641424777127213424435526524321126157667662724357734576561124335144242222523162155445424425247165572725277675124761433715623731612214734734645444577111672115366471114517214147531533522133762733154545456263345322714336545132357733571431754426611233211125362355635171166641622655317323751325211727146133115474324261575537441444562474775555271727767654512766535675316154713116216363654763736547367216627242152721377716373266327237113246355556727131661211132756111434273162763766144276412571322555215524612221226755516777141316227771473724146734614625531672526516656361665561342124516666141633412451536225453655327177125217552736772624453747663512625335214416375667446633632123475231142423363253226113517631361723221474733441673615265157277311634163567123324575323741152122375624313226647232754461517611342144475127714747256616761662716113663315377114122123122117211233613153712713436647261463325547122447742244617475523751224771114261365423274254625233456156251677637511122446732665332151175155251132245312315614351665764512331544151522764655222211111461735712527573772367222453555535737442624614214454465742316772515653245555366144414171433244535413621416245243674325452716351123427651514322613444123323242465736114265721212546367532256536241143771574635273732125354326143367667146532442656271145477313553551465552617215145142712754432717255743134156652516771215752153762655271525414676576726414722231427237323263654543436416172436477324456675263741223165115241711152421317141536661361761625725134415546664736735755763266667614254141726333336124734342142223742365457424766612474131456711376444212255564454625321477461521474726355133577273735216155141311722657463644164367217226642763764342321715424264214327224422727566627131713421253716637272514654557572672345563254756677261756433314573147526234541541566564527261542345231154621714253252635753737255112236712713631257343741434463274427222534116335372675732477131563525171472445275455361522635715276116267434453132557743226111552472421565223636724127452354343512763243676251263576545174547121231556755773112572566267553556672166674464776255433352231616577126715455265773656213547631422533335212731541136747434527573756413134447524637545417253343541511125452545321274156275422776257462231574247257775714466656564532656731444573412212767646436272571374352723273514612777744555124255533126355637322621715474116545437633561443516777272743354337763165344512163654775363637363363671446226325724523453636775235515651473446157522177454353215667465635213117273412552226537337365151671123243524673215162125164572772223431112512234632155664254554676352465746162656763653211776457324673361216464274663125214262125515243275133663441753515223535327733453176564732131311234477242144573123162664176141353634667174654276416664264211346632237347725456426275635455411465532455452326267127774531311562334512467523452463564231372551614466534617355434113636766244346176652352277752463756645471226125714141472417656345322771234147532245415656653677343643175573565723564452347741614271671552731633321677223121221737137276573576722211224635666153167226167446357612634231136244652564512467425476672336441264562132473752714664455611546574353467731345546224763464441231766445357314251712512142525752161626453514123234415534615514712115652324735461133676277161462773472625232167262654474574543142573775521726756235614564152456737236717173771735426265612147743756666777311473356276756174277666464563514765312242131151617667457235517276141364421537527517665511473434231351132276252342331112241514146265311637656174327441665737543573343346434443766642727534511762316643517243443446532626317525757744235342526153647341163144741146471235311216514437656273561714644167727751723366364273663664461167153767253412341771456756314423332527654124262262427325156521154247225731556616247262717762717534566351426337244364566656166253523567533567513233721517327244617176252522414127323514546473264273121274554257223513271141357776472432277526642222641745214114255337451542347463747155775316235661546713347215513521332274216666752744367332173556711127547337345543172234344722523636673746673557761213551343525717671166666345334455744167553255345545445472135562467717154411335211656526642411761152761331455277465447353525733741337474551412352137154446332646773743322552121233142515541735636242515664266211425617464461265711363762571332515376234714142543712222563636716537464165672167461723212565465441417736526736176171431711457214366362244247161672144356323335164723257665674764161627461114524227545534424723442634564675457212266742574216443745515164643764213111377711666162743452257545277477441542737547735312637515424364432526612766763424717777552111665736636126735367671672646156255741544555457217366365642447474262356624573523643511375653613343467463142324711373444121513146326355672143545766342663635343114743434541225124642147542367577315757343466271776112756325276226114157516447536357556417237163765472554512465434413254377317526466633425665547171436757117762531525777666332352424332233322615751661556423667133665121454746645723112155344356646461545133731534245543217556532461445362664737555223544631414754111546635442416332525271342657461536523476537564655565723227255342315544421511165753556771116752374751433513534222676615737734155654621271665327521471373366113662363414572233314345414134155545674245525152472247721535243721571136721536777235236313237441512736637624614637352214531575667264747142534216255566352322121137535553735467474254211343656761755633137715756464124351636546553435752142557427223567654622417153551156453414527725724575755762342456324665552563375146544433771146171462347526165763557314714721747117353325244633327341142435631643577233156452674737755237614172362325522356557244241674754575634755546715763771315514223663447156642532332732764655266665233152135321665757247545363342276523636451546444461555224641252744326265352126566653415173322525357217736351231735316236472644472524436455461474346361237425155337672641412562327145361432341764166463534622144752527653271411127766333634251547132121552513636634657154561755771174162454646643321436715114673174522766364447612745637357156357622232167625626123676644651616572125335436121133324212617161642264717444465671223555756754252367761144573363516274771516325554564577361737271121521612545322172562631723154256341432616351662147342336653372236271563337527635651215173423646676745211452344132362172344532421325145213347763312411156643724147663414741757412664162147341156744426723232312471211426343461355737642254476755765231765233362166162377741547346252251774343641567617715261125133252453726414573464464214325242671746242274664233612433156763352456414635333666357432251761326454336711555144172754262267312267623425773417111275734353314543626261777347352411125542115571253113173136275337551344656345362672323636646413367425272746476765136522477361627752461666535335251233374433424413641137624456114226567222574346532736711447367722771624213632424116111156214226426522343747121432443561371124666641765461374437615263223535135722722651711565666375737413225127332621632711576331123165411323257531534735215131254663424547175762254656571324441731274642542457666263253274732234254751136214375113447171664727456144141772421143527627627311355271516615261365651734635667626546737537347577465461155743645522534416554445474243461165352145317652627573243761231436175412233331434474632321344417347717334761745676371524657322365467522312325176645721325442717566437752124725622335366334525473447536752455237572241274657321774141746214731722247356155111227635132752456641765633641552574667564672241125235727423462751451436127454576232735766446654723776712761537363676366243221533233146444411547137667514136122535141676457625627617552274117372177311246227612772751177622541162722157663664264463573654243342545762142341156435726375231555722437745263272244756716423611574656764672122357745645621211351657645345447775113577473514642147735651336447241522551143531134146525767633557732121234521724347413222126514577713736521513366431743365135514516223176167416451555113527412273714434253324163232742434465674116562476727546772167442112572324272343235213122442376677161422153216633464616142211212311354561221175543233147271421753212671612132776321526656132327641131233456645567752657563626673116233677464354242531416171671212246425465122547722173173163214437262141644222133353653352773346375611176412526254651277477135175667166141333242637751631744544333232246472727314312415572356623256513544657777342572353671473131171346143755111362631212261674675143647365766236412432662151451355553621431345226462751156334452247421664731452322526635571235453434624327466721373376755262147314115647526532652221137747254314636513514456645151263177225556353234425263257766116335357235153316657467715724726542211224723354351431442253746613234267562121567634167315612573717536415637126771311441333472114176732434536446511555672353564173167443717663634123612147327136445512124123526221522626761764742423726441112735771373112212675151564337347643542673123454533452527254121115463744266623277755136165466511447644372155475564267216154636163767417634415264623745543346246644616612453172465152537164712677361351515124364212365275616166135152133735575116255715515323336745367554445257715575366122464467126175651365476167626631717456477511265335166174777663764133612653673546345266655755453256457646246622451376174672347766744627555447716747757457615524511174163627721535524462544236677771316612675657532371555317177271233225474273266427414336347367513146517331661633513437274243215632522666154241423167226643165651144423221735211531543421747545741314745132754736273546553637424665251175464777721276163456511361127326274663566715544121773222344317226576264756544255454666124454575356215614751315743423446115455322242133522644347713357161647372525127513767334436664713267137222134116414441115613314734757713215637571335446137572176673663314116765112666613753172163362613313213135323323522241446665266416141464217653334441615514342115132377632727253737712464227531453674771162217474515664216273237627316425746127461147462411644536661442247241216424474634711413464447763621143714464746451511261535634336553754423121165257415471375621476173535136246765725675124627777617364776724622435216722523433523651262264556122743555727373756233453671356272376663565624313147415775723753123771367152673116251647553751362773133147321742657755123431577177312525767755252241753217276277227523312321235452446161127741774145476757773531615634147244244662433331321614115662476313741526662215241341641536117742255337226341275233236213224327435372313267377213436461723455522341612121171212455224416754435573554167216327574436767656322262451277331164144617576575527647236346361617224714655645427514546464333514537137636413266337213753516256722646141112442375317525175623615113717121365514356227141633225126321423551323161624731724335747612653342574214276671773427234236423757227631362262462735642474236644765752272427656252747216633527325132453524413431635566562135766512157332113457444333111335725726224357561131274521732164777471433151131233244736132441231211443141253316644357273431664615152457516231234563613267245745552711171715122617272517435242126437436636541631641732176533634666643446514577765177371263577157145411462132747551411541117135152533562166263342322476477523221473163362322656727361142213436616226666711366271327344456132613645424434474214446412241753244641423156625257625565773717435733274572453317472262652364337132452133412632772331417647272226475627151354555177342237251563544235352377165615742174123173567124642213213614477527322643121242546656271573132123166244465573766645665155352664364121551342751636336243761257715427675643147234176623113341242174764552265112521412734252465515214773112713155237522241471151771417617112437364336663624643643173775177352471144734416713217611121637565746252754326316756731232226316213731337161733627633747262213724331564574776361455751611123536261257627336255434122312335572337555641573532374616251514375447525412563146476761726271527474367121417634664463675524567641417413553545235574163645335331561443131476312773413776623365445622224376221437177366362512466267373232765737736766714376546564625142337144147756741517363342724532766772415524427462531775371744243743325267543673765256725731355653325235371562757616472374542341772525356534743734614134611155365441376152656252652356141157675552712527114633127446453567467356556132743526141216144324473542326223536722646757664236776363525441623635111717676432323351623377372756676771772634266435511751121427316376376613323265756254266441361322263143375625532341177635174126445653223115657125125112512334372167321622477521335155437665324623554767327312545253126215657443131637563623117726247262157134337414362665176262725134242346671642371467377137322236652217766254475553674626652175752373312321762457647443327556245576736351367426423467723167124665561527655636411141753363374164544725674376356454463122352752546141621261116153533135364663737754237355476275661215743523737734447415144165665116523165562475143114721431326121712311271447254675376542565471611753262247375755424361541322474611131465315113645475552725165546662721471312577551235522237114773275264416675644766532756757451712641413213111511464662571657741245215637231422462151341425423447377263277342627726762144716263122241551415777662672116477426641155132375274173463773553616472617324755475125373763257637521772144432272614453742477374455554662335666157424722352323667445144361147744627423763224414557363133241146731774272415255643773315743266762252611263621514114356263672417746231257553623434213741321571565571536613176443254467422412667547622574215161577257312472772747641212644452522556577157457544641652156534616164144142226373667155264246547566174512133654352257717434311357276766162661325553665637362421451251271551524461657533462735162316447516677236433576155251777322275247746671545225722751761714233151764555731654367656145156473112277765572656474373211735715326446444224311242713345437131763527565276631165467723457463672364433163756166634526165143334463227436734143746412431136572151562546453756452324466563354671641236174411457712361331676356554767516157315477645172263122616476361215257121115634144367457421356371236247252144561216165247265235352176134331116131151764724646474614526252253276323533135622672253725654711423264637253635224452745542252415644346455152565243541225432674461135173677267673256371145345114317727371436317645675112556376726121752224765752542244431262273776214326734523776434717246355665476242154647141773465311256135514532746422426437176731765761452245341314557532454346446136274437274425712165322157723647461243253636346654427726621314362576725411234232763774567627356736647411535251451147536521656563346411564422566663656531717775224275245517767646354131333422255665423214174152726542674347575465136356166475611554654472451127532571416461341327715455523625711361332377335577671447131534335555617141213653653117133216752526221224435734321632645276165331362315151755516762157776715432561132657164535524143743534217467564763661335127625212676327377355154333577222313744324246277155753576147173224631463711131145653223731157413176245556662167655271515624664275131627576126275614166652242673475677651563472374774672217316567456534623163423723522634575463437374777475641352525121661347712743542413316335626437417654555163441621142116577533514673451367644626143465255222614363632652645331146574233745135455157335533365363243776274117566214241123552222646346276777666626243465633165352376236127725616644273776324253314137733646547524155465336145366612616272156132436316731654473463564374722524671621425623264633372743444716415417661543772364614212565166731612517665275533235757227735642123313313142714321136142746642745475747263553216323326524317616446343371646267232574547277361145762433416446572762436457326424244576151626666254431366437313736315214316116725467537363234521562414736746642311465413141433672142445252135367335116523577156353531355667527564374166545444413776144633615755326144627565247536453746446235767673275355171155723326254217616777226154665773516157176411422411343242731531211725146777241372435163265242464466313112237367532431761675734414345666112757733276474464162633277656567776172311362737557744363352331447341412641154232236665334461634773745231356172325115747317374773477123261167412212616747771472631554272277247463664657751211315573222343366445743542631762114663225352612666352745322327642232563427512167635142775137234357545277262472366212413227242716662573522751131742313736664754754234526736251264516112171475273537272274713241722544743123633325236555367574617153451163457721655523463453233252532731367471466232611266513237412716146116255171353471352675656247164764611412557127245524223747656354736171255256114766471776674431135145164613634322263462353625141745654246531264414763317513421615473131775233775373535616257343213635727452742672255646664732252634447375512772336714714517626122656526471511733745436176762674753645576766252556313212223572111474264762711266127442765236457427146556157116121156455272156121136114112132735154621452566561714535337443737646247426514554555241765741345433256327112577255712171614742425634666671151176776217372775246143533432551657561573634734661675241414771167245236531145534633467532341447555312354377154456114177323471455315534174223567572211334764142673547267521177161221344144652152527647531742157171247763452676152145132236454564712617344645443767573726664342133223251744522727177362261614737443172276557161161131246441153121437641536536754257215153367672755143226172611435551315534514723626141752354316275246121513226517424612756411347265171351674454536211316267214443143271362147412433665523555212536255325531511754444116364216361277142525675113646247216527366517533716576476653617621574543425477171647571577757152232617251621727125276447356364577161717171213215146714742667357266467317427152766561274354413532311453425533122111227775536773245412664457773313336335272213537272461137146367723557417521274234573615612457653241272375325747417677563742126442663713545352314314372777122756345756323262413754324614635122756644677317562166531132415337446433234256145245317333615431515467114542455211734177362144216755167444613333537331277413235142552616217454147272333374517223511113624773317226562112574637212412615414646572467612761544476547131673367246315416674162622475522771237155127667451256437711662753216335746136773232716176366674316241654661461115215226155735556413471267346546277722746433211142522547565533453555641725245453634137277664132571376361116754257652764762576757117157372267625722331627217176227134254373465266421624645655577424241612351171153344121617561643267367526636744317122214353346556615617462477721133454213551535427217167447453456134455133176751772172155212571314763667171176175416624456625766565153763763714455441115611517466173512112413752637637527611641561232444625332415312453554742127234472773526177642711356163265317641741414313477571526444664524521616767312742622715652351723374576375336624116316275323515156625564221213615445474237511336112657412532725563242765737262173361333616277667323411324245454714251541562457572754216732411222537523663247321416147153315527613766465772133274172226647423424713551453565124525156653614156661146374563464757566353745464343361337627376765154711415165513253277373242252666367431456241555166221434743143172745124137125144156122627334534642543167111714432333625561335731116435345547172346722577733537541474242125226553364655641323311452276327142611357634532764424471522454361663712714561661323163354512252341552744533622654363617461715143237545217513711447721757157665321264726766261444357445453453375336747647567734372346215662313147654647637624364437262741312716775373476552211645173217442643553424663557672166517142276363551222512266266366251364424454742173364573411451417437111557244564723573154323553437531526654322734373622353742214251454331164377131524662155376134371644744413417452157355225741562745552233563542666725637544533647516733213476675477364342715311463356561747727777736472664535673137126122735726722572172444223547561463776562474754153437743327317445745725176574221554542124255323116622532312634113676222646467672674146411674326575531614645645235652613762434375267361156533366243334634116537265225332376644461715517111655714636471732627365567237252451251655515612273123763216343411537724676577617333542153711451644637236275367233527735336415571365227236156711353256112754443461313245144645174433345633217566511224131436345711346133343411313535332475242143176113347512753326141412135332652663117171376647465526742675164353764674735612747531344524443171467156662443531414557243716336475323371636212363132266571434474235576763515743347566445512241574445434624421666645512562777166643377163635133637522667151271175445544737534136217417436655656422266773146561473543416313177742352261465233414662233764314311537165124651323172235534256516713612625313455156262144453345335736211742326733753157535752625411332435671613372617664473655437663746637627351542641372677464343756742654772166252413514542217414411675376675533764445122434415756246177761643343616531765326243156276176362527221164274747653172122132662153166216645242121541663166365513212233726534656734122442471262523747431415714677222356637746117524457632432212144313265172674766545537714124432153471227421121775651651253135244415537611113223717175224427344125671663724246647647463146263714414675166622615672751464214675455235753556136626133263524375152766475743656551454112475226633133172666165733272513163676562275414614732436746337547246135346216716372654453475563421323167622612653257716265135517642262263345542156161611515376253511121454142457455555737467326716111157674142117766661731772562574622621325546646525717721176447132333466243131113575676127674611145413437652153344344346247747253623267164463131665313241144173365774122672115275125443641461637531132433744563316263541676672545662244431221641466134123114377167374157362367525542143555214324365762112457323276424772523356615424636163236566431132414742533476761717425373245351513271373734642642175534257616267611651343641734334717425427457342527555241354717511654537575642724162527654265347425171162656761561134721557474347251377565473652775467656616242251311367731325414364442222156413635754766121763532175411626566243631247262352635254716211757674161326234571765512324234423322132264717477576351612234667232545764466425315353345557357373457245525361231766334772127166425553324162116324356667273121153637162572114657475475324546645341341531141647511242113557456272337412426674554612712461446265421461544434112674776255212742615754232514224514115643575773154662376457173644456252522312531426567444455131417344615757133366255231776423474547122727144414432344345376657323425637745315667114557471465437773575563233122132626767136712772351231563175327623412536436736275327476677432513164441213176237652631631674756366133253564576464561553732557577313531211657537276463676243314356722742121274234174473411142516471515111241555265644214312463542523335551547376773415256435771364727465653522521162621453463631323363757322514733324473632225346775214347637223654314717232666656416144127252436211672616215174755761474311465416766261772611376115245675154635524543553743274175723412311173565331727333742463365546777217517233446472717245615362372313455512165736136764645414554175554326444336333132626461145566344777643415231545127676773552326716614244177164767761551236371312273526327445734142127243113143463746712645452157371336647364533231121225762371222455453371763327522644452721244323257427537261233421176377515256415451533463677252262123114623763642635273564413641254564366556234426156425276472617367716675623256763647367237521547652642423642652246215231113371466653135433612135756472623153321177412354655751666446722357671122173241636546634611514741632146255572675551335125175663156374212773263757274626426326635564316525744341452753736651543333654535342165225433145134311643222516342541474351554461121215637112145323463217376754776211713133237762421743174622431363454667314322575763362645217245623212333676155554714372223251133463627276224772512143254561675143435366311711151475624413563211663523354544663723625256535765754426764452231544225634411227135671467144451434256142513734657537567613343426134741231424222264154235552725632326342424245455772525273566461614552714547376116361121571356441126231675645546516621662736773216241341134622562464444556556277714247343146214562237525363323325131166612434772326477257672224641751532174415747527634725147644631725234715412563657453177254651164577371141437715154463472177376756726234267371215555236365416214225231661511643431345273134765311233411453747222356177513212744176436674261313551562433754362612555345175137515765142551216477555213713537517377725362313344421243544137171141253672134461724257424137151364371762374654156474547253372327757267316114622662246265625166174114754775457736153113674314323135442142617774623324575345671373746253454553355571252615576626334253511377724575533734615571433157342373475155641253545415461777124475734442337354737573341547553222626463616663257346614752747353554413775553112157141547644671166627116775476524521664561352477353374274134725571567357574644713352713415121717767126116414216533743216127227236242154724455222535147672723137154462764422244527445324426133147616776557775441474346612625122222223761171756727443435517323534745445554651663726362144715451766623471276275661637234555313512464745255114664756663457171552722435352164652241741315426474717353271577155473411552415364165123442613622452132116447116616431775276667736342563521641632565775434413427344633216312316556255137462143771464115736376255774616766262513642352155124132633324132643133431676775527222415737454741264637626637412345516322451756114667563545577643423354633641451241336514455351623262755341527755111151427255237656153621263162672177242167724612531223333752152353411717123514157372626125443511152253256446744174366261726376413642357214121531167717212742624322456577111364513574435623225756135776721267537211564357512417432233224243336347517144736366332655267724256113155263766536562751567463117112437266555437416614664722243355422557336713143124522235563211674242465375522125671213172424524141311142623146736751461632373727161365451174761575654747271663571747675626415476373177126276567774653546417251717316322153132123421176647764765626642267573115457461365364664465453613654265743723152611367645513173452172776417625226345242124533112422632563665477224152464731351624111366765525551365425122267452163133731473351377252654214141451664266247665626643142562117344433151716166561455163242562427152367561561356524424657227471476645635714252725567365371341311375161563377613371326167215245366215474625516746261276231655525445276557341135154115127116777534443242375412117637353255164131615332462333554531675224733357441364543166354131127632325763646776563763137532545637773663257261146556752136212116175474733742166734641144676277111661463767165162456672362322223421551776126625263754113445671243322321332124744342153321211325561132166471215552767332454775565571227751262647246271556157737621632647656154771712167716112263267443532546155257667571521637366243617774713547527516571775735662344243635223215157147346243741176514271133343162215243156553664456275222455675716642261236635274724635714614325112422534427147532215117667331752315551313336423644465455377415746535657324355533372247776751545431315257675561712446436345423275226143233712124357323151623153675522135526747476521236221446125571723566452532374417322576371261353631517752223654616757521746765252443442763251643642634632631567733371471125323627273775162351254674654767532123144544463512636337715415467513227664323614217742734675355446751757513713424411724675342217225312372563245717121571455766617442571141475367212363437237112165345463532351212531714137741341114554137375526712174526433651672451164114666567171453325624123262377771461357356324657553256615145136316334262325113251616477215711652674232565365524774644674376463564377556316267551336735554434713434422343263241475267756511121565137354773237266116724665176345761737427642772674676265775722531623555453753243733553344156321523171657344571165552717335371442763257214654154521133115534762271516536235753356553763656356676662546451257514554163551427311216364133367332127427715241173223242665123261374436337144363524742342253671641315347266524166573146254645131262627637511221212415542137643173464561442655175247113446333742227766143331741476377744667265416415512745231411251364744672344315166254111342371336734433616431247166516634264327324667257213247347137233551214346635654766222347374416764215552455233742575723162423422744622767523127366272417763335532224423415727756716141247572365427253435436344235153276247416361416662335351165613123141123142173773256773223774417735246554164475722522254753325431265733332112515776234533266743251665211532124514541333753656263361124276571143631664251557366725136665535653256244762756776571424213156655313141636725734526551312511515435751133737532214172332424474331245441155737252662134376756411526364371274123322435265752534776745314524137462745564362554165751622363777757363742471667466176257316717626564271441637666576324456351443232641116211171741613451326453775263475225424432514172224162472232662424177642224643166576745377557731531436751445163743646415464466543677475543252667245175744522375776737523142351374775513255425314317262677144165574466775557311642661251354775554323224771623127426555673414252673335734137542475453242514141242575371113161431266513665373436717446657265441467432127657213723151636565431576631754132144455164351147513162156265777115664414742146231441746775465411367137623141654721124613552422462374457154352764177571256422651122676525354653363343451423722735225211135514142476154117622715547367474255762232141552643745632772131465365611115264441756441631145115743624735654222417253457654376223576212767422664513162741511423762524122765253725243351531673173464166276733326753211465445765334133163666311326651711556354117524134432374436423424672437251333657223563225166442122366374421725157336751557425747276137573574373545433512565362213225175365135471233615164733354677526246761531654355265662127677651676466552657416224113335237324375355232337377122643367212253673342756222261274567226141365666312521443562621311233737777455425667733314575726732445364344176655661322671572516644513246655444333475575756326123765221777654317557336123646662357772213167632617543565262142377277527747124275361631451665115136277314316646476552717716517434345376746543574571763764756721446316173166556125215614272174251171711417274216147521342552217336441613732453367352416565111243727227413661221255426514436443755761633321444461334175641476173572775227374753277572475635456746335157211715424475544321267263136543665765537261754527157767362166564264146266365146243133752271757515131157716422337644253573671663416514616457713711345715216365646526271737137442575367212251645536555663566544123564575732127664541437115763474743334136447537123216217116456165411734712766671231143153731736461575366674554617126443137232222261122671467741273746443377511142253434573521537125771321472516624267741322574517326451521172764314321554633415447425517617126651332571163534371343113114216714256326446113543676121421243244561634677412167357271254361675465447237211417336355512232432362747162773254111746537144216545732637241655377315377314645511424711635114754775434474151543614315511213627311254614432477671431271332634665612474147421317453473547722421212563277241373237511264171252464643263116246552643761562616156542162364327216473161357441466342641111454474353763111166234761455557535315653352653161615324462341334755642171475615177631327444676314267511557441161154276353743673333373351415534641467326622273536156435567353646725141642253535444476156124311213117273522715561222131132672634354365646137716747254377551153412241735642634651666435372517267413577365562256345217131423432562143172651776643453477631275445751362441761545124463466616454162311666655143654233662653522147477666555472657312762257533657527716665434721763351515561146741732727564165365512663541746652755167236655513275474757264152461217133117552112651357315124352513426126175325413541572474742313765571412344215672742213627252541411661726446336533164356414651133322534362234171477145116415611252424244377177341364166736411435776523353273321446165657622766467451177337662727646544526136115742262316215511515352735641551256574126641413573321535223377436375127125157436762234767227373144646747555411217343153116136442146744612444576624331531534312517674275543222175547623777547122112543317642153537612322315411633117342435743335317433663544736357324456253475326373673167652527541126134414347276556174153435322434451112545565343353762345166443271222416255722351751124733716327453723552445713122243537147113257643337615377711134411534446163257474554315216212663636413222637616275726556472667274146372566546577312177736126245752522672457437352671664617444331613213461424462651151533617252344665333366635234342535715742367765511751635461116462163677236136776173261746161727231537553565376316634732557752775761756426155677463367454552752562766521336236215534411167364654143726761775526473745245215772417672611712664424137655575275435446627122371654376465235765522476472475526624254213737525211557416757441223651413675741672751742631764726315555165752142437535137137522573351767566712265352755777763244571711151653711656155565563227517671177176476463472151541272252233454363123171541167245274331666123453676216363572617347162367362537231751511377552426435763712265217315566625774256731527227357111242712614474133625777722166177223525777467272465176162267271232674575445454714623631761111144424274241627331614166365476524266676413516531522141177647621241732714364231323537737633124241355456114521654247233137432256314152753546733451474117763371233657155443245674644355363624151355453221444345633367126522237364123546723456243472523576622662415762754232346526667331233521662577666422547412372436443724124365464326673555174357215417221751416142633321732566517261213411453367663126122262743172223564622267146551363613727347561751544652677566635316513546526734777466757637432352334521563467767146134137714331675246436175174122134547451275274112665564374126221766745756615216414264623336157346333742533255235645347613521556473771164571325113646637212451321621146427652453646732764232374366473445423661265162452174324163732366142537646565734244717415721351275341335214127435145776671127147664731552374237154664544657674654467546765422427216564361357756414462361733315236214544711775547326646653274737752536136327714156133621242646634777722745756464367652176364257661773361175743373371617557374373563132142646317551633611641362752365611165125112166561555715112452142261773675224162356767511147253372511172524334552561451656574134315525616353131271455542312636367143735572175336364231572676545662154645164717545352323623416265412277625316374223456642312342773323424256125431166763124441651224556374276151251251573247325556345264615523732741237464427316232761452234521136142227762722646745224346122144762114724227613671423757663167675277512333235615157446345765744555646173536327125163737525223771676476142714717527732714646157336277115375176152754256752767632643653414335143442257765354256644141413236653226355363111546523226361623511123761436147325276512452534224247736711615631361333517674416742136727272176134361541541272225521334445564461136212466527731673645423171541754574244115112262577441667655644223741451173423573547726113517141556514735377757244346141332336523365161721616744567474556113664434143345346343623763451361667423737364227755447647214343432564717146651555433426447174447621421434312471353524561517255247472456777251275651237427455373334672472537657536552534571431665354425617665741517173443625115633415216216674164165443624544421762573524525133643317513166631727217562243646333665645164757153273162316713756435233652451575716425566667155121645232476545445311176155174675173616766654411342363277721372232514473377131275435154265237552732413642757177153552367123271364625222527537545723152274413652334765247134171673322543224572636435242364614715437774225765251124641177661472155755377276626731325535525756274613453563455267433115767555414214451721376135267417215174745455223416446452171232154164667435247572465423742156374772367423141232317252646244173413732164417424764772275113514744437637271354744545674514265673346434354522227665366646566355513546114565111276725522512337212667411267711121634515166222243333213423323426422713621634162535765427743316161373754251577743541322417737656125324133122116463534774611777672545341563714554237531333523524171625173364152575651123476667477473312742541637526637171176137116357654722215277753173174116732756644356471327334644255556551147644462242474337133642327315323426756213464711723377443474226467366227655466452723167346152721167621727556534126436472411713213374575444336733775546127137541767541424157763253141642664732131225266774773231645642131633747151616516326732736624727273516425616577441335641632244255447571263153227464341333661476342222341666317356613157455516333455722111133177772476543215142421123444641157261331275627545117132475263261317453512465352154166237146476547415665235173311111635762623566546346762672242343541247441711674521537131256424171216264456446231415321537411731262227556513447671343527462576734145134716362443616161141437223631544155714267642451675131152435622237131467543627121534752235717223237275363546651744432554454517124255613361256352726115652434546265756224252271313213612255733552351113637141112534735363157345463573266362313657273723432365145536755675146545565161543673517352257747565332121637613274664623741135225752263366347777466151566673524222352617655546615522777577242675133235322715566251452431456745442175526627577425672145313111665174567662533514275422242644643353141327414755475247363661454622246461432731577336366764722424741516743156247373234143445611315576573711736175422137473375347716656367564315247553524153716727626665535375132117563171471474466344131551374614672173142313151625431517657232721237655116425527363454433476562725773515451232371545312551531733533224662116335312243432716721474726425727653525642326521432562264737632637271156421272335515744557434736755154726256413264771355432134631547241157637357757726571775367444362561663731627731511771531575344434515177273216466577563644471154536246267617446426575172431646212146775756114766636445612176731344155752664362256132624134737754662351557216435341533255662676456615172124676423577125624173742632333644233216567462363673271363637123557277155725354644364324717613377331345257715572131653355346616642777524526475632726355123773771361243626476361462321132442141167274567426344422645772245441466527175141716557756546672447617651572415516563561436336413475353543715466444724161714565245613361751527364166574566354172672227226361336754544324241152241373426266223221715347764163311557222151772325425253152672143111133441547162544452761341564176211546612712175754142217355165776163744246467154672722156664465473771424353371757164371161647477166242777337436555175314471452351415575621775542353113644111257337127573712466724345633335453417411562764242245771555221776441311561167414631337526332342316347436634565251425476322567121664637513272131363732675155766755552633243465613117476324133122716161416754546257137152664277361367432231724743765774264713652172145262273766476166624316714114331147317677637457353115675227552667627771174743171372173725614212375316415232443664173575367617247177742654231417137476225127743163251446152233347376322233247555174341266411134765537643357346266514633573777417262166514651676661344534225256114434215663752731755347152611413245765564163465464337446746721456146615424753423256224221133261275777641236611246251513616344353152736263754211127377672525163472716625134554667621527763561232343226742331126171262352541765221544431665677516746364441547251444277376267151155613441424352527241371327234443143471453222413431462414347175522272241663134467537171544665336445172267563241324224417767633477317426514721263716446555431112132115766362517711555524371411625225734673744755143616445427412335737427124521424626464325375521234216221673136631577132763535661322344334741545634537246412211342466232637174566353266237557514753717112212562517147153121173512213233443633214121227532553134345561735431742474516453747352771546652515513662353321626663274252256421263461736371464352613231345226446615712532772446727244212743511562364657741124115223644241532617157535543664214127423231324414421473241436757562535252274544221471116163171146433357477165617146161776216334276535474424325222232421363226646611452233655416742175344755551443527142431272266417343642516754245352535765275146173366431447264723316774624442341617564742751452173613366143267457446232341315625216556572711157133757313355746661556435747146761456471746533531677642336453351537577573457734224172446313642114153243521615236757225755343554273416162153617615621536364743462743742151552544346522361166335631336655633221565441761217134537753632324657736512622732156442441133276764761753154452656622177113542531241335552311476262571622166342567624412744175734113175425252547633374511211673225625477135322415744525546537261144714737662133536317775647615133535237227323516557657355446251534257362235627514661637475323576333362526417361761253224666346262521713653713122141564253117735271313677211613237316635246242753214474434635341272265622746255416156632426242373623425613542312137123464222552144425217564615121143572323471774347161257632445561731353532522457316524617765443556515271463732772755336446173467352761146543643141573531442711145355463436722226217712147251365222171335141563425535133161127542152316132112464236142442544431757211723345524241144312465143252162375642523231346716156173321437751654145451626427435335767723132221634413664545577344142145351513566237437114765121434752517561257174146156566262346133313473411427144763131651114637251621263345353751364453674356215477537153712221357136415234265646721626312543671624575212722525537533663147331523162724227373146142327735167241567251613634347363426521241255343362453755423443124167273322756475644143715463174413533275372352136665277145346727214523464711135113742657574517547212662252376171515163744414371413611727376277357157363724355535736132151772137146764475245617572425624135331244754413337737711343246543375433152522246243263411124712343276414576123142477151154554111427472161674322471376525114424567627736237753122363335736572141344247162167313541264776646164217634544154114367427116712627331324117516237656727631631123256312732114626613616613175321636561654155551341723714334256332311476115772727232432266773636177147752442755667143461273567376313411666163651555235446624554525156256164453631564321173562344753717527155341616242353733257665156221345713274121456652117177625641664577716332566465676716711566546316227164334362153744754124761633646665437756355563357762372454142631473371336215444443673141556651111352514426262745225434512367511757137663523617633516276436327514436616152453556737646612534525362253162241526521415465642325243361777235227162223763647112526266457573325233566165443353546575544414147674153161546765453433377652455436255563757767535271421526665537456146433441425234377552347214343166633276447264634771156266614132124345323431734535742557452174316154615253355737635713752352713611311227464377454154561117271463433656525345424732521622743723356754636554325632215377565166535322725764427213533353332742734467661451122153436165321636122667546625637244511511253345267347323226112735626661116333252326241673515712573472673447755277114275545337517167456123211642643373161714776725663615227414512132457461262173763363725156546753222211426635335654266175742757262412455451314262627521426523543115364742712422623716251723417731452155366542734444351554116111367576324371674251715253775626744735577221472136247165365256763556345371342656473472341266175453421341415673643324441651461235516734175665262623361457535562452446166745475656114363346234361745554551211776527356673415155261146513745746611757637112627355563444141744736123771721314441227654277374761673314525556123344323642713512513144416274736463715313624275546754526347153612313155436765643542224161217471542246773611514352475223344415471724526111371127376722365727556561334255415516456451627521467445672236767642571455746621661744425651661644225273777752152145617476454447263773312411535752533513562136265566721351444143427617356572417256161227463216442342377257517546454667526147114342512627511664442221373127142666156332322422265416547162275474312155417762171533416325545415737154715774125161432275152623416344135726447256323652361553115151475261134162714272437625237735275624731346641377454536252264675571273241244215353736665773514264315623737667315521577271651277737433137716751543613633712233246312625726625771371665366472725667141743736436466655423374566455371576762635514372244563231177536775515172552123436125332652645635625325573125352364731235421215766623472114743172516632374536225227457772376616167143314667623344313473642624542447272571552125567127514167454612642112271413361324365775742344631743262324754175435335132375151154473645332643526461165335733242712377143437123652167724537154255576423166167355463654231245672544425723632661447726553576366644225611374663721713671341217174525317451146442554133271321437273145172126753247545274246372513117531742641276264674411262434735621715172321146547272327463757651142662735251236255477347766653161356562316441366226354454253572537516641625164116644413221411664745742125633235133613226376476762476711475137534134447271257257437327577222376711466527544653625551531543113774254125112567143531624762212571226637341637635212373162222363414317445527614435676114326656131661645527511156735546311367113173257731611137623411331357377611237132334536422162115144214365421424666433215515726533155523355427217263524364766643362744414355467325667225135132471675455773633575455517313226375355234733416776645316346762621557312714256355242673432427613767632242777525331531275331333533736152342433167442662516552136522436564737356413672144232346221354154546614555146463175423335474211674556243146724234116453223534625413347554557372174151563757543324641636423353654262432141735267765742573342627366633131233753141656747364457526472116131547155334247376655746776221125372417354661712717424325356462222573531117312574547272646616732311763715147327674725122113626247246647453315416112624135337345372167725467337142444157623747667777713652575613747554557143132233143421771463171147515433145461675347437516226233325767374133224752126166712645367766127622345653764565565752611527532415733431746536225734215376443724421774172145676471222151136422765164615713512461414713215147456174666367542111362764216723761671467226213524544752372114414664723655676251725324454774534123526713573427513435114513177672364164654335427652573245464455614233711535466375645271747425115532243337177626424143341472213176225657661554435241576646751471433111166255527434625471217356411622741656341415166537761716541643136425363433143226114276163267573546375631345766671422242667537214743647665374354516633121774125532217317736463134737342462165751312332236176313116143311617416557172236236177312325655637772657556111635555625746624321421517565577774563244652733376441632571452452727444733135565542645125364431643677414627417253557462217664667241321774644572256326446536234352313513177447766727565541374133464645344422322113273751227523262565213755127341662276217373713152113372224267447576537666357665767432553363436477342442367447346373461127462422367633772746612643112114153316556633243441231525735337656317265142467745271253165712111741767675245141761127435336657654753654567215423525462336313261666264544664537721672234754313412422726416262174274511176636176432745576425635364134145722542525113563524221757564367152347531441717264725223261521535173745121114343655377627672756665273774226543232663755755353143762262725612325524732637366713211431623423746532224521547451761245441622217272325176254221421654412463724733175724632265427414244414626312633434211446311352766447122763346623443427341375615442464574132134367733667137717555724574117432752754254377271356161442264126425634351721731166775242352665637423762373477676576313651147723676275435174755636571166173166466426262162461363243262163372362123752252322341776324534274422635233457623251257121613324765341165333334553672624714435744561767535777565246331132476372161151135544633447314511661521127336452125621165237771767142264317145361162311234134234251377737145575624145362776421146276112216176757465234533476512433453614533321461115561121713366535726471124272413163216377637612414364477736271626336267364255536256737144163156721731761526371336343247646255757264374546416633576224111146645564133611451435714647441555543221645237265441142546574662446671755611531264377665655235411477476356442461132222776623374444524453327667173234525411151525167645276155156411264736233425324212131146655426645451215546362113236433312765663531552447415537262126557757555132211455326212337642417375463275427566227157313467531572357661542511334442472732726777234333376461624361532126411321344677337316471721213426367423557257274344374577531762632664353317447774434176151167453753517752616615452152677727776363645732133634561717377471317147633437642246625126256116357474351724711446237153767712747717346442153217734752351452546556514557665227213721146274462236227566655576437721746767336653674754542313256242456346222217477176552714221156324142774225254365242353176214145553154475324143661125546357175754462741564311767113766635735433762265465717215136535327123666276324264165716631574336451731561415143553355337426153111315573645361646375721163611332573243547277573534236446641174444662347476347623356213211321756554112742676561125147577523731576317575774663776613653744257427261332741436736637226513241213242315571755561553575557264326534174645132527775366233153615462171576221414513442266675356136247421252433774441776666535342376231267533143427517416463116245162321364561142224275143345273123264423113237543152575233763465624277612145112322572416624354137666557764574746136461263612336315272271551265217747267561714555365575663712522627647636621376225624573774357652746722713143756441211511346243446431541155552526647721146152636463646764552144631633751567752522127137425722425521127216174567162716167653736517623553474253251463371367762652735323662277426665336365254532145577766316452251773741477144351147156717646275216573754777545651665676554574324215613223216765253133122412734565357673233133651265561641135514452332655461757175665761165655324557165625712732511326326224746334433135536731213355126747445371135457233146261625357353226767264643667263213266113241574513422277675524135565477114275655237561441223746626466561217674511676642174371362142711221221763144642161521741364575516737747445722137322427547336771664771144557764127472451413324523213337175115621661137272633214546171212123615774127736322543327136351553243644355453214461114137165244467165532461612462674226125742321347122361462641122443356163414542453673751245347513743761323117246537134261116177514773136536563346252671172713753464116653432766723313424635222567212176553642543174457752464754175224262566634354112126276763413235655733737365167362321121561275773476761737646675731143332542232573471675561552445562135372536715255456245413657427632452636447175743776637134277263532714551577315675551574324353725117675155276176544625361615226131721636357256122515453445177113315561336344256441317755674615246125161115433417652557357641476377217211154436515164712716265125247171317152133531343453373275721647167115212565613367527147652646756166717166751276261115262466365273165114673134644164774253113732452162663175672271772427137434672111366616565716125357364247627741266167746531442377427743745752162171775767734254226324637545145455555364467115547413716163771445225153523544322463774713473457473171563736572637341632261556516717256461437533657744264341221233241717143135524521146673726242566671675227173455471461164712371251252763163447221367475117256475522632342525547676637552417351134427655726612663647515765133156422316221772261656641347253671533674515626256344121266373762146526277773717533255473244642257121142243453437665526244627236152356663121563662344361153167674142621223372761236676113414514127421454125413637536346711353164137374716661244231165766133343156126637516642364463273177434153754547521416654434143564441745434721713255153625343711455462326637642376173356212473642422545522426555566226157427124355643326471456345351175757751527475626476654472321437346353426556352322316767213366413231612461336462612527432177731254236576731667762243227426523647373373165256255373734667642127167311626544472232524324217512512653645622362615161412244235517614312765334615424476714446227332152262625376251717632266112244353561764535563664657276121335762252461255624212777121133267667125463571374735345451464173173714552243374717545413462172522723512626376667745516155376547653324427466266373754653673461557172455415343113427226577745213124462344772322653615465571212535275421227341641331111657772365715457672637114336547525626744555233223527547165742725676475752576231674657767573776475435143422354544142232112513342725532175333171624146251521756342734355711312374611656127334362456223715256376171375177124642721732334751721732161577622376517623257564757254353443445675647532256345154172436715351731636622751674422732176176534747733515772772534127347151744331344624335644211524657566663337464156523316721212571547346771757455341561474515154142177677174742676664245526425231542433453247447337154635577223461744211646612635642326176131411475136113774377174436246142272443146167471131142474332236467623231157217323537677434541416472735142254315651637712467431472574422647267245242243513566625176557743773111625753433612615336313316727327373211465156231174635266262113254574733551515616272721747162417776563141423174624227234234415375364771232542254667613426176636466776232426633423413656555551511372235366353725356754532376457621733672537743567456142373341432436716352466645114637271535661254745614763757567264374567357574262644352567447566336776743713423527346435523513335326122533765456474257132412645411414776316743773431544715211653123424344241552125361663513712213666222547724146574764346746157536542635641345235635462265113166134231124262776561321547361667574331333262351247464541476576655411444153221545675253332223727661745554775262643567724345547646753522223731235574665232111274172453576113145726415347561617417656446247465357121646734735166254117744774442454642536231736654265261753336514371544367364343771526735261252611776534674421621112175524742133343116616347343443764556253557113434314152275453142526553122123365127524645512137322266672723443254237634416522655114175277644363116173434426615435135565562211511422775446431163767556345577651134233777743763463452425216173277532324227636176344516336246677543276522514525462143717623622617227162353735574711421314567167112121357763433235366427217126237341577665141564223276127143655723773171526775431247753177365266467677162752525532647247116624574664673177343736323337342335114514264474542146667324461534435115525276642745545671237322155666547367154441136726742715223622467536643371434426224425141542721173767427573245351734652635246356766721712345264466754151575544542344545611441171777575574442735271646431674115214155544312574233421375354176516125612333524347713732471277141653544711372726727234413634541741314716755247153115557143627733764565362117226437375222514417175555413725137713634566637317321275747353166766263531415556571731636663162761776362343711772765751646346544645573636347431636533621565333137517714747113116162544633377773745756453465766515753445164155451156734362162743641124633442171327322651276514261213676353574625557755175165475526127644334627515413223122551443345241764466536377633344634171425252362727674635731264746545521336564767767453156274611466347412451751757736353364766746773643272317526521466115514527417614235376451244473214276657621513336176133156627151672461443743216116722441333442641111166362612424336674747374567662771631213465132111424445213213523626631176712234275752565216562154156176162424745652222744634152556466415657343241554767544161246116667554412137315674767467514535435413264577421122527656651324271641357641673124276155152225734731267163144466276125742163667463572627235514424326712241637577266541674564236662554177374354214267451126652447736437556115645264322445333577613447525326113642375532375546627174146611423116347223453146722643361142324546572424153376362566724232354747727162767327255525436252411124226245345371235111764522154256711626552323457171166651166425416517456717256265413271471452124174232733161611542773254312524133547744452654727337654376541263547644222517122255233772557676153751412654666114721237516576414623173461751761364527561451423124333662177217447111171256321522364765215335362375515633574557617575236752417641423277556335435375231126377574546767155611464215747153112152445455352154112544257276477716172731467674326473722141621624633745215175637517212326511713367574424135721712623165737221466437171524417517771311124737176752673164536417417642764466477326617226771652714617216566527661652774574661173573624573366255453543223614723362743424163622457754376767352722216651361553712616456455424615736734152336631732717644476161575567114437314427627523353252441127742514536217272165513242376611615755442363313631312726267147231147774244675171242543563467523747631465746556613167455734717414377535442237212422376172673644314361734367471634774714214661231757764522562654444746477257312411577262441536312127676724745225416424651744574176175716414246676541347334714425324125166412373261314446151423156671517451711231462746746221646427611746247364434647634456532615576613527556112575462247123414164154337424235576245472474734554352126767422362177766126633311737243741112347642537553435766162226433633161245431427753452362513456132541576332473562141411552236152427476342623362577647125242166331212156337675357253254162372235456573337437365272441257577723552442615741617521174122761174443611111615116157167562172311656347357542343262317377477627725563527665123441672731672764166745237317712357457642723132637635357417412631675552154467553647374245317674763552771531526113743461323212612367567644716537134573747267551617765153445437454233521457424425523322775431315621364442374755531272363135266161221764225634521641276422252161114113646321774167171233451677772424117643143552673617254345444526241224542237416671635462127611624647435757122122114644156157242746723617633134234732541445373576511173156462726531675153672263144353662522635511672576176415732557147332515366365447457332744313421353545364233227156111225745411446133563217521637547572416151335337526241232425462452613537762516577414536112547124316571667141131211666766144146517457446454677617177166764571351317375353642742152167767536665137261616112316624123231213273716725117737172153476622153462173676517473523632212174371557266661441572256432753263634772131717763253461344543762454755251461461125375522276675733441277336566567431213433313227663613745535414551613267512143222514112764535223474622514611333614325515162623254657237641764466231773413614323621534437727466271371751241764355342624711657477541635761261715653244634732772757744643762163751265662375676273376664162362667717576146745555225374623362441553443451264743514435127456724762436775724522212664477444237645272713575167372561231374731634545745216734765343377536232326772516341245753411752624657112613263136353751412417612367361562722425453647771363243571441511722274732337337556712463547732745264661733167754656226674566672421111324633537335367147527427772112235611154211736153745771677127443125343664761767364175264176233654371717516775135444163613437636567767642642545223743423177172752751745232477331625177577411716173317732113246332741727771272732354361572126142256241351562664223751732354171325252211466666421126333452251313121453531437373375231475525756462436673147276527354414376773543715716223143126153623254164541133733565113425343525254552345341535214735376134416123512735673767512115545541272725476573452651621142625573632124773544121477571615177751234457146434145316265457266254317656563445153524333277127746376365253527426671434664176773644522247611742744711516317227675246472553561155456547462423414121711357646664432315365536777323424653647536273425354747647672344733336211221463222517514573731434677631754133545127711361764731531623611323771613513742157653637611312554154135427124231116573475435773527334276112625735715356731642124247667671152567361126633117422157156245344614543755551263134333357273631422717476163313516353617721324477517646465116377236421614747416477465434236176212753145443525354433167673422333542247724367136571227277552725371625637377313162225235323525355341224353224533154611442113652526631377621375622312467661266447324453446616311532172761227274237575342124764131452561624733356346263476775511656135237533271135145415214776154777613676335331254615547237145556631137162626643435271234242126613636734236224656477633357553544131125541572167122174533427175627623471461677173323767242362744135516754754764217627644213427733674462277517437312217721274266557337547527454524136241367717574621674757734416223747265366346131132537433274725331362117153757262345321642353176345556573262211556217465532152716664644364475642573633326533744624427246527415766252673556762555226234225166754523773451367636561475137756545326637264434511366547352356234675662611463135175753171436362762651751116523432231447615443732311425545411144377344435321515157112666541546115152635456642356476666542537342156351227214352321317153446573612547773725363515635654331271551746745441166457144732465414663776514547557525532146575256635334314671647631415731572417274137652331436421671373462734674277165422475247437467746342731462417242412236373342356113416564635762334667517134372213554434236746361657631535275436724467212717635133117274123577461741651363266162414343756425365563552711327237461734421264123672267451624647517723475634336635144222373771162755434226543445263675136535635143727332317653372753566352236754346212544422762361641515632637365216363636136366442423225311441162131533537466234476717553616735242324761141664443353441621635452525225331431764232575651145613776422255417477113373162377757356132357717267362533242462367424441665576515555121356525654526364354223215662475622475373154724451774316214454256516346654456714225766571257564546473371146747471176147264253621463732745633774223241166615277347542155752452775422541422241115263412376544755521665141256416226567721765463245344141267737753643634723573136663471527424611216561264543246146426571544134365154273566214212764643711335164672223672533265553141553515324173435635112331717415562754516336664556467623724666444643435357256634662654356656534321564222357143632131665653537252341662226334621134222127573412545524156772555571114425414745221714421332677457571234714511224424267333432471457572362744165547255312564744172162332636235123741772152766377616141243167711316515134222162753667114534544716666572135444652331351125463274753743257733322544513714654273712376624627352447237541237661351471464755114241264247464442476657716434245663113537676344514511473347163563164346447264555336576234144532753377344374161513564576124567774234362632231432111452564142133455275472635171221467636342665124755635732632663141135762147763362245151235534731354142267355723141756261654361315111246215716423521441536265235137265217621663345413576414141765114636627716343225574436253251153556451443417141522365123452651235773141423427672721542776264211721435577142722215461762617332443575355472514135774164366323566746615544736351141651316241427235236114677445551647777614755171634534114157635123122713571212374141462117213725227437712242413717267372422625447423535642272414542462733226772744416174225557233413675321127414745665327175727271661424545471176774437547242273351534277741251761535471525745313565115222242337473254336234654324145757374531412127553475764527243141271545726151727367277553416614133321115113224244264332512474121552764565117535263517767251652641246516437413123573573627716313427372244114527711461143144174347271425146621531677775223623457417543257252434625515437633261231216555462725426217154156476421662546326512363374411716666522622215237122247616346541446422725135652764122713547634712654155662551757351542136112523177425313561665633727233134325626671422111211764475417634475351257323535765164443275372751617645671254662471144575435524674767551716374454572341724577261676764756677454223361453244164164172616477444157515655361711431732222173136554536333763264426633755265572457122756344773435431125543413551662267735526173635657525776464555173117662562756553425336174653352763652131347125471324144622157347646142376321151323626512626754741565126757176247533574675673361457263161162725672143433324552621666175315571367674251512271564552561431272231217646626246314763252324535651713166761624456155363624371167167467467451237144673275636745753723153237344351742361165672577272511124262617615734753553722733223427245326417214622376562175316152715541512542124464243362234143243731171444567226754223436152376772711246636761756471654652721622224441444233331271377755361563775451515232665725256263712271472346321244444235163611413524673227262217643277126477551223523245353573571232133774161314677223652333722135357661477421217243647264466711447636666742762727373323762573747733643637726337257623212471776163466642545471536511133373512412741136324774256231233563733375412615541142566512525114527241722113767114363233476226677624716237437551176512753614665657362275351325446317525726575364422553471544377232213116675544276563744117457513624334125672332372715317466536732455251651124444644576655422324453272276321765552343227762314662313432475573352517732741263673223467727477135476472517726315526276271241263134765255266711574433344472421124623342767772143426164633764117563211427527135411227512222133122434417571475256371253415621222566141117341165725254525217332512525645662711524441124736712373445332722323315752264771511137315141433655326735364654735231312736162451213217645443146553773275715363474135722575272161367671472237471174617176717116155254335651631732433442343455264623455332526621775442575233162554132666231724233777167713331577323571425437243442461452614175237471553426343676145113475724631612776431264664472222663475167261371244372752531765343624424452512625266563646144762253616254434617535315671524314431622547213674667522322363134461454731152343142224546616311146125422627165412643411271222337341224327426271364735764177343261413245211121247754442163226555626343263315433527175414746614517353763323167552661442145737512456156521137116276442666562654722647621735736656434613673257753157231323126725757452742256345563515651164175674751254473437117361255365775675272221761323445414432472162742472114123246623373147316436724174515137564447716313334376111531272716774537427462714445257542562763672356231377462346164741337437727245271347337663513226351315417335765222144242513144771234165132537451666312663371611233633346522667755517215636636663347673565645644346456332135723357237517464362615463316612325743777752731567751526166141413111511527624772671153172177251562643615777371561576115416324512777372262231277467377242174554163123332454615753113227337615434735372531312726326632556556412726646223245356317362457344226531526442767435275235414442273155331175364241167623353121257555411421151614714775444166113762633776124115627436264563573173475766561312225157176566747351527326376547151566567435432361353314356122227375255227165323361633557363475544462125224666135327665714265642472613535215737571561452111715266451743654367346426564775166774553646235673727563541147757651445733765545137127474517616574557454642436332255235677772663257325173346373632354255254343671642553127741433662226734572161255543144151224573634631471521655432146565676357752454614657765621136114575433332476257766754547663564245627354534452457445223111456114515644217564133166711223362212662466717175612132723255515636125463375275156262465623564357173732462271627657716517177625545241326546631725736721731713571216357233737233746637133135516541566422135252555441454176751545615656173527174743117537535512473271271463373167372446422313544774213343612322452616462613251767411746436571136227266556775265336434277261273135164733743562425372633752711315134636123312545414661165355527323616622254542212711136565446412163665274651712112125114541421621326146545535757351771356437623755652637322236155356325261353651456733675231246174637455414172136733323246253152656525475775212225557173722441626511341131763114652772215542535515541655764364763353614372554236113112717347146574175635713445446751161216233714433316177354212216235466374714467611633767312444477236266667327321424713744222651614532422554417561352566327476467754325574245235354533364424273277632423151763432715443716545766153535742152525636464165732641466732446655246722772312116462541345512577433225525756177636212457141232264417372166716713634363276322451133752372114114477127357372557672117337657251532635672643122171211254332356543636536623325446661126543611656151725727363236114117174454453277573216354567411223233662447671741311236525566711223523157237245377522465243145171662161225352171153413227524244222552513237451566236452425153515663134561647737543522665562754542266636724736613354654344631415743627522234726355143476163224717412475517221161675245163516217157417172143352342257675356161115147167273631164473363112137131746654614367316757317737142265262251651471443442372216323641457616773234471155216346372665124124725451223327131174144224725441233611123364311412226632254111145436642117657122333237455156372755643145143745361624661317136445332647443157517671251311234312744241226425466365574744161622725553764535214754644237657142243122317674534343626243331335442165217267752575756774246463231346267227114363162163526464617154763725727475175314566436236244744346132771621443132775532455243616512722114351674165657234141431313615136555655454153775512645176351274252736565313613464551362321557264471351211513241647616142216226515743165146453637631555765622412215615321377664657645345336516731611554673763447445222656636641643727311716244312235422276763257451522633567431754417631621255234316573161234421771174166174637351347557773346435656264265661537774752152315252736655375173367256664163434361456453114733451476464213457175353121453146413454224744313223651353537744675354716313155476774732475472261717421361666345135631111651761373234272452225141725736223433454677431766321144337233766522267561633643575722456473121773212271365661342233472342563562214423642442665172553671747336657232617264454354522112327354332266556575134461154455526545271427266235153432646275766753413655515421346511666627326114554243633375442312412373235267646453647317163325667137453373266744441363371734522625674324554467123253512616271563463126513161263521771373333311761373154572613274315544777441541561116576151317147634424461744734156745654626733625361231225731547343232624411113641764117512757614346522373374671777411463761662216271331672352562533772371366671422566645114353636126455614665147315213123552745651526277757554526436641326512217451312411477151614511633674736175346477647555646346523124616537263744127115773536512723425361417725331341241424376511142611762163535562716151511461476651767377542431632537612757227236326465333677762246341545651713636664431117717333377345144134537516163264375241662717433747322464412642463226414576541736767337663356516141711663436541531663653121163616116264441334571556255567617167171121664627377366374164754763713224273675634764523223531127412744454145631437771432676121163376734551334377377442742555775244731425652312452326524112671435142274162434762134117431722164677731551724514636441424626135625532676111553155133215676572463147447351336655567717577457727444371327464353722133172157242176636167226555167462613317244555347246361347766745235457514162536653572741731534357236276614277165446132246322167713544524355263147144271223442542137412246676373326147263436714336276523423353524521657234125451311353735264555341525647352117242367763522277733725612647157124344344635755741363143421347441716633216624522657275631674732132615237133514763124616615411514175732755335235446737731671663413316413347752537533545636725275635477724123315363546432335754541377322625256775463336452351735766111312131147616241126345457247752113327425516352554522366313311422765641513357645211436217542774313721161417563424461411564666421122141313363535313354524323364367574635154441162436111553771537617272711544554727641116327413574414625173551254147352214265535276661467156114612657211527462212217367366216661266177261142364414443573423313433343362416645226673342514256612146516747644466365613165523515723673511575133771663263755346741331612651364774252462161514322445635723162553277457656147673751533246654132463437426344423621665322371624263446521445727421621463613666315662443621434465566724316774646525672364536276664666421222716757551711474425223613656611722527674776246571222613372163276467461277215155212513233542172641726746176675437617233471611215471375175166641622646225427537377437257757643136313234766753773756714113767473334641351255656253254675115255427275243372167715434214736444225236153513721723565316612657372725643314526621111631631227247352156471152655176153346561515434651511716214623632157725217144441432523444746421547442363467724171342626412365533416746374477276244426361636513753661422161212146672432524465763342424533745261241424577346145472734321726555513746335363217751354126212167751345212741462467435136151276374342252367426675541354263313334767175434376266162211647261514213233777447357175416512537622342654255211247266621612766157415673421243266325177271567425556247622636265126637756746712676623515671527331324322337341427312762542624657122454721744727752257435721316321467261356751746274337743174726165124342147254174521625134436446247565711736546227472116561425343333744236223755116437277343176443737464276613515357471435645621325255615675256715764126624515641566267647566567276617613263157336255241237117141732112342767713641466513525631634135473662764441616461752546543245725325633262443321425773656174716642445175333774737646324245556544127736473673476473336753531425741744614114454324656564731113717774565276654215674643257477771717461217116547427125554413414515564516626572555677555116567132627371274144333132117732517533114154264571345561113775256131433241761442566435445645574316564211416443612666333221617232321732763641333521553776276333554657156542566751726335346111357654762757337235347113737537776674463551613536463474676763762742411777151344413753334353741355425525623677331535272536744162623515361667623617427614417125221672542521524215151151523536457461734277362713522736212455414462564214354554146342252531273651137452216754371224553631161445561541661667426452221514732767635721221376232217531523325634527431644665622143117171424176661533117416112226627547622343121314616647557713564542634771323453734531526621111675152661612257652246327313334423333421512727675133166721453736451722773366267164572414543257726117421147175225674236713237323134216224343755535361152315431745665511244552436165313554327435123775721417752662422776437474175475116341355634716175751111431371121756713667367111575716151211413627522212241341431343252422554746132252317443417644262423672416313431761736426414742215616746677244354467222253667271761656556674333611534163361312417576565455172462646245414546716777741515326574752517461735545535642622555435233325353567243137535126415251774335774342466672755461423357547113713447676575114762145362447462753431522411313621226165442417516263234375536132355163531712163613135675461473521331723734333634141732517647232466452764317614222424575552515144713272744125557622412257532346757277473716663745225444521645644653634235124522234261542646423172564221133415747457545131114415665337333713411665631344545126675347324714466544221466234645536473444144614557313451374671443373541264746435466134355144112632216345143615463475254657461654116734557742511142756354323512213237575671153267465434266531173415364255353512562434254747147371146654413174353537344651654625642631271672431723641336424115713165225475632644322365127542432751613354232535266425231325672177261625351425253135661124613112147133667233651163762174564776313435734741325444754263543334275447353766122666364173366713343111247645557645615314654446112423657534212176766426213561462745332376127347257232143432572677532172675642667613117563633244127426626314673774326364761325737771753623314614345175674647443342651233665256773624373171135412676712362726727472742462415146336237465671572633147376547464431243323212312665112243237217642777441652122312113347664774772173736225437761373537646235636235441463136145265552545471353117745174527445164742236675144455462363746112522127443234147525373523121722275427454117415477226572214276325176155456536477311371513143775614622377253232154114366562273753536676715227535357125615225534271267162624671436432332155631467471576672452514561624231125153324313312451543322414747242761313755375644637262533146764353415122543336622751335632647277632343527154157365517313571637614751433342747676351311777273154652724367454434312454453573271677772437514161613257635214625625615161232767741367354714467361743662776274312642576171646675173563673633263447617637624624324674264466125451443437422773547337657445346716153426467671344311466322257241155331367267425255214257515432547474523552524342774411362235412463145414676322531113351664336674217662352214351571736225767651373472641752511567764525225313542113476474754744143526451212466717356237725531236631476417666571445372274741254136276157245216263113343757175512343247253115724336764261261142315533662372274537537165315522664536126466676463536455317162267634655414315243526465216125263257636516246764236114736542377725171651575574321131624612141153653742133623445461653434551765343747362653121667165422116176633347277665317377316141441462266633763742662532562417564723353246534237317563753336274716435751535247212372767222753553425214276134155314474536634211553474135141546417166542436151237517313127115746744632265212426316341764614371316171221641274746763161453123143753714262412116716335573774312671111627261672574447227631462753763265135215555332464347326614124434356711576431561334477351164531365357347373462544373232447724752611645675245411241675731133422622616416323274311511314526762253355225167417151233364635535642311743562523547653222516461166437534172355531527251332172322265341761317764747654127447573132666754214273617576327454434647735733444175456546377435112516522314741361126172733767571651532664461637642653245455425423576775334517514772215163536377757667534226167466621437112653551647524235255234226251273451746723114541366711433362572147344257571256415226451626277325342751741765737451236411347472147346542551444322454216353324621555433621756377546157716457143231174355443374457365476245262576615443421742417347217134653143723571232336661524546552247564266546573736615777554432676654364357231535325226375632221717557274321464136761717413525737774734456536233141133173564361362754522375222645652263551377347454127451173356254474762112247114625553573241157521126237564466147526216523641613625452527165673756177643336537133517653572461776576614141713116476574164324435315276713715336277166564327662334263755456112143141637462562134542251736651254562565645723135613142154151166636725572274627572726254551767753656536677251123336343621737745434377166114336661425111225311165415433454717777252153374726225676351715526536664773323736752551417621473466445245467173672147312263344612565372752761442657671721455737226747255563521117777713757554565473532377563765775175314371641521265314313623432232163422526711121552213675237554762345411422625672134524241325615332274245521211524176633655555371411156721751134664551137624354526743546655151647324531413741524422116173522676741313553151344626737737321612476541226644762354267354225416657533656533232476236255517457335221676563725376211137517645612534725673215634556762754742532175467267571374162761156552644155735654744214614272427275463271715672316726526137262322252523613373533336321224353415725216471131324767611644372753657317357353426124216413154352746617635764235151561443747315412473476364622636615162566527277551727756557633524342511564425573626614471664147673154344176766357252632711424315724561161761626763145455411252153522642141135623247774646754262544741244357743466576174172511176562525354361641417436736327537376561527156233213257254126161122771163161113445163772423243444645753363474147556247422135413277766435166473461415457674545165165641547417765741675676252162571374341423313217217167725324475435272435766321341351352114664347257424233165212251216537136573611754376615427654626562614564764253573573237314125664154634242751342621355277611517325617445743717262337151153133154756713527137247413321536752261755767241363271332673746734263261167115343773136326632536154423622743561167473426221575423265457163533552423764626766541257736134477744327526317211164311324321767765421513335346366126257573512672555645277745515316345436771272546224644747622364337162163123271224527225316545177227426742452413765727451435356277243256315645155667645711637457414131673451277765752553656615567262463722251167555124422373153172451743152357245147522152467667244341757125152667151256436536443117216327744344243471444227155376227143157674332661725536434275226134442422174254365132175536241253727163413132477214414367123131534554114431677727362721643357533317621373353355424716114452454776161131566225156467471751325134633156245256655534514722745447242551464123712566257742156533641236276721422677536523632524212325246157212371453235532614335677514333363514662376251553125715767514742434132453272457672564462444142315737365526754654234563127443665461411272261555317667261135535474444564724713643542661715551337665445747552735322527621466531621466274242446262543534614567752127757474741671745412273652756162166247633613726671112511675615124737634326621617122262353244646453437261764754156375642256654622266276315712337261756274263755275116747431673723131671317726545346154117211514127326561652426263277512533623245177155142275224444616763455773622537434663525363653663231732224517544242523443741347653156371741726444725463761224221536366564765543245174413526141214144733423316543243714366374424122424757221264522134672523164566141547672627473527216451671357264442332514645337257226316454473137473565353725752174736663234657617276634146533154646625252637631641524341235642346221146323325471654212435121355177213256411251447267433135363214136553524652736755121435265616322117462156362357173346755547362514543671637166276422331214244434272473566614433316431562116662373653233715451111665634156136317574327522356471551453272775737627341333462431627654273513476451315441717353444333164434174643174641752111565331541225625322732427535137375127325336731573766332324747661514645372215374614631754367467442226757377731531315414143113266512427441455637661533147451716767242217364741747212427465477366472633552355461313655615464322363457144273142372677451137552117466373133446617111346452446641727657263531533553777656713711773761711465557745336313114574514713215244631735667421732373743464775413216413161224427757355523332714325355574637361367224177522734465215775451471647572373346552222743543421672755144365723677123321614357356655462222624215236563565314451336274317611323765745433174433675416251132255563461134444121417252277313632412161164641262444371511552144317535645321451714354436525731413455243676253356624461242646126574317611426145656414442647452333754135211125622453217574542114312726547662354631242232577671442644521417734336554776357451525711353433537253141631666735776677636312755174317514673676477466572324512431763144434725765634673235527752262477152665364156557763655764372543461757526225274113412217537214563762743766677222652173757771457755243552442364651162551467426533441737273443721237516544637572237442351616222355326313676767274237475677433661423265565553414121252752724314446174652527267712721216527262535355753425355446752174745765231175613245113751655775573411135246147355276675664574244474617444241317747737626376724374166232667711614721672534435165515437726127111674673257523533213767172774716277566224176542774273322522233753642673313257556217432614136535733132562211166177244435752725632254323645163713127574312513317424257554353663266336657731453534243122656345764626626632161353161414512647445741122624134271511653443526454367473666372122172371534127166634675354114316636265242753673665254173424265741761624723323571336136311737635734126511142522665567522615611475126171225577165545536711671642563474625416525462145746136224314763456227112567175773616641373661326242263452562363654532761361514542761335574134321175275343515251357513373727342563213157321237376341677311447526156455527642772537537661136111726774466363653226212212314125221132567436124337361571643465177322472556552116234415511147567613263457435557473144625131727112342617753531471115467363574675741242337623663173652672141622436663117772471612276467515766144132444555714216446476366776713326653327732444377341171177117452437774166343714132252272113267424533143116421235343474725443326162327621663675343774315241514513154156235425362773343157341622347645471343112313556165231334557545314441653213651477132365653737562226424655334375427757554766735261223527445714647634673211215743256447515415713766557111233747256232323154766365343454477774132656217424234762617245625736432611432574337646136164557442315571534125442425332241736614244723711422275341274331535426753544756217437356475732215741645113627442514642412325556454432232625672753541111343127156431565147537735472414541243361225413117274216156237714731367422154466517137145667762455625656164533424331334234142311162552471165526352315122535175275543715733515544775627764413322116571215576363674457366636362413454416367325726453323327245516255625565416312156522253111762617373243715755274167375776175467436164465154713521551451211141123131516436746421576735165312434141311355152723114616436171443151271426145331641233215224261675615151165621616142373725444523325233343134336133464676432725357174331543267212641231775367725145562646376226374531637361362276755233164677631424417546575135744651267757644775556423374721624472431326423723571452713524615246422545426711471455767431122746717265647551612766674647752266261377165142335434435712171337146377325743466142676417621743771732654567727735316167242257667153251727731745676515543777165274421423517723514475253552562371744126471364744415342611156227435736617756353235671162271124177674664662521235624743253376716776355744225431134631245615627516444251663547752434452353235126663311571765163246614241555367256717177276775421212737226144162764775135734577711324445243753242751453156635647672436263661125224371726513461562646575254365271531722614354342537327145563474451554145464747414456362231472247235632472715147574443567736354316172443554467342777365272236667627154342611735144774634757647732636472672677423233625413421413627457136437371524126751322473154123747773643126541345571741356172376316673315162225175262331147471331322553362415325155471535665131353531777242774512451625424227455732231355555345473676542154733645751116665422363563536635347544342463362135354643115112537524252437756372737324545445612774412644653673776731424362164453714372766257656463634373511146351772362227225174351177461665632741261524545345112233263352735242451442215743555177636154367124363536157654242752135653313325653237746134552657254741472634533246352254733237147653613117672126144363766372326215615327226431346166574425661622313145161734177626567323271274525242151155464457435356677136422236444552427265137565555651633146723471543552356445213171253571472633126314652416231631656337567754466321715367273357456422471417745771112741761227376332412543457451572765165211257174244531116145224524322234252162436212222237761543275327746355431352574137136124535276314131765132323737733655327156617233433246517273277575231236227253436143633754363342165227243261443341634331657225435357374614761224321143233354137656726411121253725123436775317475316251362417771673157147511462323337476747657741357474345423556273143731135233272332656531226737254641763616146363462434565561425213222672576535713257736416662514745334614567361716672662451722336762353133763263745144422515141137275511127435743567131423136133154544756713611361214446161765472767464465147365426774772212652242127675423352313234634246343651772653534763115641234641414673163252635433765542665263433232431166342726514262551277642256431546464765537365532663651266131115153643436474351647246255167371726473657627445522645563272222334375673755622375452332562615152571471767552712561714373554371661637127715275455566226474145223427523533253122512433362617531213155321656252442525255456423443152514772621774366274141614367666166657132143611627234435754753551556553776267353315741637244623177656265115244515411514432123524422341272627472134214756171544227444653256325531262551472666377355734342115657776255436614554673315734244642142766532423171662232125543336632733116261672667222425312646622236431356546735157423153447322645411446333226745276425771724277751725751373217627662361564174271214172332564657635275343764514745355512767454331252617416757443212753162131675113414444443321732341547163163514155533371732146372457466176356765651171164417247516464325152162757161216641775147617431165414672622643627721524516442561421211572777262364347731565153136257321627535665432435525434746664516572645444327563345171475475156747125673424473727647177656454351362152323773316212313271145514543752215615255115336656774555131447561461117627452441351126532616676744246237176453511523576671571464211735735613265356726725774144665177674566215643555447347164563362462241753651235713146745433774342567716364527521735733416216543132722567342414577263643666442644737326452514365425772451225411225147176367126567361636661322545361472342343333362445343476764433673231374721267534261631441273563175234747175242567654137241526737654457356263353467763721773776764433361321657226236537641151151524164226214321143737124242347532332653614446463776111434773756213311712456336745646122612171131363554731675461365266546765777237576271467147276635473273113247336146215222231234664424645372224221243665211434134576262732255661776475227353176446276571116575616565311236656613643433545436121766526553541431726352746473414474366345621655166124311361531112531476157356174176547667132342525676425543363664457457352677152753634372722321776153722371227524726557753214275172514635757733544421425746476117452755654551734577553447327231377514312757774544632277242275325317751246356654437757613222765737624162621616463351352664263756751551752254112347414562412717624162177414136362334622364466557167471553155113247542161646513633773747255756314377416613463156456662711576441171143124373722657556756237115224322625465667264143647664774426151445114613521345543532323766615152773363646172765251614314175523112451746657745574665216727413633277475252357146625457453314611237211726255161164722667232613726757163671421646231537442642245143151442524671434576654742366174322567742532574365243747177176542637634116377135653267217226173356352773733737636144175726747476445534136533525433244657663533467154571454746511126423512775445453132271575446662444715324262737253573663431327564276737547654661341541224356234755651635622322447634655274131636424527273534171265752612215377243515645232752271677751313733246431144751245576755754775217626673616414431312176773414145327217471241625155376265647453215237116145446164624644532477721635646662327345747425167247242436124772245163766621331456513746652252566415774775121271741445333562757712413712614143151226762447556641712423575121636762677134212777171332523345431436636732462762773131213547322466351255424712312715245423564133667716661373645755513445734536125237727146325134724261774447341155776774745542144573613357314523223123436474612462642326341713335651234273775135333564517612245743766427716632366644325317425322532574416471747634366117262615271452142673117763421343351543463521644235536436172135563751227663657472265122742355744433554543131172327233346564377754322716322423664611136726556574226327352415714565512423461247662534553733635274664136565522611273751464641561167773653336537567175235732172111221475232775753762526231541653614743477567365766352175252447627435114774133632566177524657654516426135531734213122715562566151112725677174425131241721216224346642432531214717755747171724551335411553764476563377316422167213654141451227711232263235454475773371545761161215345671546176676236324123222433171577743745635551513134457524244334431736512277441664432315742364131133625736173161634166663722525532233746546265352771557261533227532136112122766166255164237672655162774476515514523243667656144763174435325166652175374362277675315651422232127337176624755135566365436752253226135711425122612547212721145556363163325746337413535637753632662117542267213154527524421125225346413541662117472444777213734471332626616226167344154165462142276551552414412357774414344461617456535665337666566446763541641717753563427415376233753337513625713372643574435351665231373674376735121572256715115637751457117773626765214225736423432567577571252752674225737663356426376456675263363715527521145127766624524334563273145231254167755731512345735265663415444242156653744361265713572743626233541437633452672373642156357274652126712551637266454662537667355557461536633662627315662657724513554741635213316257137334327177556162354766417244251123656665754554611416351375732145532312276765356331355316711335177442553562327262211142153116626753142527652777232357454175777666113366463564721245224634424423345575434122615631553246772443171667434146431134323646547715425513567364237353775262155757622374752717434361762472627535511757355446572141346627112765656643611344334551526577512712516473164222655333524375456551623572177612177653125665522517613253473374676763214114565747141467727366766655116616265762166135137167766754666556575315623527324432441356145623674434115471534177455473327123472744556436572222356137563574153361736711662125444357435626323741755756145476133571455346217515624411326166762353533261711163744425566566456724366516526745343716554542312273631613474371135535314761233352536127361731144727547356473647334135254257374776654722752265327623442261337636634246445663415511255315331325317735672371143634142673437472223335126365463165473762326215431664565324274573443632275725651647336761511171434721241743531635567576651767744636663151325427377447424433437213712417554325355223356731464426126452446762537362517323473244755724162157342362543616145471166761511615633271455755573232452461631623521757126733524256515663157342625622744746422746621417625742123525122516651745547571672376422114716261156244132112263433464514375125342257772114323575235526346261735244253455777267113675522441643561126553253313234513356534627367411357615347672253612475751117751277371124714232624163767112227241267371773437732331547661172136146116317654546113257255465677626426367245533443762621467357343115144172655323512114362211355566373172377221423134463714151721661272441554536142511121545641631157234472156674164216253246242461414154472373672432267675532161231547216445646271337417172472425612532517373312555417526776231612176356417741316167743742676767377244226113254154261666245745115123555567114642271466414321732645332777772475626775735461574657323524625765657656353123162561632214766475173261117531741227473533223273715233454336533656635172533153555217665217274653445266353771347772777531551335563421265555623624723775164116676241467246747341744344252663444371431454262116322746364642437167244213721243774312151646772111235545131345554376624177711133445133737775462313114414516542275671275215653775476157637515624415536346133433264212264345727461255713525261421133343776472433567361554362544767324525575742237266335764251757772465145631264222256655313411572147665361511132346245116556637745135664754761336343163132125732645445732541773547146442665461555422226414574757164132327166254627751713372617626322654672517372317571727327312155433722313343573554767122243462224437661336526374673714232567673456545671463314114575127216317565533423563123434114616541511677453114554776442752544332323573651261737346314512156421763334521631725752712462667541747264745231234643243323511566753712477113347644152514166354263464723745373366115375775634343612315771631167761531331324157342573264456576617663135157556624263422171157137735232157244726346722342356453355211316322735173776122466324663313544317613523714535775736525765433173765446137424334737573311144554163527334476122515466737244622331774141517422763543435453144476577213364335445721264142445715765117445273156641677323457262161612757566113661162713462511717377475455356756764165543734136257336265634621437156644236651517532452154637673717674337236476452526143626616227217742674546374566473165756571533621227765525214154354241232324616747737523343741416735247373174761174756323611162665412553162562571317141532531737471766265545635765672746222225316374333171554342233546362434355115547156124661115353422665422233627744667345556424755255726233514521276234723664373212613535227612732755551757517241323517332422535743512777661674737421355427763566157257256247654615153634624314211237355372271572371673355726436663621452771757211267536342276264457524125213333463547513734543311373774526743422176767453146377426137772577241352361337543413566471462553477644114137223475143623152341777665515121234673317611237673664754544366573154516576732111472111554222162517251732744146416626674235435715733237423747721572452114761552455611643251242223662772477556115715713441564126375515656733655446341575663276237717575412776642666741527157713773664534634537127724177115126416716452255621634635355356177731643522746622726312256615535632126421616567173635253155737523747621711561672374113431224277674556566735226345157322445165155524362376121646554427754464271663224563364362251623121451771267411166336176524526127466476515566765742761742325246376256721417377274464557133656617534527571642671431126132427312455131211315474541653556721661237644765115655432617266262261315372611512227153245375214523673324524516737146574243764546145571255745751154744571116554571451577374272211714463573541227374565516236357541126476764126156644426231175753156726625236145732313136251145563466357774721625765472326334122451216326631113621551724651362441671522426537133311513262421665644126462344261422573223475563362764744167526672763474655333761266764363355355554725513256646674664324662426176671561125773673352715373545565356335541441137466567327614354221265641725131167747171262531263472176372124222237141351543673144563414635252515413551526125543112554136754235177455441462236547716332247663574531216344677454546373626525175442672447221265753523275757561346536113234244732323534432521565442343575321625257644221363442315453733465667425513225364642164741334614564626516142667254575261434225614261131734133252641361434247737465472575211636724163345653557525375555477562555174427225573456226173542511767466242163534271123623117452567547453551244565776452763743122165744433441237646614214527131341244777354371365156677263215352516277245675734553443663113552122752775566261736323673273562765272462341376563314714224612772422777145364134476177632324713166467513232746427441433664255665523473727235276134177466224714467147542566225222643523544135515531575145676512716267444257132674165673473365556515461217222313113664133571257737677711743274515275532172321234325336423143433344126447673117653315256564746463216153232654542713522517224173424341654753536737312563615324517243332637312275137426171523313336663166227336243115115177437164642361272145153575316715162167556774235331247617357342247456544345167533651653727665173252726544352337734123425524234642153131565122724537171743376763217524572474677262261376626536147232612262743672122261243136144166351416773452763122257662667276235275215453643365523511171231144775517364762211774244354571616316267127515645145463242712173634554566441246152632245446656342117567434452357553167634532455757136163541777765475357133371217312222516517616355714131472613554766247231121657562365445726264673637554665163153211156657517261664641331141555727225723174134212616743266234135751653253576111371216434456262177266674243254315547313761711231356145672227752526561766767223241766656172117363241236756167375415274213425443656664672527542314744364735463141141652723171322636375762557265372556652261325611641451546555275554452611143734721156232171531416165255463155566615621122225356356124554173641631424537161636565367156456742136311775775267255724123772676172144143744462477272123313473324621336633411742772173444715456147275777337525626237574316143161271612755121723546536367115613744125434137331626562532542234632454317735667142732275353776572646471463171176472623361562432636666647256475436717356445612275165752777646413413442315277416225132343237211442116347171132764461635147161245465313422436526355557265314432277721364736521457234354175657167153322615617655612346167554453472125326777776677745753637417756251773674773664567254656637636454654253554233521646325317472247526154531265456643615346315622515532175334711716276142762555736671122646446636467373512767673654165252126713743764255554555133642367572414171471226714463376552712162343643724247737516146115327625752457161476313473421323155731547175113454226466137272677472466417222656372151175115275246526451412661612137347161511436377356326624716313356355436672432577433324735756213231715675142422565117622331263677771477325657137651634267415666775156217615622621774433574264753761573673575666667343613442751447531111451257256313673247454411474415654713747661251566543325354135734534727727244424212633372125611263756162126652372574724245727256464464175652713363776422325434312761561265577226526311653516137357325345214335212242336576514542573436162525455562126677661334614161177253721417722623522656247645164112515566551743324571334332741552132511467665137571633467763152365635114164517566753322232647116672423223714662667212345642543342673336527227476317755542726363664317262214255727724672775724312653771323742445357256357153414712322555152326165773741647237623154322246362371111474572424515723366672642762112242632173554447716617163473614131335635213651652634553212564371533236647234223515163414774424461623616533365636455726527251521723375357616573341242225143335421167524616555121245557365721564672555245224636153732757552531111467324137522541744141127462523671623427373556643267411352633122324756677254152462442671763275547245235254671241514764163324171134647465165372362162461114545541234213132553722227575616352131165626321517111232121712741364374265717162163127341543736765445753555673114525453526733723576475764664275646525711714326676646446725455233225615117442543437473416254761322173714772256432572134662462413533135545654536776323622151223677173757656333224165551675117377411715613536741467335334246276347341222515423663626352765626543667723274746425676545744646523172174425231764564537345131114323533364117216576261235147241673265525337351232151314722155246565337162717243342574117224157137663511113231675745567473117213172453664311371214152233435457617145435276346366115427154512512437314734771626546411426177452734765372771764752614765666744131626467661171576771376166752455541516676626775666625534341627563555436227137725517464732223163531465321334336116245757262617264334775721355275233641657141267614323225264115737235424437567541164325254655341413155421677554764337154552317567715661741736425252167545716756156646733726771517136173673611515473275617677761765775276661631511132632712712217671521516512773116271572763174265446411453763263713263462712442275157226514723435144424615252463277342212616251776441243662132463416536132657166723157446551721362145141245254247655621517512737154662725654461366742213273367415714277164424562475727236676637347167117463253423314241221175242261272252576747472126351571216525645162242157226532466445767631334734477775637613752636526473635432111772665656243445331177465322542741231735651325251271336772156353476571365427235355412421637465645526645517432277741272456335112764552324271437433653212744566755543166527562545223633741427436212622574452727542736422574447361564634311614572774547117565535673367121373163263647651731473373532644775474623121115211462612375452261627413625146557726221447226435621661352766745657563536667632414414552141744632627274774167331113551676613466567671412711745265634624625254142233413514722437134626321737343667341511314557663246117373247646764155326674654112132752377473463777632612361712124413744624263563655737367361513254652235563232527424353412463721516732521745321362737462637232472376541755517546143171264217561711675674454431344645715525615777266767425767135623433216116516525424476376422174351563363254127713362312243465112372531755572573241373627365717331474513463744257427722752653625666457726324653735627226324725515542545417174471272215757551342727265745765525554765574542577161121725523376143653442216416316432633315754572266434554516447373456621525215324367655326162133572574546357222642737662512135315564241217221525732722373477231727434654577753546157271657574775751536316313771515646623673274671753775546237217764667357677367475165652664616726424352432461542342747336711614565233416646123357654576511563352166436434345513661242234424741341223256613563163217543174411656617325217467165327373514376355146171713761767633562154673531244164275474564646126333623276234743452333721475312345547156113516164427621171742166633552563735654325471611114222276665754377165527471652762314545525323752772645614773271533226172634332631126511312532714347357653216563775667721174375742671755276255647335436557217114214372132151744711553521443544274744257566563164232515762236657464172142111426243434223456455523224447551723746312745313361132555121117212577642136567226232417233434465745732235125747774344267633273767663117611326425742412465214524523124776147713527161247662434715326717535527111117234233367761532524576462312534457172541431623776447327547114461511754121274513561513471573151322431143364145334576166156375537173126556253126577376323263756155377246773475345225141577174773643571317757575336253233143544121477647646617452361774422615332472456543435372741742514674547671156133376147434642713574347341356252613646511366576146563527666524716462242412262277157432521412722651275556776326225261443414727125236724735756511327364734526447363177662377241314253645421374323742632161127247774272143172635241524733256113173633741367643467643347765616127572275245331771666313312262115165476323157247345116447766277626466422727744662513367457477471457322433427127461737175746126363226571133155724227231634637455117651164473365627632734511566361467465145465266162365737225255223273117556374224452376217736457171412467327142427646467463342442423562524437761656534563137365437126261744633121774564266126771673531626322734135513123134634134321512434647444115437734437143574566733516542164736733377414764352364536374522225227567521221666215657521174226141237323445635555344415626257154377322776452336164634316345253674746136714347256542414437155556154171673227354342472145264743741347341664623446637745654467655113257357732277253166565224222124451475411622647356244167622735472543323516773731756575557763422777343734735231436376163153435636762265651414557411236735261763572121717761437467524426146146516731233222466334411752765712663571723454714547321316526416516266361537237715636162633565445364214471313374261176273643511341173542674235755165114577141376525771362115513421122413427641413223462574266527534165447524655271547617445211313732576447136757233126262124156541137764611675611333153475122667772162662663565631357516332621521131417717455151315276232315476622754764723647772622544776456432731346752357366641725425372356543576475732667655757433273431414665645442542727425567111564524323176643137332214153275244537261512475112154365764424331725744134264116213752552234657162566171531241173417665212667717255165352576516266265117376276124733661131722647667571441471423127515511623117217157325374436137711553655366216235351717363366267446744563324237776766136374234361165545176421532347344114636365514467261753226352571311715554434113222236551426767721112576243643265512366431426332433523546734453223462435461513656231415311746271647172642623312224376136244164251171456667221344113627545243762771257147161226726312465123411622737145763124617641771622163356652767457772473561562764262526414673642542722471561156465667622312677264376546725742772577663724225144513571364277471647727432244651242622761472541644757612127616632225524674157145632634255337134456222612216322276473727642756333165456576442752632324221527353771537411454553155271733175133522716646615472771647734243757323423417372752353446532165564427672332363661736263147356125571457513153532734763377324247726174766475667264553222245772674513322252652777366711126715115565227446624134163753176177521311222165641364764473114623776256362517475643443712213775415332162442372275534725255546217143361435676125767373722677632536166341132643533663374654637223133771273361744233463241545651175564513243231663123446624573522371762376733711334617673354546616115346241542774366367615453354364121645723212741617671447775424136232124356543743744127711554276121334753641244632253355334663666131637123167644271446213671367214467372622615326362322513632763322343645746661437663144331636372537124527517663741456121115135411323615667655262437233453277631154354243132551113247575135127325663477113371313136121633355321227657671321363777711763432374435424513636766377277217753273656537271563474323254375273624123765775155424167575325755431242447251656532251231154761644652116223322315533667764464647344545561724264137516424262757713577346542277724766537157555545125251736457541147613741726474375713227275142245347633125664215217543552275333256253455354716521474753374146455412167524325311361766316644572244542534265137256345317273544171446631351263121766626647235554622524743763315514375363215674466747534134375256626444776666234122715512153672554437227716532345555436753342621263316277274421217753647225577616237267277542763661256277646741563413533421711411535455353357437711364746251311464232177325461462522337144166344751157223763731424557575325141656654617277412655443413144542546535336346226524267522146523126763515353165147666752255147441441723457777525674572711535663736232416517661451141432414274511433513574464433656712154675346322714454732566753743167657315156446175427776714272617766736554432432114124724433735124627675447574125527121476171674376466134115526372375555376456126155171613365334575344173642763672422573222656446363173377667351522672225524467426726265454411563164316172557623524454133664253552274125262355637465117377714462513234664232725154576536647377552276766421734632312265152171266477366142345621252311216327545316336352627313532672112154131772645574755725312572613221734234421261577413233573674217324737461521611551214455754576421125174246447415647374111662544657366724677733436367171357433223163264643157314253373431416121347656345752114642171545675527664643571275427774214461262733721415166127762672424173121325636111611622521712454774416641343354455437612134272771443226463112556312414616246556614246224426573534615367325272164411333775764331131651723533753424657167566311534723116363717252747656545467753454766737227154451546522372367735443437452361145211174334663657323757734274271733252675263641614113116635455551775365115512663315626421367134244714616377656121524466625522336127522441527443634373255747214135221364546524276626345243254566411447225217736531574421746436466644677527414371451213321353223271667633674434663725356314635164253347646312162353717731334142561225171132347476111213357763352564213437563534546557314224661231562235124571364343263715475511661273725415435751317611552322422542135775642341412414652115457623156547434662743313612722471454171766732431635156546653212251667765761134126745513577232341346435245341763757442132755172345173727463653251136342536356623534146724471617133676743612574267565576146341344624521223513121211652666622156541125256527142353361667542747633735563435441677247336373577563267155421355356472545376765155475412155374242722275736646563343174422142556761371715772651314624466674753662712733523721751333772753453631742334727213311553264462737224437674465526751226645214477432166266634416434446423154625677117727572354217763536254646345456551542767422311774623276143621576642242213445555336657665366356133461511265742576364443113137754313375533327666535214534141145577741413156746732643236632747636642714432226711275521424632514411712455576471422313455147332172264441211151334475132657713212522176327446573244647245246477743264127253242666264217635575573221632547764353461712114664454666751235245712242353564253727327316333361761316544123652154226347274623632163757463741166527453473166541757254324522741622551237637473672627362743141322611633717661341434462676413454646732444443461444725214246414221114461726464442254614322264625727555767526374522112653173674367346144227247522734231552131661525342154162144441163242454633626462766476622357465113362746321176466236132456335247675171743263222756762131174621512222525735457665574776715377562623166763532537217771673533613164573362756121251142242434115334114354642453562767123266661433143571354422111377421637647773327716144617237261122325321222545556572364376225441673424655143612561127447272146226461265172574643764721152375211157275115454742257753261317241346276711546254411476625156713231161151147164434514477215116341367566712617264735375426121765133173773165213777447272115324737241641167622323266227431253656714767117261333542563547765354155455575435557145215672667516124773543425264362124713112253276676354625544123326637341576217117745327265516252145272342264276272645765546414511347565723554365451366744614365332411113577227675745632323142614145257647662663557454627123315713541535524222671537231234674366652744627241522616731743323762657164646673754155641145416715274212565455753571375372742754674215474353151432551312527134513235716544152234523555137733425731632577215441213571213217552265457631553337342621742364353572231323572746213375473731567747373336726232742362142355524531551174775722125545663217673346423533243134446214112424524151713377723446773735356622313711212452554112722426353355416716231476755467572744773321161772524164761437571616415641657741223631236512563655425372316414427723155727316675447211551511154155463375246126553513667742161466335666372113172464153241366446472361132353564232637255313261222361564611376612175133565224437676744335575557771575254716442422237563442111227216725415253526731627364576511541443275133325321413542232124172356577473646371442137354675416543523563241772147352411767541424776455672172276355515715671144644672472522743777551342243357635425665747245555524662276534431163642545663447223621142636461511174361261435547742347542312462413243451533321435663647772142422736215452123155734321427634716373244172374621414257212316116747473724245637112537562723545542473114537224334511657153546213564776451514247631726745212144513213751232156143244147762165657217626753157165371125214334212242224211437545216417137662334441774336663556567332255245577234445117767254124267376733613537313724623532354772733645226413333626427114242742235421454324666362235236664157464347575157647516122546534152221756127644721661614167754552615113615771363563645253451136427231532322561246634363731144125242224556745253245575712127422336467156152777214165676271262416256273111277322122621542557112126647341477543144236313667512614612647111764271724746234316516117413315424244355144677431213234315657412146664562352236461675335122114337215515734351316376143554166411532322134662623553556145653415461532146535736315753567445717556741265142534675364554637532411416634547624373223512114356631761554221112543276557777336332422671323444722242727721765631273353325652444562163166374167217535177764222511717437266766611665565474217377462435564554454444124653364333473557437216553311634332662224655343416336113445642276364526273741372225736473357577336711631345464727412363721771745646733116556457312751242242446134631331226173235422546774237254546673727626132773251151414432126717471554371571125223264736257152231217641727743655314771736255362312477573616174735336533547216447711162342153645522476753763647742147375623171753324121521126223431467242542757473774147362213456525542137334464675323251563247723671113145575265727356335742755445566173644573365334166774212657525535733413143676314375625123175542355636142443364115567312612476523327235511137437227252443574467131153544541615736755222673232146254641335326113121542132356663422276232174115317574717255145516737653763563225377771726632413475474762342774644644647534115346225515153352757533331423724461312774621147454331664636221661121332113317245772171654415615727264364626653343664651233125636655424776573241627215431144537546277777577123214245111216672646477561547452713526347561357644523572546524724467333372426314166446524315111567514133476447747613666226141216367614344211126117576312225336165166523234455266236161212746656464255471247765711537651254752612236117334234735227325334141332565577532246652474525361665731321171764322277457123641647654675716124555776633744242447524125627432117617514111645172755566361225546537571122377217425165113246612556537741112223154774676123715273757745175311637446127632334143542546256117214147151154417125513761726637557274211336711133574112174651645765317543554656237557151646743643313467155433467554412567454741211651657434773742422771757554575773152725424632774174311256627436735141673477511137557775767623637454645375356372257361256342545624217737576427755124132157343235546653642624522324746355222635423321724217671144457274135312755327412233223227754614426357555421562725436762657251714642737663652153517515774731233627112712461515177142752344567753155475535615524542136263753761465126611411264741244264672117246161743724232647654474754275313131336631256552457711416235657275437434551347574675657664551571255311657173743543437336614165322752237251466732376431221737451567214222277113443226347334312572413236365471735356213356611251332545314344337777717345346455517775537263627631532676334373145134711636323315471652524264461175517773635266725214367716466676357341643552445366625725664453312356443731366125716521317246517755713315345347151734174222273277661332176634732146546171337547657772223215611714652573645532626517141362142254544113316172454345243412626234127423654763131566413763256112513646244633257335217516224744126514341725452326147711723337742623457463137461366276262625632224553522745614154664624227622234773255562363677367763416317542233552341566757117227551312365522261424563572514445522544114765224255745325477754625773524114625355141674553562144643236656242767615665433111235623356133167377357756623324557452776623321452327335217643412446646547163231573435356253615152646423543776247412247165555263351334717327245116333353121747315451742274232652616143365452412256454564271376657474733577751276235624436515464344657247345566522224771562422145444477534414456662351446512716664333326667324214333477467662551214435435377117554734663761337347123775445456424237636236451326332523476243226632634657516151174266635453174767163561642547657376362237451741751336413661645715644257314321526552323612717512375623653325467355527222523564614476774336275234125147421676467731737463324241552366221311341354451521252575554173735277325453131214231417356767374113745623226346673743162171721342547341754711777264414613727243331374472772161111563154465373635666436546745257436644412253457356212166764622654531214521177224745354263544742526757322542553267715543721425717674547724273522613367763145545645232234654235417756145453237713647273667313254362276744371413676536215147466215335333673734335227231145715636452325674217633364416513423127164227116541525765435421662374224155756644725635371133132463115422317314677462222426742372673455516656337217431714777241432776661445472532515675416533516727775753633776257741512455746731642557732331257244235563377213466543457673131165517261511532161645322413726134676734216352452557322553265761561553174722366645616155413322367445166471736523413222172524654731637416573565127553772344744456541523573152755743242467274542416671342666165561215565524271543442567747766455767556437751234571167165153131641625451567623263461511237634617172646126777336616257212276671517765777676633634652772322171161161661642646242527621243364573712177265343166452453467136516116217326164413357515165161742553415437456137454636444262267544716563541443412265732352671656451337514761321551344611111277234271361667723271336731251467324134272362473724151663677157112616346676146531235235526623743135162763576442476312175667354567476674164732212144253751777466536526244637267575133431642527464435352756715765672254331423571235153362253161762176541624163316725253512712271327365566174436331167537742363435555334133616542742634732261634373225541231276573665351617663434647434656177647237765245244417274156645655552664664477234615626243231125512712562143265665347375631732522124472616136725652613377473656277541121134736514676336477774535571523727333374163636567577352723116512464114414717767146163456171652237631412713722125645214124232444341471612313416313734456773146614154144466741772376134134351343647365123131227361274777436653151176522224447517526216262251565516551672357427463415244562641412261361736777646371725414661123252221423213217231242724522525254426451113343357574117461553372144722223466734175676546634374677213524764667476167135637466747177442257556416525642335464472313361675662633415363435465736377745736624171553413666526332371266172753564642223473365232351577526634374177213662122646213274356251612312434622235432343672321255556676243545152635252553114132777677514171716212737374525322533513464273275136322353134757143413662313743655516655267766712354553774317675446344264252163411175476237226153617436254462742743623447371277572556365134221534111544573523614251117522245337141125565251641276311472627363477412262726774133174233426464724754274316376621232654326366767466117657471253476574336265164723733717151316656547363212117423726331437477456342372624135171474346413362321165324616213742173536571236452562333115137343643126176211267447673325132766354776626637166723773445341447475116761664662564175552376354434335225323113472772746217145517253716531243412613111131746427455145131256436721233236323275252756553771654656171435271631445644633234231627537674533516763441235441773276142132416266164442656333424743757162444253262635114746321625223133467725433637457245716212733447726632474751735143555566662336321224353162264162456145745261723154612221357155434457264674716433124337475424366724153443144117312756716542171174611265473273235442243121442451141167736257612445772425451726733341355273274341247423267363366523752461722456413554173131451343731271472647412757476773352325721741211464535633674614232473275312522752435237621213735116437277452641114531633154351271235154122317421265262561325445651366171433314524454533655432211357267424664446274556235712333467416462751534345733747647774443315353552634472114511575675331672437116472233354145225625542651115226157363632336752653421625147663667537223446354441114175712611361253265632667224445156767261311336666462741164531446234353323457446325422621314442266615346624651614466552612447516417144135524776335222413761743573426233174464331163435123326577142765275746411511263166311371416626445342123475423123165216366347125652174454126541146661537455467266477245657543651646721167537655535552341224512676511716773177544432556777552653544746646246234767164754733321614372265273736525535133746212472242472222635511454171474425575723362413777457616215265721611324544114474442542355213126171342735336117654727355167472413446641414415363665633543623754322215365127665365157544226535167322141754652411236313626573313354462657356527633653246145467615464553677562545243551474344435174553753141316133412661415742661237645151373217641746271775154311364211342772757763714114633253223134177476765714326137413742463667311467357251723535577274434634765724163711213476366476133435244646456766117466336266114356264662636426347315232162712351377766242225142172726235436675735643662773521637134751514574377763352653336311333732722412732132476665217742115577673243456752213272734131351731132356633422754375417114242345541615671344542263753765411656433534423441235345642332713272244527262746753527413737147577614367217575412775737322247317471226152222673174777633267212241274272325616327637623331263477537257423214136132723347476747722747172323637552154421467364266472573625422316514167235264773653732335167412273772635464255534746271117152212512715553261145451212413531661743353137567565344454525171276364521144213373226575161767711651244467212441164734453543645133166426446724123636213677174576215252736721334626547226247626557465657453527211276311235217774144631617271133352114236751152657234424354577734246571575724372236662327116712547326417311651275164437337331615747511651756277615242114257231725126173211131112646161415541734436256677723224327326377754141415342243254567231253224312637762436664211767614641372724316276543541163351342736215576246277244411636155211575435276233243156631624622453635577417442757276261454157334727461542476713124753221537462254334377652462175574715261141467112553631177327266566526544712624211474614556465455321315675271523773365152133567424444246155321631277774316575647225651477341534554554375256742754553733667142521215536463261476244556136733315426372141551537466133145752324755616224463556625431156643114422313345623261154737734622242724265513274634152445451244367662317261522375612157626733373362433552634155655254235741472627713352554153737545172717146232232561656464161145655246142676122412627656255372251714612213125376667556575345654654455665111742731616655422177466123622644741233233222654275354176462655353476732444733463112521461665324664566733427166577652732111754352721635317227267375567612776434627113535667677636576476775742433444137625676652623572313377444711423314275153456726366616763464526266725434772674534535323773465274175742442532325661534233663323123637164357622322374721316642254557577225377532671414454442661445424557271255355416164627127163635474334552227162771364365374661542214564115215514654213743533521632427141663335212543241524116113455362567134665141456531352172431271547663242666234716735354637656724114531737542144156524177265171672264357325643252233542472312363421156271175313526714363414744225322353352124575377136317774426161317745251647567472444443176714155752617615753734367624244135654362662762451154473516322746535254453741327335716366222526411127675163314251161621642125756172162671132651676162146467266116315516632237216326424373322142174645432654776741714344665211527115761265566574564132417332474515223443322373141454626742123574437113435775272457132747263552216136562253712141255551421166411333272421731335364233314522364416626261364421266772244516144416411431566132167756373664667342212245224237446543474772357415536762526251226164435735174235711521173621153763437132653316121372412715132527763717376537551772353455361434543243174166153244571757616653336654173672421156526634534522755733353644216234176673365737346742461765576331752642277773121624273261132775363667717716423415244463677117746326226321373555361147431441545567322365424613541546512665743533655224166561134212773352167452731463361347353113222641257124321577736253222422154437555551322363375223655711235671766635651227461324671412445235434316215221266417711142425241724356366117247272273421553477572236166777134245364627715344324557577377413727457253243717533317351227361663542677135545412142271233352351636225132715556754273236554122216732655146713612233666554366671463761465267651775354242677667647335375214162373137466656544637574333145665716223371266754437417232556435247161331447454726176713172136763672145212246657557561371424213673717531656645734712133114645325627673172676463764371623226142735725326415363663323575737754261653475256625325646227724123531526177636627463156772273624171264273267141211426337541132641177527246154376441313267273377521662577514144172133552673243224212463444767577113351451174427141427765374454565714162172744761734142522351726521236557655354461165356625616462514553651375153263721713464443635214661731547265567161341176351121471674757617565575632132661672153343651752132711413716166265414142446555757142213415425243126523761746553661112463125652364246545543427775127465617566724442316173346447251111711161664337462371756512541753754253443716165336523474761256463271656167765531313754463571336667145763773446611125563734277166114614313561541554343757367467477772323671746223651165133773133743315565762574273222724324627334565444242434154515677453136162541215632275623374165142456255443564357677462723431146413231715374133723162464637154625242453112715211436676371376161626153564765677643643472633542734543722421311276562233425773265632144417531551547753325124344131456227174261335232555366124541626431552167223736425164167554656513767176111425457167617665342134323422443425252372252152776121664136362645372632161416716532117414344641461673112262753736146211645331472551161377616211726746734577746135354375477221432337333113711723547211761723177442375616211314771622732133434477741532563525125277574726372733746112461743664325466761627224537452717774362133663472574616262336437431771313763344533213132475441514614655355622365525142571455425277776624425645437353524751433352463255717614357475767356532161431665467551216257157215761267444443272257311336343354153313257613134363323457214651371522337232646414747475336115354335563516774644332412145147514337116377277664221561716523513236251211232127552621622614155412436651674775153355357631246717154742132542241665432415541542567374571654117167622264651724314333714161571517622131515621451724325635115177151464446231476561233127632441466526273136165145172514577645124166626221147755674156526523244744626552666654344152735777333131614571756645411237342133266672654233432437161474347553772671276633367422547671245213524724143125554437513774727652235637353566334717661361763157373167714574331131737267366574634343355125462464577616536526312657324227166225714775762634556755626451356212773473272566254153654413651512671352672161675324671451737117211346637745235177471545142764715252146743656477341435232531243161275212461437464547263646672271332743321454434211247524423734266474725254721451576551122526336275677516212357427376421712636456256337261325467327272272556425352226234377135777127356625461216547353123727536641615677356461344413716311275253244734761731766526221742271721245741351643653625646755364567523317454431737232726714454222115436414157364311412324152413714557432256325156211452251331722471554772633441453631747773276347526225512276354536644753264131214745617127654447333721451754176472364466465722765457525634234114353712741653162521612565112523361662177365514175155435345531157257567517471717626562325272371245225377236347433213445254575521354173136163127547774433273766215534137136541516417262523121753536241355232374255114456172316762616745551722351162647661721617161775544656113233327415516571611627575163174527161723675566761752122547251532431654335725513511124271316561746143677371162533644375446226422436636677715251555376143674456712714663555313461317225615263263563352531461747172223776435154323651245274477417632333215714456754171531273354341613125727364372713266326654311361713416456125427737671557211341431113752664447433313371332467444655253433716752374645177446414171616262673467621226636763744344436266545115116231134723226744321347115627337354566163415413154271212174737165434343524464611432453762365364127565157516316453537736375133656525442324245223476511452354641524372634452273443435512637424577347443271327715442232425557341365342651725125661173355124241277744223325136635636263176524545551264536341323126155456431114572521375143376671615454226437277472624437767577652437162725746175467734733714261335333645352163732736541152562516343626464773276362337354624114652236114574224164311456241553247573373664375725457424231417635614245635276171646521334315471161525372732632617471635275636144236756161344647626673422226124646545454522215371367533155771455432367743314243261335642441526252522627157464123246644211262321563745663723524143646456516137317623471724267764367125117623655547227421156756475521422313712566421553561565536327353515217566441515164154731763121412322272135125725544347446747212353674211732545411755732637642177477111213466242337242526422623673513535215231464421764536632312563256767423552234422175777122377524524565144456721341232344414575341736544113724261375541172461316512567217422231361745246424566546736741712336366462217753343231234231332555413353665762331743766512545123564223572211633631137171366177456111462612164451573574733643522542577672171556525216622276561144225325435522315136721141236333166527464156417223135143365222632523563367141164417135563376562645323643557766447362137471441644376654243142726145257331376353123112536754355153711133174633255557743731576325615112431125432221134441421462243644726232776121335772254322637235646752143665121531166422716621336324632137533727725776261753126757334647733346252643672667311217353131726462477674154353324535573216312167437327146474135422363724545165742164717651363745375676353153756256566645674217747531375713412431277365756476474551527422773135256225112653533222213356446762611432134423775337451775762661242315622254665327455466364454611131723352631473442271231617367473666333626166343563726716755116365131612511545735436247244745515337411562756542274137754462232165235215414467612426523162325525231163745314475646412137353235752271575246776472453575543166675114275711622552121367255654553465124626717266567627754533272637453735646675665557564137551745172376274774654321316132117123523163772412217553723627231343634234644125346433624326332567752516173525361324626457224514573764774247715141633562624474165473163611511336311751253514223762377551642174636145252643264664124213261461265171637724343122644355775765775424671612257563756414374262653445236317525514773753323132332675521452435326726214656251614713556634117633534465142776157541236232642735321756474674522617644656753457212311351752533714111515423151772344471516652364766736672327337654234474273331141645636757723772535265716353566554241145247557734443355372541536243267775753156444771431615767775423534223522475176133234742133516351112365635555452674411525215744254324217764423624466552363277516351111117562155624462622241333162174374363612473153346563627335656227766441521246564433735672557472577344426542431165451251326476547574256134276325154262335264341331747763374345153663726456273236444432671436153432744622433766743377476633641115323274357666552112751755332444316527264353131353552757414762322214232651274422711116151556672132545142172644245255773747731244332247466654367714615221224341114321376254513514376127233777177543562526277562233744161371411475764147256346463757477446577747636442377223172461331415374312365223342475714353426567327747116721465625435264436314455463414376345247613523265137565333673334261715776351577474453216516231661761561436515566234656546353441441527663545433256734771637373551632622276643377274676172732477564166316273433554344154267531577177147651323672435133561544614635631636672362426233521775357153537622671741272126311417355253647521722225246551412562617544721764175421345222463651133177672672422364327743211476621221222322653112454541762243744157371433537132476162262516712531557624217323465474632173714276464457177223572333725336641372337175726732321565177734632171225344136642274353163256762172335751573471527245554213172222345144314743735762551361562123361174526124517226574523713224643764546357132153132424125347144434111655672177413766471245262736347526325446576217757174723125173155611464336147745755451774674222714252175733747535313412113635146465575471664641571143455731555314264745124421571775443147215767577373776451421522366772624522472432723751133217535425627312543126437636151562445211773144432755511614421677145767171575252546227372753753151656576666415552514435724321637626576464446144414161753376572463444214751674356165263634673153626251757147615514243626327735427356454357352122556742614716442516353612756151437443524226264345273664771616161726472214744511321617317471216472352562177457623714645775237217346425736613776367764563477411445376173664373223232512252224367127137327657473626217335467117732135177775135331241273143255167474213223727552666627335742452521132563256134424426362756334677674262677474157512431546412162163411671742456447674162133341447611112127356332323632144372546541741262221744277572117546734517524743355453173763374452344725617425742621232442112547663466267231746322435712213377357737656762167123367167412651717712671677217132352261333427617722323372424536154214436611513676247471754426325757513464655356164233331772525432473753447374122436171367653327557255423343164447261417575131117126671126436172232273353765267273762113751567173223541757677511127231627615725336624712163755267272376266762525516221527236745766235255255336227142323357144744676535342716627635256514532347627662427727613677424316753316271277532434416677531371376647667677753326171672566626757744722123131572573772157152767164467772216365755244363362677676345445657536223146574144243334271635534476227624675322746471722774467136762154544367674434635736325431337434212741627374651455426162225271122227211237726773445464626436531753673136221122366234625652435534123336342454633547242127363246641214232317163541474616654371166227743214124571542332137557657512576126541221375521643722721771252774752274234176263675277276414523227451764473433132542572345126542626626277544156434515141563531113175636724332365156654642336447141744636261521235214712235211215312774633715147752553617431453314475171411214313652143125363624465274245276732416534747776367647357175734647771764571461311314353363157553554653332561513755423743252326565263525774266655426623257472462211473273731616341343551631277512651172564564432655244337566436626145215775447635452725164646632445277177545541317422322615662737666577545221362443565166656163752733171624752225614514471227524137457542137253144616265321413125163136343471776451376231262424324747614243454232452466515766422125115443177532761347112777642144556532743136436462514674772377164751245667623462743344634175175672627325372642135573376616515365541512441545762542161161642372257247415671471675214213461631745773754644115114625345724771114715322777377111564437133622644434356546425547727362415611264541376254736612575443775565775352572431124775255732433121712456527162175576323126372514775142135234455234167473432723314231535252626353152731376517142564631457541517714221461331355634321565443515537343421555724577342311155436211146412556362632666117324761712236266444462665164775637446541173623566326516334124527673651751252432455437272513276265653651717372531275326417131757445733145214561521442314417424461265613424263355532153425376135364265427156415257476632451474224632315423465113252756125254676362533374643464773277122547347266431772356724625146161355311436363572747642323121747715436611651121314472644346543443227172356571542373577234272556277317446225372622312246755222152174131162532135356512417233537141565564157352126111351374561666754443252111324334562622371577374151566617752316155346626767636435675676673234742411472461464446127676566172517167121276455712735624564564156154267227154665151543322112527336744776775474222476632143435377165674665336161327214421754424524323172646655617621473472253536262512716774565551527261476151771252473462147515671636676475616144374654157732613675676655357254624272677613213414363257115233536367551542753433764321423236512557424511717443153424566172664151224776216244443124572574664411523312132757633146525164564124216441753367254651442267746341771646644363411177153462376324433637413253534645652123462215657344315733415163641272437561467514156752423332527647773162227311616624156413665741657366522552654635353223521216214343235413671375222464135357272636252723314343166445757615535732746152522167575432146221723426534552624143222775272115226562454231414137353652462614325314462115257574632226366557323155523134563452235357216114231536211615473651764623655655317363224326256654762554751537272342554326335214523161565641761214472145171713474773162665764726566714423625254664262347257552541532124416125523242477525623166243456136742524151321374165576532271724722274712154214634414367511612424634246644265761442162254345576273631514134632165214531266645575261341153447646377154263757647475533647313271147265514112116156732216337661766775565277511326222454371476565376165775656617632171437517557226236135624425411721775156126157274771662335715211327225147655766356555712572434566572316464354123161661242414153743214142611313633722137277726333655462653714477672726757742614312741335547376257661455463665315523546433552511467646575164735517774751325677747745625545131771112626651531645633334211733234356637634611174761235656662316654436412213432121244723621243137513465675252553577313574721235376554345262337721651131544677421315153661225227214421675374357411125325537342473156246175633664116557432577731445263112765364165754617256363427357557656524323121423452471653671646545426252554646274354532232216263745753232635556213667172433253566356512775542474763614247676164113164373741222711312647621547357667216524736131261555551634563551672663357274322566344337116373554153512521162432366722744673362176347433551115344357644245673124142125412534271735124557341763371673344727456552465743777217446437163576535522152657151271156122732311264646253542466517724535722163212676534277336321314667563772333534416135262135256646635245462145517323232555212117774437376474366211434712433743132515635616345157233634216423747321215166122531645247562535231273324132655141236653131313747267422126313127353151564525233261323646417122247555624317244472635213763774231317273533641427573414624233767711131314717152143475167513211113326451153167313644464335757171533561677215355743512246154765157526627542377265646164162562416452334421551571355373713173434272436161255325353224615235461221563413437272131462744671437562632373546565162237455234271266443664347237137354331145575623671277544651614632375513263666356466452341341645115757267566433273251476443641451356366354112542167321274561746163623442264332547563723413576475177534162436512671262633113763663657356511372671121314636234623111145727261462565725417333625337343246456524712474255372674427465721757532143375132663153524564276464437644313727325534717576115755431515157552513467767746662571253326124111253531537625673153167523536136364646722775576173522675141763623377372672342163434735541537223463522612256465642344231225336516162353671547344572314346712774614141332416454133376743653243644251413665633247576472766314772337571171654271161631137772511644524745123543543536753163234531122625331675242546544152516251373665527621356622477126466325444723516667634517151173743574342144336215311162712212677266733231673425356456766227412332334751741324241277176722153326452257254415742253353354453715743171226661574721267614262574472121233732273576624776435615355577513326536116611372345137765644535256133735737767324737747433127744651354147767112436423476717615412547455544566721774353254355735323267135513515716343771537343174533447227411373137527613547747633277213264324747613673246364356776711426761455456155413433167167767733723272657565325771311317326331734345443521264165225257313156341776554135254764425354474722647147124531357765347164544245432446451134263151724744321745511154613135564173214617351366236255757354133544765565523762616633547466112557166744526125216172445325225414313317761773625545773434367747512143132342724562362644274117157264671144337176356433243653673731422435272213247712447736435631773347276311534546773776551344554212121652635412313614661725412224425414717551123373662765546767542474715153265426116326263773156417127626236177711543352762361331344545361371373457724224564517744327257316547114717531177461366711147761745647437473614653112714127726222727663634225713224325637742564166154447172573235577372475645343261636737227533412452612665434742745747763666221475776156122527733531627126741727517436251523425171263315172214376441377442713615743473214426766642772747247642346715425271171664263461325471645636512422642731457126261727224721772234421624761614732735151563753177643634434435222525223311717337334531363145751132745217312344311164222536434557644566431666436445777244216675771541424613557524333461712772572745121512257243616345347651147345256246566513173137665554577623331265244216436132131677267252576635552262246152355456515442622424272421735632271635417153355537266322425212331415366375642415533565746551613145774624311763435624411465677274774577341537764466137376165117417277124377377155771732747651622541653313343267157362477564546732121461716344343471731726473377672741142177434614111212261627521114237431313765416427636722173114537622742452223156153765165516273174412767372711535724543335246655237445465567642555232564471267112166735614617766511177531757777217212675455564345454347336236367311511256124561425253226143711132214242154533675524745662173317627255552245525471775665115446437566234547423353453242164641414572434171234552221455755453533114356776121471722777666345527232677467312552563652732677352376455534554734112411615275242372141624373165517757741462315445763164525144724621725175325263773321773527212513616535277117427643752533445615277754673715756144452525272654514622373614412427154337166255546442563153425766664431446475362226414612264752752316552423142364124526135434721262731312617156572253267133446676213233525533412547166173451457367524277753434571721631376344374466216115447131134227346273634213133735613526741363217236623354656263744236123261523446441176464373677432235654636214241241126457141774336115712632257375417365372373645656546631165726561536356626113511456242447343133215153735636227354112355413735256164467263275244745213754267714723362417131644342163461716121623151433535633257577136137153235454626213765224313416333347663331613623233765336761523157255472472765411777543432424743751622171417251341326652134637235337431571635652124613126422535361433524676574117561174156231761735416276766566546756353216476513263173112657645434272623553445663314714373366122452634212666465116527151377323467654415614562264256253423356735724376256635165572521164532425227656475361116776251277562644466545575245457257166316376672351236616443311246264716756547764227171746361315143635543327326747141245264236742435312654626623737753513235743316137326617573765774445662576737743115666657155755332232312126112612312376325114757273433755567141312552524346634764231636316314445614175631534333746142713644212713433116261613211124335611343454716427256437142165611473737275616562526553557676467631133754546425576545734713663657762377144725516453366672261656544714711423364243672551617665652353763124454111467746741141625163361664353763142237743151244652321511256455171315421727235532765156315152772733674117724567177616456354463656356756751441451432316245523123157755753727765142474217153475713717575217316122252712131471212524564424456267427722235275426777357713541317463456561222173663611612257221156525375536647225627617237341475341177543536452235135267125354712221376543537744551217331256667771337225467575354414356563461372424547426476125465234172557576752537462341255734656257524415423716666722351754351367332614467751556562611615454472436731576574552527112113747431773577567546235417532734432374464145234111744515567773337566445253777472515257726735371367324232642623774621524427357415451165351653243544727571547571446554223317535223626615761742116754417137224745331211627124335133613537652245712722225137662476667343337545456567112636625155154112455522261747251454446164763514161634144151116244727525235415224477715534544473174757673354216645567343711461771476357675327215163117512561661631666657522452251662754123213415573452424671227327514327642173563232475275211342232665642143432764225744566624147435112436763261714411261253657522444676515224436176334341637613257546637443217736662427622524231126171256567564563735127211625137637155734714352555351421613335433347244535174453322363445612554111234517341676137357624525674426432224347347163222223675475137714346664631641363416166547442455211711574661627251256742617355776111351747132261276273574523322343471415511647777617277642215541112162634737737732151246357125235345547154367262477614543554317245622747475414755656433671432456232436465336624522354745271357313466234161654426664361713241113451314113271654533263474623153321453274534613365715455151365621166325761542111613447156224177127141657734146336564612443244266274352366772646436117465113432452121357151434316131277672364423534662667644474421531532657422715475665641227761735217316457741612377755167266272714154722236317537445344253212314132534757611654631364123444775477754552542621324463215442752613621466532124347727437274472774256225172324142134116726567766414346247311725132632444413322253627635676777422516162424755273476472262753735327125466765676247726344643145661512362277157775617444221534324415544165713173765752563536261732525235635356655352531115745241412245132751645514751172715533573227144342535317116136337214574127133477643574415432365476746351375645742412773645164534432371532236723255364751451234727246423555446755524313462516317224266443321337171644113263723756465453114347247433745265676164143612122557564547235164543473171563775362352735762561257636336425716545762266675155212275132113774662552171671427241467214415116675754264353424442421551233735625424743471133617752226453646547412727366413765762275233537314455767637671376776235652135166643331434434454464276175221727624261425171557215635636367373454273246666133754547424343313657467715613616124567642267517115254165547231742422575634625636445163757763177453623317162755523441647657267324615256264463354511776763621543134653611351615457457456631725442747227455545374252221714216654157113162735566314537547352157566671326412372224676564613721177771733714234557137115475111122222235435261536633643324225227451664341256241225473744466222156346772727554767637144513335633567461572747457343451132514261546516575763141175534557737457534415365175411522466153747714667331761611562634173721324326615641157252227374124416541372264762266375436476177641525656164674713733416356265253325223743533335631272127157715241163477763316112132455563564311517161156411422545114573161522665673712753115472374663211373663362653751372143362662273442721256445754113426646324444777273411355752553724711533211611132364522237575276671764414574677745521754634345334444174444235242114271574232765432141526333747352173152615715551665157772217336436754346136726715523614744161744643367214225127711463777416522326656671323246136277611542424665543433566773611647637625257556423176545556141136112214622717651171156633541665575627222422511721746632316475155747671254325517524417642613327235115342663545536261255436761173515441631215167776724467466477751526713733442532444214143123131213774217664747324735443165367512212642721435456161746445114274416614275242127737244172612343124715345163374411524344436762275676433252422262245561335125454134716235476534152542775571245153444417151744543627237727154752321651775171656151163264211675131146337746244752711421151332245361214222136544754225342567723553674426633411116442376566461145545271264524646574634614463577355114123677463242636427177347415136651231166524616652762626677423277322541412213171367663444515745711354436541257417475152533236747175537524552423553371654211275124577653327571167427575335446141631725251122241314354221754772156161777212635666435257365654254172212133417217153571526325143454775121553513632123375337734413113636715276662174334167264734246533345254744254517335354641465342615324137466151173637335463231431174627575512512275137771235277427172161541122333256346371722173113321316427763371146116221331642274436217377631744645567633126357722644565651655343113216511556447733422177264732244556427574352255616227237643176655421567234453243266313216427414157146251736254613543763746777525443477664623213667376773514557433663742534165545415474755443425115322675475243624553362725376211652243172637132477125321151162267524734326341511433355412622141224526362326561544772552144261423715734266745223533772326646777317124533447251544145366263164225327714452361555261131656275727543653417657635454551656576477344543173261364121627774664424561346656215333146337241727572357525374234777475441474566546114156616332742173646716475353253562553376674275462353123652367757125465355166535664315773243231143723667567453242673474717333451752341411455772252632334461735234367521576276525717343773716522241234414334225136153643153746354316141575237142656234751444273743561742466363461324711146666153442635765634173344745752731546214367277773414637433142344521543214133123474761735341416267435766362775454243345714254713147755514626553171536336765476722111672373241561544371371131632254234374621167153613752156233567113534335434352754352567574153263557112646415672331516677324633222142425366157422574454427214535651124763661532113652433445721516727325715171313771143521323374366232144753125415632124346516246272516114435277653275522414341167441242715534433142744175642661725153444126673117473123717365576374632454454675536251661521317331135374141442315144222473525562775435243316446344675736417177477253677127775733423137172122161116476421512315757273274417536747516361553724513632353135117174766636714317771264523126546747545531442262161227672215272166743627653773373534523755575713727273277511141425766475255666361212431513527651361331146745664724171352644533672145263757635321147275551235535743651166752625733752536743626312671717625226723231473377573525725736711644635257221662741325727522324427274613646735331454155141373755165557754667412651277773143452251737644334475653174715433767224221124661321127521222654164276632643441564715666612111536357143241515665455135135357323342465712762662426342746663636364433333442721162127413213517546211433716222441652614346536513425462763775252246431255741712444223431732646773156164777111356717363567754774313323623633762674722362261767521144345642332731332552712721214322766652127212335624126331552213412477621643166651263236314425177237321376725673733446471143753175121361262743356724753766373673516545765361637541137336355754426314113533735771275147166564326267662256472362523246255135571426516734763123365513447352732114765667257671121672245213476637326114143132345445662423163756711522247552627464265546145442334577134773375244662345153636253744747451771534214551475671616214612556657742564132311112274225516763662565133557611132252715476265654132645214315527756257626455343656143666336772111726721576333637635245777711111324117261134316473221737627142363774134247672643365357252367517227723457437634253612746315266111214451525417235536624544374214426174256737753635631276645367143642471274361755537661455374311515154273633122676675643414735126633263657362542422237667274777673331725744232575627715125636525167252167573744446356252644626435564772153541126663671175477434313714222567572361641142731115535127551727777236334431624734511323371513473536361135131625315341767742321675533657562565225153153267321571344641521177532441656364245426544332524623616163161611444275153516767353645644142244271737536111627755353247665273633625111113116113651264263173456762572174514325623752417737476416575175556372773372553565636566345255733654754413761347242711755473377664372654353417423725122662333233652141516161143535237537152464653261352271214657413466414743342662727357372767132411342636373471514532672761674144272375225554745521677277267715524753415364161634725135165775551256637466175252764461276776555512466445245714174543664665654434774657315215626413672462156423214571541372274135326664772743355746123363572324147636346543312215731357537761466352226174335645557515562557736575726727363751635617575764751737431334353561754656646546353347324556274574764443336314132666521175715564262637273134551736621131542222757354363777366372364477555677174732561752127667216666634324335147416523646734154143146411235651713666363165573317523463517216426716654254745465547216671723564575362171415353721143142134413163721231313137442667263316151366761114255562537125734376213253142354671567733636423262214642257475275443457142615244565242477451267145512526111745524242511466576513364436351344217543125173154734454131155132654541143663271573341754763666154441545244554644312476176554473147234752337724555625646415144562574313546541426211774635353133213744217716241762162645413126437644356467374473711165637341275111547525455235425535331255376121215251135652334277633161611532664311315273545156251457642126374746217647313142756245223525355743654557513136444477212474233737416773155452325756717257763376347146563432665562354471371621566673563235423163321667121224313263542765526236562561673716446756323632413436475653754444227226151454615361231127424761523635553622422253376611653362353747414717151476736636715335573266241652767737744536531374753373227224513416573357332363772432643615357637521266212551761134412112657634526744556725223346617112376452734641326231754371262374643571715573634457656315545675452743254133316165254775552352121314631245675674332632417636157232626253642523246442513667515631133157344626343371461161132636752357414715542272452551755357154313244554442571236374313732156571726513147436542413244556753744756621346412467537145522522226615617754616145722235621273415477261265746653464521413532214154164212177776236717141434656353773414735624647431546513372121437772574267764641115776345541525634114624523317321222765632115511111664355677642755163767262732153253671461556755574163121225533151442512756655326146341564356755121371477455227124651741376374116136315354716722427623754624435352114732533345516571217572336753373666131475256236457447772517746346252323152164123176765246353216724356674172515716615522367777513252151551141742633326654555646275312477673717264626414262756775437776757457517262133541157766623523531577747676213471676714767253546636724623645214225125615533216111714377774626447152753527732752244614675271734133331714611215533223724533545352726717477532475611272655133762253755126271342242263451375673121437341252416522151415656545257323257375636611736261165742666622347317164755167616636334622514151111721316724116771745337621425425537661474214123311755146111652534624674225636371515213223221574357757412175146126757463615166624532462713536541455414115725576262437742225173247722533324715633777164327137454455742265665352153262733657716465351566355223331751144542633412137317245151524622145523125456612632666415551153361253455324114311671642317425764722466121632472562655117153661374432355457711257464266273453612257515263364513441217736464666124216645264555133144157737537351763656476253176314123715771626124513363371577542153365254356272753222542533676124352171637657756472656143333144672122316363471441636534767415174327651421767135221274514644355126275246246362213244736322151662673336354123455172464336544723314646665311646455525361145447177455445275363131714533741425424573237667527243343726414556221771434333415342676212243621453654616452723661167712235431516264566525721477416517623576767675364336741271152734727477266267715452465476613217511642672527432317656326311732623111277462444766743515446443636237267325562271166451216263656472331453233453552536551471755536763227553113462644623762751644653166253754233437122317626723577726663363776452354526621524214177175533134172237723675167477222132715321121253365655465524547762264125141276536323271644411416745341265316361135444547321353447264423353173316754431562726264214565213624254152536674165115647235147532157566742542241163747673571453662647445631166215572563134211566644722425625545334674171431577665367441324167632412714266256145675741114424417642154463422326126714225756431415634324656712623435156655622764651312677571774341156144735125522644744724224751766673276112573157554167622217226276526337571276254673655766127731674641731743551257545344267353544221314471667115762527355313657313545174274175714166135655243214551271712432133643656444162612366425627763316763251115435517147122773712332232551663546336234255446736372425164153537364327655512375325676516135472531174251641222745545516443373467676215272324412376161644375643722533463625377421437433762557151325774356177152225167576764771124733551462311534243322121531654356725775336412745361612666143477363773536477574444534133631271221521174644735572144646343352575651662466162631146644677135325174273442351545662547126133675416136473621166565141754767467321145614375375254667166565544667774465715656475774113763557336247577412377137647457667354271224115745216123217146245272623744556364274726441366274733336643312241761464337566536223656542114441437617454434416432627665116552635737674247617544745735446325611514414131121216673476354177671742412135137357147517534155755262323535351317424476443261676424556233771242175646424733133765553577766212333211753365517176764435344355437142137366146267275731456174556652175123741557576473647441146725244745453541521567154121345347763561446623774764172514641464574144377263462262571163561637217624465315663223313522761145176172631571251512253424643141567377573552761753361533336533721752742416716174444521155741433642145276267111665437544252424772175736665715115641735443525325446333231732742437522357642413367114436541136371443672577157475417754731734674131332622521561221335622735415132254447721167122256151343115617246123725134137466374427132634761663265677424472341674711275673162371772145524751351153173563272533743157633441576774224514134477664113275533613514245636231772661362612466151432755531564654253322523773777753252144214713522165337647341446764171633433176374231235262225233644646122522553176212742165617375173124266544764715211421122152661162523577276677512765166475673713465755675665537745556315175516156543442122715711657421331113712665333655747657746721154365666756512266774663767661177536324333224434434312511617111153626451673456721452544724735144545572572136131265553255662576152623213336232451327546246415333615137462316654175253711652425177513562734612233141552537111712674242555136462676154337347542621256534351217411425747715762266314177635747721752657751556765536236321736721737224213271261663677443636442546567311541761146537513767733117776727213371516453343742645367256161171447621567113321575433361276217254356544446177251613242262213133677443127641657752475635155462752737333437536424654447255135334646763246211154541216345252614377267475436444121354377124215744174245617565267435775771533347146453254223753125536447612145143122547173477673466432333441355671145164325426175732254531677566573421154637537224342125214164755316535337473424161374125734431173157522563135655175426323666776474367546763647441123745344243175634621517274152355562425143562346741232143667226674256764342617475637754453465456113773441721762454463127476244155565241233342517355561632566273741665111554125764642136474223631137642717513421726231772515772274262462444776772624135375116236754134471271771364116547452215173627267477517637247234263314124577536577547545472424254424146627574554543616456621435717534426576164547731775671735546523254135754341354454334447324116444151645372536275642376431252725523626555132152556726662626137773274152756264453255235346241251571326525534111445253616544552643764556423735771716211154624727226714546152562653673621573116237121675513762161541743133544457472561433733142327435757445114154242476172427542516273351752457714364365427414555316743131277317136555337262657527324647776736743711444564162135166564653656662164357747445651467446124373352612336243227174253327142563732322545472723634352675621161474646213654266542321672374323563267171367175764315466536377646264213353453242674344227146733752572241475722312146461476211616256572543254516624672634564655663433771336177772461764343727417154554511321421657745471674745752341112155237316313763163467176432654153615646461751477746167143337746227123163372441456455373725731565666276446612751717556742544622512332116167415477365161444746211444775675535416434154312725756223512373257627673322144256663576256527136732721452667275274664423464477314515653242273713373134313163114475263517136521167374625335636325144434441434533573375221625647444117664737473662223736237113151573563265126514147344277172516756336554476251754612331331521517543321761725114614147314357521665231337422243724441572347333412345312454571273547137363317651274146273563613277373242663661711414335624214543664227327515577657413274526162541363224365256143115435276726264213655315232737451223733654564326515445151464323445741337115447322165673741614141654126721664537636436133224632727332235423776774656653315771273337563324623524321216531431667112172323715471123155127274452474773145535316311735452511246515226632376341161175644244272154675661221254364574272616345654355143167374723463224526353351775412121751453733455126175333422273525734762415143556556422664215476361671241646334123155253764643673173217414251773372731231725475615137162527726346642676771532324246356447533467244535435522744367216162336574531215162643147476527537754635327442257443657637522675673366711165414351746133714275774424346554225764171713215734434267534572235734343534155542324744137511725431174541166744176514327362565237251724143737437421143262357764122113616212345327524144211317711132424445663525467114624754646163324771457132612632414113611526742551636643124326551262652643551135221214527242237357546733427434355476157715337366443237571655413153162273136175731465346334264412132351755674417646564336147621733371367267641634613356252234441667136255252255636253112436273273217126653177563522143317236546176112676216266531145416332377116127211141651544551412354575416332342356554532226361516366127762137364253646157726717536542531154114633136645637431524371555662213767272155657734717537716475737345264413112275776762754735621556274746456616416315622315167344175661437331213144526767677544454143326242462677463372353346774321643571137427457617135372212634731227343375444445342712242526323355372643577134772274427612644262632135475522321551114216462112315521461334457634156666536156217152137354733727444233217114745754216335741333217623244246743441263135633657277263517345131516726231724411342351732777474654667473515147313552556145716414162242413331263631725642434215734247522755264567553346513244736554626733653421377734525242646634326233527253223316667515713675337262544571213545435526427716433552727416621215751432314374351625231273766776514657117656274376113332647451322727642626656417331665751136361564651143641673545625343546315563252367643134411265721316246716434573567113643163565735553554311771357377675215463357235472255364423553633363142571434176323161622111565224422761745545317726112333511333616176312156517612522666337363763672533741632613175473227265464654221436522114514364575634462151673736727131573231512364732351337743636751122345526666363611754762446333446713566544313774163661136771346247516374744434753433556346512446521367764431245472167726576753635763163545551431541633573317714413711255743276462555726376461731242561265616555633546365334347473642771553331124567337264521562156356435677113451525534216365574332275665715253445217631571341614224724434343526441335514551651474767542376561525667432727224365764642271767233631765277313141541345455563517113372132164471555512456136526436167364513263242122271275167133131161642257514117447561276271524733726335225726762741152713255641252116541434242446655155464262277427473447763347336155625433564635666243142516633442243676265661547474712362355723156447377765243323735154312224521566626535453175317716551672364532425477254455315426265364623276557311236614546272232667342664651571735626364225347437573153447527732525454176633675565274541524526762546256142343232141436577261151444362277343666273345125254473537356516553152171435341176546113252722771226435677525734612624132243534567542332473177672155461515261151724347511231111436115256725222425153134246461544454264176621252762215723563747424243564455474774234727417615661224514151732431763576537521371322113537733176215674556437671624745217273624456345613657736122535256317773547373264543457361433362243232417546265632217155322741176421673556466173314331262467677442632117167766321665713343343376563774713112745143555171446615654364756371474312656477545445244762561322571321427351446213731427716241327543674643717721324377377234355441622426137721253614653675234111363545441353571762557746673373533711644763233341636633532273646246222612346574766643136465651566417612247127527515731667564634416617224237212263676175753537222172114527551767357257774452573612124577464573542571567345425675227761631221675154244267142643574663747171271617434164171466645425721732262353326735455623521462155352577735361364143644216265464223473375146176513766511446216537271432346166737347331514525411531674137637644671634614357132375475777114771361445236765717231111611723432671155561461263225435516772256345543333361521733615557551776643417743272463557757636774713717257354574743221227212773413774732167437244566711643254425226522631716642311223427144475321274376561354676131472476756772111551537514275117251521536426531717264134565315443634776552556746666313161622577162662657144632631461617113463312571157773456742712174215545176356554454733737347467217765574343217645452644662757667777447274425522357455234523421527675634376162216375137673156247321114535554776736442522247764135257724521111113651234441351753617574255316327725142576544643334415134674637541455635522217533214721411264157226611463774661212714165275613636637616377776727322737656541144127727651641553674777675642765467472551645732213774773567776646725363361153415675376665764642453313542741312113644532332127474725412577742242545332475721751363225416513631216741211172317345767432313676611516636657271235125272432623613764661665776112733444577151352661446434325137322765445464513111254237663515441637574453725237355171767447214271362726322254111721131174225757276311333461162374417517142757767627654232332661332313321535434427575327564154117541263256722464554277355654374257467714627166435264213711342776735136411537413132653144371571414411263445417732216534355436516247376543415377531514232775545573522475755416572653477676553233615756654535315513243144113447727636515157622412737443153536422515475173175445647624122514567741427231551225713114537711567564736753231364166477152152242217713711334464772642567176324544546247364732443631227227251527314231267773241644165711745211153676635635252247745547553465612172764567375532437415462732623123322177721514167122571174265561133333335427235341421431146736132466123775612536671744761755767347243542334411477565274472112146164437574354314363213644256362371655724361113541253437256714235332125564764352367733651563117733455124634351427413172351611715352166551316462433744172373373137347124366124367665216436775317445351176721447447271155645516552321442354412455575522477251136462636154424673444236375423547416773672255746312726666432115157166557115571341654545527641467377354255635173361745437523761131757414277711437445227272662164273143654764731776537456746146665111516176511711554533437245124636716716577672146522766732444231141734714124221164474216542376572616331732354574153413461522563755527513741422736416145337417176557551156221334316122656636636514563777623166516332626412326366646357242541523555641613244762767515541735111475363354572177467441325322244313231477161277257133457222436766374553651772731743411332515423354131337526133137361433515456224521763636642155115151541317122614613177164472112531715147762342724344253614135427422336236463156522241523336761143415332221437311536622244145243474347552735655131122246743461742376454657444261363616514253257427375763737545676267247655273255215673317254144653567566376633543444175723336115474564323216574237651452625727477245567212263527615752253166125751641763111554455243372777672411616174325464132647116326317652142641472331755243254117157756152457426743151514233645563571425753715773417672415672561751112717322213454544715516765162274576447652116565365145643562713553337314436416234742535213515253526541223174627424616341122531212157271522115751443376412774716125735327521336473154714175616612436157133376357654344165567541114611734263132116444253142725125527615444167211155514221433355231333177517537655536261335652516542162242115272166715237636217175423546157611226126643646567617342635542634655657445721711761726121664257644422477213324413516327517225211654234256627352643674546571212411125664546574671252636515646211433212676556245464657632416447472723213177624663261344426353334526157456452232551715467326741424331415453566755155724165653734451411345735644351264662541763522662637522316654164562147355627776471354614671421717214341134144715253533324467567572226442157657315561224773642633146712221275226715247647334436144736247261114725643637663445351145772121143546322526515742677115614127334777543126777513765776467272135436422124624715414124653673117642425647323735475277776276576554127513646241611642632442333327723614262775277363546714251473575165525726546575253154572642233743634336223112631246527125357754247614526156432555441453127125552632315132116355132171413335212416731553164122536246227563315546353447157562155763514662324712557223122211526325616476521332426431144376547313163124716152423265462732676631356762364311643162621235436311457447616346423742235442224156324351242176152447662537653367113641666116113547446712171326441625724534355623667452761713651732435121645536135114312424711715362773761545557372132275675777536737346422171241455774564475451255311244563521777476156616464522243351621314413363371273141522147475561622264532262411616777314354133325545131456627172672644471114546334156116767776267553123234611544241262767661616765277633324472726145244234435224755737452222424321135562124657364777135467621354461347463252117626643473455514262217366523745731725364632324732364313216612375467125721153656115546157631277741764555673261173656674661627615774363763572622177171551632624534353661231333544653737124427712431717134266453141544657232322675677713322317525762541473536135626616243474565355522573257762653545562231526445221511137245434121561125176143657742764772645357437431251165543441556347544372235272437545322776753721774323566317544431252451367762151624212243211563611157225224533515235543165243534742673435171352214772471135477165365722541617132631711713553663421324411571674751151353637227663625355434625433541777264316414677335211514447634724154425255746612424614441444247664326245753643116511256422747745417434221426731611637412717713454537142314117112376356657667326771626146561672743671467455577367561366345526733314463421211341226565432214177441216562614737761741613143554521743722373617626123273471166442646141372653645446167541647425712526767254541316326313567442332624514531275446462332677655177473254527741425464546727124645726243736624166635511424437224716733236237557543314555321343755751314227215262433222754211616314534367372122375727125647721762336754713136367161214777162162335124426141171726247557556166321124465412533635551546515523365571251712364551237413464237576355472474633411645616255772752511357537134515772453312271477661726171125575265444715235476374476416622473233776317143673544224155141372526716756762353736361617513633226127724624252556515575667253515516412214632116166657435444735616651173466677526513557325121612666767246227272143322264177261351451314327247555111247747756133362422155113157562615613622435174236544454652541142634326573312746623251146334531733565544716323376533531673247243622476267731352135522512235152534714724621157364155327452351635435721422537467774527675234311243155117273342343136126632263371716512642315652155177754223544744625773144622747666766317564171562454161664171161766717757376564733443431141257265255144714753456734276414441376123521231747275217637662326455356752116173234664666656711757416474114135342741437426331435477357762574222535661633566542413442451637362545234322677765236573742724152436141614715214637521214317725257176376711441125217231661664313323154155331444366212271477132564272617542616337251472641664133463744117271244162332537626223412777572433666476633175356272553764135211416456243462311332527236533244216354272557611154237342215533374132551626621135667515726512733445633726721724513563366247543127773314127313773253612536514216216637452374573221413666556271721774733273643376547747616546631722536145443172747743734617573615167675452751366253456137227512417471345444672521276714145215347417435312772355365375711522456331363124325663333162664746215257226632264754326524174577422147252256464773434326747426462715134341171612256717614556425736643277411561127621713561544241225544425615117711272561735362474262643333135146377555641577651466653125641546375363256337225264143375261336167626254177133652476737555712631723737331464641212314263163267351744111256653774326645364512441556367375374715437234754444722116634676535226673626425771574615562252736567441742624425675455134452566334572517772544335774617255543316156441341625451161554471366526435473447642471617175436664457434374552545114275275141721676631371766133554374224747153232726155354271667326642446453766212727745375564416313567525734755267364725564336261647623326134654573314274541557555637173626415776237751434523677453364755516315242147213765256224662267731673516734764454113635413541645736326313622451171475136513671464236351752216236475222173552632374333321453417457211431777274424247513657321266316462572611354162152442513543565544123215442162471645725411777644247572356675144232734576615763521511637537253766262643544243425676753745672172121217573211562352351555435756352412463723713331677754411316235376645147557214363261743764771542545343337242661326322631332317453311743767357311243536752323272623617226245115333516415537266442144767714524447632672466416264561277171563327314564733773732312442553541262124574177477763335472747233242565354654634644367136334257615264611477262565324337353112772521123252272467212755174515615167371536147215246443244514316135155337345266673657375656411223631464511337227516635324354317572751541575527611564336765526516715151347733723713537445221772713521655651352762447314236247341613771676724324661522334367334426735116711433722215342767133664476311171345656261724124237416266226246463151117272724457412341172726665313434454657324376522633234134554111465244277546311614121524223726774622353326257437142235756342242635774235153127134361175143361644553176524135141617137543261266543244737452377471475461771137724442755622352222461227326533436272371772427652122233266242515326665615241345657174423447611554343133757124512622364737622166433146445541231433763365357557532147723671725267567125664642616223135544647356435331226623275131345221624543425262415216637332577213374162444374435155742716355471731547115634217636544144672551745131143726451443336642443537726421646342116154517374641324425361556312424341723764547612343172357121463731233542126211345655114225465761213561772623657546467711647556571241257552156234773613171246235353472446663677316617227346261126556634634314255145261225154277156741524166514432247373711531455353326145135567625644266432576433776614526216377166524467557423723614256216147255741511465536142332751713711647553625675557474647746246541624671253754421561255352115173154644653352724274222147251151376653442727112733365462677716136134472673724127555234325325221123463753346771746663435166522724374671327136332232564373364456227516751673427752231661217655661642447626372377613612122121776773251143173334226516622244335335762776327743365146141365711445234535566454113521434763455541454747527475776361445133512275334132113244655415652366746167733545667273752433227367364313226564442471167243456526544266627675333472612636213266153513414475321561152345276624523113343123645724132476236727572123561772466151565125651553633156524634263777257153651736313731512176524724152257536631563267331641433136644172146131111547562557613336114613737633156132717374377523543125421414712534136165534627163576341412724277713723516267315756513753365625636222513423354153135333652454337353543776434761264127314661226243621132665254414116251736752716361474663411253675412475414514644723572754173454216576357642425126567174673361713553477674757552442541142577771457631711516565741116333513623751745755126776413724651232624322316213616626567162546573174426767572113716764713351242562345133375415715525325754271347673427747521314165627524243372362734742613155454156221644375544747433535232661416232427261134541475757674174236162445364367744224622722522156665222761327434756541742315522527244552524671315251455777561134262537712571532467634445413626335617611161255334211754515177732414475675634556316313155664671242613563466744716746446146625742334522252766557364221235736634767451775275154112644751564547167735224143561272465153243617636641354762341461641457163454357333462251425464651626534173547474742271334113661763536336624673271511745555746144417355236535264446553222736532274231665557375743711444646523753477666343373277511655232224431771657524244665546735462574246445444335742521315271657731365221175431136327442362357464523246455313437261334553622767542277735667122151114662364464541657763452475773124513741517165162752436776417123614211452361276575651542522634214636764334453424213276352655276762761324162445256477445632362377467633432565324355221715353572557643175465326655471671337677164142562427142147726777242123243656725257175422315326442655271465461215236111443114641136656725675626553453527727525637625527377763757225576512664351442124255345533464244226524353317531355713557127544276747566721614742652347451436155763133644636442547714753226143733257444241115452552257462316772216263611722557735364234554554676625316421667573521155533311777773535417677566231455131352562553236766757735767724547776345633146146744651446541334444272755273227725523561444571335166355215437531413672746536763471236147513467622321524511477646772617761347342465557337367365256451441566632772657572642677525513557647423733111262356457423273562546432724336346614561444763443511563664421255146525761357723374364653415444151733641677712343771466121555373476762263354517117266271257717367376614231522523553473532433552511373117352545123554146322671242311711657123645214532564753717252344441553246771564633241642667223577556174774152556713277576412151247757457166453363714753633132257354232241226464155454747343671536153317422477115753556525116162177441424663614513757722533352473531514262664334542645111456725463553162451214551146647125137665153473657761447663541664467367274444131146274272667145515545475142556662573213311416366134713431715564743375736116736653444627117676274633536446433231575267171167127514156734767323573323334553664635354161656522261634157545124617434252241122252435153131632412466214431633267543367673776141417337113277527464122113414331371445345755737117521143475721261226772677414416467575254751266323123313453114653733461256265127433774231543331534272221147653726236751235467643463725722121424256144171757144413175671123254512517236334331672311172213432223565621664311477531742363746261551333312142112275473531735755132164536732143453223576612577374412256741266534766446436526647317636524743537345113755731735667653526222676633355763675662441335627552133737374164353232417454347425532224155664321735316344771733535647456155477613434371772176452256315133714614241617127337274531353276567167615716612645564341415646625644625525526673363126161764555441734515361357617233152341637574717461336365455461715233426316617746172121565443644466732662662677516622112567154512516674274353234237431711635277551351162417142565541742134565633771277457366555422536732521475774735663132676341625537722153644246756351541516762456467775253711615434517771661227165164623313463347632741237441361267562222462136243436662527765275264376556172125372362653653562211642531541654413753147434614245442626163151533231434377172525461653453171244476532362312564324472151461516257132362633171643224533762143767713252444645731353645135342643545252436213616145342245711266652371453365766773647155566716575136273543353352546665454345335147762445773231516575242517543247447674414747121661326616552216354345615472474574735515474616544261662541711552255126757351235656746122333411746442431375531426223746262444537314651621474557461176724271645716374557531325275475311637114526346125711732671342262265267651526522332446625162417636555553634676731376377716261354222776263763556727647651671745567651617175564465353341441554322321413434313742611246214361724346427753514711372525337176377125776115466167226411254165614727427227776776621662117635437722154715125715677776277163735647145556367167651641572672115771715473442451546644733214336136331117543622166753546267533547374324462764312277465274361635675336216316147451526356716772672435445417233262255272174615175341276731163413647351671273712546777564714355732166147376577155154745445172576714632753543551466153647457747541243532125474452351745723716663127312424364633277315171471477773644116654441671742542521752142446151745513672175263554743256514332435221677711646223621245217553637551531643631762245372114262665543647135331326644513635344634412175172635177173445147615371753162712276617516264772753614122331532152643713642442657232743176263367573165552716214127325735665225274613462754515327363267755577211671341637321153222641556335447447673177732151472657144116554611722422336643614123127442426121312645217764457171474457533555576173614723412312453231314661342263555257627252531754216564722452647455556664237345756544467725122766444334757173611415244236731247123656264265656736654317212337251635454213772715662334364617544527465217426617417742471153146531571412463365326233572711214277457532661337163716275566521342477463553626735237766645536774135773461763556472372357733733435246615625373153422641545151434452344135656273554141125633675443777323212132316113335121422366766737242444715637262774256415374277334412274777736226554414245766621463614273176722617351116615417646127457767671173131141122572457453321221211421734151254423767736267413433575571215434776476472321452734415365316352652512552625162366136656527345624715264356175424236225766732615311746475414156511433342135426367373243715313174246563177553411537265565327736362251662557137214324112555642471727116474317322155467654431511714635674235367576346224571641752346225761411561525331117215422747672367542622163547541653524112161231324575715361256443726531637753125515477335454231643516612671323164733666535162357637427617142441145423317226455341413425531776112655316231277634116541324534445533465321541644255132355631475262547274357534262775334737267626173333671544364663526132242145156372652745414113456461775323741671166264146666145174215731244335453463217267213614436233266723577257471516437121553417636441112126177152735156326756743517722125745744157664516414311762664267673371725775467331161267555175265534537426265231337466335255775547332275335747274242116734445322264525247754764411733526374126355726663662361132336522452165723436415174343456612674743241743476441141614243225474777224427671636644134561774435246172545644136624421276315761576536622476722725367477341751221713664225737232671742666163126316615427324456547733232132443375277652724452446333755362547267771715127664137774312231324234335335247126531632272426557314647373211223776253473745523555342313643666276224574162644242767221415214133656435154331755164276241172476174657564227415134655413622161712376364777731655434125377517721341116617613111654366226371212336457457442753252517522353473736615662736245652723775333514171163562175621415521221655345166365654263655726571623622465174743522337625516467541243371121514166323314166135123236577611662471325665465212713437317272377547773561321141453126757177231214314664726144213516323434441472244733326323744226767432171257474166531354762514323376575633674474367536234415157477267143543174443425237712526555515613257671345627454444636425316771426316454345312657544577247246212254111455176474547111134751172216721255176756322433646354455715611136747634476753336364633344245351356241622516152171566132556424652476571762567776255767257131626157741736215216135624753675157156762264125636543226624114722622441757351154121343135656351654132126765262675632355243171376772114723632733525164611211347341551253537742235145435657624751735154531545762615361147141437532441123271111361236354367543417563776426536565611637275241573463153726661652532636565371562131347742542727114366145615154266533431726111141477415275713442415761264776122361222753553121453361521121722257473717275677756276357351464522663154273774161617456515653444534142462162472463447312711345131435616115445514757212413547462545536457215665474426767255233427172737751441377253743161514246166462466644673622235434615343252731217263654257472154646472727223354373761516456575352332534647376736335417264155673136412116156642616441376123624237272312216214575341412324615242252473635656326164334567241176433564267644617426252747175275751427755143624677516632732553367423541444746527572364676255414467144212625576457527326334776555662274465155134176147764474251131357727535347661564672353717124253355237165764734524152462475123461123223621434271616144414227556662314616741471463371753464553543663263262331516247255523212556255515223366441364412166516775622463115444272347111431212771562132453117641116127352372613762376533265143355166115354646145475452117725344164766424211236616545656741675313713565326543333271765663654414126475231274547756156745434774517446372422765174711625451151643571437672712622323516254452636125352233534735257637566134321252176433616373121773163766431555776731321352664675313513455644453347373547727527247532111764531166117473475457415561672717454672414454135572543212312573641331572146641331615145316567254317467515573735137633573452577232267352142356261154444122263325455575121256165114647462572143727511323551561311176235426534236227242527665735246751623566222734161253243747663471652132153457756715521727715264442565173431525337221434334163537727626272445212223266631347623725627547714536142467354527521213615662672444261327354626711732423212471736464517454257242345617232372574444114763577434761543575626175641353751331215713161347233742537765263416646337736773716373666665523765641615572411711542247137513211677167631771173157214317377611112727114115215434564125255247357562662274636512261673427255113161441762364345454445117236656366523612751375242626427653441476251532131177725216162256623674622676212231234766615133714314166267711245371777661373666437137666771114545744733773553417432532431532337133527146415757733376451524756652334347322137122343117362766745211536677712624261613532731735447534413315517346426672215271154737461722513446312212422253467274242245427763723265426754223332646263144754347675331337751325612442145633367451224467466431323576774561237276321151716663134313314174127147772271213273416267527337741765156275426746327335221354452457356117751556411535456615343421546461356544425572256231675137225264433277752422651563652566421147572723131274572541247517551565646242544674363551715667535724511445523214543132122112774617251335117421716411643745254634653116626662162643736334151753547162743732132326632765374462736154342646253415411527447727214231566163612354116267133234346663753662262417121637554216734714212672727262264367435255257742374563656776236674641565474561731376775514347337624713642321513544545226762715611311516757122476143665564776667721262767772151776366146645433324534743734153362121135622364637414117524132461712726571137522654364446262332333745534531623122552337245472735331714576651163441664511451554317577267146365732222672741126667757165123662465516717213326215213212113413641433433553716737657217511262545621165542154651746676641761135727247614122527514475462667614326434424737311273743411661753424471732545577726232474573772254713126474353246162422273412636231554415732466366647251422625631115457162547477254312455656431553421341614754713434771477232421754127172661471745545576531162361672723172242457223714566715334414716337565732653365644655317151663415565251356715513277641757235416354273322134614233337535551322266677342546136652216361136261411512445523445334656414621546711152217771336271566547222276267215537437674513673646671111731162545512512262552237136246433532127671151377565777613526563146457447454515553253454646516134772746713575263511146532425431737345136516234574712666237665677723437471324774565754761156545641313363316726576474174271266152174432174666646517137441667464774341757447333215327273352432141616774742776337751112551615131331122536726662677171245337742264371563476364553552677443447666417475635474251436726163447425477347144624331414327235471454313341354755412554326233173257772435474273743332673637231465556731672211426752342634657626415271462522755662216312767153124655124215513213435375575613124521244655536157432161651434746421654353726735662271375652247222277734346332131452413477535546776172635472725752224455547224133744321777272117221767543675212615331342472672634734122571432533466634174374567272674154116372751743345774352212573271612553757143571262537261437661762241547553144354441567634723121445423571224643422477373774377454337576711514146277247546377345777667562632455476424412241316717175154257325265131561625766667671377725166675411561743553531427661573211172743122227575743125214453774714312623236236724346717445735447111273627542345162164747534372313422615771245155455751134464625151453153276125652447664333126635713422653664362647535251573557257633711377136212374233322671617772273344357271432255411677672663212557274234471615467541547746267655566222771753631626673566416413263214314523727271767456421271527141662345656617725653626656131145224462361141733637324221135241765543762716113415531263216633223671277311234474251267527424737416537551674343762227373444747621663642143677276427541774372374564267514163213145212273142413161527571277637235755376524156365547627741643767575326317116635422475462565265144777531631625467647317556475211711774777251721715155143773515626117416444556761476312713365167661532576254263232264554113733731124364323141375525173625321523636475127533674455166567312474166646552425116464373162214564264267235477312167417736261656376724147617652767742146666154624525344234322421535632632431732415331664436672744447624776112443117317643632126473466177171336756711715277473454123633734757656657647461547115521123416725173761765136172224117121563464315615614427231553264176354624354236127562615673312733661243611444246136426127441745244362754717545463234245223421244623131643727565171535351623641443765742444432342426354347645612371127364727164427464732716627741262111524532315343145357231245364515766452632457764632755172731423321166451727637433532342645111333552527713117142424662167617754342615727231244427277577517615341532235267375756177741632712436622245663724521521635731141425417525425711472555632447653725656732613475455623517765653365164761251622367263644644343672421737756231471326673361135326562674712625165121611351453316356555267551351272374321476147676455373242411537756412651456455434154572643625523555642111667522127671766351142511275577765637143133232171114465415276164762665272526745747516451277117675754674166762566557425544545535334635244233313361344217675451314616442156427157113525615352414264241565537434454137511346627347774142616662341144226263246114113621271161324541254712437457171352412612755431557362435573513741122474573355434563637516767455576646317634517166553434433461247133175762543563542174546726144266667566753432715126464475433151147726624367462263133475341646643755757376345463176456313371175512376327264732343221163513534224554527445142377732147312675327775357335142212275411453653475416234251675226446211455733214144771417517322177127155762423731537513564517737632757565726333315475645315427414523563464431753522426161733164556145325157366532713633725325773627451277236213314777312135535117156315431342613314444541325136244776531666166517363747173525533334117377115167725322433615661214635555677477471243576116766777562451247211251314666417475376456714731162276331126777657527565357153162322455451362351433422257266676137465334362537713254472321171115744517137424424131611233354555264654761633375721172124563131641245644746277171222424272414672126524217247141362425754316117421413125152167125361775547442315545251666115727657167653627262646465563365276165765152454463557536314744454463373171247117475451311175453222652253317222262721172373751464751377531653771275324643151231536767632131431651322677315537624622527722165254376675626314465247432424633541111661543514163671644117614251362451535177576277254775666215333512654564555465325114764625341632121567355224666476166557315411723773131543241122737616641521633144556544161272515576474451534251536422232252423313343617173422664546162217463713337531641222412167766227175467632526672124366616576417436366362543444766525575365237473243212465733422413254723546577134455524436112253671374657531554313156523523651241571176243337762471253435133267337556474121731271226672475724761145114611623654715666136641431455257737723411212711634531764723651543655327431633725477676412711165363235262455757437421472663762542764634161567523675745134534171211774322562555245642565331732254365716376453167764153715712331666461321166416526223524334561667635656165757631463736563142227124512511316272452654623241574515276447512642177265661225265646575332424677217227126151771464353176451731751714616624124174631332216373372512314276611417174331651512162333673223114355466731117261376633122444765412352165376425454341652137545217654174743675344171166413356271265675271651415125345115544365574265124112253166612444311747521347751363511221713366626124715232227446732744136455257153573416641775672175512447276214663234121211171311163337456311176432154275315446544217256111212144462723654331226637754775136244714226575227352246154543467313774535325741166224722417145715326762615411521542145415423123654654245717771245562334265667365163417271211325114447176755615414154274324457371746745634425315614435167545465662466242624354256723432576455255313232424262517512164335364221643356621237522413622466126647634163745272354525727455271164167667275735263634345414333341161241161764513777545316642217435442561667332642715447343475347125374474541644136774627277145147717451735732544454137161274621611767754567655422235255275676751146255533432264316135564444342457365742524653374327115552216354313227363767311143144722143112432754724422353366674466513113257456167532667126117646636147465434343326415437351236111736715667324647511363312556461664454342273761633761333617465445122647117516673173355536664432145434444435215637154646635411726573156422254246145432336167352333541523141456463236562471456572267242556734513246235476543434743667146633424741755624561234637237344337613326414365754161555677535162162325375635423241427117263773221563223116652215351471327631342332753254143264132161323275443777164423231466162371422753617317226761324362317531613227612634665465527256416563665116271465153632524432414364652474325373712415767443674234732371633363765236735762464231523743126465164521434244513125216514227175615467544267751263114176417431322761145575663722424233715741272312526377176371454266457263274544716746757611765313441476137474715633627611627357525755667621333125377572553621713572367352515137661631726327422771137117451264264346342374446645752162721347666233277427165641545165467514513427656721731525572411141223575231235721223266657227424647227654677512524344132764147624637635225277562317134332645531235121654514563115727343631513537341446726475176511556132212676543776612541352343437244466766642143133221456673235362622627474612135466524423757675277452531323446224167541236137646615252474741773312275412425322323231572275366631757532765437661224264475335317316461661344333555273743417142173142231375741226737425175123342546763222626151763146556461725373272524127646746353337276361121442625426424422357612631561173147322774136411636526622171272526642151655435537473275424644726674722171545227357611364757543334746246423135173265333747114341154777633257666316141344346212231721775312211142755723551312734727127561173111276111577637234746752727246447571323413366412726513626733671641713344674435747712214217676664776433724371174166321641531521321253545215325134755152346517552577245176537444141756313155233423341247735172425614445163577131475413527427573453131531221135364146431363453717433427631644314112756116463654617362345443273514121623671177671631266633243534157352532752742245455341576141657524717375512746675431522325514475175236717274175637171234724465115727627641247744744151552331742544426523651744351167136371576742526417616774442657554424674471744675775676243321416151432712126627421311244566631545772114337233265326343723716152743365727742362123147453654463751316711626255367775132516265563514526627545415314126311231777462733635711552323726646171271247442635446623756357255766216442377674541423137665714622434317647646224456652651542124371732727714736313362566644156616612173174511331761356343767641543653354134371471546463763146233437165512332412565425123321354636645525152322511353176532667353137623527653235373723665154111335431613711334164376656454265342274266666733442272167645355221331161747653226457757644512324461616674612134711777763434776336426317767213625114114551141174747572677622323734545223227337135115375467533125672423156173126637461227212435325667264215421314344365477764425214323754626757424152724113455115641255641536471116411113351273756163151133114126156171435554763772216333733454353363336225713224454376673351176535762713515346674444434661772644554765366212172435261667777374152551226247447622442637641667414652113721765661235431515515455243454747746545751433615466144751415123736624413565247675523321373275471473155443357357723456515135616157465131457414536164636442232131117724161143426434731665727244456441751255526353676655457415242177374312155115574372146217644255174535752654334764271123126533234527424713456155665717223275622213355756314233722613545765647172437325367174415667254662447457632765623643274162176674141727612222614177531157361347754166161413574224376314443461477216134276657271531562336676756761574334312233426575721627625414675221752175447216723774155736515247356657433355356567314717652517544433365734473341262673761241126563723615364522642343542667111166352654313165472726273462472517546135455775544145775255526777153157535445224631527444136626735444337264727422464432254156143511243253655627157532741465473754171416124775614776164344274511212263114575476165115641352724256466716567246256757454613126643413214273127144733112673125773254565225637554357771251563363727366122514573231237356445774365335337422311524747676642343672535451523653635422423377444144327176241536132775237471456253625625432625531121645525662411672565341534417423677353152423622172636121573435134153371534725336433446516163566474634111413346321554535335623464161561633177722116552326711466175154241461463674553115627765776573331417666346734335127136636417133314362317213555461575467341455615445617731226165345714157216711646346332463373137647356476317475331175454773327224351122152722555776533134566427145251477773257141715231771542656515654544173217472134334312416561245633443675635141574335416455411215551132635432622346126755526746524732234671152417332246112725771474527217335667622146757251751122674724757646541745554661177321522115524571554662456136345361532653435775164642716633456316463567232743542325537514762713752232264372767223165756464676264511646476565521727535574254713555551621611352454446215544355523377363543511157524445322756421762121374755162234577332527473561773743532257464144217552421117211524261317466773533472745165176257775137165766441712377715525544454357277276733235466467353121655224244364261624362242266517666521254773313365135341562453432324541347672241144612251326773245623646736363561261477533534741622127733661341367531613155462645757764342577745722173411361645453463117477374266476737277363122571772731772521461365425353756235236533733115355423256114312345252744331651417351616511152415234337164273443471661542561122655421437156323652141126414536725456522637572261565611461243736474467654634252232124172115622573342336123447753275575126611261525747653126125444335137737146312115264575521274726432334552413534344725677616422376643411652325761575354256237471365646644167775255674333156137266653557377376123613336734651567466153173733645235671564261241316233534237414147137117536163235247633346227535741652736656262726611146777164657145332136146241121245254263557564322444442265411436354763452437163336774124754731775376743116234457567113671315575345132353267546614735234356746662476543252146131443256715521571741624253477374357776716652732236222647217341775616477466662175727124255272262162743112611112674726453273432542156461641661242645513132566152251726214213431725576211561365714726737451724726516327576624426127134762174667547472562355121622724334553342226277545162674667263626374632145174757656147647556141771565612513127276212166154771117257751231442552314634533142252377466411654723345147414621245315344116364116553251221514637361134655475225162511523674267337352141721532442612674264674547575112114366633715374623374167741662163432414724545231577277314372572156311713567313364414444115466763534624263234563134671421167157343634554161657173553736154252216472266765152762541145752377631412631547346654121346134374367547633216244723545672576126665542645356263665242632173726614557654471431621534731241652432111177556721714767572537624162463674562454666376346632623433672252541175565424267143335171351516162173753424153277643444473654652273561143652271264532373567156475755152537647775552771251365336244641215211271166256414543416322626731452763172637572156436452643556623212422615664113656613171465251572754235735545143645256414342412627343157625432727555327754216571545252345177373361113217647421514322556467331766777312215341431164452211353352263215435373346455222454413731256671335175543321133471132445573554527331174446543212325572341727412545666323271421644434771264244317276131361334531374673723337172212135254421775135625227473513735141675431752474257173753324716523523477464633351352567211513356632362241535162321416427662231143362577663512645126757137363367636226216556154665474511436166162713635623422212161432576424424624321272455777115361632474256641372423767477411156332573127175135477716745116233176347662672317267161764676422121276155354576426445435224177423632557374165151635512234744726312676637456264366236454152553425575452521556116232277526673244124573144123133647177143623156652342557362775463373476662177175323511657757516755226214425444377562647745717615441362735572322427515611412514261421525375447772753545616267626151143564347441746334126744137136152542117264352325731644441345163447651577335576313466124262711344423413557236367626442272462535271452727653672664542162232325234212424422672262756275421662376737312744245465663522264444614527541746364733423715343171462243237323163576151552315726776212645571216575423567611474314146422213434314246514516767517125176431763425152624475313355476177133323766413716345176533272212125561157627311155656441151362515353467463413411167733132371552311651716266636156753467637774245444444264156755663133215116443377634453762767466711224126672232226764473573641443674416276332664453723413761246435267126751331176417152451664431342263171324335275313451547214441757276332764415236575652714367455416451547427153134622113451427367125112244263676277412151322247363273311147327156221545567714752363725741173221253247636621436775261776717431647264267162226225735245156712267225645663224235142557464265525447344742363726622211147577342216142646776467462712126277244456263446457237365565711722645372131415443575445214115317574235451631416657523254775436577124173155337326272626226162141154454673545571337413445455551776545146433212354336713441117226263717653214541215275431454515435136234555232452261746125475341764777356272341667154675345262271762141651125275214615451367621127223222343274115576253512574617523255513742554245772453633423316624376612151416126364751412652535176177375445457426223355442736656456416274142114626354131425222271151772315625321346662125547157174374445331262327226527214123233774451214423665617453474126453143417542273563453521762514561166437514745413651133333413261367244225711442131254611163572642766421213367573721422632173276376341463621672363435611222443213247276477651726463364317643274411442411477472451617447334744424667132273344422523557534321673363415726244515667245221544645275555447255735435352275463157777464221357744626455716544251142111534663657251217621474212437631624214673621643634175536763747241573353535541245746421426624747731456743636142637421654557264271335343525332626771757535655314357213466331634523737614562334661713462225427772464456136461156341671133664674143511435274321256447453733333736321454115646174641626313556142114363774652453151352172551366677245545323672127245465634173653611364236527731165524321137416117147663645541647422265271333253367247543217475541161627745473622747623355324772221213327156442657541276622432653175336444412671564623615151456166532666421512672363644563721637472772734226475533231717221473554164367711641435141333264444113623341342346511226442661345165447675733276141362147427463271157756653172116246553516465176273117175424546572457732577411242454563236724574742155225376512767447164655346154361124653534122175275573431235573714473657353662571357613737427717567146114373454521472175147752127145746466745316466676473577673721434275211633413312253433534127163673523717461632241524276627545137412723152254472464713764741674646157556763524762373763451557344251235745416716355544723111745563676512243145162647341643757525716667114432237324362547145711623422523166413455174351356161243424766216156423233652727626134316176132657421133442543536542214724637114165173546733416363414226522632332242416211553472154566357442775221563324672251457127765632143775754317776124372315314771324614513244143156525756471211252742513737354652623431411423657153325717144543726362443626274111554344462235447317564145175426674232767114757112167415316157757573673714312413512652523332247327776261631763454634215542676737621657733243517114526313513376462456462776347361142714254614644712667157715754771362636417274575763772672571271337532474413174564263363644765737174354125546125444163561251663114552254137642427147425653653253632156562656221145727575263571274372351545467575366355275455665336554631577557277145665342122765534337317364416323713556777365132456526464335261562747556574421756532512234743223331417276642747723365511326741474445374351566567237771134621752536265723213162125114317612617264713516236446657362124115316425126311134771767636232653323257763623746446646642666744215633533744447375271155434241752555142347713744463671534167256425341775676112561251225734152645572572352273561617131734433636417666135555725225232434161555436415337175711433356412221266142673527547341474733673116245162352724711144215727271513431256574676411425237722152134577634415117147311725731235451122175656576423543756662615563675177574365331515213273563332522323213751573565417136375732114347662266247636577414443237447274154272237123715745522246172123637367573616327725566173613135321457537231153765644545136342214452345362477717663341155131343112335763233244123567775417755265412121545161574262162734132557421642125635116435755261674162145231353246141613421137337746352775133466374464137253315313242451255535374143446474125656213447576341211514262131543432353621667534645736355612665231567252242116772466335115375237325333467717571131774615355762714651227127277274214667424332534321433344455515345743775347424155222666425176532345636463546155776354121631624147733772455363773722435532613231324635773632233535711554636361424127636123446732523677374143376617613634212114467651711425754656656233753174542431532675373761755772361511365631623714543152257157217361417263265665243557776714735763135745374763527714115715421117524421242542723734455357121233325757163357453155533252263327541256166514642261134563672244112456374246744163367736236542164421452716774422652566412467615351517622621253552737671137721566147242334452731244424431434523437444767445662725557222456141415561251325713214651713252276437125244366177312121222657166633745661327126177412433737637633221726241164173144427714176273636637654663373711362553174113375271256655216671646115535157516237354241162763257172646563435467336763272312636756144113466235367166516151245232756671147154673722763712225653162141264372662374414114237134432746765525615255716331763775451756655327122556441464462774551745533466412676653613253642237435217567442532516177545723346471114273346533714634677563136777112522255222432124614675177177727173211134276317162561262261363273525621251123233321556616236455131734151372526761245135147625442635253272555464571214122114767243757317675445114245667161576424121763752616337165643663133175411616115415442541236635147551423413435177744212345232745124355527252172167571645551766561227112721337655636732511771766112713225452351234237521712777717221543412756712424517671712174736213554653463736526516621227514545714571767463336226177122213657567142357215652464413336566174742157275337235474135562351267763212232676622451175545173121711431665264246314524477277413624672767415223154546376326467743432621672434143527351212151244421774774251765347415427646153634625436243252716656621626445627322265772421631527473755521413355675416742734215165553245375644533313171313635453321645474371643374524746242171443547311142135566151645672273256643774121324173127223713324543436737441573324541462174525263445352437577232676655274556465643611743723756347145766453313217461574177574342357156624254565435515325366132467375277515374257631553423245474444263246676433436576141365225663212735637572145216123261773553124321114153417231734452552231543275226746276331544172367674652272725721552575762362627771365625737432627261756226427517547421135217573521527543314355343415531252332575156734365114652113755714356537345351617437215426725637274141216634736711722664577254363111132735542352355545224353673375422635571627255132653477671127772166645127755551655317417433432732525421325113371142773746322535771554516437161174574171132315216253545417326346627437433753464422667427453327322264231427716441746712151322454574227362363147344255454517646436751716246663621245112454451314133235152631313441241516353315127433151354476162215356224466371335752217651466716545557335154221635146735714675561337473311134127734636541227617153712333437252264651734747147755467633217226454252345652767775534536261113651467523421627517373156764715362542433165351232262667466266736272455165713146375665644463476227556464175373332712615255724556635514213152316521611547331726771463173411743725726172744157747216426177364567363274517325212244776625655224364514164217637255566547335261617372111523626544422277332751253123334417662556321551425613147453115567456745567644176611225363513353237234624611431312433152332771234351143535567622755363537127353721124471147731247715477413442134147617615721245255114255522726444435347732167614416233125331314751674511126111653416122665616423514365417422677141752337132615275635376357431456654271315466115162533457534511567277231777631531713242224715155766712722114161371515147537346255757252573323342533236323466275762721277623266333767721266215616111231333542525124116145175157772135257545716517332245764664653777514677372254226342242747526237111577531657371146463677742756171157233431371514364753761356267275331765124374734441736165115236671667573222626362376314136641431537676322513533173635451346521574575531613366777473241276761152631615676145154714321551451475572752553361777517143221456437326524762522532573526142121163734776575141234515766714126135541237117715137511321311734656434557671673516561623754751346322717767167332311473761477543476576676724151222261651131775456236137121527641767266462552317243765177253147356475243522644567277676114331265136762234521117226235237564714536424756422544665472415575166542425114266343632563145614423311542464172746342512725417142513661136536143777251554226343624222326312315624653727353177573234566327442244722314351172152415153174132366751223661762277437155455262421321542137145466421537315123475537515711735674455632662314754527517311515376743646725367764447321362554373261654566415315152225344631271617665454325247774216654347376461467335666514513235134667527565535567256237612236751347422411364743771634715242747173746326345733343436227744251151466327264751314667413517134243413355464752213613754234141664146463222631153553162515322311134763226513722271617761613754167457112762465515616676756255764743753253522273773664552511411715234642124344754353631223454456361665111445233677273325673251171376177154672162312745524151172131131156546755215373244543563766173211265174524465712551146545455116236736411261161337453222171672614417461617616153117542652632724475444545536453765631235512723363241624471445734431553335437167523514355532426263252414367266351532377253415324552624342372227313553617142514272474732373436361647127225416236516222541275743231253316767723574325511732547264211543653544214556441553727747367555232425137526553541233247117266612164677773641325452776716627421626427426623746524714525611663666637673574112163454346747127415272352643253352737455261213254773242426654321515564472622147647355617516137312277531623236222357142222725166215252254517533672775217413323254163321672156355555377441673317637252353571327714544571671143226255514153316227774355456563115732474712334356246614562341652454724334661417344125674131226575166532331463316731531254377356756641274353624527673737577534333121352116372153144441421473246662621231272376712457633662325314615622131261172431433713255115465356564522741375351753277677557215255547133374233331651642716746675452576236652215372576776614673451631554351673434614515566167424517776344534176567241711636672462453416762313362316521573374633171331331671126351222373643435735172235324436474416746343725522333667322775644416223251552435571256112211115446272617675237616144145277477345374466567213315321125664535662312162737662123655757537322111442542155734355653451555417621765152357263612476146213744746735553722737422662576526724321234713414527453742132715717441565375537211457655262462264247437266743673132236646126435763235143151441164377375216763661175722337574614345374136154433444345512552353611352155752436774422313461726477644153562135735411532111213144141647236543356717213324546743366444466334561374314655422211656523272236575745416115666211276752371533314122653653442353513511652126567171375753421656236571766367146766126615256234267237346166274172714676433367115731165173723334645345271547447264373714416152547313734117265375634336717614262124336651766617413246756737546161413412522434374612526533527537517352526661237722274251543616577636212777235226356175262652643547367671723445412433162351535113752132135511242576114432424346555652275645752241743515661414271766217674663726234475475446175275225225675177113564324171717641372224714524636175541341453531577733533217662412376324551725116212566217177347566432777213714735214725744662741775216326731445255661465164361571321154141325143733271727467536661176524756473765215517566532431547532231211477241723772756111176152475415666572715424511514735533112564342133435277651222636313523173637243536355242366651512764513776714367225143211217251467142452463233254652312522451521634213362714232636161432571763757562132222746242161325514674372351574617134142467421373663423552731333345762121752273572755433626742317215426535166447755427712717157761444426235171166542633724733133316661515325535421674116671325647635115657333275365615616742535622423271244664523214165172265146372633667457121553273722247765616161466535456624253555762167552462532415154745574152642251346576653124642337117635732161225276263576272536641533337655776536455736656231127273647534435422356152757663265225472565322753112227344443753676445634556165416622556222627327155657346344115117365221414455454353317235657457376321362726575222654611365442473335463666647363641341411144415142517377364433731765225443213121212341211644337547472346567263274521552655411475335562441477137574562666521777542231376556552621211416452551426741212166754147477451316474645543674714712446315443475444742627316121413156627554124672366561421334414713674652466755325265336563233634324122451266737656312261675171644345574634426523554713175626672445216611265246615416126577411645567461626433325766771642713211767735136763326734734121423745744747543542274717472735266562265672666233453144115427337216436335633547124432254635752773657413275552575242367163762162557412742521177714253151546775243224432623642734452771255255672225761153556162521631146574564627526635122121314477515474243646511375126422552232212642365551534573214257336651162467636424767336661475452237357626612563152775775144671136173276156235543764565272772216736447255161755444233643144366271236254773772646362756364734563717536236636134762257216722567261145671765571377425546451621736154753143732162134512551743747655463177364672214676244232646634472613642342554343271625112765535736324657226553172175616116662465427116121766417727421432237477242253715175156141124256572542576714324245743567712347227465564566232745543733744377223262151421453547315621334655617236444616653237262164216675476422476752656273332531252242612664125122211247474766175323625173515221533547611226227662154664335166133426411442365355672267614523527772744111457315775214314766343242546167236266755617232741764222465374437255153743177273373715165714467575323621427456115311236631376357212674647714615556561355326343364555251153543412271326267735255734442667143574733166176162716423267546453743536254264114276251417455324621175723441241562517657725457232242634377413612163151753637543171273534676257456755173557544145174556146153732741451137173421137676522321735331367522523175117271252425527344514465746355171127136417361226771357744671511524547471347572462516514115375441734175342222571752733544213151265714532754234332445113644251371171654152575231315126512131377476474272453175347762733347476437417131477627553463566223264237212216357241216646246267517133154476243161321217143662743165374134661277333453351651154462223646325446471646375563562332556142714661531734514354143476554462674362535522472157464135713551741517653544726243321124525274272343232526221154326541212133562136362544467565221114136442621124752335173753516616233716277412711243644343724516542753513644755172576233536227164372743347745554734751325246366735121456462251664461624342361163516755523142137515611456675675366153736243457432332467247147776574217133572546771341375322411262623635317663573637777531162222524127761657336522622675774236312134732131153746227477171534466771375617615312133114114166646445575366457111315725336745632476366125154774136727554461263543463414212621343235314664713276646217531122255672534333624153747762765266325215551273475213527626726634576327115136475226671753765542332355355172652573464553153737163222657556654134574241467763763415512667665367656264443552162324774274354174271231716354553125436265724335654171271247526737664522424757445255415521573416475761342157735663423365345726557467533732734522274523361262151127173576613476615261627137445467517151742312274733225142217646637536742164414726232156366254231123617237572315121446365223636732432567637177673646616437633646713351244253334632423466463646557725752511145621773431377655533435333615721473474737167145732314241631323553133536544652544675323475521176423715671457625425356617461512544746535774767531476256126376663451323724433316446364217757756323346752314655621451113121216242515513655342125273423745265213353144421166471231573116535457714331763213262376356761743672512354444117325655424412426117351615463164135624376141222233162343711421134727356364326532152377611153256751616545366153467522412521256244335222142157426571642334452367722654162417442322536761427656562166616147214357523513755654533652642466477135217652257656323621116464335342273262477474327522642512235713133453713152415561655236463163417764256565145515713437376625266155614452356241732315235237655564355643261176171233167612616566324717436637446672111172372251173615657543417371521733162521742222711764336466457763272554547673274374737767545543163432216315536365677767644321741414545466242711572671655421616657335174722233474563762523614512645465257312763343741124325175273252667721336573167362633335264572671664716775415433626353171452643132534545477154546414715253547162336713553471156726526355623631255157435174322124167134516172327146772613255566266262653564615721632114431211247257435125425121313534267422455373437233675526541233753614152722355472672443431555742344761354423252552626372446154317616143626134422515554611626367361214666512145425173664657617545567356237544226126415223375252137176721766327343115636355774277377172312243361512475223743353314335466613332323553366672241673235173674347462157521517134224447167541274253362343514532244511636614623441777245627472516117364254756313414621323353645565614233621561743526561237613372254761364432646112777123124563612411457112366277311422625463764334412323552573543515117557267523254416674253431121743731151722357722722357712135232525633635273115471535537133765237623326737451311374767174462376211633636574626747555474234454214371664544235143722671415153474224313667314127531121152757246672424723754466453654772161125124357752457726665143643252275117546454614626675422776325655466444322124515315147351323171557524156467141571426554515215374346764644641722273741433245174432242725413526645253415742552325652744615356242161442156324656433547147776632242276423366144677445363553357573724575224121521456325664222172475164776471664733675454216426776414175756134521727456176751751532233622635221322261271116324466622125271722745374315436457717762214733135442173534377334444443764366773547156343173746514261551226226573512556756363343762151172114774356544441311645335552551153564222116443613167714461547746325651151736327636527366544547473371476512534526412431326174233473534424677443474641722721335715267633432575146533644147262152512515151231145621314617737246621771515641744536656451554571454454535431446223712746125575644222776442615527737225226777674326526363563335237363775776165411462332511143577647346247155731766422614711471475432246264257267223313123154324767124753561517632154377774431247141757336421473772441352214341256444471332312513741715237763277145524541163353651763516414736133674461671236624722274255751563165533723746631322663277175164473265551264147113472732133652322651537545253364544757354751223471553537355715473117156444556126214667625417367517514467246751571351442124153133114564677576667136264316734347552332621772572615443164771434522745147331521673456157656633474662475422614774342367346341677476637573163574242567435363353433326317525275731171264113347724246717172611474525543355572713321132132322353136633257631121553666113234573116761226312414572162172336176326326441312644323641141515325157172747111374627214443613346253174461412531234356132312756675224664145312546114126251466345177666463224412232634642717644463442311534174436511314676653323767221314734466251372271767423623755725421257214346555664736322717422264412423267736534237273365437676331513121224171635755215741741675655366421232226614435143246326123643625731343243517433646512324712373177235452143176463344617317647357313751374515454111662634722747711217436226674375574157653761752112747751651411277616165363467512726625123155374365364733362443554455277475345774433135555713271736566547464154537152621422742145735521557166442347642624211416371752131247713241145437151321153251574517522256363136145176314732712574667175723347245675646333645114672672364731746536332266642364143434664357464441213541325644251615463122172436661244415262621722552254574641647754335254456541746254734531524533266613461446452317174547731474123614463527474644665233335374126421161434473261766523746621222273311455726445534426734715731157512757652527374145157441243361353552447733653371275243276536764432516511716347366173432426314651231712114157717526263634456155217311523127331223241634274223633763255411533755212465716531735224643523517175715364176142134666364635215135647565376212526375333616341253747727557571752513337711755763471472367341436616341253347137317547666732174766514731355272242316276212321121772476524253517731562473645756257436272731411375464724422136144117141235465436215672343455372174217342772644676467513162731131463427627223713542533133225342527162755717377754146543765432513622131533672661375352551414775451563756235514756414761744433262352656573455253734522636311727265353323671326632214471331524542316542732154756267747173356643764741253362667615722623341144343137166514714664567752317425161575674455156435274273544616435515476143661535266627214665537332262177366542372263213673367432642243113176436544176556214261555772224423355133652521452217256755377643211135422765223343562366127175335441213421234661247476471312755631742323441121345314354416624316514745322435463223642322314755627313256312151313661232354141642673321153362322711734361616774164416634153225336542163363354772454436745361233216425765424134311745652512535745711576351654414611415657722435236327244441772573533431424771534466323151162331625377543144216766527226236473574325471115436435426531354325514346717717663426377244312734514232122734713465415432153365637463676111623152732415624254157716416336411117272543325753451353234156736737767245571475733171313132724631737154534613377776742354456233536434211511252243237376754727363247657747176322646717615326345661556653172645142743634465422222371176576154567665361737613224445465335234712713441645645251614354277633235536714262166714775543154141463337347667266171461355653477456773136137157156136263751322476316622524442351355114412554623565446521475542712424264353755533277143224772372645254721335177421536157467536114543146271111163236745614567562256563314515525231245626315464671567237571464117223725656335726175117176256556712224172745556366211112136624616157551165643512522624141743525343432641424716367653376472145713365553725526366354614554761663321277461344272147422266576775226457527544374577551762743543276254226113643323217427714372612441262774371524244227227747242426435736556747365117742147764236212715674562611413527624724546367651457137327572143145657224153141317423456335641256743764513116357321557422277335232431211423351373552424735717424767117152426557235311115625677276277225477455472232244135524654575536476444314447664477252757421174143677432715114444453757722142455756113223734471147546447754322226141453765536553536413412234357364333642516374557527272316153773445743113744433324435676414115362255477114441713556247121633562621561512367461636753676172441644612173331276472361761577744227512112354414343672662641735556521123267637365745344441645323376472731134263767625261445217547427614126545145126546714435412354455761735542364352353726461637364273267655214633277562422535464275633631452746256334677262641452144537665172727564354373667725232776766576172267616435734727554144153733752261352326221624662215614226614233261413445537217347231553454761217452635517522456473552116424555524116561642111651335447423711652474444437742147364242174414513742577154257474424237357127471114355454772142413146763776145165623562171476541254263673517235127477616156644662312671242276117251231257134433774154277521321357463677574261557254674657712246116566646374342261652446447574575454341367125344431566435414174752375534637363745216362734335722172745532472766637565657414117237534316656156732677576647342475542113271175671272342136274444212332642753452661716333352637241414671175342632144671126412337671251372236412626316331272445426545715127662255177643163337263731432244333551362256674221356663136253717376444773553316333221634663354323156667235466231664241627356677326374321177633121634727144645677437272273275416663376374171751624755364524375354615544163351354142512374124662364131546275242767351411123522747363442451115313457612624316514553211465517341775757243613555242464424314331542441456656333747325671331775142215343141663377323213256446264475243456645274327531266733751422236414362322753721147754452523746727456571675371515524152234531434462352543313474346653117762745415653221563122656545766755363144631363432144433377226724642155652717364671434764716511374423421612641341413213513474625471632723211355416127411767543413475711243467232734716774162424774665721367313477111622437612273772515645665336347342616667121531771575254711755621273763775161161437266761755541757256457276424457576575563451457415464414355133774753433772146117656427754556167556122421645546543376464753761746551723117665551171741456646152731133544442127231335412367215411525763537142775232772332253734176625161276415122432656774416736717446556337342414772512242154746774653525563633332513737355141652431614362556222473167736534631765247516174626116516621474166276713765565361361352235475714635536146736474523747273133634347214137123673365553672125572155267673775365723412263414264311237121411261752433642273533274326422474512616152455666342552124166226617212131375274231426742341374276217532573333747121114242311731552625214537135136237655715221376662513266271715627626521332473452723343173375256351123157427776267625135475124142354672755644574656563343155652727421716573353651527753471261462543745615234631613721371437476763457242776363554147271353423231667674115143331144775723366621617771412217452657466262521472474574644156734313242777153213563134437235237772317526644265534157422456373412544525513132675223366544465625113564446752153616336222761454364654311226633135767512717155624413144116162474174265566575467137335145664734454262651623462475537235123426173613112364644773647574476141761453763123616327674765345343433617127442622655654344121745322623524467763351745514235323145347612261277625623513147661376742124254414567253523246126346362665422164532667153567513451276566327636223412536116157325356334167244155437672512411452221253662615324266147437663741374322611173744464372344434742172443624145333272523167623337437613316132766315571771764326362264625547746677557757756311247417162547553544412317324355372442342536474151412553625243173451676261732457512776462126447175166715111366331442571714657667317117722157724167347431736135156777161216317627645722734636455355265427357452457141345132176635463335364442616633176573773767435762521376456443762742342631664464767716564521736323551753143613271213171643755671347445162443772214433617214115143171717153352674357632544354277521622526264555112266354122542634715261226764516125773376463657357267213211762575375625573272146266427641731211737423313734141776632626721752266137362765311312375551454662177624744252612153313261327716226321726433633141512137263264116757153617273517662774133452253751165557476756146456171457665273322161747655552411332566456216647257254341227572734114762672656614641375421561654475173272552433137367142312411157661127475651465324447662133257337452422227367111465555761325452427552174743645123612311533417641626737534722445125366453724727273216252565742455324152555256366516535614411766417136314722761532574316757746617714554257545732312143641655546537225554637424645142436633521474416274667731415133416372753724474424712675157664234765353764333765466767664754377717445645477177746644744533162253137634414314421216773546765374616713443215656117776464353123515515753473162762773731371612264635533173471612271465625617245542315634374565675144636422435222363745515154544361754726163615145542432331635354462164173473321766241575657426165314724464136136153332131774622463164534346342267614217227623271571264717645263343765121213433514542233231647164563476417153333637143565641661441117742666313615622211115373431551546644665156652163275734477445522416175714711121541244623761643114735537127243321356651367543155557434455572725254142112757466355421755626147755473714222271726467665551364353233424155364476255335723242711424656273123563621345266573113244633663375664245273121711311646422177441227644575117177331524477511644177753434244164126372152133231737745411736434166126434657213276263144236714422335377666576726746353177771443676427415366171115743352353426716751623453364414272637166321332321422171437771531714733775721353336655612722775276612171674743466354245356546367351462663366545563117544522562527776256425272242553546321571762161717551311545613177122313423622114172133417277527533174435617222532755415536512565115447332464536745516462343532342116153211775772554423556142476771575135345144223665234151321221272126553457212427334743175237361463357727632213255643254776635773342343347652176764222613575376733366733611121121542633213154667216272564615711774361522227526556576756351243352771164375361146216275232245674175213554513636457467173242122533254642332526573533553116431574723521643325215652237531413553365551655217727625131125155533163741135656662755551673321165514721235722611217664745276416251662175516776211176662423455212372573254264214234114366734455714275623242653415117556452127712441224457757217732127156277362636642427524556563264271122162445243425471256245453774217426664417662543667514253653314246235577566734332313731425656313227116766763326666272335223754411511437327663541461724446755435477652615573751337323777776431312277461251567713756455454321443673752777267367666525262735213573277516444473553435165471121372512462437176455612531371373543634173436456435127313533664257642363727575532343215661157476563721214374747174536435532523461673624454752752546472266547777766462126524633317151316153253162137442224721342351511526144463576633165556724162143316232577256153362151142461664326152242351355625132136314514237144471535664566271515356121533651317473353742671143611632626314535465123421517725326322625665331161614357342445276242543322754264455113757225655562745461567216753554162275672561756634773634533277726337236315514376177474266427511555461421313733544614223155236474142325545742335617341667373234751112757554717611536624655377675116424462173163337131626446545447211641267475132754246113177734754152267341264371716631331323722447676724743413514416431564166443342345731312653224171247657523251514211441536267561525624516124275527574567576655647533173716435111161557531427314456676267133654163242225277332677566516522116535261374234157256336111163314271126355172421546572314423764525526355254537674544115461156431212751576343442117421266275142362576667635172413446574524242367651647724433615252732475131261365453445122574321533114517746775742217731311653636346611524425213433337351536722756637722574425661334262445257445232335425277756111637774521655512746531341346257434544225324766363145372336254331615227151557316634554677536352433155163242373267644334326354427736655271532261154411143171552556344164257465572243367667644223147467124763543757225374261713227266171677153552413344663764216345265345362741111534235443174727656313143337557534441125345137115756552725762166622733671413435343112325114332125437111152525342763315726453775541662761143611177431134173312757245355462163312345461171331647654521271427742316165265222425314157377543536761676415341513445263123261443443543324252332777426747456423161444616434567771142645614545164227522554144244357544335613422233326415121655213357723614165472135615317574434652645245564424527227752743475173461215764425211332331634275124563674413755617742216362722533273573345654555451772631733317727317644423771435636121224665651611716347657124727532754434232313573351346352753736325162424755226653717755152466321731313671523521712117626265727233263663735316517721723632544661126515772643413516717374462147252232643746211661562613462516644751336642663762252443112453336145277175454753217455775234661665325444173562723751567414773753516352153422733242412452251567231165474636732455727175332527634753513277172447142163515177364661343563513147754374666516534134367757232545544374673543437752417526642115772441732417143761233324111313724257364544542737154526136251552271331614457574613354176125173423645637265455146474214227637312567352211757663534265777763715264232444551551135463363372664413735173462636152621357616275647234754332636534727155735755452576274646222215577674411317164344374652663713674665425467466234553351447152442737473352431345733351434533616212162526671125631356333116367317426612673675571626561773642773656646225517366442327537734323627424347227365223466441454275461642317233361214552327564175764741311225564776353516564276114521641774663354111463442172773364352562247575227376733244344663437516133733645515411125563362625716514116513364135241736254447337323623575333737564566425762124147341722655352327616647356462377223436614531674654641676654213136413475742241546334324222734447417751556763157173445276573137171276354254671772257176165472312432361726375516134745644474645121451452273163676463247521325737174252472112311341676662113627536354524136477635624623724415472447222535564547242743356727577645757143622267225512136742721114522526171431553325532435747762433736636272241613367443331336512216121732356336165731364427211523534536764636535332461243174266532126116571355212442555115535477611523463537362547616536311741142335574151221464355121762257375621311126252227556462577616656537562774511732727757121123127664753242534637242336442565276166573111263666613145111471117236715427556746627345745276227332244115154167663516424345167724341152651471351741773427236242616724223352327415515251375313413224737274445417272737257612163514211131616567517733641743162544274421613461452464152347765243664436617167144373127255255161457114615514627351663771536345474516176666341476565756242175755325246744712142111627554664561435343266557173315467455155623176534742741657311147225732515136771416624612753161722626161613524766741442637157361642451551122412415442646563512566644123344627751625773662343523511332556251245337147437564756421443722647653477423556436743675741443537616367231577443357531245472164246264126376243677554517251577135644446215233513561232361441363767525445371652347454715752117525571255714773246325116624745126767715615426743564476361764576575516267121714374154612772463333213142154356627425126426674137467174212757752615536361157574452553275412576771443372417571135333643323573472547767142111225657245516256526173773616121244642766446466347241557752175113616715653621455573551655164616167161556142116757344433342143752761147154274113137573737334542141256163574324537571113147524721157655346667453544545163145547755644311271345612467376513267355233613633777471741777641277345151353635225114322311376437565363537714627341172334575341221751343434117154264521361125251356322565377275735416556652477435461556416427334175752747111163633121661544567277775372313432135437516773462472412233375757253125716676135475636262523327345646351337153633527356527153177565532556576161534561342451662651323572451377444712247516565752124565743273347651265347126735256725432153411465625553465361725611453761332373264132371247242732711316543713242645116232256353654625673315521115537342661525124577477727413414357424614757671451312414364645374436126535524652124255624417251524436311154652254572473735754146412453652256364755315772617214165333512137776513334743223345743575266473412253527223555272711467211141411647232254641562772731162276337425441666353322623737255464336477144343277543125332246616341311426143362436131674711712546766141145314647643133444434712572525632363161756452636411272353635321561167176633137767117456132673761717726523236236157225732123423613625677334141165771614726267452143643665313313114265677526465773366755515246441777567542521312557546237243121132177263344476653621664572223336457576134674473175254544765327375346361642311531346632331262212757676172424676634637173112344753633552124415471155164476742537733372415265636743552333237474476137472137614527166432145725
