PREME/G/MU687031

02488036772082628791901775698883394539234843765640006986507847551957514567343405167292030420189939866974020555526465067151905973422638359072638800533554498212196087099277906472309536209080190988326215905072120729422459933951699350576524976270465068566832862336155325742645284079673983118844457352768184357866404609890121951436881428146020779447755550994869922748955629784686395632998086054085554212831820880780202184753693960209639190775300973643612071685530043939261407980707502432699591374387933152599233526773483827263864077434903477931691458619895794638475323070597238517961900469251868828364420330013850710830333319058567827659990919392834175772861280422278838195211734131442129693314773745826952063646135939888648651125793180359764717405870309181268831979880058718070465054561848775861542641214169565683486910317562400842865697269240544834193890287411324122840661859838718370849130443743829908992408706034142424970887486543714286485299679618467330758794648732180899224051359202274864663545308092683107282957855129848175658431418803017709746128879579260297914196785279022133062776094435484629219342312170551583790039620189056180735984446841621672205436053945498292596210033797735821331758093553378780012736922756203615477346374037911549588153733573132667891714993210798802942626573395688882397042547768504172882244810705349209692955494491299576372519255570612945211164262495974970875603649017084306570008803487084426546047267993400705370707070380177063607253802617805974783835430998362986211428713672851451221478518981376426275873439991757350081156355100524577669068156159148750246818472274789041297198676664000635981815522935341407501182595202720288175168945081401382197158135265357437397944125507158426569636583768617532803526451148031071653272555757050583244591832354685742253316421762555576680105116021234550738108227976874011253934191758383480349106271834108197161064711943119456295138455734816086812363709844530839991628129583291427936435119230346048064507482550723962159838997536147761371056741837176152088444060958403457259772537656713304190847335420087551100820086073841743782660851552693548329188327099363649079924327503099019939085525063929156127334978025868827794243472732586713909465795329994975487328871298269508762461813203364776536265705085257880542145829495750296346909230012279784332894376799995527013587436275907189878917130435231714792928560771977868387766147306123254556335901675843986314848948336289157714247282957201463116699046246939428615528991894282593234135178289131940826527025100569866382368276964690495952620814030811588498170748969245408235673996750018313918787648253689156327213060677524546644175848164136512092615813510984253420747413157888276251690766618308243481033096883333324391901348860804291301472646319010072397627030250876591880675123580345668875203541477176991522139427451978920057944295758653747509521047479631609684434613287740937264121390841758236367342820850478963326042947970177591601677080476868894004150506239963722083194891203028017155027346053151002978160865813452625021251292782766844924724233621063206625888055318525476459415199073456998152260487427333509673506195330770703546942795723042779376021452353347305302585447092395690816333783703736430569276993974914566466927388394651104674064393603072468073542790534290914404156158686404293962319224039248698223085941672359507940418843582118271346866664681445226478298619246358250999694852973243409300184522060243943377382156471146649997215490139899259668420940232666427727120989576184764922400727567170285382275446099678359213876480842558290652393905009427025896140958416919710701849725422652605110345697621482052433669737400680006521915392325630568048103557898841713073695644124758765924985682585760180040899096722252312206060960261416524657815029217939372394593109462236123162492702884877520701799681157247923112801260349942594088882195651802889044555974445263806142613044553295352605798888864577898683318764803257063723428189861054545286384004977901181050553563947825052177555859650933834053821569243549069053567093134420066941100467285084472572970163536848256662668128129818329100802433462311379460027498161648630417684118447005549425446784414753258085152289276721029785531129780753939400052230646978920171732302240731334275385219110044901630192685439376970312761242502851889177852327824169532666151742275234775247349123723146128056138261339539547702777088687883712393342686313373182520843060553409353763231928703884494072896924839669580598495519755134167215075816653638915830035823475366058604050801285946182272974336691255693291744663266603781796611610239611521038900261856925055458815027638383837444989461982891467952168545439024127420328646408436874480327168152114118251311932377265304147621938343313724930715080866111393189188328717819624622683373406563502083944466070939704394761341192772979446489835262183375277709377595349592885181107672408191810269641925251799608422654557532608133338405312285763911292856214019553074139964924436201918689751293829807490972158488744840866122803105894777130238144965467991512013503261127606459607673859582312061238084917681989406963599242172561049064496672865383109456721666975115373057354920317784799104433389362602252277150630815478230143256962367898332081708362170537367662469632377980920268213760909663506372796851450649748234071519657132137080467219882268141649081833712232267980461422777140179843935900364672961657520880701141128947371714650293542793979301641305126547054153122375548487055592497110860790598353097831750130256021837914711866419466308573501500488544518910619714800528674969501080765102708021066611562936765234483845278784949171842111583888762379219389716991427559688651358467829844247089359414341642205207146263423876415828911305410681893158379094039303536755217453856510817327901710533782223936480390864573548614112317613139452355603166953626591878123193208061236647093838696465914845928314955617076886763413801048433483174721572848301468858143054560432886747124909320223559301050981473035513008763778742411260342038423408793292985942392630988921690773967135201951191545784813854438488044004283393179219090202744037706045677260165066524293879094124674574139522391119095476240049986205384591379500958710233047918704255464643021323057301447584558318852532565986055061998588608765281403272739389393396683580464844336489691401983062534694949737171237703759841062257503232668691303193666580626214821424391334521373878539633956471869259069487655385433444104212973676565412856599578632769430943140868653382904131675349426836805437360568958575016636542597865198735159789896057294875782460318951727939301632441443895800489639961638037822365523468395011534922966114625840726828780787835998891225118817765433395389831638161923989120811815252687604131179724926244253165602297066648394755974547580639246996640840114310814103469856479124283243522132623174106073396906344260084028489242467805427176979956758366998166188431271463515990976191613472088282494992270316556379361324915834217517712508057789959410771785456003512659124590231459164813933917801624288252806292273556697243684933967288203541898908059750350312693572447649575043836076576025759763035519403875853896082530171971978633238795778903086413990471894608522270891003802866710154859476212071458684745164071226514157490856683647522016458255037311185369949961165933143987308483801172505530279295586833697338360685151155356596900974312160218725690862871790849905037734997566418148661077570919696086396244437770063626964545818789420001081056348325156682458327164259213030523853220796942634419637984876131938799861604996215917003104304416716853403181751840191282163432850902262397265415374420898350372927606025364651628241129028545960085609647606057416482822126395683722835126227345089081159240098368261624332313425572763016493142456391249946862630609141999393696702521643809276601833993567487432564367993415270538819337142643807786867921394103173324869026366675099523397170863413205830232716684504949475649979334837438683724028181001947769831125615766666453042422622608011326617261298760473960052209967247380775629802538981677775029686688001170818784726630815176347075635617135885086982107713421589605204818848043651873101741965335312406187333708547946665089354993600410325025434669839999358833975246406735423803133090363064882857031814456163037592726426802529267209341419795930035812109834125196967492057999354155986028683486679630426198703385200173226528186982090155148820966855109117415918714064180512771275516975630796352903963352076810082755523978259529714148309028340557868197987144402224347202680840068642487119195376606421450927608296890548282189767304151924061378481090557614997883608635973651485881739983843856460595410054489756052761711603386903533641827876806409244179576278089943014948566550509535393711111872844846408417521389249669890781783534629199428479967521785331261950357586891786920227730690231675664683660564305428950244360241441246284162005042146448726691245472293401922736439022604684442584167004452573313100571155021673932529999550858660584156136949543139799456674843172157320688418932715995676934591719047727239870804511990333152463883660092739205895696289852990801586237676730656587397246377114120873205471067474836573189376332760902189494501545450738834915245159046302363896149340902219163642250839728740898232627692542518353419772981622310136516101804604116586551280422369897617256388023382634017499588528137027136529778853019340255456308562557030933501005726335589554507140005845672876936742107462023139300563564786601563257144898056918848283045058652942779198261101240761632356812720611598539827705153651844699851197646741539288441101065918589699057068137125378481127341153392688362593687465247043666910709225293060095426407235728930000160141510246817537255687309049725582647064809636735598994614444489592625886988674641512316580849444354499733908987432295461580687437807829948776978541994322477184770600890804401229824382682492464681491028357789929316915231087903854075315896535793461602539456110521069703505090319832651150754017608520556735698673602214594095084074135837503753618067321142368067947415616731781379845315726577952591676144616419414494733912545437011319103039291852372026087621911743843954969499586726414279902614158165586591107223942785010043463267606138072145921167124397356916483014686113309947450485511508316950221097768998402323828897354582807785924331621243623113316215146762979853631378625253537647673619799893356391792653132106894299525125518917177240914724582685057852505241617750010605179698423962509498594059357324047029395938841756245270232688428173524297916993128241150282560155907394433864977829144805065887591081097981719057948524866120699559496250570154520460221259649480825722295143634177304192555044045826730213711461968499697079102227901987079449242393556401509367587362646505576651150138599253786359689892478746607766713806053240962883500937599523606374225776134210115424945551110462179877158882687796798772368792595019637024683682528178570668182525884072458152499856039581101748903108443902955096360341066831606411259588741876496586513682944056886022839196218098074130727416328968489856686825776552106736639002648235210472034843877070941417647845748982254921162882855879995119215389284557304889227089638847249539684510607594438473073520823779591660219641279052870680783739595486169782721081336990672158046273109725946457656287000449513149116928374579838362098978889284404887086038525243613443217625769480125041242396004923243520551986366991613824004937881580600712048476632752299255682828693859949911990966581372115310492378083475072725849807222709635351602849588688082964302108196067263476183933397423501378930886403296363142698833556779783501333054632691407168039707390035495691482945601381415907187302592304000340507905479762476752952756490022372542494826894813289839773602528367804773820770380485860494880516301280451521702347160779550346182131902877022370791238839758245608160036692585039922593510956087219534668477385088714209349624509464059629482438891558190334441792359201349079974350902469514144097742194384622909102363872503787308555899963353420526725246486944961461465421502863560280537620701746641038781410831733086077076063630337771582051108172222240522032851103037707334128674815290327160474452540106246306380381075924337438668689242831990968404100779268139944199331641582124019300762289677423353572526116830425255330669546892987834161435823417464109110022201672128421515097318987516492643928820931843296140454327415202651530528297673412607321020599817100385354147442835001662078181408924299373758723925129357714614162053558336571306919857812834415237121440405309847560535416703203516471277523403439265064526572289738502060607546235020566044117978716803533797385390178981322549168078256422332083563661753001311572601832097892220936041193558244969427795370108022998581317753301281299740136806191982815258710405611564245668265112126043335398829608276762051950384807666159159475345361414670212784064851549247224118214732481763142758066819295730343516527955890937547444599144328495325490768788251276882680978832676433691042457947775214090402854139724633054875793830351695342132308446574299373124293779407844943256743363448773819464228955444433389576371818532606814621208142537195053048377892177088375698535876453657850727542203851107847096900336462174710104669581376134337693535325302936030517585516508388111584712532517950327572866033156467195197542197525342394850446543049788872199394812591778492626188790699692636952775519388152889445863508597518966779432813122609809320536674361285491817979537807485757314961302078271632252938150668949849813720209669355107774232679810086290135090242390336324088041599660490782586776691531729119340707628716681669013229702439748649244146642164600180105283140479176055050590596825142318884505935638648137481647572881799714885187855669730828669956384760465495984936038616659533815021689014129452105456141564348503589813255451985870574053056402570937928125438809647888296741961230496024581172418941232532637585267795475815080037066483226047762919581856538639341657307479145160957801142527069504201811426852429180117838738018473550037040582702010008074389488382614512510178297881301674533373583084417316490520896483994338836553409082977197710287437717989526362262442088346442438528991426152070294843894060962095307954444147409791919054878042751827872709629943802171131556603372557019414563210890125213246013794965382093948933878551541479928603352373455836403781783579699684201542992589685352434456812681394989597077461137089481873489922598499570555102261785771609755507969880882835381373947664574246810018042805287641999993089997986695407083488744981599865821748866425864039355678256001673137777491813374647593843033532022538290747484875366378073070743017850585035711299748614956521933638490778999712483072983143617999422646483915744463570733339849682252673135109121865105278289469618126802041176205142592173049579293841048972105229577350457836210891809599960974116167934118102549389614310596868294285241479609416188020061553304720941868195946350374752051308165867402043208867952609063776590661163950366140587797483655992224606030472012384240166457243956026153773052937168817140468958184628032771276253504884240127364525800253132808827717520937394246531838552714148026295832363975640056056782444854046243899261874822597658711361419302483094490201402233226175368684903113561190939822951813232376476839773109824283272592376693740297134657168484678857670255950534363020975597862618150895076400443366543609371762433640386877643073483020576923927970060785669587004225727862191530518519645759292960159613178904136948115047454714073910406690370488549472454006862380905238996247906835628314224862736990177265878038133195688251491241844306956306980694120043776078807737954781247554181557366993969081982196980135645570485302037469728154111170546050793705013213334072464143756757269015636291889568995507629259147460053867002618461659291550508063181451713074897981517016704438520086658593168921717547503591463942230755408359481760732426648723206707379950603236047594811301725213266896766883953742681959908742502511513162796758846946773781982206672527726397207175111030660049536301883693515323234725937083170786448420537441493722911317009130076685882020569703957499290873381491432662047020530941048828009205472519520416055643025315109454418520389037432998495990071248665797646005350603887318166251406666958128418931734430097978818905827497116062685687619137033158750769861575754258172199297209216210396035732618730987364397492812476071714831486973721027900000231761962871215233621283701321364473147463052059170585210830037166585326182210055365811322533691455163336079052272949550454317730017809546128193230691998237072454085768405630815526706883741772348628651720313411493076738297715943843116469221968778747916100543651738386282575956638038721519318492633830896867455370200007077663942532778336909006695723523632169166501061731457776449108503588424493431301950814857348747152355322363004536759044223610004644450213943057351217324455593385573814240495627383239862526068612392540248803125022937116827490119592892006241311585687796791084573341115732444721934619538637426400202493932992468247987890717998376879256385263060521896832994852674914299321883057275893374948114978348111375081546399079380869975308747527156761383471676789505975331688125166837572720122697345856005225829570324063298084526337464576789982662639591871263048946118972069784607522073333648338937834724247547779514783222587610609934763077917348271288246163760899935483837307436449756509290647703225917425695960443958673176902810248723371792209319886797406103120312313724531044285386045019467149881623032340221983284523706248277819347796232842878384438945949166276999047891013019566553203602559256808136969953247827309986810021218119160765063845017018635505810828733076691063162236248531322418355166195883557800827904479764329370046827610234313827351357459802828608256031639453798909844179357714928563102300634792171340520269588207551166230210388883186127975193531689812666835311136740578030555474238550666080019726034628671518374953737209573107822142203559856720037403843300110395787523599464900655830325037849840116314131373608865598523526387405965085651681239583218902696034755240800104121056357013017620757925209331237567459520099079563347193043279247460276197916667388096507423445240330713020410704618602987498360171476405947621552637257533966003366772125323323852101920797205923657672043722134082130330909499611072955432532830604960970334040009321063422769133612587231019840708899647714130444417853960584455479050327074375369488293718535980553207646669686517150762591308405999864695372897938150841368754642409836359537157818854106528418870930752300374661433443951545642316737894253369110953465912858465450169554842257621300866919454978314488055859896524807286414066076665451433860666996701066730203662807443402621611189375305735545249599788237075923123219899064225375661712139445833578512880022283628952912953236001802662878531572391312130732741386229871256538823309649009933008337578303277141786534346776545379865892543551321192696132959069651550746711988896058806152312494230898916235012184336803858439543967939939806684066728943432589991731157670521422184421706292672814275921742623622333776711426554284161858618134135405428406875290013027869286284213516956170061386631917331183244104058269467209177058024586944455464301529921894701218955840206145016893138849695339021435337061815293283692983136173049774588140200135960358326156109061348846066850430455691727461860561217225522758923889259698639133441438202432395556400388515443487285626241818366960817718421824456349629259746656740095893929957976886164711632211514835261267909947712244101245658688909310057546313268094573138724579895696420181675137268839114141838641521409039873027210410448971780235045613935638400453667559578757885572825747709244279321773327640485197633567237529733270213126384364365449462621285482276950096992155567697833548187844988693435088089906332027444939646733694989520701592388272249956950694819220310794660298920441153043935164349372183336583231820374083813827377165544772811012249554143814259830537367840011793276499556987793827429027124176938651792207466055438093467445114626695061325534412699801122395035051166554058195082524445824619106864283292147667021434951253929070236092816501423426706167068513688279770897577666349198928676991114606183465968105786391534070982995656765397996953121721611728876667980171167113289899710286783807544996544724930210152362820556159019216760289084895713926397352300275017836057802038000066626318761866016682042388136585657549235709508137685511164216726594087223427755867595852782488172291602415546645243853770086555928587217552263459936086778419562834985996905574971471822696647371433390040284959929570524479758235220607194564183538483293057673279777020701558051700764625382756720413193281128906049893827103753432498729362482992254237833110042133855600910922281077397253868595343766609608104589173318872706747715915260046799257426382079732371790414184489671589965793196168176783875952609726265512959544109961192700952066412675583339661660691551601048426163850663706409450826412473213276216709968346174622696719339571353646046229581149671501218703257080451445289130596305022196537766634955531383062623404261422921811998729136767724335796087246769924554619721727201363771161631155971614081954342941948734562788576192692555671015410213349560982667078139822115308874702999400742489333919775787068988752518143424161841589565002161918525588617224150417101082368076946659578925842979175795610501405298766288193950230303462388329102998315400670739302997944669707479055623812514260455612805698444813415144770652156620243983811959152038711310239061715183296924083354098279307810078345321079997786378286290884918886919261251175964948814309113841763555367410299582420934894192993595854982401811763748020996415084167159824413637537058173414233235897883884046984307398241904262678673072463826480838809527412998973544662151843648094382350331320151253677309559846743838653042977934408982307720745765193949862600187825728581568553054153412604661121818848564246478687128933131853280583099683300282540676611765352502068911150944910881212885670889394052195323982163796759830631564213877628940657589863809651081022416786674515804426338702374706374287947655969423264181673342940102506628748985758665832714138410025397160938639253658887194504392805931242026667629113398077337344759845229884265401447687820069636650133119275357261622398193785605154242457398648464060506866823741668393903540582004349337876917820924609979080317238175627699546003447886140557004210805446123792235000447935711227906437648455455904278595278675025086643183583523345645486730218180012890000416065082069427404294412880800113583080831263606719779829251689079876311396150753997507444923545868599307744138065586777263702855544181440507369278516203926053483327545120392282507649399207645174489424172064852395850451550835143821652500089757938036399431773203416661183471510910247396941152152996189813503935515931792278609899307865025678782202196661871850684154731118993939743755230694802214572035882999800722805013247525550894584575391467021922366525607508497757744851116885183089666008530876752344880741171753356123347052461375566620605631154256038370256650252605314708301850729877143170556593306609907569283965514922569953273344155086669374894911129328731616193674940158835451962342500579183093835912219282144370942450537689666527733313599702072797429491652669941788591024183315591687939870499851621400903463608636370452392359670498613894460779369958327373750138092014159826429455163937363687264435315211699801907843696940582017617435541512945880918639071857339369677077674359717968431308144015900553140734035866599455566276475320232250975614048456202007976040513317635224261812498146933253053308495750051002517483834139568020650021381124380639279586858372055919076873493956743761441043075026393135289722119636252970234638016574862425698172622094483814065351185198249268023075484720322594388106604621002877999519847615728851237784149508621000375060688114892487248833379697214483531974392336271191461065574249551187304078527904861974143351639339580252862258832850142893401277229324028030202204619758356219313724948584306437788144640439142933716630099459205781477525763929401343875494469508485079980486213316621238238758164579007407618561074593375025831842268028227614137883995572376181638202583822240330454819762311959027566115890057697986971014842368932236694521760515066703310235787310041444175684392278252937951704945872230836255825232841235151725683966824019758498221936819470701610418511855287655912466272097113234765262916081017747838978946950272429992418843274501252263715476691067254749883253112673075923380759255979802513340961434929736628236167604674520324245097723703009071660937171906820682191476130947364457500567709842594142467777613673006305142396727686447350663195251338499096862946722172623232923810031243206769372830702438453541271696960072197143993168292400536669997209064492285869672795087434099797001629440050748045506234625698535284271125298406428397953532709530720423320023714884524134134966477348582748156987499853715968134047320058588735726337192035928170858463300700115078940983856870148252116364733931676149777595410444335606290876395478726099997067452325210280487174649030423293107874099127668745506784977428889093712168113011373112119806541083229001668768725085643623536391579043353664735487912287806658723535936371908947759109778257279946328661569584124788165391343596686664650776597621147601986075902040252949954978945814274946712663184481688123451762046183640865889498474171061765518014599409846744913744805712421245979628120811345713745674373602980266757135628232934618943910509033596129299715572125998856412295529118672220157424112297946030199403404770422899915191544951236352584285962360619173260110205938813886905455503742913869118531317488849332234033796864898758591086729855764542011883357231894209719699751656778950475953789820138676357816428602915205608455691862779146151392479276153063851637893449589764140916983882566530274329437791293494161019326510637082927014396577639554101829418754657964713956860002002504442952881601504248498125115782429430894874125953054038906140888581116656866623113160277927566778341482329786763273719170720010284243338383803474593143554658197146816232045149952003962638154047777665681840349868740285709712168002011005349143945927610623318144475953229115900342433864124675375106107746127796874567924813755459507594491881774248751078571025693169693617056609916615075783103860071628407345374277451252588577004833118345988129709786399665339471028631216911461873665552885042834104006320860987637857090260726498806338059499899414709590526224069819018190356268451005536471672888440693884797937831494980037979932613916926786942125122912865361175551447115951488870693627115299324577239268317325179343639323822414674422246401862172346550815068529469537542186672718592529846360301625352764072565350307747936447669658600924357610215841187890303940348314622259014398335023462522605826606950812816470428345060315612353657138020893124630601312593397561685089088878100939405677553031549913091627427084510269339460278124064033907838920872672374563321584134127904515435226174890927373034965963508815280874373170387552473533596398635992540099637765063094339072867379596043775835370678992043280897726688014045041355365979347230465110625788604116732581019155608337075812823352154837477872532254770723349009329177110481088063697387763750676437095817812079539230691614031359429546168965747448976915662258288369807634652667165370673252203039486841218402142707799001801804773395102528615166130630934492927156211608472030657496166307469167753077395618397141884795867239360880746507224929100499526250959415255345495992970915959202918703507070613926155041548185805695502047552749591114371329292229899927693228241030993507393612229503744070038635430434883807094075271059724100029885777802796900783957381229955155878398370206868728206285325333053239891193772017941650797684446998465891449605226116698004251589985922990170522561244747116049074260713433321949693926098528461262799512101281024774967552968034694219625843077425543519695022915860754324808451555810434964049546394747377597611992864492419030362671643597280504457787421195114322140290762688398138650397630282615782519633655985297073059259453048852727058015720028897539764896933348254484337711878346615815625576540656293891290283278349837966705290420826712125788767766926676533466129210452231907016986629493575917244555893022418057602930239880786266571777155992935017198347068642006393507369376572043894080417283894003763096101217421254581182298925346596898511194776313850769112621202119559425284338994680253629751510973560685023871147382987825030907841593194125326073990861354155076454598415376187551226930185152078167185537656747259950989353237762042762535123368231612212090449126028033358515075707419330258788081533159653089606124595467345959449453264110368813029557805142402749022608446778421034059829371236408090440679602712528890619091620925963179794221112701066009057410012464579643647774767037158867237607164381029154214205720299889145325387747443147739231365645993458817482981488838894400152798575820912497303307965587401311445572573671518007813271910943564739139901627511848941878344490902950994032494616912146724987019769896491386020090722833416042393613785988523911594069470071995053408273416114944060486865217846876424035522306946199260894275345828078807910460031499799578051939182751930495053767706891332890779467054565768245544847705536582081363151028044481036560056964011377011518620831586146213585844931694906806066891143567401415516314247761837245835859715880628529544699659102379394969119757385061507928213566965744384298255448799606487618466774709261007200987999812301904157018398188034647362124052033921417556367641693447255976065700420829318146488948970972298683468163269445359367004282987267102679396043899193449947350335289574499984376592403335785398314177494048049275387752837697253381380244659580734983875315546381362818661445518989305425052949951058324608932603088725068202755440900453829311468813442473917646226260011509216842956276766009589661284637845852831474387532267380158771925875665064465930093468658326787650184823853203111925332151589771516600761820510318042675023202021264168586968180683778129136896133514266228359259356439224497616493293941066159809228544411564456687846693069362506637830815188075534146769594860521977044703675675258802259477281244830440538097780053009424701456918888349239664057801109596738784862504675953152555869605353384950214001673973485506649717812579488185104839056327704525372668779354481450039213880183281639833438082670417166498099850642377028159381133970334197118423981006513201879053611999230304332957498365478038585829688098878248764315391714170728059338967183266830661569371873005014055796797215984502868378252418873859002669617005811083146404897547093784356279440941579500824897711750913670134816399430073204758982471423303983900051437502767089061491639333181700757974796041518978562700964142747955869511454324509314180774932628474529868421606978182344647741871101291180833163720062221349352000736862906059319160006071389366221323258739175980339048954857174232801672807177947693675670635325158834661010059064863446689030434640741404383184890280152664363400932324328278558260488911475747969834648745814032439534302472629207026361138844327301578164575673500851524356511169191195650002669350043296024829695305955652666017656374077262746757328814044585076155360641745821061703011866201428488615793561671089837457050182124167453240554057266540224656565384717056332410172982705055104572145795163115226255272248131981135614871843352963341674769369436764434155466816607550140685863848080561506245660991275463989467914154641527694278381868748892571940896642334792338773948097324870830619218371558056623074373620956169028424469295882419065359590648201533808557262270964529274284610389984524116807738821222330911575364348088264297474654074024206079358762010314898734485515486453393840086609851094216694011451488331922415820782527309654073329483102661402965058976988273554318178606818206304376623465607270290873942411987689183449072765553090246581378864695325508705140182756977636623786830318292760602666145475523250253891549729109671396133199843095441686102482696641258113542938044038356263489763220628624513123415414212747650929408322494539941711422560351774645762392625020169659888113518999044727634838401039132725475296216579336678046201588494283053677223842019917779299754311072187087659515126152442329673219435409123275446016693557626680688671745562874678052803015296089042745302773563296663464343192154059823492767846030298879118594410906732851645482847615501520199400868037956950359018336135938905881593215285028313501826340217804130731015745251394700707735234460792069384843025836146929568701724257112586843555555896895555041835972205132066043959563527332387663797103149698185222859060003595694933767228092730823583010653831066663383396909590389328328853726689675670228314858591394477281696574671367762345835097777109650868886894511408089186187226318713256767965753130637182055519271929266933295670972813398322995760367751933872524139073335925440346461735538882945163577306486065784008484272015408562733857129382928334733331094819181682163555506568174043636994410121507590477717048153667974197811692950140133442810799297801861303474780230441759169597640244044034672075931381226056593748751296788550040665840008873581087330652948437471947352695574841377182804306049897429551911854309053920199534676818120659118798890649400165602479550957573132809665202420583674260000768886510355249987471543436440729447640758148990011665682249809281454160770251525793388186830674445912454453858157084517435945522953707817198036547291589335650083335605805193410048309335138098785558459827385094764647340534178880833099562807751680163928159560572477357447526037582642994113132621035255572891397091004318473644048841169618277463526388276911895175941288846517725863125669989717108128353947473027247682057078339372871904123253284547527333550430253059742894763100473804234057407132144251787989017293375453345112752463940805946654327747428391662252467935982612775604845540205009299379033502606569752653833030425075564328718707767916221924587816310460440299943111655235333723468456072277642767296532189175413720261140803945256464590077974243873845894998231606011962439205281763527663615409278635242162626223236863339246838158321183159273418393564786795986416917145010618108908251411701076923222593538838789468418313601482836781974379424467951575981033731106529743652195109305825851691774424990388369574420938704364026119311626514388340955386345869219613477836628170149344166782457371254609509878453676402621844938407604062464226021920492253337129762805103256495552209447716692632255629635495672291270953787189435810006391990358067180840215026366456628812952172237918866558537293284024510160183899310608548804481251837867909002682662037215582500032267978758694194387576703173840659377530708210528286545198495753649662681839042140169489877053254677153484920161931664291526348173615689326166085433827501878676650554966465897266076169901520279405815346604455999979164450885183869165389381193851322540554739033997141219303691982844272058748015435471227621816914900446410275819071379863701331265854657627872160074623635164034929498019077701066748422794501340394044893855756920879327320730249614782400497945336211004353149690889987409627586882785112757920918416401267087357805966013214509974918124665501423942377263091669658956862370971896378192466041672138966517442485685112088706012476247905633117785156518319401072653923439706420168749651607148987333206494685552798410816389561526613581458471603703671728156263076935043950341334727356845658264467207264750243100372170696859869947218773408003732064607573993626444191484478658680728639855240560381726801138603533376773021456217275697772544386089705687776836600817296370051454132148152604430247906159210115752618233072155205478794470857768472711724272497125751650152082131223968687882442736254903819419637632429591757775030774168561687266551514001183418587851575999278443859935399684715070907513054743199847178329805362442846992541829993593232346628862311128038233483603206810485139098666355318075853098775755514157955302122130373630081163811576880377383091053677526381747801620526960430867608935736345453637940097351510855118186987139436303569411485370261963913570147222462362971281664797590364212119140903258045444037852833922381180597781428607932806729672656315443309342599266562508894778447553677946823720996304901926346258795424507920711755665850136067557237716531237142846243867910816399108609477784933289787331075462204493859395284552864162088352477496094858673779931603751200119548204227247564760807501154487343686757329621631036077056064102400012098619210028421195333420475171565990670586745086041045661839003541213858717685791548113391592896576238808223924067548439683399962257794669008446273167486602032592990401861676970747841834052655469584305973889950773514393271687511381670355283264344354555091049013144400484801832004298389124688477044837675819092633943108333505055086290158982441084240093522866310290556596369717461037511254276138956360985532948245622245198200295762070672945486695526912054224499273112039051444617366195549825939762500874440168871374388559801841641234525597085594951384235816314825864686818442632042217043158313324569430642675662914521722718146239975859480449984000198276710335141878442689543938959472486887968843757093179709466934710922071674661939047233681375299582704812899030690623687983512335167430762898058710422327690946651403329046307196790284472100108257217816040157098397124251003397573239129365277835211056715701124688162378141321168069103808480559971476719146356918517403825424593972878802601297337128446075259917579465476543902302681682651898575070878295277473733903453970264833163181144809660489976071203632094075594641751722515461266623747808853106586622274019922905306316397094004187494451265739905071147793340228314323275448166945208617560152407907188633725824195478918949570494726695068198036631429416668559303797553845112396681714466986347296324218202354069750150537958806885135910880050461741625997983365005369517152055512255578154340726386210781145103698213190743219735775324259452004929020038695678331957445805233159703592513329129697220480257194086087184277303354542717496042464596153678051447342711397299056362215160410821917851875729703467392774775486665589680244689136724627791769045766079730293508086272085442491794725293375090596126210469407421574671000739422603419961771909921743075732898265822980602769364210835064093975190759964314878579488830307959312156874474876343216733606819363479863640242132485240636422177482956144429342810357456241769191680568785946543583299041855122028511698564857704179190151708804461773632235229041135492399625449017372523062048762612554646147831970477572090875845359171170224462264426307555601579601628759015792018926321833866171508656288358592548797430282224800907350149917003942810414529376692210220921786345323829989184534582374763606470192494873492195070839030182548957671736104043014573478896538497963757473125981382234417360419387934706206659633827504430994167154106923697744687289755735444893462084614850121065069063429306007678782927609625051412867971506498333409653575422133922866746373413109199415289627811711515256155003974802814566740963637125166778808943447073969533949880875705764406094656159994364260015249387296478323574069476707877277610997644112698932470216441003925531671992259238878285155367015109761989390685747766992786150185608643365399486774111075737496940538799380695185432752985641461722518367501672172414536422328582823435823102293671073815346976715769243333977427014535350770098626585076563384094851948096187262936138412445400697034835407696312411610178492148456957081599282244107005014623187160722245627984621339076736735326593422204417833701751761858450041086515688688267570546329105836430676844806811815079320684502187897746990553533520049951947675134816818797413264966580115174053590960914507210948825293842629085678179488111406571853807974788939417866846384285700682438585297951817309159550699832620820101491919248537049287171036019535959193196341284268120978928971537343331186171847324791073303022943580086522430399809222523515677408083090432271689307772862538012291171960547252973783438080720867564849339118672530037470341872882619652585666059138220028825599537824681692873637063996501976892385544193356931881668367353400641895359330172744959895757582836759887758138540914962043429676868614225934682174019094365377218385801312025628208513522702432359190012262001605173614890495263868072066955536843407790515293451555890206217031007163589653767656598162154740637223914704189207362375905743267578123863951172499735070314339183684525659986352605495786977910975700650945903098620330741033942849967729378916098604228301733009751744227155256978682987735936947223657429193110265356647292544907559569877501457137847548698822644687427551676019013661630897589944693818167776941966263089932339116763011228837739485313857982124622064958244670333769366774026138845555165259214105979751436486272185183149662157554721235995429597735873188966725173118011185879112847592071872795296671131031095750385383108237640055247463705364781648841217550049168767853220674235653023155684664912510618629260187767443949627477499739546388193325121475312764482330177077336057992743781542241201082215510385481149283586273757717036131644058635732875407203557736385102526137505159808799167860823991041904965963850351468280137633944459525980545736450823997926001479443830020030347749984467860452281633614173455313691519161636200105966660993830557187208518140711590831976031943188012416742202352334537853602550852310954455447897760052335083556499143168761550757496614611541141837263282861139140265287031637092614296753023992496862365023052330694799905169939083388145107468831195693931036460101530053256923009656133371645003041162246738455280191433967334208917618615860158169609718233654064458662458951127583165898316218981839055943539539424896768764569606168886811580022021735642730418634915617893406097090930848397814710276229397247657354870948687518944388004077739600657103420487943365412528031134353437136631043884689896188236202259275037912248429030952041879555473852103963680130519013696995279479156770635170001220740528895433784497345927689465054777819226226490038987428862544307718319729006274019394955798478106917084937559998300472277608954651490630500488999116465345818701813341534873096724374614890782838560682674990908815405972213260585594517020269616221006676136346280499833975718212278433075135167678846168513711174155565259796441174404440062073876836092466676719496422538548898465488769203517110032353722185898726825565734347499381542247268735506456873590262209996293813593306381097193115507309650433803381872157157460080009760067794344980226547848644406790182780031882526950033578647515670048936767201906294888967919481503070582839440106245263147667404062796491612569013979468246935226810155913861198010024499035746179865163344369904814358805552559464021357165455420877550227998065684262471063691834855996382997771424062735176345145619861112907652322508581216293547081821806419265051872566667631496040265885499191422640103023769323336478664067185572386729253987268423820755058627243207366348402872030120775971439293209561294045019838011293843355811079497807064728327452230036941068321421654555916393083554668211086679829365840729495598872604852050385868585283158506571447529514975247891789598425966163601463268499913390659801677636389472832579146244590384776911978929883884560633841498705615372383011532619842823245055386564690866277023510994883994417699551231965101851752042707347374320284817929028301735545187998532767120932974311503321410301477953278160949448737264444419160917652551530720269999235554486612185475572600712258272583580310525110182688745151625034810448928886570769320563927690077248366176007980435183169200523726355230297652328236819752108772441582083582311675940372210593107470425777475241130601250945055911420603608580658384816181180757748411355414325466912622984065102297754303001573462529654276377789661524137976781215944642284500228404103211798468292381820981300022605688918722881440655630235234810809432221830710291071726514344968896860928163653557202128734439979087012742508618355920420444537244131751815540539016296241714053914805759443755551315469024532743285120456637237363870366265983512136877341484764766407662921738898686979377525904331260111743356942594000371794010361276608956296299110208450627432116081816863335993945356551231061837905416128589637905468213869755582179764401486374043491714489563909640678532302753494424002094878857881525333266738229253344692322021302989860484462597598020157370895751589651736243715690286218987789356780714479412271102940041497212972843231584655928302317183705376126190984937838176614580580569309329828165497405568202761334009661510357181737569333032501660306176164685108220484001072125705226026733253667289614044655193628768868070865575757493980538189291985034320442091755309106353264556999925339625394426605299190271510572139295525792844443150801673475332392535682430945663146446559055028217727119410076013739832226756489350735166138524261178508730890667688031843403216240043285939223474562461239879281080451592455225857222542808521218404810682394390497741210920208401339437919321437052231331055972755398193936475733266777742235142014370844284112598664747325289400791073803990690260692137601000884460648002557833703216502181010118653709054103490650245871403072260814132116176253964366068808242036454794207961902270856026098854647140670517755042418813187408170234598249829791756792377570625734580528679837630537101993360728541346669360533218483103821884941516378498227927488790557972218683225270119917013000622184304336159364926458867276453174189006460284213778325166998767902229288914027074367180185627872759119701506849543549981025182207527073554064569823502955095466621460563875312540343535527684767661475221908004590698741790521329094069085244803102101773636954541542485295619710091670195018228750323320763068729345657292376363420297628143408070191346431512726620489767787853464698118032185397867572184168818394605754106697346999006903170475720391707034208901374783780668568059807834685332494936992757037768926627917171482216795773516398098493189244641798695117898097145432563571933806989104870790226104781829689813968099198227363130466397851853049549906202408083655299085112279295914625805692355802903911376673581401219733875202182143579264062027999275185507513406907326438244027778308352742285178116406671387721653515467337285215698704065467604781045110917098067382297418277782916871167267544705410288598828733343707362809811927679234912548461433417154956011705204953702044821730546649085627140882530473093775205182412549490226444481281473637223500424941033438077589387737867012429276250096222984039801864535962421511701466841298122086137991592152386962932501350130425424494486306544678613417725992399119280535303451448899035630679282075327515183722411098981121164031218310507632366104616898707439426598934662942899929446480926702672321241738340020486293092015240109145885973763580171359388653132007752831634937015422613612789295725781850058736598830070810149090537468125905572032639533062768332364658689660379057244109523811894055765550954735595067743537287609899249910471443533925260020672939405490443966819360621390082424849725172388430232505240750326062752716954198999363725597454864273714853721158909190002655402380607681408474032300914201492916890538086685970944652784668791546439411140371270406595889605245365020023489073578066894905807307059661657068819648738566364544574143866062763213088021037141690254682361967129485501358237704647575061249499187300318964517829021871173313078996565862970017949951200141742179583573375799220274290051719839728793607175836619341904713298076575085908952061183397085630276651453547357986222483360482970232283719079999156693842562931430821299960597224477970819349648933394997167073665303934825879532924548271501533302646105762536128361041734429154477460176670260230307132605512623678126315785141361679409507867146784269506239094984902430158411606938954591642389378884122291344866624715506262497409190200749537863411288852717038842637466094734428229534281571864107623558038974681904820767157497927971117372178938991587574098049313957662768409598539170752836069455602563509157706901812818817656884395144027894855719925047058663956080076747575899550852864198887452980401105703144957809231332656059694654882880848867929321059938987472883870233577861772277688539178649675697391149490394682006002319246785060192932364851154877884392613328748420864027694937516028698251643815822051018927162810356909154400854605538953371657233170257294609009204760399146826868664469268586208766599662097533319120509151945955091386998214313176035261725297270852392710978313176636846715967339580117996472600597472775236742519543908844749269261814278658473095241140857152199803387202086285254963844553477291893827690772590377221899547584541764317080183595746095888290373524321914474709750700062629778398998363659402811879780002511778185609785860705935197744809169005235667985403652923601348823740663002914600649555437187290214976378632795648235118057083875183107170167014687962267010525236526625094046864573989789404173799561906339433113143171506739669619957189976470855056724095546226557129341758076837961003555753108236907521861444911418579939114209367091170893305468327606298260346854601289635592608676598337544244114057498798067945914988130753814185233639367779288461648303690468534116826089425296332984665490970235136219892615578838934510140785953840640196655297736778927261764884848853788472827658129699466412187959457881141957284807184437281103499966813550149436829102584452258830928568258620899137083502721721350867394471108491056321594605503170126657593113490212653100415252889403519019090202247240783874907367652269152361834668957531251603819182291115497096626384693671671473583715639417270876517872263455583162971832186166550298561098036387411790363314909317573189828234867959979717458690403337644604363843414386299109040062372673422542436600662572942507718251879232643245465315190032764485625184761620609146631446898130612785979052042372926993166286486104260076816327711113755739370689073318400471377869743979777074942715794360095159950860003226698667252113780789511400395984547186214588541081058185161253706837730470277102031028372339850236077967653540704588847949797363800326866158139807549978227143778986717765863114105268969988829142429618950363363395344452952653975699942405853450471209697627425479614134847751299723920964467715579363450885897389859690996969562731605777618589562883772264437167606692240760604627891887669036625438813191489904734258057452363206808127782313448243903362753179837829385868586443608774612507153522767774615818464088166042846682783807810626234935410274697937078793881458013983764224130242357313119113182187701551362026277095220180486816328135657796164622097034127291432075976250074903831318445823090350840564665233999631315755885358747599978329799980804731535633888681497109165045881159925265218203611151855788902741659935026560256762476796198044626509147319251221463881690544335176484150860879719721615243462155512867294247572928988044065274003638933224289568056160820785717312174574903093844039731851990573731401397608137817206564917469322350294953701956334760103346482147622383916430443089255152122921089756006896996965935258204990340854141965518541181495573696660763823368727211613876434826783198043767129223132438761823017584389176014247267221380972332955567400216946941143683538769848861475849939968038293277805044534034093013501564818305497937643874932851490192674624749995857999486212919488192187258346827990979231587449092658257749934835407645995581794806808430820102156775136876407005564191665179335775764249714141303680125970526623582926329044816066141607404838324362889276993065221993414906676768729976905977310966590245014602663257185876207135385396125082630136049915049497093038326729864906739968655322867461725187573636145674611699246391853608695244251132923695414856983936129525352254364662870554374318746621371148565855016930124415587585018295051779904411539059270616461518040668881020949419890431519503949802514094764715626249027771551206841071987762594340372909863285540609063709967602443086639086294623662585795728771877078456953388402627301077139687546398896246005867587149013402045001560643597999930484017630578229426143198440076410158414347690753238317922299830610496069119483829233498461739300153459021019461859810043784594786275651544286125951874485559476999696851713057789715726630805433285527317779259561744031866305302832604617496374615303669802682272606609916202400617338952035114659685772401051620455274704039702750734840417311811448863384122491216717995955659215641218082150460303181731725983670385647500570205824665387365572733784354454108389977259599474400051244318621246763616030993643857469759989956077292505123263070739716652336587710123536822636958807708474485668232979618167318984435402986105048777705491428687663694407544250625851154663443261178989964095993719794941976914104908897433533803210261359039722290657774778233708782771173334391703616954274173626057773534514975181301532695216687016128228973676302111697887680001901983600778478614488588701468300182468204224626434611407552476875242837090545963505303038568348076077980942244959251444367935026363993385634051893087544828275060822136687884087367816546851609562993837594443655155179383166122826322439796638098016527520647657460858697008631783336801263085820618978002532071985830907084036074717147966292472798223169945065368519132679126415903999911976912821832361217456780871385268276147020308384824942336010053208896586487150978986943855668486841725878231792663618383633547507390258451035315008069370220628305795177117360310370867365615581492278052738551539022249714591761806153645123847957328064701544351920898957003712489356715163447288849028340865872053858004383548476439380221048963851188514019849492384268861252385785573826877738404366143489245531371257415683838281990849213410750585952467037085852099937098572517589699211398955071152800147058602170440810281687895593085061126499200899551486884796656774594008277122487253373691943820221996555534865599085184210300219222459166140752545368664445556720965821424544530360569092993519450035587148037504954066789986228547026628629440345085771136299730413704146922242084041620655041624862523961057418081524165344729468252568380008725341057645946795726306167427112343287101049956994917301223533386593641671017932124789364525862639000543074317861449868611382251712830736522194671575837035708624351297213796922876671570051413681059879248204747753686936650033102253811827253065693622737968575220519249516527423065762734313463255934476538237996029526454681649888547315027993554387519506410926374014756695141549338828635628320491125792728624480785310855972259180475485478179511519287155022737426003663864276192607487200817817348717838331621961652519672551714953916610887815549210121643130251215921755430631472671069325204621016209332026855432364372695399553319526938527566806344251868401686812136054395594906296479537809644201474506970723550212590630220549976243206569845837216306557066347296862539714393274602595162711528537805051172344104872573487890702386103988039694909074781326331852144782546640432151651439791661957786049867779640542704889239853802544156433364051316874296524323106407536096721383247347144932872038389070401619620502173573375463854914730439774517947229142330278736729386639271294962559822402844641695696223908094124079153881723346246647480849681249945175604174750271180111556466993143550415372100904690330318997067357851684108097151407239123286639046102646268642755078008343663920064257399356915110613931717307114353850755517924833241681859987265053666476598576428974922231450161949908600992062365458654787674180797952163594485249504235577190589528551150583485579909968124912646946886133001764735385612199379890407654095023010567190711158472933196911494437481997289749552600934439534255377555689304745990720053171494347444353819072101531228716728148719414268272448333748006469173845176430550892272433376520309109334714519069950697813234648843678266126568254467742854224720124132449074557083711810094791736578662130170940309697147335953208825793929444409996813082932394935276549859572818064560009444868127357539470047133435797103553593234124873445143347113048367843690594065248683683937402334114618668665009401545661962787334946393533925546019479499241201724501468972656837647304509719219034965752404612664503041126438175043681597051153965760587724960490197478986933286705295203679238009380663198103793583339965086504255249812749747615145502628596306341813736538463544996689011686949771014734596396584372660769874124305041233953024041316490401722569874323427399006998991678986855072380629801692108537181576406293450612509681242535440144895508094985387985521249621098257699335853851336490170969355243604365585743504422065270500705660707534793333362322775306296403171164568036347860088416169118990994141507895936019397771065385098280973108671877651428323557118007085362540460280668445859328122093184541789772796026413477295949611499373729529079851135538258172960438998011049196022628971816698715558457391266349797566460510308543789953567028890331631961229047818594312960199846462748658119232646182110810331894895920989864201305616471277872973885262195720751101424929825373557345077449085996378293626890404597757558134084677751989880810911683294609985010887983082562714372846453404968158084620554698450210923119536189144210273536999406438099925356307050295092341556476018076444885019677258272148122319303704137904034482585857963727547156451568879357655640497873181224293994126875913713961266597364965332498831629280171732203994878790387705203003249125441208100909911009624833183258133663568474551441199536894159512107711207241648021368871408485468870786433623467082528852107513247611344703622333324655911047511913434300535310872467391468487064678127258301147826602910184833826519768897954847575170575153061762752413767969541588151642642185716837049695623079806626476227024181332359383979724840701295268664563751498143197924449659364231217168381308565954176305182918370171046752428889383639103163336583547453419942948187489339977370770374194806856753170735191610854914560537190232214322895676458283436048373243842792911146482161179624516623763955709446848555376435163606878396110120466849097165711891548199780521253581408846766731969687268497889357309741873603484590131555855546795058898543735226897075441219683034930668738252609465030279115477305367707366850424486357259637902370490112348164299914795216079738924572218074650562684503668559186856939590006899014964124890689119872512736027144018186739191568009885653672674069830067186189576057399176604819105894344822961623496912039634070471478895212264635038494998845214136809333276865460842128858176754429966136707189538393390849419440311628906877011436554262387621358733139702106401512629547818000702874279394832712349876682429275197003127133804618848796666580895789606454021890788986806131776739281935591263590291374309111412529495069111460784389200159097811564818181705757755194143329892102256512315408269489219340099675541794904659817144643421455878056204370640176466983237335360936447647328978561262707619131011705342343440199318468109316763297751726320563728570135230345137052823523780653203295588494130887842634403357149013760618250170272967976514916775508393508465494385860110294192773644285974827074019466283750852618234562890773592124174012652503731638858918085296939867846468917227342349587293368012407596747496997368204768386892629496910651159326364332780299730378169677817687321734726706806117704598459498261794248007196045423612844539511190129176186843125606705372561560696530753607256585586596474873665224295273402181009867122166170024813477135046868909812527671572925887887187000974288227175709788784574843913741367628022854655188978408380243330641998061781458269151360823369108510570712337442943125887461117121235307929752143715189711102486808036372395716699024116634565317803037007387038760885006523165469548617421487667653831441731549153617713849677951115171705052810037920097166550300575396781844967333493804617077623332708102308990977988788844804944876461552754435656579097986819296821747516352913277594901752556637716357574936685243686385015287047319765620381669959661125920260396611773996757104395102059170571193662516771123711666473776714112168933515196429047458326872203016869473682315076779368609704768051362458806034934902248525556038699594310673552927029052244807890228174769462287395537853025298606649554265295948630108371930533561993866430807268486095616735258649206930135833266875654131927263482398138188794008453430322214601432508928058617038765652677047227736043376805833008148553633321830351828561197360048594190686766335901484255413188276613089731986672227056089425296396419007033796855784978918407005694912207964257442472816406069934072147283400640862812529360476593772834004872737180499975086173521307454284889779812036552460185744990935156798382262318555062418901468029621485688665111125068935577692859649757812461732429231908190704018709424443325599005549364415883625778713738829066188445253747469084476692139242775277244014955833721961915773863020807664203006895561904016072373955548524085607820112559206048630817922150928431603871680072412634476469343947012287310077907593759678586283610512332626580147153418598194841961187056037017978537871003937701560204991970076997950775117131905130452217070523434240617253957340015359227315888842132933607494280499805465720088266864566507138299911295455484620464460307744433758729499536255546796123696047571452935741088969728513259537433759733720032498202826604147332043050834182601780443518119843693244691138017728421884234968744452792436419993468620187806703084683980968056553986625043489457347868380889658907879109447017244040543999226719732881227353217292844719686560017343654296160027530539074812342035355804707155654556154996912754683155778249334609589189845186114486935586811067254930974976299887741116305072136536946700229760494691338581999656726012736551340664879973798439704473528434000209676971534182742603328682492783635534344312830624382224915039578491532390808481479110420415310024134545185133552979349930302240638931741334547207210201975539997635473840084351380090873500488070669060861917690424249492747292545224964392593983372095231297532511198804681806689084343586604489016964405292553936319629979535146107068488720266860346979322117380244442936069401714638042223805196760713128547798028998514350555879692130256635970800835569881396529666477340869620065177139853593491887795681635449423873697977605093706753202923288015577540359073418105794314416629051720660335470254186861575834436826224254994623833164455855165312003927580329430101123311715105790747440551395755901404136323952901911461659511641514836353299198237881305135908137297074191343262134698177018825080798445578445405395876065206810698916405190675432655589946969365614190339149710230700495253674332654447010839405877639215354784852887477919992629719448456824414036984677062988484793553829409304596570898778141356280644330465180237546047682758522175559250124228527857715463746333194541069245569944288619762785960813448947296830884014441212500790151826828182752228753672014630088940683957962536188100940560909236803325776907651294075650603260287836521161452976683763183446131351010477303681747551119167385626387592324731404301032761574523601617988436225269740312091234242340335691829619149603028366531371325851664954509130210062066581059242550075324987544413228052384596893584334372025580704965082999190650655380871878678163334503060998273963287168831148980897911857732681574782210356171729742370276917179414101533830700054922743211796202471955250559949336095251080621592431649150722619327182692542975357375095874297553630442132236925347816164536214522991328524466770053094137051421213793540700243954973829445194922602301066889172533585452953892127271488925138796724615445181029624970682465526278902092471198272029679352678290269136803942977330537564505594012276970378740611540524963318826093142969180105053376205579789268386970022127994257481685057532394170168497211486625215621024199833030719478237164033628222071506937495590191537920322854833291495145439502956321518058709680963033605022625057613711520416208498857803182194081926357593586664038138801284734845899947684393579502597673506860468856486430621024262961966446434507004784404420456766448858585870837212907563029805788542001242795724715770482133931778834763232767899283721043534790449259369651623536491297698039170959437260911845783348473866940515880925075724275809798738453352517196398632976559824564340850936759423713405727206681859740282693482879912268399642751937597674784737859493340191869979073265665900747278176209747695244860837282607813144381148210126477001212306965665089302645474519409652433362400530945166402472049732231682860021612233631364890330729550165779592094292931422007360423153909376341929172220049494389893588292502839007387980313507537080415550691201242588662786145490972994550870614522545658043176851938334738971113251562319487413628278046704989595309722557278558871737207848248499457319174575139994847210186072035201542973085685724012552998095803099418269036892434235115096445274303912138695795596927507596482920238075702832389365191714044020708458731575814648037953920901355000788989891760493357600198567630551224613510108437176792850018120026343754948599141380507419856403160640143481050781775652948609201113915796692109521372350023175298774713173261740568204473033339780562115365248248851741484472126002863054621329914739561883373557367497358966306205227652815629436090169846691659911392987837687931346402158784187379730328792613767301047831486073313855139127751151702974425990684562664270293344227488431930232523508889306765869091360373158483497652159510107025752786978817365988014220365917983733874152064399122266412613880690806538234869302342706810969654318385788794016106840852202842919922263176281684799769466848140762857784896311049327938644278158726426984529424920375795851741554870986789895494591535112391989859986518887527823666298342580434734694692470704055419554950174263482317438191747089607950652939507262184078628354551013366539845810865105335155115510717159138909869555680182621875039132770826543880473737070255190538867482042497474598560486711825406771781093841504904041659433476475312609055361566955761893617805881372423154442234067636033072875989498513966115081403674899142181038223962979232258475381689507046601695583569169066235209247162536102996789368503510885633675849985212469319801229913452624333427994237020657908775634178555727923618674222902009269627111288544946852332072114362358445450528490744706145366049747838426436306585563250751372967944424236766600941637767768382879757981522934714059234000403944857502289141460986239981718548602604419143345621506754797134690185286185424315900832295576531082882779633492682167027658148244174366536691190951344235823997410382714756653408510910752464584328496589185346238700861735251557322766551927228033052233438966225989819907795450775585611097893787788866006061936255230604184247262546216565290556284106095480623206610897144570846398125549810889031154623249439437250912492889458521897837508260141825143053807760340183782752922133691164868958211597780712801745949990759574045240253683013491716127640555886448801647848744523499404919381982503067563221142368625651553802269356897547796350824317395377325756678910565669987063953450766621470854349484755310102753825858498007129931641706728885756182787168559368692517970704064691753224026477671989938200476856391661557770533351593302045074234632781609728247071471093314145357685533168609925604451313410681342350239491092717897656933552872193993185582821031104179885034101003679958630026437000676021680424779619311373673293617269594842364656879479128414396596977569080615433531456378051246924202278895265032571396244258879584523709786788887184041537819648441877915282154741299983794731046497550880133988368532353388556686089395488217121740156700456656675470819895326462715918515576332314927356039428160394661021268693085747615410997828298118096618916783485935781795575111278027987836719092431928926896788729980042122733386896202117627528922044871561417995990258260173370795658265212818424780780212023025201522708254750953479737585415838877886549286242392423863008183824393996663380699357163603024837892516735342038090810253125138602734967925934081957952338100976919639452629672040886202446533833747084292949794622272361942808953469131180600498123875361876569674098286791366226981421703264407897375747404316322138411925021120058078973913464545523096438569033479567755485433901139082687606816079310705522772862502274078959744397045337159855580567261981135085378418087039819577652188503098099817546946193693293473695305119505988881643688030332058630548567942721895872149890758323541115443132427477222885199779027829382643112893947483546377156907333787159620012276879469959176523161742328892074092547917511498356908556169748685939475423314215660081256066259123954415687177669497638180098539508177374978184937363734364711896001563681013858397810722224578632866983220740437672012997168070650066132686034539593122036724035699670413950305875087265354527141853655228449536241257295237320976978969649038480872536582155387323043124046593980873650719120284188960644948300347663777312785963329678015354580725575654222979897290501674840986798507523628999670115339590689195228936101571725205160582345789265185038259660202644869892630899555629941627743336918270332684536930733177819085731921431972129942479229063414451187771606454479846424292468647174554520818924436864685658739893566591917898973528956375522411186082824207300212503103035565171284169502422598786977283491235139049784071267329280329666572634269613705332058928055617094549787683747676222758098811114570432394386642491397279281634359741140952362930157470720715864667485949232030147160170363204211230322683395419570154049777772201677256771805209582258657717974698857044300454541511562872268620222704566457822251195077510634470585531895106464674259512643219278057801511777582702191072786734216841502814283084755430916474804535973027996347941511653387317708562796663223453656904892232234736088035831969780686494066115068326645920180794274802747863349849721253677477557747801408950847570383195822509883369214801987376096644124671427457983866704797745686154018492299791371715942641734959125720072437669155457946611686611380206374377957594082035123856381779090745629281172620597929381896816611902810011051463927969876391292301105864309993374953122510570746959608289821835202840440262263591742822071003587654241353149422805214055330262444832485950594160632127742147877130953545351249689842193900517521698517882288237114579536116111392363017758754542323639706397978031415941265232115216438863114664275070050856248113532252091151763157375381930815614373458738087527300487339429010511452208925772368682563374193162939844563958896241519336977512497372953398255263240573471006525853430569674710075182250282271276153786850323278816869441668342271645201821530304920362687280275621837361176732138088640447264320214532709075388968752642278615175157267559994030500943682245044840918176248498301653651201587586919483304090270306882037380971211334234605684781613492251148420226660335322102095560789935631956466629043554965975846966109185100602940612431924951715684753492930307713023084172241252203360720758197114880976255285779332999626428260633871297611111120302448512815881716989159140747849304347355097886097447737556478628341439987387484035190275762871590508751906395700884091665670049527986723552557959436358494132305977134745156247979748861534127181129279171477027806791566821972880824056731714963078567060879560511366380619804464940193929830036896939186962566384350363173012436709573410570517973770053640720230725616875164538698447771294362402448138066101454420001047206496857149185164720438104765725764628954599579467862780876199337528799559277359753055495342862802411703336921931727232878200393465412036624358181378557933845038265273168144276156835713918886891956662432693546060932870093621973685242457586107376987560330954244174169044746408316082641823853263451348081131061552551465759045735351593261737890515111527591902429314195454190506313732777721141970071904818310548894714357586847976081723181609119731005026793816951662098237536882587295199672510996759849881771882599195667171775636452355262134342296982274637345082250810664812503531373364488476622161572685125260375604213991969403796397307977757972136352770694258472387271912078219563433678858375920339686099083934780827731024083289643987135151008031033080020819691651338563142158808207511727862088411222050921061623102102560510038449240358627672143057542780816299823577682449493983976219041513641718243501929091349321803145058105626570339095100898524874667411556231096991383885734044062730065540209046708468710150409481310573295579977880296927447057332707291538512067653540989102519136327278132081462598171659901037065192960929525318829492815052975543785931174650967535011893266481227763523160566026697517173039252586580582499788287579037928472681938070713171767375807236055088176706758751528317867695904591190184527985864118414622444388215827677605184891390462863129819737407624594833101850660999925700677480294999356272235819157667825386175337357758518257674621900402355451751155305225919924921712559750481338330707890587523761168363792845311751131238553269093080169843267103799497482928210319817114917545880175608281825740219357449463368313094158584311941873920154376100735037723874149540273727996939924183377291832416867102288518781072060441946400745300093301258922729863015670065920898186667976681171466338161955037127471819177596502330749843530860789950036551014787179916759370184561709472480621454650433150319769167873542784548030404258382915596799237824794844100169376089472160830606038024923047704220525319408555250934161453153632268861275037496469322637205905877899775504477705297619475820547014952328563960919939789400518455471742938168426347941814340848159916253177668305853995126169848286423724725379357743220767145184013531111347928758922874164877248652347712792545230627085522153519406216561051988735797477748245651059708944395392917563627867510423512011874172981753827262456593921274843929147694775042827944533053122576856583496442471334088993972806811548735735052739898551049204783902408205731370049581298807637979760321162948160602062903895187486155630051657666471551635317662607490659683587381323075078710197011447763507253023351620261341657918648589515227656505507120474995787104678790544317336987066133015995853393423364737355432302682873198145323470308285438632007103320328464933995728110022394939777597614390658090368976578537097840318625581498771779116383434204083088484724087552237674894493569140784501512948084431656807746874749695416748798326914396522619920348360903923134333834048187463845957131174164123642619270295095214550529196394648850767723275359321499553663301542307247155364288101849948667312227789084868880553612272598927639354364390750801822415497875731282635873213804388084026599437740371189416467723872200598801681999948321962878957434501502328436616526427013144450931760577420650330626719729752924487408790251267469159908686525096354705857906076628806731920058725689718809842995159252640643354433242698260153840699355669494340265083586944186276093683422253570582222570564335359979688408897594019329283197703830108047134235321077889014648235048109208209961038209659784075914077086402450292191075662942393722032403964777242331800565176386984491530102453599583589932225107897926001551095882613114341332668045714765404851066370679370412713622410189772628254894543802269128665212061470572377044644828652737779597641860469912204938735487246011500156991586343580577325276263223902672487627040141705092393402322336558773978269635100593518358568240829682815666298002321308176996566117750730184342433672559089356491571535618850019284580887628359744233977388558139878292935622740565979082841189170459845356193235435969857423823086787633457550694466845815269561816342611714916031109165426974078293514762857382251104954290245913151804630269319770717451192444741063218556416884009595883722750824104217461340222715665376400407816131509197034548692871332581448147636510643079230738990816640599547450548155165019084153432679157037462327076619004770378989920700732447245409420117233048935905132724266837529938206035283934201869683005956102712353205225359804194833772658244361491129042038314694284275875479032446729828029372893250168026940673719094322308805627797004446819574886836640494767966646144788019444724949654690321369190358034569619091370822237747441615189495449648919711476117947338270407262911307982877575164993140512400401250394766510680365904776437726117248171383017494116816224166907352575776516658694543923721453663905235750015038715313500996044803459983694686340650625394109641897196282949998380649891204326735314780913589071077135831971071548266267171725439280897794397372484368243887568647151568514617557734111476852446341822839719823813364292721412599118440482366638924663007221865664844122459019205424631560573728345723613100162277866150781853599555020946629365922219423821693345403652540428880451209391677317303187926751321883281059916139682724798265255398780288694772353200459569375254372363298889071177409812363296589104758928705318422737970341958598564325650943800146583778757632674880412487056185243105615025538586716547972064530512805933207903944655520704003239711430094370728253270295435663097843533271549866556254987779891472009538116503318409488733448951392398629187639190486338378184182632935091096235611094410951849416511515807150859916818572640280104725035307009242308261533659129516812747689349572489667248399754031492460310911427790203528128950800452875452466450752063965771209129038922913010205377863487445284714400226222609332031041136240845509183495413286049515550247695141682711127671674029260157528252433621812548118948752275098455514142321039395924952704695393759177270228596706691350304557098494279485654520958086865300943061998982962536678246331058541684764533818344081455241186430428390665925544376189982294734678451995392726723303756098406053297291503762103998516731126850464095859828770676935323995803163686932864992726129947810632615610332845020318207392457670774931237901403439381027351776297285233250950712783472691023652242349718793998635026016460628632958225265451893724127157025470508227587318587790225724771632843327699557884360828890770976646284198732373638358252967019292307775563623407604070427599041549185490430631811298153725586427420424512780304438781336832711644348077447186024315665704625721701866229039081655227217337861066230971079870000012716510176564814847651439177096335122347890421518623557648108728267788765415111254257565730595549044025009509554989432054373899666313208333324186652987975593570560164619610626996322437188174700359598991530028012568974554332164384155819207555305169351518379734091590507403149174832808496413957643378189587592357061988123032661116247948355605494354251693123284418694639508986886581868135407352595229643831046190344817803808566565739681012358470063558059272099168839961358210646037904126872705260271491147615903422179738696249316472421934904865517936763154251158018213737019540906659526724794325288297279561003501496979792312812163955204113374767047300867101836595929072945071995506786633517276441610766668660378351112719534581376709500527956370103036585600131381289128606604760708723726141886603247748851980736026387030946545733135121627551856112212729008842493742983721355539568409707759822691130635877587716123105281482897455277744321415285879299758476459724007485580085914400443481415757426333363751130528488194855552292450464000856537559930380908803961113339747012571413429542929350419691332422582698665173391038891099031283180117915358765239822623218816746489167781367200027136319907945469450114855189579654701351432904078361617573472298081941380773911904338073563991509120957312255875316472018756443590726516868656829024488516770997708837221545306202101235991472645874917550391545337970475423886681517585856224026232443512126071803311293241656539695784448732887246883205943223616755154653104194571213874153260607480406007435623990180492822500681687176762328603560121231516997977610757103332362307319486808053871774808841821084200019132717555643785389230539430865266617880535514502466310178541911062169434046833672453878575558494461344681869289798744674429265225063427327064154826709099854854417943754130061216140094421830890051577860843194005633035778580168857335699463041245981576605856210488662471185011237538952183703862697049505373081512780135560594779753808873738857988485086442606787034349340725853953152353766357642270026662312167793407182095140985693223715040526794993278579677019656796973237734563289407897072417738002531308424071476351438943679069299566645927104413953682379714758850124116813778846374377001665048328312044034631752064703165197946390228945166146473168874298690492207792460518605745753330265947664998233271727724791718720269755336335644272076284718974066966374683757452606190503861598975567943453792568490609726532556524296259380746894003383787454392564853687034359219435422501702980716462096565703045307288798012704091162216915896966506064406809188472149878408952135632678007063031876565309454224434571552565605755629405227301203625576133796151427581219459033912690927319261921322155503990235633961701547119713872124076006338762011456674992505569835269822951851643457007222122052070135915047261676479215461589687188830276011939009437482073686991167879882781820013058291907738050027428578588001057984072907779300935104528535911942719687376899464085593150001032865569151192305302669580411651892416800032472452805430318986832278492360903545210823375552462346015610485387661129562204189334860006352299009947573080929311018061239865059626692354280444707122073752331607242593898814357175014230448317125917959160743054541229949353217104379968250229700962412358222436893745796763056948330927163387674229371761343003800788537321248740979860878918357373690147951297789003576487379541160115106109081391803511467199755429652661725469013735416943968924735110588034714673953177624620666654040453727808962503157573034142318961003895809816536915951875776571913015716445762685365314721898229704243423296687644734550597066243581456815024363355932801893511838047328206177224376225194906016381171905906066612196360360202575370486074478327802574082635205467442695746996346396242835227644050315659832115263823351554343135876060127627942459743503795713778457219526243677487443954487820821735065125247900926047105204143481122501150269472706738280511025966375225240033897460157980682330880156785543751041697013389042516089935234715343065407751086659975106219862100513471628256707235008188736620005247914048339601865610734319622905508904587486744274108541876657762901351352680045447138527678342769672851605875636765569811894736550847487758482987086151839464708149656519722634597515560284336616217683027504282324356665666852385948904786527299678880414274487571421234298307343642741284191031811218221225283445386574737391902656540823648236650918357268993650372373620048166807779147471087940470175231834265072874122509587891312581886578327600049801547997104390289378849542469472368984101067391164675695510917480406461460613485127990082966643082813312653877179913461947631097546011637429723847436347585128890989348117675372159565182492016818548481856244428191018434713843481911931569606306059941328614775382450009496905729468631219540639874525414110242724143304576827501793750575988641469098365920321834266722106754300673205718060702914078557603703770826982436293429099951316053539153731610092356076144658191828699829840027067939295582632939793628935019353897746876715803386184244093935965865078044140942472916778306812764034466717819442260770487146338844824234553313784420912711229910151805841529407074805274718070965645846192142263078696671120364463476393590523151747576662918117531825404851804072437969306299132604431415664952717480995894054298890731758723096284542361476213271923048776486006116685780134211611011999770991416702347186494890573577770025734049317455458300536972835201422249286900504692347485473191614549800727861162544269573053555377967602192586288690376303189489307763937286202240160970001251277687097599852474061410437674750186754806453715624808992636072291949256523126689293685141964151708288509965894613108223661245803480928120509870265996372823598151620621297898447372363127091411333863164852186700187224270837991023890517278512153909145630046811682192989754343992507303461734485508525915042046768973253378244773198712471002880480567901912932886908048472005566662829577570678492986982354060042820956328578246617359168238526212419535136440867748119255233781469275314616048978220002535726199891426486880803003841026888030140515328990379953831852113753694511527590483723719285326142385565253358083500335486324637905068832724857679279575237494556559710693197461271414439763078376164310087879667428902029103587284471305574795065437187438628666061465286207322601636538098598314887682248455856796596784163463766967716418379812116155170489173267816147359754180514885036687815429915282157720920499607961296512051105311624809471918610128608103601415330758573022234128234312775536193335384554044705360703003915537211895809373727181581661614394821409034898582602674075005069670686036762243363344740859624671983241401640621192164248275347448265671115378940244650261612479214043406687153618195553790726332083456312155083518767253068069450664502249858591299075395916401298472212906830600374062450026322104738859934277757105346448664485969987390305641279987751100332293754294840257846033070742202610077919113880662358391376164710897954998495244376001652336354519405004975341359527164697824033843509482394407712088803089678429832488357682518234783537757660272358718317433262521829746040194191296331635534226503104244338435034184637679904014244403245568124713451058180534641891021042462550910385915869074035817913111479268210963259441012863771693205597908254315595008609115234397380327147246022308762187360654564527215581082024641166198834311199022705098221864572187661317561282305783831868305863011923495211679819866955676389026937953149923385733812743031728423029540578124223016922030692330763909935612537407181805037238288870437658377291717270448428971182974824288559862635414986305293777104040953872737192793127936489603639300253489799229816684397413536334090314549100206954109511981189232332574638514734131460687082315335241432954408868943970823960401843762905452710820108137046325970524933862824123987448293563245363966557120682522432017137587101664017828738097736604345460770075232467598574393374465551095333725704571047816951273344686142193332314929701956229404066156991371869434225511583149777817320592448068286163339912650074478005609728576963424049177008324569597746460260891998407607341975501551695391690620445294151317571320814459716919123258572657697169270320881087031647405429205067170405352053440435741902084698055665639005214330613903160463812858556125486230800265915319499683260205333019810697549081021797142728160355995892849075196511545663852798361840013925443355257737223602452292432505651594232327650006186678540118668728843264630949285477606535022185837765285130777026021844612974460673043257311343522790111581332128154734116651245250098434106652639835229254988985123318997264775880996895084846484521654491267912633018767329723813798788722190680366444324849985738893100273434434147065734963651021170022532144772790876763986773230704484121958661929585613399956661948951325867573582064975387333247492458243469054913843963265213855450094361089748186223715900619261258578159182081990988512147300645915493562696903134598824229464748806708890667729619818402187587063371455539994435839526129299855005476973376889033931320863034739265495386377615081117545093627041036842516668213503599146306175689055732440761057182617320466950560293063375739173721573953743809424962337539946823369108525893129113768091911572057573937247364723895204806429438933342777986432000117163598382878580397484844356101398202986035139290502766128964289987910982208990340023304181397061954465867527168995501847348813933735410202995657547466407577811691926415939574318002910083043791527523804496619137982819719203931906168233467512963121984117298660105310105048554118682626188814941045545040575594285671823642404672934528651088294255922635060020132958741359879902812673955741252442610926332059648862830037894094415796484158622329035737996429829916334941660183515443925654157175844048951244178002384879571350427947364325877275634492809960641824304918913476429022839254007715698024234832199046989018048156548301781311486227315901189661759784255992246324811005214966280550482845588225591021699472725387653822792265398461362077225601663242729729487285777583011258257736024525363621037824842080212994168435501573637285161660302958128641109442067685902877252500948822611807524720242248863774287587703933669017314071329050389751053713874940186242921981185654665426644938599504272805944682408822502136087709724011009923096498895495004719802099668136344632517244407069467603529914693983605458933165687681088304112440242830676700139201846403096615329600243034999709396937482814965678758924964176341077484581708790028618077045183312477012008534968930533497624844143640290527183528187029792420355581335153737251133565248706778450336011000576984695521420262999171552650581288929502586835328716619689325124237735603478452755118219699617866836996343136243428231787555106113505282629914157794426458126270761965263561850890399232844440038457619763781282600871113875773392953940692322224013297211293659807680758361602349275311947529484563572103900247771929834499615362186501413484835373157247421040757575719983204184431674372013443934902755030035520643062903223654420396552379504567855541144598410896772893554890525902085744369572676572059001097778932880288415505485714008487539867565629539222503470354569700497029019962239370122923253211404046543618264987443969590738154571509858445564511492816663011974009697243684228154334582682503626085919687720158774995927647890671229273895652013439932674051213309386927205933484967791610668704060115014428713777676333996064612382237689978287781422454111052230023475401460527174720616829633612958929289766763384459602420853913448244673014569232514365606729195220843999415625291522870893714391866804564930483084967725640228527787297222801607969545049056284035485185961455601287600524778708557928408297504240940635501164053555620711168994481033716959394074006877844374437710454958266877262671324539956830133626772191254371731481318994509412737746250644489537950844370755711561840637507564298768931204120256202159548514350800728353366495212567888599163855687895889664962058716434139084801947571599865744576216346250653073185604447779134963153147961388188381637505200606276994604259586938363276957061996570898526472203951816802351457279428541974979678484622996743534475093692931012633883588384430626381363726101237333877077573249605229221072673877037253848492195133403368758509968063038493381502834192486576701255368054587587327903579608430826851547812619291671322765987520025820366250175252212318453510296644236014682005729127167869676656349497668619949336658036433192927977080161050722009478401454346374958244202369210341955466431524241828495055752902874917736416978386792336806528738707779302449393519063503023372725199434330684021084813712465155020589538586259301210060124921892864958261909456834139933652713758957854294663981953173772486351560024829523271630539957481522323909608312794373648644691833197626420000031147821671698801647136304607964838573785029180326003779010546691151860701069304370382121482514423270688108476175090304567276169963428317155766179762956987415322625912825050227755151380855226858860258655966709729752183440320222896488671633914289410724557782678162285370798655452300395085169686180778749206925982112542627212369532807598001860181882714102992341422197999762311020039945329779520438646781397899222256618289408882385453620059392840987621815383073036262226121893867077791791094702911713621950019726039898445558112004913716808531466491470061309796800251150769462785600027182758729648931343660155119587409942393780412274589057321474858712543156494375287614910308291776830857306398100243952251638118152555439161689926375385214549593867072710682324798391769807581496613680764497629296899953771387884471873635254972931953464579179763677480936291062474397692090205000979680173725141968449710024083921321473647059544083649406225697489893320606526160435303430227638656937422943485570095858963209788528665688472920448607857734747467354771736517025596177337346899906852994359041335040313056675619987355841445814827368817979007308837433950885378309388766499038358702317604990184907833354018714671300031713972506529349389309137092477222514654927725804381324644164916629548028570186523156464404471329896185026938466827043023275134001891198120213087995001616445735543803775251318581320714249643928742077175888979197642423867335576759474348242024917338970577234771366885271876006996349980201024438757192847899430889833210245554131686525730641795132755403700448763331353043664056889946516942387784540006723658633185932944690179679771723848257059628079643999030677245738660345086087703270415533602655782771878547179630125689866050768888639725557843559990925871439786076156757234961380351412207032610444691087213294190083345005874656016014005551426504926630454705034263024355986516344829135366395859812144250028030310492842888368809105050191229926066961425299139832430889747407469263364663279629551299677931853087005423864451550529863132908663532828559766017128972385015027985245461148334584005712851259774417101282973511852179126088777469984452069383776928550918428741254430407097237638158402246213823398070523692541055099815566696850259614449689915040556166408187493338391234287348341753207028190210707859391479039196740861691943521351581438078038583441118076435913625426859149501584548291616729131759513559441001366704822013542195190608053675530608009489798093711282049202268894906370479292204965432223756346542009695466980994738500385846829754388959667823466753426400103463304881699986513745129544961989066845383746917480090968180477262775040552711958563365221149578810429451486928068842093988423622974764128045919832219306390390795634366814551634979730266711950110374623574169770564938210706602323568789649921416449466691401612464660690088650342567467571663943797131761542681172504590283709978954546844703165957301165346762786736342633208998491609348040180161010199258073877660978611686940044053486220435512661441482273566920692958864088893662817688591384125681864564579555213441865989170577619837554775258287060944159292782207185422415937649394479642198449441072518582378686546388499836683111997537280697885285234045960654976403462745360370393114727209908769218850511972081563250042683061109375387545774265371222091701584370109682201933477640802131233717030424720495931519013557008688498467022734470798830615829789362699426386358498761424254686149749891783781630399636154275737776197038102468627205617018452066338150079159719622128407034601145372530137634943867481623160303626625217228398867126251883156059349985398719304304460342542707569509966478396959958714078615102971367105946172867337401639486116426517709865582352657620588972100473945442374506754832559580679883654880630325335980058624993629719314839075963189107834474171073836720834620463043692641568804624973361886361969546935531093163608537264019056941802809677805210831099851088227584286073114549304036731154914130882229236799151875909817607317065320822156442935120085523398749096803106661447108911574984432582444615633650104810460074287264270713035491036838905848129928144076369635972125974471472235558454659717391017784604858757302389261629792115596285884849056033555184998464612302718388695072329841179814811993582019239530882186133241176310800896733335684529748869291175156319269987088498013738736914100886027791317280337424882419408039398607792619479517190967141882211174903738358437424363414644011979626022498645517858689582436152397873722540528695848537601744137845135582414283657962647215832381413847603031172765055462741680223513171760708012195732010256376230798880156814017125755814413598533548639162518756830714755298206592356219168861679546151073534942925328756265015626046339458971408820659976332774461562396979728392661922241388791565697321428960469003327530175564880295698432890285140097678780755722947034662988101869536503138261282291524077636989495335359820073408922398299444592571796573189778110843552218710792727255619341209143905470323445044909196275695449572542414586700713340184951178797701016684451276177496409842125585287740315277324968301779398469289291008153114069466965844492882537185820001602937763391466602171558106543965226384508759727168772977583579765841561500412146245478638395716535004098700814381985429634135901003275585466330931566426122890420124768503223445492991126683294180026201872760647672398406222702499878585879853275868532962448441135693988538319358812655544562644433405125678549728376951642826326559997918770083261042661850728822808979929671655633073371816388420760507464127031925869725620238004465190236406412090538602519489026236639773451569626609794913545199852470181602825737309809504780756484001488374569359054177351067292076810647157393546705892059778302106196721168353090080371758934144556997349426390502903420202656575064629315371044215188086593948642066027558817252623520108765922837566742939847715486759378008022562544017355438861923437642566362401916042678341122166297106418859853655457406850408383158215728755218420503090983239836302230188329377913950966663195414118052041606798225629311359149239280745754735185806800022621003477464156360553229937043939435682781772775784823911356792532040839566505395550252390466988079573223846105900968264338660136134242530833037504940321771597459435797264541789405606899626048664595358695309784722013435672464786212108646574703816239747913803816285348013840880873131602239883204497801264076692893111667960861522929843642435229514645105386481470284964447101655597653201214130572898706162518591899421135868514285127283816765178631736211124158978048409575902213705569404378064016621871039107022466543175854844047845906911712955690043416380529554922274409718784951528731076573662789682097724771768617331383215152992212824582477017018507596553929730742953477267574011212501801306427140860573882446857017847105677752443617898185250661641296520504223262665764597542393607709869696047252852268648787180166850337757513453034028130280897414494602045917189374353794778657229362286446032130960454609917992566028310676003174824039580634860975760540026891433448041619910671482572871204002871376700762981907512961683573204659364635077266861905638493248029169471277971886025487413743418124097408577391494781673979910800454226391242162348809044771950771432527559872627603550998234245389650709485532714106054692949980960810179648954826800802364051174511473656400067723894512576687388725326133610122018666080194813688940195274693679694488117444148176286144918425950682283672116118831659348434255726950879512470204564292835747302943818388402527322387844414755704283088881271741829468048485567392420471425447998380760771647930901698170513457059021475211025815945757979261270622961099314564528942486903583599094564686012065906340072754249489384711627718473293141432832585389206912150082201696866840083041862040989177503593098638122132607351297881397687310308300282123398300713427788631419894488583425848627040487986113516545263236396826973573853314913751296333381126640812155822525610261672480891531907753895340227330450092150671257459022786164006077170250456328778916397399837033086149789607272861459329627525127522382600868419206895009326655928610258903701107535844777328092692054491906305712376646099403314295056313562538261629996356292067148923601051692114700763637058260549241073189276172474709966254497147528648956755806211137305984292279357303119606116873495092509693135977308613571246677740382049484832613020724359675478253383781411121648552011974111237030326447559267109110617555590952512750779653879789455432381416864001703215303747474158816077988341706121976976216140842465349774391635532101955449731397015868817401477249827232260543376736912902053444942817210657381413660823277044426037326485330325705442733358653202965919817501570314476991538614901147871908458277566981613195545899351629766546741436403042211446939989136960987953109383344544777375897442750468304917198685486458546133966901989250259899505252037096740578589159424618103915296962340069632348375806347811168583211341135234709187480377138423101803904938128348067093032411516021714109448123512929145581840115816131584125207360143688036557714992254845505432671614985786947816700336644541749651030557456932610211798539154472640221328431699496731399908120625229625883563517497311694156339404470424905605671755815809187211960712129250788929885665486229346555154701077439873563680851830701046101022624992710513683848015291935154317247111265563285185936843180291836624471665002779046000618663925941891357683786992807466587397231530043568777109769255401203017986512244464407640018602081382196055803502276885614228794831420753680833179930995046659771353049596261290116538308746201404831876625085929037579236996543822436989262683040903021057571644521337052413952349345321314917774313259434885548669924442637633837013460157817780279788974282052365435339199196156804974203916971903216002366817026028221204505436711099681930780463832350655051450489177721607809074836487622594767051876572118101435952126607055771239257054666809944515010371227903426189423578529060230714263150921084060928595875357586669939120146704412345625317815455634146652678220328623675803042497395774721987034871464598049493986346780813309430345703298465626871056609638017326415980440236104570120947227132659969885048765882147564303413089446673808860267641756443658920839615174374373959795659828654022897311640996881441629475058230689473704404713435891316874474253253286535275679302818426261875912234475030075063680258811049479357143386677943591581868163390250704483452441906752498716593447064514938337036194906713586428064082385721981224338076950173978348372156058794602211961828819618239333471881829353060040225987235268280060236685917473367393850213420319354414696259483647016957220214503588882608748031175775061673309517168113932071671110149317917344623584106080678320430143946840599202421482790236475072462329871142566563212556585798029261416260882976139837880530519609516528657296919918243108191783136076848747985441158883169256228278365511746566180783022088815302079409052874854545783315217992506443635963475296175480584706954678414010247393270920012854908350164466407125394769995602789907651892720503976133245496312409544184302040962552234207768403219807196011759685272001335666519883561216324318416704024941969810035852733391551508455718989800333799868389499894537279254620557934445891812390354433401510100180363855944656179369404827861483176396905019736100408023738250385712964793391403288469802116834445811175654874552473573602546002151794486173619296852716218326977442139175533937782029142178688895313221953836923740617620143437784394402232526906531185491399140998489808434196014529810217951347388807038833972443489410139131324807300298365338926544265343366783768381011927537139140838348529460972895131035498178860522925137794845789702686746654203975359256206753171316318661871008136765186489439402454789073296156104562933945269697156655735437021934571638777001022591852124730677594203942135196541222735709471633942185657229006576675927716053857889446534551641974550453127872217040995037728630227752631491834238837858278536825494927801834324064967380940808132961976679029131556781911716468245994196755149262690046620702500452517883284180135983192193568155662422872626552189720268934567266029532577662784499100866238222368943282217893010658581668391430214146206977615185907749643778039360690253923612069457127661800018068970936235659754379373718751173916909805867777046409075443042137103908587918259310623288431773085094729373989991578945694109837836791548903218355930881144063116307235536465286568834043960982261148560132566552090966728607928603822598184705670320369007229741585824816973655424756185004045570842039391129984667016579109440383878533258104365517668063034515451362734770233105449853908203894781801565213383441095642913307033042796660425913139214879207163396410632907795233852364766775568859607676865391890917417294994970704931110467712341927727889602439781355068957726751366987428509109510148098806375070723301312653358921050773887643776794818026874835412058332191687640046151627522317385097232122817839904870001917507874662064900189931059138311974122416089290275053035798938598953973201171601243734775949195395233728377483069128565010264845034557436055428416742235403971044062269729656558917347928302375450786360365053040534627326812527511923032761509408593788806774511213668493099780510233034715378369304520544593452652260190933677489716446598262546425424702208767939910256259609631060103362079515849556011497883898351987255003671855654328530517340194666159570654192218096710128027239069012260811343001948232336326682042601142532281827152637643863087471584174877285168271608434365319248368073127455212974682638206056476166154574553665656777425871068732948928182780814740727754955533555426651507049994404411582579475727611930152272091090190871097047877267186890627268146956005296679243720635747050108444987779952885272769057960737315075862979823396555214146953175376252817629957370234932016096081287545045071891706596092264403163716117193057969062115146738952753269634021945646698997546493742425930621036135009429691825824408846304986843308885493017053301029309689151173100117367793372367123879913251782753159065473400532726973716862438277961085610372340726422617253500426560974051871183880099953326200406599473121223626880208647560742570959241659617993917022022561241124992659238687673718922783406818727434207129220016869094522930847115412316423158725834383366102187198284356692511644478790066764882824700925857228933532017332977594026248933642966951765546624925471741129186540646124411817650883024279126701020473098897537920921935174657073527960190705771324010707373007071758735556480037730617061029600428736596140350937178187120968656554045110091577112938043175322111224650452881213190441157376693953233790016163373498528419597826892607881475056589444491358048344299684866064333792038349418048102232619270570078975230977344641071198153289768741429439521778643923167058054774929919694293592572185890714886072004972030870484367072180323314547271121394534965746678053853361159684992386330138171226188554572123073640684539677487869853039650024908027282656053364472526103252995439200997233028226458405924385443465569511622532659439449697853249394009287452416484974399000986789724932484499684244084856793998118352855513790155206799676554324139826072077262259096959853020245965690221170889586751032001504937697148611240874583056026134524081967884141593465564495072402231001984230073964916370235282222225354703879200126635142980032133159095391763325476777478724733046240772304709017352515108733746207030532280080696941820334011909935946961837392606779877032406139008721487349232191703017866549167736407698892349520537240668376233137195116089720441614199861408727874254345268418589384099478131829723529194128013541626541891529847724801191828312574888883989230300658795074091528859228408337026718479965520677100047784025602449497099311107027900282630307718893547315649677614037238472354473606281817139000971152547782654978791379245386758036893657468527783941686916731395412566396419802341403704608550163780263357997545592042920240434108896370214649800974106228653420066826499967736104656955366453174206151216343002698313057072332049325704183904083108296554563573089813782439839551479664970552744904057477589460895427161298531924147742184795418538045027053700864161036531507115752778891422520743176653246948461450006594399626190652308191064788338581950086971578257416803887478142705464292170424509097079918933066046095363139357811094717458847789115908445847111390643485756043890077276196850355979946613883408422629564828907360889690965893725109028101008563294292115552402343023433905429697624239495181953273771191718828709180648418532188659599833688456922866979105286903786271531738398426591948457583692737149734669428958338666491385119386698007115881578631031442105199338875999803296625972894932882655884513896345763858589500343474782878446295307718732580396672297138540025169179000076210757157399595962805987915346017904513102557746631787609074183770941459412528638274647783708712470147840717482403029968091981982757109821554738684305763647162585633583886198323551471826061527852601793742470064385650445043653953865995709788830849867083982136036790989926716884668044867622075444325493531470126703774399482076959195809336697733717413776615249919612784730136556454006518514578292875073650672691199253958193960900946697608350435297565159978084051751321806368815508615341383887390729160622699079678404072179588536735180724138145860126531336944303157988677511606296708848885528037656860899692422002722856696474125936577882337349791183743419554015200961245789783793339049116922141439301290445432680595408052746905737382054158257483374001160550557024361087827162183125722353813254568791896194207706818064805346782515922364938423706164507920399233485838996260011645033983760006458113934550584755996684058320319451433352652531673936248321737882210604894845857377002314881924337601475424663164430776266764580625917740976200978943445904820357969705806442589763453074028039552234424075123633706914148760881435350859594322035950113349855231258870998678394970466820306483722690933290326184749665905663235323480423782262033126430228042593812262044363641646455805905050779627594672985385211090628061731676067699094540578652549198867265309875468962294281416736539133189960856148130163812280343192480447173911091938674769387371946065504669929288221550397584583677699691590646058609256824953456071922935918653377048016946983338631751612082224523346899668906508520957019911902023924683212808716922424614176057096957951503293850466582481936419661669862399095316171520961523765382154529321654465208986731868420990706520039767771740232993169216654184637526042450096090140287536495688976494850628899797968125367363656355757860966098342531105472029910108164127845938883491904522598958646295303391522142482206261577122692442068254623948254561833810927139010457821026166377521999963105974272445109071816443582410273928916811836420086821985623318502022753198787326670965462052002632716384126557074606853557276633643475068971821727633735510732004050291884480517045976271047608190565752250037609795477128414570559026861097862822196842739731570271897738043593382887074786726488843780296715695292037644454037929689275964225663515884089714831046554879993835348792208564294021115488196024065226333661230453799524170436020176868031536073938096068140816625350548239447930140769746625701275635542053061528265516107062068358048449718092053002387361157905739321120530318987056052824390910690444046211664086857715238188966361862904949046533911358875860219543715111836158475937097687987140613888583694031831374222016755924382464265090437520979653425855345553532398027274986326095351953225872223700884244656725776258666154246126724795024692674970489203221482426089726916113458624691581693605114855193715721922346840884688822317012034142942039301961030296309494395459102725302884056952218418665861488560702641057979285525797409696836792110174399664709412999259534939625473218788941360425397357939818138614291657501441925017283340114374819055283744804269217799006739256791585887772118268597624394241954334826518404185286585344093059759064934572695051093549543675698733826112065425819916795277631976531578148796149007225414798259900892564835713368162186065368678689000023562282832411359812753662421262484536522844894458254175192485679378842961795207318024202722448233568498074512389163522827124416144642334049957226671571607447197083038207937052694029405713769826762784204909545928853127703670449171396717793287318971859860739926745936161222822406665606263660842021124182449147774932030432661479520347009230562098956063575494511544349066487738985345597916460944173572159074816924364857364952033136061878805093935474708829767886209055789256118345396566497493196424289434651706620022945111407931385791043225395021032179036574925916883864026579232329123384481154758024123527007783934947582838574218329973440478096958055119038005762101407509652041321935305485539400825781866909510997576740994900297227522344892694857220592890417700511221099283692055436640051712666468925770589122143819077196983674944500296139679666972424724758296468019224640888475753858361071963192543763426318431589616210609268453541858759170125856649786821638662371739736563038453252525323743684411064997212967410059603978980947884491272442554931181070190721932089739234374866744576590292606010792623741169642733497914861069068492309074099665297088315327482276352908371823501682907852598620721867144344200491407932586826870649673947853071587066590226438461307759698456095528080671423894883220503880778829663595435044840328473047131829005970339032971725751461562316293946221620239841285452222395367488095476164527279115876993290745215637277203029497532514055712148190411748071799501099635112557526090947781124067119795670695772471992068790702711249599178258144971691819527414317061655002673401537712648686781078943317657403230089980234618291074513083160086044192615835880420413129281086665492584679218958725021029543273330158279762850460552857739867406791300545444189798306068789727354426738884709842028371629175266124017514474637050993520733762274851392753031468730112984516505369135703504236993277272621889185338063178694819469154415751355892001208511521863970761268974674838899604680943679692002508048667820322654883117287042934232026864744235779475619353411652175831954781085439302224303429064010096623463134299394655595344525631061150648063350207193469650245285617783370432570611702861968080102161157906359591551912706369538356695882335347682614279847384602977407634495109583083348808969976188613573977678097046067675114027942106596867434221505565492502805542956732974018309174038497251423484267298873284035413567243595405225784667322499059627406399929812402546814702122346545331981959307086309947716511483763732777191190375298714179628733274635967090519362350731254332796680378287496446051689845446145481177889992253372784173338056095257306731987453388673375722058178665870781138058264663688958487469982113342616276034275369587980835731231732464812487386252892556488390026595167213915917378445349058225036518691147013670060437395592264847878460057141226192151499832844397059389378272250610749469507416038133504808094005778112573089787682054793218973486521094638230635791811979620203106953704723729268512919484370933395321877327419640973994108461584479172631963025946850968033629945334256792194074478832109019221928971150626225179979334049112175702075474269208719144769870713845754958807811979407320462306534688824405007692529268482183556567831426841817181697901080461399739895022500072539113133995983398046813180783090924910083231493037451822540162689245621509912518317161577005565845744896021357177818408191104674209987513096115945163467744466183975114023976293025890036560152854278858068307905917868386019103214797878166729981661310955490419102515018182083123463733736257704289814031371541567790052643257657220322295756992428976528156480512856734632570010558685779077841660301791855165892660552379649505176705755040422362610456312692428560490577071405173766628949084577387918168862202733936283396917937825785657499854786048350874721090994059287944188764132964107470509050524542106093130305386433055223144119768368535787216772860833924263216587484094519408237235814675150943795733242534866833335641704427143794228966284107492126113892902722851306942046809862731133633400336462362615048218621055518897359700351786225695925809620050013107022680652209518911341604334781881466483377686366239409008786158403886207287276948423881434328158243751045409068222404047626876405440403682251117568602550399530027484773185171464590924695777052731836824172440334801258797239192658129206126258654189157549617771134626167663484560944575908502843721469306428364886127025346790677452296977924882652525046626530669914609432139418353799045515264793616031998356560353146846920202458592913313965821913914666266085093413162822684893133191838597325281102587736455742345200502526884170226355316310781229626998998737999093371363440329343508885795684545249577215822954459591280717324870026108161235594117405821548978096225117762165333046917027351935450205834732388064695914404773281979136613083991828008556294833883037926400769819149181539320381173132713293179329635761173678168857152311261197546723836317607170879560336457477061668552689842177058137311234662428704438951171689691531642287719418283288059827742345078380177896453527471547179324593241025857748241698732787760295383091241999704703624684111332623857919524215180307373124109296520748318939497899348109399660469675719453613885031627057430350148622655327643856207332130013400255815346512566881151578845754353954593040259731266634847819842007918383667758170685838282991839691553056963280377442735653570831319310046170998552917482522561163711010851092031267191869688108104348998899936861096737093599621725763862490772397294521681979207463944870145313301678439070729285268781950677727640327515999076409286360316132983098534194618893203964032125118436395937610706530556649755490427329209744720755188702328207558452590799322217919029746694780678069252804018915260208278290364530927358456640406779296695848719822864589932907550669110893572163245684561344615300919876269625600029642648602640523804519872855542406368984580038952209914961603806850508337917542467555999851423999142771807890081033034479022972597112170945043823942180512572791090264591053002040866477114235246573958361059242025277698431984324358589767387571016540644441391501626005855799781791396054298468321320702923331232322265933208880250981087315336070304211191610733851256961966624932369344538790839274778642108450146287706283668564725462932819884941556477949422805673459332263276235162318032964672426616571386502443993487434283638549985358710688164983710447056589344171134536822584689713469769049514638607888553249878584464139681140904388170785864466430519843735729862483470953550849122346610737107956202635319140543626505819126249653137721693206228979023392209840002424033205034877684446140024067098763069614433419569189846735369998792915878614463563159661446258547875857742413248795300886016801678792787198615792491673320147308981086019401960213161853447492030981389668854536558535792812569229493007951087327677727697285930367788475629368089522123626306471839062686368553635624245774531717470777302767831923879651911930611353696661685085335099401522569965164162687438977844546680601386697535548579019927971670354402721988094998496669381749691717559825033191084828259690235431714029634047203310309224130767715550410895611355112729213272099601844413299756689604621221817477121631519374676344667745438329218462542082983305568282521909211244658951077450865531009463609346233372028600586148447717081499722320794335589999866345206940888354003726067114685193289446931956354614386317197952948979907162771733390059972384526142278530875315219568165335573170118172778073291532918674875007617598929340777008027353101551911824390472075701814086194101825495602252957551272952007587712377218651749108390596027608383196716627797525952133020631614141272741877075052952639535356399089973349091488512976899667282614464115000233739051164027764999263012892626269851464670283493575757675426168467072408080476464407515346244341779999792781310093311142636652534659203125266324207266397405884902131541932270672852223284606826025331739715176387550754574927678582300040339822369280959937990861867088228528645664087231762982451970399798460404924090852758923449141093465795754119407165784874390724818753468630054512354372082568873762824299831192534439583184460002873410892132591273728579198738199362036603173084501998473542321942874805407708988444686342741401836863278577940079300734127664474392878701235811082869820160857842662108788985519277613246540459194598887682170289894976139226283152715301340791610629351720999566769388615470200472731485752723221032899866309659649830916808022832254606831463174019219672355738645062659310761757487265847321070601473675919431204360803141434260881950737420658758264256100007261463831425214343973247595243493406334188623571303598196440090010702762855665633212617139193208856578658604103710737524699290536686947881872302172007162087904218815280066081816447603293723070802337587795458884535014004060971770089296105639604229577501688801792876519257183076872979914860635605209032655882910011045747049574036041747177690436035655781852976127348640590244694957867456813416261288819795519866882137735664825435283319471252246998561503634124246675479151262577849448371202311104528769623511584207411216596053320500775998509286204221409483421152391325708962292095105422861823404152895318681982489197763319513032485214686781520091615925479932617058738539136877282527004053284028452844523338293844446935914615776699236785521167200426706629165880910617459644018773158297888595949180067562149597813551320375694581022871165513252340428003902807167520563127284253832682136174085943641481793056374669050943367626033148582394915534456860165956448751952942906415032267370568796219394708914647429917488817144621174223840800590769973450399798767235104247394067249913777636486600218989925575300125448329678203276154296930952175491300718327924787236738270434745555824291783739663352635239834120961993612722337720128479437626022696188060073872029469183555825317499268971451230489757724643555371728698261741819153963060618905065429841678168182617709946494317457639123597307011852638370073979168534379170952661304410545933088461639393010051015642730867137615585310671264238268997042033700976194122709967843459323245308904423764235857495692018268402741835908430773080121508560972565327059186032718153507953241506873682272790989452379663990144989855312640493520337788812331846815118490291066046269379813054426812619608413642226026450835954830889859622638178604480387461134401073598267727188693761800168300658791672029878397626997529841601409427044947525045680159792185174196526782236433729016140916379713959238915305945386646970699555675039914332473781547236267214153447031938464680996198040927876842595028692159352523278278181008842389133905026268633694843474490139841263790029108140910007911595401324904932786894270393909454769678068720338139916022732360588132438366919718127350153748763135500153056243759462748184904426586777082900536618678103067848254908580916620140375385626361408976102450239774073150162421103706750023460256693017073480813227519993504597090192543971403387257681545048143966704444061155493085906985421677178780483279725762769315032695447647642831793495203559431604593746830348933705197402430409767561884203985278447012793998150097429772597972383763698285125958239380667574400493270009039928890921454097182201656720692548229108431944821863744531406396325794169197435895479946784071691207078698017809106745439191938352249391960545745908722064835864161726779783414999892916458845230022167148770427338668849340786139971218776085669412867606089677316149032333918726339132521714680749133414229700751335418773159394410632254613530634306628041509080146515289651508203490793391246985615211099180526244368155610173102359181461016874721803505016099015408431131980055030630200183509454865564123338579385986265726403199336547004877356058466349520090816645398980906489123997410931325142137788251098386171909385472302056986136087177734920370954456796751030079889126564023057567718154278880694793434887668696658017409855498463083732211453493771922850269753448601901640466053163068230014345353583692005452234889588681061487757500334075558075910295185967909835935384142294920955143687418843401677493490809653314307578074773015358101969476115636245768508624944214621201507224165144240960156537226647023815539265878977212079716524935910815266981960729757324328105659104960159815940333702970915527873371663012627977306175009274641184632147200985763057471048809365883717052803142955379246603240752401095530189694195281865717592111582387471341630310971904442316941043488927012984657661771422044132838566156492432874636368395245560730193562028978014809331053931188891105877896255423347568596366627227147587936009950615254711213294915042676188624977161891024504873715768029204524581439756610783107855917796958230873084145007368915805017073199935731145325962343096071723524426584472405842583491030699793719553860261816032082846204798076909632455216051402427885118054388653785461735580679578446722657593886978395582458880690806358987460251074617853618270427111878385107163452325685573189377910432434113027159137761617697018097829985517385458809068881703957620941388416749483999955880959173606365264944672656828217204981872371068898422847876282488696695660636792924294605344309663472464951286988437854566758109916782876989615145449568342799559160913804106948728068219729020398904342098021231093587179494029207888241409484567583841274012616981888555057990265845670508225320477633313463874011244033093351421589016959353797268340564296769769052326463204834868669266027717240948975344602199916164455900433190726605867429112017572446466540919208531829538264506796911647205381072521965176713639284192241408344184859104828257375917840422677639088185435826771335500292755224668240902441299067439396343091545570396784543895893403485525570747092233808448252590477478783370919980746142383073469007284257914955134392240625874534676574177944217265473487908350059414994159639481232540656530843370956419212945264067838302600584221723590299447107661183145069235516286532041008535795298490095908159318278275592228153814208245447041262934447079255517584737437128532008619234564304359425558373173639015343363731609669312235028088337339331384272877228304993493092546118994453411807974715179952882590885190996607716089187466303688748708752491620256036933348005181986937426888775832748654495915047121009576602122830677568190601075640274238504531264858760975676425109641207033505576383982697573982676964130073478213176690579899483949193663183328887848459926234991668286016928170411649864456611036905747215480137930701915063933306191583841341922206428617664003706761005037630248747725837978697040025058793987054725846032400948570597971516789887235249779426438695272578427854480114195073679068627162468359182351680885475627151515710308082246448383648143230264104255726573646161615960918334882355996169263533876454377597525549367136272999648336747382600235005803920748357392836845772551688125909505220628685926886371481686186463964757827126823717954747881096540198916518754194376415917291356643289198324568024240082184652685374159355660543630015088289260386768535831079168499691125091347209636351187323373642223122099005003207640534798226111458900622069132717641563402666171445051660773301024801621465425032633102911581824982050408210166831667788285283369755722805854965170043634586126898669746904918863451162904558016597053372259325871209371561221237604676097741806013135162839581393232530456077854911682544662857705613730206375013304494932589351138740933965104179575162333389884465860479969079464580087858466008865685341022763479294513764054321805362264518656593750469592807974076258702169658256216457676666788299165802305709031623376628791547766146530170360017749465515841459674938561997944566123091679513900797124058140702552089381756865771046979106218816578528706170850891737534947842578921177849463207923372754284439294503958032934826951717208679032423951611749497247780324592791494175030287355475986444039420641842183804198787720939700106697874186196445613303961527631926801966713308060897625620249704832604485413692042951381010086310356359468793229126891951351916348128927913994766012263374597323419916764755821555464456687105253213017629153062237846646027365002196084996137198419391382352096075527742599793336005150494142097710750192557152201082783776136020996313692361723125584700835358389222589343195016744289048580261379465400761030510190002497160311166133765689313313889172762446380213718537112271678024996403851215408661226708725934684620141594150506891544564530894262572952955791479524287136445438826198809614415317887436054630461744683834624040102710659886799781917638063989753689396751564622032104209603527254662697398314709189486285710495838848600246716133735750969804662586941188726415532795585886803568442962244505043619615053686788552069617466150111216643676559267653208623808677800498135391715897538226117243209739659614884422508896232984075334378940178634823950994391965365847809368758566070878698625137399418430472507373115061050882995728463011273026618403702433255391306308159025786523514438431012178049166817395445021422243882616968297684482565315291220915232505268285060191854775479462512081401583520898362595026616826786918417049942746281574648044688336330327729977653353862974915175512788165550521026208564407079032526766738718984230991434810700651255332530913913030753418364274820963291715174359252177758505160725903397690201612511192929661285507060348093378054614477719664931907063139684467501615215259851664029572273979260858988423589926270321324623501933352144786973042159559892114583146159135316107843041828152159190133705594751830668608735155846436095717452826359897990485435386945474352592124770315574308057139989292939495626993342302637968418598076943839147605637427803782877316318271293841581946132872537960569695269370172377490946566198090507962723470968434971748796663230609531440145112575827751781476408071661366958661764237777833667964406081240275553139285522355326197318409300018113632332174764838429447474504785817738482455013821116076998299032082781168635961220809459197986302122061996378357163243837302090205237927076802445028232375308409470275145190470213632129873569134460274488981134085699328308818814974037236328161869532453618190422301740472756434751461658563024597259624292915669923262315516241395603956272089579158232350978251628601708681163455475899567492354631466454535815809365812261030859003257670342303062417098266292385114821443554658061615992561807825302344898891892525365642001768116932042622971071312685830243038900983419250769950742233200179490960422041706840996164262376140814063568003663645626157834550299437409128102250735309344116388744194496028178254754726229901151625981837212578536122854790605395515163629523997021180061758998627255276507413437629448952577229158965086771928373215712331280505396364860854031533304859124028425316231288466909942194395309189359464550737709892149623894464599178043436330480414505362459627540032460260983752452426378207731892753885245865638798415976418087070424003332881750852591374595411938288484803292111827508608362712273872915595722450798388415579532065925669706021751448581360641905891009454512525844604002574288333282179446238470979932055859797419091951842743728147941836100219044882401197003837465978899212622769275016737404203399554589054015271577360949345944090528154235447125985763493399538350766367379795732900405526049968114680455485004914133576569604344107241855319977942586396360078246217884850314717137031667079598580999306168763353245762546288727903381008047188121374303374458185890185060916714585436906499062569839748381694297617408460291538236137458483048351707304257921262680567322865453333750415864419424001515069689309867830060406982712207081021175438733227324357960356008552760830068144469486355931780383033061799453520938457643017233583885529511139254506010684735080256049234999962307229346877191361685064486044491678960792570999314842329438458138328526003609174111658550782885562538322939233623853182232899523807169430740192076749661991374536304260556114038002833659864788847591714978603113229690160381270101771414626660642827554862150244195500031686691615673047753320916144017817354949691180735104114528566144803107000763907504894398370708262353701252135437005653804558202199308014231671012087107113235290579596295518487933312859977163072427342320925023752755054446786353369334607338952518749948839188914275945038066398102305344012802351387275514667793793095607229309599664728325927407317052870914952054306243442391790586634797099524390286417869977998546454953007467713715639031894199281673150732076282357247615259414325917523386723271892015764163085579298346947409720594836172632160616601900227335206046588868585622638607033848313430928907354659576798608159838545160692771348816821196282748757522558395535967786541979334380902515317993385613577245457674287869398703458014386138080920382086423716091493798969990059636647124439459555828031259369997087703521759556633019677004829465981420012661749042252169277904587762113881563393849946102048532390180121793489301547753482888508723357298875500948599502108814103202540402183606300694720360619513800663089077169375254537705688459011351405302756732812192297633077668686770531078379271502384479002985437056818070018808061875000804837979683492580990108712508418950228411871383705565339861207373706034615085545930849870161068798023801060130793795962951840292145204492634189758517423981420263898387625548382335143411839645514580128576908008252412909819060467313771269286105828417125213582553346114683976129411213307727343669556526917439339713667217988379752137441716183400825108360305855870271349429263183960181793483013088674072348416146664621834985681550423785068573009946535486079275819823920787068882814358966813714754018861792971923960006966324114784914466694760832469577608445638037542837914995962176291636239736976606659037449809101002565444260473535559007364779359731155279237498404551347135504706861787733988655774351064145171520552081219005624142258753211016041410319761409471132547637168933048339992461992495521054926127647647354843928823689083166776819176443095273414438778150143566206429414186437860074105345199465288033657378353853657517274913045003050032983999030991267104644009005348675760078899583307647285835867918448366367628810800399174446514080078657463330763365179544178554529599064486850821288640049041261951859840457392824641923865387353133809371374986826001898051532853427339335006910787323446929424849455218669753155821300404361905792682039770111526770893533754541409654512171733404923735009541174594148217024422279427842713888130274875723332700342020961758153699645516312991021436472577071755895278854025991959966518472963752380489691671357777105738884147789255101716615247246080636771710248731424502371337489475383667248220657935049477368992149291614901174447452850540171243744588224054083354121046351909022988800366630519402693675135638256676553740974696817606453573971213267672471799834962381333087498239398658350265305833808104778502682250088621138767946596084030245365142947773596439093958921049370034661672544485771796861729995827404489407836477735210981026152474111937595323331577697113658348697734893168963927840576678480271953674664671258526059547739844062126516993179019080775800212994128507029928534129476156346354353632085897300118574378188286748307617392062856069897207262962637400662055884307176636958875655712885405323996262580633885957402637606939693960440553756861469606061964625159453287353441017593784298721786226276790152826326790055581060780622021293303520116012515481644602232701932781803017693820252506172860535854792678278301974446914026438332469524435939115081467922231286286864800814525009278163464244909566876494240236516771983475975274061197176033627797535388026380731828211856296387528154421551112892375832024183090482889711130636549517631500064497130007848664314469841914685999583305862968647428142723585218800866274580979206119262471678861428782741958137983206459911645137397040865646870796462242012054771410808619804271034778118652038946359506623798394069843388204330541413653049867860810557091344444183897841388876823917785803291376970654361493829668073769732826087610767232374503156265279506432601419707483249949101151275210791334701036723200154291864658118517710153935051894274978717448146445153656436821007058278724571736942146857052736571523181345273434469560668366517723655828286617090132160475628437525309980458905942369455376742415277112334664236390081693119386036801935351348861184021422476635405175466942592154568476326769023815889852068121610483004477510541911229714427328010876084502587809255870242709772343796088391239782585167743375430133976164492357108140083697583153617603501318223118885983423901510706871385222144562997637613590840727624607413540023999533364505857853832055142650848396235413215208011886212088162733870943979749152170725181228007103337212269673007635023825698152779758405009672147578341065614318590194422739248585092906669588727951907571171286707160524487332220530942300178618637823930097600673884345777907819673038120097252538975515415577049325890993355326514007806876053946815464508657445544357736044784257646445243659039628196264549196275029225501479044272695503268970888470165395804142435599222198005314907515211251185532141303025003787411855568154749896519152679275740018593259168033100582475528789713692433553730385894291805678317697895120873095848850169718286790205427714205749376405901983150771167355037622611148195536658130536150072661570543089583482836280982121915617318858062232166083138232291860059418026734149659576686688546090286432225134406604100059039147554406187471131244682545154909959644039208949211157167440343317725974020494634500379645089977123291089520955663687339008337707375130644873954188125462773789559009834338069239424756188173923444289534756978307220624161286991722517911588448996845363738042906656256075266730870004742101538479537348924843129194206811359988425740736889893966945446828193030671155037305361027350745619307519473085035491238093274821364011485665989184539300346876984767621629537993779252238997164654831446278958649343159411897029323434377831188985559894360976307665376613817805585369121551506727117649532806616586317608595822581763064660728469124405786651731399004753743209147836518781794401357305082827769344310871162556464891776053999833333626223610704231731412412689754442390019792808490643349548819602601425685095296171578802717703178046646235845250509320869117896896306181061905691831972191274792803916995543887258869259960054860045647235047583001166166840885490993983198748818481795240557079893388025859546231194999872858157853929018351434941867873405123945548659650788730960392478503232557635481452585151917898055399702756477998225722450338365267213468375287619014847951273715469076558504330271877339320058441386110295062955400785946029501484788888687289432779882351382029841323551736061914500019038626338655617280524322407455748938373969142029108036094181578874652881063148885935391370866017850902961495891123577252409155276426804921322382083212516206684179896399958276370177602614800499289921703780973303895513628142766079860171361620624216186365898374809796337406715601735556745576373054723081225479914291973943953393689406229988352940309898849319337697495902551345779258058832547456195790254365459417915245659733831828381633351288798091985807311956325232988080595145900555456978845444605888678006328002445965652862018041015232401993111853306041049769582034619461253810153619895652132030987053925313810298888517362165557077823678643922676297836606020569556324072295722614193706421257046716729339219323576207846223433741940094775618176070847967433675696021009948919921165073775099516499360206508337352081906861992469092712907103298389284061327113609011868833679747492590335293423211044562953104317116685024591748529020088106245571748983795125993252049600400921848218739168309670600189462051309656914583258355822986658926054960961371748491681663023292732034629169014278246856884162335806767429182160062637436817760775185879910776887205659797649388493460614226353281480618725600577344231265880710741949753472781135144006658530997711237011813291139833748460302019624389084414086662704548139426317838235338566419827213078799752293234864204523071952855402840419658450758338442203627794848767045279662051332684260269981484651015770323550355678385855395408303627046106387323343798452022548107284223739325009886779410429651868356824377864233813766407482280552718083761765815250824935601445689553808953142781814178235406191772995375653487897914260775565300230244889303811603437210205440488188047472754169144936933677927571061073523328321697392604656812443362492466883409585857554613889040728315543879274679469363109296667337194653104923390396379690291443224396264948133075120732566434368115397488257903749086559705079941551003121820717742248935596825000671495766277041652299742635146821430944166332477015375351983702537037940845531526087064663699810116045523185090033842060532132012110197829826663162708544366138116462569313157865270264530400241322595863188310606224094743926532052414383275742893874102969756342568574879055020124427709644453198057127695406808681025605548494337641808925225658167133480190993167216369931952986238051418717104923401050161582642858898698127217696192537094162087966422230193871592616353075875847282922320682235278703221212479690610346914574052751882868848905117859099725383678669561425249154336841397089700199393489976128796407900143233496028879523008113607284496650684955884123381444719605974388577474977163656773842777913476335999989962815193050812256384534615776132474699248108197057983998503745447044247854896846207742661948657786960675915414853176418708576161645618433633800606651224228263710381880675115677257282723144285360788043198850549129638292115293265959241964465935656990036468887142507411704857784356765828190828311019784747249613521597368918937155333757469526546833705276681510410254855014335379732048486104084749930750205124656887684839681097262476975223184647888916602358923280346995410224793867613619582381111423958719919722480539417963407797971411619191453046170172440274587723839216621934576774413753058022369037123944550508300040726472904129010901671345174489221766539779159651367907933618632702150593984280841626323893066298306310868237546338682253831103564281994521812010549473386494242154191871212099705405442490950983174274822856006891208003062207982624869614183481774608664409257200487909653946167586441921459456800442177548756743271989197648202208561687278700571997956481754458979629248527843403511912716995639487907940873601424723022078853515236400370056521780083674799129848566500075480832774003394900109360479304474689932498919047247630750608715133840237514964787858368206248374846679675555899858796239375161514213985619201270905098696697146976577697691141092682851180809391794243246935899367286334220542416605045006258192414098569720372218785177854122815143656998130494840222840710481021044442297371344513977439240050316428963445976926728514066153713999096546904968066421297833938979200469245166887888006534918783554387075828064623417180163298132277267389525823277931757344175558318520352885910930888611205243710205556962533806577106467327534123693599092077175496916376296555112207224535681793052577806438743752303310678724906979796486457596983024329460748971564863981228592659452510193374489877449709040514564552951202792890562878583423299384995371835737018845911448975295423246941971022275517685571457296291512981893864937005452877730803770354360082113416424835584495403965857844401897276058151172377701020995909450095502231198024305174058420714141637860364895392855133620366056772986667558549497662816798028788289562029829418972352270256130370083145508927403668589180339131913051424854834714143800014861836635160719162296621645291033979445769655238525623263162760364441354376842121738306992075572993343447051069219220331710203325364151754953134703664021462593072407196544069952950519099881420885566962489883128860276168731028057665189265371632214785397803331675413758718009755963758651987183056981649055718292053936028424737576474222592819565317124583005257483577358195911216557607502334877524618637949113562254835051066853938147514464361750554399277146515381674048781780671662598399939491946342197859510098104808938376325433608627399671705987832452847161545142422162221395515030084336886581927300437670844691821386098306994129851989404289915902753704143883512560233493541044295142257034326781109376164729571692968172150878999290010035557501014744985648201404290038201541100447835439857255888373224970463199429073899572851705407976192098788866455364012566604606337279086836267151532987720716735934611203774538232319993046245183686695948028466785941801410155420216629797760818853671766618498813670182713887617978462095895340561125399903392851298475160658508725955995428712577396905230285079275424915003979567625308077431416130160939237658473326217716028807591499038684672913656455438729335964894105462720563655379748489882686536502787028805214109697846755567935952607808488546737558106637872278150516615023491797532906867188151989514277521562535076932002611443282557555390370110234287190355435608210490555588323584949254483651046027521081652038062635082363119642210362929715743464048107614437227420043778891500014918938971503752250007465482408120110404623373779135786645100694856490567504590007782262666961632887386786104966851651271444455965579415307837323110897404787860000865401948567939541157078908765808847455991057544157688386227699781524009381443034996144445941545167826529037919002477342562782032640043653497006702329127953937640755934751676979279228137747355445962623028582052873068167881554754462848754064778066973726455744098044222059594325492736058585228617755421351565694436176238862852368982231330636091020776717847216125233665897490670142722816339294174770878084599069380356413829288949643383803710758619655424703926946022313157625134656283033296061650424860363052854798399233059290411415405524266529261325282668251372070564420149249512343736510033942609127945533876667256163610166123534668861398702822303875539022642172047894139360893858878314686712612049019447000828967973964284414310162198321085949970406401390424313776209159656650435091830082483201159105729452179308275065828287800906608622865403946257643743588974869877481210635395769416095879607619669119436184684101500709214531765635230867244865401145813695259947728949352446545956913962792972366642373162290553809253836921544435571614208308911886650106821078579900458831837549107537013713002084902754749211088435214169651197052390620268031353542498807902719320250967864745153434428026439784772757492837037374001775311786091616826713596444303263882309242995699598542369581290701802915958318893312093729797621124395487066988018915241592061561524413120769609293079755837788301337860538199780063776797589235992870099897381037341860406287186683671765224433883720707516478843327542909322601124674091575036959934592737187734378759669831848465516716282384291336625806832252618157591707728117730985768976267543707647447921940382916950697792212889279594833391939725139477241273608720451996348765700273165982520601506219011711415153694028265490755949099680561729172609467670115535029328443636312512641594378956796408406248053617181618339479271087246490885191567354996987934884247491051984325187750977795683066024357660398078019440854676234107929267267486986469477035584954646995500778620572490999782592697567827991724186363147127063513136509636657139555443875218392620899846942442144617283566677597868546395578261764823709989178038124383825729055067585014713434940045783789035367147325849047606212745707928675407078762425257795666977684696640843169553124785556262731029245911886694102852248557147016299962915696892912680038558709889080925115660106511961554985892241241243053157683018039363196794729415059672433947874251680382046180393242996670470505436136868265043236977452241977541052835563569442839997631552017229615238714395690087867226469358342581090015369415694917673363463970246457735080139067288823291121388224001290224082138995072338775927057433783348206528202448997144177171477251172515028785984648279322810083891926390575822580570773259736804488272237767135969338171880753463213258222484708634111378600262646430178323527499536983066038250839518741024452656882791993637171462018478693883363365069691469121290923565439573420229635492771763139013840412303501046273642102160954860136681059528683812120295655437085202753640901247033951156181000753521968019346793549988182279150509598020547895544205077938402129500398888906153177372873537296250433343808048798110216810685048283094002466745116096248275776056006990832806631584370024776582587409303443875273265566465841092754101756048283248915796775035585689744514180575226823399908636285302129337524494529169779324366220201749095745426730859010609982968173614269136069349842204447171588870281697947283476346734915657596163948072516396891185486591132502491270585206463573790780317388750486548766823016902000408532195420046534933443566171604239088347774133037163777516549262470168482713707218295468022279312705351670991788899053029622100698449014167104674334032498570185265063443583926585207559215857328604380016674237994594007140037893996836276277820081734927715760549735966790166046700767449099767988175022131713468103673000360309274034039225330542004465426168826532813470953950671343621629075169065513311010731333806969891322910545837359345146378773356060056966102139094431297654815866318712456800870701560200527458973802395521908379836351092730254994548535644769393838160104500141217930849623262843378259879802730718768823297278221060519704651021676555814420173375767126204503550824705987461315771719425623111827656482693681869464645429254114053449901474522088087015871753789739915657349838830487958891475133542817971871674504043673216943888763328120462516621156043637161931091430292102143819918003355889702137978150486347350094728828220038996222182966993107423050425849067531063042069865233594356127604011592152536403970192194525691088751512433527714341659097241858105790506525015052578051510565583116790177807218255728719149111881572902335708270810483553907632052218481500523620853368255499179335036391253958851502149114784100750943583159125362814077346989022785778904664225766449810210219981511349579435798167249837557421911556662648736076102366701317125375998851841787710890142186612804987636819724677082236622502622645772895523809353732035840761065786235886414932201200783126376729794610732869298471018057487531813247774650727086815719620814427661186354693800823408335807126040830254396093487476260987754418465737756654533709681937508989017609458520261654619694296108079440734910196610344040380327455805970089184157705849716691795425716448052131044163376127943109631379000061816462793642843284773831825628091006856267325158785594359404961239372189820252976568583584945937972597282324613463457436610141748585461264919322754042727669615259239645665488775189719258726966671001045975097521618559763950608575756389256699703643152320176984485150618010549220707237282834190408259079525169966685225968255757846202168627542517541411103801816976824793796201560812649164566036438807349730726215794390569793052820609130975289829072216934149706121803010615070306865004359333066724478049127639769824887697532231886864510818392326986147596559421371280532450188637708502702296449614201870492436135867186166850042401455760530572865547109209732438211108908345217602977874570858733005449917547814299081267187498284582404522217167377031902016431230358342078058603903224502163870845043018403277110349669047104204900396707102041261526712926753123169177421445281494561961610430120919638179290194309958938279362576499457460363998520596330308618510621239253533810426349860116425365485114350092665283647074417852847308125218226154473022423843853217519136449768616813098901667703119285148212813906569895515784971891327050002174322688953123966658682480797593343590454831457980629725938144418582344006830406568516035295357718590639287749384645064610532623049812065716108707324712485203519572946725160740851596922736758348922912145541843958723471470063708513604694463118499801682129866661156716709346360491689741281391864088936401669944767715043795533094412666354458236903288687141710064744918094504131775960734812895501283731948153439688684166843217334448822487323545278715250043622714744801594387770326570939067230383760736634170549796946533495133536016486996807336189349118193292170492658745894109275360303923856386209286335928422160017667776501075598327110318633540137120619843161838736366690944288406017617725475073287762118997355555887077593611476310088997481768302410188992751010562065991508276873763657976495028548019285684861267382946023246369898493151912032568691211201352737821612783487965956090998460362489671914781350139327986655883140062848590297706653302381863437570939587902906627644412470556559758442143530142003078571263456695850371110867190256674100856009083121410127683467013426905472206618648337975641835679269860808409781259178415741920100412223924415803550437206995726138230033048236752231172831637644580193361009451598563914171933236763639070815593639501958471252822904283623552745802243336746853163581900319638997833859131849072383180422901096906110569255846841694034741986126098851240369982664681560492002421988108380953098163126805012136536769544742121377261531380751269561694850732734742971187134374138322990156486650754417961514170385254156642240568609450801508634051212284565235808495367514833414754029866448078216296887248818678114098060018513599433712536504214199266423967494105645471242521275687833985970186430021087711306623240801708891191861956686344853978343845333278931572872790651808924420359376107804021590510644844921478631769567623495597512660869666258873129668406843059054774028105735975766373783714675137854011486116523782877197845557728654544425999970912486390877578701491616141237757801034116191787065591738857956877590501761838668145323591078849847250252426185571879008986944398753238432646118814319567771799259200263364329225718119354309759657446276924397331637252089995973795637166218537068074839568238097363753246116207944430943172914530922443698441938434001742851951924703578678217088244096483328388270513685997177998076686680401304343328461949288607013486741195187796597749991763736631067098629320451231767403270888479899257117782590622955844088892983827045608331458037564628482808595124900109314919409319379033837437539162423200398128222402131950993061629506873099512232834836884480518093629702240343623515424158475772824208063290280403098248608931228222335535220300595307981773384464174851446090143336649595699163621232020581592897877222089258422008884097905740622906487138743219981797286760906756311572158115473450292761832395370237742393218556970570287060992964470584567329934289780566539063265891906030245564336552293586363000221382680632483421527384883466559912295265488682911738808391439160224399246181404479076171105327083312169243098818932906187258378811928673549378233663885040539354773887834177773240719177960097649123379997672218594876519831491526058874434865628005979002410239135456180774500484648196482918558759216726273101734839695846881926140883164551424913166920356659108647825316666699281367995898535119212009551527165022595156571102723030938283031135736506284378910694092010618119388418349762421244257496997311508282149817398025556815560099721591039961495360210467813933627137142490076429446472144698547502532539689221254044865651276831575734261655418453402644427722720151466620983943737905260524443834650197340689929617088499182620128166718650966367836108145624366098551404747683701990589031869108850508406992778288480286883796663274677960269831906502297366683056033515345561434963002874153334090793686573091567256502168536116659798722789688369069188959991420200746526004446195794611735055742181735866467331459693283371754397625720097752686627374254308916804417511397697767996831550153223619118394918865935470754275640728974763470522379837275887725439660025798626848082251541125375368327375037432179283925742059410273471065437106899843855790822894310156631794852435981113880743623613375337835200886247321340936779526215847338488870945314928829990438741065760033712178921003463002231179366981009118667672593334638151588244489700707658022433229908532037824311957823383878274966394668631831515835721988633911267042238399060947110494164443365132751460626263766517594515116641959164859560243919598168012906783706905788996808311222006416289886489113228888117147660352272038134674493599555007346790522849792261649139089522406151305014128547776493414395799139689055332706292121364646209515057536929975274405350610719382075771902310704407222596988291014143351053359914202630765835094581490208244375530285375290129863456587404308523114833256268817894953786669033185599275581648469573829549716979932508550385272879448137632632322379026758323005176628114655772348358612792204186464970716158919172819597641771092212955106255319338420159371050915035070621805936071962804423884071764730789471892227836496155661155792372530023852690857752304208780113243322189569342726618343075964247357620467886074387399034992281099950035127402910062499630906310009552048487725379416617251900302942449025066380039419575672337962437416932202775431945522436528959449353841284108083704249242125935273227129802334617327029840858306237751883271150367297818796488508104141487578447780032919120721567346160168339804217666337738922475950792814490807100797973388489968745316347677267932160014521397722697126136802883855422605101681759029724130938157791757049449851079940687870663221132578997919949695894517458760709272398097226082339152538200182692226959164391062299598457480777091864688927109924307896834005988813484239780737799442983872861635515145625841464113119999790566035989506082963041690764142490317194603840806148399188456362495691692499223966970500245330426943886913312581096507065576763369803531543498867500074998059126308845707229341682177077361377166631659529755674229998989003684219213535643605298585278803258371575552072860088174150145901135726141287360333959667215965351636981619111034735609490576298018018619160850604937187935110873399550440626516646833852477953283101498351804022856799958781948901426095797592095260809456909120102934482426633523791251968132230506555490396301510633964293194304143236136746188785082968989810237508152515233343163747820334377735256744587399656003040392910955156426729770784066487040399610654954918254999331104071812887160583511606543925924996529054389045464439394701537883953707837518026717401848996342821034922889516192916848406061331519210348519291167130582112593618055863596584734442848880376554868571546901749361824993088091970486244786219041815231072616849281502153371346896511632153603790896249594003789399521124201976654259484491734034138373152351782823198901237257835716421480514960377340155141498413251902691493883872549433190806602174956513336947345560572660445755466116096429492923299946829753893894378981288143721448783494927073396283964311523339437004984798694860907360266132038852225094011569675161959460739926564416149498422069475057825905407918340637315552394836877429454718858300203003721728504068754762722225422754991852350053176938170924967534329150473524092350282848907217627109351621238089126038752143403986393105998550254590664250816723092067975637807705595224096896175830488798473910651439265591047025132136889760324837461413059562954370888386756790394030710009593630554176936989827411301031299433380787430357926966700426022762818039311122527583849405183831641444844170483859674800903035896963922989109742262978100489084590367564779105471030328746761322162233092436523189598277274870981759703324599256655421715242776659360248644738199028006957707528841561853056357861049746986039801774716778801520548973275486922356263502324063799323370732921277761518923984507948507281843897706157365211385124543042450744504848134974632155073677299128554471640417154396682325236334891384748533194635543212973504525237721297923532428708184605734162470473382212154437297722859641858996142119354668934625987182848707948760965910439596474467278449193055696452227720802829525710658488097698069884015399634887417136642292667520730087945202857793131532521830728012326887532092612303810200109752680016263607353234950092326990894030927629820105205218319716782688460566011756615611903671225791399594984329773534791586740286980647140757433277737328199843969147375496353573081507909553633892598024001694854909212501835818014804916767693989180887117950145227548459333624385890649977589863655727246082024614825899249717908842895647378850825885272092839150228879873624607424486198410255449912375996361827513302669980054890177542130691897439318788794979608982905464463270276382080562885350495021775692366131099037164183983234811536436864189981047311190850390398053789576719246317877248162959397314858429294801882755442291089562016097837621159075026076392487213950547451493289864958302245422313100396368221447193891177968875036300446874978985693240679225416465349255560015069859045042835234870713638130178960946959194994417790392744620358790990900375645194371507065540846315372776775253917379836258597730372745636583973142599072944969696663427092612010633993220353222974588287395791314079540291487302336258689170052430112681852888502447700442307637785327618714512394479058902679139749422129389908374449318634382372276391944167229758439050349535813812859920243363553945856711158252948624970177243447135975735564944293008326057324990434126013042790460183964900698975750870581706359323132598416637739795492243540808485267646272284028347637023463507715290241317897874874053708162258576024428737151491378098938112532168427936533143540208860646672607116763396238007383592640582757629531308181247360169462838897448242045713871093725068529634010608241009552715716558416620449973493321059893209301087992983869860163519614413379946673354847373029163921556606504852507729854834839246469620034496747086373135449297228752192992021683470308243789795055442003395094927095667222946456042844643644343933829083625380075692185321181052036367025891023476405387857096297911315891654923210100388256417314350248633992854926537504735609599980088911442400756862699082720993923081767147334941386764260815930602570811375975764614182488739624312932131387197790440587939713413589881373830604147911666917420145125997532124104324948147485987993235544295422174790342800039584774258469742064237599086613689470868636652693584901361517709447450699147035709446561296298161539770080242099192703014387260761649484871580711858889186282721759119961313578474945635834741888340603569608753840312335800553919616866281257491222151082107313481954692478426950027862988970589422327564796258042139331882170307208264623727129260815064806036973102942532196512721259798874621874859521636787527319936957920585682844624332542001416696336775605584067316349730153923177567782049274528995611476100049247182486119745711149260353065117291691947844591806961798596664152468566459691263928797182291872112213494838854078045811400101451471707512785377755308215284409990724989963727320919445778921513018853447090464268243035317703725425515673010346178569293551169179766340598757296982542849463341145805567753297153361239150189771760967333380427662614460629426438701127767451629304545979995458236106815187453275934481299073721446117773669841219238201891553894762305412616740984518477441134256003615370151057125088766151462129409712558230235520692563812747051252799845081776262549317239323756259606358410615570758733559965187526136778760290204450755796784938721632873970766173044978733184934755907262397293252836358827512612881975209065540163009544175477972487770176522353483377000452785647388696874731763465160884683285998324654933759467024377717123460447166475539038970633418413517685538885659932298819362796381589425628887806959723090907308381592415293873513455888288080745827491502352743734670042759248470398081080724607265607348670888471728716730739577692325766535592451763518889852190826724747002688146586064607233836439774529153190988925618322375810462949128840001368485195728804874796701981705028884378148419153594430341544473385700217053444731168305989969744081973721176722676432960915642911540336173054202515269854970759496303240960536520665887887972835925334943957375417639614195218481492339788755731494830892284618638572299167042330185706592577798421529481763724616760594524012042834201722678743864250874499679007568056105857800452663743996023561608095871653267886441662544605277806496769386292237502799921607799347266095800324051924303402831467551841555450025004172273675346317476139701478112783044673742274335668052516132167475925596141444053296814853782200256348522983592298532794919780018518060701347104221302184409058477822363295415694595454835590997601065633305032610102910660951303576154458703997103749978534790562000706817304798200749760735610882404051063518453633816741804046739713547131124329703515941811405953639563325014456840471717215833461808347338470469735035441093879880412940627852845844723690282154831001724950284527788440520601328840359142522929099346836916988995801383926012278763661895816853263410836366821207203024757017993314499419842059976535537543291806481204426027253652025436223409414468571905716828438548234832650272544011075999500922082271346304699680889618203218832676119745762642205385414160802625544105964896515880562843002001648376363642936679974253875915891780508718495481980577761199211843877662326014096797854284342585318152196191669664882936756372201003772913779643211460590993920985799820030788303618541576802926054376860590880569094183022593096861788808223478798479988743006496096615830500562299178579296269255857835989289379158290720093971553119249852444914308610974688086348407289587169434455696241448061459138511030083028630033752362167733561180688918910013614979643291483228451744985155431990932017447705782438797212268667659757035900207089623619639368980100894424314442047854466768478384655357784525918636531227933458722386291712296478614954426524972574610706295675962140781143551641201236911978656203388402975514636301661050608287598197605303085733411000284064665391449232660065785353307989590328181993727062262060395140712169418215862516785603501842600319038661371135892144392077316935293158073825677840439603559195638059666335029177960036059935072410549942064569379874082597736412417724617450340562396370746433782366934728409894741865091755118188885219806134956905153123088292138139277173155715631623165904957969061864187690108341547682969882462960533155543317597663931191229471555974775471147804480895226620672717469187608268484355634957922579766181427508483895949388774908990515829691670822248063708146234191063879093593956676174309688048463262790741717907808921758691675049093270741421943241896721892676824445362293447114526506686289016946048227088106800360994437379451331581951239187100886951494595658388709952447123199919724417109204962246421854608080445676639627865914449864786526607840021910950549251195916133505338113349804468190232233052131005157739326883860472108237894428368625264130485686502039090313702326052329616294881351114458774322437456058747165012992654220982016662693267998246243072539777531564872223661377548406083929660718436189535403476248178414793287363107761814747087817371578172416762149818354150443733067053322113069717805799026507125351106389209428290168855541214555322493648662092071042279025343979947258890661328739805726336026017907252626855329221103759511173380082261745950905748229274431556715743738173851084100219235410433346156624658907260230367898105109856851222834057766747776670469509873494476950706288016223165633678712676540742187198870987460422288324057597611103889076626143881523559569517860079996908571256426703460847763518388333584644419365034401182114565788842623489076106082856592287515472168026193868221282244795323458811276266699230448809481473364961601767844983481336101217642793602953338141860469338480444980032734238293604312610067653239335246245614120996883819606054231543267914379960135466294234580596037182227365421798372176077932687956409187063196754331496186664628093286363721975036945224036818819584056032037837737387666238929913236513146626664352246488988585693418805954897991473115510672436702477169779729204277797467555934521964535659513334261041212011185348508929094242122355968321258304557281308955630416899569092631197968281074813119345547883049691535416245313005400973657751259098718180387867710353183383379076975998563609082223076371761660156214650832391971611723589059857902772264930960968091551074686492851325060784392437762093049149206537865536953353334463913549011809736884200504431390495016040956176941864029665883419708018158926755623280585372286495405471977197351143145953653966056963112895933020290303655060121149481714315355081954524027525624574312765955454498868976705718466374413344400765183908934752796275371618246010608867802794242083497114461851765798650697146423773544173081683076302954399334382848911188887926423836177379769337392283659075094732828478769669287537909673513237669735659117000301914415599378307537215964699800742538911664021720915129611472118166315089278283739525641075833273719913853403921891790687378022744960982721613084873951376506746683936973164093699813492342089657829821379967938522083718994083498563170208218252598049376506243000500313916326205705584710903897431914129868098866843097052961469700450342302648841280450655465762616192569545178379266711907619204628131932879174057628379034413391034470956329350494584730250559787138072776549660550113916254880800535028100941415423189133792681156146815957182767310377417213705944432664598599123341321543717799798978807457589788809356913437542819166785307366773117602420287464287908096872115768185975878554221139212330862981315726767488055557483885452634808482919200702555266557371661235644089821373409448489939886745192963665803953773651325342054656509932687395735947783815349569997138513223676604544667236480922700893781345785415831642562689986827330161742890029702503962198777946054171214509681007881928094687066348891015689767410633725261939748390631832317325522654356125438079610771198917719805503837077392786977019419019215877659304527029594063889584914443179962222672363050287207107720497889262124520426179440748296513648507946771332239132418416269278028348721209979183464036394906093221181736281608434051191943294891706485117334328847490607473512353333094065187433936689829525282267302646074137538736805158588489776796585741070095782832573072628647026839698260890527685095600809920911451419569333194112594172159835145988150277736543944934484363647780805218871970084272358272887497168580564331585279457206858045710949922290185304522506547632709046018167252952855303827998551132333063597977160082574547667951850546875219927480768262698592511735369065174540565074265703823384207698758475756232418953499430070399472395053120870850833215439830472744232717780688275836957884729318881865390608863465463378404378380059341719104820173177871913672939711812732328219231358740685972496439025501888624862738508460619546135367993161329439816219476723921070374543342800117908118936905115310704959881863431198305463279837309435602496195021209255377869229136978788433259542995224713331270091127049201470084904413073532031445503976783042717832115215907380950966117037309409381368233539108501706043166055378919632385913452923852685121146035453732946449261135926220817794816160655823789480831970031129851160897255027280679424095129620727287245845393050845840128006551481548867397766739223597020150392414561390127148105911443995310109846824268083540076903361237912441581207344195940336217355082912074818423253301909789246946847373006587637180694923784901562493892353942299664975286481180568141559729472727022285935450875503220478218827906416086268305961836820714576269776018804492189726325592574235970590587553669310771845070724127308449921301679618461828244139979666935439643828254182259819960123025429851702919390359288914951880148942248011644280966612736162367447034302394650622626244601074334555837103165231177856646330692001209149261807603896928347603182409619652944380783038592351712558324690813277393250240891555238684852659167264741501053277690251512850678242389440154096880937107271089924349974136724542210484344749069405170468318012539430225919999993499593866101533196466265884550837711871919718929858136077680203503781604922027390363394402692636061685061231289913802844455273078685161929533420144223806569730853334837306346835517362572271903516813989832793862517998087961537979094557635676202381004800384973882198351568951796646310859888790210142204626094405253462347726592930069601803024203714944509150788390884246589335631987976196760871266126163673222669107897621701324664145500289164438552983983163906618639033024086513650443011161339186244705844329581891280126944644394031266565181508742517245544708790866878242052994287310218552527177274329781174527547480514987848906645429899455518620190672486275258221608378116859717540463773431138076231263616902774237687013899036706464462405813913210921971857696223085934814221664669766120195622920156503895443557680133552720762047419155548273093723255309042912401748815556984046886899943334461410074768554079564269913608679610398521826112614457562964011658480578648841907667836738576796923647840638393454722689086350429627728504903198395808561391435470604043180822528839663522251102423606269802751141091278566634696515397367272216446667903412258979359804357166241110391732469679830778940030999549909644094633810758109333963566482018766657343152325781701797080569628608903146949300871855550262025833319857863663177953804248791946458263164509973798605482420994904326427630057161595224668567247076128834892497054431327148361886401433275259134966798962751647149658502582223607905499082010841178660569438852052178915547276238134276701523159140061901776360724885902130914019811722647217116764058970862218036372460910797532455977703884275474571186852164387597447421217028098493798522506911444643926840360856621413808757208867750304914590313841053337179975621599791042136882293678648838129855770637102024216112636150828874809343993104301367869229071245876184126449439913968528248450380210002125311775005218711661210333146678394877524672459131387712402268741304380695969644642728632191710760259171724970241326711237872694836535221611604439658543044725765673052567786047901756801895394687825834692188370201719401015901562325174381050302523954447105855828385768443904706716211461554724375164249507418864396651224249681312245327349853577405650056299500233067916559225469316264668692574882595079288378251733672195418835890452005445873243502286835237602415854321778241713605440921880537516188760081568121813616593343398226975618198414990718005317325663310737137343753637815274596741315011233019536976383327906425257578864540108321148284690226296999323742062803691051276032339206544432391373655378804483934135086574793445869134964582103859941227700050991927772725772617975569538488621235014416992581546612165937838949316147771160316935146679394631815322198610354498077713320120601875740409013265749392001225445589109799003770747284070728153325814267767287757421025936199986533583208977114751270381595203742438387804061236890006689679153868037546693654830075502096765987837251147853701017929761164379813726909499096775086983526209907190215665377663767865187523326407563941473344330095384655461511986334584239556097788501976645006421128297258435099335743015108973921203973628745234607433680347610903983516304393074006580200215913253463992114295670177290496651352809491597341201696337497541147434911471743259030050105871440825348391350775613368267516469489830820682445711524534493716293476281274692119175503833699174207033571535922223599301121099900434581631121617143618416456963906427321631355216214566776588765273077155768595466077315232902239896963565825404293646877865737719181553671019294088272708331721887273789368947104110111790013447668850895601912902446897295113187714610143943561584772743346152755425356858010619373535779682929138683367360065642541992418032363778255596359714690367995017089236950841569878061477414513020305724124597672545752033219249224485085891518528407523661899475505052721388845212198820872960494566205585557316359227271716850181888479418663344721558693928467239026161083521564147723010376232733924799305324829199743964173997904619877934298220839305349383714201798223845173939352259515945702834587005666272545363116273951754893823413554105420051008698172070738112458680826918174897915406130375911388996881130865226975504776468106596356331200489103587886118166841626791421862003447029981055695343515635625757291373500623919144819474408274699410373073377542611768878501835121874049588878717022691189156698904740633243681688527970224985208791080682026653478256710820691179078248116480488331661475777504916933709802201717524747314622948698124061868079922113348208696826173691797094664585947094830366483138753208590014823198741167468401904438194376640212022698586868913948129114735799206966124653114718755609590139490928867121483980696265459268305184610849942991330853689925089692904579509693349799405909642247133963746341624874065656647324208746131448318189166335578798699449092779349247164650552532969168941408811038786835548691895045846902169266305131833208646476059620851919805083887044217583408888097161837055146702497919548216571797667193640627245361685670121297880338355040422639915069771312809827343279728456984470993755162705545925042794567758878672653664229776502544571962060022493374631900233298238628695377755108490239929675586417988726140883499522306275689129287353006592294955055647784767255261879357815315432851167338959266070429691816714066633567342902034708186035919519303776237226447482441724033742494629901386090040430873285998816380598674751524716589908992769290598149986198163555385770491958340535736574673497524796846170272325918306037579121779829546810214991089464762706441418623457384955024842991094407973277369671691583810275308196459912971971360105640813781735629496523921851215310743903818697986775864939100273269216657753191892106782005772791636520190704569448394350936172428985543332688658168873664023112547587546178661784725413892275030445488149433912027848703207176748639397320669174388389474551794114316606600267712195826999226303449928654090556072569056293076322819956706490997854883801871455330040146884632962464631525625847949843303420239587008539989878146200809663533084052474902997181010876175727323890091400352839620272089010070482739642450009370972189314850818561151763557032787511247944309108229537276037663349379006803480301969709221735375635310599565099002297851355388768514311523906299962331659727000767116026369230604241670514959299913208337856218835523890994116870483021952811807387784905018468376923260499086162398423677708979753586309745401349497739446097943357313737596473076941257402556595994052403871456631029577728726420943540709302802592937327106581485083887447595725864464060327062812599219967424792516186619481254476209059686282308287200930240219182364588975128957317218146736189130092856788059490782285934390598767320803296366524907211900647826307315384373180897346686944402031708191362109714929092570090351179143605807474907411926552235156772507950071588448637371906649269153648768249077497557415814899698400999931350969512376662065449457375446484615008611837917972677043795408888965511709822196671103880969967123106771192280337973183742667985115405028608950909230412737383741134676445683030209743345882060082062770452479875440517806693689456784675549105645207381455781920230154837037140078153717505116472154774033365490792515426435212662396424595316345586287065278987285933295610594390255157910925537965014412503882553370539147307011877743353698478679129474628301117260457311981803963303429033322628979867284127436730825293386411359493738025244475909948874015019325074549567186725281798852077441390091544511959511145508447755137361454836109023671922485829129460718595757135484179333360739356402827422313658510840844788493695401556596748871897070583306804865366706017353062053386436995090650246194669694911912067294373468408150159469576019801635761117725744343956722363931043193430189793521102249350385715327485798559958271792891718732752815502366935815021244841913122264959719587705176371657252912662637568157626871469749085877514644316698799129475038375612903652431871096556417190899286674409216994380788024200878646321611816676388142452255042280624510893300975873766207879625675592143534285318953335545083459702904438995595986785162741552813024438992160787968254267460945023614486837499882656292976780473040728593331375364359709275851601733954917090261223965719868772198880854480752974791183518842328995364556274603581120680118894415593205099015482059109372334406008934601339610639959597165942760816697942716002879464040888306322599241182956879229298474181863599767873986661987393655404415414047365150423699337069925522486353800661410942642709472634770554174129765868409640137566021961085897731684819343555031820483821980238843797599101690826661133705315610934101386763856497452723996111381170869963899914611742670176947117815357797377433900376154372466614745771767573358676754181135265762436394567860817511237455197214171732420949179483604871989334160440173935726250483376630677070209968764589605313166482052853423853493185256360097804124933591544430927137920847850383860188547093649748881245594046985890909194095430347631184868475415174216720721107778704574279324156713065872126067859389788938291886045058822577954007953055683743914903932643219990671830018662937115184629445760429070732533848127313887602127261670535851167414301888702941951964494585964465017867222025509449450713242417458938573960145879648234895831127965386050373598867799276557693497750287692175972215865573056143517880093833766452324921216492802939710354951628364566520792554244725233857264277274853692669421766803560546872497857135218961291221399921123837420141326171027606081430427463313845876854443088854296069009334373886896642797333394622958761770507271185300359312524816893173727271812637328188601762386644069621400696390517605687339146106461084422515583025596129555544053940380649532356468340021987790178271436482496513250148364866669109313939940270429790014934648160963611291937753530386690430873415824228583920085711952941565984806340210552703199473652353071395462203937796848678655834841589777327134221136915584209981628409008082079675149186005363392114278421019963024207600383780328933149212784818674285849168533401899023270531103577255609953169389433061076821483487466061917649763835792868623912621536059522631858140454944633091394309854989902088604660750054969420558998268282149141548861142679052841401104564845045885111812107202763214597583048882155608785829739690464699169588037724077683453185651264180214652053013399465832810783494063343252355663998456855636516845611021529544112087563982112749445209839090091142774997464158008270177610320604844863579857849957171436140278879976327059779879876250141829949934488025539656585756947580291674939660706686755095560916294741518819508429162507325371328558110394259550771871409120632537020368808492289750854976871153895564283922044650073870833694296807156147589063732717823665959946321976856033726062748793790692086309041950225940170981326567046776655075058771897639642595025101435131274404792143570052779030186513449762896522522047201095408339494527040861164334489418194387899360107978568708034812468882625877155661104479267345645515100004582041853676098303204048931672102889072507380247299930078413965108497147412101001916072154166590088355503085064421098009015808171530553193871238818227804718079464869706830517348374940903478171471851712325548721547752142280210622820574007090416349470638880901715387597628089618518083164721877034966941265922219771316700897411189050335535218831655627715207743350185002927292593013717244365857278746802305019868013296085525134940904637651740085368175225046158018406594714046015412429252463395968565098391436987845456385363100346715280527256632857156238956365660006958083748696919367706703872368536187292540005917146277148892008347629558816147343362124333919641505749397093899761051644802037074640693666763459469561359919393501688438841785789517773617295107433810150134240212035689093481288084951309011068109630776987563128681561448404796813753558610455498950870824364895876783920955357987002662540530891617385741437475097023754822541851055373829175862502354040850977801067054551401028567401954394715312938511741483718548038549906360591194706971492795304671961422227922667065808529637357647918819102533735718821800327915644587997452399726622953015204206562355558085716327982721783772450590493758363610367398634760507625648184540548384499206018284244845908466766902854348855625282016717637745153647789459131544470192126054791684849787632003011049493394047515696774646688030234005477544991337770707994919957465956369961788477948973610289268610080569176683853812397282720347623632987608117721649170792432207195544982159590531529716584493874540977453688215759518658817856593320661839779592568200888156736121326311079990687330377535449575413336987616306551166461953021954271389116193131007271131034733759396538056963421774451433713645840611681574387442456558534590329185531306675960354747391597906989964378673120673502503082051923780312768627252157011981367722597294691683365578729038593458563594950599327209423664732347419055819408908557174608976447820353329139148833725937795876758053126872280167069425559959145062553002110435306670173219478148587262626810501462688553927510674378977330490095970598341888105298500332040170012931192856213916085610147757559646815010367429028078775736358317427155025770805842137145704588689450377284507417362656179569585357805707694055991945895707261607472045284450136668363022297502196720934323712673651154367850335389435595949557204847585717644727467062088041152981322162605958149812629993173203217483930352410421421083422441310746218706340362075463343616156631230083741095729913565684140272292598886129132341648263886460368797362072525143785390855589573906315570000946298240804618331099495442776075020076562275779500822902875299050293984573133549499876276455767693621115291302618543029402658118393014486832824034927374357100390485346446171596332532040546190638970647450809511110611606429347312612074380970157569094129297798520984576368424575945962671062967965879681120607992279650567245617544371298367201978194330408469106508194811472967471409009999354703134333554183939261056875526658285118152554996213029416731890434151108251913325723661904396613861696557297990843728037019235114498060505088859627070651034603877503207454602851981427854984214288470699463603807219973009337885906982282521742430012868078322447120239478430231594729912420402043226301283190643406031173736498328352758435552161806398626734988910751173547720683448702096850139853147158993868364912791815213379406738843893551155786576686970835136512973143708363346841236635252380924811884592845406915445658159711656861531528869809894313362768540545718002498018204662134875801077149391565146960665472299897323944968914301235377105391549124119552672009811734463708051367230271114974484468956957888046389331452030084817085625095259306400356722626161053231826761433164501155460464258755423930743092629670168833408001507193462324672146500198240800986717784322843598329087167326070831676905295655064712413429210688928514900846284395912322425812740806092370408784583098704623564128381011638705653243135542170568707628898759378007267134557806329631713084685654250684133048137086085183520677994615805774700406244253611110262154134465212119214680826075346295184112641845044243134504438461730816466930958655221644029477478012479003327390235774120967146704757024010595777125030018637886867717072009304793676343754489830737185886361905709701837773108594220300361321277331463232518597031620136652017464472293138765837026781566843708319665984029700018672721522194364769070204458254398463401822744292759710951276453167715006387973548924782266553769013105518677512609404362975504358756143005269266466246727072154861301044956334620409059496556774167209943106923591549525156579241710574782538718105849592823657240774703997450842228202491926811536128161756755696244810413242592186602260876495472545089962552701308002572843848016229572884843491876964997949570883825081120432640072496262796207363312730847047462233144816555719402612508918475405922460263702142649733583916376769706300969120867290564188613004157729398978726039032933587741650643380082607505585568529927966689878022022113255516947895423049164981281518546314568825578260749681475501405766276612385588748552643217215637790509444631201587635092930348874477865431952662479652102796574835162299138957177738744355691639331751097484417357362962705140209960425751560203520674292955958339432060475371191774997176094218584619967059519923957123008732821955035511458419430395938503089168893055134063342954303931378757860540368374711965765045272389679864849088762212929447973961452771622186062350663964718000998048277561890583893344284688516252573623595613239669900605405588507696679715174970572128791270839783482859933889177001472595588472015994155944935414031839137811687452309659702460598301409120961204341818388603025171453840287117824383637297574274532503574698587628836450143575025587247952463322831007067208716967116824876339766081455562828899852339776035450529722566895931224031091057645820763305173717541659409291706089786864354423161936983050699915017763062928558286828385395258230705588133109126418766242345197768928389152161593862618255699300673338726547583029426864901126707361807436588948160621383392404826382902888177279450258648108342794608708763182227139176654132586208463116315408179984578271017528472058030358630441696454417401453243534418882057282965782054500695410646035973117200189528891989666811237398334753410536403506649122407788398689981314404275874923444357467469938501036669964133220520261569161213798461690326430779611825405771755641078854222294820287373752756819678595877614990346599690607545712739405933995342641394940916807817019750117379847053307147094413195587789971351576963721066410432927372835307509987321374910812674346474833044639192960131422316528569756790381397439148502958216556210966605171147334582131622788735941055932623416205033058911059619274164626133967207231690163545709880360494482841697589072352217323349294544272506082259575797348767306742828063691178684998459047570301142183586415470753353016277204114341782974279400060531713942145615176419752019171074890271511935598085986550209151366637570107028914424254452201463766375672481364347814133963027902804180474589909607834672377392281080214729501369092069771431287429707572623655865363048953356763467739332759910372177873984375770542688876328645516212736134205212859663606921478522068099525568036966945974009237876119807366030232146820745111052921416993438679497117668263179098206459279348766180077510220930656748015044069051497628290113115634100393142369445852753777341486206417278096207204735631434311175566368238912068248661832370038651619121564771848277496736456366090482281341014812473937475669806073956899929335308833165824059985217591925811953806835565352503854100117782488782170160894118270663322950604782905626832489465670290903022965684155608338243103358291573841307914953676026185220268181315681150775328891795717749246211804650774993687150095123716986336315590230539317961966325739004598366035867048006089137200498016160011230889908536470103059618082703234910796833337022269832735262849976544670036481292757792217791425093256224404151495967799554697343032504281383136871218333602994791186104216289980081495570581152249105534734880566952735363772585622651404373712933111101311966989373610987645233008858236865146619833602078860137114364090233385494412701580139508017004535992565789841928202816921266163316572587397009202993134723145036305751211089301224911883930359972418820942577078292772511291564565970211117859367308760706612161255336383651519580027892869960349440973436411279404840722467093423825199598714493869544452136855686001454842284841256240625604351949556314879430847542932058973370818701961824096182539117566790097811679661108855880718787250371980406026368024850509071538675847137282580078290848953807748245644731983238068566095565985417669405918108276233459241098296919930972421801028048934142165058619934626560928801864949163609863217247789234231504925175172579786225241966851331929747699745606716525127222836711126756496323265164768175439731325250000329916714827917245734727953437788500760009237469140537585157739535290771512920163878480473063816341571553431139937604925128328377044389018066070558745531668149057515601452777373813365275387698560418487674962639480857907930427107193741350240681846158741342636114120642608434091692453506912204126567529548086844101541247497223857466427084101791583276082032520158263617946541078483221570821028692622903239759021963066659628529190204561900338807554914732070819939439443923275233067139866691630739750838248548663679758279768185838185996792108957125046242450096405395384723969784699061751390387386656679814936887057442638860797569956228825414272417307500406529951498397233924403121460095562741684636339423063830297724253391349567093478933703904105081291851972679410788127526315312274204033745653164763705833283596711772837713219138638820649003939487285185472101133279806083329752114403547006272590087984594556303672185593394856957507739523883279860270770729392456336594695076128508560947094285716549847233209958694413133528225386478853566623157148084112552038598120392035574897541020408626719511630429997203699168044531840133076885945804466434134765822061223809661792287793349106372528847273792334014522157181218333155163163424783513491737209769571299488919904172887927639160626641616973801565306771577625917686574677165962144294635520449829723158393015562059802775552433344440744975498377048278472269234060920544091672520088207290539594145511618697393057770276439618543776485755051066675260790751652238726700340696227527974638746831297551156446167922507616798226763662240027820328136410535501889833405687660281064615285906553891249577749391452112294053922175179262021850041376142344002279009575272772022789420634246596692082386619319772908941293083440624757706897567053911119392190079287316670010634887026398939440006645958390653600596083517667293650684552734448300571520546927441334159547743757283314434589230426026036414324336985923942107189008019153797176517093980248800866686343131539059715179020533139761749767080563878858868327262847697020358261669275450586142625141236925012299325274953738792300101218359702250732247426934031829689726503198057105588908123304085111548532814672763601974976664100690044049940997449260829155484403867314186097475773728330651737703391057377227262734956146521497516411759930946436436058421319948670337494307081583623123071758852216761710534216891541524535830015414747928540732288127044513844353031850374024695749176779263000221792356498324576436854539667935734690546930090241749651486315511210359085099685371995588072253108085427325754712313750474197930331644006253457354292478707066714988823152902496526667646696808792770434582785611313527694111132297679015077295869854322039221828060249559191180151278474735603360044991148163842316361707473207101587670917058174217647035504696110212321454447021861809268865714525383937257365298645114539942457991308122621556211337290098943271701140725378530936505131780922838550805309371427865840366234185298791305564207951829201657256376221154838245801810110182736319587149743616054874070359971900857091838372558993496965270455403396166212993645757911441587068984917766224773238308589571734409872873721185091826215701311565666880375542800425515758758144601370245868937942134812150463618876264240091262846254681261980879663233718659653310057109974027454544254849799249477278211527201460821463743169343345153602142959071824612021441585509005544494875084555887696438956190420967442379141274094281076920838843664468491764657588139469323362221584926678143724751873079549678590114601246493562803601108185728940341390990949783830463021496416702756607535526095811226696927447703416926950647791230783011224922144778320767709236210196347725457306534497262548061462715491202209466590226638747963472645676127039258831676831871261492324739211744425942030671902103948761866336827975369763948605811776303909196676788295507406799312736173928399745441396155079083745800002850880246792242988534771582721339291853277187488734672842879836610796030874432364928733711662995842188671376683684286887003496608933671361754399067056628775971596464104217453677918821974598531205477239323444153423863494428619058502678267637520700383943007586804326372735945700211464471393636164933957486108996582067500887328578361699867260479408424866013874648452534659224099206250538615187561489153069041714687384570184146345842691095587689155494970306682910975757113522632722466076743034420186273554906840415280548414175726698762581342276765727380289758842474397610708912229492606773443370347045954476967898679289521345482849869310073560026502113822471704233231701181762737480761608734095470518602838426776666934713247933138698720959670978345024130671043364632454054944255895561595815362201787658933147121702095150016746800460103078008448201733643496203401630790961476286228429955451125336461568189199520139219218148477099585653548728898392745690681601253481106933265171269315557142962535003029263758232637866729881485001349508743736449082933618669957596427219090921057714033403128687314220211068634509912956596948993900562313191286159281787520208831349639858057494178833429556357754575554599933748821126016057844355717525892269954582469376091801130933617108950549756488936016623880466912145577135767527026477555873248974290317894016138206795806655290284475422991632580582323209482511651953205395641318979972734551565665829467803765502760232705597379346607732547441184623568668654571353795898907311438640924997617947062519312554544785733078847792666021444341000061157269919392741041584611997178220821697901657292066270148002425079853985491295663953603337476244008355724697838858930476664740244476942269124411157060513187725024537951361491977535236420335616388975416750621288531056954432113840723410384564258196234996641122160475296679392906295594297543968877791054403428757706096558102180388185192853979366525059934540073546870900082333846283039129254045677146584278859646923107809148434549855013885677714551128476102307343929194872514754424176701533096143396072463218756468779721143128205393943743666649293515241876870814552642072776266959544259979549572339599239162565316137069703623609254058716187328152285131588895024460068062282873200667439748074418693590642554373966147870952373371702562883345337588111352916989694801325464932484118113592621582067489419813800668878304194144164296164339514584062967320994103156619209484401816382050860151010660037214643507221238912400742190709468879627473321126332691811181945564526238923844047158250507737856672562787223654268689706039887393206450074009311034717895754808526494800760031869874104632690379192248539309415420118027389988538172931810646385853735038360562906309001777858011080135006230116672582125807791456478588951219300200514599544124672044911989718915804129557916681411898141004873630595479456263207995934476834978386064200002584099088104834430077102242557128187356670535818036963977374975151222651038257161328147996513791127488224005335811822424969681053994623028205196993433355228420403311196816849311504828545799705439707333348119692225496640845980456684888754784886921793188966134550417416002332933973775769776802196760847948892174544965488720293652886317473626983989476992244553956941233955460777310979912551582282878733560632184242662753987195646915455263913407056477079801512033844717555946210042893652574909309181314366258820856303123075691513496541601005561794073910746449636853404801325172211637383403048536071678225040528694085419334108866781925419782751646230620099895294231897406607375522404382549799907835746380164119785676220151362398035843105272711502013442981271087256288633636136582801635363899602353520089074494925348151797540469480101404628590337894655290445620458574032226916978507011455876221889824820182661149269877795865338583802449915671285197292759200082387038499821425258650598826340411037676574093306482788880686012671856111197795535889385832130965698733364401847543414917984388953788229395964140655390976283226103028996883611543897518870335677470024628390248654067813297785658507081453753386459204642332873083307258382358419519863193375460682108814733852110293491215935155086433304168243900429269694636219492633918462493695533926445357813063585815493750794749707125590864460552546161207393710506574834737841417765995034183898909514065236772185191630174650228524933155694867243543413088006538426165371807716188863716305104340932424558594961805338551224459292908279791658973795048144690807597492989970068970710107681721166642719695451666377454270318277785950914739706012939867164231368242588145510118232667713026261182857661259938487844235087177817951933654368703246775815048429803730953605871534761700995181525496107472584762713396471885738053785218042316370880793872161995299620669500200351422165381161252119582257191232573438992331998785547288041024581071053681341376320754386203958975522842507550500996085387242804270214553114146939735622104603324136736562021617185913302620544671797833787471421610143841166213095460211080871330773807072915224380733756838102666041497103614092307867205603761697077216620805607332659077166483430492819996954726339358873808900299247845128346938685864741445844521660718965481998930500398065792870196804152814495860117529468850188685377446580618261465666265215093374541109708968761046238156682495012853374089917564559535680966918689486615900623758140595914242170407034341548315287481337920360588303836651707697690730794102157576815409324694228409515117560521500202442809994396118180275055242691467281813526739794676588416959297011080518502507998933232697369231112202057064416046641747083077434034145645006070953132898331808749479376557865090255740888323329261444964850945682188085464188482027500529243765733270211595509411581625071459441036270020351085364885046906677324523652428395883592866507278859594919473054254070818944253046015603365494100845409532771303318858284420146587477844938496734904385340076350462651390507832803707115575749551878327591535171121381395772536426425100895387456367573054314428906561760547097349420361100971248566303751754969829197346240729073472487672782987303231200352681534382932003308671002329760014779181158892417354898173194126350145727697420773782031956438055417699645458426959017170793428027233982839240921931243798801225399403546397393411482420752072195140143525057376350394037115594715305280512424689474984557847730315364842957213344209761847580210329137700041078693346894234524537242007972819996495088520418399343885989158226250122011036594615717579676377588748445030692419145664058993810032983761815124950519319526513696243837856157626457494161727144075185863536122166737516705967294928201604904755679993803821227963132394626909264851601336819157051515058007826373369925323794599071918892564408089314315643978323715456091927240014605959650443404809038494497665477939759209394081627725226102636432613264551916013525147468133666173045937462639674394654469858777194503025557805524739469602774078750605144240908329093829307855465581432775654799748719020212603908546208742461779278916281976964221776893290190401797586087359634977400327569762704657911560864607742304243850305783579956356942659196503496375333937109054803803757646927189105326859910632058671882031003551493740525500616907810277610741892133937761344215840532624701539571710394875011409329111115333396768912768363731101238600975234447951687318672558628495208301365519136962880602741808257418587850756496828820849035427907868539101668856328457765892267007333359397998199494422624224276669038208960320782895226124008956039882614042606084518644850877906973685169942798915824083753326995741547871580174451375362887029911259436544186455664663474072796413622385038995455023670426977275682010072789493774388972359948799085359512774741267470562979800473214019170640204466216228169204900740701104561232990070459657866463072051166886535066894983076839537366262017138014990151343217971136800895875790012645098698427025071652797445446307708138020241460350248330046381369993367168254415764122528603913445735775920976200962232822314782790119145350214543935946340160470696868709907485169648431616755362683498269004028291736887320664445005675694842733507493268771231102810511747874961030497941574941658028236190930356061827418306480509713939897907232954275205761591908643090829535539374967882775448365386410128832933799275894406853312079718217456130707213171900440982227821631278503159070175085390307082631291804277773987043089865008949770028513090824632171581277382698021015268426837146461937958466990133747163065334301226048865323219180720425386698498920960632737730586343629765300199668122132657867616352416959441576679256089580057121297579543362782974443140212294896131130982418339589417836521272708472920379043223465246046130869660237214180620856352821015737076733669698002567009498004548568209862584789279997140607014809769419910393469135955593574476495790391344221060324108858642861368152680423669094478955518214206292691423532084440471687149979018498207069595666523633835471926923845682169311186010062544485094066958433493330462446403602602245403643357911992365366928584192463803697532295890157966556768929446946128575170700235348817247850631624368996573367115279251586398553520606009143762883767034433159529497172843892954102900702425820407218774287485646922366477889407093607047211197040682327423027036411173031885883854305162934874922456061917678963528461497743950478803043184454117492291813898002702779255787297958324634080643568263016247313805293789229323419649914715657732008926387183434884031557356075060736569985296687933889044158167664094558793516761781993391321331618985411820335292507440974800187314650589075206938209457019556009887902483986072016215017690905956828994416646306753898372217359055262055939918999221290922816569990638073600127371527902088179714751575281028114097406432501495880431764325411168845999078179398380689193614872863175287777953591292598255091730155114702644109411160359346275243832794517924863562288523761744867669858564057276027181473724532015211217257824388170019834702639097855106552826610871541509027521404805578925236864886939745440301203422045273313923368508672855231881198540043931672521494949692844972598600545003321329394303221627963064573843891370467900562383537962788801471797248633472162777724658731433511917946724539300805057706954987397402756170077696957922925310993880890364417755057884107161541825837199874719359841194543776567918461215981205667430649439177521866220269584931749304487774352672089844010933058210152675670879726250239517098661773693107043104906775432086898099537873250433093003433057430447033693853960843006671780883341969658686561150436905881771782127340531097042349300110648139806268456220105498768901127483768716895910338899602649315510140692307818601392936341864274962495298197020121370834904610973674647886266307272803928954571642138179456040472723743426968514602301524136058336081644885439027433761334846613933264305920994887948378053456336813262589383370142021501618844920562112627226079765832873170827633374436003031448899022573517536422425805340939373284696619403920124055823924931091774680649407560832050960887418403942766106603346361627517133159332559472500208392597974429223636383181307089131637875049513367276866199165445509371821949252618042406325242605658367965177986643446996302310866879870604270068937319411501558577376016106746431171511656288400675214086500509463084489532252893202812806492641878149559837124941581495919395048238948527791013558571302806297299471185474160301679155373006853839075756307121339386590047656788100278337190122357864378928787644695803139184090419228822993213132052581707392070337059278576305644619981871525989973506843196142535620206109774751749215010659821931260557184745576040722494022725201260855719309397880226480950881911539167696688392981907461327442861225609410671952594907962262006621131386524353783925861618420663427290187838570572608265430961956803156171342724818952028345797370653814128136849690226749932513972765034389662027222933832160144415562687718787490627646641751262628416011749520344750142212351640437336303121689063121239009179351905466979467654446440177020202597707605819854982990981461429013334211051930378014261177048366964826014038183047558380947705129621439673432371274600412010893154350165526846150742378300261178139666422668879482394640065079701376554116089158778488098725768694618455414411873531766480958133283716622003849314479079128680093207182573967366653420514123030587221212811513908440137944867156068700886777100738368564053040235214602510432099787218802772341267623694321060153727411892462551217699684991516425825019224360080176937395740073283666031486298525212530273962937688709723511832654273132913662391051503688343751431640224064740093820405546566898523866113711138163369253966744294919650925183465249341298274657683998501428794989098778560951346585945206364298431504468846424325753092449608048146262549477766750213832756616498971930241384565687425197925924878631298176894077876976971261254487552602558374271706607841027393173637643483615646043984582483253273022808268309047925474070936448307189331634843830229316915666475435935112215731714408678731266589329442409167445400816894677627323086184464776545453855260852065871543915913836331758385453884521291842423694649071731682377533120169255213396901319831096015409650008278438988715392915841625412131403606205701546838873599370215568937064573936417207742373183569379157958242318658011097723843925736384934403173291503690052539963252669077712484450528042526676636987473020941838821504752599006609393886199743778811015109452052776851911914273855576250761542996653014019860104119146300873927406912071395772561082489845222619858206285969587052579510717913514940314245455562253503457320618154825657697681186374792453810868160550452556148544400241054786729772733915439896077069104533825856622217659736602124487059464978720734954599063770494054155586204502271175424404547643797820141850375066189903043618617212914517254272653981180902762720313733927218546405135055103896556845728155892342496433926848630132700316999530938673289024525636579858756084204235891171925409143100625960309101607497895182628321138525878605116878331760639691636971297844233937367809609879644686875052794570063940645099223695768119745875460828624067315596744532073859523564928131176806663439264545140588544553904698555053704791640500521763475001510552816442419369098033420868634599961077577903019182169186738293307073096324098751838414468390526562503608768615034450587797416783044281400973415118788038971665010263406870597948511032879241333938380984913355141634575506442233970114166228630550342285253082277073049664447422135475962335803310894644080475943895972586013982112222645451016753549867279173931510823969808239315127658062549373719997330588189950350047126884827858855068482520199524952632955090521365730900305155519933758930689076833302493376722075761707881817484491991941177422905626953318983028842251178325291740468808350237744265321920310978941241117492114035170268762588973209324824875167216232675280303330647964911897175880078403436708009170035427785783917762671167053459866667427472840980640796339970368222370993623586250199453764060059612879171641728220573391572218504393224590584746923636526497162650410842860513389868891070195613570213083230911908107002810565457438347557445225600042235164657113855742124494330887319682094183185737901698218886881406812146574770101710398288837949844817854292059926792243918263954585746754364549800751527647674479202400257448664759004758023974639313537759123360612659089160706451233316603060665555190085781332494416842987204198271632323001470031433730650704401997943873148487619227727002008383840931336929880017706209427645031359137580357681070356485409340406867861845291309654930542480183262688696076358652118658105475580742148033286964465054257642051769658626924281254178913108507468099929925870644784950644958798535309956335828534850007292047483560534344463856247361801905819363546692778222793620628523977823486500882217422574594120980179392775424434601554610219904964508665029109871549076286872183842748164851653133647041250169552412479017118892788479399333764617654185985843625104053430719845567948032686700155683196788570537204100626266063562119070513243956086084322311279824455596472196590468505714104104564750996794145568685580414662013313637598027252541798992294008165122448041407218386231855328510509772375264888533241630935585555806015038067820777389618555014438237385004975970120572099037751355826793513061776053345150504988705196294795109062996155547039125912806832136883883897413293775156722306932406549685938872229914935072431152275981908913493470723875147565057420950325332230155037931500274132799207839647908237441189344512033881170187692118428644577892510640687524255833738024353355104801503329326075873244661871363084115243298402696302793436756756381411246840188373177382310542074157294542238288430719525610448250021970205383265658421631050074738339294398089444421752467034062201271591470836957258210697748597516488722034345352598458146946542325879393322494139559194969505864179341240661617775874674395645255733699916392529353457599912060912096876656130377977641597004067293411381790618336086389598935266464626340657210158138478113483000123360194567940626247919249159913467204122190783452012458551769898435335827700649675521904214018778052524572776237016902098927496902852212403961322568550184598106904567864947405481413791957340107330198384666893838058695086395454400520229483707518813956982487163529715470648938307933948476942348844989616437544005488268397055180371436925297384682414814251327846478876424986020990922742906838923209036827456020246829347848725401936321773577069835831425252210419558418174874210361537779256915379146495023446188725263211955714514486944990142411281819549786485164770357963989160401279739045166306762698219198036420977549278591110792721582542863904161020867161216124625579834525343587896940625615490344544034530905381173741372083463406762110214670359210521686237074561353680258934432229903408783348072171406680446205941257234125471077675434080631564263249948371463460262319269513893446524876574283439461822840142317046746037532427264477161087514879723298614761024917553674342158912584908002854723978953925116193702412685284575213363104009512285601042121287448253490730209427856021878610629540100340806193366697208051452925723035367686969629350982455593357811954170271336779251099409171705721400189082937653060552951411225859272631257042277202164261477959262861516430673857430339898972674818686661675928995911038302198864998325228139139577533456708306016189698436164472924542102340484485634192439401169136488165263305142312067971223890148444373613782419057738574631376802796641422410172382259619474345251865698306251769793577117738087491433144504372541950823397231015178861316575790581508205284644743218248324816959262229433166649298157986078306012108469342934692705988363397557811312965669836101869140050785403992559800932709605632932007725989859831090567156970578061186605708706975328060220604907629684212311765845927770094041337466492425147664573937162011371224298495675505385108894577644795502930167285639976413746529490162262277638923439198860250412410968548053386937669231249407369482596466849853707955245737175784360134474753381333375813889088118799569644202358851943059484395214918340769825919953191820144853774398090523857587773580904413347954441561893362563313271154545750095058750460888688510989945826672030972058236968251733584655378228295864928323239189083060368275078680702193669893181972311594928434685368666591108732907702665326387829903234245535399787268976935214734691154654570795547945918117356801116540692143331681429581428594321296501480773653025252964365596718285952444359157310482852697791150426354113348830734180871823114617771647517201086904800726258539747083732819774036223566129303059839826588889942291545020430046593537676462945512068584793696913161524813321795299173663203742613842844494471753872919263515946277020490374202068929550437072643699122856385188526788752229313488869096931033897629180495628723033170262579970778746578410914910400209729033306005312203297088723623261914452175857559741716257606701789266602879336757190987822759285560388891181282143151197085860932884047997169991888590267843078543162850464416039511236318660891623005510391411019340028113641571803803370869926344658610399964692831587316170925017251766362022550697484474642129868715263083633523794306092554715291995167967745461859212554905944878024623189579283690832857273466369206513661520551168241458403688847345554859924819330995920481403971146673130041619949912397532648248681276413389381187153991957415878941224536896152501868321551923799387577490938233917475025419001513419078908145347577548735174372654100558344094799308463800433008433531789037133687018551723419680665551469348786158953484540098182151471750611910929276177294813238586215625216848112353317555181508556172429778573038100687141591478572807332133165274596488812329019364118280011648927822795871228041552746574361993835844374639832505308345282975975842816678186917891075013770270983219318772386757581244127866522502966769075484124869063060397158845330049663228365522704125726996451996437677618680826924038063892461493340647929453021458955197453780787656404542838444548565451938390054854160132501825865326583608690035025606210109394654875505992857059942603578060924892452404063308162452479261360126534499675717303747520425966785310702313442194998030966108293083500641257511763976088467199758738010760190505942998196169220397352645394153072638837934199627658497758272494181607442970232407023641056247838238858227612539296437233820422645865798018016296862482837349038830306471498565428965239111219720676253488751995229193391789749535844368429933783249532771997903881819141383075937449307634149878353307159196795012220164327493239799908059843917502168542189654956628964647026124909912085640707138358653192239295381172387393833251369059520351945984313465349222433874785624578839645464501930415164612897385619162342919386364286812668098663740806897446952032057859979942581178655706335727240914607016681957510425345177328325112683346372707104973366584158983024532646990575777307468490405538615481395405490156947601113197669041689253068180461456714404113481313975223048630516952113499225337366968364497361407820852229532905882899409773279169925189820491587840766693128368201196432466074708241768888849897681507631296833265628506969660750780914017651280737332807003638569865527944160873338076441503916504126510814882041782606219015316228604549052083083689630849699192506873427857799039662148339950922386125398326960387407788637617808864147876000919053162539207743657582319591509909484660295424881956873076886818145375332147484137751296189406184391676047472206745286386932603981062977976141333410476399895152661694704235168983868141799273840681526699063132766056421574442534854533613600628560778951835664967501561259676995609149300360657825238925494970033051552295922242682664590293659113937873987143309756385914659574727266608274413690062154846278514574564461385613202524713372413198232085254434281544709059083257550403171415826616307911559187269239828179195220816208852250227627737358158572506101058892450951377558366879145067457885686537748324818862568087318264541178848584940760145968738993621823971999290816035321205229758791672748621268065310867604386960469759164772903725036102340722980010101606396702747245420465478495487530420995150644449496968904516559985731037037977039864578390848725089411706038856616417188438997525143641500977112642029556145799302239511889237536208179544406705895890250923925116504240158631638073132685991368314665599196604722184498479391407655117340071326365154252325894046186577250742866734007525201086078771575324802790358708883427343947410628166367008309458239986003398969149889796896934343030476660111645841717641430525403905642210681591054842067923355935514717048098328141456602240168826386784880254796322639839241076629494134828550990395412673337603430818673677970335110872842516110912168048746580626702012950987748636201297086713964834003133166443357975044588039662592015200165793373103952485911452589560511933232674353388298273100834047770066842431847092076090113124854168533646370695697647038996078356363254650164041103064349316242932074936538167723352938023378162189314151040722615884461558645846790984069554826789533429227435597991784480380640504561096624013393920988971569055474551472233320453819309595422800139094681660044633937280857968665510309651098103803534741122399464631560174948998806045992905244668258491229301094042819690131330892384034525915684210339942073918831350446421907170517993462855341565320138737577165035205773771828946194750998722791331717809027521155231484703835217810345998991771517992643837860764011434224263340085109883421390598648914938173501746477871460504663030893140391520588800447730108127512254507478672665497846741608231482390241285087520953052100036592949857517283996658234061462918470922873646136134233964757083288479652189160206119897365126244988267944354905514432742154227567734088502485383896300494837227879430395764865287469879700548809320564761197069278922564984905996791320678070804636472242020764395568021666261935823952740404125018504052680884899100146760313573145219440051924447217009449526995776053223331554544487695686688989318413317340703562697950427765229939748494742932168696732902810632119168039054342873517042011075814475009285290213463921169831864162920440392509314715953848459262381688854817429414865983645571978361673221162480598080392178134998263414899259781780128007691578491638509216410160359575597391364309022601614631922109346501933410166092777121502004651549506244541997408993212543702688004948119863150889270868582712854400975673196316190726789489430205916385146357650625543042966570169543846943228194652561275929348488103593621690021666143876182062384858884986824133601207263119951391500437022126484624014229275249309401208492162093564318263504618018999999082702409366189022970480480629593847688420425474557436707951944786794448569555299065450870554185622284150111443284937942902522023158652753631362539303177647833836260045196121987996665959178335271984598786767365506522303060966852174228177735014836435083347463114620983211293552443429001981910917601371435218683997755724043958390430642485989228816234765526907902952650779692384975596926218167772339425724690946768153449984485614318961362187545561550074991493826221301156310037493260446390860407778738889193686472656228542949089446460901811166866730811627324645934281622427889755743249618933830061096274438594331680964931500385453539449026773078935769082173231324870738883413804352187549101146116668097168881732496535971411757419540528555062209957027808482339857201802810703258742126681639910213229906184124637436355364320070849291919060097183729894482925054656802529221440736214360241670701087640520853202972794465664078238839182970144622018165545324796005568722292013334265154601067106547311215530752168566570837077416904341527954799065821476810170404414190184122666475232354753582379682578359286793424947510465454131137052824217958117757589342914777624482571179534900754827341356673323628236110170882706448381517354579030377673243087606376922030483272045272632480146107734272836090448926788451408888833280141767720638861467592225547497246166368021692619919966702450750074065011486748379580101774314004550874374892797665782807266562462586810534482791434729833818152813921820843537149868550922162745863615209921365421067906663855159838135028757405178491584089853573923964798802795759143711872848780460959604162678346335878300680809636765906446598644723730480114831091898867562636295192185563668313165908733214966740131565810266029217243688277120974425090996185920091118605303002486903226257173965941088894770763339675152209669359361235484734026758916235755362111155231071444561773329908814642066494362556627482093929623730823959007928527659052118512886499703275378145551560449051712860277883891374160085466435331339749963936912398696489172924540765664745198841361299920331579728940661077161174864084934633968992579911000503539912553137063701773190136294651993357252357244701741177638498004644450230867730611178663312312320334242288243315416986064672109233674809762866072010032244326045250661955003173057953249707328107607566698593198721550427225056082581162808133544086950517634858158605467877080765640529214971111526112546260836296194459575188131871210279641312268767759521015776614991196753874169695693148486837613948910225727745294596548264621523778340767277817350837348988551772494045787767135765112353118071030394215884932032842432878059280124298604753874074798854889730061602518955059796890046331114604354028266602257377408459228648027952403161638576373595447037786356271922462380525835398960986138866655492795418220900523983443561756305130333188007765856857522191159840128188704961960640664751391344131153347134284969415587584623245160584436081220363978790087454058912335641614411239571285827397169191820576010209202427314662374883533707119664998075506914451038086196606944042506825309060972922072248624792911567590109828123760778050632973762775944941323585934648537755983509250216504443513554722398473148155799515994015679045400403717424003295324954009083100606736183534766569187288006989824187726272617789627143096438365923657395172540407203446331655716997132832982662985114724555180779923269118470539963842767933414197182675679440877035675750397431624741834609924648499178205541709392768529574474244941869937706169417133905621403881778599661098763956209957237597624541263863044942214942797366036017247560036973498560798497442650322364487943960384543493567101261145352879622932764244782846517671574662722679230767462144251714681394729204141622697108024067249810364356529220686289701861469978027358355370728033663704943201687207411458700128371099656391008176609331839178575984000655545590082346648053237257510016876380978058151882488379110636399352366599662648214300525551366968152471285440204828131575325128723197234343102740939483867530631693355102539437266452726954001634535880636956627768673566908554934433281337469602345075763481840659857554986227393627868608400886294031631970987457638815822829382947574244080473849706402324704184021329969203093076188436273582407649356443737326330829298565442728324528520026591577261879293109986071330356754488702444027918066107169526285211276805774507448863823464488564303204956245492208076755856269302395591733188520014933212885282862280575482130052439666028418664153432666322023490494453794072082183736756100680991772571921337441471662138846947030505064151927507226575067017492790917875500689543040354149618085358474266016872893256025502966930419732909559178944155338711432400914457683376882135633520000259673925060129973582257895235473330490651568166142053837465685938139322597726376858465414164085011167053023163769151460220520946932316543680734333708886197571986678962573611685900151394979852693646021523883962636439979085419808562403046851648206269564753611190790112660273983452935184835520882781219733624113903143476819668221480601770018454514041900525591217362505396861321137173288488255910583914335356303496544563679918170090619641157769399591025759244985134493300700584275727625573300710503827250977902279569192331586912269131237002321209138117837815556610886871554483996819820563808529969914854589369435272262125079017545089332337047376475044324579879027550645889571095629783907786931796328387012814779367165038528535808630287769401582441227809595241240359967091132110054399969709528021892120108281689774292352595152519505778772290160887903701889200163078207100258302634861375081654625624713287540492274027441504247257451727396777252008404478671561496366512427341313145350393828542543760847113682212596044262730497646909513121967669339434830042051588146964581961997545144660143197523690954863608984762341057234974539607917481587385722220510302665146935967092306480882173493495399627641061564832012817068203825052082174524612914120398910812610865177864698377434297934918212901894811603603758273146535525695824199033971355378288977604545520238052970695516289643703318591243670342410549172600289378585672453508012377147045803388203491222964636222971844597239290892076979431668093109097455190049277499673039324847790470128804381329140101659011534612132690229705817361336708851944030812755742742102988020769336419739683230005394552627132387172571461874269261966668502351900650599200719757958389951380839687272214121980348915365369644588130296216892428965361106230461684526082186177951269763369192651923455949787701702497232515021160437537011772513510071608575336247964489644503541831331467672453171412551973050702409662346282649102110080841063317500608579819725176928795712617980018649997074946709776421216705033152988144788239572260007018109440642609352396735965190439184768899675145329532420417175497182027759663091112809882973530962964564015267429571047807620698247692558610176748550896900083802530338608456086429502723663168034796056699148141215039260068241018985651521835273887450465915058891812646013993028055271823966358246731347832084368947974254816872087965745791422885186546370468858143059169855883210252754627058191194488322859233256330534109822802483504994645292607319282371126612115220698729708084120619986392257658795335001383920041765976497603871594154174700068887680205299245390782929474921170344031484811038597656540867770544451591247525967600667482301715624601553648782903019785598939975412026561062544677483771777857376883896825275846259990487319480624936751666190329853611160160555547785414111186289955147389736292796511486314203560369583175343068966816583370490590392695507563996910701921470643072051090537356530582342594851822694571522553272819242149070089999286578114529189984382051168331983523067615445579683657973775796202435165613641884829889324598767303556680434045723427602123893348074970283872644023029994088530367805833620964501402945384145627208972199403768959031745027616996891793266844914015029791533546208418760063797000498844942203147378601395486371959233946592472487101090640688968114895481767070516605396040073168487166242260655446681503026993713105358717555334182480421478168725858462685631121811505326383300109299051780715130414025824726431493065147562501456814127417424122879849529213082464833023046395940129807766673860933812644522418353081024763585819585233618523936938883756783900836505484964737358531051986654587737690888090654202454757631032020298473740846061654234932823819339371794274932160064808770439471240284657711732086945746086755030690666652644996403276133981777224729861368304723168707058537312827006725066470391378263918279904518728969394457774741626270416713484751689343558317234142018669139185741933551248312145156190824685237368296227575174520771665516114512468296478312062968411904772264241308320609756609139598820626761312903990482070157118869822915796814218186971013280168452893868911264050957740179520712379258955847988200885238138142790135362669962679794829386409328991807296119869174005219222884912622138978955080648041827654303362315204711386418186889874560361479271464357702814173924213988967464512826425398104655606383665447705996127384082682371785594326129408010075668298126476077985058610380145340256129717960937534272770555718466628080991710831501270717143229298327635835049936256775984739714923929991374334202099465513669976116832655791280943514659696382652375854941794624162091979362104290264426832513703983465699134284837506730565024018415667886742471688556194055850862273285552661295292761279123559744655166836362903973601491185527273662171208371144064733234222512918131467096129990966419608576279510435775692972848209523244705301033204785398886284402687240385660893907567521045488790874327399947476499551735693761464569095452410147938609180302739474151738691284373254573928528357176735912606670505722385518972042403515240392389706456539626543642992424664796190012812361659805466230403165129161049500149062867749681644209941270135449402406564015007053964560550836088812528648149810062444806688031303737810384656307918780254388452328081265547764403144751881039989191841059172227349670019576251529866120767441227693105689071604272837138031321994360498070729900239399059157342197433068701669433561355201605298581116458428222188102161436268579157384047088263102606011705832000062905927724819161358803820676499449307788439642335167777253915454191352129670168445493444827742009933976051938659922684903955874451649235049274374456933951960955416248675752179881831875422141358557542782161431823247038962565264713797968780211067814868426905901940874659095564780492404255678278040717321978146050477354363490140871689224251911137581023161596457649183291686634034798344650937596091638586838841418513441041179801592568350725105185584205244540231703445969543031360704315050413123230229970336738105184550427449642358951477211598524017100920815723961541166764747498270875961306448699453327780965591008882668055829812548001192751343251165772341492780032241512156030552388022982639670295621597287078912201919340013691267687097924054672635784642941983765935337084285079531965163360208054399660544597832096140306581481759968592428525841686442653640250919392881630596602453876153212189960335124519839821368103610249656767924886873955855170376699302452896254404168564773147578853413095479030903217093271310480691577179270969109639059806638964398216725766558001136968535171581658971373941331006066967833607596649242896647792981105709318643936504855290359529705282189793443545453990223979617023200798397624867137451345949770790151626671494836079969047612727029045011671471655080932210859143540295369659984385306178212624313300769881848454888416070020869974806391164209747293146381172002528797927289855883622271158642555911947708157447572214266142854867267787554861645603650357022834470736899027694345370456996347850797123385945388138771222975380266009669198316113357569808552950895992475872336159154784698316092337585191946411002014448652913693901978976221518620194941705681343129652310226738961363479533537581309970066698907532540274368855067461821409073602494390795879261134559809474831151289660782593598855101345073892041223811779757614163463391554280129362480847760406088554242911154941196815351573806273968098942682307705175079667469789863902348754356993203957776375212081456632094868570640260745943772069344589554692600180779964592734430251464007670997213262191375931448150856831889519509816043614269172792232524168265482259565782782103553240418529310484043092676075088291355105310139697615444503477670625751965930427652819870703768136014817404137113782438394170557597727892740030322510369688995270835360709458529492465564855315045888848005710565483149003858671361005738428658402255489992355434633005329217632614576615285352042648995378852852961799011997224434741742370921290934732246674110770442842306639534805533288187262269410689424500397378874164982224411241697256289110248260971784812464591821470927346139983119401484292565970414279176881500311928088067956521862295234575899114513795916261531495558530280855187020944708706032738124900866216742069349746604269165691868218602871631301323063212409564003256712078160627567804457156941397611265288920997873913930596129924100936709841784367511451234508899716724173752074938551566703939633480744895314832426070605084763286890140050224259897532018719790275359625478538711793122503133934051624207243085844692165663313383245458065884607360637320468895480479095077785692338964636742335291467117317219072733966823076864128207007222209982483885204814464211559261209966727721238229622455664521235574960574736042499470500928108933935568792310016473435223080954255079962434818767014620055398796366010217773625852259857074039865955698329516804850989161296324318201023014001540552726721422143751613077932400908187021481245580846365908712934396803457363870734193547961084959023991243382025005814261645454786855145531515247952268291174507290030847292980811879646743522305601587406679618895928328883572533922703293831275313770478734560279853143113492433435559798197265812591800459696304219168524534222336762613504629854947557865098635333822307080351727356128367365553810088037903305250131472440258725806190291559629367145988758251738283330128086460247501359226785993784987046377176213229523384501518405449329464028677219950766191222896721598272117278838849109884488288084420516192084093472127040863012778575963401463629341436768463907148206780549663319219029439044271813876736984328160369947058941677013006418422604856975717532884468596695447604380527437418016994520766615755954112114067968702245791607783183024049831821289911634605740300552640045541593225971187564332129964350901427353242418449435352558809789517304046296704091412962007679570868625890414275170751063585898879995783435060027758391978085541271655294073221946937329318599420955866083608278616401824709383420034956899112991742825301364353036925470296164247182398043197947847481424051472162131657969381676210240369099045234375685122322080043321571808948614565554007549929634477659781372229366541329862500755954714285459659289397105273020152284817232220967197115907288544454712941623101625967957969043090999950894849534383051914386414919103704783346371234634583656996492340897918236057578412926824482766252216676804682715832160769806355276837270039791732977476529109375198626682928558310691256761556309353732034147579231710143442815845336163209980372027819633846025074518893845004280581181404123860619570734714897709649971595411040532473816659487759478946337987135308445133311205208139697498997253702788291730789212895345398662327913707225895351615622689649833105520532045556399291448278246528846198078763394493506424328225496130358324970472352993859858201182930775655073580004640985235892076806677751473933568462876664609563338163267846619858092479572745567122297899433203689440544444100903231853319248603479212264924050906952590221181154097159544670652667162620263307199639780379919891264078103274592136419555317348488960956874458769243051914660853665959060975586977516906425482721630689876009415234469592859562626105593547448356611664359583198021150137864788698378550892367959592296853693855084743267134472066264782882056783137677314438937944229108544027159389432933586382638729932159863013295597312243634335651616250762505845859819164959984707016092494504665076304919919311829534859861728075582775779939063621513059653531269449633644110405767366830752407577587047177548224448267943994365480741811881312241300898481414220958171060317130364332539452979460085975580910896156496528717236178862580762116181146321511132507560391266790690914783993208426269538913914490802652119424516447992080932672306468618803109091015687746268212750044025603311664892161843857151786698232737633231075695962556928286068277285159483596142547178671870290595927969583514936688699920661571413859648489096613711973023866868373702501845466358985314560838624984011055695764463376351452947728597118062547388725135915387794002857753747540926804933833093773355497549027829494738904256512792151677176839265993870113680323814660664214442286193231290358285392919739772781793616683200121949321745388000383470387312941034854744077564307627672866660111645570585230806536523330222052921602191869088602235166510093391777831751667537162828576725804855528590761479876041433826093301577588134946977490189758892354551812236109814804406152356564917077166613109341848012857489762196434866790714174197628705691548417556495972308436818110593936559268117155579522008131208189822556092089389849612057712010955064726528788431319571448280575285127839596246131758599265821642615888074140504917071254322519692415826782295732434260769852746179065220425878404375991607061658928599916454903690342279972773417619553992848787109688329122922626614177666654940079342503729697454403869576281156439761818801724056779879794213108058633138017707675550268053378968591163346362806769869521835531233512809861521777781051082096214702668098728882977326958292976279922158925700148367703987101873098139650914465534289252693702894940724485450646904519751492781244712788160963259002558705148700642337597107025708890400801596288040473940388420044379901365153723035303801882586254417696241427521983147816105492552789187099565792471271572778026361454232423831532091744019037454357492992367706662284519284680746468137104359536982173023753730316527301884902388959500915740114123072770652238346135932629497371982392014196760152731620932339103762414941756863335897122360934134652471449361065374426240335346659005288738782071142860237105509947632179320418036857015319018696279608929367177860822712978610244769157052740272804992159899772948865726335670878122692995061287333159134191120467832920926186987839188680206291506166839106650619302344785598290300316078530600362972710659596151663807786769629124495612059697032642096515865182181374034829287720951508223310645301694513026838455903803813369806998674392589365913905509363127196836370327605543380276728295901328838310362772873490171144026842820426309783640559452274898845214955030042218121835325213988400700200232500679275240827618514345293765423756554194390587496250966421348220571892815684615620791483295216650551082623707652879252970902341236091794524384081714298299038883577240632156002592980295056508325836455982793286959248611271552930162830515453296813279594221068849208226006798022429263286495499370033110413261170552201084846128325572291853988109699389309823873690638631065954781471277681783861522656633639069363491133117070599234609415896292937982514661833910835621220256114602538874238102223179133344529988639354150095373828182272275082206164155655355110899421215195623212003013682423282533074559170169806261610019352543640661649144987068827377031985439630142246450712835703783653141165981587809095712439752910159704008709983319853350631593004132434722472406986908144686486198443244284571134590077766528766506280073202265517228112151715291979392693424675361319512195126227575356820349775952525886818495612412201088340816275146444779840336752660199821295314463059425403379979357015938248318352778458260451821153089565496802454405316412958473463116668823261106235065644318406394263494771716076807892025353572312256623019224429512576173896544937409616700110805544014368335614947887672070603189108761341862362415365307038763536838701287372436825270725256897085833483894780697401842141261587537390669584078490468001396434360689866512604131507506711928164342494166125210694907399225470959115005273605679732928403266756071650556834133019853774412512989778077577509663125054166622591598420521743558230879300413219467692414545243797120843977403458929477138480910291068346714144047804263424876653302006275430940492118220911685398104108606906864174157705614994964056720051786175091554886853304296451924174172978759261827989436585694362114822192447331647211273254219996844413338564948278811831724442221382342479988738648858618358690558159464044739427756249678915407076645175920598255516283557671270714330506009299752753093423798414703706677617639738432220760671807883224600499191445064280789689175051404223636402169917274121686879200232837809248463146004903029310718264622348461700270648276262890233146922251445051740409016200233397289541118281448712906516237089885938041146356604271364406069782378680296239307620062170875161506598984378302691831184277329194451207161776237209611654877308205854299875176634931140073841241467542270841287018634110032389528540873250434431575144977020026513395523222973233424257540255631013361833855614746118253492554637900314223076470074519092512584120375817394975715540296656464678647923476822763291270746331860417013056073067366515426064039589059625161053100338169619883163750124018173858572789430053892119614126161987768994970103172019907724440208803225269255191357782050650266426957726594258509749359233700056999505834036199206122081780312832604111640133331024394126405684100810601055184787202478448264270621622555003457245614623085425707987342462502308874940920529248747662774892586490056546270388191708432994607597270650940241852788086522564566211105882241792713075450532142030639155274198566764412687545896367777953007210908883014122647995852476097732602619840752387339147492486604080694695451119264920976229810958625218938597901967337829560080784154464401306135126850438826777011991815869660798202274738805915992287162304762197534678202290632070130668510826727801127201499436423477950474908000384677970279773539550611858423140255923547559810682342138706271028803804607159513091816821734400480282862432234504374710377294407818838027596526904779223951729400169490198288760428281504041737314870476945866587356949331967298798167510489508432168666845380718767239226199208005974197094148509847205299917356024788439091070477006326196165453832606691414593753582258652249085376248810842472733780310709907777436293830685208240173705410251361720217554952911060147738321042423251245815387221488305874733554780104064432770030951799090583212690026969174353558366769354385470294753600820325512019907967492475698522063044719406945643862988554194218513523574458973275206781322148506611552596356816749799664473650519931740182907573979932408961837849864456667444832084094084458835300171108324062597699599056133664099887335607287428759705241536923749117684510988340110014644176847359012049490207432708528339493840287813110384939616287690708441833112944105390302077576981061278448343017045034281144757707898183736808486545022726536788228605362276446119704593176350740046353404055765920417509634556385144122545857294470159000101676567840132740622891216912458900383366129976499020757771225106172192708305885794264832371338663981319930282182849143213511541050144677336919814819235630854597628452801727597979619149727198327863601126457123974038938366724259210619079156956521547349867774655169412829127602539351846353588900785602938589727857248767530261679009205949493063798274493416048041354939636876008316455205088695251513675432122880934757384221268626950377944117728413419206890385961795323297649614340934566534717498880594155585644407711434909849712357667699764332154114881060063334264270467940487031753844849429963111682724577001417879336743390272717564588232956630225452058731506249349425526374539807654934299830197437805037361987304200268705274660197050948147485462182541521550882939731109475728389799213324978966295717006292794162186025979923759421743621557233511740055666239616812647272129669130467600838334468037349760240825194923124444371886634834156554557004527475206637342815245703653218989409965806643456601797735542907928254893374573032719308610684755094882769870291699890575409156464944485134894365448035536205073345577569563624913539837803639922586061678372288307915464495731509060387000988329977576965745213828693189926558647913964597218708886529976022362695155118397686678262972343845644699340832140916197305818915619355525973939191720169663403378613535770218053800487248983347415151861954744855842115924898081271374189295163384345019742716528257641363324885592830859407686453201192448832678823991450480528151089132572616413478728371231763074282629161080609069748654152221413601846679085550936397406185670774922786425788571685087667758500069722406796764413392986169652493469639393076002394515396519971224587234955498653137566358690817106462556673041945958701265925748756284688496862675038393462357366414000106527909959520503599104124993957912611416417204460810422149578461662996547317307323253910457198058702312719983651256728890055354289372643589348354318762989013229233852998507596614331052057209872182165719040170105019119978266724003849802204282736236768150584737720534309873403592232186707686809864011881941508095045456259426244714355589918951764500369681549039826946038490701542218837817966209010425502048983041183307637658013511783999287149672923459690970641819025156055628036674764801216973845595848374254291804818714633612727348157337731332435080031051319227784238944455223466309073415351743156301684506002751966825577802893873096144501137685428094154835056027484634895199079818156135887329663330262427024013713446675492547653500262703695582965233268269387741579063416679324495077943294267096358305754146359235546134728734281324353751726203708831979630155359404631896205715044681954023926497427494691911663357635228004763177781255609025370119642983401580087092736659420643257033007803259908861660861127719042323712052600572462959268984370865359904005450462627325828653518645938825550868790988894730906362550224513257873092050657539500097276183210362322772744698800273181204682097973372445830407757418441182366419080093059190899070782317272420199024677902828131729968050162533789300771546363481975752902766244085946319954933729874732637810750195905986652979209326121943350684355729044359307003467502490179713897843757973229486540934838081470418127830656234203282554008201339929444877534297509085038533997917928476415311849181922454306632470901554082263368492148587696534130447827580478842604404602395871264686423533430236143413827642532551849158728353446671684569324698323271765700855144165784454145686219499295718045850935079351299060766995159365142304075678622845941035130659371879981008435266249396388591966968658959239599141330083860760869869078148917058409919787860013663592484125350357451960960148455158736069504927920916793170884910707070397907021228377554073063741566922338787969470787938891713234958823796265593310627909336507297224140421130405111119687418916659062736733591103973492286254830923014962017967872965530605659784042594832947589375795986761258412730226619661964496301779768149562058562206636982789773649358991839938664921518388674410706604978514516123789802928427544641136919124420240453954469973753283188022202565052868770980415337320091788956385147302953103363046978097136951496994881028952527809073846374842694088326667811070925160675219954500415668407402643090058389517661886971718523755227864567747285470849985354705385376759297958854650627305323423418634418809697507931046864650267725702650764739658197370557029723473854033909893173019477752227845252744435214910118229937938707291546274451976726331167649412330043513737878189149504630658975223629210963046125841451478692044053579694234689454517372411385853025143598103355164419254960085791063741612778431563239187554246979784283885325806853102578930257182681152824753539991538147691125080044444391796210966169070874145324161599753286609262583130737145392617223156616740952649592982290650682633017366685903578223722422311822471671284538208444897815488297109225253652893594420455625127581203561213557289087751558372350814750856708959774048487175447177112298057924485595399418986411706450699664054228622158732246820731680681345147218021465115022148738869569886492649102062249162665230873096976141062485504427211940100700995161407519805968189839581994639551599428152548489082376760805671267944225375174283482030754923620990665599851117163835488851969152950855738410697979101768976794639937031336992877293877103801489633388577131466170895234740478587333662527967149351288310272568138853629342631615646500270477899183769018214405452242706741802624627031050023249812077542189887193456510189936007245431497768874150532054472379674911531727175562610533208315433202346530636557328987471431946816167257742454478337952587371375020962328234286553436319460590157272198358136163703733150382189307125652454703092262792588602047979767523443538753641820918926112083337224317627008014476183142944946243156682426675597785918097355932330055102042714763774698150631889637619578816501605454599137650121220590411919636669014497401655643755366380242113857996683067541282089417155387911069443989416175521611040023597946527762920597348461635079808442363384217895396726164268577422335166520637687072543451185816668223303300802157927614501397742284488973960247409043206186851218668778945377232548812326632380540787437043251251201192105258314217014408360555435822469740321157798101669299065125288886686797164382464095628413549413470828832122124496128746419075003867345022107363155574733462641410684482862168220789933384184449529528481098039598970980926676415029289261530573337016893389047928989843274611473438145428411738086479113889641817947816905954794188522911765088197099265596052453334428108416485079194467222853429908731963399990660508979821635961953595209960981130945577899239834872524726319410059056300824525616339985586693283912963706244792491005553727024165320701746504367822970464758455193972917058712658761864135555575904546110993028265631301845052939074048032334764951014150059029185836738453553038709589079931911389949585303439814451792923724338911314925747792167028103164160985804768524395433226959244655518053798541923238847065000708236096852667230884484499492713302868477922647990682364717336968297955092052511483780599679920934268263501778286030888581056720288632378753556429780301884207789143402068982519008018973373279609356814158817806591607170983590594090896115011350185284004041768306519270184807506888664316969412062383567614328855067841190139234523442663599277165330593294629853363357275962457774342059664925561838537004719777911921027306323480885173005887998996469562626205731380335599862028881418348417388319291450859485374719238392342593447407715782363796087966305809631918948081552137283177281592561318606654319959808984094308445582641400419101966292108519333794810807208901571908953197586174434806384789701676051525930150915788042558478471713529862266271611105196601762410405800963729626415836413852088177535721565044991703940776875785301773608817273318805726297025325613407797614669406997858845016273626984165670226841177122795622713191276467600380002977255030804838404971537321685097676965014911500325029301394410788043739561345360608758559047442286447889552533917196887355363628170748735394465586464057255576697334721214859247693076421263521094916562708710074469238332691741394098692746123700711213354541297869607965779191732921963421755641133346819657152830374111680255347599868227392115828562731602147922805386028684276617600719795047740071997166273931978223515189589201911813881891623354287307301775151063171411556087851083276679495277910849927956957991098286641987577814524059610158015884821292932519205227126217546994460888759952926229895272950117383199557647144692404611799926341065773682166821287412670851429524386504336067898730294806627868795201532325212676765244520169101652575852167854121536729464274543203627647391340178771634676934993829130557818185419531668515045707333385868620781657215133360291418376997719223918344446903342458655119001701905650253774135509181214942327093849483068937976562005938424575977817998823148519951789455771681342588455649478854716232185108882888935847225182070660638381769138916309670238259427079957859629372629886532295014926687425326845656110774275647544635478606989119501024648063753526988710346753587399380317072383977952882644855156274727998789085665087077747983965854865218087530333958813443729327925594932658723583815127366610272405161540277714865879722027257844047874932324429233214183977586616825935890750450853585504503760039514023629035743590126934368297784145461745031600867863671983879761254394299176465087302315755599618512610223431273787375591394501394529029901802162720463283823495417190590896735109733549917191734176621020046482818346918853871998832037028234816119180625032829213761728816475570610926922896209761887801669122707878335067859483939038297879597255391530565618250920680087307737711453089914756308827192446570457772222489344624938831432863652602533426649155869047992382329903081321519693833318178388903168492436307680894233792819197329540966132879292489755133799032494965899784882691417928792396413264436460650796127450644863271652449379674552775580805607662814004395836473654534812704458289611312710337046372365549813330890299935954627787886330241499018761865969258338509151297064075845269284277515447942482189959067032326588277991694245031747097093098657461451132485736211480644786750019373550098874337392273929676937581732510577926117327292635716974921764580685235489004671761034257123296317175182349511684226763390386750232731983048417563058566201711405847744348381442440032227142344371562692238531784288207050077235175025403129368024979194280545950107699082371353229275616152530881519174516686858608165001401942257935638657764981208823219928513957179190605011694662547935241002737094877104636425781886179286023254089659334669184717189462990423298651717678581482730329866025436679487679266973646687469230447242764910829936078802520006456205258503503696973103869729021436433167139458041101142859985443901733728032157208474223709234769220938551945317258305401695633603749829347662455446029339763226779558998902177890462814605168095349542883949661185567738154490327026320020096817143549144408341628816605019837550454425607229441088233385558260462984127352650323313281648252522387670431276022948516343674626804311844552126011627823346966973216339274638451408076414857510234415568320231606907664368088812012738271355381133992381414786206529299233935420496200232478137367403392252085110596625416047881586306025588889521847989323335441541559748306219567749850967526462740249514089581081632333892526806483296412858517725490997383106151683059094600838495290908928397384634763544030983108156741503885670664344832336627448929783754592372569263886518205143490966546965070911643513907374956455858921555332780252094496178032999144135974467113999151764558331741306446854948024598929924885990524139278903619059847730243654216081406102153794191613712600913065181862682003947975281515400615769245914931334435062048953410064890242724744931680855427794564734718960029215834038242832920138423871077126545548544889872796062522207484661030595707713169400057014932655248974766998087035305091713081098748304325001673255155141023131763663195997383609023326385695093229494899533053880247306322578208659358235600490563959467430599556546664911304793446457617681002372819964241569241785580885436236574619337399470258462029030065068142782838593819326426702846320340300769019915075826810517545652555483866446139661809923022496203237214771087873029110273554752334520112442702755852727818037662076489680207886440278173377080190264987728322394729861221544693632455346085701967664628350576592838867066878173887275415977776527157168206214034664982918598613567141665974427237836602928519531494763601624677858598460682337846515478364799858345178582752524213072174170368871718243218957698823858122132214035638684148886988899569918683543147876141975826675367351178446877835935404233675246882502782104580236050099807333834135034121337012597437491208929412411871176584952615332875268408264625523280706220727172370149698167533558647832957033342371979399375692086437627342203913804886937723043736722642991700617653229539890114315616481716260742950664934538650371330334378568955193314578085573268367284538749787555420002394749902633961936249477187280995011024555572032168306994143332121053137667913189796373181777209702637088216587164286586151946445480892754286439298803475494090362488826973392860058353448734058124806767609554588412165200165135326715939032208739731691749599135679991794268306025074966716441390683464049715816335851564572073182418499195259258472420065036139236549283821884148433426253586478321724762994511710281275288469028298988351290397330193894428046837848244441904786760175826269831097456707230276970234427156602224991510728261556267969166289699997702996309871005200970102064153668963743343367381814173986123981286662596172002226937890710607304183242461321058361172523943468260324799531035389507673108360296593926706372560750191313664843520830790141672520789391113528026574145732713502014077213255527306834445732572443374759086378616773822186980474118326159041873691740176073187665439120067676283193465223556501021412663372641014637908308266290963171382441066890438817045467229487439804934668341694665705667242704349813173402656834135106371954500867963546356752320074476237735230539329714990625398542821709044511429949175524863930819546199820501012053138421767313467720753187461531191517372116273157811779457466405173342991881630562812868319619524415259342644975134848697613695453275889939649174110959006906087886474210411880741213533285568568185101278461441188180913716663223369983561818313992626960205816569082289978173254478595441953441328301055375827747829926417437393895583346536901534268165236377008162640581524569131742179671720504720729170387264515473184196072920558219162337535599850153911150847271357901837579591989575080856892512876866859846933113098539876197152167927770566019434863057690537994165759785217303830593561731692039048090298660279191835270477611735666212833943445045425894772723933051195249322132628011657623931471582075314753709313461463773503948665877473728092398119514339654106671068468924814319067994097910324647443406538066347730584702475603204285448526904320959912244914853461528018689180420844425638715875333601643817041632363264840037901950487076095369030863047249758147264365667279714199265551479347539758454282137272573005554159584895357590210070187264642042354786185072111965677894800655361815385266035535341360709256128707114016381346033404328986919634469883540413306896297239363695636736654628792766939458937756978790060232443048462313790776410391940772180354658939985769030749596599326565872099903762284006612809621796950088249171022564337912127173338422404349291116340986052356563752761679838693444116145133160762793988434016299431333507798510104199155146891926376606023260974812316222491275377283270066079918614283583216746962632646282291144310261773941409600176221934804828903056058719604835743014979904591964820581757429660787059903922977420006053017913273635208530088603686474271350840772186447958365481346812447568084426737663491054734804999344437330043638220773154569313281169174035425337981196667584910741222709678304220368931039782586651639110906114083164467284929945774340317642461687473325476689081174578595072353331629122236175297853358230143019383166175746733215497491318908878170296461740869867739953095072102116869867218439058900763102409269214696070537142291655752076930269160867045497619141831129300167820524281825512222167719505481273414603088155129812860864589369832781609935089865627998842135879106578614696561164018220753714593468206876502270005897502741590176536788117362082708106213421897615386770437241775254136594556485279173263490016581531582958159933279089986370229321265502197324322375925793327686647195213032254945709762062144941457723096585703032121576493120223885265766271999674778797732103999858500120177111012708630987074433783495199667671654967454950560006336745886397996196933129432184705747753559151268536317972708353951896301067828876664261964390931924089853586608789863812430702464699229080549927594828361871534437071186206584947913978260740055013833072086274779251317536334446395291856319231028900045079344043272906675320746727421897981065931539972226729952978906215467386034545362598490760034301595970326627710971149072204105402105011106957420967044903017405545122300085958618767379477174702782005311847821518662582796111983000679251497391282240968101381719434508506029623755825736309501877983170552993377343475987950462415899129269683977310496484539110986859292133750820263382836496065727121666564985435451684791135079403479704729929842169121008629055089496733492159780006658442753201768869886510973601007019945701586450988113438126686818292004781305821751764690644785413646921876431967643802162737668917941699870408251753961206207286346525807519171492167890771792229553090035865515652907655515140986803519459455559279386782997970045649479491886590993925026749800250638930991208757771322902280168924359623948905939699411251269664683832048464299166628735211757553632091687096498115083995080856784417943220251254704400588545648451759415744788762137505718416895848146585686784062918577688037490547493631003283118063193239448722641435407303393176690520379396593299512331488429841236018503559131454601076736434918886131987368881233703981331212737929651654695944696608480661327338251162986892394219207599988719721062887712563274846148553712397260800109673383287359617581845457471651900825036101858755560100683957399672944895997114015758696884959665497641201630198288826508490504966878632902275906884263754437845213622187165898213888630054916644175093691190752958753438247809161224030793995010937881931444318948418692354381249653586100025461067457267107143372946629941107974010537168067272659283976027466563250076798290243749966632293544617886468205089684058664098857479591716230244047677087975306512535680065793729240443718807514276399159851222864596222519701999035573788217334662829370577888966909392682063641570314127828325120236694837506090249893123414239100701898412912528929553258793525369345292458366636273833941898400447171919567158880094712156618406005155596342255956742999510390202437105259559604970417587756946783319016756147813868209624145037567859691704543242008043652939921230721941625338998109665809661536467705960535817222090452639174662578701931352219728400317232808346511110144205375766413265779500306718652474405065418107510545242025710346862591007050332261912912579037076471900534588740666036127945163161987449898178401806065017650225512023421311205117617813363016066216208174740064464669581810122257767483079040570661506930305594716117547992545849894024589758445231430679655617254235541750765669314159656051085901333609569801231764223799344668875938334758382306590568082578809553192746285657692294951265003659490023145548825265429896045122315621472816973242504281029810773773458794735466743004484135142380078832147466807431202912146296165691158402645071125042672798364951720852789449926662443712060888145942172847455734056991543880599292303536167196909063497359258940156271745740364940028615875606921335135739658630382244714115280165310121218327208854991968006262505816101718910195903417782005261332706350904276043677656042915184969527772864603592062617375652252439307654700331117677581281359137871037984723238983368073951589767653696489190086864094936154212026995401691683522734914743884971664486307687880248914551611444376551033589474157562795761922463320725672027507367061328158540100468600117170272535395818640703033504896644921617013874302832316634096132682705555722866456367975127985760082190324534450232442099298873013249250744740660733319408496362616381913259003513123200035550817703325957309528050341789862743186182640356987135826067531570116360958620537463322558957202426160426574866431435828113771155455543932349650054019136923394982082824645845193576005870468719000786153139259104234620152953639313452390024778354824194369744200587450790868225393990460007239232017681337661639225138746293490525136898943032691428959978800734718678324722514468186182757679894846506576192457357029172211998387778096358956078534907661998506305652925779819087159705064824619744011594432568231067849540245295617729840983137702165610846071418731132276900739202417982159698176426863035694458808594676553329911006967310568498425981322397421599941011696591073380686653754973529261058401181348687518785684006006945497182256782228354094117346144672188250097037655970662790086973191698804778224637575005185965100803792032084056039828505680700717621959249487395145657792819389586467939801929066544243646794649553826819921004380570625779070549557110457801359840770501055646758621651175699588511988502480700863766788128837811800760582685914538238165527721354169639999442706376870558997058089038713372807608009042878997733758948997331065112199944548248164932736804258361975364791656396870489477412554706787799641837669347473740551820106712827083761485323588404438273873977541009348470706116116955157812851242020374352309133568230995608245644060363473507079671634120519658174001620986253887443888708548883130419353078851442530654343304057831028556811120283474331459616164137067046202931817569947643521608950165956029052939978540798017973709641683767752404935645180003088805507492590326336539400933084715735375364373866033620930340147672127602294016526388451827839662079152685126403211859855097181597137027210309312191121251387771748770277975262034943422424155231269241017113134124157874336213050501870654512623490491012776295060256329140311803495020616062322258909216823085169100572979576674939062541585053864950464825322679503278267922528568067448082267652494707717520921717120159854937871084868209697531725116457864260484412541962778827627610077933291107294077970372334379619734935901077554473779475962309014915552120581921778073681214631537426224873410174104816370826522123276152617363652370210334502454040911226182769590419162517816984857019951373370773367040504880135188630346567414745005370241028111166105973817200372933513947906963032978275440091986815238752457183802700762322806717277077730914090938406302640336327545596418560865521092428334785819109145714186541819037918466784902846242988697990621039652087698588957596024310972944106069607508976267289637586565628354477098044464334654382207540302095456558969471690647255163433018598113130566376009452271689301055843180513905454694318657484476402127003883343242578763817083528955541320830599934291207413509805799446537775609166224880345731230187661201209333826865566059418153233739424343872759025300315450671692581800991837456244917819629992222974829724863788284897403369743863222941217358369872581747146666037374260253488797812174434290111201091215561951641754953761310707407370026270313699559387694786213258405513634838820462635871349302892916589783320192873653202204642594876343575260771929822802377496242417671573959424171863422236511543430424145516629899079035506346373798174850915542595177113666109347637721681545466067989603206136465982852704654021559202467352465419611603384868514696912550388812936820641420068282859422927630462837207384506689167721144885001061035510854598386297566108849473386724432634580324630158006167288433011386479077340376408857632769162144122745280378298630684910989852602081176950587425637070547008972208319564197917895172380743356684076703609457836678810968281318951233399069235015233636619146598227700103321136489031557103398401412940208952982939849065504488016679769977796051433759530542953329538381682298088539490894371487947770409963138384367784365281939125776888573869540224156377143915786730574202553651651534665957644984845318487725447821588899882688949122721237698761614712498089688551903827279892047098657109204617922511338909385142074764184409551556148001694798456085582590850351716937904930913125539091757923847372538743832919426717808662702547003619749316317070254986628824994674194811178843292607435224089143696814611295829691450750614298859753880574595562802716945217007838639361383725032773779716938774592461349839653859631870610432206085091298287844036475328307798509380580567402391463674344790096058975968077812736873073437870358358549570219981818077575460584072428495592154191546354934329118950543598760693729853564165042680765981990838092049389270141490633409508891201882926560798338882455155116572794937088668938716653307617400723055239407300943739125432114230747368232408385711229046738966210341309906319699892032954646815935935096653692823819613301977393330059017004595756944659083631028922242594095690774175805956745266346183327641509094052969816748627355634192577949404126200698383491045116587526552252176281152919722180948265482199977189993303942042564998459153275819083404434465985221227401990866511670842595047194402880381968829843342745927904529402908610118685840238642456860573697156080476214266352756232150297767108943472962723850999572844364814516288792357672786476413163332224871872959292379297195924300871747499426254289090815595047036681243733936183825342788584296861875656852108270631855136132419202058532911161374338962481663778780931110874971910460044424495923602459402702794417732261297738260508851385191100724520242865997938454249059298601328489487376492559545819629951693975867005543371833400647259040183306560393149250275470287554857550397616120441116134346012595783839270697001175721903102678310351630915852775783496635769756580862480481390537711190820098839911793488575969241814995589550062755325527401675776129647786734528441223081236449767194229915341306429090011288201965960375628228904336286799239564143727109309448303167839597963837578687494929670553364273540611884693090991556291422363720314546380962321916668649818315537597208991191232044946817126385458789267530670777656669233070608897748503021314684373739732899200953481399710212581275300421230454007363465844587965107567081812278252358676079832107625859987403876617735803454777975984136195709396075462579025457874573316058457423112209606670252867664690529656617756518514957668325233276912444479364927973125700301797161852518016578429267226587891724707280825218257319676161319063747697076811804954627436883022537483273498841500232873579813711300528687816832625765087596715595193472012867236131137164185767034584249453237093767680297357957495893493215942513564714176523283176668307672013525912762777683484467995463514509572541854942758641006874687791502258195689552963679943031997523472541323433477950904672587585817747946242198538688853211029218447916952377410132075688350939644286221751743757804794456989423565385146318931681836259549239665861974547577953977128038561192569132733211948631601068130484569173019963158393267030109612742234062123332690445666344398259398964077833493297423585687920864009814975436320362173561874907727975759448051860617551681492932591072376538181191422522893984625203943821377205684574503354822182333377941448820130796437069089874175227503029842429916617231345069223198258611979844138689991161211512161808964184865207986354025613388499212018123548185269310255581273338875933083544451985176352671459595408271932910881903241265364842824796756352464432218205874709482536300581260888321353989624539799868842731545449182200369018185380285820335199400395348837760012612323258321811910534567998549475681477530463423342139698131686424428929292643501692500420140638398827647044625756673873586757208705254052401645379451304316351221795795458187128729878394593511633336714311283041190264746582222990718677501775079663229175099184947378218547837318344436025583719970102335839961835969165607970728939247106383274430450530768057263082547508396611336696691282883083706533905161208977357058956623151955043882533169745722615716371208482947225064740821287604151709366486586240316455360135266676063370583205103421198646337157149435338038450001583533614457617735473723290508783343072571264156667203470917520110759384238144017564266677539261427643300172588130005349341868060969153150381308464201222712936945279621598624310631807354101314417110583457823666729184196492908026595064638086490022988181280416292005017817101505095966962353337644909227986490164625268670399474997406482713560218106909122178712163876040676048675446994022089392885909186462586624090866101220463337379968247041882040046963938602605107385238602378873468950263956640099909498752689046438527796623736146289110422594960067210156946296106887123143210148383481017708492689801966811737879410919788401703848743825840455869887288345969483487227850708487240423624567207092905857472392402479927561884032955942418017657365926751483666242223635023189453198634124129147382350888316529525161642493459253814321661664188800972184591332302884769579399577548328082438326266885529160194167793548714175342819693964600723784820963297858145963790528378740974132830246467692091835636543205606028151529306044754342149396337996819649547551695917225901596650750317803657400527022936448415517039308960349667785298356022869818230261443637645591798864018984200054349806184449416695461229691145444542175041334915993363829685740386086775286664607348016873458309862072895268163885391846223689391666097801579715484515088595655874101664416522920456789224031220901573130355954263510611967411667572510981383463657076640260388829366937331880117178935521602215136230893943542198209428949984446818200958304215315635630386711518791500603080572096156594879576358255047270299331639303078812393352563295611257495801627591897955072110240383263657025737127441689389423416707682402772146053972697234595726917688344724460992967071427515965604318876562726719549464063935582351179126293570947508042015309119048156707461697592409944569458610358801999041299467920283476209945226961851757157427876558750937437959190627523694488361073045501902547031343941282641367199034397704142358244537727723484644353195353489114524577834647631196493314619408532686249835691379209294302399631910160785557458662925526397724393723596987445015103874774091430546303437874004735823572499726104865789739359423421809843275962660687469409653514110251931244916040967165691328632466393303141514124004618763257513300886986804594563256599646941215254816424317932420733605302037843477393399451982704257697178534419588452516035781190015033288839216267176601944000308672132789260519098348444899641282053617110695169659405606173064591666109368600302286849593728894034996910046710689649506953020769897089463063677732975864911673830288804110084849772839829211961970441734157307212222297836598854644671479768188411568466149301062708967594171134429813536220355747833266145286475553861316943797587371639109501447482894467080449986350742685189211749602637775650139186216338189660395294164639559002841553154987766167294389621434617528501011682874085490066052575151454992024673116458838743567125946255665729613066230573885325020315484639565176083804077879489951269684548439002558818091882532551374201333817062612648173121523012173426833984305289450351050193489049128787678806903520687171925179123863827989760810178432085834147256794826096385216875680356217883526283489274059887582717390154959652399173861029409057286969199036467825794755764158359842961336651851584655814347666730806508644530589876700943100142988123685513568266115035128919074011841453113541483331134591576934369829501665925643134951537353733598050760706707336142889347724001780666353738397971748735870648333799703819020321800599817409376074562063517335422819770159426970656822528072587239037056200593682873368394016408090236814405361622699314456566119009851835736263599857782588732803071442977312973438020048927538753651395063242254458268936809904222491322523652105931364422313544780665876259510364331537578656821405587426425836290049611056932688995693272178718531014001165286071006184962871547530244337991737480559119629159360875025052447999839533730415546449721420284658365949734566534911688728161521774644175295185451341968663831549492018107333665905354089961134178895732168092230530673860825998249775347325770785129093991851752119862992440447851583499801782120131199199113761511993696349494050837641771594816874811277722024539110866232890566964615102768368533877390380007366508338110193903922315431970216865446623589851823970893649663451324757735970068738334432064426969799200887470886734421609363207707952843311921269793405359666508235550087635435823118595190309024636340267770499320025685046008255943685587900640877632777084901525938621547946866222600160026805970853281393776226370857220491932107346732659901644179766927694169788839351514052014729142865097623297467450869830275772950553727535652281225203595224330586152969810275986327362822356997407050056903990801905962317623488562806501740481443972216528213202675478883457690488383146448676996911880281054755903964508536985652638445271444597221530558615717438844017161177240107093644942789353700764352037236195496763499825329141681932498871286105527249426594050198800050982399583648947750938652666809338409299909985475827029987696789441856935013914342481455230474122082730577384181976770656374956184848756109569034532147918837745149886662603154637890672484233333864644062764911455031410724574116181093505591201061817825397767740897579630543339969387973280064567509584425459961762600830768684877117822800684029570058710914958447380202947959547248222182181534919001502672915585131970678708396578440015461116005380739984721859779351031188448873308397451583767017767113118136988660663976940200284344546256031495299631741346191193452308141600705257757478039502624611065071187524633075936240682702090271324199873397991222100203471765070811463693601183323820847029535048772194083602246455069488173499566235220568124833316481134887641786447719358279076814399080373017607177134312277497582862899581683270954455908061546884407840053706843200313328021528737417796803072523209184602860543231625645659955583751812775143609755225804735925458586099943277557073272437700174018314198081069370508430827221836727185838646632091815988467377230371693661386274820155353168902004578378331013720133549637677403652743802489923672706868927277604420992968377607650031752992620419099057640858903612844192698971807589090594700545571417617159354298932094365243536933851058127583970162109256150205990583197160688119278566437746702272809742448563301272948860334142654493026188392775971955791702604312071505819139778677499298755879167590254591368407773576225719717384940994366117832721105628079119032705997817088702339222020036192528417779662982658148579145287339786452010094003978192388106407159655039915943119520892756718278966496045348596152077124370516243261879482774051786739484285002176475936006851708991254286280114268311572520771718951842276477475282294135830262457139359768816409380614270154149730858897092623651137131820274118071538202067670600107760627274040553397597717171093183688724861124048331163361543327936713423868964106380171797460418620491291016018406245559075555873231982663738631009580270030746785579928134329736613050487090252878682730865719295860587712854488643990304465448033425207600130364643609747003833632017029780249455245234832820274670211619925942913891759868820458247585985606611098193245322209131177022422474281188898731603170389138408761270557298801567715666090340419691885449424225133605130783242836608048604250752916652038823437112805583749490607173342581373631659841195485100623406825740664413152863638870490656341414334958239789800432532708759033355162386848565993762349765215053677289076672548058656720293762903786005329940567239746737206939718074988099328178113278117653720986763155423298419787852069270114274686241280252437867067302144344359877706541464947666461972284779022742384899002158915398978434068640717466760019269071336773536891260622155471469131969759889252020976965200023902345709600575009787091234195906187838659956486886807522023394035869649073193505301039680446299239648294658622259621802092163602530194733048658080215812357685259274705239081544764413644802233056153865098611540322550866498314697658037546717988645821329603154724209900374634690446698545717020973703031153609433396889666971830530506279214871320588574919095948845169159819738628931932784399451329077101151587477504268360486101379653859592688371641835796090312389805568115538385407228968047867584743353743081551166104808298725469211608292475174172336061037523009670719911180214574666055275404446669589442794785339452406798579927286754164998913561200121837351914793758986395280051660872866429779216684522419324132857497296937707243308604920287432478301381388252150190553165172441946356673553306127954854338359768065067645896970297086255556579578400288773524374944990119877290985784836932082881868931088899642660093498357391109483685766000438627254253072724908666047667624304720121808826678998723311406102241114358265304776144292965135462719395053349718340320693962903200800913472238514681290073643055809829370366930783027271522962737179395539586466576767178989333150062134773021381394661523300522238731452520058280398099149253843784906043554607525811650885267555910705236754491144761414402150952344503472641786102602629997416283091173066986095008736383487411523387087398841191908238684755689663696151320070485449942823317056883944504677897117774830352418947326589892670439105534243173271308613072795919000792023754644316863092667266478652423901214135277793651721449225026419850617075204420630433682651833424343092447888530384833368701875348195977306197010286688192109609048834726204418323456205102173146758423573629374659058670273660524963713368521985374281239596299662895955307692084497279327209957482733119498218185250146293205366536875613832556915297892539522539547430872254609401383654768796976004586324231604997525427593342633681355021089216894967666624365604178537022628558833989249243774185380215386008053828706819428159350265503225993686603907911942006128722059983516654610422687934748553997079492125428168501301411544341282305994518156538466933776064339841646721975794751908214732176780199160589154730928986373959608783597428501015253799949933434875293416268456224970511828555065536786375179281129752627223720620496450221341904116489248271786817296502284831672736768487527419287058216178185189287866937698371528118515304857932890374925659578684902339514131772307871930055541357737839741146881563337591018052550311604027480179855228790107607729675340959567880776656803232204389972988435071123864272493242333255716323555347326489420714564586741122800193315741616548822528289515855289460773818943477703262186954024926312626499094668699789057726501908796201334998987402718453368776796605520694063984503848174250201074918234749933919290640001194640549603471997315615201861880498586093986151003905459974841384854876124995246283614992256484544150968699333439903990853403361202512796649100653041832424936042930855578311044585612146831826881852717753170754333717489841963779527901002251632627511975627355279397821783518659495970546990331363837689610945496275580006471217023911582063106707215332652837227651580929610114484717384416940561645329968507607366877248686630222564529077131859645650166712845210674603851043190176904882597244839490237531044423841363223326124451592552139589798579030883483511010279539523125893433527531114572482032266492269872026337101688950377215114595902747457038332938765519502650978301451688929508542621272510147014998110345683929169289223862488438783217565932296853720643213415537463821361506475312108403918708976297389982492882197741371666484174185902984548059365627487206684891025427789746263742977868446575633408332320739303649458896348992242372574672103327128267578465557705473461630910017971526857179652156492555206267448572425622096338371259909459982664705426408927836322095082127161158811121809644988340285591299309170816840204561584929809608623247704994008765272771514175367114761173514538168171773624423968567431640013374935254498919592082040789136521966548886320402419886168816335530115578411819880921367690263513143704879334382208637207168767805280608050078920126017842682800848434972779818354437386338637037145538878675377862225020955089313001387377230475156069374112999324889302304838140236049800758420149262824448025920479524793713393367987811763352416618637038906198886540268302697112946799413213897280007848671261586200778077669046939336701086347463656838179300606625979918711724059918052930425723628871751058373906458764504088224108579627331251112261245532898423773613317544325220319448104931085418717228009148234150122714645976495617675840586095215177765808191006685940119123843280526025463368443921449881029833202437105223000554705862706732807625147850693241548202920412744312670483042176927445614627719739121796188406493024074097741418356672139617486978140194247742740052117397014614804556513323114344240091824764658132050946529326357696253575143356696121244784776645437103774253194159147337019001890409411231155697472184859322515418650487077731835145679953342079102337489467559263931488575384107497729495167099877408069051565016105621371557896160513682016370007182417023464876245227183818344090644748383539399854885372768954682249959132550764306340511221863884729458720722750536859014160744838878675540391102534868366558439932541246162919106717710072669795455197605592239121553600535813107712994763190357844583524544326324793723484148193472859156949519142118125864732555524187409211629052926542979968132041840325061126185752980872144068269251633910159103429531163445500175409763879119873070546163389566575971223493809774407082782131441940252243188493727329811348794805090397950765107171809270442758137595502739115773805709513015740828017458770143477931389522983573301950678217165219324552994402713892817319841615810283745622644919564670497704156032881827406885341710567194839241795893925519396414675089721607306216182801496682912051554489507245922803992708752719568013173074969970900323228138351395466798679320310145624939461637980127373695437163771952089038617978073946302267472464719738946419361753279268220536354799061368795608661647589682675262558682002432546161027139200567156160040223525527329963816056706905658726044045676520498918180795582077066378253957868006884898333950647719327608579920905831289209813653482347204433126332714899633238067196073464041381462885774255941575925552159672906034180904443160359590151176165727506653530497253984930973675002996948403995205992664199474690102227633183295061981921785890103482962873016502933614392113329665922741987102727287033341554948274566278164903980210202369082000128406376935677477385819239867019760631559138516902017037036544809129258413459971155147946414038085359671458776474677096327953093558609366472971414893514172995896869104381385428209748571974707263186336271715099518071863865991274415590824031420237730412100298262406842953034585708535296627091521331867791496924867600745749548451635860232995174472205687714207530933925589863917665147761050631383606445714271773788119036652422746335740280967149232281218452737545525576362680304455611982861904657891748116087145154590385828445087049562942805567502659742258532526683448262216066483328333702827109639083856111021353358252205924456838031844180610060606690959699155162546283996585401340962989911717507020944556511760750406892345714253416927407736409308942187524912900928414447500200906269769949619095899178038485769606660123909102412393055318850768590008542500757480587704676821935493769284200548640342414303164317503030618082304816283310197190048774885690943610889008976209790959068687256781880035954835233350084833047289418141942301849325816656214296372803745795714695621474757651702056172501167864474201477419501470474911669730466257308888064853191130336680146287653293684485628714949562129763860426026493767615851486583278535904170479932219559046294489241080389404653094071326216599506246546686862345728569013063720035467902020954987566059280776720812715187073743256139913684391159754249033975976871294037002414092720723585489191371763884353878626393774779909160319053874899786412732822430829976412287725474891149777575038965182483055507511128010705468679630560027004294688179774458249801149972603891463183354424661102928592468497343746938815223799279843785052746753009661668729797954163896008358948423760782941768143467199863560894814763442471005213348770167229106061167752037764904614699895190636089556122699062626992277643963172948837563565788225003154330485719896393512004411194617550459369174818633866372157006095502780635744500304238579713557194210909793988822752905170969425617837353573903754683471154325643394542802229543062341239475526044013722451888523246693691959915850005127904837663196715196720871878221528302390584671239695528173454160212054067037597401021305444086289172363515164559228180673482405602072182349290958305110033079621803143370688675216528366679199798333001432213370972770258880164276613361583351169397089980591986537257075609970044327341361535986858525408242263142555087176278430664453390838030425085360613888237396492301537340846389566074213078081861948501745926316576050672199585967551749631491748495584758343669559921799545488432529512850533446128858878868248897878704800781439214664705114649923420283135172308655856703035331596551956428335132928184740503538264829842296471023103761005232649648593901414947585396702275494180754822147485375095926747475815004000544838072781315884978426554902481444439132611412904561047504262657115783520232186894081314657404931180641794283245994419530765224392191968953935247386144681174587495805467143966334777556123877404405807144167368675837705485107632730642025449816783563321802058196907407387476662558223168391524960293721656049666053875850318049465258531402559175144842221203379937516558900298181064203010677875792070643575644177277317637055585065406172357869887796117931501395950376315954352487301788729902508403981980453071990070277479489856336016497055445581652585861661793288077318414105071600438509562359358857310426267340786057652864763185798439962954962584617491175687795782963240353338393926448462251271657373751057696384977729732648773392250372356064882754319941799606357327724533761653148563578923455279125291894167234742776430535928534811323410991662072364618340670748876108829145711544133713270397065519983499405924021012171371125373550524097281774978069531200007443806432139210044380176013293634711294639845416051541698142833283433793678609439911349229302768169584861101523089027645271057809311539883482998942624793745892785389524175390041569362533203081083918991501521840953347820944743125258018697004569463920066224321101861833202263667882930554321520176634209403758411875613069792673972277238356543083505898367540775373662817177832165302643055223224116145923639298192869388736234167363371980212777108615829855178324582569876874257692096236403757575504459080673822263861800144677351616297134052627220142360877832241257292484633463188167267559493034220731420025289840384975172805473674431136081889818955355544897864987629373612564284748377392512247213916201070577543170671141911662926993237898651733061419633265923102474181712184579041202570618071105607680838374367622476648969799832979114902865283403306736130014871257453496778281560343807852611620431975928671315457167482751282825701557041040562606889851850817798461314493564898417450919065948219815794318927173213573700387385208704340119699120843354621896319343798582242783416464217585416411307173806076145113844068377214458294375310770023518292142412296010406985888039809010483945964514534774080708385445558720781520637279722129143443924631317053275266324215181323389160400794682465603675253026255017452394941687254103824239850818716415932007343057604079461327705417987454874826116844228600519247817287420016535999115775949593593690241711852214911932177560091626396903659617039887596720709335006901405662102148031354776056229696165531449633992461132218436882897509861917317215332376030190510765164417776324172422443483497246784010682195702350280594112837975281513097176891011020515758116503558894463772176858969022999408372087482264373308045392073278910123599525152180256992687988105523661812321717063475929691759000761558407643520058763179935391166540763778216106757224640488147003869821216673522432371730700139829074282933158229872923772782680430493063809676103136282616435703771094773633549289194506372046377357426822976306856674748942524580686438953384257371871730545435201576006778978306756852614882623054140994845623054497197213672764647991610913497956181350917949131781822092646715230294304293187396108359731771567484330271130901942730876368604483871067542291228530762136163303559893714832721724256368407390403505977996093096124159183381564915384806814151178616629067550827151341832867722483559315900096375805658831544524029652464138776354730774012935454818148146761638650524629107583927733749860585922662826546509555501727597915724626919250453295163434521033726170403978163903956309422548284035934660775700584512806920012303038792201007215950727931247687573721470516537397484299572225197352044931938107780966393106135862173815369640708275463927092204197116237689980286944403512524130066028073744251395906499203998127115846254317516747636099135625221227383897236954025095497423510128084988656395146603975250089670314814916971667680554750471835460439524213686841141801723578942781971415563551749177470190745875428279472925314836008381407889718989648731566558901899267021777409156597508532141636410458436668867933709006718704008980694271995026426601967763300348033890423186024742386811229726035571216923940244552264089336534195455098506965526144055168166373781934043267626451742598917930094893025905840365692540387208814796746172992923134805213985994620573871793496099869388722195825652330109228332855138011301070254186878891482939454139449285559548067903315082497728643951080663638039204051624181112286522769999709024461515611464313453787343100317245244466520737920346419329039881311337323113470104349195685026566732560799578818209049029797420857904819401097572268534609340033158538225780504372740355290519686607296200213280587132477285752158546631582165546171376891917423301570917418227954365415914902545601863474816986490821776815835171981747165060095255017738954354532062502012854789478591589170473329017851610874006744078989095631961383529155359567690473314227108579850891240818145237831634463604970389704002035500042094350847018909445715530607607678593703175379906927302857186367161989436886125056316406540953960856795224048755180544720698485541808842901574322659964042224873255135013296337679153836614511256029363493432623836835477905209751604232032622904505232701666914736701465019397281823239968466141886621118063756807224010677056744726718998410913507268053004817087828145214749245851504758661099127051232968344082400532476014180494764605949133706440458036299198567158478946935998172916741640281271885934769850399009330956135671937097509128076270754846986933626861734131062847747602741294786097062839077551902028073081491892630430582973448444291740190522677757097208126025193406147866467032521017661079531413961654993740419237949532476007818950120367726097583496300381584887639140508761708512357951294289168587731059999048521925196102283731301901846956336962222855113819377561223317094517508368641241100903452831401052508823326314963439899296695309586980787162830506230870797344938815604524414650487737073644991728214098178737361949607711804995034141166291401958120307813565626425600693182110381317085009570859742228023579672205239960938342577409958113416176091680281908761131672290665046929010493417929068850491596033830585541544743901056506781033634249661774636095742194347372328640351721471736309351416560297265675143519339292541583982716979382002612565220556774177295409318096339395622597723367901716585332775012960933358432397103920412295161513181098055971680446680916990443997659075080225063740668460519758735008829538909742187664130564382945399168512983215077385748692347163729109476626774381047583489996281033265243605408933162066297326326759424300105596596951039150899333752848061136938379763102551467840569081469784684161481654608768638561044544837299287307828138334981687805504485535579553168037664218202469691841760277820869458591936722021650567626111438509286912779526937256665133589514743005748692512363804238569191761911235674091355856973733847535474251748471846740347860043501563508435787557835988448446512428245758303002007373182360678806026262200394355244657726444032164890885109278946474539068615669823760194880601697701622688738259597347354229333881260694800256900169288826530306800618670118642886121180536563955767622450415994853901283013996191883404825841954632051402655452750223434052958388186729617307882491520527444169650284568048197927107660340187088080331276881446094466841927642446859757340903337062273314943540602397829322503010200839453947678988710593873817872152416305003147622734979827233854645013563426844306938867888144254061412860161751081616521799717171449337273384628768448930952494757639009028343852666718333356474071616501577532176424518096951709766638757136368212578553183594358586264630434658356077931678178606458151652242926756164706250966262078842601411490689504443564031926352968670746993314970163029840257577526372648550836198246580761632305374977748555846165578557085876825127602088855324841829108987391369907906087254964738477194538453437218393181808055054254224051412517482565919556743645018880765345539506891450340641049284063170686775103698489934547826259356318501925053104497849510735578394592879780345300984919109443373652140830617476469996276440922452697047953988174518993342757730813140550557733744644881683523188163209738527827712948916464287799888773720546657762152094360415630961778752929814517113179521977181705687391478118282161119091209691726442983979232977286881718306319761023516648917512836733751701427962202855903961971872544592233088153376836085514631731098582431888711793473260501517222298377723876163389441837332054702005665775373692440913708199479216585607620966215734634233028928018627002937395776830865073960508834559141460798944426959672847908087473974202961192949744825079869696752120408626245756624709173842236717220496624275145563867794943925980533419988437490093882538580806577085219174468013644036059390475450958538900214421730411488329385321169204705789552277723957656676933836585856669691204754067669112011846692563070001655892559650715403742940561433145251106014953503653837564982606478210102834801769861905246241439743707431962330279170679055883429028522994854247228169943092649092162511624165729432190649156171780795927448346639163588188684588696812882136720314456804677113998451399006454882667012058098371037179407967088093736102015759360463291164099914886620254728127086078544452760061391991388466052850059351661044037946295331583452790770836063379483046526298731953561731242499285510650583567899206505387014295547924932007148574602343679053136338763608476903059263071423064108303933464674142894011093924374667463323232809587221935327798792008541480592859372187886501155914269904216768522856496328330662995082551466099328880445721410416193974177718994141636925305017391672751074884092883979048113758868927410928462188950913581249873838167240274148994316796170017466383293197552225825022507261798425027958775754942542246513612187103715622300682586837645845188541847371426056099161598822901942745948118145030617727996963014920561979692456925133222685539890408129614371103692153885449506238019933339052086839130717225734925142588820620368667948779453224217922906062583906219719810346740426436715167817368779555340736185952668802267829167564435845919179703056747364901515571209265134880693381373397489234213560077795450525543986241218310540534469367624461061850863596478722924784947747633493989016817958747625070362600899023129764977467268406045237779724916477133619162495317620238712231387907527343767226635451800563790108388585547095782244449346140043712828884222702522874594893528687634855300749763708171873027219137828331304427381777098853245440029300760528740846666727386222239452428120270450255246792521259696401390831950434001191193520178228646810443022017751754325898902740760988426927837350558035255987169650290460963281118507057826702067713572559209080335687720182514681501863123865254568808042242563017008737527444827247659439440593166053094900487996708064497304282325982174386330498891108918531217504415348702355089930060858317353468946728574865144769820754870071886860233571246403237912450782276256223649732269770427847979934879431245463907236446476119068349923113269479518623807788454899170531111763421636628701529006848423659233918785908538587555582928433717449343489899177991704119583132213338139568600080649904534528506498273582832249655720732421113925266144759706161998094865580832582586050392010009735006525004803077723333528440523185138190776682680967574609296976628679642353046448074997521819788414087496643468984457574588543042180749952449093618720417285669263826991391407793355227707649415439955075096258117299592090401456647626315233259119527196729789669502845733002072633356323719408093439523690728309073751373175478909715667510147050852184073642015082384492408903992226511023149808986303690805498261836958215170853263034212946895530979415994707409459707838479156575054017983690899975095407637683773938493422224874605807143510620949541530640230314832804418602385286235042414120993974773744162005846507607959540423367664860529256836333848070246652544782182517504634226757231222788061967831259201108766766294842679942164943539861647151095886159111504635497207246067450704709892030080476923552623353549856014702659551435848537652359928744281548454449204859757124587138129133552395443327884093456036058670862695547177477855375369841923586005441290773267214006997205148310783646111209169686060092065315305941517119054631123188824989918017885828544441168561812580253578917728815980473691513486780817705369191294806527299797967759437704062416482449918833688730282708269374992518568086344945360225406665821093025991006654593421924130579561867244720846820751298687717602332132265973857460886295724603248194653079582973239707841837658273827522184565744016525990119327340122030466978766397821744391465837363424412893443521477294490280827595845437673797863773040616106945203320810008809288997740890010132794159263124959161307432636326288338145791230116079326034681833186518200940360877128617192764170516073767928668445587039105896941643922699436383659450526330067807307447216947319333408695235749554913535834995390327350645082339422793335769293675038030431024585864873569044965869500843837661440618534036165604733545693230757563037804247451084426988915293076077529143619939806648722208063223221452055965985297347721172068597911213479921820361571068998108794110997240356016719196707067716808538225697742282458470376795191829040713533285456366346609819426632174426418273419748825532204700455103454452210454269390151596003440494412627985248755735596838467437639640969519476461109484915965434871914155695619549235035147105310117038997667348710537939292961388618668928421692195992910677399585228073592154184266749541658964891783018076200619857245097237181492552346283291663684923437573658293051931345073042493248271167659617602410139317280206499626725326964104152531177333762609511881025471971112711131116639577898842010699547120915022238538189253526792114718688252706735381971031717002531473000144306062153124293142622387978526177368739467133535532708799854038163815405457861437146533190094011492045168228703643291604684924345794261536506269952437654856937530231954950903003229780741094617194052321802778103976678058018081663143284637015107251969841789076733158817755262934826609128969635985148036151355862019780881730814160471240000660538834261079420270264090565811593126659541780589779806733592969463779618940614072469822679041312137435409006008428184622548276257319530728552779552786032992827848612980714649062735722602376526017502363167481349372349980413998603113455450286804428354784115849705496865674710964097409775883493978044769791779135030564400302634074478392812386068847178347144167419946477750924511736953973423647662942509813956537955027996502514413400583057951427378525919974311624719835075012357831999450125504256897187814857604737272040299912922405283076104422547287678261338969573553169893937950042327586252277259711897809708828680156793602978546407509291131648822177460349526272531563643533460650806124582022631497963341333479019635698561540641919408567189924806932487588703731500464723181026715909177440167319367661052689735007584698583890634787999355188416079382707626805641913936710560704945019575841376835896095184239125897405219251425478213382912921319386561544431435106576139182619907662789319686880884493765286963439589264826509152281417947324668662807061463490541026825705034945130277439683712083572969060523443739704371979195187474361891468122935499656337104155512483355789144566008879279770182900255382864119404892079932195207736165122929535311523601390366773532498906984800215759635030844292471528864429434338362880505124721404387002130568991286589963389864553585722041978555348139448529910284899195321918216553857281866190211726705492023229485494206197894740528199571211324745056679519959015282644105691358610751252165573309073317604481920274043097376501937400406009608290370251569955543808070486951739111255468409950981269445020238049066837011015696308167375508148013475307839896937845961457418899608151133666148729081097693311275894344294023697245265483634714335449030576947536473505452388098273950096561917733759053289278183741831487243762568403995162724641507339784011630347858877355473744161104231398436215378802433518395878381177444192660103480951112922057736860896771799747532029703483566227926199094637329699276723954781012045895574554120422011312513272044936144415349067728941166719383655980987698462616521523963118158763035883469974177249234890197450011600929120197384783552353526626131645356590574622817688412325445382336070705862122464345949678909669773407637032637266677369743469999602349226362396534517101783353468970585427922049798520156332350684791131059913980560672133927733435889787147478767449408426197503910206578580496025905110099579367088166413480165715662415186709129144479599734884899616459879872511934723868002173086366208887300060147437088402065360484608734998828025934152465524678609879888245550088508138604210642008254199114064377606816384112953945485439400202976849173352448892392880590888158944346506816677632147523536575353415627971463612456503431597848033420972730568122762176873293448044039992714357113070422757713698287323050556989643046929958834856662837221130893483900153470279825222933880185505173728964330637999674138099016416827868779831205254813846598932161331812163275533226134361435403386122763069271551496781108181296281228402777589009724607152158207298807507427515570296212872419210465639551977192346684869883522149896469728939452043700053927250305921260604867149572704399278254712111896157814147645356852207008129975556714910388399987406870276037313827979657347487336241184417154921137755016851887673965962714347723585448227235981681478247681019622510052710382536534831613265528701514762565356568407473460032323135097014849638239441722001162552348112443957969936744480400401014748387851402114120265598676611314028226652706441460986514174680137195053754660095782496241113960873446629874962701677967482455162648701639688780777463512093738212955223619063901437410235220431783687021828600289573027388791473497323075498925134158521321057823590856272942245675657361673669991371794885556950228517520257957263846745878503731379482481117750722662195548927049141021213035050755053723489705146856731791067921220399217146087169870926268716294774095594421159247736932807764660126561134649090767124902386552697115974472703606248008675564961190724801325581268801482195765467959204545794272317347085127843559844814672916977280491639601549826750602036546869246729521292854366285657806127579153547968025204983230957437819349545472111017411902714144573814506177664646013468845623329368453228728175893035840893230848646788570253124621334115318685808368244350493423609137851833495697656461252744396587259044363305422182093981588597413625640527269016713355918903957320653346623414043079102130154618915473118762832765978690562368994846185033194765618477748240853575242219301117527110098800944902358799902132842859603112125468989368351379498872339012464275542286802718049165060957259683728308297979562938184823269476066690121910993034082750025750367590321559031028221213230364046306912245975763786939099293126374124852644122089280925493953779189117464710022754087293797564185383578867238721591310065836098587796919125716500504231740623413067613091605181243933381934283879008069963391167154376820257588894825054326189752401766912930377021741472487769779345064141057486039182758690626965971322072791870607797516926636272227845760428394600521540767181699871332771396726474500646972273504916532455434576743933840109810329446381776753482591043688672570568759998955457253101162526731774091083823882311767224469332658658067585512619099414078963175549835437537867872734536317596323054121285369286813320547831822181771838698369736699250196091158080484157374738595825098353266723475889287110678311233064716111433231442753455678944180044353091909225013573434192618131069814456749259237188760902635304447404700861571504634531031149005426432356803214489317977246854815723839977210717182986808594628279696936601082890425044721268116832973921359524040001403291318699251437537952433120313018328216535930483516151667075148100739787033763134660146474798628854327219175486388716430827202785559702548891786522351634453633248153742791337108483935808909968678320738285888687591886287953955192098244174855857810969588512908838165793775356109683898539740616295732630229212420924261944375377239229838624984629262047882139852725896584853125851848019697271633410543300746387526409855162564033529233654854795377896024085587523231703455155091483168880503760418249376560391724515791434942067135093097021244775373669868763913287363433573892436358385375040357215494774885269109734757983215089550931670165751105651548234292806294547398204776694220590894540375478437251948290035406782219046578221511927756213792774853654819953531474509282027109088685982213729455185274151414884037602142489829226768271444490442740569975651696356884225301819617448778037236658105020635652656747281925110611362142442136541507644031383814588725866232655705171286315144367418026514364398951872906901600324630676987700550095272499012761413107867188632172625487183606997972238911521134635568153182565921109407022271042527615452871857769159368674226059603009787475726039486615625424374938383334024884192703777473558668261300252353324787607899648793638355902462272914578014797844493846166233338493394960977963108035874643930219391672502794878034113370549042497851077428149046133519759892565458116131152714413372306769361629501453130356922546687167415476319495118159341519376170108324779460464951524220881779373867526190347703574074255014333497312540599052481013045653651899512894139242501214737981583809760187669094356486834262569657131054940849147201884228715401221940251861778616926238447842149323898501225169067924545414141782248850123976266578618283097134640571715497361052513070500601042706018831427961995032138142674720235678364713064019362513191376861412029451852792574015839359543136146253590638312251728520044232327354475244069354977897188622492985176595426505022736612801878736917059321469153168661329149597907808179751918938444315705882336910252952128564890711854315381584855850916100087847894252713954196038257290908939507709879135150288068044401105386442528556225892697571635151962437026115176005799906807484730724822230220756661971838030835089397311973686002018523453373414548353639402869801252961802708618777986260166534770218163551019927335620970991850716578713702609857502121001865116541009999578852172272423637815336819276280567951340923404124640365231917314204281456087792256718632850931542338669459482869126148815285315623856791110593706481734515019881000658219272172419172396320985807261639298560671900956705701027381098913196537460521586195738111855501491927944861480476362920629242414469931600312410423563585951097335170439458126091882759259886257031038992142322513861588723025855520300073870589701939061228511797266043280300240440717565404759985148856085258730595364718886767237246698662064587052176104616848781840424146952521766330329814773084789960154074106107159427580316656604215196315589217648113777333237464259767305871594570603008448418285120479894098849895021082656934818646203700025167006023275700306709647293690790633339805684620302334985143738204857015185891043867870938567812553133060468572486554113477974007141559917139658866626744245469567436616162595393222232915514333138310014866255760676433588640190092164733064173328803392259319642835069144036414482194523842033013213563306379789375600027859092014985628216290789756972744537167764860158624622547825127086126531140549813674516059797064796450574670445485722410704113395050137291656064831064887812546278690893338689078505042963852057473282145746800912579961521433157945011822669737929352862656400614490697161710882118255324038087560684099728708681179368381271090213220368976588063387920393816920198730683927556646349430719541562718091365852017046127975457270689392433101686963956287555685550597487579447591645458874727811895691238685632264259273179692657122405174790292269880609127502455730748282501555183134077883469336227830085797274451803646056547977960052561277258628622127623154537736196999078602565717885529251266290427503540111375576566506504886938180088673549720318351635294733562309407850104029906601938215618290488125356064189939361629572393898518740873806570937487253529659430757401982508350245217674594988499271185235741299557889790797018809287954161475758887142839446691933372354782724423175553421982705056131143433881171977599158246269210405465898694229550456124283269429716136432078566468390130849097973655577678612125767683641865536515355697429692172476452112954871852339694062079508647110335021264819797908525043191260945171017452261079617141006728274288358684944598436615822845977131809594558672447059966464131914244042505237284015077120332773450608636811669614678338571342368445164385763263924784220303903566135805681131083140850090739775522088231680808518432015521650472242710898459474861831723221379377853919034946379657214511780014322481487631192409358811912318859421427749724898017302352458764662851187808511246862762323963083014717970312195635174146880152830627321249978914164706114551853588420483209826552821947010761398058678175983968933908195519831849271892882237166475558659548764057053952937716132980460158268962291829115744408120277717229508366233187426662387207033081671675054436652945982286582069680440319559050070796333082702645788429557570048023527512643538704726007087680749080975409479274280403007966332452968022532084724859342607368613369993311215763367100208980158283909466136456395115158204199152491159836202119984763239527247001035243765318907103378307448415848073488432487689053562504815753792880196066112764128044429544953368752030689386699997481995082907737334267549425538691156194355947960008358349864273651654393414014544076670291697486522750222886177917409568355555482317866341469522579034578534124670710148242951419737636666068792762167105825743234390709743005401672572537354570973242837137149689825744930205037646465483776239452989443787188968490977974951423537490303866710791983089941209195927336882516822526208494742302715210610524959359122150884074987693230191081635682137339742202899648461047930042858985596973148358178508954506102969728106441356930617229088518068076699840957337048035700261839052697977105561746993197381767211651806204249092212393128934071385380042201696153943678149680159627247336906937601911560985762313480159547738653120508690776317278590818118786257411643899890842213188337743245743135069239498214743417888827016760553004327180899548527449040772084869909059467495496787364739899487624451382208496526855404691563941822603552181841527194322975224758400353210025331378121156618509977727617979217800174446342661923666654468069828152274107648896149400730422334812518004112595484030992657524783144381365446649734876406927443339333399214907423582095775636610582898712427860023732870138129082470287339355196289231143838964410112526417762737082296889975812194862331398219512350108303514134747060257594663597956734282621488385227001897049070589707871106941893811438293307662984780662331020834574409959950518967389084999266959437142613871052893803885388402830363104705695910060587717612015997711240132912656021765695743989028582142720468723752440349102240531483867653740563337689055268533043227321996701060901213833982839056477529334381972084359976417722223648541819207306089460022603564475006470251290655477406359438514392011311481762149834359592284102967545581690464341760095923824293138985729064327310096270169090014505894396302668870736477282318282726049455071864593438243357637249498709636370652022888682562841489798307970107908169659310829042230220189315936094097100945094008048691504760090145019664577307415809668758021470341476085782711890502223384260647163974300399062837786048560251726218401199256682735670758261621977346330774949559735999984930110055951613116437387583706664312804736537763407338555926859593565339847803639295098490190149456822939136502700103739365797001962250569019226969072409082873185352833861964124479793472516951719988451362408233044848487802388444880633065969562506205510766181220784237600690817179913824942382543451901662781546767562501348624882087182061093062310256946113702342648406657286306315488256834259106171110655575319259749628707120772899645170946220944810231978813408874228206760341917922763067549138085936141799043390033090653950776807733122857937323495395982272924320626113612419218682499208282946869880510892692837112947458453076377878215786686444060372500272793033254469877143521716160779424732550652974201112756843355485275286386692996315039185949147516206991810877799108575964654342957418392640279078865385770466581038758044904093997385008657859402241117755576146095136463937102393354937236223906732336037578187272429904943639983272804848390067681040979806272266395409892086601517679271074472631358186277526264132604554441040756296645636452099226422995164213388539667364534874731724101394687548038583697159217769707296036803143682100710080793802761244641236614638011980448772562372395704108765525246736423981756628032823398483856807356701090349505842373382126025502768716730158860730595424794270739903975107630783595974729252639506683587582926328774495286644247861708113458078105014117818955291686484433378875508533234727573868568254353325328800514882222213474609310715316976286838987256522779038062168118922704462730919033874785366729143627087200550786402835232799602076162591678862743440212746525681944392538954679911533913359129664197057541497752306903042683902673638971065926870373871319432247927043618643142348772190383045562552741888811174055295201911553688674820709375701771664661382543266106358781379011742400914591854019243752891690701560523936172987361812879773589224802530475486556061178926786363766458754103104857615465100557027188836178394025311008275989358387877599401420523880978723164676204213608941727033548054989077078820372460135880530442943615670079846991751723557456161717314410515819940097786440949007981918199425970524080486907370833400915875338832985459817009216848172209328865038552176842399716141998341045529815563391637030979486001847817094053756013328764226436114465023737963070060921784114098467127076141474734739065013400307541740039319723892395133448049645202154814235206968091987956666865272716259658779665872557607200834786212948473845253848722037892179022783821627616252841240158419332046753658648293488271749041675325315875589548279911037209952779345224690686286505157959463658256241712046101450400970432986920374059309869746075475620959508055767272636924803598194332851701937033262612908050878590393870776779084108272164208469487771959626002470457995655121967472693751564210691952117741939121453378827647439188080959709670212824058844849211039920126062398997112597738842662975702306580459207465268486448404730131779241925939499264572177660407449378463971695456795857841004298610404641737084340536240014426301767932189881920071200666189963028540460313796312591724326892354109347201892973829643394972763818671879863803417906403950672727131777736170811664021677856594625759738220480673213642734753923745357567359470793652988709324222699043056584054729962549788290227920585170936811888875831103876049796320314517968148251565189952323555488009143804875192917193231523481533577411548935602819390320308849347426078841875879355944368970996533990050969914384230098269195491403764236502049020229041181690752826456065962565070352346503349027724411942301743830075534834080437859698856662172599004458080412895360902853076538638595500751391972237446542910479241788183303727951184727252134184877790344469726109871028294815635862167501841207549553864607398669463310797687420575663233338781325982078461206475033522132427786938831922183857206136229776093965953443643275224952629009962657275041728989037076826543608641705112296799378496392268281462997161928755626368387583505499393972029970228613430589170476115831722153305280276415175509045953643274811018962420951907174523437616557161560167169349209146828474238336988161063177174489273622896895595198505686135238340724743216673425401038344188327926155774426749593156151965142933237306289526755883610002840180770403180727432295960183027211636781134917456796735217386639680576859172683248297999071732638276639362398646902389738553900403080409308467352801653206411799188835201793456396867129388852385932762711130154196831734531471718929102541070771237525259308957240213290219507496314541624554474602438146176903125662598350578344225654808345757331485029317960896774781425866808337666984114705440620561900777462883501751019844158197098038170116105817065389830432660416163727046237299553541004938173229197034892992728955512373937911814632696832809767899627940680204287216127114298519758207145865647791844798689284841397695945619347357388867963922878475917023348522302168840202783177972398096275647124916127606406919706272654312394184335374618485619783589578466495308462798557898047101874199915782435679884124279419986718091694645080099920091637396218651039447390798611591141561214254764623529683594698671022320377871206653670829001562391029254271000206623165781327045272196212764197768482185982136235141541446093300751637557077631432594851509067886442054310652570348267256089295422818232144050083336681099939549863664865528436355407538486024972952003102790530322148084011273806152510654937215709031567293890074681879350902933874028395388096686332135219591303880032544197347925544805885314997636627263200536242289161719663667742217085815270640249593527842588189790690567621085172837581918592837999259313062785463196728904241010298657683911748037518467540563985570879395087285851902256913070135052688456416824788035091149174215823857483957948424638672340878156352806935629960674579151894551588729562478568835355960474845288429150595467942024446087748235310348271829511857452288140667182775118902121891445744206762218118908233585226429274375918277180100674688910750138946987687110657368390462652484863042473801777885868675297409878288758951694079192942731883989645997532272748081572727145066910281307004086122684786152219455956925508581626191895819085962875831832142140740795459101274279915745921173145800977629707358172186143861104961363865564879455571539669922805728524320144849066333559746231259271546063535329845112467830246198392797395786982138090970181417877924486702123261646689368063797644674560675617258248139521838775773527817861456954815776245653525293730872810376267106786487704755142557542747716809407395592022605326138222936799020057287988635589937797933783866770581639753884373279685849380204470417187496172613753262911244783284849391044545950660060960673339436958749786958345378206585581732421170471539396711813624737973717925908429369952295425483057108706008779758486760561285649173786481043342392550746275438749433802737775516231722684099918002742299574360836481614778444674896994967575362188197137741928753270799348050728570931478793554041730935993200688014680695465492215328402808233466020181292708022006148458827123877282524733425178881253287478805770762899734984565408900753933875912024496487327107872065979912876985111202812504742342656746077941409718254480477556910911373301460179726180983219451451696444755751443130364836882303668108274121583504096284270734281933973064881906573802362409004647096217972340831186032654122522591917609616856856694755225681658990918779402268770464046156361769840427788335706133123016060526987900993622283792696840231208397026849090374219710132511292654309602586508557758293432140262714911084288073607280874540324000297688159666637657070775284258608560788066826922596628466315522338508209102520321058476164215340538988708462091405883383085974191687212260606132402867869199481570825058077692344086297716485328753447035658249883140039732780095575407590489456925211053389606105692359318265759862904948684163798261354183351130426319751491158446339578488702951594628909804061307512582954515279078632728237869135807724982201589805212733278780887287358654198768931737475555857678622309951967289788843162270136232379813926859704075802156475961090409494245066045701637403517404106412504322316790123478072570150197635732528565477311418665762154791466733039769055944812700935827144488734112454395766236753410759546321606407134489920279622109199415992909619407856239812762711317367563397436529387865681206766761072848066597059693855200108251711473247719195182260330981225459638695468214223108538691280261859821000697927613368134919942388145898068202263075566713787188357168631509695384910795803228291157860407909869679576834815211508208760997433000682098839845591797568572751022596700427721711327021356431038277155087856983520288816303665950427439162649801506487045880588754234043964296383251774420438110870727896649589222752142911652879037413827433056557645962552863239047060964146255486234614016596080038041985864896368279856795706563868004512154673937127892643925335552832864831705200965475751038453580997015355443265838385745528104997889163080767570133810779436427361830827857080690105331393843286950261962211806905501170774013883687956530193141647941912830241530755512589934888915362971866326194016278034426366913011017212282090802996600455726785715672838274516090558084877355797669407941910253800505815503522848412834023793940416392504234249433461764896597956476822445331926815407654733114960031342077754500801413458796973855573568088426968076440398431332052145741538029087068154373702014250744398242467582785807304594245647924460559445213853290210868490076240202836176708575353155628190482787518985326821979180627348148532113130175284653766258884192205657503643143684132628934095003891276028704690078998587100064552756919347308960785341122595190631601861979059983185677248206009633688512881024209707602515521874873204506947942705378659463426986796849274375630716927533684673801995766286544875396852018471100395794749413453485635790364023021442542478069567611096309638174570045144911918093041574774288033878760946866340672600229854649614420086099500725906040694560811108439337831348453979946538477544144117033593342000500311433626500403335894310304165313178944401143595247305345303655548646410670743973639815432291289213179434242216501261520726530204580341486330902692592144156241328871883849082405735604331779069657099417136648454083005418751341513745774266798443697718355847667623568049291212795931489459586413962587174213394680412509348140230746377529043402880697691233144737127129259729277628307227691120840829961750220521014377139021131999985863089343209608036787838660611000642927010612182766633720011970798968850464423794599855615959608662230685582089294984681343546422821447059345625238031223078750091319027472060635016307500216152749259457962065671108739238196147126167252836971762237352560136103058112562918680231318347558678378515052061412706840680582972605633803279632645674216544764321277970276287590288516523215950757505785546421580936974995983521958009113500849650892607369606430153479727300939837538088267135391592243503723190069162931683642480962975483225058403544534853837317067223850845893722155437169854006878212456462683771038850165382747582522383786129361435818137994734094656598980532922189601311754268545952680223351478341188489985365485333429685023043789859903182854451440816625098457639517392742999747267316998415904464313686351494253024247551656683989417889232410352033869119871867891867677267279559938196607168780182920210456553016045207189812462731625640324378315773892264757457547489255590170299178099815294119974228502626025289064812481227240377197802257858935970821819522793541101285070873911428747879906431391049733657180796044764246881249438995214143699172032043125123241989122922828199542380906886522999866215999881330468997138192379314702762410875756623519968371307245073188927776704732601894365589073187655290652227136799640461153069325662895975148051704274710063008713537969671173448067316452555650661167078246983132538152563567867088834530109830984717819818774160670703307149620436547972043640577438665025974295610677460140884479388828813662515016706023601632789611211639046012745042964699763103324373835659807124745337674234930833048848773254980476659239559251823153981835724038983685757012732489047774996216493435027568326401689498210523488743936763946419515023569923406870074654945700516846255497231096598411885857441806866614879551228817435598646718328921104053861364056837745696675614306846256547800815299304296480649818018271158739222563458797082740456393056367992120892689069332095592996747582617128257312823456619416760150255891757084417721183414079806697529318606612656557753180970708348648916953362435208564407846803529440489636340832221139812933849724293548736933157255712141433854886815455081236929387865555520276780613664099505865714993204987544512485845771368739470311598091223477957622927856083748195523239429059508218697806324338245497665207611865784428628568488587424011199741691715817651472833821167739837181635987826648904631292143443396159459179049970907509199659009882685241753841416767925463005607565352660281997353346753199950571865780532095841915693135232124330769384415360143169754622612385657798767530776880302767627548707326447460306530296527527008807833964450479288360107672046908805140610313982453308087750033653356884738990399434034736728343055942521771612629573344519379089246248927808474732520049097621012576925959927608836017409492850377317921869975397623381082415783133386375698370116100599116951667307056069582401524012662912443737166079102322382178930813599285943542690108142859056008712992024027835117155063656324884711817798514304186361698169401993142769530819316956675904576611444437312687464154841331913500091620581861843748961298129560776381882018200869893685155917678676560999961557292412735428871328484535473852572663800037244201291477273815161675670961072325308000854169546130220222156226786814100151846356217630947597068360442248003250016079157879815420010042592002683869184417056171473965242102333033342351104414454466159946114309380823959613401716971399794759850161874602165739727198668662758384724368948294519470148532297629261917708727796835273415974350190615322207922958217713401478081234276041182057061635734689306953942318221039096027880950976615638654824045563657434077793616920991726271137227035462609330977967965008300357400833476978377715395760967670761576746261563890579807044461294563699298353424123932041085039473153814120181734430052991550120879733298061257055474821953992999315439274002430696021019481358651646312905427547660619977347471305687117182820696572389414082195566709191709914508339653719759036147470667540816595782815454024651236698686841435749023809339253472350362466518068461275429678993345184292628073395793625173548715446493988757896629699269862378034806319428033145921598957747217750596065519264067481595630211832069026761037028201584329221468038285957081224091486626953126920362498758465064818218830245466866786293420373891689038861446263049957511201154422249349839944300672222654977684661145543342919716526593079023701738615837139653051546056046671043882240493493677502318573175773700381447780839505575058406604396801929360775884117879475177140404753260354964549871625248039188729987518277350771795423666900836083211394985521288411223601458555149757982343226672063018378010820362235031563845714139000966065809728596795313892476424358172585300085317466954534236600453371560167649884269323772804022223453049981877604128779916652499994258116159162256325001790640263296732381927065399235223341667974683331664613314026632782995927110117889188972771594511236256805061460099375239776755367417984355488657376234456259588825965589229515851881985496284872240475578739730127418010969952526523600123240606814084911091983079298677620767685717918584959320792979967123951896356005515213687422798622353050729647133816328831493171664483697834268834999141144046286801936375106855357042168550630609955879524334177915963616609414848877839773523720099694033612142376955975440571130872815249031888104254452122113537434232995770399140613619151114420032247044437885186123592342997567066301486675456436972800922691150992884901548719238876574369332763740227902982504504830712127061137228809133382386397862480684963050401379364930144967413333315876068725005536878128135786460539513369665673151628588905753726756812546656339789708541340892703214721031308882852808071563152837875932242650523390769887938041786094810375600131750342424113858207107178049837354970861807068092810379319789613710192744053864124590966480599144258731876591736707400726692304879465233567019684800439455648326206239197534732178079877801154929270976673989141641246839730748298427826825470489164175339455492349047691239346867696805116136637532783621117801809410619143092529247599115146093614564704509471120917933605573691896312357922448422246040544082946106588324387886907218112717706359642959626516087184877571044066755831651545358476217870581664816658890429868672824596318540548111314223162909079129551234353257804138002963873437091903283551243681471799184797727216639391455769193574676697699053837738693944198300984928833538590637373957712011420707636806616741281656832712019812235251100837049871757655572802019782477354133073067925191577881705010217625057184679033739156908625920404567769456345035618129035539561867972367253643431819392199464582729032054241386994645951352244843590475206266598401149231504646743060058441672414101710372014048280669402834043732142773764577537110271321668597130221729833482629151271235125016895693904910601772783452541687315872352844480767631013251450219304214372116344191336279644509913973658537395025242048709148850113635429307054021269693091957326662545697993222055006112935657875779149262804980831764794059336110926069688247833407174020182978589885694615047844100473528952674071833814250149330971534460053566585382553500421009508171247834009216036894981355341368039534997302734252910718346158127565478257472213361633391542924033072815383859510576367229319731068103687584088541145699845883746704036414955102040540156845787733841230283867016397582054734323057066691245442293646423224823638698687072002571770089509276499204218273227670889328769765788304064537255491380658352888187381559300573241415574861647521345058243587298734618440817095200655990145306892420630094959807978647920659050700713814961945856792499629997804449070105041986637480659198008442028212395843268349330848552561986359758668357393089109782499652218520915709091410448414922468791692093090606949835210310295845163736612815586789239399170917931069472419214310320628576526592887863284947738643463165890406515761950635586305098486139421505199328529539181989636719576234533124261644519940535329146770976872087437888375419576875358598997010379143221666505701605003266189913535100786409332377187387705076491747524584679019655732955277349150906243804158037500158278733113134221288250202148797955497425697552151842606930498492239594806618253478684016920180361637029379190679167825736768440113519334020090063069562662048572462186427916684634848605931849756943232299530452061520030890133943672841094817252914143035942699429558477257925123787815173400990526576279059886271478983565518979959165114746617047394644920463389035350190352935778121396409081613844775852485233746736174655268486436920098968873584575617533778028301350903739928412321222429355874897796057766168897633071111403018772175577945772543368220654903752982360355041107673446270137044398309302077838234088799184412224822296499996461933542947930407773627907419566223459048522869545892011933883312840827796398540133551631434197816530837039091970811693576191449060197732172873492434174144537246885645618727880573183683516789128159616465214054143289624679038163349782745179186252324295905822176619707414441383684161578780575932987292018742459641124850275116074085742177135493556578461623918198022434704774538491397927538499229890544955094720845120781820122655459821155251662577314710846304218920448417546479245280666170923895877386734802759866251127988995276702557533088534520241811019860898407745926381601771486642982802849980984780395736712785587340790814455713603287919717309735681265678364274116771540788146033114544077990033180156719388836074141958999276145601985726543905713810951760177483413392580512408886420329764055022254187589927773124674626352132231865112471606898688818859374818950185048428523637552256458027247014567458497992789523429640619991834682988257285043700458665412590890282303119840881741888033007758455100850863296183253876351642919831568384259168395221514818605736009836919552253657866161548672780857475972827806485261718465438182742631954378592394437171948355487019713314160533874965969155469043853199212488577890190522075285720556794232171286181790605952785930560298203163175448905431334401604938337264968610507680135405249612254626798094289371264794371202919448343357112491081810101266198247145032584694757426571478966740100586133213104694961726439993636266521482819752586582627870258415678431592974249771339705701915001620782983135884488250160469713973103971421067105095879640307873886935010800496508364577933466829124688334059159746817944578590098901417038637574247050449147236974139659141144438807998277819742864091713433596476763990724273500194633140099983173191813207670342185402885895095723475441219331309125225605908052202234256266641736405572488198681574535182389629732036410891817757729823209334938374068679648387063098572915760497524910218326542422653738101559077672880990335546674983866364988676675411251815917406471938409433308447282110192712524750238168411523573781882449244585811248876228462439728846620446108931441140735311622886372070564173018092948744557842025615906962533555469048013902461072491607981651013491142342600191776563551394159497557669970404085363123145132209201848499356286093291607731044532830230874869392618090307089603747219848995570433854864347407152855313723629045556523793598743475817827174920174186505410433114715193313527862315521096213015184669368210777025741695549434985660773369606314843129839941828889975808152329072946131932100595346631238834312345045423079324815371027302660639555365709288888547517266017786435470402148963818088626599188592845670013910263396872328779705252406500433020950285058500704471245078737902803555488963498744358438095934031112705259295052099564991126320007581700254337847217680498948587814590591436624621030733503647921151771937978549704494088938938906050614377729693549694751564866582924175882415195753152226719275369823622178784297409640954916572567803592102112901346322608115359860994814242490041114790316084983257417116136760506115004739593522564565408379319217604063987022623093222180831447257741589573323865269969565420044151027595865727228522040661109810223667078389458618316491262191410489339854834106678424356080191321157376230071130569558492188921173216654006342601256928331337911697216205188294983230829826724649137284408962735028978836589504707978058841691577238743406044477151982006184644783083749515445222916367829423906655322233734394143272787235482147195175451587992235072781411219435014748026445792045787869317057817307882362427245759816753758781401348395358265090716331068196623609108109990427144185376433677981271448071436176738390375512390472760371143688748631161623075446797952155251542099578246217524641973629230476342213056949819043091329862901134292008602564564958977353105975841594892653652031222741094524258783707505612722839679432477541224909434073249990591205101523025578478436607457617718255235657408029843867652628926657717319189914166335389209500395620304700476044061623570130561287983905811017850658824601867743795721406978917107834115923023214694961439207521755564758329782093334385393849351806063295272030167680745874339390458025145958339949955811778689237471484044184739952178509879015446584300956359048646677878594757684844921435234271140895847019994975301162762826833661866624608562748540281174274697984853592254335896027866142858610588363641091625672663736817692349926476369254809343138965114124603684348919862960529984264853737599080044697146020734451053969393816238098820316869934050526199986979334439999538631035541629332941063507395634999987009821071407742506245309595520336092252762012109228796834593767166049406127682726621340290662504660973502424851252996051447622863312481115147060805251032904587424200257983126847098313122649229239530695396934558925780741523168793980686407777196227695021721599975682682420215527430252208262128619675981844845777959371484261439181877488474349305696934637635989170212533012153257862974907845929008364091836143120385948526413208346235037190928958995630588525492556149419315600702625080443682563826140961048931303659251092752354491966913491697058209594538029857709560567272115965155076162176294456457705909684062166912146862162636493263412212554474771682603782111534176604308018961788837024227171683558886383436824626564779970055496216924668673536724968411228108706367561144080258740303355144607467579881833439226010978883677645014357907981294879304563803636540106806476857668736485375973496319036919866200997822481290520761128951947347288491809782958386632418402740862399344525302353642588675452745494772645328884472181320499863530918380110518745079774784852425761935737761746088814216927865632217204439183814147351329595295712691496291158167172557743472971348867577186793192399302272370341950654940123976262993950667863894095471251293541063561642974056133943396283949245742685432038562359402290336842374843471494996126216424146075300117402939964567421137599673899922088568184443336068398717312049914755955572674719974419371652987794369044267746985334999901030191668532258166869438887783073305562413968719659838626574377980851758169320417283567626201579230044693622542797609025257410904185938336462891162460050235179418454763352761895894207511206387463681104579698310419727978578096717849732302393480315737813054679567489032706161661528314472223757900580752723941957957012183239279564551801997179587627492245881902304369554437241488162775223630912308000309126888168748139739923763375124284479334067292679628114890301747927032619923083542752264953549023104486262341596961711464605608695675612144520474772021342525800477761214017972605770143138871701671782495560165828736015124993155516616271062744003666946339551789335583265008419698180256292077714600186239286087478238573412753909430303203083818500877112433312516531210976067374450880193897547970330750631981714345867819886614825320038488053289565844069414337537938090526138540765564638725378910520689075065098505149088562134787813584830996295661483922326108036652872323617085457064762309108930992008545744615684772719326963096111752466875073246970876604472965242912275948968404643638922413601749994560296646155877653915890786348774925867093621620539320931302296079496906831854522850571262234894924204255379206856314745552044893993213337108505457243467068568230458775144514137552858116767356773821344527719214340217848947724464247707492879337501221200289570560957355920230862411434525983293537157452223301415227677758218091338206460274783313903076370960070005394875180612484891047304604697866812738685077416728129145326966729848074864262368342798433205228934746936863264606775797113777278758919152260408336226051153339505412322219118621825941095804285318880739190765889849403336884016178687448308472512931886147678288084318006654545777937707279938366228132337408798896106839851707566008768669636090929586128602420547216301464228978404472676662620279381565143227487933337606227030504645206976030677178739517819856981795409810146028199282486250490992302987363862973431563501579881605842354298402654607175737601478234605566468574905446876212085054556152908500194971087156934356453571387191900682395572862217551715313299460965613513778488290125198532497824208741389202637662560173920126745162614586820059673877476253763690765132064893017520408274975607807216493035375518390612786019262499215349801844833946048297676606247038218391469875586473218849658585654899768105436720974910669304884781490129501885632465405321582474011484757944448776332306823586090769441171975831682596462325795179301201063642756491576726306023519377295043896029990252636922458423577154775391338359034244275896198029205056157631712138788256753261895142605553746797856325383403498548932221462151215422767316931924032469777677423409114110209105512242394424760138132910590563259814768031927671519414620226901631288748973792467824710235570535878176695205398484805879754713956563548798994986808132522357609053273103850579498849105279156432931633944103695931561463181601703249510908231242445709102817839643414220540121954637538124771436487090825298351435003387306996359205587648006630760574266192635351854107933937769762899957371782349709323188697687521064570830553073879331095936837247315060195554841540465525211389104241177787487840000876938499007720519096192921982531063176249540603564947803823386089529737570596800541567943558341075820800550055630636394609867266234623671745837333230140430799112114110468651061726592704458294288297274499242959310978618815816172531585815490017450327843927044802627459363637913962882240212197931794864742864517492283540371732485863340053545380578491291131462635000671559014090545538342491070357315549913664863384631647053786763676395407605215684038592043279510222672164751304010139465892815425217666644667527897701609156804756955399104686475492165907517053760621600043506140034149658635227935915155585569844729059614274739011323501237022742307565418086150655018952421212465453209601356395896475955780110769471216069777981290121908395675615389941443881040454165034894505045445771294362086606716999903281312170259384639287751580444405435258397238950609169634607276430337134996229394195281958012058745227694465993870328732074775054714512988452824867217176639564716660989168695185723182603626815700749463612169105137420362135490500993718970816880123793397845932234395798125964344679124764506237352328841795350790759719967872755242152952492290083009206575630517306026380028045732432101612009905887002526375925145100806478300483748369320328375102957804607203834001098771343794258861676723912688932808544206815911245013111866699025844659467682582490832409624030819961390724408735315934906229148636963631793498013062948860131965697877742711079797962621921242016151104241208173956934730829677670922916651169495775005361320388527352673220631785706931990285986018942378005386324234016477238286325024943767459339659965357477089673469951989267187598164021253792252623622974572558436264922004240725077480883202945430742743727804959222441149309337838038734967365767451429869553213854727146809282959333287842928753479504512183932863573692830712203672832851966963554307631333056096470625362683399367143494942727697211377336255666288876857443274684765145600294815958180846256880013359468821978641924733684847502840200208211975986978013153103541104906638003293303450203291309528284198471221771887828106757151442088315007059137524330365741496916853367115347559579815630781744124293203728258177307038834044726112460706861146254949440006364722424313984218429255685937539842563514216022742120751967233356421801532787496219078890855051533959953022825627253892635586420378130570723984034738494690500802447412883463034763807315016568921965036119710093981021099841880775041562746993527842821689530116711392768601168550836326140344394704811205338778868634865983408116418102700308308944870626024064578874912445004021441023538864263913654476232853327744921007732128250363465190170843996835360166017858738954583379980768822012558399050480720702756809623070955230239671768139954573207040829312826687830031711024859542607090748473992248622980409587475908938169166613234255651018957488576747905262477274290874305280830503076328891941478296403754595333504481984688845799582601974327183071954973983364598513125363455162887323148397309323318997574219132727433508918182308481180422852742073472279782303699733843691454914423666517943306470906246972047174144524135500232540246995461050738833925551002407124117415561021002884266794923819740964157903871202305432997410071581499076736523159089412077955848452844428320503707126913602383850461148943352626787491515924286720561831319868436345455027843452812957858663472083285099875826758260754885652465792362948392163571467584999071323036704173755305240150267980704471965849256030848184760603260525234543463732023832720319971408046616204603331091204767913895264412994147588333821229088463523643035412908392267555049156607337307776683432389190894615287666683019804703958917755464708359005779946996126200664479437338231676233472544651055406744524113130283834344367327949109883509435726457358036384603464677454251389583438786336197685744731790174666503689694945508124859730066966725999603119347169844589041827370652439333701494960892077031544266894380206169438481174873624917963372826354540211988626848445935507063229166517286843129406099298382319832905855562228717878942758497688909417206579406780725754796636146902212260646321160670321806828597661267234284433538379003771595185029513283678588922973303336696428784842307406732267893524046768976188740074502460224310168472064136338819631038101897327594218060673484254232435403407866835798799568116971665701258493814550419847621930099796542456525622893634684242329461600503888683669682076688605343339104580128419823214080783635826995671052436696015807584677058848355840881526405800903449412104583744764570957259006559019007071692704561272768493266988438830792537008183951435545834464886125481479588778149444652215521090909084859998877180114023297276587823481665799147269030774259005527036028544046585521153520034129403152704539625958129059811475685106209198970461866056560483509871845532620346247499078256784285437230170029724020695072410031154256542965928290275938841052502074591423742127485819625812239803677330849860083748375181691103418445855702077159558420359515485558822843159657718091641253076280742637670362260022089773950910734027495866722469640389044133225957233176104711885337287604778400633975419629776273670840164439882403358770628066679537047211699095253952842018681687438181776658775510709157680397983347753389934918055162058001998820553482951524680932798465513718015502924656806950556288964305290205210787431279414267557921800792665641468620163110558747576189815374222528582279768597021105615200677546599707671054639288378893763481876126907307042611670325158492708381366970551885995844407705236393912397252414299219187148481726878008416157528075614244899618480516322541948202263645991805470195555435598981025174458902319721994212323714497030440371216259015902956148336169086232159182268379966669150016665890100443799722248273073483395241659509610377487466295695834150422418636523882536824664971371696448729919422588348241422239885678126853759418890558519995548338879029640509089650345974962681449143747853579303410931234298526524267832558060377509583406547037630228365091542500598695159452847692971814973445857247794842300778228513485324342431987635046234220733043634945290732558581877648596825959127060883763509032143381498933626727555544355549893183660111832380993875724118556116539456650002014824520527157543317602173364343955174445054996060402556015120722341128930070126957982741442744325794277868395995304415130846434155535061521542249609245638035332333660231950730427219320232344570192855506136324901906014974275749712512704668191538296496880193924051939328516023095649923229106503062110781537358374659617433903755991530843293714341750296491311418449315133531441369958982157055901421357141566784684660380542106059620928088924562812843815290670126611276436719475467763006032078130512391180891918294537247538299251271234480310601696715392909268302017574277878209283733785712022264960710431295239753800911491095857439725843851970539902520707475758727204163470178169406729483043212773605674172119235410387183738830476177373163717057897827907459462792898540718094230967084243774252236102797339012613052597527179747750364870090788427207939318865822593274656494386975797685721371406367155294496775763678495410690178227576856319393983581314000919240413094128125468568894023682619973958546430233761710417875240951639310671959838040475106584243904816994474851913914270207206446171714046749694201668471605344732104173182287547153634834293390615149596010496079250185463588577959834478837625602626496558167976775746764005441978391040999812882347182510318602176563341223117840726388857288170610211803313870021177663721532036197127645210263354087341399639428337466325348605297676683089107386153161563024461596240996060349115025995399059848169692675391259841865890814983913235966963648364971807731577371574775979134052143636421147952279645572272483843909955678030093590898240663927114957347935397514983764098746994757414119470043932026585366105723562802439457341761169240781793298773225759980235576054903024169512590733034043189975880671800162491987640796330997492489188381069789462111731917242482925468821116207947352309000330247617494236838223900136069599288274372958776887879236505028656616566655655847148008501043495339646283993804496994868113626876393280987584571044355948045675816030584197408938693043926210238580353103228341251757181668645509995834233348888521928383533608324241252397901665912372369213098522159847598615707763992216309646516316448480456942495188605032638075683108261725354394845586806224248415746096558678057531942105895985108899580824684725174414803139787301028383155728630485825389722390682393263184721861716967895587521534411260519985413277538438126077908348826044865457567172676943953281677020409381093582441064616802425356767665279817376507629571089948215930463841507653036150591576929568228541074899009494045096592696328153386181770219157192103576290449571612923863243170609620762843617092751786604656214057333708285611209623489156215283036710463174879836560406431787915790145682903671048471459040367639425303495559179059574470512181626551610991374459853901711056904130495105722943345707468108234386776518525340710638921684603910171007582822861946805347208480435038797485928620005048406697518715531229792465646033042359042364075075487233194083630658358193002180137221454470267030693557344696029828012963297492907432686515271603222969626620709543616367996905876128752168628189913379336895554941816481547595234961704053552338498606165554612533692880644524664258877358272919045060440004686417337830504921287933674295564724345491164312323931308236764433283467599404535084488472905408135929092911410712156126365788540210630694811137256600271198617495717994052718298394487059742395534070565301765533972206333129676126175151391433509398359566018902801706447831191468689593635522870576256656094127093396773638052722585918988108953812577573220449120540782818263179409548600229051108885429747994649736395824675807687321061413330839761280201557661530097008028105465147286843662421802867409296329084715691564357176979967902241664498013640204893898769259414037397435433755341815943185232817050603074182208976930899713163923925694106880331800186625998898487302005111533229065606030880408236679538949264160167707005345049330281450175250080320990234851398990499556810871748186769272211847241501517635010153351693294263166680168670302899032195293951810030211151489945184765257664553842860540192694831365476591662726168836249835455545887195976809681267767176126018519022176544997659102152262266050459323790027736226803474339303276001718621665074129240426044354678616185179565939468844613665742461414788801094195216937225686953177730695815259766943676356650033810865232184686595164853989851483244723050524665514470770869405663301636739854175774991245239651714945790638236668463946210977854335686272497973005279372377179425349306462279607111488715356802560352382978714338322071625682724119663349654857441056067770980584219706407666862324862470965863570812332595521763556912673468271939683996608602738572321459363910381114042003235376846449420662483439055473377980195022339140893408471819286841623443797872733604956135023484576117942747752301284847161036561506003904959281873959006309130487447501111721174684213506359235323376557346339026800240408943914512519859523801530609738037153102600100902510898130748044843262177831174071943629832305440656891872648231217128038622277223332342965107923704533049252977003182411216151055823128294659816390596100690508593984908470069397601932242884627024191294687217450907201641396850402490847953776849363373805612081943358569418375012994442324227464759411856507501249557423668574813108944008673693353292714375751649816672071297049073733936585679785755368326405628923202737860828377337387438655163473814515180213304657788429048711628170893002667187399104845671356450520946149061962115589351264103940887515764964836357583057303619649839238634022429420345190693425244316814438101671266569800187136010451786997485498996013394468702390875495205597420745067985000901953913397508029006487730377055536214357654928096752547764048838536785331648297151379581075811791780012038814413929689544136885340684874615467239386872066395820016700372237802158773295034308190108759070369509715867268062042472950468086469668262283372895896264722006250988623852266868248620788552127639177259216306218224092422781475134848399528104780904839918091554000961144350752968986828460861174360968353120159281902495553168814694683631756195722314158942124962514191819965255620038231029078299444388871287980224109055411129893268866175819081231927287509675342837141899631064623679197447092996626213691440772794564604061713787965525418433514263007031533914008444965761349230406685719329337604131575039385429505971558655400622882989824957148288400145629284298416269606231324600813375843863502838581966945700874200772511288128524550529036444251624113866833248748934989362635718295671681991507121729199205218099673653945479609862366389744839605437097294390834764420538019770849306040113328091745675264722526089340317853239237359624911134211388025158181785220097359965918725613528525782675573053412581219131945669523189351667942825650909756714846734339486471448970277934607046943778165294162370193799446016535472482070308300525080637879570324893151560599603112467412865816389982400720189221789557169384351587988081073788559240315552670123955489261007185222560055912221852010571383319314227226772778955366264504978860678205148461825922555291439889321021214517911693149792170622249264576135642319144708934613256959296397679809126645903541905027151620106478858893155361267644025889395871059242465118612438558723467456382600327682449113149251721924243800473518443441833729079730809178073312632573910106689427566454402946748389850592467454659971663599856579152693773502647176116596622354048098837096015179020702052732346023413583660731504033360410625840474891631000324882388884886877005687901962713871200312865996754854658333064006321291795612550740435652190050701448406639215976403776512478336110296329438341230193444661143825814869680382020591410396100781429281598588207412736396896545591819266955013319146942753611944708084635826178445551750065176393764962667238584947352978127011793205885794642500606296568403805070388491749086287350241047962755683098679955888906704898188417823633670988010215938399144066192464119187631720403007722205540811464692851242721858354402452202699912879470496332269154469968592313142300424893687573911742655125579329297673364664945570700525352753316407842673146606739203301760842212692238869639420526434757017570462874885293021102491512049645028302442629258602942296797014471197729823880279841033528452952563891111994832828703174850763506543431076750901537733180116432803575994837555834705998992733470919654564226072083186194842847039656407679730275151784328660892358375914491349482376495552752706194335676724334249003307378299610008639932969956975302310823736873786150883936803253143717324347089055458768713444575199180683125957715058774984170591076078936143288141824036510586661784593294418019969839797977867241523920728537984735311556156333969545263356120024750114523777839536520809810216706032110652945858932980390100432845848866306358514359822961329343177346488452021692265923530173265360389360234661419583130027145731373458954218029432801409931654162402485753285418168637507224141003481713475161995109370977053984352718631013915007052811504528425179763486311795480351902526504006321096388737176690194511145693522870340725764973579173943656939641024435700821083880696912314273520885890610709831810278180847683301167404992123935210886014155154220121376702213249740239022847902305181448850613379735825357558001351805498190070767255581658410581062378567710134152126178948326906453289566034716105641000499277960935185075043635398741507830227503102778616703775595722889378339857657708388572718156023876613135958802121210663540995507810900104077321515861410676367289664344574622814905093779681990719146714733206925708257686051589622753378321943295974323767242096467263564973892305254153711999125894826643120413072854127040916452304968654947405551866601284292876654240582616439646886067056580618197379200234349681391719333478036426653668455401737256278991889475125193175323990141463504040447583934163705632682085662741586732996431606880181762378911338051510955785232088881360549499517632707576378097028989086544237395273461958464921796044389499658990134123131895130837629016693552162953769773054047236875996301945753541094594783306632673126396723233901909786902546382017809556826675170479784544512021095118052300243958374894973202615621624821920517277107216997066889621771351914759687538232444280538546949184129237244085194611016701177540027615233032051482294920941271180546400447146473179993225046675890441468289033898943663900424713140396403964597557978394403614426727963662341132625592540597969972271204811770230923261908998271697713778927128520068549238126643394281101966712492573895507529439490583434839322549624271735725867202675200182567864131397937536796564932430805369895057516836921531125144033211621660958787776423746335497334220743469884513000475273362700448336480467155218672189027015768803205287763044059804441838953787263698723077412620176777744708177207050410360410597277303435825448540412011358579554701507552157990288073945129121385442088481943160287214863633356672515553623888067366392043304210786224276830102653041403099120526938670868228961114533555390048514104528122361443165739650528841777275946601369244817984789046654804032180388864491384152559689339730674182823899787934105304418260333140909912563783468841397034696216189796429153243485307947283272855918148238761442884165645916440720378674088715514544208449363995670021400799730924606073565291261293373200298126401303267240496428781530122887111845544437503645045111406656780452639388724349388186383163294480594024028842020846575362711770936940534325170790137961779372035388484206045806804588992420402415318916957043405701951905971008668380535307000548280121174886180745302810309666608053754142504464477005201520722738918290589415531743771741505642678365167514313217585560162442667822822368599430437581506667672826377008531059997223175489882280227775608432024598340874903635758885890360146407121336214188690601729506471436100010130301446531586580386408626846856844005636361908509855165832187718224550495984242212128247683238989503352312113708128226253269707959714162712148815696351246586287790807995946917915187868817057088325560931988973363853425091630581205088701123035083520603081737204498465937052229773482898560563653082694998109480726423698727402611611886318635614015154215880315625170462690772462536547818378098331955926650845676616226630432022991498717918980989697960202544301042268329790994464276159934242087306316916589795445713880829072602986517299004113737937252578552704407834758652554932696409864175858980309873487481773388530676408492853966704989648487760694896221332551526735974555352042860369781033707522357682043009272458148054420433460800552847178576241127115519027612151724053241409531960230903807319578970925807267415829731725339679392179193484688679758381327495428571211441128537030467308577730970096746336972150248939325393369085052005113599720714495469093789888006364986486581710968344862323296043356915833560627759941874545544909566737909533397047314068307492411658526419165214952112119009189601383051340294787357827762292060601146689952202573215204809123502834796319898314699459945413181075398379320786469148228804518847882748350756194232807612522672312215300455976412166298935139656129862433103754589335438957732356072023017801981573698057613483169756711811310513863883254483348313685504502967245270386635520233739740413983254893619116008321323898566158907334112521979556124228243915308971480858286100160561720407606657833783544671437748750036144668799744337605601527176876122996753008923530518713827113260746502301117488964780061760495877816862525613376755201908879635888077520677964351397893881750872935721094109452280564789224189059416894927324179430200072412829002652125474117766301570033431171566476120250310752814980018166575730868709067053975995604890592803617327620445781530586551224811038145932398413588314940192024335257026374449804659850207323149323970376761143656088958308204072501230966948997705015391979557251838839026543779019164209333183860905843255334325416881123862977093628643530919147438812582757328482739652087087067279721026245653644719068944814014381043839889527648714019010866140964965634809629307831429947006680520364650619565623040067418348861963148928991882268461865164015386532799554164912097796243032528522610751419647944678944591116382929466932032177394241660221165793111935293861772318756133485140067747095593025993877987125335579356820424445153221453996301874761802813786225700992674396327374312833994479305852592182143749186843462234672780441161521144944307003038101408459335554158123693148267742694497369353786335050161993659589670676378187237445887866653125133253353911460789992495689262893002211315945492880014895481559451676239655850081170477515104640735424258061078188449998054975684858593232162075765713757071529066010427069882128197950509727608915208348379389312880573358540420368226313149675266321621543056713467427265694132430653564138243877419797177863602246162852077486079412111602454578186625840837234139789304746930443663309121501633041828189826534356272559428140436314646408864620442560125006346338495266110364475069997511627094707922780802139774079103543784446274144618158701186755939933860821296211453504199591175657952496605152144771561670792803169550916580044029104824823135576853522330162000081862954686847823538861806795881579262892300906460643384428633836810075720018018341659279274184334088454729680241939803176142257842866986645908998584814178248913144851473379387481126921460759267433689446630744232181260101133823412010831039321819860538107590498394887056319068911337077196811590375439936779740409251354906276674618360923330217396561898259826217710373722745262893730988142617490923584900673393701369978160046411611272351809202620633016678913227030083545560266068291017793893606381465873577199366840690742418040428469941462682619110047519876813009799861670584542950225448403358662723272169642715573530539495045338065234608141910007783454454990057273704096365004097158607388366610100222596297661748157670283955661207539811651065963792696784034942803124985148540879159097783662982385126638768703284038820397529012672520016255266185496596928294529232342488998845379143329874103341106129545958663635403912335209287285841478221145618008544603367549324334462611225828082142779792474283477888729488230803235200181642653379110364940217283566403732139565772942577394830009358799015828720770220696521238381584406687459915805516265710654761516665381521740887305760445753418777175181378422865151143547271019598315537249395138660501914719111151650135983599680934615378567280846810614424756431489421874450216846482982146436166337063288990030692359121278781298636135735118064632937511194180341664170003555271074533755732255182306357480410099998487621478482021281889207569216490074209890401601739659837010617205073524597964923959870892298006565461603221191671861495449589971103356127857770986646391623659633338122660420237856055306116724380153706149656130224532741963806911397984964183528503979689237287011255104190558088003134769136933409442368163084722272590311642782724782433333881698923273967422353557479185117093643311329813426964971541290222968849030864309674061978955143470746922500292315686793736780479972297071763169163389380366776604724953966577814596865768177744664098615966368504548711805028583780744322039023170194082964753149671932033207104376421370114264603481677344313069400783605728850796357594928562116251811681950391638165105165607654930849551229678527970455506333591218404614573503046934881378829976949640129103301264531511485097463611710126921847299603657659207678552007663360957033424636932070408593071511745560200185591471753130203135622729398737729137570664481977999903309044695661123905089996353951242811584604592816880210244521049636456878796240360893389780801109124394811748429958300599555849615714331005829172401749630940619295392729203658914436331435992277529577072273846689415982190060845115694501827385923210782868838590295054599739890130357559264020871767817757547308052755879600443061461738801700884470958920963014278773309615611225267116115835503760957498599362860858495888096672763416583176862512613782047332043254296801387437977698799201443470485414036062750911711767866197408631617736479841166081612736263600024365791824250288405533697303232762920507221144256639003044126179563237814978759149022564876698269215905971151133704645725306930667227375560023659645781066370393298149961343499282477767297195062017496279488979553909702889469714265637828245640474148511782330683260892592609200174267303086487012917371458810594713130497355683538707489560734897344802091766525953317114150452377470265462195846698029078444899346566287818109337321258967866460894244930104038336436303800478828228795050545990791254676823214882940732676726598978439177052563723868341710058276494696891326570015067429153553365205301977353438399957680007826773013018413694958574736679093873422261572528584341688902550114870295298467674042767360798731746586557867971607789457357207507774530185554830854673766764773122471753970064279181582215244233729389269780148322865694883116884163815091626165216816802699529897659982011140658489279616370860067879045242050669212622221531027145880404977052893306431806463363154065354686656142661134950474122818274738048649203784897191073950721697284472489765988931673711652923694744403497784790834081873045355213304780223739576631937536663444132839910425617595730914529304755140921969630731923845644903341140140084281114209039996184614580578434437043716769531606913616337734458081449543936130938375338065387980974076299094513041656661825038304352755360483978194241707788089797500405825340957789128684725373892548162608069129118504370849747993821251752581057330925795209790639542426962727803029021430001087210706789612935594369892932421686620735951615822874526690089753005169887478773708505456022267376922333579814928958860385245656543195850959058718271108647924512900854680756021908459641359804554929374981325030910737110825964844431707284556984412140618377537378416359500721109471909466359772129743893612879913388421262847884761818088683055473234331832789326473738436640453723840603551898111283346716680645434702536557532135769322330921159717443653377571501812697931150395204735625180088641358083284063480192029514392019411484070628194229220453087234540887214609713420854861826760577272736208672693290687786641594473852814136402746468024778070681939122857091717260303589429194568089022219789150391358575261626322326315016101975618740461437998332411983203701456905088749488937483643005683853338426109280190705106130327293500033437373904119188058945224856534233992200716797076928692437844285146749620216571935544925692445405707998877124188127206557268985391265800257365703069322317251453965017922279307451054457556464089276606965534429760596162085976518929891308887583156742298778123293925523928993956319780691398710270004635955367243419662663359025504760350503090630444770720680015087917752735652892628974885072063065084917155337139757408606199333151832442756883791015094729987761101162687246406080994125328057744079873943117933357534102657577456969100560486073389652159998640621325048195081869482237690953001845117843902867850286475654440703929680423957931600403647487339329312239255918485663874248849324739278092884870139068403839821795219916842769054938489629706540658544806692088946537030655670520932502405782998615990768515289726531447014766982991646840993000066767581254800645956385949186278324411583278086114508461067265486426115669887060470747448513485440063830975644668921947743859840693938150188449509286356356405957522243384598950496577807554003238431403198046590598842187821105003730426667876675103978111457058799957163126819742128163048281522884922474753992141753266487920331555263350127554145979189720930534449977116472626724813376108355439024558851342210068245779422762503818912854684386350555822895095407792338337405213061393480778055180406298851606565743434940464858204611903081684703933435512122277374014455443107317081553998799004970771683002824252519779741759619138936537255956874888782671147486773805440658590494721688200375446492594645185994401112799648410719677705738610782693468465910251497312039748497387829925434677013155726154335781050440498755870513988220129779687549070033220764691677525079442365509089536290613347946364507282401849097412774164483612825054773176039517032618170472853686727843857297721981505137268171132837993928320719981215208128211045037247789437840250804978980561714922266622683755037333806785329424476344585912644494302751609035207716800463905641071394435083158841721078311160424118905265254187651668695816448599881415879267754288824966013606896263579343713011551897864265429632059151341818831336125548395406512448254294358772656805009847309238002375275559102757858580058091324635887642777094059340149844058331996855694570574402595607443323489683810279869346124083963547072478071720997126342117817054960176078460226998120056673242474537419362129736746773225918138319800921970242302321576865579359289822971342035810899712626448917045470220919445447340707596301666502850684862155656295364775205463278439357924724682198562836486965341772138262722519274216981896195320366410081967687907857337836784479882554923171961981069589310691482258711870970714120048656377572622898242470196648701187664090681067902406993055719490543557841279142549442250261307174903762298456862555558066522178841870983479972944374239522665120037146560610814951374274271291665653510562478582752015617429115261835938906889521262001001602008994805569067640205212009182822289939174847072173374384533402010576817685125167279207619009120273092960722663386927778045694135456684844688095998522220647258623832816183875172208566756207793477054955826987930887279135491060092666339090546113323861371913683398740092050086353880742406794069282866090265225523341800373908515979902901272878963447461346503623240975120393436144723794555691884872449198694562182105715688742163155831254542691591102739391810230742422602220552462011084946974945867778208666459116596638288319538450740384855808806758985187526381914767008995655834555611063451065838504607790126388245217431406056532579482333831080976498799420824971895697997832336935435042436715369858950501084997677506913515403433952106716166724127007679410928761868531691081128379604304541562031567024420763335572961635917842031564573882271708418716566974228428597874837094218612057425454201816146323955952141087473336727825437396818244942507737563788783393124049599540110965028794969051193948316035075355113493256331499984267335884996753163786565300296539258673348536017098881678335973404803916835052487345432661707460956215566996767304463281261777523012762733478351861664042017340252959950709131900208268873745455981131244806193767867612198470487680506535585901746038253152632991125619064936756617943968219479167404675701226126546760910548575307434594347187851349811283091165297330739595313570564934475787434025749754058725903933025772158228984690879467125947206373207555903812629859273745320847383901457083826232650141424368624936033016346188980862319996513356486801355040635087530462348600601608347096065413057145409484609376376277767282189720964744115081766910044935732041793396197171975145678498408698338831323259985237154378633854587432063798548886230197525967883868509720945771446349678600288299940338112200573448942741909574809987538399570517135606062113012793961811709151082420127234090988693433404311832340845714825892267306688533760743434124859007446651523735152670637962467016976498980896717883125075088542000915543041235472657903350953773650177194603721370285371209190961444948906487677292064504737744168835979096153481929920260812601660700353769960057016194544912542334935733675391010004240654054723868704757509282397742337691645095000028539442574470362683768993858010360594802711280643804677305300871066008001558071298012644263290832716312930259289044834755570157899499653984215988592793199794466681717176128606728878988675207207788046728943792823970481784236221111223115469779845148446034732647960672100379715733565902128798304628004248090445362076083098602324437929413108861635646439247545643496322521661416986924731933085142221874447136098067212896161623938788236074368923965879030093494401605601555196533866006064013303040362184908237636104411148884784201091251536535432944733903811378943673163812294797747451943612660534938020275292996133670745156669323735895895688687410595041246466926975999133008054961384998490090581534599347287705438045030249260327543290833408068610319643933974607808896146496077458862165872155493469089309110579235105974816781843375388299214657889765561109525770835392678015411900672178600053809464525495140741728310132996531034088133106739199968296033995412845242335392953728062789409352926904895927310427635238907599170364106286456909023140754904721202703291782927192792860978370439197449507420668338676687311898826081574563706391182741134697215018974901057790375138476647982507410843076237921965807889300642120506550411773182682203511662022216519032628289977985308498911985925952220770770459604355470034561189406246334913557773634119011546067645024801710251024485416180293511044889794217509943237163729557596656213064222939934678102834522348469010963686330265720743323841309597427838704732843756031170659164384083747763063109704383486602671775803167476180932887928701347221746574778563935889664999007551942601371618992573093197367628628415732677524518641424780630224882084510679062973783718166273082430444714801681864899485225700977801509747612192322876903682081857499902299326315845421031754112110020178837725740458291788005977765344991173665125670104481941816216563631548787208342173295340156730757068678119338639269094450877773280685823364234632621366401936607528902181193428095970863958212209954933118501652929617100814313503953017881958008332964364964120639756329023184458896583684295974206692088841070331106285589837970614500956489909537898782890545602883333922122509692066946548722862801058573450756185483754440699620632393122496632753163693628808076488552717290419821047349276358819610636820916444901049960304140648879194175098646002884370958923298392049656097527913793878698719356435471997175901915999528681990265257447910665740532162118836241248314232185174503186655523226289523727281662699858627427699572525136102210629740066308757865002163748376230344317747374422701013074435002972888907866842031269699927135545102994218600019287265914686027609914602829487485127072747541468767215558760468889229093708806297041085679610778860814611353308554954616793804814800742904104934431803781927880796167727386620956009588295095873502722062624777410862103087299912189980016454188350418659336736418933622400646634505899368873455721372924435159018888784985531223998089272366121117553329867129490093363372799477088632478831186454161295589560502212390986654640191273037921673910009345087122087551413376090661236085124180595143839958689336257936384744692616453415096777223973238398880498303432667318028250726205601836870595293828312722253590292640174199270646461834264616593069051034223963389651056599906990979191289432407754216998594744718741870863500557578037280638427782123360157901184446139189513704305791845320464915979416310999172399501241095541659017194618276352833170417567295212228868117605252185860655582609850592279244052972181045569838766494776194122755485595912445041486550999463875013883465837361746841452445538650980033255621710832860763884835993594951309434863837515117751678509711004127940900779710083061590153847919073655439615349478622940591496407792156174480883262556864504568196275292404735928679343660506415981253950526279087359195738167458072579460067506059586493197240231735934220733180805553896724340730032163858787466475258949929219153267016392315698353278208834323079304914514799333993415418317246520204070527140513396861856510028891781129867418775783912532800409819295106844873642637573721597469767879161546471998244830821298003094251744918888716397243062979868954198231015996682054435521725312966475265824495280308520776174048029132690641767344939537536023048826894603894973515651355039510937373025678023628825377673217865011431069780939784078264153413708898521238532361099617054834665629100910522796224496878777826582907146812808983591307312742725987892849247676647115141376322827723223539463766862940815877397020247493848320246123901753057708412071786216051763860433704621621372898553326102290238117125282174480088142918864741128356260978100138354065682604720512660327708843326739400529974374855825348882783642312318682749407640179943257166564001056819594072641472632408978178188840963648452302326680041440026910353672436727065029888998309406735453248190889491646027325816210832990155928199520091061993054994987182918356657509072418593056928538819549024846050247464289315676811770694201545885022851569473183272737843503268010276800545977634084602133828539781337407395517804680498910510227138792268089241660436850964616096963415489803054200324858570221602052918923854090509284800082567892940489474061439016663633138817381767453240469180847848582273258567767450595652964461784714374376443306996150858884786254051478159284086895151917087050122900831852349356554279428708094873354222680818798246653889699766355005165082342202976891745314781020777962348407613903668968796478775907686607349291689807686780912411137850110324874927507739662099225958481938626869076325729355489138053540973079399796551385953290920385263447743487479208751698626303333709655246785067183941696943100950799383551808298663812906404922420044399537880238055939515455939627054373212446624050394833285322814025606217818070217655141586042291210500388673624478120884233290192810618461337020269854986684100773435582278321134967959774767212874653547225090834583285596950530204869071915051727912686903234217412801345059167491694281099133624784033771687832038210281125512563711516446966238390620293773085403324506595354025649573924231421418693491638253206833652865238760808447432948051875796875241729991762172665905009813073612152151164384301615485965160013674467098580184380886513703294283137818988178790287721454379889917596328129309895984914794551199037566563898422066419087608489398617167557759100269953372740407657214072186444486581599215446335034349843040493485843068549408941973757426533296344703387653344444189114011691556969057334466903355762083358179562537259449102225113083982153147687684469717160440837422156478735422572475813207427698260097931834071455671528692368611208782442867754524935232222726788269419886296865031409184011491602019282997115610583563154594557373374757436105168243933703388589665687025342085037903717872061046939063950769165920767126477389829994424165882202193685854972437289401972079206393692172832528341798721108841061109942687358155622562734812407773911982853108124772078551681744408561824214922468351966946687702858571062724599277105180626233789814057264748961900650629641654604370823258924619128818142659641675324984852047878231778395122767928921595341963512005153346330414632067995686158406732307946888585358787762705584034754853059908720110242229980473358644993778968922313332561047660974431361140402449995347696568548507658793014021631018565946172708771008725300665056141336473232475172336445565017708799491630247498265558817441768556665220597444365507183103428556814595166040400061492636900545841892795206450277950726099696950126224227477930249647676861837925091158017811525757012279756059141614093710274428745759505660380919776566376656707448570994534813008064812344635984988827988966877357641688401581760166002498733155866317418162449862037596432101148636043936309789021148851135513102948181033340562927182172257007989209270074129735127796926985052322453957436261401159412085062202572871487544960338372979240905208455540939476319365556296682491045141039748788654177796891092014269037394594657818856981615061255101606391657233852312618135776179998381640122143609205928350776915414470016805955803081112733754728899998831706266136273324742387033924610089124339484243633858612668573184214990832842162746597686613585085757684225620503094954443971306449713673742285524879106062332153614706638721119234979759847452693055483690754512977039623727662761700626862351412582208826081995071757965696084325871651467589830012896300819529916920087999195043027426300727080605162991117088472316815632599087106563937248499735944897926558523619526216913146273836757901513185992083635257826875890888274583059224889547686017901057019728904337762948494355623023396620393817612364504517655885579061200285911291963514253910372390799568934126301797057699100222123092134369723875626287256113791206157718921260090165058154756567127972717561270384878627957639764702763535521172770983900206983624244731617560000758513748685710876643189326733637695286756905274359028790075379679656521317106102535975435359617451752042297801873835235269625013754099528423585579068175195845623801636549406278343490028030827447811087165403971201222893779537428070859526119864258214884521493228910510866606086745581596705982675763671891156282754243542953597453733255297141652779385815736621855145446503074732058684633058655327912158791750621130384706366927662104801927105119273462083395773014219283693172605044527491766667349093957131435737133368619599049749939613435536234979588497678010700588712957037986774357221786366445464210797563982035919414302061782559083795533567392525953221278640233692529924860740350954394203962890416187616164308346586462319518213041678843771915803552342987640284565638180471825707645285415844884666841842979204145374602002426699501357985920585350022766699968149583144699054723711001665945203740736871882145177323027489050519828953469819311780712375938472561465182358991144217640274276138550783875083296247019186162158246563636775538949702673595895080664183637734490712195220509323991936924729121717173292123463154107697969405245733743157457992671240631338925411075765499408947783600998003843375535819662345391936156365502221995212596974201958567075832661028108523219427806948556977148482995350262502561394601910287758877812144765516303210032795137718097627884440257928063258301448459881607108031881335910201278973582653060340300727673709183490850351060493537001226286663959432658074526411815119650614894517537664846241769717466902375001890210409106353451529636705074178098688699958974474463625605012438808220216653230582382972336105241941021913597339579308892893397129441144186720026733240970544540829750434538290552511740734107423194688126135704467380406864935038950387870784418187533717629390518336151345726342220071980388188474402998247958743168417767486434539310311356896207441650158952750086763209243665273268663499013014251326708914033342871478839254333611467518747344311983172770635922307032971682237345384704216614768343278670366109750620205659256155498046497275987335215135556404515794044225266952012894130818316061745513845362519618853060415814058691542063613623371375748628619236173296207811634761401219643429532082122636699118020100781392815628575953256436366297418366105372523796391321140796857066413164077976493849644608700019240930187736599492479549288242805178514653746825541458670369727137765471549089669929490175469604665817729569598212875667560671778248344545839768143121089972295579844189302530406857692690601795411138128766732069286162591663423229245247351384002294190607370051059565987884021398331921189552573730386252157677856966433221090230855619446581451171831844108796185546765293395660130881588282092713258010477432698682844526047808028645519942488110367276884613168278795792703004039026952068448301545927146735377292137326425907509486644681097774071499820242955411163518115462157159487047681432018978176443245711265686897928271331892680767246185374475412665228813866603369730847393579357281019357917505355223077406963683334855668563653758773891193852061959271690937978042728798444793869973840649827376701092412055535845149028243594111167644206975669220935004346299350322820782295652305232256235758479113920132221331584000008904115876769235967409654935371895625827865544587982844957789700353472932095147877153806831094680237110551043139493505638783256184534535714957923851040770089563686161172048773309409453787999407481808603227774208046691420202345082857249320211147416165691182245429102148408161510712240000503977060300231330272361803218424903983672272825541645043981455563818251048011631512962673788937603190498448569958995007987091530696981279679470950439270214679169542074378113189190727119834989236361988323073656894661244277353883139928122738554390215543555849761865522544961533355169293579061651771146853642109200318852728573572492911986918886141253087923850941230026407825926538469584132888015446470136879057683529863121652526539728211744715186993140841364720879515907078520183523101306807558949922141933323271379708551564173926624080720124147495240182597915419938467783410969576102693801994103987052982285433894186847979450088473632840128406803784947675511859376250129198615037207620868777062510923218014846789682391297996063593440592719166930886532958326138854718448870418111858381047101849939240729851677706300424359279287874047289044073233086678454529073355029204714155140773114884182203355724379674021959301779882111190297362065420279621176961750793460980811764273417385344318226143518464570190952667336205834665262131705099689891589550028679515276417171689792841472861635828384154384729963588770399858640009985871251006024005651434412320276154289546100674690366827625481846977856633715700390277621629685505705260064984961405108413306526129482050222250911442448878174941722909785258877037819639433558649757346471246978086899234286233422252500642410166402077047571723404761801848578296784938670770106840801468379374471814820808786800637449935444469465587913318971554157499054709730123964596125931237318406065578962080847859570319156826152542423154845358787775411354862501367954715186209485573725725436445207819137897296385747358439300738543058550616556125144246704393817266997181815922110481305634409231813395643720563447997421928231206807880932658640036877310178195358166932726386057432710172002653049090526830157455420267832973914088958317410785523146837987644280738332304090934356026044035000601078716075400645965969545607796198713777440293164492729718085674504086310493150577513126602420828738393098878210087824770407757181475975582278277911493889657378401584104985591033454813563189004389331046762138435217200496354116945072464242397754648262119562756021852714634246930555670658591627045231502592076386547751000610006785202863570596087733014892391292877226512204391760132729965429967941242933433117742671567829278645221534216988297481000428847969381472047007506425532786128507646963093007112197810730748181515085387745710293596112378853947182311081213920552292072719033425623175219534663101532727057742498539734926264446280788404944491793561472697296282219536756702504636473078544536885984392611621879253100337425388799585548118654925196436691569326424118371602045454092651029679386897359938447666765837448174314445949054810369164214576147970946545883844094149212757842789968972759034142666287669336749853749156406746087057956589357040836656322593083763070069235640924646389495170116895709060484677062851204028886751166567117499853383903741469465111271546291408546048123705906409363228719887065309969006843166335670159743483740003705617173756960082972148641505307858950097277022774170674786489890962960843332523819176165535894943115324032608139961116368586929339155465408904988761553850085167065651353063565140146351638606220104202518127973807603571435501825961256157418549069612995706676739430176067529728466101117263559813418848755620377964642418481268664791919941790578697356786186635467538675197343232568286527654051540999425068751044284243320703177435463942633866679665154044875478883827725963000538771824158912527612706457305871898794156911353045577675820796119454233650404328090575703713037639269702537635425225324291083068759152571580290165979957747865633110673663290770084991183600230354710011046460661670959565667911287347569730747554521245358952757221161485029074606168418602140738756201465985950032603571481470184108956099849841856649416370400018575288124192777724871758742448285905228869797710954651604284056919958496290557222183319505248170336636474133944044431432908306482383606431890485033466335707465037363999961590242923973347336083213679092952450602113169493573966972666285939003232850510680610243295570889227223529489586606420753841615246790609964228948534158123581779277059403448590252832876312296375709116661092278033847944274947151281451179653157064358010377325002040417499030127202933795494540796820268674395091719335088554197953535375881556171014298566442798305840070489336558977184759813647072454347206731620614014900195250607010886678299819471587672803556081849738171645111256535468191483473758291394082652863352886837557822347275946128090555131702118424723970099255944631695185337561366814813517476332008601556600308873234711148478467722289425213753223291949888289601329093833707820975716950783389256144496694135467822552571739463507821136639515024012090543572086505207945137907295994973437618987943153075657722094133619839053704581012257070345337479981364301386506403256618955289519269631415729980903604790628350519313030947954787058194901566372409255032108218096872593479881558685561059211583963833804634887247676157536075525273810121423941089987583279722824207805252536862008614272266675657894248705518311131018488136566457076249718578638697599631812945919394778520340750708032079794059827274341849847331358034510210034174175123367412226348048119988423283724169846749934748995379010927156537084697074576696468025941559864886074198123278750388009052696333889919797216184406064629737045494281115455494798091276156907140052556885034653446050346580489884426270393795837681813446843237213381835007811095938480109410570079780006004963961463046790487966470432357008253546807327736296769584312703287195176021844690389509256820550936978585823026795290209118915219551834773268317550153799212714201218886156599229626173814946839625056823822574047823572265494230119368704858591669346486478967483322862819643159744055401153361596409522477022358993051671824374115221188975421975513423611527585255725465946868089729401053455613886903004337052048510845221190544431786084346499016781493961695344328515282371530872673223738131282319203787385802032551763121485064957747329752283898374360632322882576682436161942247911979280066702200184452259228111963950354124003127640223608567909339087026242380625985721561193300360521924044703169696838435803147475414290397002882883356518333871103798660414328605719299296997253004059182028308478050502340407611909975124675025753200972951026175181372411227717413945251192933745821536324006625526046911538050345888038385300127595959398353059519423495677894810957190757958379334256579025240855453039614051341788977768666411226312267384553637286239547618503903860848257291525132831149174223578630944236261308157268934397474449437124628633547639012264894156575348420454449201440703832057787382490967065480306241401975630070586853395732888780908136456303445030854108574298516240322902124096627798789505493447615948471069011042563005547672351875163190073184425396922120762303637908274110014670694295571414308531390630128127400498500829385282970637879269891540852816916680851298583343329839487143062534722796861398129224561413923836486720985776626613109450754423576224115081683336193144957467231709791198546191916936140114156048110427755382324560878023233638768476167275599865563946340759732542515344591853214087962321027360234787127264704702167522199759128787687682109653438264905647669940467365122833333052526005009113110720530356018089774602997389766966947126667545371767661620809667164321026473750703058247621608663054630402753520744135824088243641595621320012392250938465600177267290606577655123334385824543096057218590693683775158825403841772594980207471476399910680068982939880227595726398617128491489472697614718861852181409635961573318909915038564235941281300294622673035685248151372104688711976256788543672908444589706143569393751082106727925101554296213709244674917177429079026139371925513144543103440190289285676226672781181073020594456784040161361733226569803590843190121076067088960405975115870014617925265651468989697770933942011509601062697680604883736593674241993658275855990999194722458425263495697415594875973903009022663579408662777104310516698050037382939536671244257306831602257491234444579730098265973737037466861517158472785840951937726467828367425704257706673874776971007441803923884881525029423930280776965606277073121290036786656518576886804082138635172062402299406142227785682122735925033226400199045514742733911925561607193764743532496292318219500224138305722025872739636104229092433041388847631202786330026831914338423548524674405739497432731890207838421050422130567327047575623467654504314177113734501972424085884532714766993023106139850945541016091285662586742385484266166108749012982673297966680420163010404263286841101133103322815332296387266481711011057802131494036622085998565762811290435512355469953953609519642836858223957922344003730654711669579807934954472548144779883045135740725854532298028604028759858011884844686662681369721865337420647910019811210019541937037384756274741650192468887757242160036649254747503710093205467087776608629418043806385397292137019109720406007350822220965778294288887850050758226765643164658374473331649286242373592567519970808027126936565713313012660530946126920546502147869204101875246847215684481808978617183316379361826613569066714727940739558173704328905276148175587141241475979823238331089699139568455829577546363431671599989833906960555329480689649081150515881297720277945269627401335927142399098601581998778786139689218660107416665571584582081483511659739696856484055707826401539300872986203901542916344446187240777044255658702871699650224705806574617719805704599414168006268925899824866166576256331846665404697642239731571857802321848066377071012264036794309714515868727015765666504656360407460575094182195282269313248147627541881985760977347186298025850088723235675398120657041432707709918675825198071489955990204237115164185279707184183253072899609424033125914891323209108426095600432291256900005496331625919440825192245921545276147522315845453681907057263664877435362910676819270179823965794107859214479742565752297339107923337246176250460867596274446156665138880013790336755797645371349581701768801648415260868792015436106095755759611599032067776599668036744332566645913819944687710439535441824331945942512840348151391184459516078482962012251960465434618175072731490047869658881363995908840549574471172384802660509298970222995799697839959459923136139291257580124477631242285671732148440815694052444604129498079966014023731544601778867841998658624498952882122481739767233871125334325190565259874445644004409433737062156170834649055391230111025673164445956279744352985633229156349826819627168664526849725031224768263324423324424061113168072233244872022966159395150748106603296276895688725542338198361864987996363517642397832194618101863642255191568253727102164674840598189524811577884432450622739841955538874938105290671151298489871020334359346448374962859913406447767854787802907836351527544069034305313666076162302322429678053732195618833974594947922968413695444119426295859111593509329631900667923783280832684334976026619561176027919936757215491542518070439343383599916020891652986499475506484437616850312132187914767597498243623547293258309525335867202012281810966903855415450028898334862254158844968137906007969086045507788215676156032936069859066709173459615616095756740736190057648925818526594404252957180495377276794630209811194044204762986896064729723859386662655344719202992125778318657779014909512784910978387086624279258229077006607370649264061830742238257611380117863079195888948264488083735026218543969385529065815543580154292518524187736429479211546205975009963883161052585124585097571012122994304156654680842194972459621619857587370195158814391435372608348613308579524648428022086927305943312274253154979565186427718660954597056932534526450670529469030135500894958761256888870293539806572630729122564692309831302410919167931053793323669184839744399842045015905575448334271463331801820684084181396839333308945292391174327164874878316896856633680028625816278709942350352451439704653440260388526961480765905119232535607569840466213323004551551953453512787503682583902172113988313106132128615385258929125325595977266126269715409092574322946613221199387120006111010975131049993287166496970603147379666448670474041182983210386938447366471739422055727865985543969184956679200387760203824235261860901495117090042327310566813992237457165933600392488372644287797503743945577741015661342160914853608538216196653478806837305141387792091512635572479646489408207501805971433634831208214906797703222433108017125142303786093986017167282467075267925471200453016462385773987805039773055712000236300789119922766672924621332417929896904424918372307360381402579925787904333398866547347094966096378693000061020900371443735103483759880878995465736246767960558799087465131532757761700217118900103037322547220371942275144536115263311891307877046562459235109029457130996467570029767575932847054143797198361863623303990580819998792838686115889226779277026063292898920652292920032359413889100749426735704118131442419683158504241869261324135020756026336512283411054661753704455932604967568462716933437177383446387954978873969764170438111564059843198265165724365785892500396589084422331297302950390374394152955141968019914986818076235733611395357289437090059314506318595372167240948003381700830041164058378155262303292015211040885025443898158496527684963783618538475874334784765963076731198120525970395046367565289315035708710313567776231515191263071183683656630244687843868833580169018159040127781293734696616357697297491694272913800290604308518752978904076286575768906393173750822772561606546642573995486569870260372846574052291900685804519827197955001830976632726052314550817373703875258414376994346462303535124670400766013341135140535882758223079760347494349950615960222712541277588097610751552609138343942139430540790887161068757476978443777986079581691027952843457354815896859055835621277161398751456159785113035750974421238860833646992898360855884294777636132324859968691504677986970785338624739184190710629429400759963980609778054171491595126148029739411910639102191840524186795427071674577162483658330610367703406513055069511267617441585836940436538151020731614886667441445179835489139490822428374816541580570883568119795411281557198656558730832927745128932689138917196014114690342948701777968720120646166647260361746279871913824743891420692850016994426681025749617240423784954783774126349536559285965648124223087885472485043077645856072713460635497212955815713279344731598836102722275610274331261850306360387644736815852692800709054570265529353024241357073466199773645662555959402543623159891384735599714072343974127495223960213116072559117308799617584410200643575965081408078838805291862598435846359490975221812565752442989028994587619163999015794648986220821333812970287223467622514152027689181436231491993666514631148180223795370261882821525328461351137225949648826238876130393690544880299426781721252202194371106245546579494969350091174898979962737704668465858380772134047053257803090066999578951200043679968410343758686492424933118955930921901614823037793947530520145222428483878239652209118807513821005446141106164802294396218657475605016661214985781301021524594884775751062262561298386657977897889966194558600004525869851815590792683054651243667156405263669932720283427883760976052911818996775145972026443121670899270839139261697211808118161766529181962938792712901562730001903135098830497986552476435369619535677345672704670202852289871487174854258624592210587112834548174413099067363325284265222266142267073318668542756059199404777901011199708030852042178080514144140270282935413738927238851264007808839361193816377441776216697378823171827988625053490553487704883897955690420050883532700323131309254218111453893119317488576681222882842049963330875055129657748895569731109512629436033074896531168392699041258042262331541907556224728873599075704823715117480061328635377865787112754668350507666247675245059239090545375526938418797170756809300823566724846179404686821821319601951702383453007784083146828732322148215185449157498268986534666688106850193412339839460678587161519317775691319480398684119509448097517311360587739831033151979275915150204725507831747740393055258771422453772240193602717537275613999991325778884407890092984695241554055747418009819089710472726999386233703036014091200476232472791103386054204801671954652458024086612840316406969964954550365060887839616345485571146804369692460033278897328321281453773834488772910594189406018438789225801621583402966415325790780325319274735612041936744588068856040111508141154089063452399290580583728104521916323448239511449306130198207519577468098894128642206125157524164568087555276488445653411342349544425890201196237973120100358669963587926468873010459223403237111225803322978476767129619339411139686119781323591167539365876689087972918042649017502864365954690604404456043975966302242767549597102691174730421208567667222604898775526548686970611672401943814800889581847329907964005967398598823804428975908952052502562446533767806634828282389513243354279385573281016069789727669940031415678325833789965382123284784394191168770538580163174328491570905491948311379265510087639858112107007584016167792983090272832830453516582356953977933352500099051029561413115769532664268340545341470894338962288885000428406275095783235444558608651095202814446701641588801128316292703256862777405674481430949574412160300885940812809696099938594575946931286160897581712254564659135790002568787963726266197999612923402586971998229259822857485173020550319703213546720439788414128860337031527029051276007411115573703171602380994772411763009666797023195630724543072637619974592615561906305547949160580138252923313628826787099700698553667304593348786761931798032496091488747488551409161736095968388568996991703129765252558974896139223588021764544026350272971746294681889646636180754714327247299486293685886596931761368776696511684470234457393413283074577251114237494196179394272020451109303525041740820541232368892886043079642609259428982559211737583666826594545349034301842428493108493099171301090284477994633011150580586340038071205971380678427385789761518035000014373330959256373670815288131535298815441531320409376454296371256040849302906280965972528894332205129713345608510274478537424327107633232763067494450484240426058129845560216148901032542766154271498759161248267052073536015558088998240605486978760701095962667810256923125567001213052401607298055824861189497858617197300003622605813352408493323216456134695819136868866456270995814207535495189260525990424045531908920652357737522170222407363769786703200123471600497236345947490170194033151662974017774556777228952498989858420427086556918509766665941809790400928008977071123438756516985131473104231311091703409469105454358595786667660967295246904507110141820081183094007242701145698434541539872451634561607753519328023034427155671074828901393775333943462555516664997479854072345792560377370764166072022084194428727528995427106481376359853698096306903656668093006374213042189428930366134064845385255173617370080180294730245957934625328403215142700265009109637305032016010238838921806136783241978796078211320715031242799673737221736964131003520674430370780681136895620738322257441306526839695105348473795332316038682241055492187614326851987612578798350837462622573072416186669996430173806424469554465030297440728361501270804711281671635255105617317894566448378662647203902003837253542723932476815904122193663375277838174281017936675218895258654986150785379148561501200297165705438747196236689103667799663812472354901057716395466139001140681864372646055965615929035363583944774675099334759073998318630317533643916344944009424227984138804785259118851448796653120958369872181383639890502660712665387985813601738281954279034609705910121215894402359232144642727345247579075207649733139058881310892320736254220515653409779115540586694740957135053298562283253794424495226900449918615509439929917871569083312558338511499185872008937298103983905210706716707713575637338055003870327019768483037636807990173395975498934232601183017695328031805389428462740587043931298860223111767168875934144549714784593888954953573289256135456446569601345954418949511655356443038149990883807612717835832479176795558695132077778725117401201026128635046052038237404678596613629278682128212719888678738969465145688279822654132295527717891855264895111857205350627850979692440813581680582102951338837116059567921575660020234540859177342334045035772862032403123730457910378274918423925663007490971122081443245051110288281355796139937191742117805808023901647994618323843036587565146118820872147937774291668137827448511323276831114791104944206725321982282404474602533365266860833935343509595431745355110538169946589779393601278442496190015713678079608958430803819314643597664875453905200797882626929075043566081996868971144092178654216537845425636858048039340722813821055962177110925244851950987026465987297716515511621183497374988857215528511531986950027198497113099513715110114929572093026733393005478004868797095123600762755611386523599012138253616109737481572052297128947808523423854194014665025660835231025474996603922195693488739037073254296343260509135175545073355379884216875790769376084567378302814740676338766892147019591667293842960932692653991643146837125236404017181414940911729678314738034138790576471581021151438509309510788988317455907887051513162389184077501379351293782397971278877611277962681925789454494588517311266484703774036255313904368577378744588024084542856269040593759394323690624128557478792147873107616137398563691327830277625156558273798762664491688013219614645593192935081258593743874983407957139315177639667167168727125191815423001260223579964575661851334880051529651728009659838844709190435291100190499162791390334414509321980888846281932991279031418178066044930803008014284755722777980346577820787768677618029684908779982822498571266371097769756877426875094499617014973934199206491163647355485326125613402373791473174672262364464318268177122636079755558072459256315355512372025037863789405096040508752591944949801745630616168178471119739861548113997916613927679058913993250357784067269278768282230718958083477929511744714201333132325800537861983811946494368549211663456274505624367539468744026294530656591600515379911885162685090051355042583181890086809777016689595521499903530176127374765971020978927724598646835886378892608336918290336318070433408089955002084100473437366732307931428858568995468802798050130045179482723263435225188714544119706920466129160892105705600325595867546235791569826345298685568999236851581993087908416128955366146970904506774772396477878440379465396512801695009904670463930913053023166084278430822270649121145514761255852619850539700735629782540821644021590120807879377926819426005072304859178310617068564169976696101939600384101626470334506958401516357590104907770642005002406037931281775769674298800585021506085278385276498527200159511604195860395924343889072739312515222822927105534014883383235128364692172413062274960690173304327876619912084768684885479038339871891865886249777729879235344328150848225332525026327376989602396852551645014023188856954016815310700585037055391938090180205356807279613032325307315472783462398173221727336468706371216703146177261559069617245043975405261498725128042447246931718341412621735580839183737507841064340338770639723082958990244100127630560079215250953054815107308032135171491345651123917868912148319783583519987734511870470804926222878655455966694741075732680886859595528643593740739463831700512118110279864464565308073079491901846989786812001289487336994178216756852396080660505420946453507577820041482110864558680820275832794227296655548983289583161253357670844989574284186992904073106518136612290533095060479140696903931368648602481831776943562129294294363245607168940108734388326886145037099082574204568197840941729809432002876071801671616359937683482042206239586013624455942121055611993955169557708858473353343579635089097140883352779716676299403373410315570438263762714776924514987315767561696745541046144236673496050935135938642776692133221588679274879947892316122782577938766378841702020374921372614747415308361686235684020017285535132515219179104849515196584667788239652105801631039805480911270570845975634639894605030141713720564741446224345460909879737877165231586807633281006351468515320660075142063551879490447399455662724056886245629310562175505869933385474134648307445631158429617255899028068540431566600314827735832196767113369051270015472022667066490532444852992144558725795967704176114030307520361506903578173295917782297382636153471260670566654632908212446473940758768768708829412404455830361167436572582114421938429815891371167708677689521200082283299387246812888326269561586679422552189155530971964305603256361787583320570360555987671151002088549767151425657260145963474622643300781714649183333411502765337315028520305793842771792740190799397113846687309412443312298742298589129026540953779396105808853081530352808856952659741004280347466973050800375778340295402087141490241891283827081474615736244097137477234384407020466064012220372018751273332262810178988319921420584920114051150835510863067827425590736993517537050136155025498726783393505327018939479084700430414182510821495638946732265313644408390783516161285764723528753246448358728421788491189405829518979804011627101677677120523030043123540641742582987959512323551705499600719956930069111044298421137538043575318220375290247812933154794474521035783170936420804553187918732330012591458959521478522875145175425721364714491813765236609931911730453213866190561296394690637246023814441464500722955284027977788671837642858054941979530951477958732601183261659172901717180509407243564369987344256028255096949472620305404797991451585107213185473392555626312692194126278610148253968328060984786846365181046121358713529268054113979944162349010940918670566895096648855471280952004697886279218996380782609070269678356126307949965701085449906839715436290637894868727355746117202624799069490789571542472821081915111575848808474472496177610091783517793624985929058614178665465065370312719709503072675750673822078228402499948133461153683550082346464601456284218293084018606976372418185028770403442794989469390868981147228051544680526991019795150584289177243920204839920405346122168951296614299733955939853200821165354562600532230302337895400264629987826282560489225550572722771021390933981794597977792431463181566375875413218954562983934353034622936402141004994401024568833985610484505205981241884675575168031260896086213556141620006316852977539961656453759081847836576919683956254019751168367939541399248531910255651841117700180542593482293494756793404953326394784341032904751188506999918100022945320908905596193258013812030751013253380025249176627136057707734554475732230771874809309069782717262154395378914841142814348986528995820196966827016227427129021829471064996896862748602694048753315348603304023753969186696607644779837798752125486011403243867281245669857532546303446850583458417986748641440980173243986408692440560825857221425375004877669029636358700272494056424612241797606975168274732382073748081082315116337625318559148325574017063589221353039908600475202690118642101188255620676413145882365999849879213227221341516950098851935970287565801477954152444267671384675145482971793948968189771952068952668003476169774516454279582225055305351638264810835776030490715062649109902120953308049384342235547451277859940649595864545217899127209888560090698751325357718364650469365079738533913854717817730629321133096482738293880404799377886385746482981184366817331487374717362983923136931569430815117422418460819102601826256143790071573494640432372901173245879045728357905778053316141220529506729874962491804200559764151189115044204961274784245008811499923075785980301893128066348794655913457281016129772264126246088615852110677162695012463314213584794946347376075652063489590104803910605517744575000664431711637977535163557349577038496114444738793252047736121088012624495491409561789605989612513162068399547694408430679712782395890144919982730860719751246582423796008341870405687109350529671236032222679431311785505899049796672463870606471251423786349105294091878865673555629183341764528537342719150172857119008519150980836223907571189840464535770355769818088401176495333515128394648184770821915857165177929128977311351069882515779735271971318667671739727886513279771865936280184803233127315035703694339181382329005940285968536480966557506191121036852107155077987501072874226701398831090549248384124771285021149215323466163638958296303568227116491777191861446520762805858273181743239207779898087846313162710627507464951688802015215266617741314160719877239624397809932060678668143599754860553853601712852600985436594911200257285421237217394751874437957814216845330300331223595450558701003397609920042786859810282551970562516504712511708495934919457883455441367845782771089891350957491653534115105650317272022265431433541454766201233117188680848939658870251907413937964257886809990170760283939613528111771891463861031072912066502464240159479500997983697311289820194098906002924948897854649082986917418173720636792388462035820137595890084902391369549020295193315200396431444492342159613004476126568727708437786946584130795426740134635986624958311903862624395486232200564804083998910734019459386941378480234482233136800279342829913996292657328916038513312433605029265402305739899727938178519072226974461945804087130734311882317734368333809441564408407046034721207804636462400368738954687503747766660885555872193778047337596936230511060249869386305377331310992703610488399940553671684174072513172811610022691320101238067958953720870060028264730488540678264532935162025557940974668177823854390628084312225251461637111444701008313734602182062623752522969967236673720674730323463215747605458788395987027104813008326472761460932177152813064115507076227096690917614078755970910687225139092664441739042523349849571299283789058661796121456293337611533628905083155315762863750226597894408973131368047182195671947970064159904210205467925418116847900234667743421076079535727311003765083460111278278515266679680219006237545119304884055206177719797888074529890881934484513469405929892365847249591513112317075650979972117765223603446502115151496393238785520383552472065366826312709045568226221656626214694773594723378084602892317290398460106609212419620217822006359117084996515147038528516662152057343787014883021668889027081794992740159347558020128924755787386357149631553037264267222133440783003812289020691423390731206630132996334717374576878015812350997339922344768459942294135535219691644087138159198011553374942280468333923060438368461925808626563957935308979500547502040894648715608793498152683975902827498123891024270718017458968280629690664834176338417866494112164624510665249387551960802150881014986636911515747801044700259538669779992586522140724385190709405767930978381587415899211095861036438285150405876637096475589143445025369089560167092877852741762598483545433258922489665499060042036415053587602869717353398845282799418718168965902617927114608379197027870431022955603841215102830592544145654539589809418905563783353305061292068659989724510198875860304673900403226822761164026681455686683342589891753488734112204125848385971318347326680451114592247170526533914742438214488248964523123611997674592223769047237901453088005166212955308250625696110566719132121734267243976192650358989142014370951444439810317074956012447897036925447703396277667356989176516048380064915657975398199055218939670336035244104810612885435615424482087186640195733351190886936161337546829942340728263965369037038893018641873113276606903654170858012465283209360078028519623371266836961212989154594886952980449148094420489302391513283601872588173809936024325289821034900264839494059800369337898684405130408665792745213829753117877342506292192439960478626360904491854194014984533549117604479313692549054580392842727509635123126678304878470241220944239983221267862799630981158724834547018650736673987180779380164394030520149369311466886768172688106138618103857435589221421185664003777429323842980581754966307133724657039688182828224118710666980691031845846551984755386089462357274087204765863798679502243475787464093735811629156240307850219143128339174637028578370118212241838351344813739658547377866906707977327839428545897754250270833893772846626331864325812586696064215318028964216826888762457897619848262848059559696432579168001991228107898168378041689581246572138576473381224083774813037480106473265295867326824694906409349852151410869356291705996573056952613272825089899527831745077360033128483371954780812806216144979777174245970061844242260666455444164685702204819540044242312650818900377681907902936583342012685896427692853368184064903820897953790446338094346296551627626339791934546165165367333214354975559263549351691177259204074237854180795580027765582404338785577849720993883071301752240210104064166102684679326626287011929731434511995511485243500253283218470106092529326656616192141689729319063218194635293898197571215209474920895564070913780443130800534133295790869166302486780537247893353323455561641112536911185036049371489937676196623166519482143673405339413246442579123612950373255851524797574900722341637627492711393577419059829476719465671131012883615215284397227784089187767433477773010954987670726503497030287571817321451816752935348049286307076547159285853187991603116681483026416245679294923245293043275623327113706931555542274988889252202050036099932710244926530069860251570245109434489486893784236973664472011406249809715257218452045730667018946523091380300285409958340924311516621205735244702250442275601762151114206707083609401548617372491104668110720988635197966935406013721594587321214951970433723996621679882849219330638142166032421899410159944106684111428063038902644952636834027841438965915684153119043118669567662098535372346590963278138616631206349705200623094870590358143781541051906458590978874252521820952451851680515367872501984438205777788655931640943062889284987776026469345022243128387975782412146639234798240328509593980980506462881278887762684210443251752945867696046701133210801681435452135352059252751790048307419456071268089814447530128206791278111414042271006992718888384331894422588055103040354511748530512607180857561272118740089307042360445415567887160310407893399916332563434285369858179950517605467912474051696997896687854956391617369886528037248264480608038625287876373163290632957317849845541692609688474760850462403684069928780858456144474057966351032699446151820735147685836062332380189828697608453317401711760497701757521835249953407272276259921363295649049770373767119459380005090235470716522552836151062319064622197549384688013390223120665559298404515115528108489675151770725937764944486850211120192890588603115487998948300417568361989582600565200135433341623183807198389149058891715130167651069432561528087541293608041200739209328988170027048383166765645093038194547664332241422073819814237989347809673939620685547938912217126953263112562823591817914145388638272647148748558637453364234525237340311196829097627139042685421539698178335406083924355129988004975998015699567380434652269057743885678466272331858618360655077559008322510954524769902280549841512807468172307153052955337906019816562132280662203658537323677101624510818941838315546354022691187559531233007208510237621669604294718148943195044036772369859516523872834762882995196191458770870742134456711037739751081668324313973118773604853742843531306632428730727070281530390195269684572332090742627659901416702762443208473497570011919932852152494140238902715874082633987027620073921435728144826414218043928123952904846639101018936359461765127122948322453524577285781608182679233643219168429303788131220077269142615331980562376943070051242022658329597396438970859653261632794380984486833742752277398540827245287171246220496787470767923977982437027060669939003605203307310726603541594615489601474150691157718675381807990979301490909677526719082075874340188044598303123758791099178623753901395385006357149410521037434697145760889238238119301795638582165880779192798802579432920316835962452536621271471930880197731367406716765825947235513676040424343149302518810744926426886826057166266785690699123763447777918594197524323398617894203237756941709813370084144146220566643565371341709547699835796444787884686245080544839698619894790052585842510731583866446822318694382290551483820361945991292381766058637359546196812034846967465276638573833920875157833678132592857845375564191875695627006122421684510740239949604692072539361439685305515302999966619222017824592546382463988686505757500892904306800049811741439223206493066075047410167734293462853684357780555347673433548528675014594410076929142969986861220993920827836658166978308208058373717938352665095509170532616705800924990765710855944963838584351017361836064375167375997865535896967247587318587675196028430402880586978174848306562126934179665032270360017319099345977478174657626542693021688324782598898234671097445951564043100145421620356608548780724363040612551360649948686087980700064072893018009660882626427139556469614301527174982357780158872226618750288941292733540875542177544335008908319337768212159124938280083371527257174069658938137142181161105123642244774613587208945628685658812365721848398759058550794920019360256249782887763252668261004846379347878840559616205784736223599816067080301889271141340089882843790517624209256535632158912257813504565383831040342094176804590197854349336436750868546091829388132987346157448722601287577762234283069916350867208558450110383397735518028041553658165532487377352917340056665593526041015687430713072168757260930766260796149321738074420965823174290264023637549224012153461964797803173831402409073117981891887672594979347822362439910599666724329834950420773402862297487232498151311347851647700767694664331608019030603967780806977229667167996788424352712011831693973305322413670466754138853050569817170126864024643793650986231848030221275880532720849909195016583506171296915230092029625114651440156138308512110990218076439476343800382638556481655396244709888499925243037555534236858164277438613354448187046943137769372812143312960462791883284258845534279618270714050401705671557214904494934283431143596408696921710248014668111003856080281401738686589170838785714841226781290962067590153500999420929489614869818786172286826079378860194933648732598355308800695223139155275442402057812839623433362156613901657043855726963997878980503285627688872647472038126244978376155445431576935271128403769665836037328625388962729621682321112361609593178898570263428407591619140807286721223197718043706338353146846210588984813440619450521623243495324413720685023798623260372993941638140449389748585652862197665186034476575340801624832405837262689065658298697230518254264248497061663648318873504646612745611471885260345005827146323391144489764668439539318454870330544033159483794471460452160837003288172283830329507718887181955512175073457499474374121436031686206991115414659670255053841110277279611801914393628369304869651815303759221070713809021746632479386430491298871817835726495796729424181542120312206541872176874008128943836402835692266170638067686039699331194913277267333610385618856650169792532195514107697924450987285476997206178699672608494841970291033751693319022873920704223929935628841973292816490888352482322093629046346595582160888098027955109419266193026568969230405402571700904878026369504031027718420150693291848218246893480146003598552737636268153760749881414197251568759170191537983514406825159921992699283943672739976286046602938835653096141890814611136044712997106269933674916556249593967401291783237555207350220527279601479080673399149455230135044383169711519038756157384128886480350510729220728578071512414020012518999313485662237205580322438408219262492381151736554977267233280638797835261890196799192530432791508464903396155200568228805830726507741986580482018639978767232749708271854846127686176758711573523407133146992417043275523964926105026858542868384402284103075058327256518653654900323191731338816964577777310964841704670166852476125266161321395814761831719250448690590133746548234301440987701960468493400345887433985505699882940455316628553432874004922169190126039002499824727621268564054943501484230616239770468384095196853491625742386793892589262835596437945528708371789486062449413366762715641045720182797336787969283564525327551491405406339255509507146912133950178114647269220776674263605207367541100987735704748105324076176012971432779249435003454160068668946755015253892802751459336766287426167867407770311197773496643622577468108627234542013889839847623486168752709329365776528153363933450584373688192789196756294455644543745547895180162753401453338891742456967117684611707079912147508927687853309674643383275997559794232552904696357996711099600562513307911821078860862632493808796527815788847211614374741314492604967040548191721629008447218223705081826099424600128156582367751979902240782098472841960811118523507381588231660608032017981582684812476852694424321081272674952974862187295209412199666654486132857466004245018814128903778853237088546533593556118743628527199638977936508769800451548138247196494286441117564659951860572433781063213127596068350342679706944336405101836858260721503459785523563640672527408012960081830131401627304906554776917756913802241905932709511253074499807604765422086702050285020700851662163997288031948510596433282817763371688906667742734586529364822942848287171082447137502416478635480154776141816643536866474091623754024070649165885597022105028635375089648267614098833434362586057138530429751801286234178025519977693536081873931985440943552688504315497846922478014523548522904071767339892069646495012443688625949008996971120710558540975074130849159036216910284779285251951172167700416178163172914971856604121580230296166812120935131444008706949654781106861674690453848701814525251223261647875329853968349187434555902419651288294780115419875797085866754257821287280130709239094976460164005464656273685427925092778960035985621752561616347650803971709214217392224681431511324232226028617713310876690257775861927280670683238779564240930759436984772367407081991874896206169562615361805742573686095415774667700940668845958967482169828464312988677041415800897704293312861468719068555105546018461354266293482087428180180125117932051333989716775471835871043494483918411906266076971471344649344818210239796292662525600730769671696270286263298106259527096659748041289990444510536161193064435011613676679609245432951092306271333162144654270208634119225772471999457717430251968796905651273755387404317160732958759733977473037827785667629987944497113207342440417527826895520001477493824401711135568164598375121753522641159201373959090507239026674290530542434555764954288149979620084354753450304389540632524112259162100714656243001485591173048542893188233865288418492614463296629932407479981372429347609115976356305190826005410619123911159362345774758558761267183572289058366946648147345585508399819594238937058717484011193473023603237863764802216098203479829863524116275455634660653345569103594665179659612897378938416376483087101847781055713153693386785020691851819310895871887072478672501560547825114472875221816490732699288720913801809117058255204516902100497150756929059301262084509226653634613351220464198355224860522080972560170254478020639129219845076221353290564506524599123899411051471134917165750896260617201091703965612654896667276683709944502238174463521017109748763656228659988199272963435583272352316113921882159853276062350146588688158353962330518096578804217283740817299712332471609472248324884317710414556591251766983814673581648998605714503167162899582061984589719115219986606628316575024366841943175764988301756480787178408890753143807951927322072702650093170806444817367120270552861034710531352231312831337597910563602550372012679936753822228237564967238468359655300651821989606674204175803265148091887635016388066521110468502248799494059921392473897736802691045277972025287429559741581021631519768603619934252725299429551338618688018915675342227164805229264573107513113071148688334468274504338976473178212482644771337296819335046088159447532429979487257069057102287450859010606022974214761200642586785254618894365717409319749786450447878190758151283394073682933803392391242161080124415889309664315759531937193495528870144148473434593899362818676833808138181864302569908021649144162750385249937843457019170525715283314985912360651502909647509313951173607757306108429062915374399935199710889868269296629204295141051082692841116018421797077519559610179004849934362012039576788596263057168596303141302668080592332613092845411181597168040345104968360823812799788825489047850937555924724726274843508950230034437714938003300665079193703817761257493960386525452836442202355050218162460773247140293717777757214631585334478911480319088681093320452899010928631510244710868446763534371563646191366876042864389635935409501086781618267690883916471160922182350280930860907107938348285532073181650334458918508264452450803233524422235697490646699439113059722939888926692879768533138359258939479093457213596223265473358488850080980578424934157607044164707853111887084079640072993361709257677302738636607736862785193191500979478122632590072798298536802957339687171146339776589486284182734941478971906124817467554548336954609698441953876621823312798273266855357175070280223782294160185192367929454728415295925416206906156205861774450930559395251631222773120454923015176754037868856991198410821438910627997551614937860016929811096812944618130078466301151387843268458896082404607272699314233036278920407700836419877267497821400113648710691169153990895226716059418109644519233622301754753530675590741265979782859005133717805246217472082231254490472795010833037943120362228694320167043819194283901357520358055970711463644832996186835865897661765355376250754759087779254643266595171691598598666610298260948041917866420613235689658445590882901032617378261861812115245399118457644102513103461641836457723782763702681860335614646338646134580865995939118568845923399247426091033060928521322898773586637081940268818161743404609484671009354881446413185665268616844172998537947432085434392330380655778929832961581891575636356389118709159784128893231167782823984537904950280546853470067517528708856835949706279201511973701209904848461991441994223718828110711581558077232705895946189402258524421438602856405796749990433877303372483627481457548255264565294397462928522684243961144686063643494411708681809153823416346475709233799301434646600406642891459547905681160911252895028026763482740270618469698629265348853018854969988539297952925470806838497593227095671259450417966489425484998071586289949376971002121624746740685916812270983879546015607394528992036766983540285673731929338366129674786274432421872406593121133881986309496365041680362396732566524354216543064795637751842042633578833944740243136279297395979331666021646677294505855248500025910010234340445934375331578700506476938699690116266229806054871060557575973162076522572073690519983393556870030832374447734695051542452215208730826898059795446502687036086573534460614047806967466248853836261863777187700607045323898279679589483806551737048582685266831251093739611593609152533638783456533830177798803459031416514846772964727589098499927273633897011296125127559591454225493190363660178345626050510134138191024207712749105153285057839347802687559340505256696795353979960292823400639478543259754978978023484794023715227089740445390507132467663126469716478808098584777223252587549791063907969843720895517792052953907494008073708024127743074804038262647854894655111615655357529574143716908310437221222501751702835106315457624899065989563971731786205362938715585184375731393760382010426106740600177343644259060098753854077874112573926739264565263166779714873043728538870475210684223156331217057760182541574206768415326947398691594664082537547343238929365374237477918710829730529639079524513310173111494689627374438889115161847085701494824288100545478112079209880021537313041566074441888040898115502232610141569290749545147013174977350719252967287763935862455667418361430658074493079329298667292219554933891965380106913237300757611812241521435575744982494733033384526629735957348525055178087682478235742707433610090960438067012756708331490372581616144483812816139607658028391524076119875357510365145764904155890925303539742029524475369662247554677866486193088249160714191727857307515846179463121926694532918219850398359378280096785951514032742768373334590627142375456820787438096721105094659376597970089168698609282437818816361872625350406649117442102726026297305904017935324808250453143312645920117497958558775089503691002112712699651125162504676230025617675165806257840877897453984494947422502911461935442142891837614096732047600773219167849196995137820772720187231982716813547042067916561190784742764335711937394158320536583926856090318300471920329603635976266485742145349072393984324796002268297168186706550852836789314965979938670088783858113398659394365283515361084072317034794033171385155794010981857867912615020541900151596457731826727855868246707977416676515602747706572441067153441737941547491957228320963855371015819460544614563240806359538248142307953203999769141301720792091747508229823238244010090648465806650508189917141124972543619273989424592083055016970088684367137980314066637989501957989728507164094158633794376798735057262892029236826090347218459259476047821680034833459162902034619924546228847463265770900051797392661839634671583025255255673829117518823533171324583132469899315432928473639996762632972306721675048261771358562395358628000697455017669574716504062162394815222406733392069681927195447044699520885719874101113271745704144906848637927834043894398218664251836635680199407387032294688229170050939371866227885053532224397674755264736857044426864355176458240217342759152437472199792739283531477822418102341467206340491454905008557114720950665682095981982560394182219177804650215232738373361376738066714225907014274018759218288973146658894647285712098628424874503361047576288062524902929698735978102519837481862929083832541788137567533298619868943989716506699884699796558066838930214029197450206648650951486830665717143140425664799381692355080335875489702620276756707467196743886666823082844909800541349683064428484331052719046692359530973107156922884690129931872035888531110890334212158942512722325452787144673978126265173007340877717128772183319313941519631820931749064894486063554897701856328603149340528325667629944958990467644624990672463606777949311084435155251336936146654042625586999074157081724839199334388414610309699836461426237157662325181132289501889423762256730403652303497597177398546833541701566261941501165614633453945618973725249725504306589462202706631414838528991948834956668037071738822830498884981209774811945896039554547531970197731737975555490305851304277753064564059786986799500116271164249415636355438196907886960536201416307621645393458642645726045952221227245771438597322919800360441759632211204493057884884392269576026873881214394885482131701449289521564031350996347983361164509955405010639355356935568649106755250982737032776207888345546234348625394556101569242246551375791453705537366296025233362146540333087342951905814842667246455335406346386446791136458167016111627151967727627599562081524847069118708574707979883006142490409168873898486584123232395469534082402232210692318416710118014524530554206656621197095132900520928981151693310614774324075856321073306744567994221272638469949366781960716227329561274874897854628948136925871782078168036965076623877304586470452343588808102415460433019679304679107722599898598333333266140651539404403754599553134324844009897790153465970938970938195192012687681167438195188054766858615875115429151523193536336147466746631886797107579611285058659669945051598738069426678750768623946925086955310808061714742433935432564456926320457055050228919858411299778660918690711795233392383602052360274299494595883940077971408188612540452955331704346895126626099122526418768517319611509332053205207417840996270418917069734022789495566955480656618262553480253123704336790306447861748513791006099406379471694058489335953037362413202310381675096657328472297393084034969411605404073540577354389350043219212391379364625577014175627250112263712095812491980885252967847594378309621809856770400003039152570304351628740638598747418804366319010011226874540286044323445073173308172197704806240937069256909379767253300699278649894150694235358282122249061176928314774683364827183627672657784699666614312760673961238063449979027288168910636602337150890516269699749313052517396219980264271655072927031930678665620356093424132632382413786408844878839501399202066842722731744637162685793260765188119934371955975382840065047506261860152670431018312609138377347846727331113637452787614910413380725585092416804798133539758754289360587356886187192846635455656263567829416873637540567594425293579851709711026183598115074118379668904611452047601704899152898451887386298216348203948413279698476430314294370668152106568938304170964143615650834747429239439311123061005858449181463230028553059201021534827063295028148122136854569467622416984674397124466211644046456973069638851157149099478507571682388982242429580580862238190279601339184801941820672199190137963498957299165734615188563089123278675405892426463135339363825296429272264215814409236614994137247058688784222035459025428555868548826476958623698675379902659448882357536657402590466093943490602605126040980244693429177915211072573471181789951603848846454324923406583735657401729260757172763446766629158586999560843023134920812329553447116515647625394038824050927954689484246820680770423380877948017844364852911704472430837604714646480585003053330641984152001957708697855866099648045541390690065413505216193313388347947724084169539786879462375554623638008829865760797580395780107349531564249951572922690205441966047763373709773455567135303834756002452800353524148521292309035066578581448384426245289941364178670027338171016178542870979660266704389564314486428437339440115918943041882764884259308397506924125343180277277589201711492269010809664689266632409874044326803257004173598288278331083422451007476713875156275743141261085054672239698676419017545753121858819473339211411942492409844382071596782048774228198557357406749800156680468443577004314117404798628993813791341725797948256923245355798057142241038614813214558876160285464920748083009106453339303111963082804750358410256060497028824837623388864322368493014416181268960897251101722084129078601182711150391661374303859957622981304275300356747572118055446112858540965056200243835666192212258575250504746597110918227600050640807973352247232507840881015984764197778431310439554575953337139784928135656360956117097252047174586339070392806673950011771391184981235682653913138187097057943133541857014501250542585087640273390114743594661279300465452197872537354590541195580986610951613815480003048055010573650462754401113330605842286004634556393456420648545627830021950988516633941081091439621307199384706716362794145017837047817881411914499591375555327876291306782603686329287021694958641994675370225247729109646933969419913002205854479136897470792777291920194482980808576250189841053491101981148931043038465426780462525430108270878928693285486764959035374018475784747998040089723607681139447695161490883842392727818154800695367099936624841633127009772904691716986441470203808474398976655179240751651041475860034580959027911192474829444233148402398085185834177386888878159720946646454412744786263192038577861844602100010642462707563163972070957849166680920694072340616227134527856320562999487514704188986426779595573204979471336982454855079940268213497468917586407197510542251387667727385615761634310041552523865220500136402222439028558202200503957310686260389883173720926040693173708977429187975713557100363846554499136231744449770807657961564898997264893367792105757533505760494968493350249039285177458893328229422561542916109432419557188466206781991215234183727420764799945518601096376798792615927941763801770216407383137116869303838402230817417634865813079404696310687458855090396263470091696498365423581597319587756298888742838160953344651200520547932731373938577988772531809781991523096926275709530640301424040679978003520918321901969976049433128010265044609859441836401879141880603562184393281279501044974082634980642745702786601169809530459231258516624668937145178373256732828333394765807935027451890718470634450754915052573754386444772394684360268462527729576979546627290444920800246953052749579578013728937437363135351991386579593154209408212399956491747130578953690775072857237572856318426987226615428282020817963474118516082587735125911124033001009632065339002528823140897590117527900702749161967734622900413152514064251776209187029150317547963622176629265221095970006439093092994093290433781822028840617382532437673966131776342146987739254771794463610263780435554219215640400493547246849510843328837320348706196888770147140977424588455805997241039490810347224316182968291894131182307748123721313772978697767897203065019106124049412404246705573108725482905894553136969641764525630811850076595201477804457666093108227695186386143896184377827890378289190109079962355946340723281497413658343362650332550412996462473646357985039844646317515906384031813780530379625598846052599984362772249964849491307287695644427919257188677328099623024658280056577338928075149730739127618610641882255627651246078029540621360326890672259743341406857754710406524930877665368804835932422013879827736056152231238608429709788958167026993386823858907944433382629605296019086490032909046336899957104927991886782425421336035359071167735682790809126434072138871938726731214059163866487887354291643931035652365402365217044961075027821468768739406668857167754458547459713639768010218826347000315966572501478524651195776618861335704242197822340068491764222240905051132077961049349196772127770810021920144111517381027446205826451391194509424898548119809483255938867226724177314779448276807509603744856475603222568633077422310097337552584837872583152908972876803501754154465945189524579406685618994747205129699364114513627617892555132497842019069374196601246668868949539499726687679680819841996323842524540441597306576071042076173834608142748259585877979750088839366058343663557963504362721228197867935749158469695334200582876708069244262516318063911225683896742992780867508428726846319136595900086880740117174878585814639915311981594475413329521774292395112498857531121522111732552260597705671791714813384879185056001229462983022260630572601679000699302978532489448379291515924700885540954157444430667056571603524434573411584410264439731090837350383204149918657323424327936404751033496539746560410759760949829053589530447306099920273814439942401815513368090184138903940156320542603591203632948905941860729968114897632382921746614226786517156051435188797597024799396217328945790229799817633547479227539547054578317713146035435742438671638462978540806993443078717952389141450362808826954878658468815790297160054894903853117273370555324105886998077231391342297343076511429389467214076129484301693444865859548844685058444198485730325071862413363624931177892165494754593228642354089638879937273695590189468383283317137841713113169021011649639367711139120447411167388309584506846815019342606925421955053062322037522140801484570165470553807251016608868848337008730646449959211214503696416561350270618220696069390800098702783168489493146997370787858416450038537272822463253594048958610017314686844146496776449653441146982817896608747007961904856000134788118870004734937799756365121819630695198042279696370896811691004071136314909954502474135679285033228422793788228821940570084283992009704336862679237519780096608778163667685534859031309849745193168579572645211481256728997359141377706940338608457520343065328464225390830142587704824238515066122516349935977397128609523767692522136144235861742650896671927863141017496850405205766271108250475807501213667077246706161886382557342904618533260951506362565708173122909943679301811077852561187928408005057892324419030930012275098952990197565284090371914914663257645949382735051950644867293676496533692435815669694962669031899768756620176696183945016486209860965868355426298934608843414825673664542813632075873410459138938427112306319948830390171406923230122208562675523189126992232189547077593119981614474050661164270658741138924299597582072421858880275187948530202735634964976871752782934146041423570425299197047010974606976387627774514634429623887232733659461470304025493979828641191621912080817827884121118755194646437005545956325518156307371971949479615933968203144812744425586895428277331483750207621059681398453150028207656828836442721045250418205083640663169538928192481726203676241069743203869460000525368083557421525904938875723590824752585308103638594269434428901456342324365463334175141036751180685771812470074397675944428656740084816333419103409661864683011578681164375601558863717206488467136836421974264951327128514510324907699863018721992438674636262956876789598736998568259009126148167784746422030488228576042049190504927580763491045717420268693990855719196155757305395916223968667496727121406299256381811413136934116313727133695916925904026208680425757060096792394173247889764766340628164086843818485338522707397012931822780540339506967565941855827207494981065488550591636866899393381875718240759141008784361550561927277000967163363017521485701832018731201486166343675801262563994070184036544568821030171067557355553496377497408683904940844779799397721193805527331851960977288984320257173834895121304518998086569003112494929656966386514708711362726672243407779543702793521334836384010303048140513391880006479353981376108014645713144568926098249298316608983956203323182664885941056188808377747612053929019405253523859933340773797506434668211168941724095970057913239880352827359132628212157394246280644029044543797999209687032808941703221615707854574075891421022237554706944994936020987669601107163247041853625406714047238066854082076172835662879318715977125707131871886667021300656972711960034369412037022414080298128945823108145021963578605535996851982659742710886998833626862518034412020717628488061120870885545842347864761758701179149021928285506042811311629357996652730415382741041220579522323835102558053316239487293061386441123268102777767826877661186126723206451730301325107476485515913506837184719698806314512821672457785259451408167277114352985378446395688608447357299702662647959502431989620489582305764672948682236777004093259066939387198245059035335596661768640478590898542772195778073510151245356726536264595655214067660673188651209252146209385388749417487744263061277344275893196354636364398318712823320002629140714732578205591622124460033491310346676017002379260407806685398773201259554999541535730783195190841434263166314368750562319260028089543050313428709797267557545222385965868680933447400333478076300731182237678181361721905733640492022290301788236108140092351181087096510564120515260058093169633877292455217271360904402727156746234873845068635083941160346453975984093941749259025275037771195230152458653438593424348803057051797538647506752807069942251355910925757564959111641150630952608223215588218233224584371750153497880848418623869173773257135846010765945293187722870803328708895464496695196134996213787369917851096259078392799374988667796577555233613965365613398031860677809809649901951495496315237404520623900144320590229095214668582247223687113293628427657378394689994616405400949492449761173762475957162293245316263027671392378087997403303934691947092726049732306705202585028552546081738407439497665761891928704050624039513355476273505935545956802956313756593616470143885321640968916537291508520171473781475194103283420475842227872040488008522320505906135630672889855612380121601003747837013760618931791267297927043503731806127330254861519600785762859156836612025054286580672579891912280698680133635292822400865993210509237874860218219804165845690239768506766570077889375315899015166702319077382581131512742702280422258029222466077528178876657897482968848749470384358243194690187864222816682020147216737992207657402727609505583401445107817613590891851661511777584296496613488179050479244116750207456574054777004603275650310942676729996414233124543612195993041183268983950644341882078323588660650847372466084619862307519151490899441137667797980259457514414107687099487274939689669534595710066317473036451916830733492460554528119651072929442803072584744721879655719281028385734841621839570724496447664692030317766063161164449741670811598482590136857009868285811996678115346217285795245202383997311405064602572767866879618270297928120235750405385285461351905919913273582222292048792855174788653832878474492300365722094426102059368729739710681022612258733833682616024102906056635041422302486482824151946832740667700247095860392103321761113939089029164988921315940424351625523948933231104758982724073364368564659842555249180879852277800137580488474251600897995289567017467833187598114470449212071999022769550690775050165511498960629284414444842268896845667619009941586887864695735163064017441068103283136073965643502172845745889717116221742462795237496424210018386700941819137234061394117369684606105356398162555377958387370095517715915819638768241973374531199325803274169306190797859218943128468575741559604470274340225734823413309809280721071105728684167718159305093234303218432725738372862289430681996591351234075478232661666354579986329439415693319478352868504421856612319641160436997489300146845866312141289751302281609909678004981547738227678978190334216065874785942782953961710257832050433342563343642454457745202864607719798952480878174947955522742166485483968524963456989500506331295844041171012819326461587434252055046347860024169133979345226003088701065492391655323565043507373558295401812952986754117457905287896626922228883142958107614401163348171877390047024901657776195101616624077339215970522304493262341576417476694160133524382043118486859722096532608183093976833178790780747228071740970848337541817640403644702486015426006668925078363633454217936475675426445733706477679416369483478220390274903779208884426252276198350638348655472872029919706558025130022687101550610285032802180201839716110169054229612948336595047610668919670413313341334271421972359843182193714061232417633423688120136519358785706735007658803469681161669545196012293644108600247326045414827335447103448302158930165995592475103068850958803003754502998491701411999944418612043505939627908310525890033002619970260750282865940398317250793095213352793919694695874435174368625629895266810149428398132324534830987689691292260637920808475300303136801848620267387961070261124945878620386223865621739543350149585012991403956015099934211700513998835469228877538788071688094376076030132978949221775873657796791234348362280527004637688185690730449215968226899283388042538793672802281731207866795844825739149178210443421139531369236895376135152957688314884355362209595647221163574824616115622876582080998554527441079296067819354305195550365685699633833757049517504016355047092707144613087376717452778691133297618751385260746565726391709680821312096938908657483327696481924909288320990636575276157768020980692952758999435944527808598156477365817267510124663402006131339567160652478329819956669468151560663796442948012639737876897664654054572205649590545071708146476971978623980097172279575647199275973948754477075409244958780385934769409793122506767959859447380674766658826135562448713810733919827315671251096462379924165722277773619528805755903189177510085357879223988263021697022144041562753139390960081435106822734979371002697019175679190537611929801897512349929156897959982875908554254904787393674428848857764871494478221159610811936699265497697022305640631192313903921373180928167993496267529780568796506185395222292515498040324251215073668881732518794746278036552421759927031781216531652295668000448270056958968570328492942589207019400094567590931099590492655369499340619183523090987138216236648435048970410306836203530068664617013907691108885627888672954675044574037704681266888940474435692081748565794662220726693426217616547396425605644449474729689946094820641989468037058294598459788069125668044250292693479172669795319152829668750051643757936966675951220717462261924422082275784243867208564684879465712617184414432856587175140388784710901645969408458462269354347061679437613089206131897487397039663855272294035501529465779432772020287448475059325164577851623380894609098513733048061125238950073282957802942899450261419456308455529682681726181305273814980337632742950864063543575553646063391888740615178148359746842815599320387049159259809372636621572881306074765867685331046320756705623849554395257480247721155014011210725013694540536910153297193404684835279353015358978149845133729911661178162544965441179028011361207814321995028287623955416546847262850692834771120012370429456666675538573496176775470663520598731241604554528034203401657064565127347497620744992117876270715381913870654393901472453286383357059805799694274647188745333112896094130964296723419728866807332623014790202850800962305634531377999321796278984345137719797659157755148862134020329605031638621979171441064760271129641608139264101283244296843225200877508667318696239237895142734760366382167266201797530115063169997120298160310417843007039476716746494276549232946596270677800314103959656002637376251107074451437746248746549420488977700089996783294425371979659521042905554811391800848365998123957161855899632543682205935337070098689907056590102218941280769379421793898270836036120325323509263644471255367990307406404575460490569453896338253113522274700971589941148209272725031197480297482446160704207595385426821242363885012370591793955591597012499023119955655432190284157801326316100698664723939059612920128818813504666603929703708935170934662242887278318090632225866877244707204288525441641316902585787328643342133952873341581178968832329152022731894100690142501128718809973863713401611062404963029460485800981327339415739604385508379998026118554176254296146301691377358118396317136832224355733209442881987843982148703861169824572432325189376164514015905833836684691058511190838653000776766705299349880644865907491016419886866425018303578334638361461993758964833655379439379763799822604619931978621192320944232965703132171151510330485700056241661490945369849107531860483064869597583540953472766617922282639795607476508027996705009615289731868233847418941910080981220832899363988250147725816792762270802946761729339751459013623064677908337524480524210213416951745202949557394082209866827460781907242926399544375431184156040575713019621780236220311754794241266937603007598021776495952978341860681379619206999480992106268352029161249900582026309094125981746092208115936594358249825258136508533407969815946350821993896746942805452435823249176483349691721834063551189406511290743674772748215222085360152489751541078720519945221525851863140160657320491808149889445702672859213859188642648110199916594204129451904041243194212131799495243970280206518263232399519114681562937008070937416436634055378920727694048563569573798328919119253167804331835171544211635303149944850446756839886990509973838332996818358755287791587264092058380834819443165181070322467593528056955723582453982980580743433216131159767823453603325333398826478498253772568114504836159051884123879324802128527407780726797720688788079373424122783076807613246755107732722009639465932353397739544885345589517705534778596795919865710762082233582063196015157088850603347814148858327535892044610171698423162989851327376941728742154920174319520699763076377879878747796150640115545488158652334169432244410871497478698665321659160888160365909949545473169970310883124453668064629569935315142542121619033868008258856789101711894821507278589089405363487115206174993654086915242915700789092783348309154439285886069159555596833048719210762335622341267375727154460520066558962795104204996968362760592104207239205853608583991306817942064367443912420865526167217936786695945423193383888812577318625122552759090245165778671122432581486496949069336896570388564386530554338255284243447578573620377014075675008502932918224975352196231451673414082256582060702750997429430788371929548906448059164299410527578765487788569686985185342062736103619810121764263544121195777403181946870343717974075439333783773549788951802721868073063768995504816152913989797235246820048763826445192864443160841129826185188023264878141063740402702288116366324854249746539507593137117508013342483361302536936648301473438199311441794227986964066799670503859463096391343682044845624217152918566174426813177841537274550009748123612492885137738199245568361197442255887213920134658523189362573683660743189380562036113952509962339378019046329634320837637271846439515195620273115415777441261466610127818228367682284104505912178313160901702268729877861016122364065259119080315745144294130538617678743013998328108531291159928576056372021183085679261903198140827634270991152562625899935659255104039513540957086236667875717784947759664121334245667518337184141122457309452165316222121376133598539994979541714484661315771735041718091668883408146614578707403602168991590026908306598541054399261652106646614683026537571283757432097989015198281919837852912225571208816142447974109191239612383769152674444569876337819581757848544178074751037323197437075202820940131683975798250895787882401110806512410180565844624480812852053822320350516555934571878088479683730511225739061437627608963573508575732054212941833098963275273306335120536911039287018046044243338261844757079807436765313665440325033628954541127305388865491240821256672248197196406362159219755524330697188632418382678625196400932115096972778360875304889121147312336609675433216865359605187061833539833132913454181049532576364921139294618297447277968103152508063742362941347723279800765975208489239502778211379603203100710350939542685157232687190029191193520349115282119054287778977448937619758257105307420564609580371000676848666931086947551610510199785680224035835806995176854104824315454298142990153227455616312041588818097680879689749058593646128111390033805332080701662313724095961025073504094143170140083249342890789635447095073181987532424474103358428364696656884153476986922660753551922049063772493407428250432579408390933358845037519759877863996036110640959022736174555954813638402606302632045888785265593079094793917450334815823295458452196908325156040952897861758167438094185983936267617385267667238158902248446823935192445076857903231371621558950619556294801598525324569861634741385316670745611403823204180796404801828959734643361051973253860632915073029656507311084720115237945281705344671168166026627447233920368492216511306669199236370399094752228954495295535101331583123225331141715867976437500418812999641778549556367702343473298441942299834155101236319008599660570753688354494315391436528559620432102801340620195007520299293198070157312815607233741342378569096832437638040862732040843320705287997808833860128237778205106010322854283407370698170580009054780227908507955201531147770575539782377516829867019725521580462080221869710092449114368536686917648869922913578881856496942450069255193437299745548717881759564750166253130948406534019478683877846064033384817136486046339405483850402074246976011144573028744951859971896168253073842243666059363290310209035908351447410075420572659319052031036366889541523876292589619357648408730470466355549551128159222662185655520716847852854329309528898038728569156891571513418698765067906437684568458979706013260010329216305443261097084504684673198070042133882896862863990120461519528123321896048892207385219869733869387885760080064396801768287905536990331040351014220772826694557868661249887140697428674435580677409482748190873969580984474053866662029030682797275361912997645244147057077913654325197081912898457270654244653334540393910943686702283222462791044840753150466379683056212513881285591144916252957937628313118595353833334124291582958419343951496452708668904546281757016711437067580917756930545818930303967478406804986620188617611538121459379671359026733350833511463618017186555099208737087674106058084846992200226032910163925645295079895223357253088548227363839450167848972462822982292987799220245874912244683970426330111784624457548244979127651008242199611130289983697475768111379903172860855128869471859976355575909854884025720132043045061272567181903169855810057138508633788959485053671148972654955474686860428016445581537360483884535871382889391986135432315993762625007497343793704212383865865907621383973596894823064179812400175858983795437650077850717096940227653324714495124570887330489754956004902309020179609372743663640092848039654878289470507281522876068877818113786290530508871196535752250007220534449469677711740341721028334091365901285138904596656665394793341492928598684437143335253155467436080911513829386248958518685984458360988271338605712819101693427503048005438941928104143091496449368779436522881913488383428412605320780012951223246993777267166236423800648271392602256084742381590556411172012327543307309818520020742450396301815968794970607849842663085395825186258420936502912826425104524895202888623435791394732525053989201009186137958708873960846600393128390483359469532030964795413692803737304768240312956952709151854540875111552931105127661801522456482049044249646676172454065754838494372608492363059864659819997723786908695051038865065425711114889623411411611418551805405363283789766696912644091963757602190408915164745953113770361876012534198891291199096660722321846440786490202488451257157238545920907725416233865908488840749945429688734041400313657306149307639337214062420520880815341267747254391822350604831472060237754784328634014224812784788645350608045506206378008997035814354093321372515029028720355118522924878476547496673249424307375212172643986721987262039095466340788155473225359247211979228297612025726199106960537785001208579628900038598019892730963577733967444239131297375780418266065823926844168982102215129142640390086893517009024365782937633284919685579944283478572427291763338126603551010434183682179455624879047048682166308882901016553448464557647699007752018291494376004520414243666032465096258368725691312195546442625991193651142498935885011482835991514757771217202874215081178349854565007934520130057919600282043277672398042401915052799045718923125819673870213876594950545864171380116462728624480720533884276529946176947811552864464828727267085666097103391655165673588837899964649365312619023627516023304943358917168850551208463625447561457422237798557369228228824361618826270652104235862640844086358877079015380793086271754707910505565359344652790045901798530583081807175874994444194128733678513505213265239719659304205530550208570715739484986188144152507684663361918593254772156947092752449370623732314443311897999683915094958844951329430158846555019722189155989126701906225114539327408326146656817923464381989860931171142313808200303508504771944880323420249447930881166178415019092193157112266577623358763031117845287938330502749160287518315901749110319889059381356678077123966493738605107884794246382512634295887179516615535836738674480665733288759979118926704634646963098509429115054730074057032578626943051188449321607707142461317710509458937303068445280306216671239844441893225961228343093197532963214483786109063661962994252474437536366252922543056752950216515758954549245915384268314886112505654443967515180121965485283426027596700192698696884642668705471535364087123826107657997030123655889672619028050942457881000852534793581195315785332835684139986526853231408942315247064713631799387650884533955661899942707829720108450367660742520997837202998911993418208545177262526414317734199611439159629751730670115492379815189439166309295764209164686810265406397825580123720807053634184753225905602381096842387097552294962662492425506252125461007538899990516354074815998632845969747232967634103862370833442303393278589476445943815789566716423982982546213830526568662153757092132989079674122856880507062572459139448709812088538346364189407155717287450706932883261516418153467997148649757003860016127602681299707746641959473499665164211541277195101015533000576860278589527365124196608399789441760160750540981975229845416529282614490813441345262269456622558863157572488780084558233965462080924513465301048181584490118834597252533750313485118442522023037099524102345113094019434790684610197645881382506016802524006374307756773511925820675640800232305956316687942219404659936398239152124654732807620760664117487295137452875338943659896506325067662867627976000154972805332710576537945483114559568103244561370292458737398141526509524916862537578692760342796671102871482610364536064093595222187851159939788977876438154198024492071538216588320168080990597394640011564215419998282640353145872479034368989731389823615151896212168377742410207486429738884476935484913984177878760755959071979322144257402026103813221664856099656636897177281271301374187369978473000778980643776973101117923956596717384438199220640778729485273032543417839512089587253969651421710223907181573098039431329989285646262116811813122060187861318739302994259190430598916104889553288084314793810734917830635088693652974563907527277126594132964440368382030299452290871450467181741674733040012667862492276568267812512296301796951356285040763059581260856972935673595058988465678728102561533022122654442849787752500654100599965891895902115142767254597042581188881605463644302533273458749725535789408680956791461850823155587655442170736278288999231216116709683486511456168609821190094960696885052304495544148820240285934117727731935828389082021050188760460513431417421336635557246074231928995633017900400872081309575309172817236999342208468864182967581477083432663814358363691593521398686180872402703889504590448336272723374953331122973603046749616381594083784931430272616017022181967110973609360162454160142613207905695239360260823292024104147330901620383616201901192194127307277733656347364451927947330584945526248657452330411695548459369827148715861558202566533814838584662791590470568968629736597403521532331170319378511945033313273510655791966787990070111714901254553139140876006641868063026975129003051046216551496331158840143515948572451521733692450784401169388660772001121862808370983338617366654003370090934750816452865056946774552723759218565026885741431936223959680763535105495649699224003221157090905096250606759023762962202649140262102113271044977661682579900357676670042324318400510253183620166954071104205070011302577604439678625938204387486434600382232489082034192351974673036156167004531639232666377743548030217010799137328056029039480952372557186876257864413601964528344095391435547035613179810412598096170469124102608847700038607351794783577849069355980048851431163633002022622671731547653984359620349594781402841727791659804558048627933089663059931050780332407697239437808423451258960250795954401973832832903120709344235329389241989588626961257255046319492495291858899307367333185411746649648547169128059094145207823302080143689352970317135189093391660945750643362947311501648261757062559197052740590018046312376177628662400211889156344778622062317994902800647260829277138083295314312106034553376477051219499495388311881088355996337802975079572308763257300808086113130022200795354750837816440969563025028576093718706171238011577061928606571503508509821497160849549919062098894196249062401846097996057667928866218944683650530433795359724761190001938780730764729870734263433113684228042765431495506262187676777695152172019681280841750207298539906103668921995858302195012905473845103649899011515426576002173771442267405018601667250053001294733530190978743628522610534175481054874804209084014512075096123906245627248375464156215349007193143903041787723199331197142619558158694885221184671785121802822832229868087412357726697223214215453622737997861051111010091001068561432513412565922626491333300656208510169824874255965137574096092709161538473864455285322612362250654911615433807475510577950161142778458161900950945036089366661009253314106302548632996172064312073678197862264508936487490112009284162284611769387322293480859092935018320180100358570992405208157079528777442130716106217986615926561617508950342807344509330525699396780458206628257536691232909642019759541844452350838660493314170298053284596689555510522140213677548277498526776638167045602635495071825081819353228465220490180952697343574412392005759977942397309375044259585796311929197426336935987467248451061300407874690489755686875305044733708090029603071186519420313293223543083054664290209115530376135646778482613443540899714247649817245242169758527375673449385529048718831109864028165821410947139712574262853980410039446730247934185899710708731314877603500353626345736737554487997369191819614045627844905283394258472914845686266310364541566407822520024963545442763788263881940375761255250176460829282391284256109266029922490499938948479459693310309504602849820327715948203624073931954493921521004989502794926011990226103720964175965128623300460997819870588666326024457079572905046485690387315638958016330235962367450534225470068753481361177834052897383535231313367246547677703497645165885958491729547786193149348239604227213645328956202745763880371328428247051882258291257135091105179983277497614796149416215375904989638932213179275473560751986006844950724235690545204881241635860215564960159097343233030763003571802002656591909142803702436211042284610888558223281522526831953969411341465888045051630175779880035488299546019368449899451327795986714290185009790472374966629899127826523376786120918971424550572565540985124780602061815613786753435594294017760703935914523001228898972094847747921360475138152240238533447056002535890393920383250249313148238875616432119659440332654436934904520257776676669289307633513831857678580489446976023937139127898301747731222877607032407830847632980796294150366661857056017087491265862776690915084440041008344736105113122118099559813054180458775847915427227315755343064718892769601984593135075440300789124789233775137704753394449268803520700810996400211682730353908169894213300681288937769749192390254763924460189014868245487402882870162469105810169189633897861588923224173419269185511888484502522772688018430718611006104343671974304990850849166379353567771271852820792857180379069618089891972487820465948418137028211267530485943301138843101416984199221046175724856039303122592915176621702991273696174985552165966364823618139687815684924854496490354844006233425922427280152142505208207274907650708821989395614221632416813277844776630233136011660190019066737838990076098390612773779657098657003578858452087259489529888522808632464831168034929068191756625770364944700199325945985434570851226624402883513903337466962807934010330056525085863408389370873115474605702621900938177227344010712759232656107100827590151528685680071212141085322843692395660070528782362170627112075591150655543575350705896453240081929597194521969178075569061893868844121435570148252104452934129342193106039961559108770492557812128413359013735598791177410017362703945099527293437114992568322729836381885613293217177962990887461584377577338194489949956780095021942458797762689299470452584829972144640812122019690220800973230804273218804645271693613518104668228167044855092293284866815986382027254162520226392006127886170588213696958617609773691493576295140507248290928327055088061361249165140478558865221056387458679436550727404518727031090105478459220596365783253704420970735619593362814488014791526802636979005184071066871902034922875311402897859271343683180422403748966520913555626328182253163331422208317458470308729702101177680668301023773995036712797373027665500733558146185916622971939429862155009154292429835454255617336185799650405644560800152204416983759357438851452466196617201695409217995229617197004354134585307935077868413436327175255996852086738239614259870871972606927460455831822528186509076508808227819881505165008537758959293813330706930189957245538609350182555215527145664160469234402972988492655835854643599085442944455587178185842394561805427180851991848274149906804959520193081549771258881168631597959066408429099409268755712168512072681318001667955722488261110266550154197363872570864856975352906595684873011490997272793488594679359122763691953845198077790025977261104146250241792859400747566788482970405866167101440448477593765939272787287915140173386513324267909910570861702011699323702422214878164120619817933195289614373726102627652642065543706405525128353081433991034873825566860868646735560871390677578041244103314583093459858300021161685316942697420389070380585085229845091654474102000915563639860579257962812253316044360361272123840603462075090678642969889314436120137916551636945959193294521361201760653710656482221730032520775032755455121256707955170824904150891275475812721317850834579023618742123359011751479904796649489214572111851724907048780774534753342334328386820708465021600129641161171022279013319245529645842239677983568876193964389980775041081192982000263171556245152735102218967870188962646759768721704841906696963560860957139843960434094305083700397083828862928648228068401667137587525376663190297221944456009863019805406826750351830092954200496589572239449009047353564459429773828695266091207265595423053426567351575506439146466773164907610975731300011346718841675574369581655361808147287274360848982228897552720444154117522104168479296411862220520726452487136563884072708394582642123123140035459636079857310568225274140345912473272343476507552187763963314085889920364681705239800123707891525843774569186976805724096697944092296022661943884383307408582760296096463517026487614689111282878467204423593782594059645983327833058369692348709867944269839417240331913387060483467257543689905037541700729038968051182758915674684202085402139961034528690724735861961165980513948693537911131025491071341384797135379758562060759421470998408016972216232336679231790500064336038522910198220986212866180977145110125346128860418470001777750720517802496051858748825509976528353421415317271880864434761987712495334830294960742755231045017937777112670756473184172360960735817126593904158133573155761183690217052413727983386852589756129084269761609171814726521491253884550834719150447697368841569208141677149607291293284884363291806999835707998157624794586349744279679914549800900870483303723773034343539887340838494266362364164644939519249566456792573946114297725963678474545098859994589151600528453830454521290505746412627186073941792898832626868553111501520521935025664536553315215394983630552587878699252954559902512457946139710603753058699794639178003839877943953990668369977254510111202414790443929536715144644445673633610784823112691071451532398362810342248171657054364090359401695934625544142760164208497244148332579032379505051809735348319955600450306561298112043536999829505520408109193514089256252398181083948609230439732666032273627162432242032957537055643644003828808661271806352956141363441089521735205680523351432608169027558592581029348954010933144682665235856793269845804864114836667826350026804259447388635533515143963397201949075654316224080652002621613229107622741283549085570538262678913487016034735142750269053104729342352253149445369072424099702385056258577291341489730770206435824394235073148457178133027810866734354478559232382944790027666548808790583121061886153854678974305993507538544854951148864308083732903106908983357488837974224747243325606710604029516392569692578649808089881236065785179524391015910476973314011596260966557291947521398935760256803701812073092111195958661760288489160293659972168004824841732041184009223802151617111657958250949117211414835410169993003469981883834447753208270431832383745364253678706622205661278196111179832639576437251443748991806025464960350836506693065198129568183163012334184761087078767794525481771184391976986556347602502815297136754203558494428359665029695578999826509449935747467862827465224395336558040929640467647908934873408590949553526085676041392949408022635613667948867079231042265713529588308729338699170733173322537911877863052059422845206304300850512155452474501783283564201188149437683304275245541415881011291979457099465505800256626552956562015095042581475739459917830079065517778810850588836896579163120407691675628541518553401490150187268686396247743445388927166217804868820322628690234765538000071162201746853773337868428005025301082095019314653713435650907893609262394920317753815878472445596123670251517287098874785375884446472763491584856800971647079860937927326090134581300384259910618040597108345652316302051947348876586872473529635338660850716164123192172440474760113812655792872902673730293990784962455199232036833920154971814359453802475254316869922820999963832119820859325573837223826217896449352513945305707590205391841196018895589007789793436028084411298736875154932034537975519606193264503967310588757202211164767040151996297988610098047514862314367507017689443450160603243744692304886889655820470042335314131900350450730851569231148631362035746424895721023349495040677064231168755467295669020433479368931280754628337714042374414630094836160583119305479814148210844792653399769758545962041283871309859211613272113156256549563847136458906827961254344103866704781024703661235723663345795540112389107558820460238399482625371661704757405703239948188151296074113022090337281788192048330279348220121696388650739455281460985069961171897890300948456416575097856814852140550162929290391202815056975503904010856685817696384382215790581129890434733458325008363156461342328537772275329425866039412105447400983295474773236656391330556095763209817228919057816247206398274462519853668908461655869585491320015747993386756210142390608480547013704490148585800798551579106773627278023678469846788777144977805176571121947812159453626125336273477228574590911269525092786359374764856650992579409049307983381891176392517423185291389613693903353498474651768688045790069625352509635255682099265932772371285579111009842715286393579965575820498683525034717271944689734677071150404123738421215217894260943077296529099743724940538823583122045865430597671466399066393697153101711481073216827496082460950898938938144038845275836995939945547578375732164838594700896388581856702581210239484483658803664018476161686818212318445262798618059465032590764954979396348804952937950290457417022174999632772382198401203116768423611120146972251101000355264838054360236048358184374988754946605785660255859066774081159214859162986396405007469296734446202358520044844683876668969476550594304113060296895707261427568098206672072862801726219651082640261189590076045119952570812271990318817618902710237581071915295462216391120470515169962666442552733590998549097253398211541881575107337874894065039430841820166998942813497178366137307769506458232512760775823889992386164863261889701884551016738195716023718061755069256691404515566504250816507887831709389884451742471911094576619242466172580423313222264709106725430171228634688913613911752696288671650969078060244827725406676636860336016178745644682824987078037510509847391122840677039274424034469909832843834524170100334973940119756891589426949945089638700368837790169406076129078176730601439506638804851297808079705988781233555386828171298650647202725171492392519751759035763798689185375348707928039807369533904540855268706357420729667603914866200760238648813423115889679557725767194671034783918850049340468724112010562005655754145729619065005020580662988084489561047986391563828263672674267458019429094226986437464423569563219609881263582963320060373648765399713585309738258325606497079761886315188251335264249239045807009277605410175704583266919214440924839469487490583366664034437089348628832348934090316760909382479263202687283235522109661810398088910862953870475127668444096267940399407235477915027881872815241547754818054543724302265275731377185825449099112769683083933340517521319889023483077486571402702441060446634705773371381675175581296083013719567811804959624264446687405325787409695092211870045783194453452157208296191458910175709500806046994089657168953683102027830911725048022441373850766739695717391835011625659832194542475200112939845721100290904025842524478838980713135013294187161475691774603802289568946555283366618781609194523887833039565606969576157549788724150935989397683764623253293143432305997778457527202505593792992940508870521675714047645127728179378135725691415809156486684137237647815445937702370103417911599752862418336940861987337753788549538708626072047243428802842763337102390471854394813371474362283622743248630509256031385239984107103297062600532057016071605784782527584306270742190761816862939623100352231393999587793659625937555377698533143390273502391110778997813607846812166391069111112156377757590128412515186604027193820537221922176588032165584789316657728698151211533004615188143900000842720699445626521201083753522411220775349596550605362263072072216492554629664069024833561011873946574258454840248253590187687428518428130118304340258444951492010698650167790977759768617556158694104927455949323400071627749203739716658322807174607707507000518775696696193594207536817357585366927028961977650175681036345825344411371036709368611674470000454330142924421370165465111076465448773631276130651362327071561441794825911844465937175335886262380773717618233504112807636012562906327583165530021865294019356207681883287617282384435261972233359720862965568005303006188013657157643520134993458458213288492578512543980179418907510184041325186341080126404887176573038982261506150919679286100649580468152536233125387825639798909825748965906886492603590440633442670175937280777824859546873470366533902622809988450504973637512118165217455401836928750552030605254022804428256687420624640480865728909024841606601659422225299524356340503598108528574184916746448950909277076228703657925476568973468169768811677211676283959067398498514226695626386368712856050490379571193892584984149699191880033839866094159843705344991525194895393026052076821818367369770564534321372472203433113994200685160415978339959375068706633788155591824275379368593130118836284905067889124635535754130472257817971045453320555905763077407051438801687264096212885668548562159150727121041976776342041609411916925707354019536964824176034482742107634972025645899730190827490306324378818483712615450417268702624633638560673392560176899652270697178895167699664466793865920020945138407529943511237604787879575024813365099937075365429495256532179489118594055062939481462047859674584584026496687733828984714040927518041634816305008035005080810551135348767182873535142770882803669763912108686239936433034429772064942160649436276233959708116572212906206664392716500726018368750653584417497109941339422597555494818923674928102939259071428775470033493359469832842281830780694946582982416929458724096255025988462210242695170441979168283653255699542026549520119308111341794909448177389704723333785979740840045767804116774996815464404350538548509680018130633880774787805539447354477859530461241398318695273562257020131002578921280332793333737620301560366728301540309471049136763063638834258642569148314127292978062431188186446973257981155019926671028834643102460032703625289558531700364672710726188633062093324429523630216382739386028043629498628938633044582118657117183828224823847324021727565094197305253779562889502536132109243100191090352683340142864957285573379527873937331441279107087299936235807375451654724522054535046029914874987308968587453312416948806975576618946566941914737401573335065262529796247429408100890058025681699408686774355453985532336152136802419220988954170336086913511418146963521405698480312167973495748792008461935818640897269908120713535610886019271320438668499016137622729160484985099050660198674960967166744641036006340417646242426050883027446833386120007865929206149755153788044112825137836548824310840719955680289282033221227574615220582092983500133020896346358792187312683330062721189444792857070697402161321688069490040090399852607414371883327624589664603883209802214503600113100619403799258251644223083859971878112649793787986254485694606990195813378009938578487721848084917514541289893904073872757490331933905295368378537434038509674686736948982486775447394626224776350453407623866167689537222768460361272517798311375518610857032024355544563114032807876506819165933095060079912593340104497177494269446129965559599177207174711827275268806132014663671923608005680576498852152659971410957990301327998910603109020889587853314535563612098243308476208181435176954840454438423291683759078476881449350188175304129932061988400416548264901335258240931722502636475282303053864775099319694406934585871639405080928530545409435552918833035687422341096779092996525354984844154423187965427886791196730570856068567499367495541769886748158289496160674491059825030221472432344313479094901142631756475040904852337820225133057600213950799868505695298376284847508793879289293088623611723518155515715932888457123290066493534662695710537172589488014176813290308071972196439194955172956889994023074440908817548414177803160855137784218086716462430667950961865325354919439077859418363031003822445518613058033766566138591236992561425861169402448645505278289255524120887293152022645264377192200371853643017230776195096914308513123343621985090161454044106453120904014194659131836383469842880641179143748059183290282340328098330710481375675630545301098985017075278461823394778419856680835091932283476982142715109782698702362883773753685592676776564688727314514428892474763283223761443416794636007865367626211610043051238459294371076970534621392458294705091423065125560760527196207758556118773685306542386987397246768587088396607692222973118406964895303694210104022879755931291988012026753485106491597607035266954533284718058357847101197107688269337521971068770042963822969484167345393973247461605506968076927463663803814804865642680971949725198180585808322593639021856703615977935287892928193085099605173429248756046971320561267012595672597415056705033421616569100596410045765371870353561973521117822557550236331514777619722710608286030063249979222675930646504760701996569147425404138150481016762776673380346142878397749990519965273553657302852171943436338202359773381968310670065179055494947843283343174283251547124291559428484987854340950167677550954134770392730431631954034589100763691564948562123834942203182569500164143545911482109683730591008705263603978008797814116622876284179462909841911584139055326528101370542061850963067862775607731437575332738197253587773140708329081282663668663755074211120145801883261799865092839023126148659473551172051121702922667792401365091851577407470104907531427439657866690391042832698974781276434661210719975098261456914675123541942600905961988318121503481340166241327890841665802912626585658778838495113394636257557763824959912881872806298676389978277307785215454626530136966577853562184476527443897754063628144811206672948889331339262120120140216511895184859396416807146575912955977791392519817310299946893079866926270481627620535103660352086088111248665426933661216950859397478425714185622306143088566012483503058018995537028887815140725660662514094745807216063469476673110745113105553886570949206269973187562966663086337873529314478456779853156439570514987117788829771995798660637294333884255497893597638588865114251336719740871556420229166122977085960747541385811254552761274407297875830918041845049423527465331479748343157017204095788158270398373018778489329148576129528145283748686322178304566742826491970188984359773284891486213957947243207317277958050818422400669860366163209188838899455507432019837392468269885092604626177341834609554115476352743619740954816901678528749852420259317455088671296830258891775011207802412604121959113494971020925696255408785432950079041610970569814308058417851503973376038405358552341527815869184292897795015883047222036086061199679931356931101341179389943496500825118228966225556636549210951989334646901571103327766167700144892177568987275948352647464408452778553779302501477762160579603479236917496485118647031722091873620606945253459567425013133780061220201929342010434407165761923880258723615463394913257684784231931862648016509766762808948138671771955573448102013800609795721878539658455400709312261126880111320521810293227282975636672528845322042069543419187569033310590905290216881753503193078575611102833917892361305996557931875240525885303146823040260498820065214534443150209831556076196845964868647859853479530979529144450439412941649510121789945281345291882637303979861845930183511497302575671048487730546841036036017365322450643801495271310611275845727477005344075167501440641948917040132375913046007838467436588098678831817693531242006930377297125878495722774871159461437037601808780682986302053083358926953137380777988917150779733098033338864878793993908320491205427019600600281378584189829783716467376933491338126746130216086177640649984424862200505554326146899797273786789085409418278010157329823436500260186399855585349556797667711720733495422281004768848605158276435391278227776169432428756460743322116048846864282906828428916984588699149031617376214868624524660814122749365066440695076435378029355670028035879386227680642363765553227199520356493365981924107515239851330892402374398752394032687957892657566035626598041191331467283613650836123624308051588282063826505173266384173238126124575922855645468939225065041721005226738675580832691229606241495454438687736957570838127586917874601184314865849932619235838375073346521289327646385645272303148290228755371083073806597558944194855799957360246876775356896849239632755222934650966410392049409024591461006166015330504005553633730454342323655873818570002088188823255730917231198515694378452025704671115165237502736336887527666560049683328308496558604947334034970739826402884649275760777158594439569260054339213583436017510069442892621490095480359652639083512604121516585981713587492693963124331881277606306165125440424852356502479096120819276359999406644505358072146088848822347642283349660911355693683198193105897233042394326368820862014433455637627067780445242564825376187188078942133038768483316807549220077602585262924401769358339357769191003491530823103188860400281716001394381026233447139136906261317028699580356050943753093128683864554879094114594235520742455032653220734416872208745777690816084259510705494041694749919059755647494433711887128319781064772277900753910512395798418436811687757409762131583478799881922226246644504251490437122075688360473656779325720412109513697098682416555223759567707927355963379103292679614389376571520244317017197432833200063797774503160630500673147785194955552929046642132243378064378694126826291065015956314480619497534819915130025406521041846082344235115932404223167281941020954839103908860550970969812147607555679187965366101623225607799101053833297284765474276083834122978283225734560395933481615751995950711994816488397136026886568904461870109212649888781244642058105074740477749538437281339230489418215608636199157873463431840303172510332882614385823713598040635497361375161801964180487605195364005229149994433367717053266595114762679993480450518695022814573811626664083282576589265487930258737259022905780486928724021572805698427563537761375690670670444241247475088116793315461565471569903456873471132373760581128908031090278289432322011526221383972740814984028770469117077695321703464847137876407923230858920472804185355365767981340336992575824870627770180156450977021437767444128366306801554120448876546074858113791696411227778271549569514615771193669716791939572643685692659521549635152693541870567417948833125717539872559058583328056791082976450165608879444383447646143028738241891150437207145279767380103663172027825909068649047763392992270630204682190137728618659956082333411709182980359612757328850480584374645555053547464039773059399682306495504112258942161887238273036447167947458168970111416269553617149026151575769208427124020348519633873986233228199609155286881718281683152644157011717798044077678111500178987444465394436142449735178858655262111059685673662225754588370910108631865334197188691188779609499496047184521011095092377411097289050355839602118486800078855263831044866969026499357040877169671705047391523551626898395362521988223247864890867602139524753542406052941911383949432903032379947696196963178336812376794926780152126213743997055021334402343452078335398157365320211857999544920228667981679888502507496752107924400612213381094694542920848381778835976838775350896504153680414793183532537650012845675792419763543869635757591989039495387563029950825552820643612709868451012327939534639906911958019068267623593897867068026915172932056319037091519368738625849201986711353925594370588394667886006170958473770067858846278517521124336962486445068532680335136123931179154695310457977091572670671683003466905197758671747866799607902532903866982844676782370926351997120007082431425849246223962703202743763407582695404694876438301089525004672052876361150709755838634508026121177234710339584254956577884306603421767377636203568531713385200120173437748295362398144429150555075841343691567457247394602736052234083601731465833369806588276512854110107238312553865833407999115834859876966411177227462289380542875009074161508081099020306412428679936658844731422974951110531238596685276766147233194443933271063782104430109977135288904657481947105820801026056769116086783353753388617957926875132492824294464799138195618910299982844193438909004124240929244370447585671223815828104620667973315777318127037532764321599687165460173007148332218140906253295775750309921911451748882897034869767724353152577619794438644219669680954933500319988005910531153233111048960125269824793669155858115074942528030073090653713880100358275768687105209672025027644421593148062852747770972055783951151851287381938884854283556734213770139510555683478949484029906941968074966897144116824277700202478225903087138736603623496541254427083663005178000359432385565811321901420800717333114388845729266885461567715320368870436012925034691991083740410881102583028363488510548165998621391318702146915974117219177445389269304606901299319890170574846079559473121185036915472774243925185538254718031121378831031211578435337846951782369192170949400508828293746730889977062713182316323072046333922056814374090757340596110075682987265934290893050138339623037332253245389358148869452791291639079264184692824116652152879672994380469034509559737952100590469633439675696286601675645467167452369077596495908462465918096220715593897861173044744540590840868388954971456369386779417918963627028848017600719433257854574734304286736047867512170387076439780764011118923521819620524950130394230587712729829110912413577770713311173997998569475791592517288719019019243411864616545903943651876138314731183688958342794654797788969160517781530326862744052267591378327273405696112729339365082336463220883366883839035873873985614625908930192315395966469711047680191055919423107307957514174116854341237656495373531475646696669807389201704523587797775834795310544802810058941422715115337024229222656354367574263726837576342617218029307041881233276972308821395899460944009162934975391084622951192172943458198569011425290327406419146126975233888446849188038521760645556919583735298966456787679519219020703497461557852952021564456749906457545434377797830678383401225901343944222659203850239252520380730085725876837674796660410886586480139868247799905884821824294578942255089835916972690203481136151751724600773643656160170099577049469111375226370160975966867744408401828164513483240758586584554884554197307548838329471781983620873417017881017906847779454326766339576690330958619639501112754842350185540310213669724689496958619549876066475465147061777819501916914546673804091865404072674678913747865154088807638108473660034544814766372177239050881303999968779520841804705618229887955468441921811119389843850215478216408286881491072163609815712835839894670253077543817989629462427581419781570393627489159064533915492824426601512425822411672423041666120264141584855791503319124802345209999275499385438191237077146532740834797631868647487803078900682278693316321191158855454370343385866897757373642374933653012909833941422255512466730677402575181553423627900856100077875015759797643847450403853565071255393297727526759444708555653156095620014904764792331077887107815882855221995058400344762277784362539343029064131085501733446295757839046985343998175527602250080053476107629091204012628987275154289784195923310064774249791107583083790127326176128104315659422991893190376400013243919641537497225483883952046733379410992363227105696912642667773853893506580947799380224869415524079294258214504014554147419888558737441308447705946829870686743645040910829181416129681370957560934735637482250657002910672369278199052957407001238381248170731662579140288213866785162592919551476341484303471675140165573239453383910480607630532748737484522543386635218476911112042674621516259139807192253119957397052934748257647762205865337917516404452065653485053878606764630892023640048076609643332887979824831492920381337098091151551034374525065246462969106356124798018924397046154006299378137205699910753534641704339195036871284942142159162734776660471565720576502870302475717760063054871776885864369827255940846797512944837799600246595616192227955452020250979446987419982692028112836634519515719486405365920018188635776899315677280549227559365922509762041334658472869144380165177758706283424034848260672983821718763677758747541680049206318060772324000330015113839373679488846012061918646599354438749415646984344638247502585673413112533193096541362987778272646037389259128188587495104444908512196163328756335154419437784675406006508006127344080844976809742647819791789357773695640646784722131195742017217218120901540469589226646897570922958454638718838316515889780154451643437776316028787467409686007678155522203716223555265221929192981341909396627414616461178155447282059223805657394707258872274515881990254411578364251323086605502046068573195328529480999465680263609848246279925936863822840338348321022492597267127709621459208782188576169977851632445838799283108864297567633217964258857867202246822088531046964336143218820533319265520675594066758216964310804877659643783913040803390690594321855867130691375081274807802200476852856166910919743130186587388681037595068247779474613107999460774438195216912596229725123616699396727365542523274208762926171641424035166050141258206887075383131192001295703516632201403675079647342297883143038517892825652767993646193143165651590538422429828210683226815265819753081104861192101538967979451315450396810890476350714053932737215412986515972670529562988302691769088346374625824787009757391964477417581142995668028656672746153518286157144296920212621645108888672904739185036729369306233828221816770241060373441907116623419001431716426461768294652723090943191181143224504807764130125811010221298608863664294322596742269239128543720664924477011193139086082221348013142869308705096566316896832594722735406223099575273975815141409786858903630265321678153768000992818583678644003526927344363942588629727716852927919507491123322025677756637932903989294718865306636651722249589519991387270777810812269445012977503424027191483457070146630270266743093319793355409602826723747982939363935562438869788756891614202645657525088077183502571422840182045184746630213046346621560898231635980911077040725198538705135891025157630863671833054631196020056866732437754685680608118965559565778781681712787286173765224739707041311915541170144143936558757954560292772884012760024338965384206801421248121683328537250248659883194950072854072400420649400346905537922930698816526724045799533520604240119142395327028794034002766956976331530267562669018756627485778404842916884452153771121119290483951618332243354390316208192625897842032583038285934089652815978502299991688290213377662908307683665471167482486299982734108939930948728995359963615837948792565471133540297848633834485814004980565732995207197661392491312027105686303942145755968386137339118096651903147383564185244176806349309270035498939257586433128447514830229619040154311974133718733302307128217383090843130929023229246644376719650521909127091148604058475007143789729206711297804410786720618802045045275526531536906514490847880427542492572636315793807939785054097026063922061105936818749929243153973854806676504114369948291479968153179478090038527566704953239370592002324720448292361839427446261386516292633504566154657539837719637046214647160616324661411409669805866157377070219409938418364443936842867132800364051060202279961975301372952901811557401404249745575218381746189690921795389147916524306993414657552429260398855382864388533821441221816293720513306596192451633130856342267923228013894040566991065808114263100425534070183621204776299868274476652473297179325172391681784326671396838317672641255664045340927472810475497726724269283374372286220342450478003697687548553681740038534872173495602545190349651062038083406668364295928789703147669312607432714520755083851134548925202954224039173471569670641848942483131038019370905687520683629190531321251058432827627232719611854150097190375413280185396524089717851499966836043982441387205428792186643125736235641563853349329571494704510019734561910403778270293967790061588984283762242496731067504347214053318182270549059733990112721575962789242113980880240389983624564812721733259906132098354442100427450567055843559002834342916020599973836656353459656754606771827858241208707899574367212437729748954344525810860963433786755665864001615491386813615374203874203024646392164835960118219991435666659748251525994926357932508611386133654191689122496888523168039757548134828398288738241762794470212972862531255431933171550520270616193854968120523829368699218789619016928022974037302178666400761051360723899377736100695804392351666813968719967564139761703802734774278775515871918153367573107909912001751488392933024887226753058256064343588262707925688082810155452968873486042766870336275045825755356296284091254357694474179853736055369272722196637626209107783210864929579307279409113905572452424128013066942686219769390102143505384725393752025199535520761652417109778420381383546154953261583249899064860867643671709127200377134029852611453424137038410683806437004364576474129963165504693972986345662360790268338455353213827988753533426992972170642629894517557765299769742405556840672663451916458727006574946815337447244846410767845566675178717773969056760800205094054530147831875075286286962764430072635458704164110069816189653220903919578461380187702628302320678375079536562916627492134588436410959240612579422252920223171438050330560845701990856842771677068339427094215293889420085320234510030589761255398599344291985163539221674406763880196037204551062551357801738305817900363579537173354760420560823893687718857938951620711428157915970423800648647667529730988033017955014045615429017610572896299737794539839739880510081789996692859974150995244728406917532612131348163263531408377167557005339347407569729003755124218460738282433069902884536274663948351601420485815350496427708025619583268763833381942240098408356301233591739722159954368527879572674660882282878932954801477330413234743010649745229114264639921047285211473694429567076267817908020360038585899828286316015649962184560253838627909431274077027434580518586668440581383925920734747234755949338746180059790861501499525676844484637390893179847791029993156581181813254469785043217918876005237356114523620254087830896398323304233156173432412087150059622541790581857749302960300727072336856688343851295213306878304510678540069630714383709204891473286259521124853693748678175459159953939969118258430246767151297843190539930074215337714897322239233841962500499413560315239687669639166072891419624998231046536940094499625039649791604132454076661842370209977380653844715582107392714245187320750392186152214197522739229606589735604812119088130086920601497954206283427742831896771781705949619993542143783169988889724687147720234942991977576902466601618288714431084070561926820015291626842120562659732233899751092953558795605133843758418149174984288332225741374855117279332381083853270860427078989518028468075153119467538769419084125246069809026129061300423128636112122867618559144995955281407406772337806582320674400865379880474460399427441198165782116788433417369008222049211519167855885258523619060579117101456912346686616679090291761246248959097474059008299923558023681494853308069033213555974886540766845519282886423010587658094992694469428640661426127385704894606734825827477250014221539403316241117743750749935187893064956666234797011604337184064677206427171632030697684453085122321806337280613439209254698844027419769087937625154580542429122347753921866759020108283195735389960330094716743612632854247955229138777181374880567918292530117335300889193936770394060209259059359662031174959870986160472871981695941992635344848140654434054892651844675590051194663627934887763978128720232780134022239496228562517504939041939844634975413446990441852562030446984936339153225379890446400981237609247625168805925090020222032278481158446241818280993744481348998286467056338145533101113538182354171065548487546566551503247829353521525806982388683028712716429133901621580076678565735042600417278114274208955971350368775647659379257768708413133654548780836291279085214909936388517992681137892614349122124158971474665124894364554031449486293766965365843273935412892999211331098044461417935703424042068164586784305050400170426264577601141344135819556499751539617459429193337311398377016711697157486731616859099995694730597170545701538841220030565123157296444824216763223874594366549253173178798737823756166449419753839817668764146844156495192239962278719374273177016362368302404134814127204687896442506337525912757826001520937726125417928806918551408422642979256569938274475933081076424312862085113044087999970628970294914704122672966667845192794142742034022005961852326356824051952194049313415870284748508608850403950450737674390787554949917407659517650432385633765238281513663178207147401608802362765581524313953897010918019129999350093337847529459993645946891925305851718075423546689697372247725856845734270251792481924319716608053275724436005005283392655200480139231743296023209160953468172663002608825138775101009580995171922617914365242675579800261667254407478951187685559360221577356873767437358685268239883931195591444482417037848546963717067004832075297151090965611310777908181635544969685269652942140480345616897478629944562831592602869819079306195788575027320838370023296991884426778135594940097232776632889712794068951382253047639864364192621889108558302012411297787835931799718490001880964594860148312451222296589014144159049864225295628574350621611698440334777289665036158433325982791964738495659802582765903945987179078437256544873253067802258348799305236751947196441359434814572936483513541031477698929763490965855883058348640943427994967298118842850681937991019046250652284253358640340863457409877419859076584467227872934271087393928825259039442282026168133237926808337883907520330530830620247488517562915641137555941380519243976365223575197004012536185559852736705430084058038223180382252214733696073176757076081221256070580581505052315351826367486804184204740322411169563503776524753198256437389412081543756595406384444885163977916562209308843196509045319101660668201830126025883086333812585652149960180356689544626818842775251242099618049490490269965656816532215423666906391076667408082054418304304483282277631084943799644068247816688506131731408390387125419083779193828389758019576041791326125090922528165403184264954252467068048576338122435427913615207168116612801475457209251704178079450586209304660638122656889272122645871407794979037772546272828632390402111874560715567929385459133835453063404279996179220692661395879443040853515246039156494677068334895147985374548208336534367487507785899990984441046949120439114584327026080495216005703068295396162757951723558783570375945697396993301081248959264203445578341222646239277161943741869686270569737789724315486569139421277793519653472166951804820500551308770854762114891907586943646115046732198611788326609003479372812621484220213475987486895248672045688523814682722167471787874993215516201197653979942866908736215049185951423094390254978632259186136168733761951037467004555107555811483593195729221059255102881602541332512283548209784885784955921558821804522204183004628766678349544713028678498362067774727311227838979867070868719725973615832857769494569547171211697963170541489437105301252760399786554578496596492004138071109221520397747599063278405968137270639708477850640597042425300215753562534843905423180284194928653818389301611076544799380777753193498968218145893934179161934108586476781870766027373554200696592082358738810846675832092944386569363940164523058286934440173764812205968706105548433238916677938220178261629273404274785382689593317707195499359800215019402902616443256496695357892980591983475485138503529293681001803810134854360666212825152236386473543006842873973863568749184578616091611631628104636031763077285652344538385757661522766069501597152538190631896049239395583027336490317849079272204053385645437026856342665193007168695987388791719385409715917407424989335088168475983370218327634531148278807272035609405112683299069030046801094559074899059889198820861905707351548175234646570896566019010985187043150654743481666468177577121232816307249910014099028130178092736461581097542598134442833705240400915856643529818371949203486123118087707341694558562983985145650673923640255829233667791778950588984456333504438194183797392477200331847816374967258086254373580174894767607602824442436884351792824661505225947043360149698017920008666204632447904403156109164383705743197427063130891633575643623784822427791433340801030946215914806034444684094112484183649077220425444353669609627622735820353838414629625104304146062054568237707561459255809741638383319525744453667875996343547375101026567227096149927411803272186069014459493738079737774430276670840593564614574859239339359863839681609128840690070697253557052337159756398811905258007159045659860921312222530572866694086989569490124533317263400779793694668297107408281386584205739458956899085979976810013752006706439423421052204847048350460333169848541781481762504231194497436672098740532086616852431740515712827735918200428757744244665207299641370499688169613337423994079034712716718494842844185006498479563046412840104882159493060043671459426806150938478218243212734065658419971867147236900684605290958502880004270693669377772909654610190973731068341541337608705323201417011815165855776824743389141938580858240057228992899792053102071383786383242447780805704834069036811499180959149775530650978783185442833185330391470070700567149275570940845063060543162402409532324048759170786141106271049487632262087605850701299291114759160130154741673113060616349992448978794967067145724108951642911336207728637239854310770783539366353387019342557692574238426254952630810644797059286619425537378092468370805808248915926669792855763008854937599857749237805157595659609595883717281278523297701578900735730304248363152697002641440406748754451363689570111191714770221909437826118017463804324010498561107964927887756139065257180417643246168765667157576660028877021420060115005731478381003129058180530499425603483715949570865620741587554372124808460516810290229490955134443251353342788123514127669143753288783268381839108349407633809300605477322753660650128863090860678754468030755284068935602710473934530205162459442301262279124652682788326410748883754235352856870805253727745191935360191149679009745468813273553727687555781412351176786775144453952075676066523238625501232248125893758526221066800737863595709521492837506090753135281187925876792236802939995980168561500189705821105936190127915416252640284836585325735338082200162628096136592907066407800463176154653161545522115345862030112555242653103612178997641505715401651116943120753158339495053710311386098575166794824430312679043801507795601524955757151762531447757508535955191488811283164374041830521912895851492734716230478952856825113110539990835992050185618003184595391877452423582021869358675319040087264129379042219708160447499727814127358792127455253499639215418374732531923759711460347886094588397329779518918187462376837829913948200209712022315461858954320415612496831378169506667990787559717203278859058113058692005290817720720555891088803636809376440835302509453930162627906650370870140577798172906522712980204092847217115050039283288601224738261562019588523208640680962077655622392416283753734658164967542563938611453356006038172929074102045722103947919771680104194241334069113998940412569756194022541917719708816339320547143512817606589353293917743517780627782477858825069912769585293552628391603962299839170582038470868632061062649394379192830961315073732365355799474166305215140918690063952548174700900574430325480187001958573469167459390893452544994262971063924432135006431764581315285319591134785600395585905019938395576736669172569287888630599357206210142900715217509645299890774729425578251732139342334433594897870899762555730728888541497907635580354096232764471914679715535136133312208165648990801320155578142479041259105052147609861921555112385581995221617514902390070176506650193059288705776875278823298516952478877167260339810947547667387245402929838644639619887224955768927320825028273013547301152978020695914132114913552926836447347156924213821059499152851474118778264153738037544211756123072631622968353015677760183880216756594297749886926768238145143496456752779978343334314386639490562417001187146626715233257135485444705252222361694790757221549664750024465592574377183028570043107601459506752508414801080271087862710431244412463488620393497508868153929942189368702576514955165205199112261372944695515429569308349600787181825379454658751265334151705569515611289265962382675763086700537537970288229842004385778903892881351265759338388173654397469658646899711661092253358991156501371313794863957892940351385732722038594846031402241603407349461005780343938268916279475204333256902330605215498374300175865254622291424097322711573994332165382217534200541896719363613757486622028350689130375666447299650709053016441993912529494685159088141744497609309355547300989791019730814667871273448396557838094945071745443294132371464924769318496764003553286281814418349523196859184674553806107586422271633077936760739102491156945707849007498709866457971158906250685430683347445243189612458475006455134149551714434984743653451393191468674307090277098752765551531682221517853319958468890734096397048754389591609320496980553450147000541839873874500017404499037824316908478177136798053290237750043126826368624118124470155027166593448170746601685483803510289402246912042867323853686998286549746053783703767784602776520949390717005526893186624820016520637839492180523859504369968498434995085406223306237390343803319335837412735837767640490264231859682617065358729959454556519830139984273977612582879994635997145867515216019438729754391506051675795665375976267421999934397189796205851505786637059919491642523120716254758829862600874919712707812903947228583787667878657689650394143383914560985452413324852324659483967925780549726981483437509096847215947711060049421728240116466166875497633775375089650261795908778948670891858030879238016874868948701294014159456056778619190901672841488936590164257429439806280145390413913164894826499692478865832233490475557064241389056420014368783274197602632190207111982241742700030836695591052543508795364046370660321023260638808090323816899562103313064230353162133003905976503099678820302287444747048883946817326234426169003205223164590706475723145678071120977009205639838452041005151427374115503435750187671585692133864990285435419610052139276056948782263617099728602018555823448658560304314966123984278160640347795024963130803085526514891130169452373092231658089948076278604890460734876330239118334311715570974331264728314295985118014289157572099984920801118966849158702160081057739902405217218688688368165511817445411460385902410990468015647452718656085637902908096342707428600039986632571757669461765719426821386304452782843564208356741507784618514321864773886351856602753189742987271617942023092383645946822712284771203485654614624729961427484763653992542636078360652347907055109521876326671604693998277341497613474470183308521346830551538070791682495983904303122041986309381076415174494954461329727053919517885541827130758561641127147481381518719202808479154672693411153457836142141977920834614769517394096423532852944489697163772184190815611667889738392356714445035225791639996732989920081302279068601910385158969690114771096598606604529014818418099444510724125490377812800832308531214305281678774653683050906005286681097133590401458014954120851421498828433223390399365859512132538941705981234551653897286127474504262321519812454544997682121945264272876692975539456638404980702270676519660904207549440287518251946870606702045190719788574351991929273283843899878156983212673120742152276906456627645591102483690840500188301564576761746527470326947066347764327794957571785366637354124354716968548502913834197525145447999082069986964322924840792302672292340899757978678516536811874301307540649230261659985188064157739856309691240375461922569450509112434360725863720855869030777766164385913773112838458283071319474805410304416300656921367795522738716497113615472354838344413484161427379362688600501785724433967150170735998281558219494147866900746739080537791965818816544835493184761374684641438911650654484959929611523904512757692221982859257047030081469281594366344089167991420996893813404417414179728978739287956461487454039908125924940366683423634015538357974698312327287393253784166933148214568404314728742195187800338382365634452622839964189976354339857836297251797701949300734397734382201852656339695089003264757846499297362334383025092807087682546867078184885384956122166802815102415992166707056278611869015218049227580827080279477148232987779228629014380392488530811384673015866111219498981265533769269908030928982665905511762264474530472282161432966122779519396100059121985231774718016060537419956311629656865398808402808326345680444345351012536898750955168224760292905034824113832884050128103799882776035366937707964403636544215924725153781274534043079920195863703468247824939403005940159491260352257624551301777216416499650316314358192091533021815773518325665206964913239941193110349539025144830656062345068410393379696284839732348739552285885390505245825908920191518595290500023583131863164649719758556057733257526750127537092482034915188248048879896139995728780409472559617054812905385553903914163281851039307249197170121648921458541196923742932369118771546907986676133147447043866352010438166191902393443019965827793337020272812186447970566877380044222926393065489176204733346989455244907299245527047028466485028184639364816977815761849127176381751925323778932531540444866566428512827651813518065671075610875227316131254344051138002678596640344228851739956333679956816965510482255510508369566917619966056813976906787501418157880229725185858786739329004281623441561604963403241688837501217663940490843372572644731025908196036273015085353436430086448733240818019018049547147625067369989330923972058092224386593234299815890691104786788457207040611833104613407960750239591710233985825381788616660032918744795963170676213741092272690217553341118911326549127541663950598397251043246600161190285311393281011106018942084861157142967403789761040129516953638283037612867519043565941186222441830029455709526703428527634335785778356100759554151272072595805085423869572826278421495845279135480372521226519267083350051667269902420295480550436636736410413715328432055527645150066699865472931185226420357073525169956830906913328260996972369324035125275453540247236991613634800252702262270005016602566073529212810394891723451878360060689039250751555332943314394150451126946725324131942795474212235775887330728568101777547354493532079102994771148744619138798310711338614999020208810005634343255431210747817989230819363437974384287771259920550746243282470046253424716670799429399436393310939101430587029934360898600995775992460401150960133189920770822057779444407721306461410102924405274108457881905769262587114160511145152923936119526249046833786699517259392243069826809931633470349837063202794909632471252552712587578498181447663209196766283176997928547328629598328223982059835031558767084320490475537525796115218296561053725441727591449385559012627081965605121506184720041959921306102741884098514234887513066761334118470405063799940816221145314307201475964382103192651946491668870741288703085138761182576621705080973276581108495827028585774376100864087095132326779294808834724583563268272697667216454892545404025763567318446780558844872009361415310805925010700905172054210655646404264490273307213944289612284042762066416685708265998332849730510140038866192752112210822743005837438249328613988386390946793399533114028542513780513852132156926292802020829815291316267065124469319185929719260215165655278685193755697888418990336184940849864138945167705623133711043338021561120729497822241039611225802847981900806280982721850255112045102995654708139488810413163293049172686866878019264221007245829010763490971845031790835547317346278282619734509759962108606637709888059338385064496785554368862739405843158278643349054875617847800821313411314006510005618646378931993249746785412626713675190507805196300613072014561746115588911765185046451252076245729507789230412716291510851973049929001422316545007405115294056031062259968359391191095773054084521921161739472611471421762089599747303663017319639148407704569281487141893186764603133088463932424728509544416095282026580258817540973585616419207894685297952529303477050375477868530767470506824695229505287649527895371110784094302978364325835948529978809549928690901393225888112519516429125321381917356473066281812214278182358158849362909866766877997654387151929920470586002392207638026742650925217574559469094731077265409227233768224848454827182692169468905055120246134216038424920068032982163047022061213666266704025683600039831438437873890476732799596323011634841806714946086528760157488166743958372166457860395551342282135099396974588759858108793885877814073053421595299492720609749512976170660722777402034077105894001397497272222650627217918646760500286270637079388712893263017538292786473490458390655019284249511187128883300538135416848696087539981252954186705396176719718689364264647736593001742613616774951508737167209449633417654193051504430570020473385028116538266956429350589170055407468618006153242683290822220630438886537722199405949517766933329390652737801194693267347994199355275213831890030883113154056723418049405087960376841338580060645208878452879109889242702328282309504383559846912256480642282515534118596134708519306469862223261791507740071645598235507904907305581685745509980329739351124702662090770956286828235026090324421483395016999314241849191606587528314179063244097076877784655919352566310892747239030320271551010155219814330105848629248802623307113377600129442024740253246035768649396938756607753027285252475143508941014590591037941434594634390106471302307843224056061726888259802117766035824348890079694842140272586845454246225094577037448192830582895046704859725149878778751742038603770242005585411596502047477977038844628430291970816508091272150794211691654686581643459830151830289923828940277070823063070595201268418730235532300060111636695314893711772427674343532013021341878814473594551473450722665795967795247868565634438133479671948610756099488647748535888566858830181945417798087561558115015704222751073909686566881401285883912145711813745000814797077678151111165646476894682736982762291812892623091669799912016927139536648314611433445215517187914074598784347635558795634735598921940989372042294595654151609805881103303929061137208531659683618243005202899616351596683988761616094847346116167040136991979613094401950716205736770006320223436722909706315214114326801458939370020835549348653240129662393588029355774343380861620816119613632836757688114703395968564910459848937911768180566607355737709527384985907012553955935322623533282217142165978869862759838477924165756252408244444674848701291142985017986603030268848843084587737696654922846026274127627337082292013420394738773155124073306678950844727635401632485581734995977267846721764645836101425765257323269999261821017931372116468952211820075420608786992162447476718359915210533214556191753891481953310892749457793326885790304214368533259195096716322655163876833031862787057267885745932539941278383876627935911330673575005081586262985606283283120684738920755135101961774832468062452423271933378525581641756327867426515756495615090777424302000729940277740042473651436727196235986425542430289081715510362632669426087167010580039897884741093613496147195082359996396842106724579665693681201473733612373655427694915603685406813570686028261527770836764211133472333598315021313337569122122766951205001621539318046750618998051580183986859793584045033821399995490479947298107408877924058861674247155554961601901028796245536813345997999962608233175806928307124368309771348254528282838096854838089931269656823302412626235460342069644028577341459818159295903075358979748826901990983673095397251231417921756485815614893121110773867731710418480029124333767109948790351501188842250608653714440073128471170262538987747758172900141386484476457981693738274364034616434622118864824749338819608273846101485349345131036725408211256418109345322016893343613924914013957864706485440489538213229230708888435915528065861726905589689430646882538610520050020856445061492023556312300000055980481810613676914766556660377330594195529363625200527919694081515120585297682090659967649112557666245786619136978106968184802918910679193102317694692691520133583788408268728470744115323347875512404509651759329054957937948546215388869272688232167142038360147039916108238365193557581362613145830977003912686785848050941480269598108822921618428744098736777793695008389210683567579384089755544450033363045666023793906772869550586851242932358300913433470499432303739048825123060968593077337379868801385516711812716050961581257947418226447471015041297499921484182589237076629678287741748974403776362105194454035953410202874040001743122164589003793425026578753457185889727091220591539538881530447493156883597716514481157399039398523203388919507384110546652120526148192747175145439207914051774485723807523717813803985377905150597375102219898099993169210646440508003007826598145967692410148224498423259223121589186663797603925714726412765246306129895256622042100258382477262880140603273814710812812654296981026738487635478129444056723938951311728883479532789831588850549664033054180932115433338735933476019196977548841810060898678146754178033802371220120780474884165675333786782021552289759871161267466435257075100649993046595857584128863242334617966897969374187928570119715626481043736244915516436743058155898154798598073028569743148120798334290515256402715118455895459931474665385845799320771440143206731443937231381480923772549519153905981840172312135033563404153136720860242594614046816474333189325279447954138003916255668451577284482296876473187050833514005936598071199826759684022156345622034899440405880477696770413408442690396814709981894120315394167384229646904394327620980308808455770630480256162555055802547899414840668059712491676913180163048010933454081844620131558503788094325579620085476432847564803076108502049183944072547057280738922878440581901201716614582962944633168354617312413166764419032251117988287221378437673277198001784843321055509234319675793224321548457950698348530074675305346422047217117597841772810192333384071142203977672024551607635327609307346937107360148796372779418575975778435867231831985075731794842214112998280427271250777289595510855767832788922378712985916798279998687158995236106327375493053519126744838938327868230042216216199800359319646857559709998606947129598617300150476887929305934869703111920305990593679650187287883615904176853094342792305728083547516686470345973925383820954569622387385690491333406622733267026201948064275294006751981502125564824310392140596177419504336574412971257645282058095732256698483252582231255720021255352265211264463753049833455646552374381743134310828452143894772633909463642152283100486380654445710139278652406893769011734487591257041083074194538635634799724759567794846035769499460672585656971094845335378190457733789668632585531843698352111446801938292579449072395739750330424465180138098427832079176291046286682778555679311858508096656346333413939577284872742609460150395707361015240739836689851510398431256541910343200784893094786530369577395991978221781704912298244690075165547636749182485465623388905885949628421666740834112777861313698175402612496957180036140738918150708472410269204180611476276721362747910129039190884018060149481894827687042282677195779307717126343410050867515390971489749443503526246000017036985953785127734775601044333312277811206980002590423688434359111487908860812902137295488619617023827705914602632746092242788993604820643062507347168984666455015782985342690023712790086159403316179093262161518588325447119452839882730974014122726964106513234793012546585879893834514414516251246953852999321968098593989574634403004324255716260087693872151105934665212499880202374283684910448261500012596215007638359440705953029651446906998750240826207327280533077205800236281728414611585931715381385227066399142711021211666915956538888518533737980446522150280523702983399117418358790871664392474217197865299105164453981538604492992048430418821829406519715262419503307885863118963615917818923044739662963960844219247167907923611663069691924157210148192843044764714789681472620279990238331122939290898320961255401558618300183035425795010327653846080443659930567914235679113137871040189190413566055222394875429095153988928981810497284509979405796624097824891489071426043805206038209301819213468151696018536463798463467771316257601785862995134073281586000068311752862023425730115541323554261121085968601062720154972119935252778611438705106370646451530216624573350035204326936233833402891158649331840321959868164114832182765163041949959606652477931836917343473628265262658670780158491391847345579322158735709488508132531415017153370556867691278979129344277809856607461966531535297606388835288041339776596567959408953036601077427355938274119428223736603060504152060101420310088366533958122633832662481008085686864258959329066501815076573029641652908093191362171208286661419240704643488499772754399579916292737930317103327168645310782671403434661153883237814749414236475810778791057727648462658207797035089158236157210524232060032548354082402809519226309231801730143152015542890102555139687571946105173774912025865373683205689009460625870969364957996839168112232800871469481180389699365496161357241706505727243057172348902696131032229625439435683971728155427744833616121100714275578095313274681429836358061770584017561951110181076152003328163633854131285473074873440106369660772695999130727067650388165596805338782143361578413988820856107061411878403538633847263383189135488994373538536293654901606916445754996326605903224710518181171356987648425209362586120136611389689906800991197400342828111413416818305460023686402692102172021261882892375392334043776152032882158749449452191691754754304886799465985001159659913431822672448392441479970999153412034405547520697295942188778511780241530280953597010442687061825871845289438029857547337891189408940711137839404496272604291098444099031139049791465379868151742716552985937544039950332775329898830056096697274393448955704776427787477972071542939418146273932026411090210069614178108480951068837111390602880617944938667713965588865862586364711903243627741717169996775994004248778987332306423409167851982768137889960965417848881116642469973768124968638757328065071737760542063945659972972362453233856552684297235756194342599522419785674273787859518394183062239047594451933345778106176894415447481519516587783959020052067833194461714210832466790155459994098458381947835590171611909053144496209224736179136493658911734302952201878192582314168144597281069715312453906666786805475888706891299330898137498554575911074772265694823877101522979067737827468890504717850841034945003350527518669482781635672127491550287688209723589720481015653282156677340089428980363365100650240848171745644619767440870015833239341965935891546344221304416318062396322020418594421586874419960968507339125072307228978571549400158370527212186353392961949549114061132207473315211709039681698105029739454974039092474553692960114311976204112447140854640622001038850248912191025701429389794410326384640108615738851482901689070047362187408590248074652719735573764680642776240394090446805389998988497878548936175742469925632629623730385653943144022767201014653223447790251279056657468262443967443942305577924356072073254427868363104736436915782787502097249702290715027986383728945257836105295476326201719735459390868068403001577151987731150355863183947461727084997649297235429928566786128233536998793412339567307035793478713638582629135070981182071241302167241746839334858117409414117795633111923136302292115767772935735103975683772121356995243936294647136211551028721155096444343234507462007271755102006408000422896641079353560989347429054554432092035069779733111741685171247600989048576537103221569060627247476818147084970175653294183340092115043833918377663640553270334761550745628357214968513705530200691526430352514775236263170945758515500305436307184178198279453630588020829195543999917016846077969019110848909497816891604086330506694058580884984418352553328522799379268810216135791264246970539570413519923528089982558879301280761341612272891695083413596351839924667551833800672234793957000144167609817377013543216271068393817461680842447545516662746631182077183974877328399192358834769640983544960787979037220655531629295264598491505726423152925751569362429910459207427954828435994674158521683934685720778071156285130517681109346859094302243978297709787813941639373396884924055808868841103330595658682578533722882181703435416451864798268946127520326448893558571598866617299162890037808002382772472444144422654239078188043584062605274655820729649077098315139725584873359679676285756576979012101251548267496958412270909219141802451846819058931198774533819467070782953946063277221654932409134604403930510914830446379497171307159968902749053497897295118294073277401860088767612106559422291492987603449134375241804891356503956318454473673800774693482271706240449540202429901026721922650192328272515828713191316418569825042789962062781703499036614193856525251926400789653874427902780587268236026313891012604096513487117115466959617859488870296410521657501244627952411136093936262347885152763183237604670948411752115828611161149470047361032979745622677884276773089185585706175980678756580619777027777136730545741925302652804497930502000438230329714173778118674246251762515661028718748345825593181728356434050690963599828220630644503210033766978597007246239561924949173297023082436739310142227442565452165439615770756818174735762543141726867445522705465205058233863391803954241305181109454719282593717795543087551492931480683340408705476023861955081486007613558693974090475294663761805631911090624654588432043300251763076515230200087098359100127007938722914266138519385319475876447496461006511465270837734713305118162521909139072236545814533714197340357890048097681409011728718991839530261607789646952226035654829378848236438158850785989698317316374103263492640258342054202213808492257500232603584013141874482413155363545187620139060237714260984444422051128273287094074516255609870407602215598204900382879153220062521537669301895632859199684315014296268334265632937541514237930878911346739078098714188919412926962014584560384784732699622336654072215001820609951354306471268082543467300863300774066064943837799531979312622481809833562086694770111299578525902673795853641590824835054590547779831876083337476697975852383834774238833770413889610459229178152809854413280136751968834196864113182910829200757079982260457978101563296686140353476111940339155323349656302803727264201075640418700288641366507937980352214320822737106646789073256410504642775582157438607486172990735647393563787764004640220662626595593520104580444097703197463663254683310250061527269185652456027314452893178377142464594725516988362036234019189070338107947779350086289273937322810682475568096215050184910418288396714146496695853707037050849736762290827222526415878511775595764938494030249565739748236598991120482858400622719319015812953485569745714187638421274285898022849612921148620362506800048377670003454893245708978942081330994175202837437509370774231232034774216448572046016318553697456552999785137203966495618201776542370384490191418300278351550201599701285558495537126466445146275160409826540965092983524222642348451065976624114497676411880170551154857005607773030135898558402497437287721903838514519764520563401250995678547344212566258317978097176964710177388966160550743474705567598175376628951215317815819197810197202102764390522850992575466880084398769043027927955427280266349928840938867423292067096027733076512131912415705890722267445818332924105577723416244915107925064054404978623429217108607285202279476081507558547359601594878460475178061110298069738053455643985065151818611012086001669233924721392280619171671425669792762642820146139449213862711468494450242997964008329061750950073616848200258063650496402721672940766431810049280070788151861636789340331528870196075398591170816078579632092631334235276752734272019314320094268297793756111226684145083346000453859663486097264132628334623406879459712240399170592695929484814931024624394515450688311028013095911041572397095441306216736898382956557973863592176235459153498527696673208893134439851134208922646744004710506942103112641547125864442629325504302062223768055323232152986974007508280755668150416906774463661387757364452180072318817352245106798569309743557788630266107408561486086171511194856955405610951555976791532777896343725254048367936382982506398461702763262564949316393946791063235128531718022540737382494409776656633984470440932777210035094486602018516098111532245781360038730298766812526857916667265997574154375437323553098327532482688838446958463470921220022023638958907006059809650488071146177497247057855143454148597348151484200688834543121144790798020267363450581480354515234924338876720714791241945635122838823499481591782804527760093887487381783263596201949855770752243807970497052302837235943945421936401964957299230238059908012634194188687398738295840937932339533877330155472683062769073184479922472261288952991362825369607705838718849447830773032648678350940540856385732882871789075733158895739265087361353996086176402429685991303239625593165713626033335456678566226980300405729022101883241489521803075619488838465706595070595124933972877440884075622900205710710836357719993037011926133658247039808603841964207376729645621597236604419393364064721397628150450196335988117829204018365611506284622081431862465631609552482703582168523424667032526097370800746644505457908066383157003296985337342262195495801083846385766245844989944558255508377039077540719927541852752162386909378816652010510057847501560006929257346731953930712749426213535248625399025074167548881414442252844133833932255455241023033208218283889622252593151075323534018677500321156550156549412862371196031153604879642011335812767909632545518797958209866311534509361774299658241473675422968113726264127645175918521704599874513706470695129200792603781132066579785866201026982703432578697704199860379071620612159962900945828458725928512270259855988401038865990856206236346318588505038300618719641844568455034504586607667369096878251192772685042379115319857266965086528334151866060587297448014084357744875870628519184325530819206730529715106727685264090406098839194680532429257182948892478268679464135034014360262607553251862596371233121943574675452269863022614183748403080246473867718230645562431111367310595593733199105180752740847130699818809155711806828006522969638876522617584089030110243928555669691098909353306568207277555150479915975635568635072426691267622245722249737622619007336330904868585578346809370599701013402600238354182696933914849638423083471589300512249436273862222309252429630793951096728571039159969004416144668004409232143291027721923965362499395505051746322255380354434656362745068210115905107127541036832838134476660732860464565493884943350329333325498391778447487245989599455571128308562324593927744364654252695280175102249362815682197646933529111137556488701483095041279249830469060392563220038084867004837998358381232237819465885127050608153282325357377411954622588756250749689797035454872669919130296525841342598453628619152542179672346474106650103317482846678612671324865647432390421904060064417656396112531416777541766256243523660967376160241863704199190868317832596634983824116573550882084719725239413508365554146863036848020892536537464891955332325997975909693458286725146839427901036154185294882415614358637408078802896671110735260827987144993355195207686093781652865921854037287802653502358698650441057769235234012583256830583229448376144910974005919291643413293938499334936158917312610879983475712018791900992417544324088044452383416061528383269332948438303020160465049139946700420017742373967817817583444321730057559930554698553244218929528558304833664864157470656101886182904912857935132279948437007272906710541197104502673221339037242580988739836453204929650206006403968353459029123814635029067729107428069000473841951261962501533535954196435221118489489840742097432471200326155833986647394373672004004377042871049202343840513667290365795217046524613001274833680230171036010932313996124490195626395893591371942579955323437171412718978703060005918843466247727413011046471815843489481010993847320674657909409611178136758112325574519718390438563950887977159982176300564130284313138857933299034590282391244206005754217432857460750683886469077670208063589827905689439214848481995186696770315165083705683091533335857773196683985389987874296814520689806490300519446652633105703035387421912816503480345413234816843648536450079479374804861944040439245920546978745901652190557141110961214974962560547250690814546603073178736195833331538363571755547184927230723520986083651022217085269907562239920944090843981033442907226987400023786564361058149852055722575484987933332637412107264945112256350818800364050885292366161721382953685951612475065725773243702927277693098401378454973630999564899699975631880321897200635956041453332505592180095721669724950930737070278386761554693183041080601485948721663752212263659311686546244935119286497000223331804963981152318885743661761238861341160527220215089330009516912907360676158709420804602037366084228316918929965876506537691612706615450440189070930734679129484190305787702614591397112411280615506708968903086216322085772978553160530598831632696882009827778903520135044122098940914602609455711401881600330690979664054838131149193731358483829992375670430016707665374305535788382548783224694842180321613015145142078897108021615349375781430532568918418752658804473274457530006529719617302876420668835387520635652644629270939662952375025141175122164329665541371489513673690961844049623532776412452488198904119282301562010583867207573806317545119118883217194984373470270785673083226062489614972875546618618271096834799514333867769835818424637590525585278149981070479775057891680356509951281928285425132815316299465784502931028337307239130847096917950599473945933191609500052134962598145625370043491265229946220714596157733227683823764080339984019251580237695756984365053987959482381696227233899315641390300463402674599611822211635998241908941381234082169214582259634054585913255608285905945011858831873081406057282759646525259769937346594145208103896049280226029173106216899953243746785415892325036012117149758583863015647499771311208618732573185789882221541824656825171395207097243878240031656136901427001637790944437013921959534944817918190060302649908815954199172847241397602648844519755967208749802226450907972824440630666260586222193536788026737099407507992883792006136113203704545645883343044046826009224859112903748445891323729235712234312900348360793659980440360959849490431632632113578152940734481454658601424714732955780983995900487108433607143936021585502946594186537683409976862076665196109306945223296417589869415869010185408594413040984236267248526166738677413595644018857827348189584481404563698974630580843333028688892151385345610607504040642769469821161589161199387340025555506616785631726795773407144684250047032720712998797629486142271760037935987522276115677054562550355090199436599599930480052524420344738750809796183318391686643218616514160861050906657097566238359949291423267061101187515853852815927854056084411991817403014775472717130486030187806409702000055081998988357639623366911596802309205234897203787882428733575382088976037670587103528006996671759649594105538433253806098411616493823650188134747526825338712341212029932782130288758184971003332281818722880269959737251479483148791895853969546153986686653779370093633650887714275689802087547667522393996399746945466390785039148494634804185495620252478257178965165859457030892190842929171343808998713387408859751683660292944725019419082750528415995485904479992239958168878312315242008865320405609335936592281672138145749046202662349008993076732639352852195502692327591351960994006024440442775050672535558901638011848964709422112915600369191797204067261173092334855773440467034967395556085014721267210204685959627625022762856650227538143494328394251185582233020755452607655834755638111319937268101830296056664648589346709025642393214262307114234768375050423610139119336671997489025016804747303013533070104555441325416397728609575152622309895934719034970540793931234870240189344327138254725579869673953997900838265668603292345054813664189584172436465616093895001047549132902073154608833610937028421418449762799645108703515327124763106831620246018698237650271759066151274917906991237775346944314297376669201159349748218341262857169584767435531306302213163434056860039561748017537478255674122748905046827009241583791739410037156295778921120641885628478634503619929120273793444085428452399203134085763485556639547097299641429635388168037874160955417376532145507436010910811820066673085286409369736403329342324251784321507516468747626533640624288286932496478714301382949341280525237814094783269294417238004694403849400892264055762104949896251685296315945708352637154215686523706675079376765721183508545056223272090841399160425070275755731273943929959177681637578970467117539938547178577963364550791142466683962152407778338440191768383590658859018594029314342188112343804805401903918206500980125403549996541405991160839913493314703099167841815674302171458088845413849228038755995363011382638555369043104187267918584196421614547241004521505328766812373141249368828136373145960884083244883494634273009097918737326593358280831211668785440327825341114285490717018251496340022772226481956542547943881984165605506053565140027508160054935663438487876693554149391537632253171652888437641000853430745675525899910923450945409291235932353437485643411579593864488304798851684674939429652480855660296492697716322258144438281307162799196634029702904662940975375958337294921868081952151696463849331647308933134535263960857711840420382737905997705288646724762945993333199793192279463895684261602207767133376127023460812046158292332603008359476443164816244939913491826739507333204180318007824410314264881964491017569808288791602637613270817423200542307382112560142307772968979413946375152782238123146403168114415370345751431567232578564531723848815892687451570116424694523260560550903529197989245443023236736522270949989240575794119074904269402811036588197336288822328638646189472357503322979493599626963355915619935980988941603159448623538420997459590978781666789655557780853230350440016453229329242956283827388348820436356114501286735152943841544139010953302050916052330232227884011381704091325755436542592963725774027483866769086290127405950557229466508249762283776671567447856374569964137428614379942723621447292033335178881078622818384514919151534000502349249470128137699303898711658642730322367898883205501832114836554893653575499197355721951042575784464061495021544696230774885736278013750118781042520093894146400985926512677027802614916632601028042800277967015095995238176820417582006474575690209643601213174127406050231873211169981521797702139459565211843877251842285983598271335425228302793494283285017751055455196611791702111682403196068667430743682543467650937154656637118018035908924763149129148327077680610680740966504309705485203402864206590726380162615885955634452272361051427800651330036325814214197542541960827823534197642949157707760287410050670828814427732282141461085459383217787135705092133050294544088573186236271357606665912221837266379609360014569724573593718235691603165367113479028811131565615791426336674575625078079838427561468673947966636524151494068970883744958261374182326718882040328339988935819588092925194565939381635147116663722049633695826314191182387303565190461012643935800270000021467578447660666868933127752114807259219416288369914553826300322402741195456627226455904114269087953633229843552074291636045281843789253192694786617053160787920770266661831587965712770111481964512891321079177275955617826142250314932446262227027012000762552574583374092987562262028804016968743554264624505467720452456362177471867021844176684954622335343432329938427860810550608660859069757142187545133535938812105052717500333002963643518733866943532335252930327091787184677792279925765666232070266600823382086896255008396524267952740273827683217681074305962180207405254258141217904600494750953065355694582673945462334451428862078506641126078762838795805714629521728405422931327647147689549781074716260836828295750226430045734893000603101604275371685715284466847194783715458782356776361786566083426056573300578863729311377729826976017858838239219658418883063829346971222448890914339119623230731312702406288972339214393312561731985671452443497945411880167631083221375679797728611343753528614942677626298765437282524855738394448930782396711048899788714568994822374911299305830365428215715764440748281935192246446986805302786658719973420940215348927892135016643453687409209963847512677223550723814379426432464535714602294104598763651565983451033419937498454996856711029726764038106422299838624305947977518572236997820627795660843258426418725642734173781961516901347052242057685692546427336582940150308104438692128179960096464950457535400186427515218940390646371160240116435332706934731837635797557588882119363986787896847734898369202739712341574630166929237037258413729617603485302976376318929576460796763616991775813233810227834227197930149012561075707327822616827540227637959842729565116764268459772300658961445025688189154832448376648400223567867931672210169298575200328473109679056687280991627855545813592730234845457616997872298635297414402905472972381908315949512367018023109214819610683329701776137311659626262700784207618386866465049763991423168053556573718719136381204474852236439464476914025235975619632088395451275460372456746071499698847802079179131188384049338373867593368122994702181001904015721406951312501836342990075600781865307406209618362722816541975113590711436777378074437094003738558467383428935436312980508761652786854270035404869553090247932481545726522335454529294816532582067559428519176533196668873996696078922271101607034584243404292241780901656371905181971070823146640335832780684117198613997124921904924583171094832575517643428682074844463254562773951178167474724855632595883616589212469896763318244547500516799950010626417266983962347987936996945036887311414085876092335638241484279158190381204745252541032490042859626774004465440179801788602491448141812083002876458006308252483763595439844532060646504542611193392038539870501273810528385280636964754849493103970615697252134909261415816235814649495318089441388093646369432202767576675055601486994377597414548743876782955544072531850751765386368198607778211817104842460436910904720177034347368762613616419485402892690950410239783641774983812128196808488285530106836296775327878193737206060179865830610313153901641042825974110905652929846345843603392015838926424207382893390391941266572730212169747969734718159377462466799667588496318048945333593275037944426351507398558112017724446881310481360408982384025362533611197924092255846457918756913511997845469232651538218479182287955230081419810865057505485283896678147588477487405320258423886861488025325887235921860601367456824326716384501251944605843083604329146755454325008654833436114090290062697351974326468636696981908765883214563176502635898300089299315727750475558866055306255152147533920155238548042190935576059388524748137598375267758366363415725591379035727064845594925031323361002608339220259465793508640706198473178052687370002992307505253139472961817302128151013818361098544704609707464609371770002676421719497228302617717438673042212406796893059590536342955517714256493345600177120646767796912223261762039415104313919857051091541314484279519874364823039395491903873911606595818929418592356906217589377942093904611512279133777007589378399367341393855334096760652050035059881506570886634823230134901164952426856817359900037891790508774901665721571360155972500918070006855629038170591151262411682596725033266510087803573414336959432226988195727761599179270095123620606945652146689436274151580856863420195732361439684129226299953676431542378055714626688326933367066501929459841876344340645761568990413488008008392087192702668614976684215647575705245981077126154359568312135041374327721943093183688459993911073203530582756522871526834691402362355269509118657497467045155489351925625179617617265289349850827329651200058012388424505704987753993414417809627820343764766722414246049947764978974179758752634715507856231152528776568578954192890967078884464727931669866060001671014720834438787444645911507071929412180947845864428019223000219497850710351343460321527571237276658148108768186083047029870522613013002746599530586987573494813540176569060867510008622156155770585405113053969844790333412509120530615548987726574345221864846021977282250412459390044922388748330245936764903178270528132539633980930325351958546967748512303328198371495236342772722378315882786766244211940169404618937843264281711975161665397362628620140747626639118025615408636354028367847266860962151794014722635738456889685181760496524787135064767104271071345390415303789062093341492374007051116749523750739892968550146432297862611444153070760917159108753206136348120676891558357360243020394337929183062455857407994240107527039618571860464158857350114292720161311503093482500360380192158819395430499365912576773935264969765443217994517270415769241110436302981579724588635456227112160513552224390705688836083323782084204400932509202985664613612227998291218856406558678765727975476354809612910827243652708538227384703771490708240195599607364838150805049529700100737225770571497807763488775741902274655668022225597030260570348225161201707759756385192257022573122149743205940867495349784371206033934221189297118032172829177449077202677042559424041137983088513161099236900967662943856486001195940057524802715796802227789966053242782496830661987627984404467824473074718111830109110680879692134807349532746521992359062726711002946221512733149424152213103488399318960218077938229646852100546896580320939479444669070242279304051145888060502152251832542901252462676198211709881384058934330780519353755493710602206626106064558438420383601981441633156431455793475105319429324227836154185331901924981823564625790710264785691136969242877022203110528316058551027487930669812053315157550078957545687996591715864723302918956050070931293610284764290350044449882098977430597963309270475626484636885604202446234442034947601833510652449518960298213138263800777752153402117620294010056791540363152639223350215073041741250768422974643820252254709794146364276625457923758773960681632632912480191470654840850502309622436777505785079626158805146388048337289071680392865381843854122469587840672419972696398799599261120406384014192122106958799652941306390071022550295924156379132863759796736127234756724247925715530934421012422782802964009275670972407800148561475547892342177456159044959770614604596513618266915505525645348742373469518263829526281840724430104971160383617394058897459842204993710432806966008561682775333103475521807559793061130137710616088976744114770340619822906253103057681025568847952435926436616955534079133408892900163107100361734087863055058190398147608111871646979024434987242486760162135353150762771222955871020261025621635061036613995436391431406874891481004501253832362711579058526856542778274960195324350253413137599460035422972259920983193051963833445427190951008630411764625905488804643368280520415189936130012217004927810507600038574487927348828239859570933548540549759922798553683646539762450883201183079018775687077485409542716125862439677256311500801276950614731111465314414041161200424265845942644771814661577585555323526872256441678263622770821403896288332744767575292247660659849758435373468847894750034996464980494117105011086907587257945253792080069428045891764746304995264262891019341661293066252634872751536073890101031946626094986094467313102646873068834820345305051990800176707197484181163877415126175910613704599084266230723151358363970045366608144147263425592826804084301304625078740887931933558765454559330437814213043674266875296502964950537252260410242324425382859783317407789527207619285481628647376930441686729918352875463389045576930239710328060699677334088279318062256831069113747227742091892083290248248345504211008089275111343300208346790910392353487520503047957157729949497214933514799740006450198426742533200368728151961692481132216051590562567603096891650519760570671880458731414021089748174279735511071504704378976938724453021071667611700064163532414133114328553444488139008107093399568002748998140265095200088405417142485529374368389862137666689337708779648985030321789855683753172393247151719929197650021243948744113685605941068288410578938775163213731419402731348933527051889769126467528864222004855997544111035183242900572859177992451745012931371615353311424062018358763533271103607592627339437951039362451404915065599157769638162364089287847783724899351787027088660092109946484025818762292681012742536015608866598068795715337030126687176494400482047327863571428304043966708746933118159148695436103916511602179222209029267168921817891231427102785476284955425408211515095668247640437859722339400749674701498584320521958057394419364396525415954509856444070098873076497529440500862135322398728966640124268835982635333937576989960435558638432950947092503269842864771350885994492227987746933841595169434129646538126659044778879134113122063128748852136836726304697539987958197092592083716768307794661861101582376029459465483010801998292276999363757403963833229862903907692382629392636870466240417584080907924274105910836295850819003003370781999635439892171001593246757760371306900968793600525264174708297204034317774477957894542198513999584449912731995686187934714238651027658324686344926699703481577100451410308674407990227975181325721946550758476645364987998335014832771114626130333159606757979657349556627533781922665466097622872694255556485997583422433615299463010913163941263944063879887441678644432380968722505159393040623540819254139455820829625245807912833778960721674357726272680632418169122811529929588365373224156175106314874872951967233743140610137924158876418615064008806283077393901442129527803972818267816253875492771343278665914824493607205501481170505421594481435106023064069279385657347639076689569736689146157532847950521329203270565513838798243179365415532492183570658851524091398854209455652827661830334683303477765368614987965206527770400274969773575169929226183623094175456471013766701078098789871360647363390058720727678946221603027658422109981146732482789765594849086117546886083305466351792438318992046117914506475878757830704213263168274540848286128104104330439701388544597111387575325239534897636120800935537030330670039751659528278875639421870714878120551442676537174470799683486217509397081765063365206329576567360934717372496264847482778236228445378197524044015281725061009747591459919809705284905224574463011684149785611347075726069686118672113396516660391423090457892136273448021338950467251783998093632005629691357684909599619892385122533499518000916851277932581202722553021251932523994830538036618029409728347968546255727890657797465347508228201803304142063862328891779492558407136484930479215563499019088697797437565639360583569649994443530152269124231805749707333783311035879211789992561022524969118665564808487789537293810591050461091524049852365460557060138444524434092902820965688713967306517310928757212940904132609461817959663280439652068863679784114092970262431626187452989447577969113283771310857547855644558618594398263310627745183865615344679581301461563883978954453522738700986708762440704079360493874333450132998196733571662352238555448922307006791763633310247052050933153540557796327794837126951259946753723188713887685806765650605265203659502556822492977676736473457835442133440471908115753584642495402357779896722673621609038715300261046105175083176228105898060417756957984881732794402847672464839863667210087679802136554663013361964654381278116549244023000221784788939256842162604460854242581896634704634249072303615468211050582155763925760526757557553279242479118693630490988329471517852618422925876873216436393748618981435291361936351448200382326811775185218645793020054451952575120008647786723359572622441655269284115783773377728093873289516212390049056659041996223935912868459693239042529877151637816381204207376682978466286281344742464244096883018862120591195022347002630458628527849905225844447396417892827120965352031436663732144890773615403547932857482072458869685081392460428660682413666235593884652040274078730891706535851765150298190569587851588771180620701922454476236079748365660125109134178243840222460267603730990450998706032078405064961261321938537309088607965771961203494423981291074514289210559449837081293809033337152833597615781929368042508237954423443652891782193582086945811918542204571250324926124606522533411216725196866576604241371684440405761623574860161303524695211242663354151910770227172315946680324907238362646549930660274846529101892262614003322765168374620541690182374545474872644121013774629103352900324998906059173551493717862177597768723433788222958116461045899893614391676538119815881671058356807029750660962901469228139405933133355251781445090588319698815447679090248412234888092038064744969518249395208830519444872819983891559980278347496167946736504535918969698282900435437701551958872959207508629249896116582964706805635369218236369955550179963841533472114121558556073736509386966544763723057977862391575836881699989543248651320883395617424548427812076554908093530404977525483086141999179070125920741849266995144077117055873562043475679644076150980255291840958265311430301335966682503886890792358942803473701699741211333739791214913400688932434260988787613033277670660558665402853012169599122177308344120519285102333026159890587600034663951470472255894998204451293398188969518801434758508058478778112807187929545186531583862564774583947951104719100993916827022304648529887141112738428859718590286037105304373326734036563611275038618444626790680521694604985622532749820247601240885356956430736809322353254014476520578613659663704051127024999654291426105401578818631070887446768101211789117015553225356580109670987654351687570704775093574716526721332827927943636349694884076063915409231675991663347066413514940348164742864061396744134426408253036822204435558330847627359598030782376580590972576656075120619264225100104371229483194343312074391278973597883543036626531031724875343054597219782390633818073612762532666022084982868818002887714910524716922182811722636103100656698106298415085301099458747343695003507770046320995285458601886105332770618774329753445507696046141466402035663459420183497040758611268350085271765437129342537669747213658111897108634608690513816211510261040550264908709833062548192459308249694679639871593098824170685820834980207743697237679704782170387037537444644606654042930161460506229638800242947875622338434681306445843573852638750563819702669367618745035800097287562039957245624869590617748517314770606436233484804339558786684584810990518907381706504955016881246106387130536132321088709525742427938977068886483267780712284796586574173991548213980866023332778060548347624513479617471105726895340860170660839925978796646950553880028784807807377113323479722631046956105106905974483083228588699825234953258693891665750985714329673928168528694706282783934747551144230309081900088231739768969728628723515287187157109090492388009853088706266011227750709843178261720053356947727569303019405943323146471275157086262690408485522786234745770972919605498922717481572836301346769634636154881385684485463930703968138858206758829064185974899403554882923034166212930337806928042045980402818956810835356533211839957278802644828892154953300297307495160945321669081034273024743820542187832985752203957385632851496807917990594604664097334210345886409562676894544343536388662958092321315755274347339404144589309585472099097665354796001439384663735714302714554894649012326843141426260902165168416569250208121735908537801534185521061039272607401702004884662803072500762379462272307371858310522669421170454447296328929369241613357797117523424651611212295976614213026904791234601216061916528492289669353587787168936457818416271498647824986880596572367185304155263178566180519541603138607749723934916030916171867373976930257184985074434225461701854676233191675209682819497152692985630221386212909799119426663561189291321751546254995909668689658525892963041079521533008900183241549512360979136836227285799143322154011695491210103428499847733004793672058453519576465847837897876171448853950179807289955533621481578857077310991138308433881698354288519761736788050710463887121803245827050176965006130131951773108398604963252081440980593631922719033137970442189317017818855934511275875754809311481553365572859312622361762030961375380120555546610463464183408937075168326129036788329362560389833306419872010451914556514485748080169360893220521692710755483289609949612383120295893374687142826332245796213096080933580519563145280349735236200180057689201347150186604244915040635603110128455754229784669234031802759451333630487207981259811882600820523473027609423748125740657963678290255623490119987946740114241858939865884218165349983020445478095193357119902058331441833984122935903802938941281355479574418530343917580340339716697845028652124647095147206325174213222088921694449386050775082837866107592849321324270175048382758971229185501776909684302420411140695270661769375096079850925129137961768549722477567021321766669204252061999829443875823803683799354484074767706997918430610195797947883263592430123499633223097958180180541884592610326633609985788475456521756091625992510589751176459995088212190193258059930939970928262085263273314887394400932179394030326415738260048760413216585900801164960971161929952993103498079225386609762453125689256534917144338446880105620108812188196621237860741130090630949775960191273268284051940418975387147702149580787294005463758896458928965933308247363468707553405085889351930160100481955187013279118228050928911209589925471157782366677740568671883515259670672162603310426868013134099291064771233981046018880275936575517292865324420866437076396055665756909031680638594427151352172123663907278233612987970723826677680448584154837308604997178710591825616267976314826533110250608539957595463164092945672626421755608960744614330846629601297336786290451505382771588863572077345078049656932336392703569343337945180055680457601407124834390304142188472452232658553252077511486331362982261893039017853302113628271675463064393857817920846924565621417194307333437970644310305240408339372120303574915617185707968080597569617725501577451746075345545015028883330742487468362500439436211393361104861631346308671754776185135973842617747962982003391475708023922997030629184039404043667216151323569629179545129449169518326382818469128480944607788710314693717493825653470394529394001818936540197944480962131159146593885772192551483490335735855024253915056835485261024998410658307158685592966537315242139113161254632265321524418961881606632357608919534864095586986230789517800444311024693022862832138614072479189728122988787644804077163013601427522427257347968926820275391755366410760011583931379207251046319974507421399596473253554248735592375758936642983720476961826463714586885507178853944985174480035910616941850641447261915851795723497253717539793306673655787358454884214788785990486785461690654571176904697950382661861999405861364909654077667829455347443834836702908733300818357641646018176009984095075575928350507025307984175412576700750121101309051869551018792462367097782221716078045431782403734094424340100867771668466508168288969822188241124122488566059595912432831146666977614164099862930333311242763859645633393339386031562269119934814730404651264514459377904028736990370317750799478055536307337223984572828645747720410539286745474249993992963286595076338416069828061864495856082721552570350775192035532784360469205574470385620356341968974444401274666398873005879373785141904137656586224889214973169918772261212127410218811605588912100550849608030722959828546701876014561023295083836132138962989295787513902077013199156129614213768742764443856329260923095479835660797806151677842061070689263483126022359198682984951838219051001067993514031174258881835020761175932524364384076936843061427153988574244376823569653849144955742177730222208016783042016695981762668128865544893152741815758566920649672401987382055100799165533901666714585666891804047873326723877679515260346001628414912251547632798419086451778264013133701122235962512756101333681365815397434164798553662495639236380053183840959130650527808130260563877331932437097359508599365111120142521637182683077575544766329556304927143563703036596941962509666907986180813803714945967347165894513836483908557535525150056797274067385611364593339732560324307289342232270209858885284747122008195662361443338281374454769286910440899718068299662565819668157668588492544706869673214702515608925676914477032128230898994859621711554541765551987301038934234286379393309491994458956748658676940354347812398682397445501000300468151032645407354807625901046583871994800360761968944071013101619900041107190940799122237063475482215947654791209806286316534520351252950300484765585745986631416443430394314706169946538414984346395442565026315456608233343721377384382307251257186777049559707913943056371465393345081110649206733574472795473039076524260276026368950312972351790097994616242174770438744357318073620711923266393346924622046456097828581627365115161513650744867337286212841070985509256084330161596773089514121672939027357746823059089166413700042119023716612409550843918242632904135934745467323314221584537652996739415205163385293978623162993967332522316298709787032134002180770650036900978985695120543297196384851942720969263081862031758473641791924968716628875401100808485363097989539685445887778798387117179124320753326893005520827706822408130195943167751084256867208293668344381731201138850896435056716842808952984755616487126179839533014156936205363822037494590098942067406269252967127469953115279365775351074881910677846499122134353005212060893330483410053256207986229266896872592468288820922379958566417779123308030358740623212054836048802741713462738195687050469217923353408868508642388578837495677141633022069422432087603971043185087419937086858375880318498042700753250892259556012630164803434510301426686323568998011761572832486274825278280747543231812858372958060912870892204700810965255804036575417105291319814484717521791189200171749471742353203906356491335367738239442972333298694507708690466974006607377863748457208937811909128458481433315420061234759023650275757783200402595700589496488005094934403339917207624944392773221576951321970745028250104276523090875038359945377824347606232862407339827213097361661742924920151835867618192224022237582322562617942061443034156872855307728382375291821813062085974165443147197870099366245993389794732598566990419164074194683826458266764979477718581339964238492949257736921774179645748644820412176132441254810841362365792546412460041476676944759804376723948226756299661173053900918130695633587917704001356410664923646441319334534649956628349856151173681468789815384922867638309339723879799568101764515189975999062466895058669047118865243404306707250330569406936236018702221381162009737638860939668509952193170558612131819727830436957197937499285292389588371881895893888745429830087547099132295757921532041273187364038355010914921282564577958062856812853461886877403900166813670897331410881726244971421470660212039747154524846380850744705968837489362057712086288987677975876594631204245985665759560216117191956409778306304301451678138137090426667771892965781982937559732256784000716518259480751175070373082080353938620055825694902554208717484267857939813327627816152412418566000254100130371002633488877796662604651651995628804262167777814324479494416688016135807561734373217725976620334817115532818547810478727224495246754817509225258933036440827356055662683436173431041114895095135781609548837488807153539082286711548633121256775726825955738293347200191918048772486155329253233159689633543831700301132435381197951413791938093647504182430350221381831088356638567659921883110097021171907674453648909965064163435607977450043777991636166123224016946351486634658728393123887087196501264739771129159267900841334656987872242814507054685772587631014844200939092286571285806587627568740070058063997921616781711738726281786881150048569586222850527271240357046295757429980005663095340345298896125573383680174492466175503855279143980125270255271802521718636881529923929004112686207341041212246526040509990184469462050205027494492005961878074302625918680949650241811953509038765901936795178286411418944657935829309750769262391445220927212321643230733244031365969837195078836313824504156418245273346452994425342150288128837788218008574460323715150030937705213279728855871738110434959027234112192283570661181075418253329355917201960584521426939461004349821968813627332346970027462173153299594522721456980996343490570849663303558519382704615060258490714628988300245448770915886371457742084696695097071124576378181240854610845650164988625469265429600940124349766920106243825022584907241897622844154208451620438145990208863817854132589482568940258864256690259513882308452255188340648491591491731928119306638506106681948304236395647722425863991909747354870486171107292214693070692087438741088594225198774357782070247051367147675602955143737232084129963624233149534259452334310301049370958416524301389378046510918186410812044139880749176789044259012147406693471527378691056933325125049037756093302299847598444715836962430842303082094129838196017285750242817662829133910127753692195213074389862009397210181214080381848203927692468729686995282596640747084744166230824494915816454429684241308715468662013826681388471443806119170744921420563360546067685451926849510032866835716296963389196239252881091001685515689231422418162508242068172524381502687808722524183895903408737185288644476257813364630220563116800567487714987838491816934730182946654379529003370130535938266782191975390656109208156642743171943269776399998035816037599962627116983846948406356949698670928639006888167633888152775436578318729832976415328685312605612372125482875893839055366151306157527168437022444756261997414921862987288181460753852972543380952410429590150096773405305497852055223867556905578974183331690916673472643880473857125892862811338629680117638348090804190814202442618798149461509756993750629784725631640247157661974031467666885035027526947639339130304689794644348678147669368734752083754134861910574943441982964343602045476077246544421014192133613246409941733723045969552853524007162268942801643203768332950082295851239439471720664732604433617292954256109488456584117419787434587270848877117684984568055957970936744407025694754040775000769736168848055748638438570553632778257708828053802377155211070381597570361071494889603780943502075815837331835273022927219143015097734232665886522728437269616038915207024568318780550681712861999960976633028459208974493843991455318818694223057746350235469628539181895249754061601330452697694523732219575358157778448248910699990816464451536246471091775238587338309026833772380149981793192867440456619467185543570384227756800087268708324837974829906395988032507913476773262153193190707094261019535951595551752424339357326933808243092958423090041128784326885347971762011371045137033357551357066243139363918862633787576776135095113900659793129031619854482640156543570406339771374883928683808562295205948114888309435978551679759356637684337330011007067425505005151352169853945517667057390497821960644407243403494795010702002452133764277185463233025247584445081739937985819850905910436439284827822874196188261499035166332478675090059215930404398997478241731350033644140866976176731116833770698141282604444605518462841264657991608194607667323717577502281696107307952199875136314299877029074449820409457445250331143496140890930520606292903499363583191098615567383041166642436999117652308717461333604953857548742044635060103331002977786826150163150663108409966125527985321102546223654886214359772454647016024712780631575483274112609189922983655217387575930463726695783642273065308323478924001365426801403822460223166526650113661113600908419040269119711681349190372310997774383639958635252206532040779633277794017960013119355984987437488603394252373653553338012885321671900324803107953419494016333961829053186587169241238871949124403709834531554734835847781148272062580800346280978579267434938990802032756480150079948346435912870435934812782933310965117565914560146740819662492608802734822970740938883293664659275643751519795276473459497549290201787849356505623734145491048751007247704902916451876767954869666007119254312899195419370955836067993301311933720519071641311013556963838997122735742097768039626416337139034131952764984686948372223426436693815060830573713494025880355190861814490571878089238929363585632340234568783923205716750538828058005805176438505946410926047062663475383568615695022434911665612618298360072672554246441772290098879476391618081015996204750044982407159407398560913657944868422186384691974430318824671112120671555163879784472174377510606251507358933433019137996917176109106842995486331378618739153540976451050916106795398438631286119467254868527574162077697824478047097699990497834757597135975843604035547719026918197146009453063886812190326205607765146350533972404676861977751444726494974338118662679341292461584542198515079941806645187999647416675706246839854564699673127522168028511165037039949019407215925442945138737319442077909643486372816232332931563661363096100425244053454382611579436708015417755787073544483605193968186729851488225219498756387936465318073648094847561601541316605337642507770857541208911007734754625483590249687313263063907101545021707350733888702201990225597507405893457120397230913892443996347440015296937742881829812459578108373634186387132703265314509520606323876791770824800486256343495120839959850234059665827081239900549966014749734987544610795485023711876669097488394483074547427786018112817960592072635498329313525042265789185809397619582049759406326941340195761157205388667881727541474046782500721281368383755983135021370563462635937169273017537621799742789973163288545047346850190014561639055093474446002281697778293891780876900879961119713331809373702043012373711548133587581190437959262952253813588162370449667364704841226386192811523030937850367814846329422959218103749088554402966813007790661393892967262545219351696695715711725947618445735134069273035077557388516519695959798475692920972133253138892471026169518268485363142137504767280255665342137902822963402340420422645823252309495454970385224697864842425301263098618287858388787378035597879994483985605640368986392306132994900037682911682218153719084285669220977367557672461305443973736806730782964501404301527915376782084620655954500410664791868287349177285961697477246188592056780170219122373004410793838167106860148322211911489598004032316458840035552515020218491016524123728828772609372419950556628947854782595440958977185960353599276850783981175054664588365460178022864348554583899145136119725290127265079568960194058451450512795620248204948193289157851511593684871562889360780529661668046432590733465942475823205694535585568084115607697436297075564668159988301217019171784655899682708091929988980426676085181660642600191383025659093302966393291362580066219910017873579276301314109392110824383098170194463598434853907957533167053830154082848224416140416272355370301112108295024884902210223163453557370259879834360304099928243163801739805922551768744618117710547324638590164411962965495451916457727993478307647871273177018899987414530476086829043307107182889797569443788198012413934162293809038386724639016474578817659529002191715999079322108317746702971081025377687489352872739885209824426516916942049620017507812238888286989198746629367657068479518284140127059733744954163818596759235995073945200314319321593138070405065345140352716451796830681162857143531411062991441622325623517969100207537748911323148437514620288578309939166881737238025703402788837729788890171164747656710173021926194821525204051194939426846509849774865919626487234600659931815194724501037598263836799557133136731810497258734481236919685847921494779483408268683816525191653728870312866557137716165197505314999956774577261095961033333979191228114374059387293858279760895364980818936328037880032039146291178170332107564509195136180449717049070265764114601828849564325553647204804709077773774609566919687254139247262549343542879974126078159069648739863429270360420354336552905684966250495988005408967359900007377398002543990289633426197751534134708440191336258961576244293135055872882922627886871695649198306370470122664893911959100783615100946786720488558240329407030261031910502857995505934485390372293412817885329057355269727193828403237895189063917373715466478186921515797929092061011797802740254089102909354747825293157682794372573168032869797981714043575725988593141265625292149920038439527106087978989073113713591894875135370193022348744486224911514117524512414289380345513645175435659340043858687868240267355374225161131515536836023500654940952537662671732563310599913704520559275994230767860431433396459997908024482082225239334302866046798519708766093667854619021317421044570116956407786754792950777976021903781648515644955757098802004199671952151366428118259901723924969517367821606641051836997125798479053237091851921442728056995733217054730099795700778524201243617316681703541495305975751729785861823353426279920423716252446871996574325706650244236765723496555406639586869069491385798568207669761062595603665984988893803647767420878014683003609575880879051633933076390131990903290923379203147263699935923184879535991941800635797679160310622113828844591823631948633342045819339879758982359199606288055343587879800972426195905847262498536881538532022271591911455845971991184291043143976025974790970893862909587071024514641875726543963831198649697224490729400378683146328390337295066827436871498977802719014804422382982965072279080925766802485912297427976530991524015598073211738983305503526071488166912169139997120209709218649673714637426963404193050084890486500737171987268318951343575852423522098445822173941669169476355706876128789057257561604893007119895940512094951982191302024734799762209751216225815857710726911046816353706517756972950221191852424642618657861362002106767335684067696717281066139481317523163250758948522182565394139131797517867274082144027549179596152954537993166871571294746457920078546363630583581549364569829620178938852702661488386888868477899861976934585621822018421272693887721154798075772570818809088083823542370411953968971249600414629410591073198154945404691472167948394931307641905347770679190117434098998056094722749565982685567280315584171220327693264490720786353437931428076797091867764410385790431411969347259584240587290599232144348939025321296430336098131161482456432683949730355648605884478628770317640805956646672121821247121524687820953889665865404332135637352198276135619601931616386321119608402206593785853241490248595228679130211425203271405869019792631626332493696852731631958691686488326336639669133941624555127704223317700219024410016403383884343000897909328530619415291041391048474025705168511718095002621488826668153743182503278875230822398486784555083759264166381036669177214319607230269184993914568263071620810862253872237850796056973871370484491014812627608206111882067671623273348258508046198550014556366693574826023855602113014665161971669188446036975839495162840888919890777299919058796817929197913803780794975708070506769864620527408911927210632498203245484414547101268477892059088329236142306864555730138284122011604438940030600530328424385410022193283923004987544774952053293137520575228508446106285723730246173202647082334781294145990015104530107915286524634028382198810799838684880523295648042252583304622499273147633529144153075222483563592219022507134398461101230838714581279140554613580916015844137150336990451761103089482542700439771086546625696564352144811458780670123310712783708645825969716141829918159009089713266942393328109574894884737789493150306751195150860318346538696079037223160234374218033965123402323413486945645971506750640464493185335701776613308800352386583814272652528667310682551422487629547768934724500822869155233015562097378626226389781450253342602139977951182205959936552923459437917487535562061543149239415255864825409523655944512126713029049261372410775299943197899019003021188368824782662311109299632899656436902456598221574304643852399236276316559259697790510961818046367729259235441795380071054223641145029571437937415226483624396510362589223398897535370442150980402372618490302425450932819839644284474964260639620615743260451316345223776170149036397530042426139790304610549370495737189474332394031165083346164035180322630798596273664520779163943373608431749279990283933658109522206071784278822516708711350242999375396548313646247037110941059525654213443315666074567852916287475316133220019958881926754665163346431924091631777047171793303886063381944497049719618541143539585671726303222640781929502934762186311442793237807109774001923843328914899654474995239523759899148569760874155936270624827140503382643015887526888181494324464958278946287690982742564278381546513347820613108943917800784361492071592144249469039041619359367414455554771798651908340581719955829807219060561484501420255539648610708684352798902405776401503611037282832596125145288684215167004426462920397106944956126129615045536395112084586467140123734183386952468104131785803960304984282264230686934817033104826242570343376654992412825877989806392105603023042704459789384042371135130480362499634811616494745415826766033658380204843946503532465876790927293198538434947835028262628092336591762524637170390714558620171408537159658341112728349220232489837542647511152766364777407078085750302763330812868851967369565502470265488048964957141467256428282353977686307650818755380189399653802362981311297111219558423156143253424417167867188745322856488346914095930855166269679771833298576927772730425411660382718854599076205273000447189426809616231473249963829681327074688231096858521308905034583470527214234203072147597566528263612999755165187452247221174393192640307481684661280020717207608271399860369441407842819358496135691029830318979200847536931803313815351403573317327023933755491019405447698544244288646720419744234076143373627588980990375445588357191524172592637731663064045557092300131770115278563249399222953387328798347222923998888352919188829279610999416389659728246966179919519957429516982591460343716425758999759387160631008677057754985966275729692451031174811332846185922422255877033809728957152023927559821065102520076587064474171396923840274675382709548568826269338124532954699273319010590640971962341508337119284024868626416161922342193908999273974139683517225911054141383029647540305136832501500802453396947736368418989927862488828332082956403258529098988742824156254316301534814461581931320244713405236704019164847114047165089553659812515772169283977903414226973900113841446520574385281847652259801502603413574529461371116621316566932028469251208879935489572085933755046427141447448981756271292366111286351340059815376437231251686617947069213930743078128114385474249964168495458833220438501796678072418579289961326111212433559296220671447641000128845317392339092001998550231342680590880486558538526552226948073301853177927699410499268745463835112428579438460150747418360162669064623503097191898889579831192564896949249415828792184145116462539349721663789022414453399251406122631641864980124386314418279100579946836298093801848424922671036111002456117207857185780375231534804918936061470358687383977582916999541653146166512116033558748391227103153651430836824321458121284445898104471825894017416500625740779786905298459498881108438417625680909617480424199384606023186456620434259795898842787773732291398102619466897135471692014503917996889965821736715512423364466015417255853178333524434487067601450190438258092518907230754974541591180960750134443817987712690654426541684749391384016251541272262493814192556057517621935452575776615852145049787258341647975770099610010970058060543301722761808810927025222183797937267216212568963858022678844416743513266462579481666027839911734693943444429728996217927614644878831157782610584373100389108119382305963819662447269013909024853148356081840290980222275704944491105086398962521045716808133228212126125495129993841079583509188849214991150646670449666892623872849177746535362469692063047339543982633242576931425440781883603546728208714760632175063231992526340934505368232812705183491456746647759933838919173790662774099362139215324920308452493686802327727164742350170197226314531312883494215013944759601816775468867159396068766344250820425384128698417777897762623281605961721080564913581543462217434848984996345485277290406462538670333046294613312939222638712893295043386821461990512836762387920730306126235790367597214701365282049729487423735987183672247100323135873039460478470763298294239976970910099261902929617232648468682505519503771961953797893497641179345031493925415166162388335626931731866311195427165514448132590832075603177679276595572699554193786272630751867327036629664578034115212241786725532884925293001656414674088362818615732720643394850171918367338826107733578965526321091394819977340737497892312656351249424555952593942624114235206567128230843572684338168407930212166269753709011437779617178055041543557668763122565385635981160437035116236162417626509305690805262516328021774549827396825512964106722829795878164089866583746927659148160454860156966075533059019462345915056328943487983392800762399845231619701066298847953988968933538032528577128849221132013381449896798029659907258182277748343851633133012190523226163659880712240721087093680782023974579522854505422805747409516163812329705980215619613602783275852754206238589554487714004288749673207177732410677054699742661073887984286103987651079995323143405817561619758046636280976307011875839167234612722736182948058071506835432198366134857356800090842147887568984032016345958470007702454057174355015999372666294600781955728435721032254626484872570836081611016406438648603402474017408530798123807166792649701840961119251009230871128640825257415335389712257399025671009761343308731988227960199475701122133430055776951142841752340923715821761318308294460857469174623607499836152798137064753706075574026698699420615796772008917938997831575913957181812132449398667666786576268908650766230146092200308350866497073697166845298650559695619395246245150805524101998321143109222988716366920892575040075145426360149026568346670114539617102260236539678643739955630087471740031955445442455787017468787761268198959091890520556310745212552639036015574118487429669341482800590168642648564993358158467545064622386612441853369267737632635497818197178028469184996527014559813438624127588785829716438084901290712570845439447636104146291602357313910098967302544670344952404224517896763632111239063483866741904941288272558608080976932395185715390594902547824229559055608580406244463900703143262527981568479192732358194726661957972807940418321852687367284701357882649450919065642849827969246922003268247819925691597146320514125160035515887795444396066043623165104046246508528735256869797285590976449711112192534323741058818591855292781219235546637424361385853527517733478241020581981672456503932708212783148676794812306036682697510717817083302085873039965684557436037074114302865715929380125369567716773206346430490912740169618511674833345547954984578906835977303936236720435075496846787302428082759890489762926768768475879328473319584338252110622685858638337072144284080575333657995750475610793855574461328052606496577672646741676408682721957953936816671563909476273676750313736987794797819684240189926962074595234393269899023194444909313236860449271311703043824802171289794877773084847446032618321991614576430281560242275908501828869999028869561692352543184716738352731405019333815658043289554747786963798824114225315463520840571426190401675626775906294233742290458437381731533117593839238992112694865923257556124604971457331955988393858626423452657255462801814423553393106592992233706766073637025344758291759873502344598786344618743668576015067296169145930943181793036964800821214885063048629115570175018731707862450049223059096109723342627018361705071620039844095359004218190202570201601647899538840103987634829399380230625547599570731447686124643495202688342866635213244455598140905464275082003854777372175657249309465467314912425731857053860171313086562463501908043459726163723051433884389098367887324980497479389097916102403242367145917485647421537483696327256518460195615099939624046217130469581713625367530624991823906107485116195877670483289367344193190153606959369547097559118852577221597287274231613818324714904781566651079202461220973250221548535681029686941684960804125758806667225748046294112463210147986320762191863131047650487245299042417638322954124557807706549005964634136630527968109052165191392132390681974422572977491877680645870968534801318692241316483623538783788048373081131733737700169172358205688240330055267021413968483836834135405024629536442807039530657778532460904516482885097578492925162592444311602818840333560632541939883386787947588323700240378307242263264298105606924683348041762657119322858615658889007170722312668689628982554498329607095388970946404964597325625754639325957196895736032690450018383572740817678859897234079272210940287517489764127082909758967041474255260863277443907851675247949620143275030731951156665063707517499583160010715496692459727830332383717902464587754320936537739534369766660584623647355383269173171321895124597267566375596066452897215477259451561126888583082102513420593407581203062073771249060824577978709465412165475590535807630179664442393412843995000392249854064476412106853109806766727925056631680588230467869419106803389895269435384490388888484052207736361781738399165670175551280489641707971271294796271353065634388531243863272089921809316968528491190369283436597053101148990734430883132437902859829992225302945061522092163562897772162011330259339251005429997422290293450538697742231807782156097099468861064643830319979061248963092537053210066771508830157397218566652921597763445657934903081406919155714438349685779652142376832100985040337468496277407794921614354839869727441521518228940792934198279465826019901720963752851811126573006599836522895119859402170316482350569875388417162160442099799119176279148043190299199650913528484270397864337809191864216523703898639339098004574629548397058868960283813897774940354915836158619271290564543995491552293731258009741753276457116149939023749793506384230048773486856770799908158001451560621803937338540165527569497158335324642500758779073203195799692290847526593079852510555059871345606227003893548895726302070704998071698375343126644516113700173146671844209940024751602418893300324990805560389721294273722623215702102383007548066712314962220762128581721340195353263853238860144007834949447303072659731880569797405152571685631364380161885601239040257268845965820470238585831677119390783131530354383588816759549943045523336973101847125875193477338839828362585430622403465196418307864427663446987212331721516416126586254249842582925062324000799611236200103682778954156836202285122154969028474980427751708317688283485827741816219934084093043435301582470395788989237533302444747469507388827608350118884967173053976983475275680988511723626126278316742955353942581815379586509283485951876498451501790729148794937553392122602915694620201366307431916421532980877876555501586059892139571652665693103606806915272867367414196631234311820949882069635968956861686325000591272590536647714509438359952899374515728315951981027561594133389835897161640771871626443225372969532843214585539983030818033191728160000579188334573509235443283583868058224291434562250806874702501469324781996325244960721544372544465656623376932671474531423891136095688888639241586409055993482998216915756121955941611059964703767019311358794099434563703565607504975241413990319943366844088414023627856519991407162459790037940262470117454682768349465945540599922918468541458076079594296324849429376159045244384870712346224671899250744849882783107356890024307779073351643233175648462819586057829917233110879848563174053073693117709375019194945618313466545294185802737005693363344263346840981146644218176273940858650840624839198121557139211740539129312915826989682936454039349781829572122663452636934961404601173101307879148321442739373306515793097947128756646793741006154766785984209474350753329847065799429271300701822336639998736158347582925651138905149235085546905579493502441049031109284180942532244476352231347771148152855399135545684335245291770855032238284526428289486744694474317082683173130669600636935684996769705621517162162282024036680850314345303911404377270525178031596607635539293130766104793775967228656836967432197260868118285637155561531355077900188341224101666834707290174128090319968677328914694108868460142240929920776446743802551851965761510357166432598866747656247037248747400855151378978677163824429380275350641783766853172684983685721516289021955120813309337372335850109056586502852054853486085707381887599117365734915628314574455371835782945594875705306710945664502872795762807473036493396639805860581931559458335683825826490499219661682994839057223538828909223655072649109872893120514709620217571852828171513225529638019705146915819244115316922190054687521916545265631845208949835903389726137429591737754049071293171764724405330758472569459244963730030403968405556003828306793519004027173652277801848919644493498809413797098417994591101955470591168067350899726678578267785637568804452103435165192276457744194748312622086562608393620628450274251247091465605917211929355515790729557177639510413264443887560562033994112752945144545141416970259678899653668791963919777238709843549007769791682717926526585197310999591964616924636505738210302971291677984671757681034149507606704590470669751562127937522298464400056264692508413286192505033110002918061857372734777331643462398895645010825886349024122004020556088540118901840657622856388291890253623946490771058984831082171464175891035579335868011016328442483419381105478164396510430906072051000952192307624754946375332467399544044414149393726571038583858817014793262204600556954322679170308293204501422305754325027803636076229654364062111252236520749902199589601615263733769552714685588898100116031469696343931132143206076030831420843254946542605349102402106276092851927525332087271298169953297667048805110927502453347553866137030888221449207330914550780423490058859289352572458369083969339296496992762123296193565918236546431828892960807689540968833567564540359626583345520379533385909460988066450638044818801235059484632541233579134207715738347710857820459429793485967369885434843123668892140938625286384746117357329935186810803537913477430702550795549368126522033201138766186453327442995550096164219902031030996374190049695576103949040250017669755656844936206723431148399370687618643760321462668070362879667881513888495283531453215567880076742058728765903694660380981617203836354584947786246905986327219351346516623046183837801990112342568841934925517682261401535102777329264538338761327179434076435752306217495347038921063920445936298013012593670601564941496631257499735821890600202208204775634010287158253151063302988712301775990939231757352474285421783256339509401703370898300063732781488176294690234558347781117496189136266097112748663766708504499319509649628246390521255167945520301998043270729377932334498391661862441471531039130633056440109386895211133605251105594487928281489042559634122321167558428277584529265795062727245256030291922959094650291119119224034900345054995474547986047480428292020029639253139040317824707231770760102942015474185073287838190984804897144941422459192345417001844393509827516647914154673882786775140292849417936707241486133297873006311880299520608971633598085494703211700123615433574297608716152629820067634632073389086695116782582729311711705928580813424723068590522116125986703470370679213166525973539543442998034434036959815833124814316101501660327740136203876260813788532443101060275893518910287845628067462953768602163611612192634526104032927369919416577981622045170974388485521854487562082522513083462317511322436751202201498013806660691540577939883870710955142619596846107678213457902341729774280704373654355021217756338348802398200258823037253703216644069101990216845477785657341877723368737353084241657140074387638972204790347602269003088038298644270882877268121077270247931026424126640619553067775561837540284170952101548498350682112450278904601876141030223487732019873316011382480432109207865897942481961424469574455296658106811807975301899293512758092346890493462456561438306309833966111679609538569015106360384435787319120214280423865382706389481692713003761474177160984280121905249314478199235872069133965115214609720071235921456833418590305636226320158935654061290923516270995597680064294573238466898997662977345961329716428749706202364473937079723348444058902355147684705897993383750208071108959365118868690950085638166909652373843767013898521831313282681497083367527388647177820159540683090229875927849247618274091930182348549210359435370715339962202308870796998088940516631526310634873923404359127726250689360485832324645856815506931556296253189045769813999231694480537133227933008181969317414325572503689800689620346711515605652381848496689461290100166333489476181574939124293760934142228390866325176249636092383340329145464765103333972642266756975570455843071498187227199407904623569715915428338932922296516710897409604503936996996338200693422553821864909041930932269251142782574917800396327208996185943512391571525993964478391582279024370514021725220338037783383685819144742452626804032458429289257853487224196738499009018299474786696645947898333046953070465600240733786611717710768870689793193874686472813886849167526785660830130494389474907049102220690914936063501258796176954682169296524012617350199152741424485157219928778894144490876177365062254710256032796921192660549649194660578766113491250520963255071045145482763660275916508927480872937578417984050029506939876801695724657722202652283018923767565149579331760539808160190915790702406804607574860971142656389238385436660646699983871068909379588528141874894379464564578501677602949557631898417091533025399778844675769941030324049491824563560830742863395948228363974828660610235419719464727949599990516781327485242626198032705107693607077420357192512876410250903424439074432205652309102864178571326633953183338868301967949973520135776775157109997261828040060731332213287820615149808212399866079404579142375028054204635629196587243994995296376752967918129071088934763113877086253990127357216515497747205048253039288925523948288703378857024087811430732260351257947210297974145615236690357852847253440054286289049189513179362652345768275641932152055030713135986138904991218190824230469409735761260393302797205734199691960274414134669093511388697031446056787117328172678503094166441206387399215685437546266272533405525468933295342181128400687979463353811300199582607710330570484871505029750255296424935823330115916601966729013181605101272956539136624899105802837360464399789115724118771741346230781865335552148825306200718063860240853115907511163637634861223833890138797685698071631022598966080759465451937022581703634408669473550643168344449079013543489335872280305700729913194642347688215411534555751442353488181584152959079888215861015981472478886465129804821806572103963771700943317571603784178826122095768651138819594188083459108465994039720316532015964156458622212309222125348632585397535269722734964192269982870925011419275509074665973846848746896908120741814878205542303705763359720935596868756112305206067132280940547502638128743193992895890794224381725501859217685927815596053185078485051295649845455652241890163705628564486985965052687549723425337689887768040551242174029412532323015182333684883647772749578714457006384469584545766961850606283203071139140551011116999869768775267923576260306470874392120126393486445017052370118275538229991470633604806234550928591359115080320496344156511350318893242742475424839877692966657345948754198643378531599161899428865874300932509624342058962784950113683589250155518027530719811147342140450127536059108940296524171151703171259263989561848754936796362812677454940500647056327347249028282939558850698867845354097908299250797908736259574853937992252054701641148740484776733524577211277699697164334790436662679535406414434703944222653487790821529016962506383960517141768497502412207733983437930107602375006175141427071923853893497890811113994902911153362488810744117535329341199929555496517366361316325513562357895327457742721923023775990889949283224507717215244102117560419917314309336477324962859676402028828288148942515403139155439943428502742832061846057132924123546006193084824643215710768776491282295445225413696684338721543015164378385883732246118302425867494193246796790027770989258818605312781581936422528130577820895222021731731205601339890745597594843889817286773567435862460796101746434120216739763870434689021987565696620964071359792661930693321682603270595079259687189838781917813708522469983088928691378951353123934000964564012174936230302196366753929731267473257125954599090699545444340474262978348784438019626325429541985824547875456806316453532782783699215248470282438950747171264629250585429413699219117516978879051628589555466540905480509338309921840712874520929148469049934899474029568763054215395414522888807076226279606372043392647471388996067687259963851562893717880626380272459519093772355120078378614671977139927226626820715772889504899636167982018830617342183892074700093851702929577849465886576690704590979610183758509356598769871631281547444269383382571244826351854662228591468708685297896286068954355855997534548919335873089897295676105696554496554603930174636696294461131198656112898857467139956323056559078112472870986964529544885227217868759263115268717227447147854399157468215955889858500160489579369709153360276914324672383232157027299838845288759046363137095220502912551382515908373418748415362977171483956884416447766432052864127957003425941842098230070454266457816450100059221439042308422574638130793809949097484814354976497193302071287204538390216837041988322718925395731009391483166919308123568622010782410256213550179129632051695816257844764895826478582676624454500001856490303364560242178927765695744907274639135919693667159730374120126918362167865201284266237325127567194836676713416898637650817393158513512340995244323250205688968886256970033205178805107009165489655724293003243137469036029334125128264808718027649865560908508260234259356703418575555483330328774670461086071482660692246839243672901100500642908231826061286184755642587086088991114341316471040904948769938062769853686501685599852446383298689226767026417997199700843395952885976284387507910453998176346293479258574920925649794165258968892694004019187660080636386712818112213070954347858840786319363921298530096096020542457101181100519783768705880014637557600154775837847231726430718650444243398350458503142846711515996297704187792675965880277234013561046886817474539648383805146661524177433436062741521628121211681320726352671265189400296817204120799721776402521805373001388863375944903544722517549830888473392134882698233404918693655651883804162065513994863566947636790494240344047494145046751247294656584233501439416601703533693053826717783498409320122115324380293768575516761968200911876497269716823923920140882243544076362251284262353662817598252259024239181521127946837729991469837769404119604742353480190257577050544541312977245314883958795995152712585286679029472162910585135874768168055177361519282615762600011078346270916307683389500514768535896874979684976802722729093910544849967251527680454818696003658036391260341327024822089033111573453202854273264289924459115078375126772923682607105763973152183570414974472069050957453209437000972119715229694862001248563285461193843509861452748347773697505893243042115817501081453134244645289156091808884513481071128527137693052060233301961012421776523081033091841623283448535015122679515897956330821765136260888028689107831587545497740340687689752271202812974754655018761113728227471811345475812594767448938514059224434023157003518970731164156303570529524622381907596779634957426698547472763514454129189739776554225981414538918344387747789119402700107705615649190631871397625612275415648688079794907500908650098830026565541715351388418839026614891693490768344718869520074918711969178188733672084135683116784027995150399442970811498823341083213112225075886133572170021183719630597551541901859947089840665307092396915590715958548986708753215183350616430934536811078262585749586304008528115856532178426805730066716873765634661343264905277310788352960912765803977287012235201690131753741662101723328900916108214859559346968125589899364998323461485213459924612893415939554882731169250066882783985654534449471498365362274430774389178789403708123070596172726111206185559538434104014362653544259625358898417945777426751186721906774849233437583237046289426181866654946712952754626346304071849699118496787176464959601034647427945229964779084074428128454782633678107530216772627638985397071092022257856317427355389278648585239500502137484795342675777748482208870034941182716440182384782448560190443654238564120206126383183665474411158699397351771251231957500680100012477547041625032734329014690290589222575906719712927706899661551845113642615130516115496031668542149222615191771362400014212169656009680226049401189117540915973542977720669773842401346507047081779848252073060523994523475799451255219365339094688215798282422346689584666100864779494267015898077253302606632365371129612775253940099843620550588893834629499985063490308864120929359595407962109367834949098488784952451468007864269540595015417755204069300546254174739069910297695364349012289397713133525127978730330460966109310927403666149967628206472678902900723377054365142478395701568579662137307333989018604263100530742942057442858816725571732265706355457199943588162690572656778186578990733882637086826536157809318459927172825653277934149130060516717369348366007093515196981126924380228835249058922259206477769900327380790218382284579934334712049638106037950445014718940141165917555394500976166768723027080619146644346747744174158290599863191431000407606615798113201648800987691533027505748199687807001668298316826947495567972827476094469925564664958857022423306727980606532090827856707091441703804078788205270921970254569726680178079424674298408086028514341943083264109812142945858096361896009635452777203085342860669506530948757785890430961280334483860736655635303691429029053139796622856976116566352399081337141154625983224773711104800911330311130698492589462286899534517900836327057793933493125201842359246891819020179606050130976539731855888735950929610964200264869958620341588822140051383581421812752392256278953416321257696224546902524602259234981418430792100131590110546260118904277367833737872794418407392292414564020108729446240767698305544760488128366615293304649181234855492641239115899462411143760361753409824719200025936895093226131685244815864646854325542307804701649960129872318857322324652022434280403462748076775432166002860358590255164076949619360614176814248523089748424949591983442927316878910690364403916801717628957487095850941534545526382091090158767705720569186702650107657479830858846404264281844744751931196273435981033868891740806992152112435523168256755549872668713377168346480920145346378882848379551764067083874517625183012364566617024867080507372485168396477932152865262263936214197649949105085231428548641461023502828487743669338873062362187313870733226063902398016395209184159279680959301994914416603198044909713918358398588030039591602733331001106827295803672664761287996388699864783688749940397116545334827825668341810075795543617184552967772098523812241210026527330568137516676793448040461134487246099989194087088773865882324215616586460495141287835145353968737833986701933368298772863688112156295774589094690168145967543249078411796780225018541654276083290376669796797238054115771068182810545932616605539398808081786729343987700129451885489738154694524569189427817186886453805081045432944801876212929827426749210328237625225015712667512024995304973390044703876185894158890246926831540357518166415318454998555539749209399857154030040651132931959327731409838109803306582330961656290987869091010129099392398266921722203286719492547009788659432633324800794785167237428460123966104574285594300507833366915598104664847711654421313068887528809551785124590169635004804103276217905839199096226908144872904881198911018592832217823079242817226563394192458891633006308326886192799937030088302734206572152748963656965529281153478706498475698648795012692584377101686058910131749079056976266529832133924257008072332599274300022506535752013375406395480354920965720488655825032416938815603486804684706197163547601200434219686593032416651120336983782469197944279276762607247568633554788960799129523533472492807098429059683600548030518642479485597475206668529436439305039206598421227541164146636973090437130911971811885062709963742388225313167871961112496987725460513395331007845050639920856244825130760461304954110540618501302538100666937037106369949281560362685413942679862016971726623066750218054916802728445827561763113815279378029800418155418297221382459346564351060258698408559130914638553848313192443383884388447857223988783090249834248124521732462976039874838776670022612064659484577771750001173420895376158446517903134206577495080518485696020166320376819005081329201279724954271989930138727336721433666255901658040691897282786405517866558885662887848585835488316948370468277578567697410531752009340771716788976461161262677201816259320413880539565951053638298905812611106502569177926825154508312080498027969546809424356488548054824922914869142318325286228865696484605239011295971717060005516648704715257924590673004232046440094881494909777150940512438138690844251742755775982144974553173588531741767239910113510292305946245921129648903447298492176589798083055692359455055863669387855190589835117152672120709545668808503487153831091768906136178611154544237845250873163298005073559418675927960932289058094065791777136412604989033169183379030100827299369573026325558108927138102543394063380555579351321703103319444477316030701526039279631109641509407343692487093438388505918161422272749339881080290595548011252713839815521286439593380442719160689912013083352558340394967958010867462667531138068935422536343350984677477474599512710285760961509587581894301144208756183829344971228707338172759336184036082458926563081437673552858795694108372444384800120015434058306858323891137269810258783911168486590103018395816789274219038879779048140392672624431956142434052496220357904783164418384433837144833282494224288387508222591417835790580582246298492331838408687322281586064948993454777067306186885017403106039182027975109363986295954567193723622080485156954977691758275670965182089137382279181738428295924144810978798678183703256422157550903828562425233935652480390341628968335925238319098265089885629544491110627137073105267164470301824479408319967697655208851685058213310984186096645842679231940641725601922225764122208138163436125138790462260595718057754493788616016598951940973227032990750893119308272559110495761874739495645846419235930848018121476239124659855350123240599084333145106338450467243877380391708115908163246533760501248662564175227991762471773960931405198214425850418696073020419396802192280075816269485146808864027739155958439671084122951149042547781669554089106294108270340120083459013354732352291271305830562910488021006762416164704951417218535593127729917671745470922989071441832584924566601402060057339218232770964965794676214964700279816634650145627285040815513754688258202212159463709597681856871835327646284326867521616659261318038097259587331393513455927037829324699656433700986787191472217224481158027298169794983331224132434244335400427027267796820947095987788403888032831935710679795422199118007719678010349736271655166696918108584077502218484291789578841810659527130642218908671491434761516025414796044268149491617465634182315579305474870823259115291125505314329014335828317168734115609666518671020278987782954563490931863620853390133984941517096041126642556007325247245742653065011097987977210434257829653517259387669139572776979001661762018415098548097719189747285107629789496227609844601338199934117851857968887824907388431476767003007526437297695658781268371671883819662361320919951443693650789517964923571435564561330708136550263912111315693948121627779425709624912699596712860317745490063524841374807288284441096815082070654817488441636815775315329053042134229526169992185269586225777425484176022992726737275037247060642759852306263700350073541687625212155317946125918557998787401785370661503062187589135427782545752247039598083087977148223289701639250017608560200129619390846611436070747313734383496537019931808719363161170363715687922025819863572170260255561774001713354000513555311752797319243445993393021091882181327437899414650625236746029911126138216880886151184073849057609958797063313124823674436244627685452081276865598981412292474985241598842870670695203494672955127389116353159514855120088121888576780242248262433976392346164094572196421905529340981847306171062780759110317567714284596187312471821794701881662450195658431770301831640333726885822863623152103088311627297360771894441591100441759799878720223720124438732729556648117740798532391540271920851761626176872634157331122029010408789129372504518593970964860318796041499608191710259528690387286594042199925956082232070153852973222689207301707084135114888177424338423076539818407864727960752891042326024815285087195171689290782016103446146346555012115691535034506807536610263695787983642739216024735939514357872441422625644676082146904681327844448449618471461201285284071334489277919105101226011491840264334169325897579750567196996095606252342691258856063407274482833575165394823676652582188465434327709383299754323311277349486672583164725119541292517355006489021501864793471599298379389173597554264455027947482308149148745582143439966378324931503522733501036946915923098892414723751791610877110626520244961391489427426204881417658135253334494248063928989226126618050230627811769452598556605174929930110915431442323445869166085819063554066127695059421772280005739793672126987722930820183686733633032434820605522559467326258727597856316108242507105301165453563612803568524817109159477537648296785394738160158648108463935205186286239881825556851204557568834193493401846887428686424131581858408351111324153318436875425020572811836073429900322047148940927581145838990833316112140934693967850667678706789419715030005607864847628196380677258673619993238001039766849653210988533107631155283355736787666155392063367925794992502379318255460628208646139470528191683739475042841676131514590003135188424748930689197945142053631148898453619979761804830153520086064511200124034103186330555195293916051166407630141416158498201628602641790074013435825439836435737364208675370323053745787632380902647019313704089212083896418745849906070082539422237767525326123372269118448391549936579406678920332148538815320669333016404546650279390495376176780868399968468827703333264870692459474502734222384924549349484061063555235632917522854741668209346072362797611894554472306533014827604167459707879982016644951603799553925102152784068281161795127751712040038019885309302939568148299506974054539937890293863877264305943425965479715954166269765379637382811897319007042645718198822768130820803304380429748806511308985663902533885787550643080375160577837152685757278350924922521840401407000908527077783260704977164152183733105669848037554677947044847519990100900060404992444547233546682544442433535464130494366855240377893270926647926773215633424788387807562898757317300561111509275670146248140705883011497759662511256189671184253402193247343828468789209341938944562693618902480860364052071264010721264028280039853308690810158493344211916883866231686647135185196859210448508673692257272774726852258681578879997785624394930761777334067010141945426688229612441209930721364623699845985212081408488208676642721039848198912772594214108645007125271461552179718867917444738401663182135168560922029811936066242470200569583826646990903910735210181623864436017601123129784231966740606341925997013993757978659822338100416716023487967964649678082023945139827231471144210312473349933086568102949461179003507416812273471048034683798207809806479505283322866256719409990198941961777118922920470584765524017703687883093348008164726023455349310092047328648936838914954614263001481905540469154132471700347550624970383382592501304825790618433402864472259850066025152641195272942633444302366771245108504705194202877132512849862511858058413817173221548804630353684352573832416680301769808443337433688591014922654192658881620415191680523008959068698578916430370675724825477399851014594961420959348626307588023938286477345875529846543111229957716428931809520111568653664132645646271316619180845057807375157814881988490704242884656250300703198106065511565649665089069417941617699795518126283853644081986823419442271506469589707434575799735269176887643078774885606392605930865609682829803440179742326961300283645637253115913519086598794188494248143265568548205578967712689887510828482383985905459327593748475971056847658516196297506885337299780644314512867666852259170825165128206781317508708340161395577931721912724363344650281827692294745818859298247488950884278273508756517619336004801939487463546965793056697982768119758896512529215898816002520039687787851753437828421009553715005027283156777197006933796991152436160930309039261586232711206384350482211642601085292819603632527271693439961189185449099864606408656858826789501839192958595351322465370115521579621163669037892501893976057697091062476880557472032986253116984372506761397393048753741527619533288482633412743716019662300100120180690347363994618106675748414295825557954007476203463080192359728598190354709280271474579671086492704083099798649663240150476641561111149430975212085886660814938855565050762323318094672731902922659390846400036492238411105936088142264472756822529639588915173771390637073862301215160750329837442038258819480549440407656101101920551533386808689492577821455040935744975967856574986322651957705138512597312837149981043483892695086763289142921179483020550063444900015086980168943616149725443599284240156566975403678757886206086616062094255632504277357294909092958056123811892185788101733915791155590637351641477900715987256049506724876519832207163440182718349073423626260578415858913678706467530075136917870328442829734927054884510457523213133948844026918625153965217719640982022477981159639144116518871043282232107003823366531051330407267931175663802011459181001661253149423573317501251022666196398624475630728343518687687388269399737332535780791325910798939543248306964078652015011815451677128423358097218417972476096202675367967601602404525984213882575702928593139105172216375826936892883929933261102236189434563709584165813929481620848062415782505830716126257522036045390922128680766194325606436743696956000687942822768719104162778906629516801974585606989362520696962238095418888338053061377306815844461148626480959536504305602294881776092993133025998547225177116744950531518554912167425198162178067511550044438607612988962394562704689889923349348595162732085397023001758956743946604352011534127507204643801009466941746889808781464057535738057757972525503674480740394208397694295585471262285880867662926412677420189633715953592280339331569795339050201437325777189841450914155575804273313134623496976528493326552173581086112076570634368326715969204363691295961942182194009039470659297606737074108658418473870302806854846252123030247145885435062140977460816320099073400403975764167599862154119898239903039394186865503239329862722011639766332608540986520653412792027129621140704049542690182014896811888076245653810008962959752990973293399078111961167114752600014468008261712757277008678625666462884923862291958952523703154068922893970893372812211753223006547851487999138405936459501727458900307597197352510192226655477406546607797558444670873620381594163861241248244707420321639433540739735815610971675043914420186696137387353075175518354515400446537182596024035951619308535992406746874749508463794444762026580155264911189007785068062000006935486588172966449844292389839408754883882370653461486492632364088633555983675886884253138315109192976369584671597085993718084491219244143716406230507232543980281231531243798665869176627393043817067132639624121544002682878507446471379720773719291644450028292995267053040555089301472237128880243491809694017596451138340253444679130664232339493324339668690730320948825421019257470610155427810457696806055215030644590079528360420352594263917881181757695739771205899339382038767495709339776750962795152683228383471738685757813512149007706421442052589262999032742565983033869512461249625223447078432831287312270392229390499477176245731621999021389389550694896619169844577826851381040650138378147289587774336980099405774089215166954937663485776724445429710475639825983878621428788067955828465628459165575633488187543966996765216580186917878390751906686951972428652067211788705078656922277934406298263270263550577830051661186959279322095187891910272555461821834734490816420238838939186986475183367682190363921929586501513855959815932212258483293074955969580339548692595380378402714459093369640906222344436613554866801804991789044383303596508498028694287415504493154052116558903622995738040263997171483278995853081400033130318308358576281384505122562615869489361582646019955746845604740322520130522220780873193677348186236668563496611153253160664312894961023907278491689754376583479413984718401220770992625239045462235896337343151178481321347628614061367102676032719909321063500603832872380177728782955039570616744788785818099492144990194949445249736139124021708513977954197730926253991624540846934956808614313349184521728387142382618870750386842737906898148625745079063065053039166682457477622601493069804036751410042188087696679442134705515807708488788303635490860894530389905514705798326982979310419873885714052752011367810814164794375411503665019530894087472047006847432539374523097326537236194619871423085047814386127498945828940221413748825565722376343045033303770388331960829025799105221715405669764660073223997526568747789294939328221614388114327072561808832543084963647783212487639426862581143587123382338846319048376408093607703114002357169926194764296367874855597639204512387602288936793982820142103285506587977216869996758996540922853317006190113215087421685259796051726373755975252150713241530716855219662637554943213163293764594486752803542806131802315109639839165290361627826593395550027977413731755741678544485201730631073085334592185294270584063084609981726124169446545272175819598774874711488164449246521377490430500202137443711027534201720236380570402723731324868723539841962912406502808977886326211871213857514039996108934106601901732481369052107275772350548743655516840302880545480685273382270709897580807384287847920845631133918954616635348649689726492459949883373311398903751186854033511362114880051237914896030158188256470796841916790313728493290348764322601821873977732944758882669412968261349237245035137690251993424534432953867014636854269527865056687059230635558442577696104683853010000781226452983213093672611994575897872382202885220359277475882527047852254802507789054406944013356564934178102605652838473635905987150822602702367924281020944452728617806124042096594853622392520006029478723071557469524836998686766954053327493340048511059135917465410899976021193943250978275113161258923633159207319525881603401177942382553753026860532844945176227617777358275715089121977018170249092865159007130997106341891333915793430042219764661019313947877135688458190542490304436707264111933493940399919983716206475965866562604327845924003620044915254131526351999933671063915543140520974486650212762519726966054188007446957479317308307337153603529630413916905963836704341811824142888398437985001529668342139792478299815565477606279899150986454046885682711529501333780214403791858293248797669452364514591870422023220880866952068058492009443438967428156095491478128355526212825817336976986283169807796555269758180760518476020353529329597097649679028240171876974820338423008060006601550322756587165990914408371664771982080461303753178159630186482603587442196919782279993254851657518261043661683006152866717589105845668432368258670090070443517040825203054201520042461712253596367908015986373687871394155387350773521251403087476651669634687724485258625094090002517109142948846345201674296468499952728740943086776160267835891635557912708505133685725652294264114168698202888039107188020596640935639664186547042681586915414689713631328657103882468627463152868481923688985421916422630922421339522763637059158107275090288716083466731512778926915584399477958868012275739456030499968887097182393280890964909416088171568593975970701817643273800382619417605981894936697171270110189013670257704586255124386255845704392304143829486782249296212956405448405188698106238597532268698924036949863250471231853165375319118639652518794624856183791729076564958867551162607267965380259535227573517327238414945332408733772342931660780263610942457241383349651913136495202711878735182202599546912936362176827870465969587896548339080572515373624678545431332667182929574651784086039092257710891917238565724022196595262742147397229718734708792622370826253018626807029696839302605738200958413509152363869745830394652193433852303857784467546940780290858294898130181098828224835007211636828055535179721272917845782046323440145144006745150325100057114847038159137947950219029799459018823160497478049206969988633766055740357898425264028876154348684752878285127312636799518040072372465664960332221262987950027790369611512467120661560788867926263151729426916689389456448719289525708570182950064024588654085618906759816497703414271304176280364144298120626167972911832988650486294009607100015259460157640335235837453696161542305919582319149334206649014590270055247567702614007098470023425945673200423294414948216412825312225246747559456246915336913924175128795226924045886711856263688523579056875018753178121468905022232345645415971903346051873303504819245882855823313120255893595907749808332925886467875476776981725799384677040557913612392994324951925732358516314747051603284451643933575361421296098412881764799873043498283018113336505716263452210501249027094044497692290446530996663996411464439355914895971303655383997299740126190373574793472480240077434207547338029810475871874919882915384953542884050576674496819090204872678580882868277959799148216594939733499245540476734645322421526853090695149768931970643019983736328850841728003177423672663537740978604261114600400975232798141060644386233845716401804533388424790413998624684306524683554380554919939023600035537409910045590550353093542009695158473970882444526214863438508110198554081706765528743381425121259047725587601026815177012794662421719544731923568472392935472365465486736375129866960457873759462587114795533970678695479060201165902251614222068569915433564842443979553611306739753274081369916530318605133790890370958177415554697104153853473040195485637590998231513127412470376902529735013855011833771115915130112661847470425440999554200977103347633068175291907802478312008518468497359088634535206997468030707878987445959508270082551958567800114555892131604559955265959003213744250417876117372482556242297476976237141035934716908444626221947843451325178158620499373123461202430179746519306415678558587831813556140316576145757610373878315605060545133400364695698951588610378439979708545754019589964887358668546104221890025566287576846924841461575549820170033811620884236422152062540380989394352605746174395604849511142095047280004273345481565880099118103553711767934100929591132075132287498692550078983264785258227189072844482801933294178156984509176718090751935627574015790303268693748029498489326355815752139129224406687435582847680526239632253372219319757748603550226712963981272730197174506508238963989901547757990232768814424476106842803243495554605746093868356548588527689610323296939442831163964132568502564618120982705958241027781401603716215382741567646441614655346608533014984531193974895662116377326952562957706699043978602664712626615634969487895237771478662236471631986903719820199552461701087526440796330224205685808598695276002772619664007768514414765132782328208522670793993381001568993289698538137006772446851177016833335671516632536256456753812556127938710421823365123883003336525019289577107659241668001797430690326303915178579738657381957800570807973314909861031657759389415772385732302660699238253501792174091441994874104394297099028417703389255670500195925278534175994166632105972429125191889347895737528690532590963973569591063058841196201174413174669549008252835369998629904141557711944853779024372693245921102388392400123325027748817645388037248436900360676172351025483384397820098166739599420248814334067957797701420293420693317302121517734839961149656327615694508129494933849291207641199320341659709755097389180826497622954801424904714013099906026588530031881190366104621306453533653796402170772905710661319939747194269919383744117683233040378248311639625950816213300722558074326468559614296689589831002931409591928509641067053761550917289648607959271254381722308766027689997707852018647338340402908587338188278459542557032397858833482491866805032927754961913934432782810123190997582279324256591082243877834129523225819984775213181968224634004531817140066467584145800862976573853095486469412974895245120924386711763209557773063377534853525017345916561741422918781280491734470164686219688883803067648898513476845773745120093898763362274641738382778707418944578837929836081128683823100461530499714472444796638058656991563759410183423430175739535656528587523150154202607838651261514072366749678651379046728151211830526331687069628045002061573510641485117074003344856192672577008694960887947969707649185154761962546709102307943556748805917056866333541866485873933802693635012959946216352869167618501439415384268863537843628113648694935601242834906495863740568186438328018717800709538349633360378215285807314942498667974794851745197398722040181997778093425869813707580960115556421753835915123491833122762143531248550032976690204269810501543319420993005693456202931991185388547874051508030767496236739093021803186140390387439675160017711242034894605413207403164704650620234513407740804813181751774218963141620506501989953846037639080594299307583645088158523608773980341371167090136122242970235005451417691629758543121548413083305530148573511739370769510668757553946239211391978508509849300767250243227319914910019469398215442441824142773567749894689735630045228667261915611291185478540760327693999585691617668552237003811470644391546198730685404105832667976963370154724848293195167849274796114004402762245835049962597661758607813135161744640939149272027610382464768056850803687591644726880396054798368373583551045946851831286241393734110528948001517176101604626582891170480002476331909268377006654288295952495189578430189324907808765606910525921391791932412362603297255569357430479305606074392638048996594311781758242548006553121035085247619976001880337225653645381394548877192648130452590363436741293077443256176309555991623517618322927795807849346883704504693637573454947723987165445750686240302633417890711738620897583788292534682138181434252796340569628125762716394264295749002433303316004101481967596940905936085755716342033624786787776269402031244180452455145619927403343739385435921375771570975492269614026891898460192110647381426978361416386952757387188080505639909611464551723171834590725064892912020520340677049105608601263264403682751932521393146759690310258370577790466428392693534214298100982088702414404810359873488873551825367133954134630738092670606578030817647079052076722571052477369029632875436211404949838450287573787129925925527651642317240527643402573868845027556328182099641001061043033164990131623177765414001615013846083183660310914976656324653058532839162656119849419676893357988280151274045393314994374634460423670013061148257948911889501259158199167122023443736531531917950636668907404643347664809971780757346482613204528159765557768216811147778307925690579822746543203015314672066903960109464077248494769739617015991136851082026218164867306685858913238812279453612379295109567696271133996648230532300953027687696419389749444488316023990978108149901324364385901658613525505608901539813206221562457237489275954349978028795427388655750475386609972868039529276029816035250729595599895520924284180569223683787910760814466333524759917108529992579362208078702809943543573997604155045220659172639282377723458158294884357726146817598311693933697916387819508758918216286238316700287206001006557727468324352469073349634666666548202372882983078001481506971933589358917545477194399620703368540525298252822733019906279702790258480349597680132724494535002892788269292614860229799652090943853800289784393950679639591752833950689825698845566322095439572241306923409882424327462694582767839100630795449670597481680940463961604312062522231605168079974331300583237070803203304037940665789997177533570610624786058436773722994816321031040268281711561867317541232495904111955394343421364518887285621801215810343796061700364679423502660588577040986021801422164369797383362330619157120480853268458907216530053830270232969899137405392147310405004387733254240972073503482417378094497877821881020699983946248835909071684129093439216821845578330116875376917841388471119906139090991631458958264003064486900598489936712311851823766954309758934197194039120098724244045477484011300766492790384970564508849362724191266919922876560329679941128738918316330870915910468716631110342646832081896655730298691176237886753675193952881818771055681663276692890383116269262583966509551026976063578555234276842423752654900480680365990651192347605626411612128742746831561066292432091565298921355246888866815221826280021789953442580866157223273563004472540347126422444738152269258823199240926810415949907280483641348240188232243023744975049213220159141446198900807642856716234114737899608662356134906450982176914399843102844109363170952461835356906149216358638091419055868345789978661002535162177490316328629772411477845443506457471262182304210627484578840346289186304838700627424276424211124294492256900011022995582560691396061824622842398704597064205466250696578492362206615564759743697967052187769945545579661332782339754913421493145245045030001108415233254075108665340995555091528615168822172086813565334437444480726059136845509102606255555769632134459542898281363792740311431061639599844251944155776192483648461697503793205462840616415523232407444452883293753891218015640100786300966888366863416714692311402065242360675491519743121295127780338366604495013489674413100380805264315897607457628509729217375194346481309920907889449813802477495934915844023828331693217245158205831387764449572963712933983155628350437247690945463415193062415662640402611375259840194995265131749438326830422759489358502356839498290701434447662107469825722698408099790332039152168236923894049943466249208006918989567667273906179082093671163961423539237698891379928094537755129939871358280280743752982614373641764713523509828186293525067078587748616942260377164074823215039955135351990451065979571949987806340105732193586426757969228607229116018971884601148673591780552012603852037556629952262422968939169087573458531820638331283202238931262795171736165760711314473380540963033447387191044351067156216407899486357255013994815316522135791238768080157278369135055515075906045251601558804637970316940361971597831619629392753081564671990312956860133947037263106436179422482055251645720148180857596567196366246552301561975973017304484650614647110331840548119805851268721097578711879217692155967675281769307420822849418300509660982596621331943418230683499295315800365012130476181897875193437570750972091936918245570450086811493788244890031912696025393367502138284940650216642754361532411549615849188219501861318877172809922466905798409365743315136174690154957512628096974095860736923389283321063974382200831334012634269234471113213936006359933684228770520266654554450735666368155254970856626418676368093980056888725410476019429670875757542166830702878372819446335709752596575642263415734168087508158708961259501187585638235603356813811061090781140154988826090251154207871807726380933356913759213642624915140595208839078691541953381568875456595730359282403279878513972341127207233273665347816991956364462594904644165252511826774558767692578986258223765943234212517801815983464413383883202867837695678614060720727534397430534737455143632085134059630762019519597176945811672475519345702816236371370501372381055996842950235640236187265822224189510197045347977152461791115360775774994477701486619511246413725821873805467967764010504676124186842537675867948024879501018568940116276219458527506518564279870105839427767562778191440168424845538819435749501965307456648781034848877962459022327058653065962351989589412840229481740171643566633996830748760743805007434583359429514842446466366438549875103749037075267752711444116840906858501738152302462705358670933345642175287202754794019473589456023985112772657074406662315074019066039418877064634335079659075312497007406511687526869940635342860719001613336083137856356529586377072418630106473977774268849029671551774057534193414359875346842536467068201214913624700768679997996260650269893967068313297126769895221354508822806263908568205149101667882047988030541072986141720903192941839846680202940082034722814002425776404539329726817624293002917458358913810175947917018842039820649004472270884253981991382951058546431147878082519145855818017385650227452736028703528514226413337986353067358868864941939169145718627510279684577295445012400332481945753259862801628127048360753296988003880054603386103037835271760442367375891583073120491736443452111531827551305589654871193485287139275483635022793994104552873199086771726052017757261894507721021045810021544930760901147598137163224690279244940022544429855694078728273435635181693497930422076100147749097259394445539140130831580952770734211169721979919462555947406730619318810274643994533048773720133888856482451097538580593456524918612599721729731686381019100980371140682793700672757203204476092958304241656546837982878333486579424001755127242178278542936092276198110467977169687974061854244385814567391914359645499181620711919298960389832797967667914175352387268614348838730954205579217909913879537715319382288766321073250890823633244617697025245552990234152253939214473185998378974841506648137804616017989922917034987585715909329625229004757177363667323261287235388475240515026693083076540360967461512602145743594452123620015802868979856322605282532813195130553103975963999366259860851948382957830846344713476879600636311469437218559373217810225423994175269583856434159654526251738863965637298248233882372207179897600647865387697139473077417901694266692965975387593530397241959663126129217043003931858999026135051188429615703348329958204176060754859251855207728591120276605301982992180399016641883420115504515715988301357017036084249511475239307831779821049001376172290607863694509484459913416888527751124881155471760640286630944479671284227655286509307260724751113677281695776094453514978228810984371231616940011572384084868820480283549751292004964396752022307007920243351445500670069464814483617322739843608465641735133550270409777844076160597995036170258636373425085337876251076094361784911452710761522386405682397282659118029032669107714872358487268490292565471706972271318636127528859843782306381666921327071061700108630815554753934481941514191369902025450216756824521533116154495606120962380109652321345795848148968614638098865393023445907703735016128056347711444218179247913730591370688496779098723710533959814481720559322605471980677287616737873190970512025779534866088646989318216789596916037560278780898417179156326509751874297481602935963566991118094992746944378196610087403895339221660629993064037381748610895612145290597099133002709151225781659474476328518081759144325792595624004307950324627353851424095109906509485052863224218403121690609128643190253272579742248653237455248976649266590832890750327251018810776820252116126157050630549290762143045904872813317044632197315471451354343574592264937574605088738034192249305243927338313273224138525509223822084646525865864952139154504030847490965276485168371648287410828272064630894001271954844769224681215390035956231766443376899297564931640487393014243932987288300432680352555061714875568822726896047645984118147787813078995906090576475424444239856587975715207280023308131455856312925894409126610719436808223944034476290418360366858063278805724850177927992687960369594064684482390788818821479467747774211137919848673905025756999334708333833819338796978799343525721500653037841514814753502176434938295586671896575733306222162302113076336308221836974501975458406168061069074664665773784398694992791180874699760009112071924918422014871285249963929578304437961096440398896933097280581789455129036224858866368244004095590356465020711025194378787843480549739915550390657046531605007142494594910588896671923471409160420642385151560625615644187020277790935062353113238477044861608303269880768406917224183133641515196383255879503408295439021797005049607424427174390311467047521736923653000672597544830219405132042410688448479786626707386044332462020716175874673966504528552149524817328306583461756718571699962743750295616006369462231252831535816248974606437741257398594485979084865545704679114875355630228727803090344364914191219847115818320380132772800621374911081972731200906838685579954090933641262136882642435836819532879402110501817669719373841496918895326282022684576766113546305758422245886942934274471066453861752218073901479949380965908843856471298328624885666995868633331590951997244085977526022795876965170246136644275531062607968754334188057620723578247380152635772236387989364783189692199156058579102076681432472544075827718222598568848830444860458376309193712291371218748845907831609859683395557401712961747284931767198212500396893118733637981782776077292510321156591716511301373668004124529525226474584366816253607501515205992923505476871645993696858710562518447436424135057145802934356178081040646305690281608469596841957385871431794420596380753101104804624797005948388575345720181086878370876837661316843367456948612484751404693818491416849435983212822655420246882189877100908500337142146513951710581321199943223022098048014551870063820107287457350926296938618595455498747537064378754143437064920864755241965307426467448671382600238370640407319668543064171264986894216242876679510273613882096730247324454232539988848877162986196956918876410257675533910702511934162327509520390224308595257209985844500073884196662176648364792616036323308432626944412183366044897134406441311047229238083093287388010644455321630060083087584819797396869082961006771568212014769027639706906285650445148315174995889675259597084431661743085587593689855143492418060162087292125056575826132919597127707125373727443468196655293413835837767971942564801600381314508944548287927772289811501550046812325023212269768697810130145987802688238393841372452315256131289223173045609625696134832931049324143754716609319765754693982388540416059023108032514152783273250865112243310972130022989783220274395558988436143891336138024442609571764547578356885483851154814986539276230696040109126854223503989308906800197312214189039613309780873649007112566474335837979894290742322874104710897482600379829387636397345913878389656827116106103793019102962281908334386703988284593595900817510458590511155110549074149116374017972925332948361855296598223431267085493235996466801220682413653296435588787802210530509038074595203917927403551902527968616624285911409946798720706335883146678343637221960115749244660287947745854226714805333666193833291229751738792921026626154024672904529678562787135192673068654726595759659789698207128873404525330245661220110828860919881633726785009818751835468416809250979952999123327944172743922074243972948516995613727968316540476064646137258303808284818418414494056365359898444543639177702277186114708520899087527916745923507112116842566491643449939045601658375826823961773418595294668548337292124784432297728209999564615427486616770933897130183559125879123578463564233826342103272235224005634075929981550888299573991370357842844053954718373194713395381960540961600032452737612532834348260723284650803929022052242252066786291694342399449258886254317972347240668050476433097173762830876690335780387720633320597204624491935967726581730731591721879260346923312034333158754112012572246799555727848461934102374890981190457799180268352983879033336179674786985556872522930544040971433465146946621972947976662883641504656701916939800945787255589596769610730456664330103195136816205882769209002521832788919098947579142068450164489220167401569355265471607310576351145358333367562416722431555448985189592425731275199006571058941506262440146453747989759031630362651960503417550996990644049474013041986051914187728220193290641731503272986720708364476396830394836496699499087861712413893534621765978063092070547978286960635255456259817290178718175496751621634406526419611631858557763830071562666484331444819721237448457933621466002563482188442826105830835979344117522385310310138379950174554861818215456543254588875245038045222472284036916320920946697327540608591687627247080157962168476468759845592712933104911476220782038565045062866561350752515195955372866567859827855242999839471630481058495727353286582092714124530961307265395707086183274285799241646814826973078572365176574219611409507609306187892529516155269844274193391717430308203427053348910006236478034648412288801970140510928721207421947684918955490389120438744116695097509642945129987138310673880509839014948849888251044194613122291313414174904790268280461178751587159057947436656764030556486900918905487843440514472420001227371876333954210354059143364235936115403483194755509008797033463015178299853248681498618585802989775709790020696930751576432952089836007454303411826817675607246922975009528220897208102623431387678093417212529942252983456734064681828069939353038819573448917446806474623639649093732774769767106191442836651045427680360133025522432247854813143206336059023433237776202552410667169776418913575069584520876375361723859690670855625812901843635723930011525308261020097474421690543607726616669958719767850800802735643315008356270843214698634096455401469398643967988456776235208428084330654320791058238608847054868188231822985351939662168894852095237905075917739162361047860105568482896069311631379639918304129628595294972185411387510057817929616164304650376366771754613816698394347836678458996158463390646846424722326071630206641243410268092504896724107513772652965394753475398506847158834109219158789306831002198048996034789582601847115834331331288519489785719789311336259267580744031773240449351918305680981152713618711430428545595600640094368731095014128603598408522678197314573829280493256007504869006888066041509974451659373997730263505568744608230454852046332908217644191093985233145943910520874779267526708980187064437951687698830844752708451197173817013977092649426806015942699642201205414746870441128060663857452532869584016388543084103982228548070431601424572193965644459669792234436838149914731416920754724546151065921558567438391355955556185895343848875231958601190836652748867251464169016408291303562942731343650735029877295642778591545558139575602383113290474309940482804838311647025827399588000812461622422063359994905907454368489300086568742677408044878414718908803027986978279302413373529568929517207953632256592452132329151211073189921429418007141541041548608691338450509214781709833297154136815556592102946916360945020212752264592267300692445410616143983576774831794513148056607213485198074878125396647397497839472736255178394575493929223016945357696185655335396022049705062088691144435442767302131206168617436493168814521668512245572912178191111280094505136025609519236551491507552831682631748081756506042206373652068984961425888067025616589032901809658978464310135034810828566614980161698558515504592227720077922299526367141707736973070813921729996939825808428868620092649769596873829515563550235926572727151585341508003495401235574888117951537387565978067472111009007634857121274438026747591424593217890628600739487990652755367623236789006080795455654040367868700725586030522768151223789915687131194857491108596134097724275468907145193567222963681062980548656361941318673222775754205676986023978537521267473225321487584279012443002201319257767278236059903583608496136905029632436481531388916649608333692165183705445226493159077050956558853431239299021405446499679224972401094923336360018775146262158681002628083470140449233553769449389688228548169997283152546065266048631075390220198525396607099372929467439631807686226729236399229286468883475285885344833879210543529080717155683268260530036785745788845220184572867666331120524824073483744133524436277575350787699585801441311035384553706027430122715236476333136366578071422780343447277813596883892593416177494371697714650966835601544734703921431972864087502510897617098348900317409669969691091774302149681871527931096014638799624555870890861247297301299246919587466675339502424700045487578376055716174213773632308360796212219561079161794264478098968759076362387183649637992237774868952353504590908523965067408343097774854022425424839797351315516495106245859924782481163111435261386843250565763799435407827534176642719540084298981733589997787772122345700676674654853451859958144835413458618934179380979346579012510546165349922698896233179298766184281502143611351233745799535688303784787467458292756772370601672230854445436454053287744658487907768953750116856236990080607607708812924995484964709645278195201859205331039000126401880975592111032146132860191116881860837662295204251423192555957700114541504997719217809961603736376055326032428169257694829889768784425292909247750090310568482437201037663741326061985655890272235252992297629949175961029863820723723708026223567021407874487131854069175072259545034945004836937287023779249442720099227832348435453779717579093435519681615759280687241888674363739230361383464655632014112863303128941342999000432325598208679830536195431835686103492409039508248967767097396125367769766892777113067116733430152748478424894285182207103379811593950254946376810067758489246772376265649341519531440054976250234283231036666694633239906489595402665170790184894977980662180102837690015894242926840580565353758635131441321836578048250902030586535680312347649648367501777289778152009292786616442571722514924015177960827470330154271295837323165359272131601442692297425057716135408368884491446437988876267883863062030195406675577492798022995912700050478646292390774088682363661941831552022585059692075772666699950049798111520214503134309225945271563253596091841317139263649228003598970402297934133943319644437088331307506751321202175632652896708789884949906045902043266067815792411126535796724796354473607858166252095038044238672786901308665782752921878908296072369745955175350564606290653887254820928277046541482740224958670274412027701281333068246062717534078487078992604669961502197692939909266622564466947969538212858102297217560956162477810032223141948632772934782369579227620483753132631265290421046613099021527626688468877639393818497753125901174367697249613945848359092006093152619966360083618938647858403025343316182937410302619280705054703486339353100741799821871532185470898234933717803484137348234231561761403399550061838933236065901212341786071184015685642249352187793952653201047627837089659805960349322249957649667154888840051935319130799687905104206908060992513169849515110216927288380238441598969697156479759356278394425004380321952633095232169171112883554540748427212599154517594756728771481997800995203932144088892718768028063610733301570082181801244769629401403810687626641465252476877528993250825153582248860156337656771823330596757800681958118583514076555400397049480242375582749451499008293045876901931678849360355355232845987708142874631750455311877971260487058630990812456576760463131123527918280755278269243942416333692135074725386266245015998035339887331272411184829665467888653481178544855829648127094991951443602491118875961034400085850526724535850709020190586482978577217303783527516365009746260966077375059514440817705451150032518039167960289424591496237171228121224056799940270882961584811921010230604000238045980775419119317489178141702427364521169772741258080952155940105229635918168866357457747669263385116305266718061224051579318154583417522721417829088987593318851264911830266001416095524166772675083566862260824475514419522347581341145218390584563279384561566931469739766155230647371626512138124128430577431134161784676996149218183400832118057106388431883079084264188633873843959979278227629676575448768195182878354162112072269566138943864482869164034581707599499422901400816823758695662036403067364144598430052522636915328466608982930740640005658970619502635573678224217299532864687022452639067675794270044383196587964118442253857990692808495277344208055710767352425619020937656327015781018901395100244683384487643822311129546036653595256166067938923609726873756704094320662408917192051396559834200425248491011600663560697928340442585146892609500210577327356943896078793755969467873462240685773271759607879591481606889616996177710933727564414558957139377943054894372869778196967264048726903905376798704636978664231261123640283717712759574436455777450944752195369596354229014839435535884160793439368247040295321233483524890325022306226122262456100093507985562452940499727232880873733138800376150582052226216312450477751502919701209990418207913675349673670838200533644470228701187613960492985919551233916304830903137989767484506344800232764242399045581459631969288526637524658508287632904222229485423072471100966147320553178445555208157146974345014813957721774076397429090260045876259956493758053420429252285385909176756076744846746761777020390042818612305176480361189077312055727829474420461033663830193646292998292298778855697729231884616171828901890572377202938540622536640894475732139751666028883761884220516963265329897142813615830629427964889044684380382309383271166608546918621738578719318591089341915027612804670987321741266137440346076887884889312760356767319434220788591442902862210068090576641873492473386726793961800255447983097380374731474531311030534651632889177253951719889273200370510842337816880740783146436807503683999199195221499204591003996746958070364205550470436040549551518904896834365134633427586117455270029888243915643593208418635112134273420676784791644475737032923076072973753321654929730480174176589953289480650296727852049271785706522035968521914129901889870480557639565832309676465147709623676493914243979178653567965017053605967906769834579898136036528636835276886236834849624510531765549695855493916050539089284886892480400896327860369942472587262480665195178059598075315135601878401224919808407032163569879570454162108021422199130085197754903143209853662993338926433883923468052201142635352790360674507006007025992861454311700252790824702149263173603023246225286014105797468154342411136246271964682086721696054612127695834928830669275480552649252143925180113422390352573584192369758076390645129958816731387469597990248776582531373218561078268915738883410544350019631956397727822556101805015987733631844707894885971154589905660450199599833941996454948797293700212233596216005882560512301640413443613579949207729259440497559331483949660630968294376804419000795730386646845918696131264402935228341032802368660063501072788765078176332060779120117367013014966147983710785332016784963548458604791052648417933759959192028436827638715408205476266006688621192920688895522560330296946981864096136978271849148119218336665087632075990769471972798603839798708739890102615106775423832022847435006482891309897455216828021438820706120492055639906559580828846362062937448202189005536825208677591803759947797578327947949183488797550460819618568666720669340726621131317321548195836809215080719776809346026550342848501416432202461518633984430978637898320153332593919372662764659664290363959675459194256948346193879065616154255486626440970604808689545137094983601259495733069652908155089565844840934593724281636503163235872692397917078651682646824168117808013772499951647305974778726719348415934107021869919105574976477909281384178646853675967474511472887169086468091942624174098766166053706696179398507327172824490631826010637371028224571766069207302333697860480130872362227091660707817567286159789060190663572892173830309531674130589533420217400444106036987818469462387435207616872671554446765231059960345119854914035407451638028424557228147923412238179470573032496780304120523835321791710109185926818847683558999167236240663695675783354182959996227728578109604810363954689801772475349629074466115017755085899171727102416147106360455021560310846317122860843872605462846573475487415031835212803616444413156200500501159012632104561323916677446125009193972235237886335870712456605831862454539774603617794565516273962931164507069105357453874513181169814819863895431852110944916200646724812889399550460010196269560586173357109825041088464870937142395291816935631701735174957470662885167704084936421563778506518925655955070011713390293846018711106074813007410714709847473173316093581748455776411210434436924436744972202199032803984158268673021319786213047881779738060947939276630968155001845732554398910386525430811822752583054662365387757389647125363729551880247277377834949001485550289518311395897672594713043443326922403747655130305470783676085797245778652237743832152831739281799452642745287474904947473451434608337243940024755083984148444041969819852259735608468646305518759924402453752121367466602273179606521906813084774615332590915537893663278418129398680128855538119789451811679899695579396620595282901371983229273489921426575639988766917556394208377198638396717260796437828696099921819660092816364505522663286133633723848759516537268881243702940899428994928500344820973292500063917795465663202747822852092759041162082771203036083000366969256664265101334310940133434280640283025354681686852907452541644303766814088687056646432521758210550227138793132362450462112202545335963330839430866367456163678688045047703422948120794446254217598568341145324095466556919478839350226561766570154758503070809072944184171938688057098748430146341689620190882177112323375316950164850189442855989590028147684961901023857600615555538994499086997749297638258668047910371919441037396836544697521337557271476199125076308196043533963264530779812273738607973234864244050826005758575564628565254367019107699378905439257486022180427374676833514189131523055310595482196773710464477413900156563173916585622931856535246676087323975511094740312268483595556158525764250641670574160788289364323755470888374156678597557662021036532795336818692987866937666407094861321309148942654477210052932916935917001794338025520702342440626780057295116984447975509170044988995561597143606972372061651501996502470342558317872376148203017004645928195249652232637684248596076367768833399692297564317241509731115255664691164560981681164923668437629965850802473032089559629843196398528821429329996596787303187690597123560134624727659351758374896664995788317311983393917456898544295343356981360468125042284914349191180889270685270796967482937834454560644592219665201539324646823850572108955520518614213811230626373691711607698200271095590345195012753133002762813555133222775434164768191436119185800967420062019691038405566661586226795824649763228763404830716275613838009666831377694798418584715941369989122692534812283380537471653441937112142295191382538229812751486850050217022389403627621044480199289715308017483458815034514539264144822067638695030052555049033614588677953215960941286456143203724373699303876173346180645672459709487538719294300067635169199051645456643113701265930717195148106626390496800630413069810577763875698628651581347171918610040017373051224068951110472279269688788166294527986343415796957015677875420593245400498572595291691651111001585594427876707690960070683554889537763973085617730492592421929071163903954153347508248231498845120171411174786974762624577165936551040970308880148371503664426056615752203715624196639105994728000251451745913318418138382543452188236823691632001263744594524113901161875394373419158819730255279363481623406031302075745259472237907660726749548332072541819991390524646199199830924539049609412305074178017996091944965925073687463690296388600212433535312554270651129104266080416068345192341676366150246232454226849468970552113345124454130078606373338063105782268510526666095680541052517444048934617973730206528711361222608015905703667988773386415609737585865947610299403826885038938379666901672939281908646174082516435789073007010607839636283113406829400878378893558924752294302559202149823590430130213500596101364121376838100962336716817720523743221805606951447172843619364304510118997997293329701306801669900158927114017771034013612027507666678130991502682492600796049952369420908667148895289488100006945119779723505361822106032542339671247148050970450876052525047397499377140120794825444300949725077011767247715335338534842650873481054568576181420600493890063511027511580668155076669679607949039400793755200002622494424774785452476673688743983340090571925313637190058343036608239783448204410363364972013186813863372239177815373161804943361511722231790747006327951836547080498283312795658987241796043283602753850939055960083365954243029890182526880588140740596569203134392775492786072243480102883099074507106196091435470731892145920579274423029473975234973203832013796956882952259134385189526930306059498212662323572343195825452863809901491706686553813464413407250183035966105791306289187166406084768462721399128177804324369338170165070966208392452387160613129361982497625377073391557406840042049225652932960168338760285197128773862269482696297158429146550237740645895081821762405316602305420604384395708859306984086628349064264821832357283396029971046142699134224965800383391004218660001080402047028151085463470993851748612591645296334677681589007672080397637743760418455900145526685192746527737713679126483622976245018944777980867446258457687378583807522037467972961576647658208082222614117931318836300896408171660170773210375018076687573971532631554214325860493552501041809159028048141627814033634148341731985870691314142119655960726694734348634649555268959203665580879621616397090672797189356772598400688657640170008459384022888535599083871889287815318366167387975655889117203139688347045651734877212736337819805896067679192767636247602148071517727738683097220900883475580969985106104509880067593987218292330275811505530087174168907508484440246421618722006476762103158608515362600158672670342854830579661480067292500794876259628118836104382087893463754132075746207997068572347414872089502266751419483980622680626209011647096668468678023278789024441529636835270196742974963264705156286039227146174898707220174405973540463278315440080003799728837316770631646250755522198598058489841883369699217355360734822248424233908073213826671724511977044926237590318365392045966349170972709542278194647350954558351371512545676162229150305301249440512687986127604508556354818299739721530783044751110425398859861325649075034752018071424200526398652138277457947411654987527935398067765759286555361361994678347969659306936307648962537893297817275166041991873401062913321090019099908857206990107251718572380294841356696162258529606324027688870129904095925034902726206824767896475253475638033888670524559359784316977195416866360375737684481943355063478270407267781487041388153560941091342568132899766190138821796214745749608859094416755833164001622628347657177982303139256731163659748141820996188287023756664250053284921857017732314507022229308509640198830381744642458901492254985296265272948864791673971213508213699319140206679895801852900178034531588959527207059843906069274839640793030420290656108615486979224820207051727826152928928520898020449855746355623590857928252980985050169161090380004910325655893292155060380678573622363288024728834717416663147240557226193586611460650246308940419054227540327282558678339702460496759230498270139114469163631530524739035921859155886976608357280095659649827420517144084177644766093304403341615459352902748196139882534394288568604241377969216446573404943134029723800498844352113169355113182049046424925746597612704046726643239270547792818979705478502973101049328632480970401052279924463325057355172071844219338022307981989580768153016372624380474981085639806583648303091427444322070576605525982446394966517594521442310957791507404617372306223898115320818287000838611034755060879046030225856628458421752304596540969101206817962788591636223441649210276366059484806212351141183026735835553310573589682887005817740852525514389581587598368661137213966662054512384147511015773302983875509169203092856485396933706535257823293736316231862655665845028798039307301235104604365779197996452661372831737710982446664172439261233878375373233997141681141937020425939636768149986979480218905800839967126559622203203157700164526347211227142822207185625437105328446498117172157141224406491543363101480506480179054974974951313713980216784054395425606994694358901694225812012720471298353001386400244625631192547385094291622209806607842132003855007550554073233793807286001661838084181692673633107223339948123066240027170937593038601938075595809589239629140782027847942195347779423661522414218431464453663095295510487660531978648419373859521828201330349983613042845318940790863923530033148213575140382923544640017742939898169179431196108945939697869717997964560445757669150060760556580021517778156172436998092711516788974522792007208850945333268472272967240756527803868739261817233391721964673255773548338496159044674603484593210429816193560857434327064615405255027119644433941769783710259568599009610728904800093224646081903696718591152516135494826849300139199046839648047238445966398334594072828275229018181446513032242315604184889896981390733294314293043991994341260764558704003074094660819329679812503610064892868400656470705061308280174628144144540957512791821308251878348758171376243276719601619476844970643996573726460800905274584556058636505136056675700211663476692756019882349571263088832911796465589762403759334386602016603312917231138713329958473279890220157570630149385124761925020209229446985752283846883624916393105904104519505423839745407506918292277550154851470741844210457940861158549829288437050873622805187530541074863086435241871016013767416458006043349780312214707704138154433622027131798106728854775435688785257394607870230453717844176765810324152141080126924677433928484464966428982705709751001754045591230370449592657478027194444902227450212434562750360575791786483838927743783953744893794645665832736580927149034527945795860631421979532048160439623666874871447628859581227745816302295796235243603795221511191068615657557966738973819483112446505088161458982227928640344900583984551931811922782561939339922546171194034656736188399443280148345207627008217074251735723667676695400680969920359973762945379745136673415059887547073681088997965141446393857820889589936667905315550158415077495072119250582281120637726005514717025854044397711950709885133688814537086079073162661334885872691488548458436627531154948287979762944468466138817822211227416554297279434509580195907416953905159904284192218766229475644330475999757994701884095935515958188317147941955781253653231123126708368726398906016996224347936640692193216753831066392203639037760920236537039616603787243548574377418385500258689148550117403179136543344033019667902965252155073713048620240408754162055543031031369608869896640176471184186491957255041339119747898119807261265744264374100843192857919057091910820655062755921695549486185651060454762555290933416967041106890913719254051878760677151869221477577989105535730202390767904967680127299306873795095038145978962000980580898380600963999160118432448529199190470450692898144226168154148018346033102462179084682611150444944179551581218587768401300787009609245326742936047356526361834376286015542681609976750424869993326429413172501617316248357246997904212457549838666832633264935381172369586320899796073893371147919157334776746011875804465838329390196689317660171379385422588457929160066076069016957505792978086909529399479550974360224788809555392847923087375886324795057010682445151465121129324078323057407752154403229366704105918938950996412989065660899070803485381921740570624708132972682145403014605054946141541989805377416241756816237343394130774134396629766248282960132853056262227679481908397163889746674755534949337437705756492483168930966454295572969869026276346235195232209497363307856459286489628671222923087059438762192219038620295884664614757377379817138099681755136238233099939872356489843164176015168096607395072917597991563937227402291982558152669705892358784883818039850895061501285214310976240149956960908341746941118132457328168817404341926106705246050999897045501569454658935731676994392142092560595328443197806093975201222488164857458234800358223372485875869615936236233744333528765738178224323093653706536709009002952576674498316655552720142668568345250484691024812325295672529741246635787223782984760201244202377498065794065830580329563512291812061169968104247030898401673838281325345865940045210017770736356421921571108796780641849423786608914249430265390334439502834421849521097504060039427233641831576709633037326332965702274870627343849760557120883857550458204220047043678198232315916466679055071456970998633632045211152128725455231314387466341501339706351204116463388148305441796411408669017415465479334304648437039462173888017928586813919069740686665027107850179355302866424617874288373308132675290768794347119256159604595037014284123614680321241622967593081659494495300098151185525981737554837851754093436207567521775231832368394772367439510088500745664063546945323663205661952066856877448266938888588260084739038782441879339195229571915943648441995278408534913539688434522989324670442379103038452879917236706447865742866079108607605195854176500978910763793126284946120128186702956426671328920967706001461209100783314258661865030670304084945596517216379101344324574308733046368884193130785213042413652022452059213655368399530381440349269826571589062442579090436542238991543861767105713208891178614647609817158856396723854827735057912936337252418127654269506424035532335158966174958589158700594979287618659787860492576589672063229260392602142913451737451586829159991954998419354218228377143089340185678998299099754303352446682433823369389060250757902414871482980255874332545404824175230007432241877889810431562690284397211482538179112606096409322418400462742912792565511617136351501377526774511554164342185962221279555618614418294444063620915674794367347404361202182760016235060862067327679425804094285051198784665932083177054080387288968797230546258235434060728522885458448110574338665093936720105370708353397329602205050820325125688646329467568532778793752376582018181684869901619942804295629492457856170604452765455888100648021513605805898057705239957543289439408904043306925804534919297380192509945473191534178771454669457617276541845579808478043311078206805174630237504813485143011056496419522580606786479409488735569560713944660231113706128266037069504457757165777041226040656344941143415207066122359533698116221643031456969275874367683076866384187967447769033041642922484877547530891966397702571943069262571623803038189544214304989901740630056561463106667085703582266442707986179567083567505511763146093829026028195334640667247021764933805326980338917227714104248172793082613070769219477065530298907082264036185672271824285325523873297983542302861405736359574577557931764116619936225154376694943854065340768040216100640109838807863993396352706641911869212100247123229438706840741293036860890423017035712841012293807476033653130566559710958756176144741943168184924991694954843421089801946123352093769357186789550166037499045022752117525420877657884177134069071278567374811236098827918344349635939684757906229327792840309970502474483657535266862625742866541808799022709721258108657728566884883756382901351627647675764877528602357007015846966240149499973396128851820594076644363350442638127602030538276888192952850891279874105743793262187134939228294988191589009315701361163086968156100426621229557235647312766456538197422486029008274534037043321202861475759852040507979255239175888634764967126328931636554812515911672978436718620174037072367622294401142044663164241628002018415473882323303453300966950959545816713734399262049967512111998157023050396205409587156684386825089123184546076796859178231684842583707092963889628043533647430866961640038598706346977339085272668564005961566615270807005659578944530301306442145850118936327980940585729602819934671842435083642154126935639544659117738761548896481343282557085833798255962407863233111358910721544728009358414676830669060745362855661815932044771114898907238381619260155379846734512265054246456844642113832438515336552418633425830336691791803034196155163312002924625533802127087518611466195729542133856902013357111710057280343900892637643413290067153405719599486505446356006180703583186099559661249045429682140845567940410830287861506211148801162670607228550890402033073167631523648607281467542116883718910128152294717509558824904598906872501426768090139020258100864242944300897860016220505462434338267030208145254964098060716589048606840450875186292296823754194196981998724720576923171371987641651044867340636935715147999069468811890926631277431820382041392156452901345775521602580775239198819986498832946681270032696222543982240157813289039734732965917821999555631739751428494847989702619045905965174375163519285727960032624173628516816945343741339738593380486154906209599391686320139917721159433136488245610645025919506815494399371153505313153562922352002501211143866096722777088988584425847236142531964091609207385106358579681340192995783057729434413860754862037334804126170563027806256680879463705207932472746208621705234347546339099797891118316607765536129997468519771060907091217048126184863237436100688973375666351004788050554160960271934053312282417293089585428972830008383623177280784893429086984397403467957960355592984375690102505775419001949800112042445613438993246340966452657821394941027160646272785988177571313941144978593476067717533322317776031777992543195829845773006039963549318744301785784956444057631619315529930034530596892259554910818139920891895275334303693277363566371073177196421009092600636022300554116815495841318443807689032117431886440729888667565293321651837788581139963963777007573458784774337758287567720972557964658899980117781795772585664731793000242917025850982293483383783652429432343389919872981297055053235593269275884052073139688872741706547559785367299683706064982247110102704864276478273464127216450415737435636906605829298176150314252994686227451525456114105289247125017911972130366753905888436264193805840809335678609991522619826311763036999476670754839619864023086075388408242194560144652455051355964395927386726925976932225836285470586903910506718219260265093635266158472631286905977695238203881472648418577619688376703624986849497460516622173615391116816601230565719126239778820594077983778527619299619649313347816565965043860345008760739381386199067697688245537643549480270949877942507680574253794791004002371765481538080298726218303588884267566056219120779963179076469647284313327428247055302485259585176707192328744368163710627840467738210018401365758157534661676034301320614241275030887746495965108337103180019547043281508921190257671447939700968463961237495735389118414883082630878180481770210500436245456331773513775306314608477567498512798401126664708545989795394354403618577088474388273440543697004666743593294477804657183573927531422081542975218987761081430102535206829772353514094561189347520619023366520747198054917409259079818833448759101295035674636118627172354158615497294524006744091810454080411740719077377854070670433508237897488346663173120939444116231438720650624293193995938012418870291913171086105845952953449101441110562812778870654471377271194081478019461624041906092388795280566327457147705818270562810095310088785668814276191344079719465342367790160326136686332770924023069765398096878161440575170351543145946219293577903141874980461013028649444682731144018448682509714717444216243812977835708848716099964959850595736953446656937460913332709513723624446084653388530968457406033422656056496595280552557479706538265776721618270245959202607743631085996599229876235642518931846821543717369139842661873156995700405884485170945971654748993739271333610007246209371229002557192675594608897313055458602926694677727831749589685290562702152796178381517477201870869311507236562057673672886783563809972794659973060234713990360570597094500685209382898677828354641989374068424710333016730189227561774457240860452636404660765439288710846792408895636408347399470408273033329130553780800211642398900037038550545152613698329501604589635838741341930775042894054114301199039123698680760136781094989124628437541935062684504658361885215048140993515666310663012311357237378898484474661429344035774159573315983248831466120161551406631791184805016842221632897508008693561300920892871380491454403584536619564209883661778648976290586280534725583786992731227559478964380289840826445717287873194779604846457070322421052955641531271439413046140035430286838595102286854958938947395826887760886196604472164807227376388699128699157847464735065116343260792442385715803785928569448105219253368679188627533216076581098324239270470428905838468972485797948616108630795641569961785413307909665675332427395807103874683204478214769858714569347374707038564624556794165829958864571525283194271879460945897615678793493328970938025854636088959285023552988757015220017930053451246403863568018228670345802810248953269977133101780421569376372659893832970228668303677286176383150989015477339172230197329628394925812022654435558535547605040359723239234716939922013432063423924983882414672241699616224171495342614906536363718450724825849534858549409880794769533437491976228039299976998718824377900527698615040091571811485417905295868085054232868348648277372492716228596880845518781527095442357781905353125392487290255298890976625279193163940805570978181556842274477826458292917764413294608280318617444903166848804552733158042154376861671668249002901028392903790782215908455616822446449320529580775886781367032923409355705796785405742725784782650678903995483846823799844190983823611334788094013262741865090982143539882154344137004329248473478998535112909851910270690566545800432389910725680047126477736583048298967116008309604880113145570869196975949300580284096287400299721437344966338570537971850120236358790460517215293621486682991204543130153584833315839622415858817266476655585039283902559961915731315204942851414541707774494008102841067255257770749640170118876370570945371748055352022442768161709203440040082095569528883697261433763740319830203473388886982699992951299690557694984964646227526169685492918658308132697095190992549319086061520439894524737685718326481716707714623090439087262110372323995836264592372203901593423096652917540930449993201994973715067723967057176728010145625885194279430275048970397713393584554081889982133162572321684833195554647392876940014031147288246840814519851209031310834252038386602220311742033237386286376270303346244228977237020050251321591874923205322466041949441672487395703617418037811453513648052870111008854519454597445357229993418098608598896459231708505553450266348963005517423486080450722634962634745111560240508728864549329615408428960313116767047886106906543019682448112663807256541274724617967182795537505660420602664047352838412188824279891257887030242914311436855972274566913971729619438491271620620890937136171823289348880252277093929158006037594582134610257761966838859378336412906265747258401070469734481594357225964899386975780382110126981131924176122086425648719281080839720576514816463136325004094060397504695252765822246318074085438433457320351987268231758273669253424589960044374657786127840364536542434742278447684602585593340772873249547839847705757706307463814191535048986816001981021614339378447439087094013625314933283524876983566231772502171980770395795122440471919272831095651510311983453032877227360045555973761851969466972175217795794531000996444136919699802172341701085708842310199108144747500172524087637903780276726611448169811146065775199666828396528681897991554745652787747257205095711051325788689810939641456389832620703524560411790260590633806282149498785199913923462424124831835316337295477133209654981473039534256246955509522476022374125845015993889785199827017397534871202424198926485358592477885625802637052651478697030754342953782468556581008655891086734252300058516782707970497751655921217267045142106506038618380083190038030512038943009267652042014222245534106113068468707726105711025661803219501582401309119315053141816102959051093972192626749001565905182327140507651284995814015286117244909572146192711252946695013400045973567814511066098866068061915469131390741799175421870990157121698184717242293624856259356352485991218362528985770527143089193851818424137870539044115780525268352759767306092379871743519184225813137358188695953847311937511580593195859718646935719734559441837743152471102248782178434717660048444311038409474498593123666162590267691104973573490747695992589198443483425413167770487637550315705864146371171954662206332386310326955507063122194494392727076220125163924237018218884030311206665112581789689262368141491439549383524500262118414078139082991434744003517768118752950019238850087959669357699448889131471670049293606384452592274676069446823080381271120459078520192089911154106648867618689406704415692684837494893011225794595952287703704335866751909090757532139219470136442483375413086114527422913647717084034235108170115789634283315235863727022956435594238113821278930083445125812744924728959812190025687680048388608125314136177657812865096107130983322976216524512857523539274737742381898038827006436811493696601553992577886250352893829948255182993528223244016900363330432469391445407542368803482543888054969689641579236731826274214964065577785198359179044399982735625290244548173635268923286457314023356970618987624899657333908910582427621703512303195726459770015827807856270763211798781822022339462142973974316202067874573106981683569070671045340105048198803513849556311202259441923856684312293480324011507575641401453291379655600505940492363582733628446310926361021336602105639912183485382884553262605731234050547044900779833149374882851651419070345662486073092046155342844974913534017522322678641411306539512603934021664590584021407525699467490857304146150761169640620883685090621149217346944589647019130757950409514820820296108861933995523906996884395588632572004578104682270632893142731040331471815755053928206240058314336737868806925779833148076442220633874331546357060066858834729797451172610563055800549317673154226425239537555445984591048280303340180992161116680834307639346282761577531212042090068550896976741662951616492178575747091632397718277022851571544933272402981103056066142736092752381724640587252546458041535402046120884154519233900724246785314511430653218104380891784701952230363301492354901319186328683914269494266468041290637507299506064598613593006541453281171792392718693207340360989802441859718421866800869251134095028212558050258319718205633188266578557411375673177358767017997153821582148801402447229026593477376415689890381661606293690991186171374790374977744678194534588690792974271014008974754661316160318024779667551497916072211844522453461450491035144972148353454789053462728327942595993464935010540563834340932160614269588999449820046983407451461521760254819368457461599551592915625630997233808123709718549176887975750683312523543406369430938603327656256767853983772226464679739906860902027691770683610971422265532045430756261671071350398473226073201480591088648239725369228297512068785248186562564047733073422223246729711526464699487233300857430165735246387008201343644519678615908394804845404435286848251003727825733235577957383257281761736463216342762778023782563134103818066472829347291389829057444257794779211161525527963308314194797140715904428041228630304109476996705095109575438282249819226120856902905716863521025766410001791403391869613408403424265780526391675271232271362335828857669783597612478905126719150346835639943686603998497708761384734328897113701552143183432663831416973266621657511184238933374554784001572213362840087536055621269686923347832600537748297019213208694143169717779530260490639587282853304682559089474785155072425913071769727026622596731952893062123295914202596018758987174126345989568367551344016958546828930890213458174008453982095393127523507389772214078837851568001952824048279216876754100261638612760606420069914403817833584174469096751546771321906188288785128331210702771634647732922799439564891710853863757736487144061929359486701332257717315431447430140575189299817738911237985478592331586276235387977650887581901336157527743645166904377183154205125718142070292837660756056668648692268371128506591839736055524948894833702213086823191733034821489613885388433069249365957905758199285827535857613226687166459119137223144234104612514081401198122784615210787754188386531947256343323913603274250026195313393679603975880233168413213994173698279161137458417800859590968106555359324361324401950674664906321731551295859686145958782900526962554877344923850533438763985102872602505885813033969121798156597205914841382159992393552238074503306282161441407462871415814797196798755320305402156737332216354915855450034796797108961187148557700675117788737607029914757474211110034027498228573371818872889219939524795882983065944112171016442100642379336402937744377340764550522713240109908265787630849455342544285963652117884343254720700487395831624356836943142217983155406559664425985229333201173691908689372149471931307104244041239602585628079217949174170032554295897816485840500804328146543361386559841863996172810002021854268370275738815047745427841360483342241154361992559596001957425720925898163379371501222191529120579223158852634501733312081128058972172953195434909313418415016779528610766095373967632509074748576115144403258378351791984632257472650124725607639819075025182663910216912414653540624654629810335682560474734646425746108108962117630242139992634563652943158690514602366896998493812158205292553994343593313384861770485341403691198101832473876612578618702442162900548383987519540608075833382165418906648580195284482168918020732469727059947678261871543779756858563565965033244623511132088987355371315636424382012471139000993436895690725770775899826293166529963108468171781067589307971887680788171199927077710567196435057537928009600151749388624922156928962115670718497417587989853502621931833228993925279740126711329671776710236780939284103968393289446065867428696639141934462988651367469071675682864892988800373066365407139997095501977903443697667761330020326724676658400190399842709256938641171097814115928023969093539052208854802695876896956556889121351725214471263400090404840400841664044920195428642861658753361765980765746361258772650031103156114763607982803010923804485265578533061313597436231706718118565927207315206012468765859077675798763695596775783307967834659074895270367175776510511470625791697638201836032727228373881946774980912796464030263588201244827783258246309836279932460874890093084882559191949200292381261253785819558574162620558588613750932391991080334529111167736452062981708598554673499380542231788628170365510231003417601532365515317272307861014955083582634498066037771895428980231572999731017867294127950622826132152695279624757957019818178252576887136516720832434820562136385501888824376216869678369776085494360054335857371179735078572147942818567270236969440180035688632257724546424183931667342090502332554930150288273963819810533074222480004593114815632477473131961235703252887847042288291280812693865347933057721426774611175877229008438694848232526169703352809236156161945129875636334976572606211121764152005492888057492106365855931421353875474172885351243893157432788271681341318755863827820738399383647462334807745066843678736148723031615494607408607816775442532632830691419763039848651182042384185245192148656381755160580555679319998519100735253436352157244794748064981695104497707044606363441966920987994289109170832524984855616291688247380316911247234615278368771499314306195585760459103776436305902823359334256152132992992397699749222097205283795745080263950452860973306675414949256779421620381019616910613622183608998927976124173793100340382477499363467171700646890725792221749197679341126559356952860078395675020671200435426405930781005417300640279340470025407420759561150315251033002075762257910227398426827785057902217621057783932973331612271227835197741967937564074813088735623674504416947015855177649833621048748754843644514288872240141508467232828978245677605334121249112031919566452763597071409311873707778681765330108897032057360096691292894832611662658225312694174414432924362927928731707624273196886173600877358728532531632789255075412548246583330293877674783037786868307505285356158677049265229079651581309003435767970887714550807164289178648699204147578413271946918655884083264769196704523344780571090638952816326238040283371522131288885335771297464716363766095057852418192558741738696286441741454664468608195840822206133334609000480667923305565899250637342784401943079089975541995829732993898604835561062321904830236576300417397227753487811414604570961020091112764677553843042554740165991968442134357172709945034925774969310166269127949184060723606799705315444597155484531863173229611183469019213952887136875108265601949714006882682447223716623256902703398776590955113444099005152398454631260381869491409853797120660588631055309587625953461555388700257723128872338779661962255457444098503438202710326279329896013317423403263281962654690004287799748240766174352082777039280423626728529257751039284266584309939442351941313362899828178841398607633593039195409384665603088800600296182746241979506854641668841144571401576024674248286813863038794782855347516249084043162413763241779121414133698471991408356663249483290994581088321766216175249487206911813679908704049007420091889805076357559757754422422901842569478718216085592839761994184514314866866551897155468009934573904023458363961237590752932191610012052553731939719346087325582070900093165895513544623509863381714773332541202861350435562352564598799549169793485142977006722205744456596304506937029002395950856115189462476997072945303961120272414744253397584327330983475462293916080479358147560787867772347875924179755793867655199422190600178634722631407406500244351918988945253184915713944592883495344186205880463804837712592692020955861459502685112990456819065155692110163494697825534838769098945090830861239526483226460999778758601203769020786526663444083421987927981785615918574909026821073267270035329525056743280139680299345619674716888701551539493654893217872239534004752618776139454632285352378984029114299906602839409717760610762701007179792523756857654696426078844521150660229654910891831688575559330440379159437142654598677630386594832867420013021866251507477619124819068844775529722051754640429552708346565035160668890923709058036923249113940728516090301221612913539527519186665702481645369306364060097919087108342522011383393805636934489587028541304810501381515349756662347951191464740413870400266511249678678227899556069427518580059287828829247154431106102533497039643959127907374636874805850369275769686963123740500090252430336585425956972907530521573450767883031484807775743805707693986339730244453178947005742154303202829585919053583784900180212719292526534196700980003287426128813452501910344751839400494056938184268287447118498293401516901330163943368085512104615857194297295501322857832630318802149250032879654355484142849090508701464160274138592447791528154072298673393528774155199747865038462106253333886308668110391931498370804751677856060909192251281753237671725267044670225208798587776997641709843394927569111576017304383283419575871285313757986666978776293772679164515867952364345231113487862592307628182705422113377671296479628468005910496059629745541606209958904778850684858129904743098987173289857460406987210535015864781829307919221446266375227830189674431189285285886377436925742080313554364198658754443197192925483181741827304167021261363844782399866303399186726738802229970873812318070692798375570955657988477841585363137144928353699391974680593477374705986327921816870352876103744919590040309627190283182687801585271846954671851000742898155798243540340441226095649685888423590100246718763911711186494085765280808743496063387385128071510198355767960511671947836323258896078157747183509796204474058534907800069965542101484228776589046377267190075489112811729307552708188538894011342582894813482285189178216386683627076686959283864457607378855004179982299299610622142317700869058861100615388754869397657581348730949915721214557019372605929837712907295080013986551317172220548216103044835707953149975991611830303164037004074136935279078553226485787003043643783264166087471070233880288252978053707023206572532396272003649046520315198255660924913538044745353885811611304312871191650751541453067392933722791910361466185803823964365666354990661868697615466826482158019688611219532837755920950670237746630936290565482783181978100670591105871748247410628646055267618008700739631440872841192177813771918229180065349640732019387664608217838418829398512759652388268899520627128330939129010340998772143920991687070103009419614771131914242494995692935360019968058492578954137951522794070373594111196660743143924105882727858544345235260244188657850493406762053095783084426906883916241905520469063366303846586429252256973294746498252989695142125110742561845869371415969659111045523924170232250815118400917326324991940156829930611519753247993123745758876373920107619360576240610446431600111822863069422171177362045475159411589281909672334026483494374439059616163145662088487828485090090731549056124891419799848468212549910651457870288348097715522258745473388648184054129595257146602516676519545801508281565549117579625415626517686421877811196969941270676371870229120031278902285633358195311153407605033820378349129220612737190945018629607392849072840841054343083220421680924669835019710389355559293700699585601123656216386833642002350349082095394663242908062258885359015321563545865974052529957954571795728842165329016170877174262104759203522948470586126369533313982672823244262040822498611725050506612960084020133733923052532093556269009985424521083751158889147817683348569093012774841905818024155433240861408248201722949113688038602619622308575077473866183096184595519110252142784940089228414213597711518631796543827832529938545878359727826876861365119554218006367418908764435305919500517306081752605761080597257307600951223236892682292485333350553723614777614236378280056784088210666204301549615935033563400883233512098674625483476890240275967933987137793568714909016637566539669470831611995466473101908004610484778690167469976961198289367513688835369069103862761204343286612819248756707006919648185621560215453067495792415457556686921192382788426106371858600987064636112391622046856699736716983423469875652584678699799719390615107726731370254035112639419306530168081195788497001195188571702088264981854078231219292623829804342587936760836189091628785123150570505358089943736938952393668807729283443902379494336153346772704805782630147595992139078136689405543785890827962899890831992831042113646716934141953221668999048352024804241279920892330416470467844086551671191314475807450136725388552954412159344646597166298407929755750972250376173868500552045151093481436706743892321473284290863054572499042577765294470867860342731285148327278856734392097898495471205889170721048934596322464177259970418510431355976989175512759076892798351961033011120637830473546372549478441311141660892168919218541598879890668177190673335584179208883809064174382335085860436668718481694484353732514165594000207602965715223178077126444284763121105820009159726540252382516822525727383940141441453667281054700195671205455365719903195260805232868867993858083646913843332275329253757277118594838342208317904291054457732205693576130474604822453403608090798836809063593262085882300643959473976521761467362475180388445928570405753820226835859667594480550332352609441473802149944517128971596748815457397424261668844590967251595038155255435845411766297423782627731523267658781708682754776637565041994860331268853209057110668136389873508334032173185763079205605445926341333365579536722136928721969689772707443205126020380821858446917540773032870565953614307922623605662542476035177180311193352380913438648311834539706651214954826975707160475005699964479867842016201055176734264247594653205776800913460987878549406663221294691291427226925029433912497511716749859210667798053930331475647333638686835406822554402205296501679021506044849555213897043903683246148959775383074427883693533054296244775875516942074077744629457560369939581618428328144117369675541421826809180043649067856079368268504305840373659134731105299694065899967022467201244706108279554317047955584464940255064468908072771738672622926840989311756495009910526729396444367426353514929490103668664162046896173427307794890284523067373126399942421582801226380298902036292532374046909305441272307467571922684654351532978457633594838770980833104135026795652008255408278250876413034700068682874293879997621887655505724871403534031999271556220528254252977853301983075868111629583242588289731135119906770948499751872062876632816721845146531960302485796416230190487484885409247406924489348138375392739634786588978763546248186465919615004595678703187135807851634412715649789154878712783809872560532367396991899194477867361580952274035349214838502387623383432524766639581701859594610489623223972445553154559499190295992424559142834572138657379498774155816045001962027926985773455045494671058198742308330528605084324389572173645676522847218953830792467968833346640062141974331086671559909167498101875865620927458036976136127307958079543869142025102077916766673837889653528865679786225397807163350185908905384510307770837151716736610064493104307207872687302877543136242523645720783768989986998670127327499368196816259990168445822201306401193176204016909612925120366732226926212873235753566662346678518465079366937436486759178509527043595700729205964672719016258895178774954264349627414299298791374255001349982437215187163880376999473318722833055072275274570263252000297837531599077438567483655487130422649302371597209223911174214290401071721218612378492468040369450873360693632852425408245624348988011430958909437502942463262755762646349055021817737957022028496156278308678187351173435633714499842797646635969070511928485116758122473631351698724068471991844431123682379763352626339816226063691724061613672603952285254451366365228908595635166409202532392456093005823572611242159143780363186978866736612295813342141858030234677577480890062815247207466936553243913929527651445066988597857999937923592951341028969280266252274676459938671717339824318029787132631453687682196515497892462569215881987057654108414351054183227325807579205437270030965597049520928064756233898385517743514984977075183187804249461203154638393689980086624992878407448137192104713526916917876452383188144319015959673866365102767037458978523618277989741491226954920511600818305187592697441300243193269273810690400947401998479793446378001339729014214748820131872697747229531084867953982780086268798068869708211543432947472945444712152622985081402237945819807487644777947663238177443256256350955628392260726830244685899390517111621195507572288784461714815924143492854363421889582102961530209587077500871340373162218850001503407740828493618518165989666928020854881102312070977631083104611327882282526426701960515891914476281395526032058257256540682676481059123671644347756850894865907637167909331863921795024227704975080971061912792117132205526587814808037684079531449146228806818064282034692206506127055863365033312278305219374819191425004498285240807792755028698340826154758873919886829046129635193350429254831450899420004389601744967241826242673857110074463319882661647194089502695993366009780775800025382108259379097624166050106972712848997387349759531708662739589837231464783035552344844893259326163488313066693325611536021766475299166296108876913650078823980390625826501387286540428989288331892934705706793088829152394048180679354202372513329635893565589014050496753425443824862365098496993660910045020096465785971970975620076756241074288688842365239737282400786229557052651586000640675539334033496323460891874293422196842384891292788739595015777340932277097401848023499473575832389502420614521292223044461940548934232582836807157507697530552590322095021627243257400773354964732389624548112076823390809869665350477629068760636040901677847773252293946816254250388464711652029417450226856684053490467916187597075665402170998946925610195915972295467562282544807316795877541409200925498420678146331040677744294897561833595245238378957862384896858029713068841675461214594729364836229737072951038505757170099104425340387704002951497041764246991885444087510673142742582882056022491657770217704046532583143961506352703995917278682060148116291712044775339302418854631241263108743912344692380359878731141283576981127338062494656362831278529737195128264113901731380880362617986501540397453254582579777163637865570220936675496055595890749043805441388913270448660127425585068108490337972760184543579617245438761645403908018823517968155531053913781446479141902538997662735874151357550026562296702830172274729939063030288453402511374089341003837375082924943841529635747274986990953952316556264234304975481311629483670475846901298295334790045438672982906902574355034264429217086213658429318002192966925839401562591636767367240170540542005598108902287116826461693197054953188443428331433583751116667889791559885206144969719049022034574685207522649576308609923450919352142916831602073508656173684303114727265199091626436045155685257235944839267209014250248247732371808067188578924135025707708873068198017646946525365875667485550998538726100413462092907658166586899602510182801156862201058233764393669371058871587971483502621747791815842180935559614310247401696764718618984495889772221958095225760632368978720226208707024023865192573341270880054231219100907535187986343717045426938855297165108464676760790270040725095788449732670944111784446102306889827258277338209271982483380254184968107070124664702182878120180398089672878647756128570899465237603040222302266340207054309032516118245050172104226694481617283705247584154848288273268148324813989335119957271802490043429973860983119948490325559976059225428375217925665259019065863440525045792078535808228507371376250766669249791157406091694662602234824930919447477725343986219767525179768717497383202000791641384772132714408195687265660773399825966902232867842760228284303106421919656308503315967749077918944840492628719493414450332965618296691554548369805028312703739508531260698131586405325590136650683720438777833100696837898195417557234801815530592899767427587959846144467493413126081427811496493064424514628210886940372730444660339783486033917987073340555653225933074832003677979086754318235892939625850453693420882390758150072135322846655016852811339771755294320254700084503056356172816872523100247700710362259186143607182741100968657670465900922155551560702007584765336455704749053152587075858871155863521801263419940723236627748338872041963090595036258755431203495309676591357252153514241786915241738043626304371941951562955748654235907536891754492070557760816369978423292375085264122796900715056185675562797546368288973139104488995477379941180723362645482924310480243808234765264717629242556630380200577343556007364317683761537099874794110823564141042892621231472489535238201431902922163492720462940288579452713125319534282210702597671823385399920611843675870054891820813540516490569793231741176785032763789486746832835126416413422409012815364318966252138458738723734176371897529967216020225616655275283643978826068598938063945951522450714534715843628225274322635822018071292349299138033605740053941409946102038184275215126507311736616049512246838800064992631434797428601355629202249716433821812713008459032642685115915561479527575106329041096542662272823436400866935773357546495086683025902210388073950696270504085186344586374909047882056336195717502142851629616766415173354670097502024492042025474245250351111430993991464359500373589230904827872658911569308312379358883998565648901001427630398903796891932178895454722231360099377911969500967164047362421870157398113683094020241621791652740289646274242934531102767659037243500585806847729191754304330233060716810473126729911231252509203947433690576849027347060266348461317365158693166970419155024676634615282465028653542404177549396850942287550277397292727789503622066805551762530812909475560993581873491395260029013770349058835219400403044010893814644220105956766356024996127811728321783519682786635416636087492773249183996325369886821728704641117619613775226571285575202803886239909614978797811907402501429421705093131735464901227608620960605448526900599955162809913586997038353412685591982585556965847835954200730761026002936975490171752915413715659609353422632511971549969016492803518520374936474352277454888757444592856492614628883518311106375517460212083952758729305817642235687653305746893437085032295725935675734279843757827253797137008910159160789110822461707887245546845630835208968654597891973766829885005069027482637842312136899563839203733355835537012901402441543662416011337671114709428275339534351255659046747698114249739343434850403324096308373186888475224026201107792668077960512091324890140757393292403260162256083993215681178793437187888752283779905093154626412544627716147959413708882512209978118222565948141816017342307824109631703881987559105913657665909977285628994156387480465669734079639566315144556038663779094897002945280552139262042984168913453362547655051417811840099203610406112342511193595597835354489372729860716287981045840559999537960089854184295387542717502689233078008245553559336788779028918564630297695841717019775250898649805982524556619877006465103338682348575241247099772464085886977837764907111279427198361583496574627817064943420334394196973000805748864203863318774800420724642438952495008926189690465567195111402873532309322842562777280073951572856718591376191732321314453612482628143491658731884881511814095406292376113210459174910901315064773674314245594740693547563647303895872219096535794163234409243050937366999239021259716451297346632567064089696430190954421079436820914046230785699839541698405575095139850467038950145326253372562146882264340076928891840077778272283067659958430175781806866108483634633106250600118124413889351807980133356032092839065715339005594126773137794891682054051795603690007674672927700986073795622447954511124588246600949196842124915569485446854031796324747319084463554585480287684479928211301063704520291043906839859484409482247328856068040858987285745260573656693693569765123702453988494425325564236036587033622922095554601650100198133445775872104846906193343256796681077039316811017174140156208450705286257218025899495957748332519166129561772354020545473323698999592259516187173177396709968878137782382962375756199063189182566077400835006612344726395664093229671689170682608849326864135920491239200968902593547052867148083233163065050227763210063671721266026065519788922742717203461444125387680870901998428119227274480645231342004469919672614913154313185353727356489104989945658498040622726668999737644408865196547180752778848656000639838263392833361376133207669885746154846841436895682511821849900069168525566667156362599112578908398576840771467812809053976152107756416771537872231128518491050390256794427305912923171121143484887338047112040800607153031660880117712634149808351030372038894856045790968295837314742375459903101046269939464700720207064387914630904293061320950063441747130484497809674884288496819198412309952786862614030511701954522725709999321708836810990537281929598645573449829300087412400735300060303055331135038120251981502568437766925324975086264617938145704680404854906486646325038309124958201571988010340114728316947043361462855635872107166576965526652979875790130623802077596998529456519832978237942104651691270609776571624415770056288625882939197796815249715399037442238973233983348484885727140846740369499312502608355323843836475708606811667311274473959552002873683928545398758912702709536580332494182036841920194846630228313147592764090510080822834695676821524885165058418819435515452761425428567813024112481880675407886915655494861778462473459315975603961049668812684439075230306732352010635360183814347876855096217878847938721382215915863030167393487383140640212753336232377750704137529655440590933680101378203268959416555371157826262650330536532180602956261899213616596893683507492772297245152840428655837682070933411513958328790733574099335406875285809557456296505805025458218409463712448701220213773089163100908967378692854605071953815934800599639250135112995599527532320611873607041959183695302046431324681822067736864486749951728264313504638740254439327361319676459420000620974017381982710023927202525474781644834386557405755851166699537981123758571445699718242397682474466505800876497633020457330724604748896654550215405772711145710670246358602743725869526304569392630605658801906487621327530888665716528676089525459091575621509707403528827895905960845981022284846743485854645779357945767752455934701961462734963741621609756287172821120178027921822212420245182221254610274768584528115591042642329373015367226632077270364329487125777688725934796453829128112296663787549841005387405685436889406717204756410664159366408774722529587102771742510795548989991862732550925001769188959982984011361581128295428238272994427846871682074876330703933928817980086613220628980186155712401570370202461359237415100311735334723672003716780698940058643986114653561173821342827098243667606476965731479774439005951162905631809144281556941329925408035976324474509559326641081521926455565609417241517554104614514238246399295583098316256360787101849253762765693673511300730933587318220968573798818577422874973515122243206646742304338903186557720902155585909497673582009574404572371308648977022296832976554943079604111610676066319713478433900587243291933573507845153291254976962301655080481163148006057465514841982988904138124322135015339432630479848144029430565252093877761089498171440863201233838541822162846417594374426957309889898029232393038978064894541596892716810810974626299169451922897390530890804523671474339535144964994057125637486605151602411549069604176571633073911655572363464872782856790573880626500844695177699183118538970214372239279027484389658238634799378823924920742675913570946945342402188726297992624190761439263294625488313708144282389878445868422477432457909353087545229351327189807021379416935809521139036312671905621157104277250132022002500302853362387831401182399557055791632676637530960994086851459843159339419014737532315028562280116761577237996735141799361017327699365478935003342599679310215945655135108026657897819863732320247675590333038471868795019400949558239356425801885551930026766138484109256714461713427611313285841017611206531034146364533619434922550975610421668638831531034669114324633792912819305209094349459441382181903049225051294994973663339159507115892848934491547247494188319954010965814847868867637108097105241565008801279771213226335351198102972139344458611222220885659375333265117542333060590109119263718360371599667328639724008534599313230535091366432882176675569768277341900791437584649788957354156551914207305447488703036095844354020197838555921144706899535549495358623010512875681056206278085274149693931285059161021791405021479092933302141704543952658610743995425613213508093333109416371308448919498688424359573877303853600755697919571623131001754979887759783205899106715777486425766326412994718778967415397327638223211722068410915146240981100001270763012626254436944447043400499912162444605179122698529076958493159375106270464684632375624059460136132151898209968802691335070776852688577220779127541299741837452746364133121892585031207299129631262831354499426017746435456891874526102201295552016767011238336923453743715355556241206310391115672674001376855129080086675813320106980649609032405315067657530777482219024689567513211137448760940637648037897373675343922193673739626211148383091249383835404629370994557127048165934478296022194132696735240320576467608577565172401003267644467289908731312347402540629343086500906651141945765839222487342877163718928914055432723261044555517715209246687677548741412909520007980111939091098568619191659460575598000143855778689909380200671528878205801656882396369644732695307049010619440708330842635625187843509068393322468624140285179560272686237785146666172598852036486603410034465008127305506874461007682064220011781398928077792197266658827677907394540078248451761080373063859879732890117029549893853214160722201209099053443822667118180322166993903332293373609318032221721998360770904290232503583136804706439608209073995005342176569853481324385213898064744680958568375182473179085967179457635916013959920933533094842425541451215903918213517641048710125431822262887572997088954771621990273018499005053848661599648239782342325521309975164782935566690074743809168027838207884229282383501210939052593820083834667080158491227012908567056370081724277117076527013649984516209802038292307730805898941997859923245714656259189317387780167159481899393218706348335384202799947766919015346104353258386921389780621179124785719130164121976359606085538934652661924468522681455718422581351298455333897668429471642436951342325680886475063501797359193149752757294444664002557877741455428064106315376113176505281276123115832350933654778982428925356315512012294282339841202914155366314340055928326182884563500311990867592383727017472648632560227425406552835268040050285923935043047349007493339783055669760954943514069273025287919975970306316719085323745477885076846924329661135152803957026180039386196576273803226687730543408662679455655696022489205854300487717878380465988971171957981751483793110595225332944408375004690458594433900628325181149410667022684387934967527727272491312972034786039085765515113405719022705106354995206196966093499882038697935317474382939403495362892449624056110952579534011285083699431055689524290539031509388961395095913881487079292895108948302491507777717095007612574678896947605728037579994292841521844805922796943265629946073739233356350086472138348366674134976942070231484999381733005954389973048990253196565528462099759060987376914832214205775025968297041634482223851355298436726323985247864848412496465117005271749448035904061067453017566857860452589468180977159703919344284738409084816886729570205247478072388749649192237962037987018367568564792126047933087729049982512431365126180283373529156501042213142411933782079118086606632221323916404860739222807323006393744563561911718539994838396016727709847684660683501235836054901251513998444826211990179075998980800974609831359776716389646694102368959883804431676784258081525257484880749963403414918505150169949250374179112890533296519787253524906120136025135191130649047321438947843049449585910378340058909122118170186486761561997672172765304075912411816233042007186408297243165829633948232343137644904698166978680609980307622747899865939107815730952454436917496153917564042468446750275771591974585726290116883966185706108952812082698793455906306327111791092935206179120743896733932909066369311324430977673845452315381772207718342726457357175856472892141712428370471355734197977807949357326999732940517886741129429157168836706078407404252238201511838826011447995113614589913810746174050094715339282247205737790997573226625045917666362789233876724743035731667977905304394947351010381275628205146499570936845456898016904079319656259774352125355766246434875144825134531939826766949476440600645325118655445302366239765837759134732075414168711011187863767851510075399292164539157218430156467570705517398515477192443040510509153993954987366556753703938290725182450300705795274375803378321024354152508210266837110609875690421308186546285770480738480272850059211795233053237937384525538512374900660324385599364600381828867816067539746454902297655416234079969498126442942860943105312992406518233941947759095961009587115154072329552220635456695060013054898082044358060104993041266576057901110555462997941428744018550142577232250288798389827191692704112729865625954900473349517950721985162479069011645981275766289088270245305411063608870518686308997008721868370642719406123711358120187513312312822640097464247284919990563097906924185369442714538582288719863921752865484454764650414473837165607908479979743903429216113570270867418300525039897056048012249476515701770746796936126882451373319948437556261413982722457126353924389226901715905214407955941310396783424972186751511028175879361563150437227013009595860986324604056883999641529332860655033856299455740263357616158350148765032327704798006601596174300815644307302596903587772287382978208377035876450991367728979654535763690637493626295692605166018991031855670659923993550802689095138288711126907726108758760886440901320721470699924733738764015962917500499667854391773656678380943063374591076607033805770055786691379065032014469666938787586015887225606979588888844797484860487390898061333200430561569476217294169659358910616115505474864835585034627411278815412944614333506761537957554843975691717369654475447599141624759786343842969265292850820203305234029848398233810449033998687534413392206552361011168572134900536798764431507106756896993865248103651385482254869059764157269862843839554332544880626938638995372953631469300777659507441727228971229392686352344646638198683375540010617903324416151714862076586366475539579338464874826379085569687827320936672608516676625041923615725543333992602923452854991292980591113157446001991695521137966787325593087868818676704579793935105682553430291533134188607196529581882502879199994118977767916435548999700254310071140130460744832071428621336595561037315481770297186676229917305048992351444578111228395764670091325905083071382304532649236678530337575385502547175747693549284516461743155716487046137532520119288209098729080766611296504838697088065593211314910637028704688277211658174384557017254383500607303110785776520181950451852674588242060289081537843502403036222357610987065733312148713169457416017774432333457987659981193145031567657956194150340114271576828105502890626037886134403885243955309115326888587899689072122891430442829410093261253515639235520989116573997781626513587042326826454052252938607076095339043691477271947438599026713612252148435644420071453486111115526523288316418614800950111194256914907121318705287733115576940555549969665018211873897324883512691562601015899326720333930013625205711258104168312484454998943369772760494002476753422622170568315191532603030089445106807256082294548623969156478282299145020311413265140098074956068158649161871848577210497422889840596321825188739493241508968196192284383703756201327396021768673070695100690650530654419713194688364507169499673528860298634039120319163305355387536107096857317278743399352551029460485377025389729627940605308681193986268410877234418298713731985315164249131253313399903432410617877563631648304989480194665968684176761281528565237281857083052060428346954081834331939628034230950994496954854116923710174726596717502751145568951345463422981655523077793490105355567895853968700583815327792212428396794086676293841861382940845192678963120656687787818777312528476781364516911092446727258681518532314821075591570332260877733560239598229390658947208425896775375516914379966929332543807580129307318168004062414245535146429609461786442401656908336143210783016388368217542495908699490350146219943724321762660047146856346535531001391907404202921960354746641578281424262640006475711722215767879751076221729625889854111423953502432283917994079186138611232773897731784512084410707089206254705031175624328445120322539788232365209230418176612114695727461300288401745195493434090446606247712120295143473369858147235243718105790687184718578537270102396765363182780377696514651236440489637482099166216241395518765858331258784481678351885812187413080967166000424185844436792512097533400238213591155574713192561364453270732626470144016087289858512516350884841820227055319775179835082253315794649368290493611925781620222460275024341076253697693354583395754385663323560710485944559334840847229793141623511192627509269025160788714843739508703749492007179495119949810138798560884599266501718086907615409786310993500912256105112602128199332277768231735956716567513051602703965089279752170015700097115259287664754241035491199198469366795620665387499497137440012059986617772201369652997023566770908395706288319053641239251410454278151248976400969060444908902339043445892587306950464378887434082641663774240384600779765981677503698512336254878576642250363448304421551346574745641576449176932166146115540897711300986836828287495173583039740142608632300829642304981447346525006263458898564118019288647313396009173000748887763508376119597381097617070208283923141644992694294855264208958062925137304427038661917929276565706113571905495653179531341129351525576781114924388624561670820732495572528523840342449702473627868683888337820595239790640838414203961832694729039938451965736953098101026206786405376526906528334801942558138777289059389002461213985878512519458439147217517125108902678082303372112282679089527130845972034287154006774881932099307520454018258141540306872724556136336467002930205100702067846691093261002011947672681628765074170845685608022699419579098581504167133636829830045574461663569919786573085263685748849139760392658521008533789946687973623051781426735560579857681301921648968826534236199386383306595517524548282634684626628742241280842377134824134663249608608700673119079019872055458909486548069072544150533324758662011692233647986364714640176654368091781829202748111177822598342608007466484409105988210890223963444141403071926679035459875406686331165078032917035797552767300318473167559770373391804680961126498064908778480016349584875497880740253242303674953401114110333021990649655205193916286193548228065622032984001700220899627892328961095037167460345169437851975688864759939964488918135113640731981263957984321279676185600929325420946699019220887295581004669884909195792409372581808293108138863739354246797423057805030522792351004079986161759453162036240392972252448521996051397916519447221800287457576792368259558655909667120672404868857865381434567604170727741613981741542665966637778541907854765380634962655523653020888714870176079026113943435018343813163158855099537984516832594692383355759500088639190412713757622022957557486599143087254296449891545963101980657986462167127361649647870528573690619463545313009963213336184402445904682883651926046992202151002536835656527922292927795734903416456976850456645185578991655924860888376431162538481841031594357626194095961028671913732435569953156631264605457443602424604753994577567285312743861794866103468643882591087478452962590615738394854926351750687519704976797347417125076926324948454718375052696649489964062748901570458891116358354427888500625823106210383956957578334853910207980637024071606968531160064888424304234921250950881633094330424762489525048573441839171640389893370126388190252037181859975121844811415555557033662086159298672373508923527188443333261364731459852676865322418441194628901270550804971135239678911763903495484360248939082488462847546976156926611172895623805101843340095714021834808048959465686164579124254699599726797962001366018519295536966440476266211287010414032812495980889049169412661657216226370011022158191757793185206165183307788428607121949693932217199134689917221631444123890416870335967617648806710819079339517393500306227053867327879061188446355161871959524507620712585549306362448186991742610314241851143490447503828558984207147494032397918244673784082798365601994737346626777942357679642961748772478751615288032490520085796523763933892352926858568724410276368506515511425968561910435993084428712243849817240808349102129468594297460824685494382692646828804914144926803032221044296206024489080450052239180319890325745185773468438762485347176407183142993509133018706256705988549198369881698452577058207255588815053569675120767168107807742373798354615492467179783527199813542321429956638415491279648079405921373830678577529525439062780211841543750169138327984581052973260145504374451185796698863895224807052881087732588903402027400532126810661524870081387889732862312015459766830631414640912820136222635391887959892770459278364487954369308914049742797729391722418355940505783199324402894768483637662545172561751572733795271494544440524107018927997514320713631518623803939634543019619481676235265889371488089203685211677539481916315861798680517446216916574902167729548641538700043768120416802728286346111685515300779509909162190483562384496390548916286949981214500283581756407321490713699329985642541032097787329988100092327590843996726545420842984292065911830815639245927260734156862695719519873047297037758031795919010220241842330193107844130929659696521470773253886812700449544780798467326610166427128182882278578560807464809070467554195603532301000906186936979181551839749031579071310350039791719721316767905127952237774653890580383441190865917486358461879645550730770453129619687497136123109682079015865729810187840301524801690689263514856490387717396803486629090740861018291758939004321924903051455022685220195759415444261554764129181918115486829678349504464708738270225647997488207734148603158265358353944004902399968488280553461099580058569229149324356396133237230722165149708403141464219921510160700734960363444284492995078977540466834067476617438467457276494898619102906069232023728468988966668742019360946754803124488077734292279494360632176659062062062163794055482533884608476548981180468846930473844462929912509169861380799252633907648041570846013848339716301285046617850888805783728098074751567003996000881074261309722728825497739421381087451863542220110776001325940277262381322338440389924206589675601043933608571227112934426859976682057157274291696676739617737830701875832968645159438196009744716925566012334988398873381430489713431205370827442266595882184018890976547537441379508686216257098893543104119459021662427982992503055271340224658695750889307491179429809198091199217486922798503378268627262225260896172746521686193819865109714922403636621001452934815494610351703655746075853856437155657921133659620573959102766145750113402150541857483268617726936200134926688652749899656605559320986905985070720868016198676175011019841838492959794336952539488992983666481903793204136134485981468249511493209301158907078982490694866704220798208947255190420591048025307346399944949072281632102660235736755297845085151077846160680928398813406246782476779532434987831441781610462696218805788224258286822884131302525943548711939097586481244997342538820707591848659165979658087343841742238785859948213063557899803068915011434212189478771223280824519559435946430889298105707939473859120770561633281590299444668339889644372624320302817663084080259164081017457396334577336220617709208487138659369538629651615269246005833807379581250831107665921254554406969070286322992254353415500261299169440511030271784044808068459066562706066890383689492991341797444087138906398012224084469401316333360530694973737072781187579826405376115982685082353005684294949396811979280114411621229280202029630042302855112142519003282831363097366715910198533457675657288800783215208287184249708182778490142040808256790989685366997642509319684978226326763777481286038414095686197960856639479784104704635244122583081694413619079473868619567811356630244925036371932169401103287655306870999903256683574693137483434037861443809222555975014543350511205377268638484978890401276919614147650573223311802820058520508073367620771746112698405242794883705563678082196608081574269649223875147805397017030614199282280718841059467715506678933475673888781865485833435622374912154853148902749475569417162954888499074823880948519983394017998426200687722575844169570257616271346736530078190249078095375017556537339113914876001481231440542491246618276928345473769625451454084089871395671760564125876610958119078160918347399682111186291208509897223362031053931158038424005118504799365857695110252045315867600999253052198592483478647275316690208643196123348628810607160081228760281468637994572474282647060744202987614561132455332657716869242808537525810202771160637881896507458719364131262563768119699801936268543203736075173271969474133897857179727248263769443803711381634630553011581633229099773493583506296116514507315363703618199776925165802221609733735628402623871005758620065244302707110940468571603529337496736081882666444698038601567837437035160766605208360057142447706892982545471016042842327743179500672515078251698487612353655818169864970717369947117950981104695380841360903316656309774410284579493961981217978261071957789426214089647468676451510088437009951736236090721947219701797208585325761739108951678121206053411751109426198915759595846743652835259604567330473659191607166802213052755007498961071306007802336824310017128532913289556205047854768640338922486691972223037528975939226611775114895029803168874639654760765069178799251582030789122850291626843179788553750429835946755243452878213561536424125582141692273523242236988789768337741156251687053006799475934885163581553555069579809895088875051055515851644168152695975724256253319380047212886170822672263614552268007342999463485075252211111829439226105858047535047769974665457917282294814908177039216189567662732976291953274597728239011618662225407595825958527227743267244736573411422715095850551525587613119305373864257847465467319563752741168591079565865032881011672088484877545291126126257687049953854626022817393321521505900852799298847006909445778428573300690861690317882594401240067069037269415079456019624308539063011092570382957754443910183295668641680137560883903265727265281152556082798313084993932584989759159248725346050179476594152287372567195323419191238372298371509298578163001933076031311339831889713415052431014670309372046969036112159165676024640789783372358905356729550797062031135714959194682524520318268233448710564513820548296430719018268845026896454304308100804181585729161289197358466474297292748687317099222915091193812167946029707930576907769398870773257593887644647948770168944691713339210876645036078270160477079091179015358836895652990114386927820446555029590959551875518737549847536785084838485520256179451553144225556104052114886377531085710088120882425110694854949200174297724895174323004418002260289622813043342594493661044838862280376085297337632062289427740317450323855549155279593618891611020489254347295781566991966010171088693014191241103630409428439491995096985872669024095923045368752370176329547524203304649951151094887164127424420989649024317859808727031893035446639779517374938156920218763288002121273119716963600613261380454268373409093397708981828606039292177402972654470807828528357475280011953450583749496362499662746066616392649349655954059362968637157157358025287768283639939142731237638761248558808231195393976933474681194771810625657862735713724234410187069877674207245794663481284077378924999850751325127499557692189570433533243421798531668694786733386318079761128346298767164041404100551776417621301958476076005777513728261615129355709872801537307559039113704077624302398483121403993657398061802747984062938789652471953674055100096681389969216234877957565984268527154445309229743006740479365859473032282394205272691081039793655782248895346253327192991417188141363838541645342773842551111653658400348125003601348544922556251316705381739498977419609905924130177222837588553070997161379568622261262895230603292204119642118822640893259439635993224066741314084192824845308236731789097195530031114700020182905473190836824965354949126703939539974061739188922058960650762407388768634836435161862638075317465097134967461370233690404244387402592912614849232807805147673383308098844551267634233551906540248751693962629146982154330880423436499810788613930788719515986869786853886470918939681817912820796354491872086702317327443541626262431351732493427747172753896730941739761796204765344513659493505374393257348849069007371968443142183929546879524762260244787713038497197436899781954983704475056878412050935005652611135691458154002997029168658992244397852000281044673554170609172341007987287285873554525261212813791049672763160853947014556413769015168548229891253655657818711099737944827621880946957027078805123048468280428119691464597353113207972485971681898300464437150190765266287300298143525693465503505189605274402538007967992996503726209765107999671821865784055014943040696926548889917458205924689389992197254933013109072042407847594182960907761562280351065847869532985332155814443679931692828375745937357563664923602789135121097282840359866297787192929268177498849321052286996246276268684968233131333775890175038605530548882750149768569345523629063170170564514909309843989860601138681307165410811237336851711668799773793666445815199745295709603231407023416686264635187192151104319718454345754723120386521168943636224371951206228398162402796507786823756021149656421169048869680749017772450940592019244183740502053122420484457145704207240068544596752266541997349102845912959969799324677768062747428961912094386673105224292527341133959562121809196137644469615268644489581098342883685697337394051125432043194340142343121325624079302699089592357725238709925252085831720704980580805928612340228448633542337114342364096201178282012720841068439695887632586806614479595044133459516299488121797265735667998485072541715761384436675852776810080514865736485561877391090196727127911818339052210646424752045741645043397345821427318963322780317662477998122575641393369247189770918386291175099021358445520571593387473460479795716998881340455788712441884104437326031196753784120457057437846210014966093548320010554226835124102860060659536230124291642506848685930845049581166350889387708440725335705406496694652301408030080799353359872387589686213291133952327778236739485557673460059803221599808014472026011181404727580533291991296117669238632220408967002316696539603477269729420218850570879983603758983821747696421274087968234914050404727394929788658099959683268977309194261888823139549259852119004864753004031846335086705622132922723594426892417983337081928700764897980190665934873855194114385323969191348511534842364298653572405529323825208910887613468598177739785616232552176408929932931151457545649147172012152537730441781232107003576280342978542106845960137301286205399169011317424672950916900669751806653643177598836939903491905950249177755005015831552868699321616173835902117954775194678474913324816479083751727982714926583666653515751637485635151051197006490563660334676665022654192275592983675488172317967860916124797917413968836278007039189472210376782566855999426829698384405274623231367248664577430037229177401383958762914221576959949507837684416885206755611511765474162279074589003361213451556208804570750933592783669576938703412507121601584272394346336006524076402161712353585884906691393495364087519444161006415408911634808549027807488419318356633847149563700570204372286471536177171170911846111942576156946687566068771457908012323670001063535443636079248228466490393788995965688508939735984046647289769492158543060211148491791404537062768884041773242163372704799947981013293778988938439684227285426793015971086787666960833126536096699014863021578066198674610045212867806949924307725180543277961336486741191253134294340153158601001201208200485102722060911326292721934989592920561182270774764765937333774605655801422380507995108745091748306939387341109188132624252897740212634027250566562519338441907030164540310522040578146922400369490754205038594232105736594645235475410790251297852344965421168609467652976402781502589236175577085774419770268360521898335278372809797572838604286624471557762839906583014291270907405788426479079702426225334707872411992758582439485418655443095257158575009631362352992840491914042469533226767728831884687923267476343408584878833966776479723515008048385618090010760986999483213103749763188177093556609347057040870323994278984675733096144692890896797564501798506496563760354560820189432107606743466012101203970641452522453541127950679232752196699203229791858677601431119464760303051283335450141466568620724452853903707756797775917391234189857281563768341684556070167613367782451726355350740856036279278359715332858012489943900463088281754495526979869588964117320567657761862317395923281357528259803251683264861440823156704055680732544052453880323660858265203883363654866093724571040137140697713514284727416429364560689544233066486711524369494205133918579305384413255405320872576667859479211446061216922364723681909284092806685942354060674027972187697292272847890918721264610873819885393207854018011207114047613641198547047846825504100566579679079290244027647082673429492157470437163037291267876877067540336611722497700932051162443504287299455517926467470942817693022587868942680542509170723029310503454155304318666969902382313648396354634952013226925383008979607054412141114871862909502423541104971760252148945394811822946044294527824364148821491543522122808096287448734776701369789812207642123608251160927530201162348211425666860694460153027407663714393691156637051200154027812020786883660241211481292593928935768222173016113518985050405211887724563852043925982148587342960399377833618626031373740092880692906174316042881589904739930131857967113215832624180279912071951458719731759213999227359230656321777577676622681134246808854234668403261081795588231326449996577669082486451349724996271044296309002693357429785354000555355686400759112458811479237100261443384927134939751037746143438143651381239534091695300348229694927114727968355318335529493090021273610820144675653215802673167764460234012715287297395031419329740322243830942428856457823784591497663445682078097602968146404006767101426460795500533047938566302108429139525611521733182113757933662028450492518271030434549406026825147027694793985013275278181505298684316831267420721788925592345177226738682550137305194214630779360229980593107890003972380243767648545718952420577806409201084078099134378443618646744334504020892873380344206057601561758836517139209321689254645038997949341166295751004543510112007508026799675190315492629383431070244077545845775505714768551639479440696634559460738457477657259580026480917387217109656370615832504541286191727702197051524162191240609246594248133378660380981589053885608286634402515491472557819221805971969685802993980863408395489437809316684057951830873493837095382347323547292569211055583461430449914205125641271100762031957643459289969852107162215932786199864559717628314052001953765770914536081776805443908602930372690159725196668382878739842698467644512184690255874515963352141667445445074425925520943411813746268750645675436311691824367535595331550859386770833301990034092240161566503219639339603633386805080295213570399330345547419442016480100050258435040335882732088702276867630300455604060340053186848942632478717443893682300929363007721008799635645695940341204218026044976501003043936406939250200258640754560586649219241563706445405851025087410188030190471532435749383517009930476911031768873397551805448538004586417497287839545063822040848792409004862907088130400374438648172796638083958905300556791687777255350991821041810379448173072106884819231478430728287466329470573170887599612986141136820147633300150643420233483688230483994482142962317788293758017040248581724639556352535657285456068784812297539092392398622173905246740922225256213601042136682916617956911621861480677132318824089144434467040947039396517262977580786941867979545702678164133883327064304808843631621883039472625270906442555061330494502369938354961803292249398322902936293274331349332545345874843282207310944051334208100163429878514891276573551435720912345062394471632620772229362900550047615413593120246678998655799175704256655626322382557707460092193173409949911345805539238708370990983561366622001531544927321631739836767500465501832226189278589043862428177048256459813714211162145882354920894792574912992815818614837379639326876311474067576397419523600062148678460702744743852785500338289169006491150569763390261768102715720206332615540039243094665877987805878591328119473586154004042228491149808001177046618043970479645250721754157927125666958662767095284101291326368539802690474611671201891235347382397195185042332785408357162443214034521360855041105894334720319796140032886625746364458523615398205745640104286415872101347072797158307504697708726130638642381974909978177650381091055758318506967484850845641959464261696447875658006582397100429799142790572636175311749671314131973222597971814857481145516554740957038588579750657570421282053787301992825589733344458006449158471025741515340454668946273629173349699393189832901952876274799345756843670591944045992619630573134524087486217005852490582516447135985476730072807629716122132918218641785282068986235005790597310020040030329095724588660146759470133345553480660289460278829077629981502323077970205091380875071207643780816428797461428397200710199748470222763801502149559456734201812143268649772888421888696346661781982282963233512570290085517220867977088219258335180683072700105802052552654423398663172890237591428972274119913633967780381859246000296548957123718052324912117214275467246376828948280709684094168020442781291689597482584288255932673577901996757087102462278620300493558462600312233439558522912234223545015907621392837794237009802705630400199202984952195680686275127754395438925618636363996872866116636004573980135044008094721368894266872463927250558868042411295517668788246832226808780863507527122026976829796217877446284395591299192459420366665163354270531005692231278784965670349122626142359322703561567271330621712667652031714964448953786165819934522707556601897169598046111722915015081120629426463619439731998875955110844314251883931296009668938323966205254258445879948779398162905442213217830621220319063047816636158816210291184855128765682131424052350077369420737021215176481639816873863383283393803710313907794570447202742925722576502704902016875635637529623466707718201436475892566351772280469247622885879607013426062136072887601757746889660575709737563466762837328906383382620648579787537699179440154604494319920186341013224542297589287714019418668235595454781511991659735684643270599619473842516306287614336937130117055786912652665658420955169251156254604617311138155993162132288465959733521476448554423048232038301527944716923580648719191654243613161747107403308685666920652905668179939942819850687675754802239446572975899925365868013549119693234377413714459603205400671592263194565590690221711512010851850136966214812751843042730407237766135471714447575615707104785212686583503222846056262488412623420610569164819894707950973412203484369800393508993234445285902335920984823479318760507135617878100245953013843559087607747382467482499331997077495581214822614764662212733164220451671043714730793051938812198895011149681050592794324183659819096405977155032622860827107989240324514373525670354688436972027398472420036370105839459350845567234346292709436709766524725120371793899495644210371266116948523360276459832535974337109114407902542289994703863294544674530432408127194646250214128056879035477842112199446644223584950792851632382141849044075854246288939749701070242441356090640930506704471083263346741470701265695095654459634012267366688689561822040877737842585590750139612684949182126570691339247461484286680150503815039704922087689965747777717460386917683121248030444433198048553675341375272305558906115291318323061885994435102176604986319042970848086573443392934829209906566701106780026164280498926328674488566980935505793995669241105445971566230456529720236384716515453874765456014534729875300909922077078383282428863493232490265690989266009806049645343265925524440172303759655794774561642240125581347698962160385539381993868331467815420520309562775043190113818711067388110863149278170263209856757732298392005930794664660815276789892006317776803791311593679694001879868088806809285543969580296713827551385197400394150114958825372866327535096112942044204840824628495522396404857859657313113342026683482734510773707431703463406037128499889677457871547299029429533199896220802085439814176316757815050846021093037041288413849620628526665614028356678844491994768111266315018753868363683195932794157442740573378398753954907395659915308099046596682763831860058568993260915726380307264788589468898345564632909960315554425746804404515245760006541817849318150324710735858928947884578073150072437484535844918004541207048202315032998435040174732302681939228884595843574497104940231530065801108595379085806620611415187723870755235255992678984156176596469680749531438436612055184081984118860825708590145972971165824028570446315487622509871579266041945591726045254505820848291827567733680178104833915333700986081759121951004370584995051034677509301439131879809735486546410982178543141405719056428894573339048726587401916726040282716316513431107762734427457534947428144321396430316702185104137466228906919370717418789633273922589383630104052918420140529299252007378489743130258273860319129202518892006910868965857818574613280328232744668653827336569180632689011641880283546328271255896201026414762442340937187710413447792255897734807134510004322724345493785976066418867867703020229159152530692544530497601650502625814008912242892676152189716075891319986726784491838275752287238069186265239314074171396855108213684191812678573368518378033656564081296341684283373756508396765462078378783554886267176396347441438795816651617153279579678837511216867211975341436459017635971479150403918922855423713506822184042590942294837269872776310032896935640920052922966212170730095054512346897193500568554101511699592679774187730881981004437420267966739527790613440343613072106655755232215373291587263888500927305409121547151909944401849578980465839632691097707304099058720358756359576433704988210660504997706723137885142603173461917205000920071452437915510188815985699638491713545640115040203280018083966019119007015811183564096987328283625417040006379301801258278646988218773030655920512615429770933788939167360025100521865967735748232254660665801026425384316935869317980823263245521204159036379951259832775068267581674442301963255524702320082559580859105675583398060605262674404139375758896035730018950796126407496194082995307795828980633277879122991443259730531644122548865546596928049805624526631835571815447962780319109586087487533474549040758279515731792131403579756694135523051295236467713302968216032702451676667029125107273499844552869102755877268610421329825025402472367027023043628019575832910468884182468836285448625199023382381221704656570991535391374248902365066019542501270652275409717634196993068039867909167284609742805829584417962434004455155847312021821345560344953086593075615218754936811242239166458210423501595978715904253504036196488652326349915315706672695317074414371633687502115638185445944442162093896503325345022213953169228371077534225688217728752786152000360838652220093696265001738647341227829242407340093993785024845653655897885264179638008352512185782690155108668794913684652613750868514724216466734618010568493522956431898771584907325748883755140342028132689775304928540092925253428264780970577135570396280010225905306365490451979017078320954577612617378031924466583213444877453236702345186037594357727970792700284909451976223510656411455964725900737166707329863572456151070969989263789634434344004528882288779612849461227659100596799666988013632059046487266170409935853599314037739530820893358001652568381911510181300266359030300949671912348768861859181641517353140748012777144251800821324465361835096844378142820426398222653498096935835024636084941612043630262242582986331599558434774822352140756062649576375364444184118699941138407455477450606854283218547569940744346354898627578964855892933149471244753281625078233128623377927631346963439490417031330306540479561376402388147133751525371953718857554966499302201550153206330159775768356585455835820226482537461372790933831876119480300259524710961230672399011149515210500472000649118834196320703742009225763113330776114715362914435681723085045066654271383349517100632661547261827962680985548166205102646624714439774105356740796617229022185265692293373086512018765754627091913805246250675611020490442348384146008858348246041022666245733278344842586628753759320802993807014173098487467584584170585408344498395169620828361314376676504312623765185645090767744200476096971447636233507733996742453194849885539107068151767385928956235013569622798317400219492629109359789255691217991000439716804649461790007229355395837367774455932593759333166184641972879891573785795724414265982885929997553691892935252292171412479694238251055176864752888415459484204332905607429920487447553431410166811264273731108883625791519848442924194604236413667964510691603994563422480291116535728444830192619622779491782818425641708866653237280259474495097631840981592624606827530830342134466867431507271028823928301635051852918435023840311994498038316272294680378381274383562641650876098095684355623282034493448111562046875835138170529749447102706988720723646534805223087131297327588242635708674977703664756528744164141752451129730982713994942755144023744639371166973946848457929406398629469758926530339360176696574007648726074332265479499883359889427721805557492192206882864287665626347033629877633814900943160987325014850953266887816350851993755066083562562554188129608180825469853013797666598931922567688507348434104784285283259200855206591353356189789472837780744606594616867165030413093121653163506891018299055087498252214371157985592958615724337873674343821652241488361575428301205294761347561976306169253834381818627370416469619299766143093283174272660636931444612348519196533334615107614499419980633717390626615045104436717218547089432474940509098252306924537407291681005038155660073014297449408776702055933520010222241919066339459704234265624692361247546808713796271603149103211993804810316666491256190984641538989971673229174945297747204883684387023772760897680938949589965466883997621147831044237879267956953758013017100218320290269164289205615419869736958462794590081915302334634961468229088961400460143956286697769116488359647348643972369655619179261669425179615685731775815411722216596879823740619615256733170725726269405864627106192851276240006012796962602708067022669934044820125221861519040800673542677415146491817012903804499363682075995065541891087010591163226360569579388264645101657025843420955479275805336541685251314099466393670088197890815951723831977821404157855007298239420262905523827902449837839470112724368114718311496322317434370971513592845670315765388795239076582010862443476597787448377769844876437461642380198710397125468792429643446557519007506429447354238490034869670993752843131435521214907845831183494147153493753741366962788138914309336580189194129097841652403346057313714529641434111736838445702373942373921076634839558366305563009975380461058602942911231132258614121175391790667531126091168425056036383049745856603960902787899900345252973681165737157844064069771598738965858099061927347502849903925068285695324765574905151657019305760223087110727149420023789387490893032147383505187288210810868366053747164864380377945648071387534047581997436055222060171980688583012924348817894126231658448408028103408249437902648838680097783174206747839582121022959121441748907674355626239536118023109860031645067211362967124827806843821919513559782136700864083216598047474005790096949961642778370177441595818631821075943626494611361611519403167504456588224053371147573060242907218171929066570734902237509073283057965428900009142839410950043629290839416651430298138717066064843025217029508834745157973170269011902303075562333813171797038031247205671149385033807984160743300044140429119739105264497805069643202743053595974136851923912337520499935869869511149118215857575129453140610799065880338940514161342020092119610967530218152922783346071065436675830565652045838971346909762462210186030006733220257872407235005956526582350448944088959857575612216277393040552755447276094898808198720881518142318510446180589475824786268099790065672061084121751851334608676444147134950087333552490520506233723682835842234136515779707309389165914334027825756115156675822468774624191220280681077021211708250152616500203037672995963490774377710498579033906566026105433036469117769093898836551937804520787421390422691954062982215158380824217620547384103066458631457534813543368935919126674240856675357194039998078887072027085709479858609800633741230071860928472526988020962091965160971240172853878516730114206261600631593422082117878358572353854240271910238564850410737821758124604013305075234387551177228397296037825295986759307359948678032464683102890353496917204875248175949504437771935881456603493181078262751825648211386024383203131770802385097103085987388968732086687177082233668949457338805559297627879874796850805246690686336531268442895376386211748391699845492021687889559584928552627603916701222510258750447552089293048238506102338598646910280237955479954718185301711225114106020196174626515503041689568219106440829657958171642896200533583281419296150654331706710911462447887835076877038690236015257580614030262086947161326599197891893556511803792057949573297232922801442636682474615079092906915145430451729452955000653886244340246748068792659694742577891194754559249825403576376105392656235762551088298685474034012576724660537279533417358166089449893592113977809828372309135260734545935507190893511090176186757628107453891063365581292558310692938455530707868441939213112971803681945073679205214117292854201845416465553421090272338124478727713133792492257903650299467540208620943623741567964536352236535290108821514022714764641855143646346519662866944237295924339788735608863211447027257183631294303832881059005150874049724447670458802927141857678962518838445509853419300091332364946899407633207171361449335118149046101929714023683592233009982168830495084776720993537622274202562889550039920817713448501369269465599351996323695584922157494928381195572519214815704575436318493613974340049165704288130980224152366961517420950062781914079473118531838087402483004101545620342475551573060960013947095961989319056769954370833033147138211763132858499163574293812270256068834628231280958006167218431146660539099620686600546609418394969453458896699453801419724624184505482725414954440892599637268940793576563942580451611113983966222296362720941425197009793108953878185763097468572784239857254532625219774141765096532442518073472714682723871938452423414742639302113692337644927702372429284505635774022736611333256186876714443317490227901229431541095978998452400887497276332067095272228050082659648710145719453893931603195901371914139718247971841695890851240889218326037707786009509774475820027539166966918296454564495218912547548083746435210212879407976654745212991968190837902252943692950662218867715729857049241126038700507045495324364498147201975512647784897771314064488852442411157538773639804222423151299538669534285006512074619510415511160546022698757413042153290392725096021328031035440258866125277872838450010941873417273795156135034232194757266718790608041657049486753332406832014411805931668837560751199058393096442906523862682454691014317009084518068278846816721353868599710736371775439387956903709058242804050229366365930086866513726506147946510561137640935529964216744333782665008264463658074457581877793242475306182159573027964729044607634066106706160363299516858215864042229867503687375384833011403755178987992256456564590496557097894412979936930040924397719626703222815188831444101778258831686602814728308758449995050177629764181306342779266842910220765555934895967774705474560929157188185263950902295282946442962161417782098802528649942239694452578735360087187693883560040907306985988235846402781487556982801561055719954735592408451143468475032753830475027933538533382172160680463530799358828316259138332642912565045917392199778208273941446937151134759349024462732703798901037282066387845473430774369140785395898350886104308289774686912844299478482324782215981206614768596673829299135817847989666020677805452816810758106998424961183126982918206212476228415192473208862810752130814120035327616045214118246571114555193686887382274932742830200062264738324000860110804044254530396605445731653191035675515585501956819502091696540217847346056974628064152593867105950736579218166518394490145072283167363968524259040985946806801192097997339154139875714234036469858240627506585817260848697589572066415256797403702611014376821076253793238320968058844968253647266877154546199663419098038716297317608571948967167154012872553747846249370090776756538376387111161781793759672315874067156654631065871164579895272795114807088676419814484606331463427334897127938542957999844626990402819122190644351508674707742842390575437784819114412916014302146426021943019818432866761794229548665946624149681837306803420401648229046749044061082927972943874123635905298209003658073397785724223836438211602277250638721946411637160982993739201853145425258758448917878033883497314705978561899372595799761797735411636102948606901660380894915353140213358115324087295889713884562820631275965506903941266620030277235765793909090051522893019364210662669195542262525595522096399662116374813201544426590924148790505518055711403299569504365877851385500082826078651459433204930885073941875700396090269249067388843835720335093473504111778154875367361338250167901606827947851225190627357534568304600385211359610250409757043387256682449512529298130639496436360386731144294936377356453008829083101648496474971261817831316900206385333783951329886962009681450966932421348103408805609322108723610034164605517435531798572951818427480725462865565284222899819816004411268169956415833580544962962360932042029608561085978707756706922772152328763621085559520422517214316361119581301879108635825697057245129010882411886059703553592104832556250199205703155280625706646240331744269930768061471712866643729259260387445469864715009549193917946074135162104020553877668105925983750850864015975558071370648866652564733786913616106111012515063729980425556981309912513219574027346616635329127463960654271744073273675736385024440636356320171206509395831905436340063078557913968864476275446097456635466554189562846754641991322570437001487233212412077213115828904316722611879683523256218723190192955691254009644413181686160981306156018773363934271829618059038178579562934824079463856774918250555567672846745057136814201567266081827044741437017000107456776857188108195718824525761985397519177837421496803906347114220140954611332908515479773129556282459883485763932793469272878179206610345010431055866933877590661054536801964421156760233498260203747460785716591118181670849962597327338721233390348792651528628859344967554778959476833274979398107869248767129204129040998028006140273987346421473740469309223998840498868412655315245428912973219960733144205142153399790012653071369192065215101060829042379712583430029601004960802085007438350263356052605012577600902079329608016956571970369856117173127603252935464018015776334721259252820193637234263908482120774777055265088801742998144432062989777284728221421372508768873514398615915692197895850810506856771750636066853953576574872539103458732298810270276788671766090907782865052987955299053742048459600971203587888333570341564981964379206339238265844770941809966205686697474581494887636296762650524151305801508101145258104866463717387712605538294603193747276841569154594529331985658369389293665795073444118854226237972233224496546163224441001602894688573004489674758476819960756288882754219990080125961462698505224308355830380416263623788424016201950281672702815645201994658834242662878166757294458899863844893176663830532623688129839240771943201678883990996352536857073007213864175402315445593745059471357749412990918733591047951538304236713620157320947777503018588235453114981147812808067785412206497213994135394035703374976856593011772466009996517105993856710336589299088002315974626287488677130589725570346209197670281769672400945487130450572946988718737509887117569529962648888023352928789373299161646676025651286003068523319987435431083065264533632668414137235326348193877765217722350691476321462910942172416206449197532002958354731805537731566499140951406322379011958146524190623053084415633291802954191664829389160479127806370558698424313036245928937108687710425869943879764885602619580431372090030667491631519141370126430829044921180885464424982075015610316881209102690099874200867726828779178467028149592051514156624292781226889721017996683626352069097686339934976057870125117722537651422333942896358327405748973555660975438084874830138371561423739750309979390638973308780874272897544769569878832909663729976549132597964127048165815728927277375645805089700452813459693891835084875396573740254270563940581098854753022731117049028423921903375452468794772893085053826659260870077852271492156626904017617951605279135361869564874404165225704530911297139315201108612216887828002370815787857795700391340903816409184732196643212245046089217927584761562019627488174899867012481707225654661555676200105283620741670757012169550478095104814370318438242361591227851192951927505612862686798797852415474807270685238605131309096142462744394345199720082875483438692964105304962097103896015086935452988441458808319956965045754804553844031104703717330494787742915994742810430562131300300165120871403724922893630189159872019375495953790790908080265799698630760398555014429588230809824020109759608549850614815059979688184260951425722579416383628053795587597532772537203620998326261302856862289502393812835444255915692073317691541077850323802428457283763321172208332619482663990933034260118580675835701879284760183262716554120016047595007248665191731547229991333215513309384379835356511027055738720733860600117248209500454178937741682680407980809709904030203227680072328273865363185822730299151455343000153937033667315245941337584237978596964943466162972284273263198601207472634391251646174878633378296815666022688404747090011032814588876840349928086526205040471062906935259116348248291918957560581646936343493220429982154617040102447612954759719982002788464892115596425722113780152754322426161578155992796921144481036673400598192348979091684504030085998909813358014752026724062926541064906971504626603806647467616272120095873987823469245896554499617145939219970460656990655733924756189700967829982642110189161971734713845942243609552938078247875701263673075142192190015841697301919851973714268432604948122185035116279808183093317589097660292386973043916020052707049384762062531474804488360660783250231445932072916255804427772538601964500841318971516490833206517093367891398423593527753285710299160863926260985932344315405281038525431091222850548205575650376760788606371687157309833325462038127851602011290192055448473091222096405212643091186096543004076667353919335214125280872235626494987902372156587341608325692400159679813896927813431202355448927584173231128593639033367578046469266039319045823941283389127261660834911426465191492044936039552064934606025915608777036351617745307775004148146918114643621730939238794419170000441421763728364921987172151103903819756108464249791650646696323275094147473097438683218550446926059625424155200467729364582128636660368123388772719147991945784336635904828315793116354023109467061422291275518986664365925868380002301187165001422557413223960287012286611379894629434227753622938324806259216628132656911521890674269328240322010288086736287729749195754234147149042748882275967069799181708525346372190969064852653723339920795461874288596181593434178509957813676208251128357122667564277549119763886536022549751132146262163592233878648790695538328887689978769420307994262656358593048587283578845756054326931889558771546959351778891015844780081433445279797181859057510802622187835216866685154622528825151483145471009537899730005714038181411423523500323955102098826902417614639343984818659916528204204981321404543644414664733191542514328016569430193683739383465408644825650791827281384123214717210033466516941193186991599066184807206535329798666500499453829307070347725767525664483359523855905036187344613058356096816111129608130839994189443704474372896950700032367887332476801067614598382480367707291473153268213934438772172638458302862365912408094288232578817587773169206722922066918950695709207325009166143282927580231864200746865603356933763533756151579841237883450577052366018676882119623581208650896222466253443400738328240760404034058759133188302817448048081344698294086614404594735325158738634169985999536628237569203938813667876959272611407257748241620936505058565795530496109592621869635947516880952753525134224665305170040025558865762162578684022889542500567112462991197228323148704850821392339842390546265408983522722354563349284937979015559562094769961910206154237027051068360894291893819897437557497408099679043211575169436299128283964082307647761092048561192221768212112878024126354860706325988095374209390579226143112582783011601029821477572206912532288906909874601439722049564506382422386244041713422064507776158002622021062849809130258296537568122564409124170662380712448526820759082249018648450529443406157794572225398502149942478448975453436480847992772807998249332227927857036812200490928731912052696373208293449605475501119745070494736701825981560785506239675028235190368726180588420728164190777499622217918426325866386485204870449888962349600115891696171135283853550518026221344080125647470755442325177715516935442273906913946859324644571150807499136438153161082954903794514541713120829149666216951310386047974236782032699805003642596279065485131322317182765303235096236728443676724661968701431084843349743905160345947873442713201363361846317372961736031408748053856257233042110093582946228622993755879079545477056768045762901495915428205148303737852039669809088315721868413644873053660148506480896470196159342056038312867528176608434383343239989504436293280990266382213066325613378532983068525291163485669689499724368742043426065601195650879235607280994291396999478959430874068320533590855229848039794104722295769708053047500907865306439793148570129674223585826063173770918137277115796753028171287356347242277586602387359375228791668907845725919984077921668054110440716052969445275782039042824670002031812148450508158902953018199717436853096460880247216822511959572036515316478224489139256752904832777921442812085732972420998067615755296534980099996298128131034364917010407913676756151034808868485534472816653687714670702155367156800293786328573057882283997389521788323363658399622785733911543220754523044363301852728773369481911631880391663676533405468472796352773788766631846317351498886252735433128223072880730161756118633913551205115679371076423487883906636014956988951801432388034858748144179859430164466927155366348409627774686060866715770636961417851282047690738837165457758730838865221538407958974810942722231472882096983247774981061324751368455921685066375672907750825938307285820123920291840724362873963133990274206106527684882509675882705030018736500432059371048787081202836657606903833273335134585444165334033412044362023220101303369966645421044358731293743362082188344265816361828649154183250642172099454573412074616703925605360644967565052298358859575970480099139422757556334242032045698191040140482989338157415013812026901773051542383594078517940664914257722154565168156356134535042432743123918981618016854495023027246919569859009008037696749897033069476167272121329866860458743268460597289875407084820579008085179266455272459514880594069134557798546049925362989673303875949413450131994283840975227163873827545929990348737682457568067839217889819814071046732920455396606221952804386901242090672053637915567067895906697264928489483841683392067126271447194837266272904542818013001291063412045197952078652783049324388785134529268392417036512045924827795886519318250785357725185221276941448130906028253964488325121535830384999964561559917764042825193714964944702443174433800202884034347106782273656907240382816323808414590767846717867322164759501686722101823103051210359523885705729680758519386365094902413762662444287643227615046654147462672019174313689066300200418062540877104142649119806114841308629209747911209130460126655905804350135843070724737356636653017067808029526095316377223450497911676606529995383218597619771388889182338077679311301404762743809470792438511955506864378489984287390362306121048113161900956220256600000601181126229529223678840050774627322918498709019284633926887184986260836075029063103230615946099384645068078127322042078949577080226814256040668474127273121734539339896802097831168765302724666314965184841043104358465265831295697086222450901761820836135435484568497328990252133198610234089749363103462895571669316017417031412430307431190993654809058659343863445364118580273348330634869478370406007269704283904344137086911793386790974188520406110596136515939529773685572452226569252732131581122683121601901050011122885649904684204082825449711356317704721393639669106447054957277029423994332814284560612134450246034615905167055847631014046560562984308524682301950581215547736174668922973690904073776418243407850346731939616074497808746967839743266740058364861227340221378618158565645235288739004177059874317330981006729494028078054612117199991003613477183156762729081972208082285029195596608855343040050870122637495776530922427720546259153366919508828465900644584847409084085449121086793742088985985198617655632176921865280530248849747497032944003730335416180582080828161229847048892776265607791270450622622670976862779529434040554045649695010545084429040363685158695633634365566719161793147691280524405621610522860844930750270859836207729014226993702204366112246661183770145718732896049919569077763558337851668760805484629263765754890960616599828681558977104808661304324373233276525790588054198212752619713955656831963022477376136203009053002581700209265946898025091761667085964420153356145693120370422484461143690825049441474444054535046314543748686446975591842399583395297577055413071542181373408053563214187142425853669908231787249744357029975474120308506829990063591061132392725662222482340922864815572671650857793139526911136980360166742263826015714559676727562132802143337492645568789214703880633832047942717091750484158265612336049720752148590130453416555211992859899137866848815145313805010344117616101901911929792750676958255069845287585779512884263889221095870347409059286096294189269844550051857310355792887680246332652221292971919238971260789646178166320149888214147777923921984054426572572224271130308569673239918645916208776004767687613825336512228378641210356506201810361025362419947514807588060578519383404878808535936259398969477896725701499222172917146843151869034929186879028705892726580971271340264183255358923513619743055748549229306845124231291361714129192095515635033476164939935928256228950950610601591024751909012930655640944217473959956472590410176510722906335924033200576182524203811779134736857472772473140643149295954137051592453123212805736159330269460848600362626006039678030049597119377060315946318266539062304729878188667391546011261097163944163418974196874872582362460551202939319318420546615644429690078616788846691479752706197208468772343142241671681119764411049676353734147358601123206964096856561521801507245081951087588255402554395261681880058291981766811279911821215656994388216602794256045579699573464762000904002771099173376515652610301387941888235076176411897576885009710026483287195058811668270837434436173360664379574923110097421518262576522173018192956793854098429991388914756419888805394720559778956923286244327390783194539459785263353467746621077808719748241980004488203913524283717309285475438984837430582045235139715903232203984497676836667023861581076537958393776179471030105062495285600706483373328828487906822798013871682263295839612093781532619446516538572633006617898338480931475528524199818996429921092152147388884918537074381072153241316484614373038477117217572660897606549830750426125610474057704261438500804230139190864589810653702220571623220664501958652291394159683191768912280254332525150012595308992058710248729515959012338790752609977507604290553099247560555375627307904807481414548972170347778375818387490009784243623736756388883072366867356666197594129794383917713814983909035381567375651398184390353794783684654310704049218078816506670040188477580087511571744764465829263898639887717188796316321899513952565279591736212355598806247700268310241589293530239047583391904613566468921486284267776223662554994223579415065104715087931041082458376737798619796201876896127095618010693268859350463672768524337621391513196996888855380076947622396397981236780942372051547173320757564586357017958736331188659796903340883916881941768891212306066559578638222854853856761578183890463475752596702494464245270213823097840625889816214240297259021828799523503044060268123686727651258473023935105401554779551446868614435827117878831036230248329710222413340628138601332027100673534820057125973737664472094212393697174361081234191329211184881219687738214928368124892896611826374865516903852606768972206017642825518020616470529704943215888441153214132823440031329156558073097978020275975472806390499028941427970256853031554958338401858724747381531156577101647291402225667613526534865741162023460850949716210655824361981854461792522409604168734864819339571088684076549478292297896311502186441373987924773797531878239157167759468030617601618626545132649213935764224793103410847923418922660973991517691032945326968652370913439100709669054055575486326956581658319065922060627721393270652020914660583044527462237407598365054718573095745048836322734207130535539884549024003938952813079199421218253483880323075659261269609632273612537798105069344753086673959826768290404504268481451215065563587043024264357741818973433651920811823917226519092765764080865022959586684355040723661308839226661823841483262421041789982903757430216431823353102786865453182011552716746162513633000902640647331300383641424762439609526181936292070322650719100306466533663883387615495685737555855190811900406131117791676355391526491047389998348653969452040490000435191107461489182584054698189846132194874477572013180172475396399027521728882473842736907221087766696819052019308557105443032200742619716515171265440666485432847247498170438524600517547910976970863490282147195614295749618506456507844227869512787707930323450146843898040182947535733491311351052326778205083074136851625615258206638315911825389763462678445293759495490350128123517616914442224507451856354340590411447325799539991714594148813925205306019235777989395662157789365274319235235271859417348804833245619994956121045954740363944943768330306765938819909363265135821837057026494419851118338538315787120714909180068043202096154639361862313223339049718718442155593614195558330485070655421932973445819406861945932119327964555794147559536467577150742895196959060833143368673279614496524607784299774222375870828643994285896128977740795958726841373223965487049315526611216364398533675123645577837287096070091101098528904839115567761200646052061482587456822447789396942353693666090180800177807047082409493475774659883135450062596311523132274060295605439592945935173654215672949581580925341336750184651345868345235304456036037137664240656874334308666381876079734205328910245439963116775741712091208388873550959070880688572284054066481522553296763555015166442814202352873365329228346123406728836676278579558151987492917386043813032475096546051188003438120856472620669952584470813857315591194846817275336081141406182825510362654435369524478231006670206002465900044118316415442779167916770052202211457338585223730385280916740389574873957563957913029392111335589608028362300924154701169050444361678155769151862895597391353066289306218649660670745164031446201431940166786681847342080299999944456135520114706710429362605816827374389691936624224974568328801306362025211118185780290341187832744874770499144601925692763967479675273395766981010886536718127411003634147133087453740247235251921721863756061517509364960630996140783302266328623212350491125138628405867879446228918124064352799073644117973657551327306305352811766826407734574866638827419558636106504423740929796652708629544998452550836340623462404382400539743970438286890309409340131923227517417118051593454964304100699286422499862553368018634555222604051827753774451847469085879441809924781904769167381026635123921936599839828681144218716007054686847879541876611430734142076454020410396681270871961804240872510114060870504401992041333373057378671689710990103367374544598559595224782327742873695592761094683047876808977370784764358879772881425857784322670823556804141396033604372342024829379127787510419655442922399904827532839095603469543166858062396228639570465007765562247717688680646217037870238469953956234061959714972818420644297770731327704745727783859471683178481275053032237827553495673139361439502749705567743559960458746544447311735631920692437819248454617071138186200997019807561560691251663172116058208752171437121691015347708299891184376650516793697895356932432726362664535673753264391920224011902579922168714487649971057326345718763171846810941720043883950328211098799631184418624051956246296111051128476156732335622327654849807971308652254373620786009545390555139365206136237369481062450646005727807089615096657883029896141703483129146166921078382904170157373188010527352085101407682125887602821092069006477343795974430177911858183575140753735944765377468592175384692704691354618847844980994168740947079418374891409147189548327414871495504691193916834540568426714839532262872732711604248390883038088027811867351804569416989018675944719365710278298127207172792374582597116314787124117615882159200667639692739855870261550605325346457225441835390635997590594723820002086265419568422105448259684191419979896173658132777972064574357652619066506565213907908889892281327173849366902260643446677805760103392928694848792707214576192508493360610095649959256504389184229499991625637321706426894254797989115132919439482304138098045635802237100961888738452536135517063516320707251188612760391942751400158556018142516879448011132700350942991552278110383287115843314664203790320436692093847881037850066730168868783837788868691670949437825016643374935561051502089063325992690077553468964655338374256163579878705745881907620117062361692149111945331693638411603382992814676576107525510426935776160347833734460343520891246878966041241043874092939704855599189543452034910009797244631587284893710866068632776679508117461023276382930020735558827546355880559611891949853931262875676178011190596836007401244764014484255275054004819252541684508116724212565810795120456240694116871284553344166516179471194549505316065152878983825640229309793220879417949832905356271379118912103323432352850581865570289924286676649877792945605847912015976568472741008057909586916274164145013209011103786053868460682440747260495978999241564628240447191497397997329302454436436135402393168753395092439392777652461543542050177358517782227255334763353843117016808329267901943962622324513711015065500059625122400923350855931735419254739423384003031833374665325519387425413453672861072963878337613991303827906075314583101070930451154662682567863914871881372458474651321446623838145765920182985294401407954512934952545792089881438471853759613420417182228595333524678013820092427408352561445846747240882086465769872065781056903061275554811114074858414127867946650839067243102303904882431857617694385467929962717173529496829056619214316524137248428752584456000188851791632379422258825082805317882591179135925244996414987859029634828310028571319444454131200746803653225345476198166109564824340673617734186184899874107074551275755783384466461806644863091270647860175667035497475080175901986456733957244920111553723703368971185007826491703936686236447446358949966903194977910726880055932455825617881363524842568562591804647203096105942201053858102597410801967246718192758245637484263823819016000782710047802225207862310758725642710199563601685630918465915962612258163141042664114051595870723465147834019660262076611510749697654924670676247455979644228333240245877623605190323939838877880333924183945409558672816198921413103513147209294566290592140433028493542106247838198022053272156650795798789932460112138169120786547204517733143081459964957764759421634496862735714974746633420935030472651184876375449630969376189336662554816081860320852210080440228956401753042594432275834600924880437349083677038320598456029866575283831657051009089888984654602199788719339160095924854066373678372429429589135748572066088645677086831856230263494243344211700560070633358834872881392592106261453600875672805481987963165607963960472264136197909250625189092872619411664999935463427458666775793351896962871034386090786727856534866557816099101322068820658071888811813478469035131147338295484410854790000420237121695053602322856008775815056517413772878605392620578090561077699875241114483815880707348692240865153844325816493507342026403454074537910377986039620178596059837526303108416330405476867301904424054989726825211201473611520321530308550621092901363215313528498744618780842543988674808750943904187468809437966280103737951177099266912093659861565646237318531875314942989533180978929457654774721661746408653507180037447268009487387235837799769096858459659913570512576092155966301948909420962821884453579096445600384435677541295806338077353310167393072448615187524146512580228549823355460282713863575171470046669720027037789355398752627127178458833806729703102900870570773212561191318029991874471023746686193755241513258060712727418126560671658341836320377345380411000762648107992626598766777762532017045625830815311502745249974080045519952851426210595362458637816874432509656313382773979675298652145244366999144938947867265286332579240965890254417097161896331474568922141149821441521685463341963133360058298415288794694400768740454173908356210075693515603938556109568747242253256762025426654879336283157319462082145368563813695503445148764881349475775500776437431046632278268761167386149669691002940808608003559064183510818019701029207754588122273803963833746165305217284195190029679647652399620908830507934516356815925654323894025929162714505457804646238299030898036496268323806851377424233395267759407370033078061475628342455110079836179492320033924339742957089959124316195537637934616549121665405814837855667159659412667695595167670965555482407116744335466254235717062628287453089731041421027206415153187904091400943877740211445739088898922886980722498374327325050141265828683505337220485857976775337539459901992789499190836275752243417268901528711820519577621922112542248455197053820026647638541642012203767603737671067457951126594218634490362405895896683913197741818484664464033106210787554067549447141593382922821180133803858002551860905717285440746299844807789996311301257002894318454494723245844929903445259952292687287170482657165857014210724568684162260913531639592257592531264615988112300832149916763972149060063128769715907332577394895714040794587527636770876289759756481627225463440700221737119756511343899953548944813377089226612047671033390225885052959269965622850235340914737651204632836984282112570492254738000711347825142196599726462478069194941635357586617283108719397771441891092256741295790289613562947084610193228932610922933689794199576818968992567587363678984639662002838971108029851623074025971348426709254903593705342858238644125501626629763682703955766200978708813623879920029292666111707182072762568216173956209318531510856276077821285503994988523683039027941333708958312565123711584300525790529008099271251851288597008643494600878122852819987246773172513626387234577630218127669745924950386397089118339210916889612906726711106951692449916067520587816480568730622393410544958138949123778766189210926331501775846911011588384638392697980456929787989654718410361616764540415652461602115729506284111775362002502558023652383840510616889176531876692494893030682354854934461146982478574916420646191659995012713599273847034467706207332764645485837205088824255678011098938379803212740761834659233976495800011103528144080157579046790162419101389669048350109321039492726004299759097660232532146598442000897603497798135877239353356897785981586236190084376640969875382593246981254274851599472798275873045009508204873242151019216364196174321247877528313452210008054441903306565519008462850314336409832675477480799951119733103347898075521912037189257022679213625620607296758463909345053039405168685123615403138916994209660534088722392614723621078158360460872302214621603363690804837228335599558753569783603339909557865638142916135428288985318689686291158489652072921290454842584025287995795439623550643847368635936235902269782210093272744224071003324537475628712840228320433925105064892694834231396175787917727365801526252518893918086653381020297729301022803997373740005804322075225618431819442740707151674111161043565780222342830827743236905072631947072832257276922812988816338955663431132047047991304585968512319032383511461157494272291169267332157353274823495127226089020428732439120293393620184388501226407925407249927150652054419375538094133574716954936688154418476884418733215697512154042174495501623748658694491966740755890384206256763720853737718368785989105805544996144641960529195398386486461132173037539215487638120369157643522806263028349118788463763361812333636356694722491330868170366219871273493329353944253364039850484061412752702590970173060879395234158699560076053379758426726204636247815223049330636847605746931710042679283142027749769414318859347746080081568491788938673034621303076817042867326028269940044859558911802552526307765402351924712406734486969247492642427029351273850040669528863942227966103956108373618142999793918153772374305016037541973756628856905299519188172968393392981678819469282253366683080911980909453040861732210651321776629415791999746883693675527739575399600602940629170597768420277235431031733156526292836969155686544788025348348620223127904536480195095845808834929289130466054388727625849260023700530997650327833162328834165085601611573472369741652328702888056781270459187251875035206159446499628651317860147773335202361470095703915629003620368888835599441990708322831489578542562429652018197373418075774791968596898025686300762807169723150710759769916915964250963308464163202027562463859909304078959348486881070985617685469241585659755946189190370361012963200853138457226638793999550549639226213277380444929762335568213259899476095374098043963339699425722153302874204756894025738152301475859537948158047619331930176926103867273112400874290564427676241066701134825224235446343504817797918827368880320312051057413601752545004387120184598996111715844376369779114041419943640562480234871045518525678683403255509307690316687422913651114479291760855929220911941516913149864484750056343360929490189764388869761058229811721980440435921383744520041472889222586687890156346164359561199596209486762095287905255238358839434132705515947989235039894605692870076112706358732940976477104650113810953677931401347359414471629166358749966650895145288820553810829694083076636068916046717272966802282871544515323864386256461896398427520281851508867775064640578253492657580100707538538321590733204984062294073027338063361313450723970916468227090286481374799743529864851228034487149451450234432049062928009357002986381413631311122618838728106009207085394623190561676236124899413364080389188321783188382043007493900268047156240743061553983045772263578833330036132226418103280192674328141147668881600517020690569338505144935467227199881023899069354167457714379211267141871768293276051172366159853992277018514313921548416036127415872391027017485805874446825452371520864856451812298916954550432063864132519269205222302598926851697286173704440183763489974002189216016108525686553666201270672795258515092509776569770572319652413591387987590139491816424355616135944570427234284075932606725017772043446405626623543258933896536838733562204706207526682151361340682941727232974124436111113856934402669311385605532317399568878977613639471001511222704647949945147694799750709439965425560381049729658261705914041045931105811805952935025622950229348773103597683782355957185409253704685204871233112207149844034801651360462811467436992044437739627681231126333452577294975298203259072736773424137695381948547967098403808655777523001198884403773483794650180708059918101007504477619990974788539273156178186654185519457343406461407031542402202420121891313929562072912707636187482282507435931516546380782265136907122315901136570980518223915537200822758428269525505992778748626299345665662032957800607030476148478462434591943252667215450077927668235039366081649128272008367566619394916308543726823899998533676808814707305880365606152601758952642142081635084469468407347039691572216029705914518429985066546562906766963114296340776196836187556674950000722285185404349509865698686902740866611960575311895982367121855306528764991948562756509705708561358689529822976095159284312006308005989139123566001787823693911790499829539473466556638482779996371398123420497931336179126188313508826479995054462469850416358016075851690029822816169688281553343292073479697355935550661240264838172009526618485776516577669658961054661341376289969883673831596517280947704501893173127558449729894362762355884992859619581549766192252787693896512383223831550191347436767866198653621097824379127923660325584318179791648848241183997253945639195009454638589232993570443189522056475064760220042997607027498197349921061945623820082452735979025719637318862131928396820723107378333821454860317941494523875562162168825527860064226355513924783312517358473918126525237356739569290039645181747037835073605636689756944870261982814968837435311559078697622690557975856768965888359918044363954710263543786684377252304848198725173774330886101043886010527131473195071874491926478792970355306170186570791112406593420129508999063641425767337993133139828499406788211549916672020346501028109955969188394506850459558836714382992956925141124335666427048981047875653609826603389878756893670870508404283154398586662103444305837982090315067328842833942485422263991381179118246863992871391990404591315381285331388482161071293630605629890565085369464680133456415576553000373038955444693752709727010459370276042855754281351065878195612620752787605119746274597686973244516544235228229597820411220934163114673679830586743047354776297856393588940810080075346939371551538664238403619995321174726239135427295304366881498856098923371257717999370995646532663645908194046854843105416502486790364490409294244408600845775430431603840533607320379735631168352641310148490579258405411601995224437738169923028849234027570533607359106383985924957485412721127109120160603718126823456857887559999362652220941939006633677612035518730964103000492874310546507222814777709385285115162831536910313887357508667862582753333909777510383215418036712084546417050490363651454093897820757875475372725941087099167574507095731596607167509642042011469198117264650052196187899948784078829361157234496821396886546326407965921328263439739787025866512037394805786365017158934673429609148525728785433182148184889556769782284699012219009865733097310748320498350377529995063848219120986849800383793562651080992928807729344470498540167890755376447232152121702859379843822839835329957973155460270309892535039714344863663380456153848175636481647806515602194640077028093957456712796845866379237500916695248594618999857052601352390041381643920152383550114283261020471257046230930492626353066744195565919003515798121800433899663276789215854374258156091831704641385144454820058547534418577834563602722919957973803149943463836217761071969669283705013214910588712374181899700933415670164722461077615589824759986549296059958223051029828834055739715915964349957245486870050237605363157738012739110416974356369255698708059017966324634504079922185560575832321484030883282598178926219125853115091960645647812367164272264614597467239343975766692737816910675743659226409776222186301117885354643352067492573608873416164391322452760230408075217167477422067193459958321966822306875837351231656951882029792640794867877491987425396288858237913099131108386475461373632418955422676439811461669004926044872366088662979977408908484057290929499830358760514489473937563152972210256032093711558632110748528030887718022840438351466467007327039505010073867809606814853421147770330353794506130751511291968645280886218826045803263621550870519877218698218403332214685441292729050148957033785904159014952045421043358184010949726229477794751554705500509493428386676517304243001152966247312513350035039567627409215722564595565665420091398328359415785410058386713324194189964677584435154150864036256370115131275519162244898502512197654217962217338588341793894772479583048884512438005102853989043084187856524985824452435936987441381354981640620476117122210875498821336780450851709822746899436516972444476747287343246634480599358130696760465952083947121717586038580708469901034717540827146320365703883609679173614132866783075626244456322029261490333792133901011029718733393152548112794834800754757726923587642631421660358511674835734439313356289684832865941067775854049077644965969017645986999879852622546617934655553339190596319334832432988135492787412200660247345978292981966211685462572518910233869777662014278584031208022258567869098342864172572973900770072406848476978173297525624305259215911173521428773073583154090717981230870521679665057416403865657425953704964376410698352103429013811599195037375034087469195027431040980223237319729704477414685399679037885603503455053806514182651995579456212803485074790326179130582295987306993923604616767077009820729247978191139812704593485675779104878889621971116543546928569501352219903871629153457829874608796918662294523427160060886053652604935644829501226842280684060516616617440949523098371434992208516847072655631230347537118413968347176336987216298202254200080416964268594948918380309216508135902779117219254399373155254864410970883772046282784556273099519086210938403124159774917130861771436487740731555717921810212987249350788591753692367053204047576827970442544066726978547053579064203934349587698962026705935305982112217979731834315855026191909153567186920042593785421898121500462724792469525610430976436610248881304855648151744199426217366442490613600249861717024811299368163118808933181549366990742318037830948981672718320119112662823030526227220557304443009935065828068257286936819944415333185085289693807457906153652754426619887799245907562315037538309118907934457021377055338829372235119617025129183011486809456488470190807894411961924712678885776581546041110906332260900985219306293669045000341391657430354218203462008755509775360246123980831282039000394584378881182974897238356312586332121365953614389546320384401936842956639534289162639259451607684420161043140035822554707921945302995889971280540688959080559265017396702025039017514006262722370793708584807619771742069257074717633495278226339246618478578929423755480445819697873730718893001027325566504060526666350004818854016605756048144039833297728076961430454973283111162107473244441523664933422075320527747450736373676842073660912210737717313786359644007541067349911794371765868597402264869269085752075258577891025099922129591204855165651829196306714293050873186955020939813456670814728864863966513192551095860165392168181195152564523277579123093562387180767103540764404794051305672694521728854283564521795346342532812263170160427152100057959284370204235795192147243469417865287352706946625673825761543805608097985353053061115515280221973713945824273204043974442355014150626670181176814067432956997463738784295132615953450674867247161162285041549461339655738511547256384864748416304105302686844983235368332970353670336634843774358653775497150008014665944764907952014049448635855358199697621797297420258005668770515607766144736645804900110559674538751099170079442206044233771970867740286877115968511481096662561319436033639430423142239690649480939943981053175234759185641436439245626079733599366498357340603598446856645733894528214404794125801131379414066092984823405488853540333024405770147021893646759819306115543817714526127152528312184621665820748389240692690470885425437973469169940556665201821422277691804275849033769620324747532320104605745303486169643960391610075658646835687640678973668642617387697228542121784655077834237614505860332393778952396164175148100634810408112031168030692099914817398113982415639913662759123895799289058931689092412107484074795021717316155161783029049586943035572945656453288573347780327128701225857999938640201440433253095450001735374697574257279886338620053816803369055320511595760626738065622840564434225085194204660172884022059442243800774916299337341584514241687329505539158618686128168980168069394744784381033866170920512116858738998080713348907287761372497288014610445689958470730009174626434132024410226308285811504432609146986455383397072316868929008720074485494639384790793352236409850971056851084915129443656093056231235149773834056010532195415270103916791341202233191984869960792102851962292395427364462617479222943850988335282014875094610613791321005163666725970350208501598687231814416992411118261842115324109698766571780487074558913387243125569623658800823985322019255677225912739396890539494380162330254227141671191181220447039042802091658045065012468114961298880902709932495710916334728986548684260705817807718323922788300617781806643631619131348329609599036318063994680772251737505124462003120641396012253311194909097139730391961883174135055688790157162755653709814274780912189792952693793510646958044960928894231584534127152087216889386620401784663490566454387227715040627240628359720750841903744106514910226365938674635589705037130542352088607932250727308525865377386478714081082289545020553753369534821676495958415112787790496242405530921453588996590338613672323615785262913909005866715221836127064682364457618151273679085466638570009283502049256086111723467554347825517731785232121208479280879515273316955831493231311824690847420502074238346807332618505765610472536593884688040862314045392203630005070850544885010105071986428907170289232121318804943000649188888621548257406702200989459634617532950441921992151016029976042156237160592064553767290583972349172730976493214088650807279537872223280584438721866041580163958290068931537728729738396236502404742094945565737941868145429580297288178188135021804958836482918853753506864178808268703362380912677820227354828748974853431720510575813511443080459172198545329764836596690208432493238610418704199246165429995630107955847261286338971313369967824802483945068967031811588929886254885429312194825989069919070013945420831181401378232929003588002442706309287619029008053186846008018862539757954484473998983047665157561082078424098271135409797088390402111894930732120372745221065850635644419433253476998883740806940072943549495890743175862020620615674312277561819203708480606960127029412381902694903080023112712974896092740102208456854170596826179062174564196098451392811082659677112230233778223563816088064327218165103773586754813497564790185084763396440228129709621100432090137208193445877221745531750109034913696596928714778691045826893247794153497373931308694929371168578999092460364602012393481343818646306822777227302271199095579756998606015737726109079230725509185213948892670912656752093019568175858462128413652875178503188354788010234902517294101717358626206208391918346570056085698224454142452137977725210865516540253404546574915495684132506606450688918932119462522354302874003260547864696087908954678210080555792028986951073949770994246183838403375589140427355360153474151877831310820129989862264570137801643903126165282332343103561178266441372150726224206844678435766845707223338030197597173061458057230772409499213910642596465759135575300490264654961589422443060293941085991843747510489522075613748129308566116385312988640011865937930027306663994305470609040796344773145388192655574263594694640884056827369707676514070921672850058673516161888915980668448357568899548664286945444212272492156883744213081676122622276538964101758898071644774195050641917776234098424339159384528502836941475317792952681459398879054552584678301204603264814737247927340216492244355614543470074590338359516052088091895320508124445055623455026581345727253015455615752093864037272347870893847532169558135444445738243697911005697359142232882958397209132010813580584795946876404910434639112906735664968735940670289455787264953279162442364797797330028635420159283023759141220792099231895559965462416640858444413233146787547550566788578679991876692191517374228821090685416160674962749953947317515141002004438724911570236762221053539778094859824650845839570757917894854758198411493350059691192542416898149916075938857549458045936754223630664596343207819384251646147744337658930293989715463627712541737126875490971280467163494068028076996670911649838534837982229895726884714664139495821980852687612594838338376534616996782832147382739771890182292816292503795317313124121637014717605520308569449237062734560361277879357825458382119164078508784920763670563187440292545203949327264848640871028727440966104457250953872969866004668491266611349635919940983615193599364260491237401266984260174181200592465142725326159439823474521221011157920246854793805215225134053943341399893921790862632303550830656392406421151821921643829409342059598671528019407043341960321484501091204410407693870982038840835261874793826477171548391102266515780203240377827390413591436610273853159742774804571519374213621705792298651449287430134219128185027364540216110176437809918262829894224658438892599983393185138952463774612425821966193805586461043630842441917706052371799372336745953788713018625971367887920534920171160120316858675458306168294837592382445471193184670477180799738566350464116622894102810535730329644834958674605406502071613377744569926853142760087865361105112210599984218496058750536112647754687113195553786416455129629641625793444401550398268204560387033726984284424195261822320706831927241088158442800439267747985073606937556276997648506514803597389668250333113499026124094950908779615624109352610911361090771154751017934614115948729690579720799111680635214244372650450392665758487935846358090583256952876931384452222601221652416610332449411223031342878442476267711615308467445795665292104793327033344670873312682092126813417882507578762971669927550257227251319457684548280175761394635741601497941097234073383018603330923098981794435447779857515623956197708060820603177684415994908916623507858945038848724245595077045072448421782547062335623325292442861616378479157023706282539096434396628707847646608882276830400010771305106350827882880243264205789793685069229602649693953771987906543452963379370437698042123170714153423335341632462065675060894779292501852159928797987133177206269528140277601294547201352994926663651997061386132935410076183289430040127909158293235996389035409815604005672988291122151718944550835873882205208725340112828078812122912492478021367557997908064618164847669710833972558957302019149643540168113749202668637629944782542247521540788335633882629904191755576433951767394102404866732284607186957386480775605164581900184468135968081850584426447445179306906537876857636261956478685881360123066569483185889170099452706951270602879652136201596184105345430745416531658442093290239094341094325806612018281077217728976524083848827266163226225592232053189894469636495639125666609492217551601302609298329819655001804527577792412523268469305312798279518451223539144427426665194104525516110901346684785995174253972263986507607392533868394245543698639742432094236974935867378426783042829438084229516893353198953582825544428388411573373486291799498234184507255408500567976869101277806563851236700872476099742727027058447591690210918361314115768726403457379497573924783335482169922862793448681285605705997955802975700774663574899093774265149464527181176305603394216538896473755318490118868014248974663003517851964358564750388452880807310233206932082110887573213292170053659025512493405693489948163449445428186681406013019445988745863236518777989015589588663232320904872516076357675244696950019635031763371506034805444336921151082871971925722018716067721724456274857222958324686673975454113392108277406322192288215900579575927930197546263677909407217311688613070698327077549585918122073612038542716739141518807092092071344531830667934515780066741437104541872018900816779966647559286882670921539990665896800899687737689842055594126772981063969855144465454257085530029299330201474305320601974795392204729327341406411307848536422651664473591604571081274685873855467237669880971618186861294695623281209345216566452417399652932245022437901189185786841134562924754209030771377832697582863190293577309719129616222708953750669831576866416033617528179657824537141299988211353737535969978862832273360553678270487509971629964000095250157857092232467014788438257128841901162183568685874408710927964992936541340813483670564724449172110958056161412456419657055075018622668028073811756906827509882292871004904943576116183447434051231952559457620603827039537096265582567175934666627408625768884201391932540617806609526355082444072021161592827278271319076857128444365105173235280986712453100531089781169778727870784317719231513918451771733970913313972580591691347054790629400747393869667406879764846326597872730336420948981627851441405529195582459748701834919211448527261819038805324089664786848262878874459964976824023789492597677132507621276807486462449702556297694278199299186265912848063731152448094820579739746906638365300743408315142481628587720097660668436024559067502830333730809391898584331899806995328768754721544864225912776203417857398824260299085139607238471552566133834538420415783608555149483500856217190816290548254106485521757587721443456424169388009339369629774262983593004559287260497808819899192475356495116774380762449125611483219497254232383385990522276770922329889954840820460435151230024004724330420941798614667241670425572463853883461328061712055124038476555058098219411886393359146421805455644074317740662957317514276340709024613497078212812128046972988865329635900064575029002359756398049788299221815754239362218575233013852648300258056057114561701059486390093229151420244496251344593366473515304802126180828907321955048980883341630301287685465341739096926296947576328667721175859888654936641864217816546630867984669895586991391238335142507418956407400922351484252881924492039098695718551206762685554484778774829951733156811873896469257326714808292844755254082204763210470370099802232705576104805626228599262045281649345951300087312086035085237041538749984563745802917999894112739461853981987894100446543659572567234083599353409667055654525347662891568727289436969135778259590725524648568666808822036386202337107772053108127387876801933483494272861163283033613477095390564259181296901890685600853745657192150930174483065264227199083511149671270195195086200480991167924562435845928056753451225266526615956510287353068331016725701748782969335337848543390960100974938056456095511080784404059333086761619808468771838662959438885559519629466397806437951602129565286465038506965017227022838310515486231602523387680844959427970560386379586151212414205334001561751795106262588239516529872398847305115461175274204148652867162049168104990122761437529332528553679786091588564501246666744214927977645584177882173609025892216505852502057896571612874368959370979239503994067421746216667689584253087859031118524473019014947578137784699481852889678756578415847790237284369415666221328553712947847835364776902353364743500753830342996652952734219206570991096938862829363525097562585610298718274071570022695095402458754564186221863966690540938194208248355908001115995854184984092276480526563578517504763686329438652308665631511383552157800332941175972777328690484294694558561451225827391558049471425406294272173820102490132959174236320682970041934392297467446584415061728631782809502687252770811813621755695304879411115436327091773247140320714319321212346814449228368008615530168199139018906074793582448041254528317274499322377025383701450070822688374080018966692856231149918941947288915819828315488265423503605598689354061674674166341262070923761552871053730067469907957533521046327452689256318346287689044883282237358935222168882969055492118849617403183295182084868404003124865093709239825831138277796939861934128363545861236333333192117759502867873554341233092409777770307685444855110391353326725920109308235883967696214778853931774187742146056399586469357783574757629281034852737387993531714968842151677411688196010030077860066638617099024952796594266953178086946337003155729952031786772367710247988216857939719996437978752892740901745464300605540786281041756984928154197658912729391812253535132564336216858577973731273175577728504240016103278171219826498431609336061873912577674801796015319352936457744715301768837733494423414663895595510933384682483012987086037828996388933714334502753782767581826926115636870881787101359083255891009822405462923409790242327298004053693942498213242865664936071564674581943776508722154181895181235588662395103405431663291565506779413382890516689865349676482531671466085224475190602351984305720790244408791400132102632120411011481050616561954708324780274531644186419252506587509766979443131666817823715404528333403382358568128109664193788685027129339415826947131491974624231776079266496608889232339508579114396380437360392097548211277298762229711471035128494744277331455405944625448294681446373772507253501040001363979308409948977078599017670715776949573778979566648161842652261099096340639775684743701181328035454439346742184170506772404006495798372072326044430945690999675174661159712546566928811022547160360429218146513113098209115589804159441583704958783601953274762605669738494266626046095680663022748820050921409221451974411483345019795333343638832484574867130988885638933902518338586879670560853887500242745502820798987915200160704856385755702734565090057349891536453402328043003268180189575413740671361455959414264862395486944759163306014136938941201468732923166945426705286214080135014102823274527975677971564812368983435287866950239370090754594049256793490086241082061209247971326123141984623299683371098105647999219574321127639969181383347518216241800309931642149595056468764572847284471756029930933825587164691994340535491139550365222805185018102298194637138439927013710596128717068719077107281010447261337276941000440962475384643362444946206713166006214876804410912236247389771666328904253073562492197514480384827631598771059511220814408860567234603571451186576175174406319743527879745739993416435780616336052186318453296754834053185041282887463104431345472585055904212700403942629819702841787732999920249747417299925030966324262080849353799807524731468706767071404234407491322925686777147366654482787621183611479149197927225106901225004767561841834352734134725178067817458937351257813411996045600974691122206901996658029812876655178527285798148016447554526494284045083331772039882284150384506601385050335443202584975090309592559758576945295405398948413325216594942113030705731882429716313260632836776163789845461581420581038840231925882140020288650179317878774318399101780195926847672154270801270186364214536308466578861893077238112066914166087722590952255457814791324103033950936891942866741144511598729893500967274386208021852913606670486473641525874568240738717151734806451443939576764420027662913190672087305893826712403440927412659382809595566912764385538597099748621006940038928467282911801595902095727352623402888544153553767416028152334845942058867409564629137343276696282606962698099815407504034959787457693386534516899355969563971122782383699623282047709102852746818593619496796188835011525628318413405248163054479219097408015452294460944640397801531153043349550161962802801810302038974532126799653308531826257318424115735965360592564990071386812692329020417413924986227294791719911131358541058181756260266164638933638507809618898598107886827765098913909251759890688962259059229799573975337688721355489512567981316763415611799830159716173729792033058074157237465585705122806068213343581237979100486961975830856362900553371736691435468304605581884656469661424543950744978869840627021540907722597299129500983959235293398138988759315022764427238137854801469990143831880087088433148614205931038676184656074723105353864776773288855952023544014988009752288300889460927459664151262392087216769145274984930275746572899834248543733449786823976531071972367269871662694925108402645251161936167516039098870358836485492597006430624172522799004809108721461046150283522287657526245518846850721721051368424714506736400722340515635932353025956385124457582754980454785457267010825096493527693748687926436332675379706294672145326850877336559272238460167659543466280880161500760401744256559336824844677810893800620815729278822811740269319057446605636600218975036520647861477979231023464921465944504636464228981972898108346371123634663470215218059866130839297631616648553927504422494656085811877489584646791009606194992120587686635520184031941723858814483351875315622776002883943213794335691433096858256401581508684516858553494919972533107372056945757961021407288069492865158309800723780502550769970508500645300501301688708320120195766412361992807649828420235798133335859327076552489105924588893928715941661838679208569982037901466269612922928904727532440559102609222660244514778690313139707811897823421557481727805403077889967303381850014291635796452871844290529071834205939623112853190088134684394008658352031800698639395137566300090990045296569673219497941210174008681038300283610601450682764162882177957533974343385322137657827784390559943066663707830771988924265373955445514258772203340272945387162567126243304758421567499009343213130347938400975424539556842380742999300393047365709234514354257518014008430175114426304188475028777990199661368078973453331066248949219331132632646870463045306511228443856021776681529953626091367883792165725793606727162793509898333621749792675290342743111796728613383967535155099323332472543336803762040516590367422404530821623356462714618717420358233130946181840954023409289996421492335950884077248638133084049545017039255624970658101049877219584192745217679090316807037920396888539883034946173260823483292452194989986845672048655095144683895839800738994235286649426587521769387367326776706521388288685520959845400503332036770139873795289953525618532840084822719693524563471929859816065826615906611205452052261559881729986326154680050132285302098017763766690844012079672787479543575205829345889819250006611373266732294897461406111348614535694453474254076345388854583774256615261041331614647971829036358883649661216282651691056737053320050987575242561484509077947629277133181703393677116242491033155039981454034105040077825063338336952009962334671575627111207134484811727189469838338648446391753275345241094417654847359935604184358434612235651133508435409956422399714243954079939263562096183028710932441710749347226494302522528649045531784601465775960091816938430587563567271212140858514942734499642067337178215722904537975389170747452642124118321281648432586592272080309144053397119694233352766479714847939764163216528657853460500593625109475901045930550001685719214413643895464104097600307579887149124825948710487984083152238523624000414411505337135881620057945840637028981367501509264976362733121281308027986082628410484689702107692823282798124876995513189711129957708895432685020522049572400485031078861309212421594774483606386328346858488151239243703949299245746090063065968144736902487390731664894988121030043332636397808435339341090816347395906852198821364040665891114525586675944012147443611804572620587010582676601018159706849517699848634778361341445336167309417153574988772963392079412909584702399220361643697926970811415805880833918696306063651713024394446397213964896175933117306744665364588955944755822687399034485803575881111200442308855147425450808288126244980924807227747657788708560657740722295449985146191862918656095124662881533699750191801966947305179274374198371416963086136616393168030278837817645001422895049032111288536771125108518117099655687861062076267604067518172621716553759890397432518448808066622296872372763214887986457443793884986972842511672218918945190355882591705946244262725938285592658065153058225547749077648432401948538687510925995109869920461780393418716663948262719542416757091578535863714051316116760983215901018542279155089974619155857198047553725397644642498525812110504361399156226150121286959918927068944907040703758412810014860979344708032391953496836577742481288387701741435228217479142042310750676063541996265955931125240409601683320413452703351265536306299168960056744436340762280029995696158175748723777015258442519800899712940702903530246715006987330043227126438320227504637613089866335286362071861806963098513324641061002882925319590730027595391246949835456142103983796080451594749337006831339853429261926572581458944856179828415382858620295528728465694497367949032175803130302464800523592719166869462635854223288989408947447299301237896056430922671663686918009100223777857041008866585335312356236924836531045028621697278959402938009217165554950606551794542716605783251728470581192849123663130995089403045411155653857916107830870707346155215629849225624755810733833236883459379435500404427960680392127007732278049956009350369720725344401856674555178232465282445808396594105993598853020862119882284567920453159073249848119042954973036670891279417734594278258371100531056048502416016730702567126695706146380926590633611220061336072719314986537433442752472347912123480027874456428813650555685180642796821536516765190146109511229148984675866722334109575393195329736152449457695249719930163591788824018960062733942266715777951613245685946143653354458531927118903836476778939671370855587843691952830312440139221674128689919957821016135089061073806964391567757565737651708584221548284882118012310184907700404471042035910121144103622422909972864456458997770131117119707687490324870158476269230392309437137277319222282003290855810145311743359316094548683224185024509527706759548661805553146272665394456858240921577226322939533895737352165165925278741119913794875203566419894572711095139268180982831833603586449769336942630333321875237937600444355713536533597426309626181225784818111459180011878760202292167508473400342033355616405978248276425513067197048506848411735674705283747390039164445835977563965390214865532578992974908077975782515168260010282757594339355026205838530711121035879741015790591158263168398883565239271696989956892729709552865684803145877178201046438517025129935345573633106425233985822697951964063489283117973631618079569612146983437245113771487108027920742598114726744284078032904159343173257914601425566650702919504913970844959158907203076826603358610825579015284918166417890319153538866852318292405048351433568448840024030177162890437193987774429475341013562562632374111323385924635192166139682125652625016480318873509382052062967256510098271250282059984109115822324505511033954239217038054007267965274730040068184466937737145695800789317453249715864400660442232920532842749561743632262863089345908508613860600837480440687775391964257107805184574937680024744658941274941229140369704958266756545488287792959495953107947643220970490629839593304165542035910988353015207283624609359633853665302932340378376432619170817831576028303631512409917685027356248284380979231943322596934344289765380556083622356453688262144038056708249598660150378239087722236736986554678920710879305441138270922026242851473353990430748587155379240505298568060313774465677140716156477358491915680435154451935679798064572208173940858419916792593990493281915507151575587894347768304245261850278662780245546215581313475214030470528829685169665974177680302030380791789570030259722170796436710971517377837050727690318969338317506009893368651372204276039552290788129399911493178402395583758396265309484521100071302601030761431003457454664774952864701218175232022105844778606822426053517211988352647444692077755957961002323981379872563261263987840141863560254747825342965777375058308820014866368530883049146135790355129259482663000345164660834443719591271364728941353643673363314908253112569523481100636475489218852209167639634541134685189584611358145160902159887474448271527570158280326055048912441150659585923527034552618395514689793228765941978033248713821830007569427235306858524599646292545919988706298513243066775886173778531765306918550445868269342030668879493314319644504353187141753221809156561529754425108370131922415641317184546653303013840686963046163077739802066997120133371743418849162310660445211810480740945574678191631612955033983054472156820954847185222367637701116544324075477433136957789944487151873159212363631113159602574158536956707757326953303812243822444892029878558970431872194402187235969360237591388280881784102166302535361030549074680064582733486037445150944912900672143486847147715723390207086529809974384812217259249923047493397616223425033576571033778701819022208023891206295556883585483762945961607272778687161777224417340531866142642648008110136079916693404631673082789599228320193641913948573581589060800018184943597011198606745889433304019344227464830237725923480307282014224383556328873562881697410165194610947302496691775391008923506117511057226736709846818272741618520937084964431319538604078190708932234165487571548939621003301985365681646833969711407198563890048452631551497131261831188423840928066883618104185873106061913980603469894771303584575369745416107767994997185467836326499449338029302876225324720346611424044103288248748526417953799237658157913455780736835938356129185832682071028593377347638171921964429991456278259881526260099073239307387103352436466925567241251334224000459260651141657447477496566814254484449071322860160399703087162925000503867679333794700535772785102999994340716483501301989971658360626270824991399474082936662953088758085714258004048647798106132181474050745919994313297495462509655069084665140715340966053459683307289437958973120742975243594910404605366152515842432680273904458151749873064909586771021333699881796768770054554159763095118536093667042142713360133078682621585145749473371485837566960988821643222269380737176240988930000061512491808446935610305303210876663516474995822141296269204479665275088570899418120491731426791443946595237796438803084885441298564851318944708317764508420723027425349330802232341157619592143058334828339384391551866733794416247963632117721995866329420888941176296176531014992642174580211271724600752350673462448277171076377373142554638174128021664742784642743418022885729963114178564527937394073498151292921446947996372159360653470202696308373780860878549619237018985681214970550285673386113597257535792654194936565868712938273110936103115511347710332122215304545619581491274270872984675140685000573125367744072388709949608014206132247294803577723014868874601790878474222358059724180567778386713850932700072273981545020948929193479277319070947977380582297002853266998774211812295011609758103390777967020287834994324174273954254642131717589686954905698818325543680373176594324943606488538125518319041360593198049784092744483632852446165209881493862573458600347981023221343197431727845584134346845350026916604612807444290785352139348456984419882872809838396286024840449954735825595173375358015311032530261935114507306204079684383257196476588877499482753303997066447704699995936292228688620213638095078146276611109873543188384988636336240199646562207577453634146932420377295692873046256051933498242296371287568077535895843105698436592522243181951380255822190838047012300080761945655644512770554486169675525132903639988232500043839155856943000741464669725235504883871038619819366972697309829464967640913703542494020863866526794424569861301403746730013347652129090391586871048401768317637627780957022482183767446921080117855292739898151304363940268815339141758305915972019547114928785677712880626489715737872074321666281149498636281800691657607858143684118986067184634378532012550696087171481877735087221309537605377652760787737016905922689039757560615524379158255876071592084081975533051090928652990808068293690418364184705026082370319364497565829929677153462803622886999305462586948378156185232510272552757383352234303957027751661258714997860208685131360330634931563912057103577412569894689724226813798735321475780104361701552975620899697532578558946627473080749618271553123144997742123452603793720905623855261906236314040217597224430603656992949053688916404540693209726561761950341359461397251310759553366536934466781016542568642098470728130227867462288940428415821043036046831525078349454871470670907215973186218546166448696463931443762097802991819775798520046765280162407995364026476876562701945530347740599387959534616292451856469135396307568121307284934905014937790807453628643534008356486547774987525290642745340875286867521614215232265044077808973535259781243089043184518749991829671955666115145071877602686958280811997584068902055689933326394672890119178807582162883363120248767769360747857112761065806001134832840906560058956303065740974658675322328279065364248579807715442431393807589771443535233361001510612362133650696515535683594830626199811455610404192683325170525280201670602394144839043919525758280607231918706262830378927712098296671109823168663099026433309752020320110877472731040436740777759398364429450530521139848939955025562574173619117346516219314661375876658550661820359189435549244903030693292585648855179071584052536593699485795024698714734036305820562345319791991842857570623563734049315879196498717214628752817530915162172806805609943770687208260194707307951201181750123886316684156434052834085313449747374944351301636008233427790772017221922994003895577362149722273410054317925589565200312585462419716427705707245395029835307031110899537941645166590320758202696059816425272568150790185481589832227737252626816197948310754372156825758952909766913689435851717316638814562192571287754012474842392205014965806795020659326677039582240988093974273464948818832049317543990670340518588470989018798512355659703380165047922925435117438485410031549323857975678216854068450111538047620288477472986891949247014316416402780416826879821046779960379020138021555113745783057708003360434180893139535270212273491297980226958531698072022972590819492932460803539620006028180987551195164856853679872529059912165935925401035487954884548880102547527590525394718910058880752992241303248856349605391018871285008657506193612408913644854992816922489462971543180315410521610979209353760431259315703198268923976117707932036603445428797949487177673165663495455334655235174121897172979786053283923994011353560181778044537125242782615032263924605627049211052805160532814447983757823635557181304670922990029988325223836758860659254296417807332621977893946033232049849429658291196750688094280796094683680628562500935787882241046417198484986797039321503354227381939283250325627594484757076896731621608906838867135099134054046089144993913706158059757876459785418615918899126168134739055792055983948018842866602025526740445900810567383251105625332426439154919501693693568891707704440164117371411935559265433759025111991465806294225032440301904403424666475636902683438234912156982888185103132174661917674419859116726597050814278940500481678330291078224930535889228393840641303218519054383678698440683596655379659060653372949256164452614284385313234869761619338804371489030462202637299187998820761757672823223291614919028225982295990012834318013720577540104535492375807651959196294050729525181139251317771440895004782701870464032155953851329273703252322723794269283539651046118384603141986022651747625542273771485702543907203029533468090078735024477394051197080703070053410317249951540956957244637874907044923180221023526871458315676061365130970483656077811684372937898372047980442731495058014741549565027292527656360134706872256463180258480030665544921301644018613977904873451189810980858801822142611106613831698692237374614831022284726192884793421242710434540839673333393329183821569545773989075310580485515711210163069319568559357917624981550966387382335215387344039513604804401332061947542533164927765871544107969077152512782365830783401743176732477931606603497440570570961384990148674290685128612204612362102869506862563897768175584907070448721174151202085229151465221314497675246991197581238873274274100400864059148153830149425312822961886685756125773512501158998860282048174324709275466664130881318782829534523629104337001125187524484030957543676014634395287747802790708797106637849812258973555455416856300110039526112984664314971312447269796789510776169997053251063011594847200044880099764847682700967368719494226506521304021981513694946693229254822101143581034934068864719055329356699785564552978976047608690330272334496223100073124656974337237758094897351999433999897588636880333754149342112940256314424281124103965698440272549049294684281371345187610973533004582591725438592018323843795862315330516734299116567274181849601157726240939785720324763914415547214743793276356314196403034463880423588416856336288232558237002129928832099602358599043330231435447535408017931117364848776263864241476736001307731353552597721418200069638652760441106847832366296695639362455934514842447718136859188812759346355519027287040762581573819296374121701771679595485670000022856295317475640528866145838029029602343396288349556648997375514687784436743374815110532970560631832685926128929362606601808030638026983387379918828183172299550761418386413838405355093474268679310985345682642375399667587455018915998205015628086097736791790897348208392294799337607780973603205020561921709322636713880708680901959469498595978892844192256099340678843514531190280144135197229277994240899747065516812923338260946049732878825605502708743333174804628145453858680852700843535947919656989930052539527756593330443103982384730561606752636097530748010803196534884352238889754758126309139146527636817724589275128403736236553264658940840736773127722599837182373611931767477664924682543861098946704697681808547022154804297870848803769922951118375356596230804132824550038947234335209662492907644090384173827104367010838282508608726413860411589519613910105417069487429189834578677145751028896665745132353224141126779769123585137258858323617805776357470533841208619465100915273781842791821139842724113329833353796436382102455330658732472939884942755875527416162682727602645034945905375693221897201048000856946245752005656446403165667024979821623834068981533817019062133905981229422061097890972141965996147517050575510674190545229826195974261135911698093542234556126598157306473322132510758320929184953138695310395809574573486622649768561672024386844926601571122272641231806412218993006827440001190455368877859185149825687878612854489314173843483401705788519678367868512787438804812215302364434496614298877569299735504998691894641675208219009297164836346177581090153300541431100225429445566322743635729560106664443291402362541970764859435698047224300489356820908255531932064300627380324582631092692009791194187076133076509253360635455340552798228392874501435147710490592232485296999111148619781389722330404542201561598955517798193587576976078654316456638838046166962312388397272201367696687079536563556853237078788338412536038836991792742301401386045342189012077824304658095499815668569847795590639815031815727016736982730302656199872581631477920055239209007765805155178692920701653033690591023427047332882009046902630627514028382411370101316952670649453620887977874342264048379967984688676321350883981805128588830092599210257910993855196918427084009444889802678257528505826047668116031074392590012433257655817879410900786437786970940155485012901590020303440483240650497483762973996269425416507095589857487464713159810797927669126604861815682388461620145699118476596983984703247573240592126961814319635388901490612774582067638116329204848218620282032521379527414990254399372933783569926075855413778414747092072406357660399859986238203310579791667097974164110910100045199117724487199930477064341698935137367768244892889413239934997206703051552177982059224922417999649402649170075879327681272497889485991878356834409890877461099590442569292171470637648802953707766062467063770468411182594204880418468539381097362976667113276094307522129428329443879260845966885189895206259589559487273929994011239098172683777231897299687664321024541954243663151098756511160522230190513544578444135523616680416711278107610857051244888245970097412079984666933351441291617221733550852917206213276108219767672457994545891118153899462439853704700317756635790841079915883196071852328167097012832272671897788718801423509270685802890651336527622913058787639246146795794718567123736806146102145560360224467527176789156362192445747149095396953633091790858275600065552801155475976391730608000499072759366760602167396313284310451679818776404652256355162496241245774424344004922201021094941930576869088755327149183156272848297354033432158481926483108660724142804366526295302660135671832815104184526748618060606902852774530790527965589150765887042233771778556086074565504315765141998758550466334040692181472497668338154824028779012092352916388431757953853615420459442977241900048860719389589241052790820001013317361005862528600603950581718673456227199764097541947336658331611051979253234935161069842362900515287635288922563170621801910493055538800617248180806115642881035923404949564971826118864417923349360338863307043272316644229576481205786561050812470959755754401911640701576123213401102104788089246275075344366724411165898098662108924653299262149082373751985754153505553294255485921314592310603695896682742442849917544969985617814986834282601855283585357488980040957023718873385813619018206894198009540563345495794892818253491532788458414744052418476392129882312505801296403154632559605003240867834402954883122569841286286656703467465036972334451676826737726886976648328828437455307205089789800025596920660277348835435152504950063835199092104698404689179017792574855063951290450219788119225578759811766525230333041916702235774548995411259490996540674106744753913835411675393728795598606689582229698753951957949032628328687586345233498561818933006704745042302231094748404971678296970784598483285124892887902674958412071520409144712774486254401105577621485908972485968378270207340300305979375332493468504518833884983827168062354048026023713476838703588191253189347263569414091663505147095086205521244000795934592413838842999828873285011293113396450224218096056801764481433968467764435097470297833588061991593894436460860327055079874455722972870462856953094737952399193645045848479292812664430720489198459489124753211848623688026132352322268432282510807198714375238841896179012734025752412127453608440800273333847759815219971894989826651499170983287830576278065074601778675608876262522889944644523952827682139154818442108395037967955588241965130955980421650666816090494827716506118708385902447224502493434168833585511597168161567313655995507812829986529514765504622984826893036996974768424468436825321635018886532539010979851534326776627173726086148055595961867039139748041019515788694134994830999253907834312092960539972872148342461484071019531257424412722502020668735865922546035862273703190684298403888246451557595226548920624342658576200076326144768029604456074998186533215207973637886252276788992500818120430677756554044961616403761018414025684529709211082770471304921776256275945224580801711916043900527406474464309607928354465619513276218645422206386016782975389923472906950197238265571684687053214144928545803501102294789499362577648588618794294638460392575360169215028775175077163572054498969581399371903558044425755408357503374215476870247869611029773781973940512886221727489833212734220758188860349465779187673840927979224157323615965579355802421247562682643049997878545894412436538763039514862380869312046634343529969497027731016901907394338776023080275230779254946591132201329183485182906053258563019821091548412816200302422552966322378841664763166786107360446423146445721949740138329853656893716798124279963894336792280578909900584844266854483798281081405003157359424059687446519710193555643648990447488557786769307047900489962257686976672965597113264345444024940580116684132630266067831963786603624864586813322778907930453383594368987780963479599321003331487643356669093644150722347478095270043983069968187329559319326473450846458701584725058696803074429577076873383971902879701714666980043621098607377056940789710456602133546770402529802507463058265609717303684358630203786331307906486573639335160115740031764104051553003649646566412071829981657062541704389758452200134019061921008702002745743459236012486082751648400724663442482685900376290957703787384946478057331080364380564204920009817221839603559247308790087309304556877198770965650331463315492574514223979096671467701642258532515592554749296281561072227877125838083977062299961951826807265770332823150410534637399691641304092098198515368446724737306688928621728790988326129019853034446109711107774830052924200865438091640096068499032065954086520758195814504693314839834537948357034688341909779062104724750393020153799620183406382352282855074029978859128471160994027969741691050431528297646550962643203522704609923536370101238227579330656081810247791810033550101172075151114140061348748056064843980794186502372340877561264555833096774711320467630458371170115849860015387680835957926975545659639961243162447576719526033941241828452836263078033147477648102965308244606947117038859791130589886620040615863985676664246323766063412140381051083898546938374845445105732436802948591340343529378057005359554120825124803758604599311218083733520592207494223686286784335221983160867119064496056469571567069549952542681354617008388742435278114609424201881357745758576016974880940120593542178871810906948677464328590924964687344073615061952759436097715295026342945224601918801814879787982486215417352749878350127399760504019928512115872937260196339613815901601859620211594578602051499038807107229835213836608919281081466394770955028134822818451436094284208866048752499141718829587859419932968977291648474627386927667637225445907344291480400307370349779029095007169374020350272763345119568300226561213684628811859965355262753383303321181276875007782438735045279313647249519951047653484686839635542258630524136134161107065021086770542366184399664859016370296046270657385681662268533035289876337208483499723384391705038704983432578159755832989437773364293933197193894341293828284334756114296200026690793269813940584752924411079544624175907041645088707985843110308723408753003223718646497848378664194666409445261760924390115469835196161598856063476155364088080560508043408172981745923687245107506581782285212538216438722460093208168377927751687233191170586252726087070009726201553099606852635208297980596635997758132148611467037218847943001010893418581940793926575098565577281281801695125681567866140024041081553597667235343033188603480217927249577967066812467776149024342393774117154529538421515827130083216428338381057008153252635789521439595809329041835793988500316682399651891560538159035031125785481250558586423845617506129539274880735728649712400002979424392775613642539926972941269696309907897822734536698824853291186708801912276651145870112541110704621064657190768194506222169277731635980631056468111005040386419802879586184156774461247905499215972253543884595694319601409482202955027058340663099183008970514717608350847563355939200857086428451719045458536740273034518023579073678318056126619399499995086351198926353775703904197537080550395765342187201298782137306542790772121227533938309699248600993738539009393332502713740786142033052785815148783553532163521911687439967512151300273452632096245487923602336648717273228973128802665150181327247974139256160046644333126105213183882490028773286772655811392106202883938362272826900805600669090254961689478289031331845899275869589132389891636449361781007097996154769722646687491341347924449867864614278123406969562581986308371125822042842126783327855418637086550450249082004601346274109925255095546446298097453034194778898770893398798763383241055781859069950628565000849550373509088443974191519845485863461653935096089942604130374554719663146870889228991526537583420829265443422508906283270161542818148631857728430298259627788282780100227051447844607156343638944055524053770389038922045277408202183710690120179607834551838273534602742031331933062613359018571169211058360222608514307459904335253431943898088078272821034145286741025176035601413718353741073625057564862116662917109515260179789341187229262054463266919894558611875095046526181916115966414367160670436955211930809112899124502730364652452528688993832115590337246042386717552223552980134526663342867921970486420923455446086873964206555802558008756896125673846389461103679443099418119720173779730355502368908931518560599860855843139376276850308847463529976520482957356770280448284796402207390327209078115438675076474798687415359618591301873556536883469617844042964482251574170428874345768065810169457735864459292686735567373787696349572172053118787974092884508363570379701053890472599051788555622348933170947026484695350077106362123677138024541498658295071825797797501769058299507215538083372925453263566212470110564340324854113615903416101327938875670849673901945852231025172285801261902880820314061748054193528177694294482477407489876221105095574483319351923546642211457229510381476241399216796256421361358054795405546725749889498582370871381572159461452591457843479827284486698422326096699908846743101164410488148399226231917347180986302662576103101112183001312321043834151266675020206911775238724465895568525642418989594176424842061033836001217887347399784161906128608190690042678814207422622116358320118630062686668578692034695950630875411755785286441629737283668966665530632712480651584649894031033797217039578128051447351334938526572297029182645516205481715904762242684143845288179064583501080572867427636019063255248564048329126723473917990314715818721963702061325085128626562261871800122374407438451968461804524551149762129199900622408647026463503847530265650247126470377414556255139886633413380330049587097649609723312744256216418546743932853487436694289311145215643201015462658512761194327115217708879284242141503145250559279753669473603181179195017257805565285128550389072096519927080917640228031691583093403942104294651504790113357895386380112465909862258759887955032684669397233804939401874395165925420690748854108845783266665751409063669155700106830475312144533090905740659254176162548434769254365683405941605006430685412660105426356827315615642348813574922375408127846524860539094134371528742930237939852919565899588805580196396173033030508286669756373216288944609086971322666794592829773247873707186740956184444467103539469045027237121160840866437250269726502927447378630986837077777295508105810702397966062755053257844964087284771483418769289837458798424538565474493223075574920225533733447627226221607349944864118392780024533639023569259335338886430393867417083438264625418047225637401686260609390327017478445308732972447301703770319618510075387033671380319632890315410195787909982751225767929944870769960069523742750115492896419716253931104695470988189289552552074316842138405856493773082147947472632191438004594968386848477384988319152923774008754058566190552222088101769791175873889741180223912216838679055197283361788129365191289323859717397192514277584205365545059816173746220813309777672604328054203899372880393895787307946833598976848305484624156442468689011645062895611126965918587166286628547604183059674648544457461648266699799293775096240165264488422644853754766170499205928651918261464209006884062970295786538807701694903433518348086740152922568984850904291207927047763007842196701129282662037313066995386993834199829737204047220107389146629888032183341220787023451492309746007054757504666752233479614699139875179966347835773648631524802829685677972376080675600032048002474366125855903634847412993779801463430703240238474950959055360571969234805671229037905304238898578246280097319778236673771763829627011876825764096882820897631824462041431772419186713097119017611559568592145991659798754597506101019280135522708861234056986589671096031131640565673769970304712285475395984172062029300735016516737351947991752766780369950783137783595218140112429642433193748254181361799467805406060841080166482111230792247767728960514252391878887078906951562256519747832469548651967845189537574532481459010770572413006897848836986952503261849326371424349740428378326168677895351796991708241690078283144799613522631447942309350930195202032753974352509750929647354059721703441150651093970308845061349210997668828168612687350909240934815249723534595566487760548085901978117395548658846824916164507801649362244570854491675491721671164204512769419542831072367028089781485225903970299200867086817945676676564596253503460276978048026207005095250923265511827454812322406773214800735339718367872000558418784792942153032742937719538276936858665116225622106743616037315980748989366317408591295897098450962479871608084293551757472635399771417935183448688528646854826510407461491264144463191876061558663790280727828885161745618188517828775145864347970184783709800635959635830936703633146971438862262213410095619451570682729090339514939602475561540575884996437633191740013623002157642334929688756339225621682858860487031865506509568530821582957661346122983932816336184182373708574447380274951930700296901662112376654640270892332096306210509254463973549503782304415257059127352562331032295265692683356973588280416890387894707096404364894329005413428417664362097481325037714138520038078752253356711052311395973229086993268549311000117970158600588104342061782387232206454301664644845648522028561916964734963423460092226740953844890261925815457160157938052908222319492774681416081170416490346490711820561130571902619143545301899770161235954340126829552004148318590174664590196320831595896602598154125823421912958478488796868532432931508928058645591116258153211428960822591927625539086196380920939507016019958434736410615933486651462156231071432946389147018242103326429083468035290536297080807529453011284458256972081569306524073830598323208111378666905422289507401115116115939662041945704897196714527785503025749946331431289881539941381964259249853572018545465813153135911626142147149664043798247439784103526848543972796633876417898537334914878661843486698575097767478292502921707606984365208040689693134957163495996470565147259025527703521528533957476839883250047196319958119898362568992297809988842735643448971305673652561116827293104813797020834984281860283093836946809845254940554873699515643053196480931655758123079574596855753747791867342506479769323512868793439984527551986184880510752379072443831617794571819920375627859884357475722050718753978855280343341080605480645204328748349814758270722914814918039276410870353556128453571644412370459061820593190658763922556364155496182443614110076963023320489048749774037937345377548892316552525695533439066507823509957688177398295178642769810717494262497130809524660860785066841679846936960529106750800096910552862507701192442883485112356623647144577068756415260831331513363212331028050915944135288378273291775609465980500697339409619282185426169164931008441425494539975230719206015835638261313375399158438385192628893964540777135430752959109309942100501725621765541953350189864153502947480062636545816023473598075337801290331521759086862840912560540360031855096496729968343435375444932668488963045471599856184020383085621184842713315806658515002092996213779776047194865289813232492697814243752100473248209584332933827736198351084686727445802386220371110229433903424795729134536371350733103684962359432746995570190147296923568355432516211742972326214813080196488928190731080883422550617969469515818864036255725095851856006079120503663901123025169021308411542596657338996694174537720603400960877748679166862836656371292264612591358585436180404360542400017456566060903717388791666144180841122439305797069252140728732780482878329890976001339730565337122162136782117714710901053175319787859756857961938299618503555661279182264102390205042783528229520301134373350926324835892791474904760592771033292053330522467291352806675238424871968953941469163525182257369447503606518483497195270350896846049762068500208544206180238823502540889981295093470281038462528464085031498740092453716360840407850281355239945709319741663836664682846081566599561757804381523355513553677575261421021794232864665384568767933249944287933207108580437857186311854918725912936370350819358687432564419279817739820120096481913633685035961949520689182042818727913226388929088680633221426194026429728208611962291851998648420357909486373676117547521897004502707528944264964192905470984626045873828048110323377094006439569909419559793571582419603787697400867615243106551212062700227255221931987070886916769605715527669108496500482757810769505578328996117770517608264847111544709684186834441511825752630610374397288879905239341484678164061736170064395778953746739508252816691756939365823938166962481257748619789529199939552226716890721473144358206152164987251890567605262340967624906585677646890724790550703155080154956598068577620364942588269211296189763635595684607194509953907210752324171609897197223640771574940037131457315687753777132233234341857858340778244329380742110236398711897152764772441508844040462927453738360180306106354625588212963727208626863393497073082288503792004616552146053432064587919195565613101048629894538657736369948537451632056161479030181854743163727174559364995942562160630113598941369988020211435330476479824363294754294953479065075713255557770423767824111710352650598392805079434476563591839927965815160514392306902814092901299626247797556976601690609259219501248908788398350621411480048408633058596426016455167592329260930898338134485067797502544029240455845426673015124847728318915500239923073112100469829296186938623461309168301418819686938044931855614458747852308489330905618604012007302205695003728127639510624358636102163688499288224104451130919763609460794707553272949431888343078680043190529798197549074283953752176171086600185627975973870086443873053763899985505080379423287649882720099929496013651008113315775785394242452057475839884632530005383563861199526028933042077025704384549426360691955883934645769546361551034221852091899375505106991254881518054274040346900165245519695789986430699542179484567821311748511662551547771294729522474163282276213998847504207170592430144440808467101795334167302574371958497883282759696740082803304702984756296090419027558887922907024882821076266420603341089106017026271026934921502396034175503073514366306615672756339594458646656377113399223583245004838474117056967463402988983922536510731819190387219720588181378789249275623941624671610826989256346682501014156909872659369638442549725373100000858142443845822561552260868904635921432690596727798573278818787894168771381013405479595202460215998569461086075080004535225010809962386493460466245132486051204187780598521999398028851914073885367217718855490499096190594998925383518636876525702972090065264897268539678400758842952477450478121927026919379076992318980812922526707434687135966106602343172663559403662078457319932242238888194791316195042392510063906212318483538698063526753071664092831534943358704605485539346365894662293037870749197830204175518745957291783652931555306803847846883972067091986004519979463032160769552934618743211915431359051683287304108189980815483591521803668323946209339234278456754609462021838578751877565644880580371672751181942921285685442662599197942530956653039802039754091311300635453441770813874649677715814625269943237729487500818669947401345623389109758326249730995230800473704615639444342639353213206708480291611514755278589597338202916829892291412708002205313173631540702802051752510865827002536300505707757495966118666515692739739165326672427541700324314634602791206150151748834836170854574448407555802589708098754518614089087290504407873987665374416761423613781186145835582481547743052541221204282471626122622752226242297882972781133525428979502568232762202486508491666632110679749297267040912816081342422806952968923180227654656294937418321866552357887802311135502737158843865310838424243922036218499568171297753138004244983480921919915865075221461611527965675929603349402994442260815695412882799603884431009853700691758442296032172398820877623264117929925056155082375884327672567839701392730774530846660205509047007268479113457991926007892799963242913047698843834585031679263037506050284454843038632219061570801086977987903906415077939193612469739740587195347400179880874549698825737323537248901359861389520709610882182316448648741047969378602085701877960569577147204339984777261419060360203519722125789519528272641946676951911094396786324629248727241436693022569826984520419594784475669936987179141074430923115185136267616852055748873400217398006648893763017221524796955369751397283840714708256658540873455158791860846943187462271250343247383711555068232242700971486168508321175344979115378306072255470014504957856457469763447513172668675401561682359880741438455031866386050762715227932325725188507776282510208839345830758772585542769273501958382206670997616017090931970309062945569174174928199622860836616139256023965509046305813807693434947848976793959767789085933796960709309131012627682338150320300899574464531275345073216729716047778810643825450535905115776691346087567414320410732620291849794003052112205438246434939617828050867952321060130177321456997656299698747736162601068259688414620058939662757205091374298438046051752439903978612831681699231191944062810951544394340622992264477741796006482066419699762252069283283432239441103603840807104465669363148863494845541908377162444806870327223327522022685200459095286201652990369132854265015941650241364411804817044283555379301105999062091245793381731491339699705352232710448307022174297828374509901336139320199740032757232783247521051263578727025054681503895629352422194348540318164791185438455937493313592220008510983823668108630471066582228985753932760652289654094496013415024751433548795298133390895768338078583130397216475096686078558528708024933152721819659455918580682540654968100129951743176981861295946205255164345310490372605975401770683764023618193668230872019568609649934861396128187047555896686202114869871964493337802321277302454112141813505188309471877763006963936114396771956540864324918454708516352670421376280688037351379484828030419414660351571992263189395033552960387531635600102459171455080762908982048249155228996715678600780353203715024758188861548013855036751636847427661056905044309995610772100600204606602429583585965527392906124708562790229743805589512486848104478209713903666930323183159610547735900800756224401160241976072404045976871038246460069162193717693505410832125874450025624106324199214270934870272062325891595377222808655574989985723764581603421425267083286266623243518053089749734474360285155408921029370407160593693107653582865101805837425392315309074157374555119639996204411006656879270388636566505187752912564036520730966368754793740062492128423349732549772532473845350819221960798323555587370448570890618370358843583072452411861054965243490094456593040249319111663150401267388294997038542147773747726677389078748066521703673470914798782656110839449703589368419892118495630634126375275704664631223860955223957415449678625483392092469098499729574760447985471842342665982118271339065785309611746659019270745188121555122475908664635772594351514204638767654201177785637224814781023811527780306063471461812183548370096499425122628190829641659984344344993522804250752875686567817873129448124600142671921920272310571712403198767321029517353438849877330111962509357428019635657766607154194493777471018555676416131129036846922213936252016215969919676603564972658018017704241423673703780048567715589705551503398634697615010040304044433929862369755844037230796737510955990698187243496842062548756213815095376083847708309109698116662732377415823779107346975869533028196510936121301011161208120568649836655704622862724878511739843030844155166757109239387151844621484964474198687674242028173949503638964449531576985666929081633237326891168390922864319231417300490766963644121833012919448014256057619624478606262867444833053066600716425986389807283049382572644850726785729995584737562570743094503844072899691116023482973872622256389677721707024524367138279605079650224382617579338501725936137023190997748788625799146323460380205005865889856722099425252309547874876464470783738994516597444866833936890774344994868466750202648311710946026281429694421432319204155500435351178550406729427617646729790396851647183346212584790978456580215097331198216713047513756892853653012415774354648731986309672611446907825261620602908510841182850307838746695815460238578327887809944214255288962002095225170999761647190482793741263950228813043682345001613957159194106574186125995147729912662976635077703219104745265815004141664629554605944248860031053115963297182620104239129604218883374239153461539738922651630957852047749626128774850960347489345088419512424936154391662028277990379929149508235044064259998851716529061409846972304745504351489128831380697879496380724101490698713411612541109687197567561052744647111280562265031937671444601732222853627810630714884396034738746082211841674800992620239963301781605710758941930513590736092765681780854979010703888144890942273290478458024820818504784383176878224180305088686808174609523813943289321287524242029018724388035385197493211410897976085265723445944323208503538248035541576231335512463856786264860092371108071437963286960803093388203170427183480083895336806597066988229500446400053400422416600254299345762294784881303115821069359221398427479375427482743931889289224920633015526029502162857970827966109673299850743077433954953033660304765668486469653434884912191854123346036376424355472529997410002971424503903503800533094406578435382945197940078672027823158145449202539424892043164754257555746479600677753590990961928579805849142924829556437360431887743939350208152898289994609295413276242539250994277167609261881697873288759370073911263950756595069716910110968917351047732554027675482917498472263345889554278295320820392897511148934349701964755069487475103871086855004880777479978779471718674418065891891567587849914741531488167494523667242526337078847266827795920426128114545331018856202740160345895093688549498580028875318873895581421623778328245224551041880946818305798398305378244443404785747593241704388380231414064728247139730568872974085981971458039226802465312853748769693254389115255907826137888325810967363540574612492302457651405127016225682264715807251024259243165675133325120231844063752058012100527017985780872773070993889071439671149416645097718605871560682620439173233479665850960099329089471969061544313206139433535260245022652898381340605686807860431271313924251403057338287282192642571136030362757087993757457060179365748055755036781631753235406544438024944557606944240894998352355618718264747892433734668579643692548875906902950764246345341941169763352625304417551649896490872342843049231965104540347621917160828275988732541107794015423930645000943100273365715316577470296480172473760367746070081194144354704309551496222629884969822637843557321025247973323164632524245720246918023408560898607562742849698244334428110035934423331595649757668667114624741974525526354445133687535623929720826932668130544207899961361902626121862034923883968135846116027168668473636026671573974009009904259425051795808310638916708845391182837315394711616322780260567322560042713581597272866908164199286742674891103678854621432462605023828512835337776751864640182502376288970705883938972408064988935002691725470126339798339022532345785141763040177616683118309221547562298834762649660797947817233205564472239528974560360295410077944500903736660461683714912939094704302460748073316029834724205206197247608108250231206782726620889020752389389851733267264008315887655376684259621529360593895394302087355110776471236832624004249857518554795853835818785183520418758517761968372420861164880650375184136228142544691640740501989217127654460152420476421065136053464642734520970019088177217363572027086009617517568174077274912430162525859794804875753954513871203269223597762087085264964590551841968581098478417784211595291933870367373481773219624431654082727510767230871534817544907864147794646228237944105130332468171105681454645758540518002997366486600705096309515331877958802133591836905488167942806292646072715100935350903966152796313353471959046680063990229195090546530138491250432698719622902100838439614301350230215748345036139897955386756221303776730607096904159457729183256854007436493067851970077133761800079097658669648584063008734600929977307135483721831300339261230245751926024903917545740095367918225986398111155049572383289505404431037390291283144173492355557822706255395971202451046867285175943664161475215555133778383219529386564639929993938509373266411477958222280755309998048899354844264472557691551491467199802143560135349444137946072788872023205821344739262241535343144971109348637680763774054962026071065555784693317962784748152847326056089820422736542412186197657097011659702817897801245293273489168646829112780360776238885206407620558962685602724184879349421927062958748827118311369735112127673579040492161896343004814732621624195656291275979294080989606466909338277343982311912880875692577726060066514296148300790849344663874983502237673224489107528177433446118596516932477962415536474079818167366867927921282737952656632914315107809185338386948120652707401928266526532786932383920229890874075447104369842352858907678637308040419937330059418299249955025341034244873644707053921081780630496503535676642726464997699551505927458530730237495250557970946742852496416712413416903787619443035086897035430640352722082803257759077225248938413248296100593135683557058403596369478357672163818866304376478834118697421600096799483013412980710868885666462178913755401176697795720810410542635029415014525687926435318850933861240924536999879698507902005717127722023618826687838829874811899631084462967526636192637552445642323679447774093911416174163646935447331787764770180352974915847022705775705276529034975323197999389645819832985917467088672496549665697600209972097416512500883353995958645979509615485205222331226943919312469642841589702909857911903484595834266563948293036138587338394763012141605319361404920216558241190283869034814758358774075307937986204394211820708173120718508794294741345422267491729825794419613632197227157868329997630835894760166343653059735986816598294797693056284532681667457693087496495378462865744263924915574784107112240822597856655320014248784853692232145837865766912510552635865596775659950734153325200096247385001318062773825736150611585086046669631240752916397363485094884005035613816196463952882944466922296576759881297959698564569568491210042889288026363928066677788006121091001341533099328369305881064176352999953277784280856413590331755156800601976773547777169482962772876025908377689097770968071199355700953332267253842182775072382967360517637543113137249111918929741250100270799840209072201476169822680400190062768716645531872735957031861767870502788222924772664172705013788589541289867917310291186028854644130852080165856615161906247714960688572388926657081631380213677446882470321859518072469286405314641686793952475632303715153985582957648220625772773453820327647301464746652653624673067531956032767009765097215702776013007562268558415352695063497402254007885825912193573480884707957629211307880012246364648670632578927352308527525759548494755955503391303795328016254166819080991446127522117380482344854270227969453708385673111499039221721519909781077527906706169546252101141539058826817598780155562852444442501820212260599156418755847531141295396341354636371716459540132372302864708986581461238758723318103735352401963383577290436987921053472141433562158742773878409451652472242893091788007129093051956472421779934863492257770431697036789325331831832237153153693816881728890651890197309820052076113382898963342319413355634809132085529984863779936292638456784702682737573140107620390832611052372754176612474765591534767800255873568236810639683399336329096170683410179533499995021508953700718797142734259854868673862384946318524159695990244549805242548495626646277913327688369535679992923966384996719133828669073136527889159347517795794190043201764944390888401852656236897331848037809496981234145169141401345540701431168989603945255941016349501834433417507460876120026209268798939600525528065453495005755575273657243103532159909422970673626069350930943393686930080349649443338949671580380360715026944914816167589080627192892475366112864523952262773348370953624828937944339004171064438725275098688844857553301475179357239452999583517394862469600718805245271296284541327636004133886145374715600562283887555524898393993898269895744244980807751057127411234063838512375147690092989059585573784675891980159852836121635973326415247392719376437675852243255132593904389720313320939258865732410087760935082386773433855671133739281587077533271568121495598022511567118746068872912629414854796662922140965972839360833074816511116929044488770449909258529640857987899185333191103211334096467525471275842482810544521709448960523813407012148271699456479677140299815118765840635117343007452496632467110557486315905894764698884191972140101827758805251375789505546780225700736578232502882676958754149287719643978024039585133101861913314415419176987794238524092245012592105810891865287476012651752028576956564596550444118613409032854374041563858311187736720037877067576671529868973966764860413213528398933554231674861824320078348311706999402314928474951113238896524684714019085143555167660431494075541453621024443110279359070887940004306055565112174986063880771934152143113186214870335969750964312655512721518431814862074471768001878289102038730803238158822708023372221714231461040627247411127347791120019302405853568141712618535314798372243262416896012781453541138084068505291651727459443146910733352059114041752702117795387266552286292606884721473855693532256044199809252272897779611969044031893390879121796111938837901827599916457738584242276021256539036780709731146937382001289979267068359928801544949228113360316721841626944704919174879437850430858233523692737773497630746103047095892822222839052322631380880454891309614316687248381560414069747561656489277809054071542756271446220242628000021740709977635865752168525884453800927280073210923025608411793200952032775555903145121646184231427327652794239977753081427923883965628708037005924677950265333895467876806175793176889900463712211526495260021387096638780469434373038219536668858989500384935960476575314427124973710028013268147234344246532907366608791406780164688144462598476386757009424481325833336166880875751537531102626394961604419394658131141295644287935934408621201422337915702197551728573477149862857208764909214102981659189065567659124299157266127395883600651052099804263726166731844942160451243743714172473273357582702826861074320507233009266225514344778261249388638769494566141421400823170206912721999653661439515012143186940304189887591038823360796701512897965013282243154677581240181798297577723797802755513796028187796606609865251819378464733158655009315951601408969361653021892268216994107637918937725102260152336640169845335972541949451801720355341164480851565924898640152817956271811650200092521723735213187393392821985861603578966143635316074015740670420606224460068879297260232922438977686302262400630522241397774199468140936682177303644579532984949470569471393429976010875464297304616932566695727148619535290076654831940837127234928049942686419482994381197026887802005371652145810722037058714010579278444469468184106368555312373741886202338029627121630878987454709051596737711769632272531516289612829941379770975193653393617394630950240707024374348163232513927982244656091537900080079660260737747356523104779420945064365588598008341577829676080174883544882101860589851464778425715701481194814712148575925318069763062046434575777657998641678621297351437766231422812126144549015862621971469313098374540301219578714078463209148203560031016545359927586778999558967814816946857249769591758544026875221107382628408574723029371743506509635697980916711438948774586970012877230236918252218949481068666773028144119150043238803130007132905103009826288463769662874927272860233999846662821055575087242874067227112189757529138419299103752147329505162350880543910280416039019111069861142734545643973838718678783278867498570213187180617309330880162179484357560629642837854503338433770988136889327166823398994410056209722056709271315265149320153266678848189898790010900695013407650596739232792540611436975559638730613113615330335156652472620876808974676067813076885842123398838928687375120872477766659617360887913174133582880052007770274410594853890121100216089662667692836348793820281540446589207344032357741519631455813831262232016182462295777248766172088226172345953553198303233808303064801896233520644804172915255595657455638142389134842853317717114806361307230966193527628143317643615443845802963197647367746907990912708594863701947894197083231567098487670811954203442078028280010845739553902366496463405607548989788414302091374885842543050481068669335709156476133771987811901452040918632670476860353335971415243393117158374657665337970085311754727376208773144910621193694883808113902258555793876541350537472927801040622587413352758352886844927424472124535761531668710145771493812937495027623539377466564786415862621541182627758437348672062002150665895073845290089136990282502211559866454425605567692860518609333847780075944814297055032380564365080298490728019306009854704867702563750943060715012306857514591532845911757208627369820347683851606686029364088286778301905928768489639265172041610518081809297387802964574733276976466037679682209220286177752266424399328011710309348058468030754292986160471207901370492370414750543185036844245110623845075563021349272893610731770828072540518558279987108019823909265099236550119502376440443838917516111356852777134665747837957315057680256167562579991517018343030226804592736263632671628629035123802457614879363234503055482131182546621844645372407870145197745582209667383505740763125081003776303943480340440740984025919203411219163518369310666596209361333458921133969159763802610514003731336279308243848791176271348118735172207432835365287596589158347077698891291704113824496117904279198571281607806825581246724052411494604549304251300848536669517586026985717500435236039076264932662165962804554665009043486625855218541458459890553893369125211238201054879263270648245497681556805106294854746997849231023310201042000911169147577960658890162672627845481530177165342846107866826863490227826011256970462179240196906919103738802793084583202168292941902209773756477267231573201154986429686610143512377946578082017749523417432012325425884725555488217058653757746149904285754631527185911261175128267099148662131968031771140335715502100117424750342063871739468593117769686793391104875008403708386422306614475303508714703944135607837862293395407440122976731400285411818867160672624083533238566012385618275063238356185715898080890623527771054520955074539939902764683051049015346395314343902601325281567675908526242546334242500108426845978635262163618004918207713488138575780823726749921199046786996760422666901711314699559297013412247283548142769818411722545684045632955132802053208856986624852563275143309669259462748731362669185996018666529934537873655932210884456591184456232034759111341878591680206099909875879960697581032925822640016959941938150181727950413074289415023918004915391072655266694635223679836918306215485812145247733884052722395564856466400035493716242756588246483095592863096902770186533380913059642441125649664643567159623241332735973893640541015390676167286877323863996983256255796194633430343837801331564295560437002749150536141410423726883260853511334979574197168798318655064988496375415817644032920286974452803624900587047360345870915390479589771327495720050006944740388875931775653966016735978162679795768677626408369803940917759873310985757791291574477029122747093246792317130548141452607131495567641527865067377640349886341835371061705465181886480356975149043145328114842841074608347386701754698663551861604419448814431127946262439260572003882299064900876567355585929450681977284315968434842888994379060980555239355032624640298968430533463826878580342317482664330764746881695591831676784734048453611347211372045275088218697057425905298500866160528107743119488361165377799282286974889077085535011063495773944746481807428471645437381576841431917689422410021830953439206590748715957810347817563223203386869415087765863335323031888055717788561489136795897012859864825578807878927512800862457376797304200512798833821526804298672414268058321339129236114513294626991227833275127542936213607646104839159548284229781609286219828341569709451842434183601582613584255383297567283452909001891437857965951131706922566345022628048542913145307556165563148934867581836914253211736106610565819279060322338755303956904159688834961097171449690363357443363191591730554693158616631636549505058318370345316993474868935087869488982964620806829852680167925799517503165862662849688567197851414023344510757904989305226690378602019727113586565179845519057059405253782307673091268367927249681428628662729676259439677745291798567867881042024994733653266668443558589145178975419682778953374408927382784145068591693850491456952680254685182115714848919908903280082806569945706057069956363891466826575945347299001060589511044466033442958619603945155395183869349343984425563535361550190706605390835594963281441397217955858448590684544023970610708675506368683258144608206679482458239676190975413119581209414849904054574039035890951123240669381105710513590460399562038040028597985298714952349455302414994697977778596501426147079669409970107134467745430001336110970132021225395373748238477089956057562332002609770849884585896083042376278547113687814203837553077744399254913773920144843945680779877760079994353663724756029298207084206073197154264616888288092147919521432796733220878023654336440278529156255829662223423543624980745342957868203259007130880002861771194955452001396014789836466419057828647931203752696347810106381416842531205329310219795743685944458866804125670219986774241417380009580196738810021850164911428138272965987924980749934702849650799693111233703394020622052550458926091391487262316116982907221853375189286519694997597325241515242485377086812958749031822801399772087330999292722491201191527600275973564373922876554161530087813547832020865571668103295016947188204596853179958416810241764791910280617097087894899982371687210767057957773040485819001926280229544388265278269627389512500069874028185509773452077348811691261925082268283865683947091088308793302174674195638767439779827980092029667853180077322703905531037918721510061066837456468428123638843879262910094987116110605573321328449275728072714753993898568313772621870016837299264765218023422922446953699974144486041770049922612964025930082636991517139941384157581157196476080916173824046759506953368542924304961647523243784963253214874623673219268219796546464128480045228837406331518797911507861170189427001001598159156323433035277224868221132111856952110319404481657680450920633196491879781612023459269677789564229875858938090662684876460920726066709600495206306849430733546636054730837046015072583042152608218433577830463904677568344710552587633635838278903618812500046451020968194633873360305992452259853592266960947751995967632522589839419571766303082446849188839552491405703818923603675591870325239410069190300903474491934773934842315150057678712863728323512683708743461570563345455448565342380518615921787866471937318086262683569717755992954007750112537819717238613027424248521608672190964583702944965155532934918634219084851074713592028879052309169263918086977708875877963258072147591698757421562129072014102727371054267257202217290499468289167427618094737203533544864358835827799492886639764034995885932931333636773536092359757742662572450416513436845156460238524869535272278011391685175253744460492139648643127518833422691263155508538528697632526093716665812397362441881100930387398111568374840524283592739123384486816908168959564467839599685121285539846323209652551284592387718189399759987671907843982265415834919224959115324691100472792192434577065915272316411269724570128100341121027591926790743845837692520597703699894220242967101170142623773367744295979943561884506645653037590603067053487372626404419600769396191095280902210059903215201387095397433892467197703306248184183032340703532324063723900590929136147535500250955049787967408995513564885378932828003603356412196184064408081808866249927618186878193180607864215238276636770919482395762448989745503103858543045728623931044701781452675125968503890377593041314981732630157830961787964852333559877748374453308098235037327291667449928113453537352108857651145778268257899420784991184082686569896798446370945085422188393971329460153938336281010393279955372738527100370994241448726188944716215531754669251298463871714003321097286440974131520365791736182595851999866653682294713355311587474819886629209089522296945111108584109880101057297702747638632618350933141228453250268837660600973060720503034855130365355275177728759899248125945980823134451556302369731914244894443332871936309587610244011695788728794362465561485682206277646304882017860462844541776260766721864682883382341857449775231081327529986117224574671536611247457316464355626836466089652193148799005414425401288686909925647074216885643350437481438249483256638112626352465239219127778573805739389453024979816421223631396926681976525594537336991720926316258912418584695201944106531904088887124881653939604996599371479472339300310208147311708628567413152489633719768878155654693695994061435165331078446582568500321087817174471084590930946424311015247667689630930510088934114987000896353622323932531071641740479435692165715869762755660681200258694444275124854385567019258982469806591149683305197835546906975460098893636135957742209806900848829353399623984062358925185829892286261912103417222337097329921979835155041858604954989700455780758469794645868146667225499381607174705298321750374340728760998507849567784689866107237111300770751335833491756022954813832958841666847689216211458656262142658467272871650269010485018640262141910753641927236706265955469849020648492739891090280465533982201054421543407957028348298124621791308945034861578532747675341033589172830556873611827190701002549524690824582600987519286664878776933530519759891881541670860700821680719030059867000541062339329269203963207586524459749825509160514149712887654398475680324696579642003002975453821987001323895661627916873798973896172527513332477404899913726402213882360040356254565021109305991980438338963918018852406375962506321960275240009661848075716499378842008914438362626431892636710993802895137416486091336971843579128001161638147338207719965290781777996103869457293904052997603851934702553527384338549851807475447122619655190253116633919799461198782984941287660337679884354139537076254021635996101797303143887213030211952180941816127489937973072456654575720930266833462155456423124018823683714590717844446628008390815342944956778292217051232476065136566297784126419867616665338838444960164899303574299179778215819351573300987280737002530356272617535993819801299647638765873179980017587175307576581710050809209841044912850304413666967107159431039745320117246968862224178416247284933266612273394544685244117242056800305392312486588317742435846515606103990112220126164621856322759707786523187600272471575488591255924012817283538365866966982484340575274585374518949617507952968659421999407784018381365108908655871220887339358366599065895134735530064253799625135628747218260671981999702995098790084964903609227840635406593254733878561238950796663078371353338579208836843117278851737508087384207902331977933944466832279762720835570468050105495007761514950435543710489751582596908068076166779361108395093931945713787446572116850536532312420450390512944777634692380348610542326495556598537853715826214894349179462049694749209733016016758251102976286423204396167738527020883035470616872023485076251047667726498568829112267970784366617004097947307975464191546371505074412157262983583602888737319476179486799947141091154052646554353901378493604185949901909120351740041520494083258851218548032533957516310425408713163422092304817781823232293582874779291625413626859465625535942953023179419680754146560450371178511750422963733235015570025525005880843994050119312327410523393458714035528544983986950284555381248653882906491584729321544986694552707900024179782301974427334367212557999237650667016397969515220149809166429121581219590132256609450575457419092388203123177995552530140406913984942116813523100282507318641450484459676469620862057373401675573067592448855624116838450734609561403030460370707693542666391850671995000700444571426518084969229613603305572174485400059608462105977194665207209407630320839267226525318235228985338464888598740733031100754089112246263657676238744048884899205879243482093088856757861734795347776088753982518952368305729691751533068309935335310488969812678035749529828658954435342319489648881329725197740828482686562253923951787006530893912552414236499777853694926523341861515361901993721427490832329876579192968649640410165628407112303244173924289419994950504763754600209119924484126416136009870268346135489703055925137052505927243119728457745582560475698648616738460563590033225850368333921302409539216335153787130103414851999002236858565317347393900494052080920292607407319171128881696476670390684676480889357510282222576681998470896352918751198562204155522971116642474934347299314237181679860657218387515039136411801315023549291306209509590270457082819265992938552859723682437362629882879739031738855780108062233467282295454104234174753617926924941395226858582777315895645699750817043532716067692828272824762543578911135394603387360300092003375345940833332280627282865257624141295641062759533276437570664720869623101761236184381300468470583143437674574883799065760048643628774890902376929650797525119207865340347290738772273585782939771449454331996464795956915578606454649149491146168087709945379520547891056970658570827448872326857820628472316273845797181354438663548866996836694311283927294697069725020207867956230430051645737022958179036157871415715743139414079414847404154399218822678945727645924581395236668740098935154896925633278380878198938696019108277929061938718254762195342339525367756082074058530780636622896645285278226214489751037156679656522013396048804625494964035594082520810520512358564210506420370336105213928397564014413442658805269408231753086522689961696778953585220591291185765074175884317319494852676911321448644873239936209253857094476780289090490661294285696335201408954893081448564107542351328818767194754380717799627974138807307699189421848735273462770514366286772709663091684776385181005115309391789949777985738125768080140701507129104439993928169255643212948813517005122239034397961828238069425377182917474964029977930052324054066756615613563266497893102244405557492419418393035056596409720642943462531550904886245607495316621447809616868447809174837123263652197786217205614939980185916542498005876698580702656960541003026104867330092685912566200658188478059261255913506463682889303543622538880073935796994300286417055368117192754847501575533347073002624927566113029780117626491645508547965511938100806150570076818688171549066016211595060690217720904452982607647533737676913207081893281886837557746370103205907584632810956260264482140247783419318120172581384786855550559287882980567587033976644885611621367330119283245684826477211690676601265372562598758451525825611500211657313448670176189181521377164787544723234461531969802927680099759758275786600876089176494920423127250716673751090145051383885881808114359088230259967325354515154264246691013947270888728652591477680045724311194596413190779982366991307907723840936411936547326815888043044280843552190432638070408189311391341460102654415425850676066940074448871118008742836046118307627169899676625167622178403870567595249636347382334741896246231109669985100814015313775411254203520970070497326504392681740675886168464532384177051398057941168720933156789671454675986311859709517470129558402618746632183545790360853073208263279328918787910067882714352102174900369711861837296522272383292238601375777750497468973448435304985665731471348970672352773983159133202566375729979709118831359150978529912746496545136658250334370378500817114797362280914196455649419819765933072364583310864124725270774317459245342619448121881769176508108000843521736273744757339414781228959934376347714843632885355687997203633669268825850714995025734407232041381434555223393221399599573342190870902547269448115571251419536910619616745675070686196310300573960548027415235830157748790604378282325331237954801675322770248270612135171972111052775618977423429073695599571209736552451132930152181480679367696104337959644929410227925996896052630647117711512879010121108041922001822846178677022586292518955354451689306687062798832253407303443727507482244778184383988504504309975007649598137304959224808886757021955285773019860606606691280045248684305382573700821822581937480649168255961056211254816170259225468563833460217636934664452900506903258839113358242117739013125409865205123195880133213335274657750560639493314997463101788783117049198074622800698572313076190729872241085306199210714640514317647875833363508895800327822461580915879313236331170186957878463458861711567911018226978107744856028475404361498018892134144208323713212304864310849276318756258168546896070588506944409983179349353449686627781626159719800969678927287638270344545159778749715458489710532651483433860643844872500375023604671301430580523541196394789282071300724441768670030851939325342792723381202928117794754142133474194002214357156593173052770746459374922101809365672447084304710538371416791766987407206463293479062517376136803741409485673420931938165705832199179181439246654147124348417549619196084855738124220183847116027966176131521996290917762445226756367544563706457058322177139729432364017088092281039614706592646054159730243786693581605596019493048802915445438750136642517762245247352705372600028457410225495429047117298259663181485657458924500656841835102340309913611367878052302946742198341120048389295826534667988684678595015446149898570578246531622513337557392258010262423592293600356205389416471482707391540118762589553922233283155489864904393090110289170836093477423384627576030989568302231199998278159615452427109409977789601189068349632540504267795829296113822876255295168638267856426109052592939641691627795029874778743844765812058374458646073367360154964006453538521614614032811570436657254572884798589657576403104154032864996570001686591338697971320217361764774660537088461506108650460782465933943684561797101664306898402402836283208359296611981687412055363994713633674320906127812686373703045224181292209188808849697870932238347487899684534634272527227437296178329808402658436577104478905800989658024519678056842832090297085863605286523604289273974775628362901979513990877862437184913570072636624563660705386278154781499628796244957853336917254957267677003116777223751280513992626707996902931055941245911988823217564579086405585579424018541495007108645285671710484559797920895432933129297874606377182735196485754364776299389648534880005584407952330688116071599405841372225704547697364085688201773215978092584330794131104501995511281227421934246695590481719989776760603183475750960679594705560028781156175056398278953495455495684059917919720929836980015187179004398074506788081332330069661552921154136467775739430576277580600660554320875710011037164062735048916512848428425017322353088618152698953686479054166459344328793512128240219467654748029243307375936285272141109266458161344937508917656452122987583486412226808297012973477456953444250680117036558016253796040308385209163320644146455365925076295362079542689685389678854295213244187712482555119817469670459058415701450563675426170482682593761117393873214669305448818648149850642763059734793903815576650116855661511397297914504862323248310501025542945048068318432576556178198310453034961620919598068988661655835346274459572434431368157488204266173505943950569562953699725894058065791862277731037006005135940430869088071968989818633591133822350997545536030594528753799312519011986544798663716599040142156281749321319904866871672089018161409394526376421502592153701049452915042785672398665829270195953383709260343947034138965440489190435720223808668554392162264750121449411818862235570346702213241752773379285430257595520167266349638656691979560842494542069944314310619189267480118495295481772616694361853990668584624586714211729091074876032543464098646275473456993973145838936267534190390532536814275624972302220010320901687151322089553399479643660640327440949967458683370754963343431005332128945566541692551195038547891680355684159291140379817507857973007812727776207934619180438506776812162810320482155310328654736826438049464881611578202029699730812473518469038397085386631726975994844013685484495041410067349059671816313465746344748936786391350354173656866030691434245960636910532396221495542606340403300064013499081732355386490373710211146774729097690767053969940112328090437478244474137510427200900914221775633446743219172069005702789604233421583808817766629759118781665930140316618326482415559085203725345296946134099132094149897826206617323877600598910402771638133183711005208300011500041962820965127514562474951529553055868149164381043499648786396226834364166152951344210362294708329975087865878004492388113209983029500731876666552974705094209291575290234935802869063873181756440485831365499575628026760008520839019830453114006756394452720954265625259104626899205872281121659461238568852328808103697117030176730103425408241320356983974541436598176179216843177275378072633465774580320781170658803791103209356841070346178481100736026702887191122723929532569461429595108581037928658399287884223356023911585649456460347756741796865618127516595685092196195435613069078607333707808466864026287081130837247406930821752908541952607624879019774106225659273978310199319791222844772158839510097079846990700085019788006916141788621030213011386037354916215695171058805528299745005955657523796570712136777492030682242748162936040142957268990074267676913026691716363266232923885199366933475544035389889277305813189600718672226975511047736998801771118799799448366389970573158681008854766791509410253986244431193224706699874080801083974292471000897265415466964517792275513173211499965859317197608414242140669231821363507069689683835271667175162536727719515160595011565249464687612270078942481961074896627442569867693085406602781066990887919915207352617775666998859870090823444065933546883447035437198251770244906863624767767203098353474613959325758403156254132008223982493467842064287620009057762398526059033258589032966544545252971289477336660556426770392778565501800739922136434101903372245311387925913331932289148415596572775361850117429419873293110835051005750622490955194869567485466825911376027450000554601732432247546682748341216548880549575332517265311141148611116558097741644155981834931374525060764280080358286861311596240204641630122323723585824748121182740551295126918051877578660747354795068519000501980101556057101379022832557689121941821335937260491480314823261636809419061335602524532809266345039108681352589853398823293313256507643651424303676227913745395846855298232870536734819740383927503888543177493766910157588522068510546434721121066143559476951557881320468075718508680801987518114409043069886001973577782842977000365139054722262191087481268275376531879006364426854232270254301748376167388664615898680013623082410202631538610712017866427988249488807286426116048122614606757124258339511785857575356192490068755750299738072347116199816792032900277954513969604405898372948286871960471558063330752076360185724049443646550480156511028242020988972047218047251208330245804906038551334408441214916112086458489644471592795839217972227662397840887040781741896449357318305834726198369994997985314930033088203667732851490784844128321701950033764672410851871533666064307873020245005813023311417178372412823889287771958285205654686303714122790702089817673979444177273885597011339572029282480030038800293090079551079477573231578081310360748418049411841418350482303119817018336561761748997273919937188365789954983289506357546158422774237647523563085849374428075050707094050593650662752127203066860761571678367153753281292634492072789027014796803474778012203196136231329411392441406753662080257177509765317741423005226530027146439929771240506713145207564693621574137045105124940551568550608183646569119724111440009437387959971885079040268173390035199535927174839346816079756097911588393423762867034121738869664945887303881556822803138872137618641923383461434780593281388089205383202052133577785250355410098364152272868823923887610309256701307575078988567104681801754724819692643579173474440886036123850963347630197348970962712524721141160924466150270711596724523739547658329370706981995220305619655211363308915940790881264267899879293272062444524716951803127835921313796821090750198180105365838155611276568384632074703899090528200357942076989803730672348127721195192193214011026834856857526264309522040952162857841648677069998041166039069035445403715871975778731761393123245011033010514603543244183754533921005893051008950519653311645109998715733700058135904906894373564195631150507506642423334720672788044084132537244653249897245964542182622428127978193330439431571070318868062260957132785278761128641042574556712006275805104902251620084327701026522898260168752506770738004737846353171700052368312744018890500895731948877104298214440895149550836495005886283624590571838607194700057881535721388569744694190418874241297720570276881765548971320189102996964217148413003112715585217198997493975565153727176130400905868787375191812730138759764248348982902800086168964901771135868167724244770646588100195959577826674480316364350836138479297646139590890358374473915831221635844066439760729884377181743621466290057919691506046630557378409824115818239965760321079903097247257033513222869384712879811424079500943179062967901542974452642184534667302574887425866359696945294310065655866062828938988967276624678509828365913928095604825859212711965460781591270905886927793928304506837438666687276652968114737237804881720239984782245650841536484803421252119264491133602795481124601069801498309167907366568354602632382002014777887282260109567330319764571392435468787346163508895466042338954003403651914496877778999268352026475784838444953495479079534853085655735503500256895172809999507649953920743726505463349681852609740169422824385531849450790031129406774654415186950106306323160753537363499739886532460456104666177502243529742961118283349806622659354063397353887014546936808172575726268142188537115698936458311157570967776772686158609306345622789785553641584921182523314132090906897968604914399384565645949045947775838401515705516796084879751954870860216907616454504000027484845065152512796521936767605158126524550138326306584942974212115144220451049914903997861594299635946039477891148350125701164477047923118805144909021272360777220034067301574564566824099834937298904318007091961821200975652662330874204776648378867912444340031832142737247473000099487234571591647679383900884189459931130304861727973605209622309504773905610074436346839050630545667302828297405414465768286612950150881019068330942398394213984640601368784749493229530949014496142692649413362404146357729318870582050710157731419267885956714131124659338721855870804354206701373014150673278937346743760902083165374051315661807139425901300719868955221121680515914183013723834591020560577330135932999265384902350970989297837419788215702148418554858757946523858838291520301996321725440503168176928323506251056510055349853683692792263000382290996841552464730693788937041365401637477050680544725915166159179253791350324650225157095498916820275078466041235970739300049970851256910790405108133623611505962320209489800321454543960233698341712169049633460898736521207331313062039357079016355051480996835777045294239483266962387521274226177669483028847559379144891670304380139535142299768466080577506778363166734320772118525208157461528590308580515664712360929746430514673422168869316995022660351312306846940675735576132775144010761204621381734590841370353019069373359791847413739464784443210364697536553516702790262360766495914888414700577232518053925655496640493431953775773895788731616400550787212835061267625605860205364575636975780175560013618039114989421042951913757859405520187035726992091131582464940225317375988495999432186875715252346102633181543260071016172811406402653389563795828494175616796326791571416008986211144681587019265333443422912279115375713811072012888563106429642903454522653901914842107276815076090685264861408617967680166915742777302505801226910413160960658982235794429380223318673008231684531710355334843863424289420791643765350124371122760615381052775582164594550789692141389520129123833234236842835056487363835154445356566843406710139125260085101493288101636243589626199966553133488378919054301650312335449030493721126227037891908478458001317541878483766157256817983084973602348369853001441754463233345868110875659257429210862337756955892208235264847521183848397799708316840926192974450739745682924204767387151684680394236414261705831692937976064035212280208857179566764644224730116782234991551531012010404249969399084507821511962490927866262631032188528149456669373202416464310135257633510669811560265011497133383637184825785732657457651590422787434243993423050295880222168093555882142707391042338887181339371896435037362451705613454839155335452729824686115853991787173846349240505313957668699390973057420475453439030127363773206046169691244441739741390769433844113150793913364284162281196435895778966834912277671961563729212654975961935670667829385288335283191988868121838323785858415766196121896734732496548196055140617265629681499589510207618496413130167261926971449845406786187055416466370729117300874720348792960590479975666750295521223120009038895366046330233889757887181957528365495225389318667224043737696927690700183829453122998894461827226185619145116089077308612174016823704756573061505958403549087815815613820237253805963460331176128703784962050762955984902521962828932252831657193997778316978736946680465124798538812937458409911191516492308291388821532812159225115596014500500958785511650988250883552194772054368109992924682491997017487595345740885078598036381042438029694054956852207842586451781546914293614251204329575431750257121906477018144017175626082936637241552079825516290395735165148704020561410090936448182017406881198846639222520364981736604659909973832849508167460696560887427899149764933261572179520106251110760645991284036124141827837906962440188216265265001643899619192350107792861522647134922554224966879410085393932149768191190688396911311903847050272515817841619312635005411392477624252927870178693527533740812960238917856671729696235156603099070518479712618337742559554146163817799322351208562181784909164622323328796029248175362129032370055967905132040618763876818620904814930623822824585160495353192359325730581044063935080289046446228407866745441608453103403453847894846446930010737360434982945520655098730419370281506117565984061033680235425734468008006372212773878069244581515788628872224609341739770017068878033773632503606163918016889830343136389558170013001278535673752889276556263814599953239388962018599677009259974615944800855209462185102072841545097109854649931885874903176036472106754744951477120244646250380400851160845432818144842172063670467080603630293240705055220895731460888621141895423036831494062271897027871205528564944848533485730963180000558617672231178128564351934028357932147576416871566993300663042589157899387289172291602721769323724702694714911093850381154485928597700856019699064776813079217342130731158447277129760712168736689812940536824046231234338934692559080968058624019041307952646374943503546089221570003097844736626224887976760014900220812409605670354595346512664927265342294410107956175475043218676895578859727984760454301549569734332776212335698015941924773599666651169249181125208093885289041536129980307035532685570496980702666596802608887613823001748996632939173053908313719582660945621245197401723389418134034621709918195049959222026658890981422962159651414696730628931895200042409228844695949219923555497248930799515658659242599699860004745090787918271438785773008452506079615121596051296022051358779133720070177380925085653110803460657333421447758940591822617367302173740784557701926972677337214429379403715790162059635816084898719343171392461828967939636623501497727195132936042113302442783158124071038131057159724117847952785368173637090238543649759433168583782312659812973652695810194221806887102827949261779169422466384814944270697812128466612215349233865556978896691821896490754017727714796957489718400992884786629815439825575941284819684399757600305618841026044084448154389284945337950110083104492494009574395422293777535419836208069891767983754415073066236277591382478433929995551763505202466207271488117599377127181857417048142646207582744241091877631366617382529119056725111855565894557032772949262760054987723896381387211139688784604979328277719321024451657594459849004092622353852500668539701996432521388907882177034636951075806700901167124027091388566324789404632906322237799860701882341277547463640790690180248519860787905332967543592563500801010295932256441265790950464069010517893326210255972150625804083302640540412426128730767222093474630843696802131214880025595794600933171000091838279866683686068759096904479320333247283133117611924985836498948227340721901849333460683744928137746604508493049943343325333412562807874223215517566862593743551063824780775374750870591473759757783157847817318308175914137903475586359509341208002809853089787933457917122059898628601959491180186935263856315417202388192548521977821692902834983917191481061741188912271532671732816260265530974359252571344760789548175807821416210669329237643860826629064042212964567756024695271686781018786749652312529010211471181676208178290312890601875578069928095318984709823668953936008115994543239273119924151565865109385649665850618754098947395462459333145055218262434041733160737793368222095268860196269655222498528687170649456472163868580338489043840612803773902990612662607958007865415988727732180296916646306952252773089880946659664888420145159070076432162773532821903519187284164603389278670361381642181936115024695654743921612209005339552393691120739725094389346574102912539369515034098495634555210386322582877716322074308956639726142740386446472718699709030777176641805114220602255344415636721794969251495134695105895879045831660176208402394056521760073858163305753284695090600963902064546423690863998126748795276079689279426240681238396671727400350326402506934360784392736040313769257929290496064706174560254199474929514216795886344594655703795930604610470317121004674149363275157019807411610765368743586507676068518313530004418012464891742569555780705383406455163001554009990220908237759405039207192495552317572840482612742239299737971322689615582729836416024651616282362909903926900579430411759735424511023039490363946516930764694410042633076960737027798859943984327143031504286444039453397231571457161727122610316599796979346158253911610763002101704700488109619053416199801159144925213595004941293198149480028795389842279164736765096282949477518298779186839154685514218196122489507971592475852302720644628407934094661296910594922676475831174104556229083232285101281075188504746908696507457528531038266237316786745437888378997963993693016315964812966799115867594884902706775663335975515722509093001585267551630094888599374486318103302354771048224392860156253406288598891799524037452813182001959394220494580170902088959422429603896783487789349159075949245323852616506008268929583158121970384695062245517193920928007282540803445614182852608306127841418854760323883577328473475181746094169340496168322902472841820921594679993283022146296132518981024004848941279532555338940530889337973618917621567488661549220363908675565002368123840347582400107118834134425914061064641391366885735490536432677925799054961544192507927872565143380386364055847148983306793848398808772765575134784462541622067982050622932314896930241263372104915168359239071512962283927273540351452161535725975389456377137376863497566881017125265762217659472153612961587166379284668805837758620457521293044136619854294467679498495588507502831839387906701397946503423123844485769549843848299268219090051051269800894267157023143446003098565200614692147337599997763269496163499994691133349380406554942927772669567288525084423737756971010147738354226198846302846239662532005064622449296698322152790439103090524427921334338755543147374648634824968798335167711246298174589317989729752296928261982891792751882542423577647167496611743135780103894381739852494646142860922562214359820982717272165241495840815784998082126330382192771496068243760566247984341702512173268948097229796762831712757063531500716481066979552372335047202224148381478117579003531276457632499209539281906814162020794842394052614321347248220888691497137760045770917587663171555738532431626049324982212529075025104023413529176272865826525949980686892626322494411281788152603490074281997872669142750749031094400708662480354847459761302222005930578849479487811370404243195278660455090330835558919645724133520915674668244532019330922392058481661518437637215137536617005022441331478863767874431094815528515213744993544122779595295561252912886918402663519847577868518077318827542565654330264132881273550477485881679047777930500839973844192556558994133153170323543516379634317235485546432902970128366225984494154345812433179410445191895134333869400308400972374225949460939137524782284399518098718990792695188853746625303192491165672954481221174908223297119200301564608558791188002268039355318902441472527607508153809646442778808773583733170299007584144914069767347050655449710012619017092780648265713603971236000848727422048732047281365347730078315555603170767891506878170356208184479101915909593259964225422507989936092047293551125480559454325996577984163566933360871112279441987961267881846288649800746269839829262137462904553600289336959144546885135930882545929513652565759327490307407963929870258089128989874233839282490155270961759011154672411002982018914689264288125528877566796610679643503145379732066386949874091023073556721647554868066292575359412148117666224224914544203827355007841953208910713966158747396087884536678352484741051506341891998796741157488810362853401916612700209989791671425234693415366532439568639838260026697103382725871535482830272788901542650357360494991686664573966679882896939061140982876433957261851060348869781327141392010667816844733165916807224077466485820458441500168064866988246792404482243757341800910676446828883051453919513041077804323614045317965987741184103462944421760399113833195348667746788903031029046810890422418948361519155131248077637212918206282497411529076348562527308614720842651378896501810293806981149150734456261562571060371356258003431670935993092896065350493710291598990188975379907815428722656508063206098165081017035641475826030141442772513049590099165480468009063320800138853142983454000219267251969520528545732535934319003169617675260074766673008839705635527134590924514256862576681802891044296388969633453984873494021443211102693622895779883809748004598115825000325191897645281115315187808091191444756729979435493598216566628401941038929997511652721127819916385465176386536052335776617023445806285435664665349361628054345442021407528078148178178197670516044828125078167318324968402331881057437183078095104559607031238346115586675246694991298575569114222417133507497218386513178906661829120377719080320275294709712917990045019232626074782210910476374649541050225365076086330973695315022976406670825612288738565430362565950749269687034223841342575986895756727398996797549919836267796261342037583301881896250135524622657242215097882795850865797689721637960126756389182933384541187768266680219865153583753588759934081418401534314087967040713443591894336563322016488262936431499307148254567481365453409749386020210993289711343598973338076784025421327002455907561917623589190916450499139309081505997945126836858145059340411887015199540473635558281291919263287500172207897687877813386202922586761932115451938467403722315404231339867508286791070345121469846825472780124735691410096233508899942891866427200890935541982886482769517915889776626349026369445919067285052946676991262313484817766109979277479573429597928453475119421545686100634917729479489458036225060777366610666849504611263660819706344919376884952114048216120566837988275278704734483483937743456454646011591195235394810014108778909540840716392518494262873635590585441355647829118286042890578029361323156969148056716238734021978857119603259887186594980472585397089588630362928917184477987668945011399798444852281971633250638697015321583083780885172448427879840089865304597994726989698509618967914364603829969350291215929120744546498104538682249012429735827943283192868474154585894062987066728632787026972273426661484805420505983285635875611431129735890710338631401959037969963310653374185841601589394349182653304459360081503369308219190104997232594620764869769625251286743180770229786666075058825251064109974910065109009179744278292784555142020615911012590779497265562834636914652924439702341555288682889973069881291905924925762303475247253119198958765302989114979789928580183210621284196591924590314762590800289779253268200213796481169261644384735080381218445800007584518424605843936690197269915926903571039427969596023183399161545504313169052208241351781028953156624335999510369656512420782975630934037993065635302884912858995767548864015593801112682278367316126767392639664049776906181115887234287796626538657718125648741639292409646673718907250789432732669556496762138381700684874809128193972811391959676077324443316575307435759797805805849569780946652359578082520474885810249289475350483537197103387776042077531412727013137678261118911837846950399037413969649458664635576400388121767521015058741184298276418276048935826277912557922360765207822595878821666607385887159679804653429656964258125158639462809797429539400523607511973913725582042690192121888305613630662961707986573754317822125768163282950722087262238325222675878775896306081782163157199937935699963277234024832292662459260986263940224865329476994349367454338042776079321979347669366497990925102568646736724867822894684441858039242610530888221386819682548503521598472765125236094692932492032595357444745897189499482076576940629850680808840227085689318957295417756078319012703723238749639887733880429204890819965264145355744389144182634734271201951437591449774917367664147225889051599575000741661175230666039410678590567529762165568594190020888499566750410456875963759881812552659700859666262658622439642789298859078884337000130890756152700325448317044666303426733666065378781131237798694274307490054591455668381674077514510611494407217414582743617967708417836805932119194105569651425934200907209980436799756172221643185643967311278755472979940250932866527034946805802966716894506433708882077458907007257023793184592051317855178048771585682913419051981080451130869673969812484669172524106083861756164395175929631645949629771586243368914329744714585152264747619275272977089948184828432279982632786865034469084352366305780524992688140100723720470494245412235804227977283135445629457341988087609694542578275272872107298976365614705565058899402996448743295610775122231013667929007548477644942385972829807196007838281796462034550425155058422817882726465595080864354568668392388704400673971815623646086328281442828843482164557059347866660578895802692165825064641715101708913322058545114987345970959901867611559987587803281899588890158137713452401608229644783142223909406473223313191753193000521936133729395076499108632034709950078629667332013248650650231535269222345061627412691743915808460378082219147887998562020299790363361233571719861037167510846094575430150533619441882068987982087389682073421817058354717710011725740397905649882359867014456516703648909457862861067619711687137655811659975087820294591783256916765544142296857952644901146942105620195546619255099557359980921043491400793803661801770390140503396309016959949233810687023274557517461472067950856241109962547062914313292405224310052907320622454500186670471549976980193933253845818690562547221117631089731050655449713467314273815728852932671296786979199378592186509090633525082409631457091759775565947343177273379044827385091227768928541711365146186724480411721744118215535735044099031567453622898882384771722482320854123474826562232510194506717168976021020972025415061338937794095391421660315499166407608534528443023910866017711916927233218435961827995223246206654440409115342994566839353711673241813457018364933017685065620637673552700246747147248510538113182756892888910898149232808733240655598342402121988444967712566315917685855476888675891301977554648592020640732065265234111184675116329114098842761386337562579913946752272908375313962094762267096503865785311346451637688567716751071913993197684073881536192607486730983920040849518823138772260067818953959740634354918192172983614932330412461605898934669454855717739475848592716414049675697174922474192607234315202150400928538633480039312672501034006009446829851305763349383518007357848287875477070840695695498055612855388992775246522382451950607996365780823975632575264993050616552693407172274286767331186021677394154424348048882760823907507861573549121392972002513827584360368341732875132897370011824936306098417071275570385690687872623989943953559966316018931688304425163089241026741620071159144053010463515120228735154648880482860428932689616538300062812852141143095396908243939289088282607948293702336682725999418060163878882539793972408484731528059545446206175555981693100357797016698421286174925308685781168956621375247580979075188682614572037026976183437110026206085291236098162734638760187410575958398158221225632869237067608194238938855010053778073932986715106631124079533142653624108437130255178880702428894916633945613339129732240093092465553063175894410614457928461298894336768757727040425604504204674378473929463832005135149399570742116362543853326556124918165728434925858008483439578508350874274758947657330387142468611882145094879186927909418661741329042027749855722181931942657227757600039944415548675179409841953499780682659464425436827149954791616668142220687583460802158715382364257510132858726719281357112727947167525180316622641628345142862673568376958747810728021221893711881616863055780331190510332244269685135387948860907081517814545817909024995471640731429731818860903309285892665751059123706023272998107150603692830854335277336825714991944797802421626252301737256334808355795252314212473184414143306574909755313251682966356036383981676709531151758307419197118762803323943593453257928902666906767449232951299628577994920432829012366338345656034850240210135146047695379303388931826991698115674625406657931292752273328096872117760801838788087682757826136144097721147273802165484091955757423674344962464472018344064629401112694172745467160532009135708296026123827932066217214134963551333824309914317817599072576675422625818298278437003777027892062191197668005611180375918489671169411614586707953653886734584129476328554962199040776310557795591775755588575339420303823225642163406345743251227000888003644723216501595372620296992638030959241196279548648616662588483264353652618638952864179422684355667727143047711777349128970867006005530004078242837940707261572957092967221647789789980190240576688527770463523285633576886829730096580150114963410344526706493997915019925607158844826579676083564844848020304054762472823314709685128587525756349347834422452574394812590385596501442863495199313532375646976210896320632132898112499903365683651949193493317068009124559654518473482588184282406666652502365596815231225644880223376464994843366858842397727355339142950294208676031997470455259456044362839834472846275403476917678526869558977160295549262580896497319056133454290107261753732829590114857404664515694576693626943481000876494803677310797531470544421420941426720054199594034171706280313455442972226252244884890894093582278329006369181996057042283745742796164754690166970393293923945201654837643250856962527647640753793269225745801215438554859542593275803505162556732590381509908634118560792645890485189859256292017461619005394648916573348646322104393032955823107016481651638066612047196987267419302524758549391977956129897110371896698066915586781000776962209457979926873653365370102835772173364029725600738238832029572190121442748465466449905098445654962519358907767642455886866551851308973228165221596931570054167150401306213537419235331883300287856456759450707992244932842285130852391075073424633389007294565855580731218413530278447270475792253610085330378594422439040366857376205942926981467841884017891583132870918922642456470391341901846475387157802915092428561752220439468160277894139323971042441168402574873484339439652545264798261464689376950206974851486272965402579894686187285080688980410904153228530952580895480936806527991920873691213682848223384322409276040929024370885006236631461550817333819338694175031976761968138706525315209893401167906456565049747357085470523835638308832817256174803596490027580057070398010637874760336092564592376490963014842881865692017044837690330061197893077573677605557918274225095507427627967339268039119411281777876833580123619131398961192652435750822866769513676691260523533622667949151238280117743469290697911412244848276972523938390746311231827507525256989741111464725195376628196029472748181821687175125072805605087963404119823226889801499767899170100002786990359526188900664870338663591262335655975221276175807093255297714232242155028775501567498630228334525484821042641811142282578144146406850344956966932028578697437593921135292082871781974960823238599267337676214427763497988669105280019382715763297800315870938140896828363376848094026744287313984189030790535644115559573020014909578179919564664804078793144802623778766970639506288414396580710453280516517738444966812951477629296086427047101640456998576756139301126299910352340097258866049218388151570753308702592104347595292346969013791867504857002111531654399332439736003970225862255231914103275574455596545463796156135631248020981735199303334772191750543212532272860289819981912407382698216752180493219605461731903759042140263226851146615453641859882420861238230946335681891756536475144874743749054380356761861352944818591712660799453665202674864609745755003353899304565918434410105486760292322239097751537304329789087498092170394880435786095837226578018571151943217637860877943902766411296633412408086010355475095780852130256333507438956554403922282032836972828627549861948803021940056229942534980831379076038697557614019947528407547274772657789621863187283690730522911510408382935017100453713292411773457740368874122234905286014729229883278422254251391336172000759115326635899877753107306591430908488845902949688276819373785678839382228557947208553765598632535263194137577377896942349346598199866323293230984887319151863443044106018497363529619362985467140064095093801546929484863498715159253928096921298616121597925446817346375880687183443794072954142154343369759797692561031346050515094092016204602658279381079401360669381578398496976424276880373693795694078504067717032507326612411515527900057724103257795074997070256130195216385007230758284939724838279327323291278631790459750301590076906709462859923377805163651453778486412452874388470104240172167572912428509862944367379463444566312747913785988027439809490383541851294011158779224428780106603211936723118094887464147809165423623870639204474268553139977599210309955050439934447812427604386820896691904498758701225461121225886279898801243164240910991151751312236778748397998148448864978795865443229827570425719952158798831389391385064631155058375414165379868653030197762367452101970968189131430458327548282679847599489100829575469586178872450690230149160682471203512022788904235826480631424598857671920436058849841142420555566549998523516212965941545104849499384801612018788897679711006688960560612271301840965825773657721849435644251340360276479279844056007013041776680961988701724195657070521622432351746517516254633443074507384282700571927787193612390839086562177913772730841220855951515939806391849955363873787401105864319545334368446535062500939946932820500004049553487673903958149469591724916578076311352237651273001782726845304587034426402346717981544359565850677386117070707230932332422641288060965910777962979083554054622821069402608337889701011415603647560605128713658710008418423154831476931796188315699524833285028030930954946184972995179608163593468730566117818327016075426199611841720632700273589468080309376174294020725413117603380536709503076499026146585605440211392864800913675603923131156968768810594032183131528377153187880301359061568130455757841872805333985077079259059120742661874970068545973931508981721616049754981152294475470022829214056367446193425116642555129656448899807234202365282936749342354437986289741659898902651071831415751820881167610524283760191735360170230173976975373316598645322326593643774359452466004847474248728412121807307401063868097397984904418166899918778912408407222625262515947481790656807779343816117696902356244823152271478295872461504655972189650656830755333849287486907948812554106349671890367244055117209564281923509234995271831676483712479968059147259911202205158808928319122881396322328706430315593922725275079945544935381406491701495548732464855614104662210005032987076473583161012437140451439455629834873196947799045603479526617074688037180662403590396334198919708493749717800106920703538452846265030728749818372973713476170867647664060819094235773584313835925783009080161649083994703724695365569423180912255588080535458291423843128636126243900373830615168451836999961582898512209782250614464349296038612710717498209268253820565350548536179491743122581963832858249349986036026226481449876517932763242268900340922898237084775452082905911680788099646893496358671975083484511670224086237539021363466123827590195372965788352858423070900546880645277580898210915330149415515873839588465836803798757244288891297121849259924234831585041773056018495828662510204884241270910808307786811013129884199872136693688920847246671121995820892963561694837567502404450158702528810321006612716846490796300135004283129191730025432093519879163771404486959036124525511208570656507229012541861688973665851830083669569195777762447177477066818986900038465400236556314254321928702302238570911364095019692339639492759325271238864641865815052651244607853099316158956562005600983380754486838558917473636332850574019529279532844322626153036315870503455532711450550726967726523446927324524475135176991642554318926433663011007669188151151200791827672214958922850308509510847015979862263842324034075161370816440898381464815931318368864823069440581606578281682633234214288022902421825964734552844904831177501573501940723403469954265077704556685597772329075690473296353404936292497018780601358830404743940002941831442944907596523329801599986192757652267421702829350807321838457789722719970169640587640895194543666197930834834220261391680477721228912469807959160956165201670823518156435001966571883587152289292483257106565565285099568893902943337856063737140277770751410829264178512108807668638120053402248760346774969076698355564100359977757393074910601142372634100603113388869386421024316763719530205834044766975705796859113723078024791792662571300750915932185782188077494794768371399692415052630064885755727797204770816650397626451451051512882022666713656812935234559306613936171032883510191663337327550914722624938022136100903310586851381895424787580469433627704237543818715652072342013686623541485264936316965358795281501554218292585757188722663513173598017678180099338729252187769461962091742088192814361784898705618584248239102267876140383301341721256901655902351328084018210846203269532216244675079076268667497116201231814378051749335476995802986727409042311039397796668005176699743286208309663840244125746459023847955797409839945699710902323948506187981284171646783074612414859874414153472681200566581916558345989167113061330501574661541786222749056816502968813627918683013816208513581861853393330235711674313132723486412690756247591437243327463921537559812391682258904827191163452494751747594481055823422013427561251159391513405129139368010511968922733033441487063528201717064790774391378140278481647870639573964513009321782343298231061082535351068366123666822838600640510091354719753347802334249737451333498040340324905260167193482054281593573495355949186256433561974894964047073124129230891961426606778163998165737101563477694993976311660104262505829046096481233596802063593486994005093772630231680947168522253494872230005500001404328245275805501446915629187088809919713639004721577219129810903140222592227011772205514265875863237071903984434283116553155691842476992675571889419680036986543002344896125295643805747117095159921390126306812409802458070619110965722838159439803587694972638386685856083438242437186678452947898240001229861691323263413665360055128315538543003335216443146335971888795431083763900425814013623764325522098123496201972745487765394786508487687259853878881846311585180169267371589675369527573533429280700922458680629199742087421671110608267916751460900286644599805208748000441298849076829697370542480669448310516608356873946996048331922416404778746412596823733353777765100421937424494701160376643870207510842148843083654881282807651710644112172309871260154966463198363199247013166817797295812819678322983084308404191803105002249858278305366015030610580865846062219271473041583985218792752488127836428426720633918027152494213716818231411654220195836785906019288147485221407389843163873084940258068985739761623230995357392864278639361836213357525276192761809030554084322536672132686713652730952531839584566444868356354264696467904114703472777971253974407176299970705176098893248666769306564964369192183013986557742279414182916680207129201838906760588442391979184595580643622355605017370311052249820001335792971350256834128029019893019915972093365532450837821543532992974705320969822348299938474139427067549772728218686888234401348150275970886817430340926248643093419405716829929483844296736135392837794441654560743536564289613811108466356860973445621673140417810787214353312911908091050672557749188107247498653276631599306068194386353995147197179897736025038427133509834016897653957063480216825366349667689604917866081343220812810484405263118217044266475374390565617936306593493811372708671157894016202299245158305914996246203744483797773933190438154535176452203103475991895411129079040150266480774227279226722312090381747494381115920120228800811354770149404462056626768714444336840872538024566219758533886529903258100311726632928500337277225501838191894926829983275152895547788888906483390382599837859643059729870753742698524030867953400976502045824995655266126195624730725795393946129938304911721989946563347351421185193372811734491462993163108982722974876696758798735172047014907934011223362887100357523478140638976970609894107426029152908508287127567760259047277721844351235243344670907288204661158647853290803954176906369128822413979852927172594182443960129159099890720148945485178460246927088599193190152440569031881098994147190637402257138877614085194385231860155625162578488256436169247645687506697116279702692921159130224435783989553197279764432587777400121624458327217130167186735475426137731884321145523049432191979523176298172383412874999354990472641502572308800816873985185140325741486303287505093893590478356213164506128251935607460572978984181119394011017125654912983073163784684962385877755275895231905729751302532652040633080743117541747956072507145059698521291120295738554013525591033609238487667543987113938890102385623608183045369685077004647391898027253592493695147929654176709861135999831560231062695199797990035005091367254507612659947324405889449505128522110647350173434713986188258486981564929406661750270791232122757868547862868088813382204304440479353039704908009913653629991092468890573981825011424224843063956275499757212231284584802070978580486780909661147693361283931793765565786502432842443532574263742536706110464811014106287341680571036172348085424753491997010856370109018636141303017684858075619041931522099285686839550202443554618000807709997425720546614989714880626519962873510277249142004307331963119059045983137740823674418186244403564603228353466494830641841697409567207067184896603302461691413997854933027382213443268959267506308643008035271408732926089597810468027012405326011204012894349629146139611756762802076577866157003423538869373878941577563443146377750870693985461996383959015293591171688646487897090113074568502083604118964313638753395540868354189647929895284324648610763165343844376124852279613509194787635193610059695938044179107156189176912202475327808775835228060023003504872897316563553136699138623445653081140916097433480018113769445644496878689126400229223556754359976646216596599652640273982466188661046716751843204282319510689149362988259230740782464820938198055566237214029103079193206624951931484185055232771318719548534658249714587320730701966375125032461503043507897117573999802468924385356695539895591808499884803717826465480525608166320359116214246735195598563817974234604410772500010944331203430040911273866583229426650957799993206408283317545710970008540145811549554954940204650911556546838787311565837691835750257322670196820600565218658665226214742718317694576104492655930250968718871619574436999362836184920542487733634468660278571139229441104804302392158974065120046233480432639536323476962124945253414031165159736670875185185829544091660636544155251456822869361932251321129299805594959445580599862455028028952016013187308606709563769991037923582856714107158136014897970485531513746071945566835862294369936026607675962226654670982173792873456990247484877664979657918964603373295255300645671582189216340022314903754630042548923676936168836992792437378175163388891180673261840392763079078598353816010506899706006414783296733697273379112153723571737382845099164360765415261968019082816117678040142882915278308473054692146516172832366320427749252742058257295615547133633257280717068533317061973788264995983173203014815586442215885090873083369229145516416595789065922459352081926590716032505807982271428787377569479308169560261551404374571199728882543796388238527594092138186108581899749947497396806534935789483394670842971156474452522144665402095562804196975639553860691113658241980833983477325351777587166345978898253053641745294030940099870326972939702974304066469568988521283740593773826287221097434731895397087745772974013428610459145075118696160133698270103084544690465555573510040005738780333085298843533819380086726765080919951394484589877090421264766359419157817587552741338713786050875054344075255219366203836817991228410824398858466602923361593747938291143704102163004082573326988826723048900749381116164621030986894762184104754075078561368826250242462037963790957888230403921087401330146385435282256295461506762034040671916448301821827250411729806895872241652337896469415342954611087730400701649953108320356871070436678310325245404109371936083379714865478973197265190860104219432450840242419372744943542720791487055563237006458578875505201759648756472278717307327292892725718662419241767763055969912327688016243445120480677957458226339965877938522071415341954690049692991139170349723741782190556879644765343011444815498846532913064503923020398230550999659760665977912300196166796507210221943441318812331269672425152354584667052772564651971826674238821298090935778774189840491892585763599598210173402046250713340408048291132704550972868406859576599770905627500737096665988047448219657325193011176634342009229549270447491343510860076526298416827251384432432959085499234801717661335240935308408418155095928467785954977968068943691057355231389135173568332420177197283055840092799690144682066876055043446260470510102986150890054047649815941179796485168452890410397397573755312468924075293279457308212198794762936886484894360542253013447693637651740701021782079589198705758613991369148608498872967186541373173962657132990249793837273980119386637482616166657115175886780925619175651999938692504091641511093161741221398311810654755212649637001817519014711911915359183807620881777858148601055608540483452515415305617670966079599976374022348766771131783515650409207873677379371416809900848644382277997517563153541465481171644597689184976615480102580614974861321039780114869036791595820434705346079531353553286173521259779545272213292110262938107652367824549696730750708084716626246797547378213163134687384641533673943732749002662139834962904923336157197604244223412645214875951223764016972190678014721636930266357581962129240468494579143872638585562639023463921639323014971671169409880054548049164959719910478575998048161428001637091754939869761257256359776387804069150088169915880123549484599169921780623553710621519432562802330891843490340740070737845842486425283823972573424955847262447832833757315539864436511407018501706626115447004540464734536300182538242964627689602103319476784043108801250096050344265741781187736573134493753955434720846569631437031210157446113562211150664391074712961120482133751797266273024911115520747783830669478294392074535362426421986420363993593327038708604860375500660928433035851999223640557486024737760753959949568064251636331217879205946913169090883718944795992053409300238573062661903880060553949875178143420708546359617658196336297714950628559763025986834390329905671741523247417112535283153951424861220933584785597460754484159908643398047980681317622084527326762076285938127004636720156913351054048549184714298936660199190701499698366552693964133151478494688617915673190932738448999139501622952213516625859323332546779523817653276776137406597048540168601140444541216964403840845123101592930255287393962773180747194929433245465241138292468358423120909786732250927574041637755280265205655009036556643673118773770698086993064332738277732996120302510136443799902022580091723479754428219130913991906551550968033261452572287268125178455433252772891992902826359830233076471610390784496075953491943198972832248405678760989594769367913057409148857155040172288101723442029602476538442890492932403168717489429535157210419460859639479392773080105120265994470274352858771999084686488686558780256784809852524250941919385918124020701079641718200438349199976685439735222020057706862583282067344148524837521487424814919624621787770549271480633588927148275042016333336520868633462478147583699887433660530470647273742731518313792057120648341608495060029297487533108983277161256500475378247731628844395800582577099201093718184698664811072586803038384952238684717546096017466493897448142008532395559575091209119212194243062784003154369053419527926987822673098680311786223984405060032813097752717732135676030277124170144145624763591701600932033161530045806064103464557340051793496138808670455400326491248294852282226787307811695206888003855838130439285329880285894905350296782358936300338805647322096441757914006503550068180221033956751933846539028945326104476033438236513637959067625499738454695709335398389160595622107839164076773807443350305586688425124070240821747387025624510663649554044054138318998645231411835733238297108418714003212440654364782971611203311434479074263790746769286429498992602315633239821990005583803726097172938675750400170851988415158509384214031854979399228033930451373571896689627386871319232398587600177845514215898863864832271515759735524108377490830765038298298347581030230358905161439156022250537245007627579452457192708360311778218889028605663952613994157795680651269888032270620942045810096329955335263694511414549316761375907003396936077729852379766988970089585141396176809533448467126891286388315006045458685364712772745211658275553210150217154523567916049387437799698043323066059899578326908734816388915643890662570419326391678202999266807118989237389971523610562263552253623985572450575550444041625156843048052898305909796405509725967022232634304311906034833976462378605932792033492443656814899414975499782368283608076941667509895738624142756708195499913466389736230743067650430162875535143931970185594296668524882428639594900753704817147004766399752625620714483658721364937738238389457370642157503182666943446332957838071477749824065079380133480357756778435561141662846507299636614674436468192276966844534806485424412723805891731955489703037798574920367819282558556368373925577199062375844009544550534728825947424112909178432872274475596282034208547177742832596816543812784676763875717104165166475276539207188239670143052353831300327495675948235181767988217332019645517052402615596947818584566618345484195385982024189160401725066133179830936969768716720404709993645746705606012873386446908504116635355006239570960572906262050495619432719638443883250490524809048137205950722104276259969567845624227503938739912422280042968993153664561147509623354563276317598250541666999646961661462777184576324040514774055165763463676279409909140820683418939008465798911441430922935703240833680470517185825055037467742057806819703367524620688077269338385756249273779117282324786172850733872306179455117379679301679639103196671186102417944161749397914412612232672657235252585963827666996615699249234836014679737334324086324497482406349696051339906351719865572640810386962141892925614538810990114429680723174980307682883469075260403466462933552657964265591867915394446555166753498506728603079626769695010100700285753578921665839289153534269937104298142020960018304271858609962105420765896870499780414532989120908378059338090584499578436613731894866396116423537556188267090556400931953269052469759734242469537440428162239244596470246753546689387785993814968686397026325132614827010642557174440999535303640537193720954858635262051087808427020769975386740023819810665705669823453672573410995906324398799177364748555294283242177549449327399474725733612366709518358880572673463173998543778813844205430351873600557006091850376363742137979838405094811271023045226299268102739171529554533668788181622797996994679850164363004498706767611149369885091492998784996580955849741014987536143089326689198054253230483991571331873688137545723834789418385296901442449769407231413567718154594519240905297382664132901565217474779363104252460146837172337777097720111553682882138178373927848312021413957936163947498685592250452016572472346525029098745331960093057995608141170680099907161434586374969613755161833123884778771841664669088876707701898067766227006869058249768875816710974416366098532580690349258193589570171850859384230333373613883810647879708447933541956588756326501833559847263077252076982370584932895236754150792538032993882038236986241107038235938498570998159381588748244349177101179673725315244668571320025215633672932750429438016198831070423944740086318651181905169035185814065405186605769679726297435628079049295516246220750528435512706425058782759800219563552453389551881663446600043116840032614325371609161984249877217352748149883795532532061149782125025795393536294860897158957114895779790710397442320843091052034742340143546418790778618345501618390437241688650935971724955020231483894699554893061823481619052488219681661829415441379920167635679790075845838955599336406005886951475267903056577713177512966822066739886181616879493845007660568154495757789548387767144094730225026780526751124532813086857552213006500021329505415740353690083833801638257708229654979894635608235138005872149510184431812912391613793048925020013608312134103913369539912299423985034272431960312841741010904455212446544840620438471954321585820954697681777523451420465490286503642050316521880435961061269050444425175239572683450652754126702653915720905001458208448253833090468950372744547276338073513295993227284681753282409730787296741845674561039742484299382478701791860125502584911648831740272637990210124950392743797194534693989090340956250992176753261404319973438843368031559127929350517972001141643438099620941060435443104325155905750668044372546732395065419851279122883974558323584826456394293205455011654289595206954482866545922492126409638190987011526639375250394847182958050334910316706094893693222216206694007435002770163208453124669294815478754589342197223830733007260100032453404465505928796433705481456367949033090066791447385567733988118589435925329523658589066166062901020663467642319639191061931410334680793874435367173358300771723343794673257476833350911758260318781343016677160595555065783361533247071765909640463434650183115964945088872510032247267948057571141623316564648265408792370889506079625925385128812002695429284176491713240855427470907365584327624178770343090640400190265407384638195917721558136144277362658870463030204744129771889257659795407352335308432292438080465145412579148688775290274470905437255204747923756353663809658431021218629541924505137750504548380071488072833056812517121357844968139075884239806056950296602014613571787946756573784692620345419523600395124648197553408948435499490979353357704958505021079811640309416727108190445127568990771355834891642440655960533548015102544231780401720981212169609679827136779623031180469079012405149679583357347640535072804711162511089340758692002023217701335087312626250231132241829950959168399150479941406354075831983522399751551104044776231251475824653059360866885106130813650075502931296778101775879009949227229228344492951585828094835214464408028262027285030088105218041480674404996493931677027789540541073593550849536419340729802654952940352737097867181029099486042904487797434079621504864359482039529545188659692219907253315782165270177457866119892450885558575508161281312739344423180854410858440445856971122469412489921591070084358254177412566721981575030982047679478674374066565961716935337081114773762831324196321867794761304135580102705709548270911823270924863933989007203243315951553907566626459083281993500156729023891725978408249745860333323784878489540235642894688856754117094322551100596709178850398671279638756996332387043800473026597249665231193215925699576049513612207974090302483498755225651090115571647140135563362627681289239416060681559224835289835280229095763177120143010656521053208777432930366367636219906860589853841336459811735288369823120707640788523235611866353793965356176888774311071989230496458081952257123437446573180770557543877554060888258290982719901189799020142614364119986156806732468585231856919878690662452950745862414512856949608948455988415880086478940861890774392407907273872223063946795980061261300826130025931023425737954687672470860491556450943793454913459493679165442324581212323836199295775039047170739786684213725807902924634788645185935036675681418492886142471875745741861609071017045517818757545694408427253673707534152874094518606019559054613683958166420445542768228219378814178826381464325846937016964386191160820884997094211889318077242882928308632400209173072715129504295823875740552700618090571709835912322772179787804448238000999167770002117358070743696748332057190421175791047108019231253147581689296208084610953847778041127318024148788772018365776156062968332937567008440489479165307216158920104785463911747922074527722236925534813501204314054748731788658834305843446954682817255124997236080083603802063673837426232999287395178904436521587332877041568209203040104891667275371545542925086647530068216240055241011539350231409138136605798037005880603808997181441447567362710774686092591529484199822242679951124623627562716558732261370539379696352723699895610830234241672357082866877896408980422432513982535265211833426786575905557284810300775534629333458313321644739885698935483857133868516088694378846973976891023423619060710610072767530978685435367404187756988423393461889459928570068434002044446859581442541000932761892267023236073078213685241883620475626594364306730393492310557561372355591479096988932608089290871808692917357616740898683119859124360211726838776999911337081185574041354270150736148028356101960059223990371413203230546631191765027717569826956601448144310185973843900163181254238416581421373218196572596484358636585073894379760517357540073474702083641690726016338838835898622472786850047880981413475392828744415680414039775096458088009662165782689803234002671321356604675403562641734002429102033800946009755427875650806286361334242491409601898534462796608702623561738691012104769446437495062483805102793323089299951750966254636065190928276849001403629736141061032749152492007738261693731251013998018799672090314233113993791264874497454621873303471220179733516330523353128106106859653566345326993947737076421464252664108760305326789948672374237627889305939187770526909068577950161143709874332861511665077699967570015542129936231756932351664507653756291822260352392130075697202171514237509964327541161171230506727916060084450884258735109465146773107094621873131784349302408252111137366704294337695173492010359569156703074403453017264091911310026202303021016142600616244945892816665353083597147695520933425048825966267289771377759303402817246411172086408921253242831984775985859468298654714373581572290120328149597227538785328776210292759695086541789403703140063980397829857235244155859581863401890206497729168499489972208851592878221987949024531813886126630401666435319231827082939827489292065756616040537198697778668162153549722850862999045643931194441309267318836421791715726855308964885766330659656680735601725237732044941565310267034834596318468146037966764892056350197986376387236894927616210496679813698228294450132842496675502512264942749701857564027663822408119792147280814954571800079642535726541333975920250698312268284677920468513036872068518798881604166475353010188934517787128827361945293782098593776762610869431506184645332745202945242491397992684639905557263556635186527288530552767469721968104272238478186002120821783353505986530327085689987623618825020138087285998783297658800653317054219075073252916284656755687575987208811779315522574178339843821473930784167358394609878307494167188204831888589345667662496025745532491181152275200938118554880934121767101509639561641820566984357834829203252668725047991684929190902482022859875047138821139167358396662924003247008636377387213285511982278624053320803504249594067180649083490698277214807813279587696044848421922696498929854224861152945773868215515922853987710424605425851117523756235605135654182025178732468508220964750970802375375955070355346459389757367217924781878980979505623955596050620887073046141253209598112726295205449239791417369752104065143446120350166997514237444197106238339836716680194425804824288510754695543551124349381039734322560419870348338013490072625908131309409261461285913456947244768007569673239333565498965805151257665362390465480033290621113848855885362977743671385888079576595864862079310055415989228060179359459021813117572524248218650246887455063135310980063008952123759638894091514303730241865250176336299135508448350765389647847068144687801598854528763101379243669117703925980042059062662962054757420413086938432891484678021375897640934399961080228612600425872235153598596544875753051251100990666245145232982748524405418075052471883450222996309269204736251962148495797526175534314557136608997582366757612409255657301335682113135183547124658273698063564871546028200812653024007362257190435630240073716921436869885868382678878561510593501160100491611151698597001990598174640398302345554120483871391143194017087612846656681248419366893988143783736090783929264935736459636287702966976263809934530678052119378170084362536970503026045762982252072137072973398565891228700864076604659183471086176912272788645137472991691172076785579909203802565809300818995502697347784071427632633910626100398949479860738150877741247994568162679348930298880070869379959457086693937436330203527989535765116754250587835288657146727115334495085962699981414935790743870981455516302906274026670801837238816612592667651461154405795030699027703541082204300818560544240214550862442536690713966047121573173007800039205186215518307265501602833454910887855161778604169043192748875578937343664097335472425079662749221068271592136292238271432344568144433621817639916822277782954601623585368651193218027511393202117192949586171990327861799575571908121710401823193807085447844766659209951329658906986958138106197221429064112618572412568283219318506721234569891418346878919428646946246260230197824396649549854455933242376649816911429642818610424700182513996120622873141986620216679812274440516960003329155745090793534529632078539981032983622878921784287118973518027988860883499405025267486370415762200271042330803917407211004422935118245979712056974251204005847504004697042361511504328898737543408626284956825307757207929902167361323297481331739201751890438672181807671882817895041701629626205348516380321842933666686563965241841775538545587948888093609184651703258850158447425990831443449849243815885471743801371014233819668470135418840783261238261351796032401426344649688427934915064577359414048555642721739684796346832902069452195984845064605445151787021072647698697359179075540814580558225584347507450164272697937058034211899989164532493554905932395151909763516326325792566827670841025418836498943483462890020146166133098921802152482132544489765142914811525409002528336350141637436701903534234066108591817396299115313431263050841781249958266934414461417624183752266659255239045142733106359713232277945296879405779268248412140471431858808961332767396673615891664319085872290832812526836366122868712784657772332695609556826048292665193979222398028911072492643857844264099107887924210587115657440670839025032407788747882198405012847374933930420788685756649247032066250790786712505985795333655915574162507080399663304252731218935750859951023672560880216620610482325491306789685564675822963543976361757405935438042654562152247040995340135636506280901192784070083803721861929847038429639372554758593861757033510348683251935378156584991885243053138707921037604364027317379857324991543653837796102889709492426884234466081922764271948551637568477653040410388019676656207736397046205037889419245309684445444943470230937917967284682846028616865614741444424761249156152942059749664297760296881700653300063013950049164467561583204176758465399232174578852220949450717375029881400665140714395556236716963895176940690878536131339406860279348712002498743657556017932628809393819711184875520689655562717182367997174326668626794986049587074352222498936170609689752327565642216441786915538688394800379221382894890002992590844409008396063003334938282509194845779184946795673902125041995608146389333642094983662060847087191966083468372047255934698390711909312924273698906460008485619211842046027240437515253107882759352735873683988299298181465443563262728296810566044380308599740920749850654889357448916619605308995220285309401635573115326262145552305419538372687413289398072901957355081336813257682042843774338299118617739329878721300524370218994936056674076132816818689441576006138044872331500744409106335444125707282923988039332843249635201687415095323904192645021688680917131303578843362082374378431132678849895834142348695328698055223726542542503477964557596766237218506406753279820233974527332771008213222244927003827694428544653887692446652526829980471627373055810672163068158857158043064880272850469812927332631794952583150362444424004321532832507865576207649389788047997475459838202834452515781949636275384065001862821198216779008435364633094752332662055225675445195579743839013477372534482739674311560190753094313616154779326653227326347647942114408293662699885139636788713333979858915627862104182570226376552481051197317189092205265530669436400581263043530372844705553074872737456558333617593281010593849161105482811805879787589382408789107595367549193857016831721835772298719415327061204103735176779855202108568155696653564972398078260412839633529554221717692423014919267631907343029207918610634669665346593015268827449914862927334857228350752444944468228722260146146446499567853248719494929352461182690816066685733902041133774583812081440408350143986955719485172827590070749167175728743161300218184685208647570220465501793756300768287747476166269966738965209832179872342384148205991546977854005700638824387606468046246493301930499652751567614374743619303711159466728246992011298762352484969665207448185920099349531070686395844965871378225808018360688231682740550041456172297581960047605285154021070034097674102297407628068510353297610785430120273267003767708319945280791469234190119732273045997759589692471319675816296091744808960736413676562386480730912202832786637704951658866581895720643151846806694750247591114329150116216315598284575310500905817473046004255536215951900394361103291876753387919556326992929596167931414077267208835525809487721213131774523747603775919639049268217751627857151126610552083808626730394292840557245159384404481378105602347407151243106556994172368983634618340238701187646398546410544552303140961686085023523914873562291190457491870544287840689866817672468441410153862302157688875975330023680163920674323396119152117979226950504748708324280156282839153162704832790744240975792087616162108013287180650629996112151056392391958182516284956176416647851615564692185527611711976239208651699596972664470457577310930801290850010711536484846402007794938406042408399539978269849143309643691285589869357854266681777947010267530562300937465869767834783051214007481805785455269176701384477442509506713764967246159198231799304584186424424267761135668667184949054610466793387954515482335766502353238687650907680424682074539724000995395607746257173700499830163152502796518680041720464766076226506562060340713438549854566353613052778181178146693203824177565020319454806663447274887953058983397771501341655996770934059531573474564149694515676111599465343715476267176091255911588425510246899523057787837617048202143928161185486651601474338675391854911791097018595006132170799642248744935489857299622448138797900548542072665601080266124723243796236320454918396097077110617699963792520224126076563729186943935323256736172063714788304821233682632364032737724658389483996272687156416211748435113046672228449823152466333493379306513840714296892423457796837833876990839244024604558987899076665409494709874944461391838977751398200051283740506222368229408251132022119250902835804479383409375704658009982007423596895359552643549694677617017558025713845657021325932171972579722489872109768051342079300152075357995541541573259425457114567649673506729259637025850299169866763175842913006787562521945071854996874104697666507060330239899941928781825644808783307157254458300153138382303189407273052109984176366080959126397579514936539540375181577546755374474146519595726866322253184754899288453906293233719754458653426129828039048117147595140681967771704884284382785676414485770334752901156980108237525637808439283897538351919864709292523314755585410464531141756426208739982955808894525669533231892617446383506749661020003580966121184783681531544375489584900066176401972228099279870555058793431732164837016319600107897714890851990820819752048987839883196778695276785365768372169460205388600058743217973788568345000758167002652572709308060166191253567781857292576352029191192112756021145543534573158691370226149043560291811517452734247917733903207889203045241549343844902215077448408646026137158327054261166413299373464358566822288936339454244840702584577565064157779304388126573683099563818215481795560083509392457454360424434048904548360922007815579711886609249202501447135207098586049863442717536481827428980458282976398666653114699844477311418431283281164186637077739725615479149707800585409454089519658743510249276493505418299646351529309674737624866706059144668720292450696939023907423007095415501255658648557916083751311162426462341828211156744072309775813120196655603118313245813948710786464921793286339034986816276988929557470172729263790761887741767658676290412730852679675873897762390368017255083459751983568650570436668526585549552512992754712870991763032432736796294598187765788627988670536922406580339733314548956280743591613095120125725265832735673952203371719011784424630940878356830279954448307174951648682052220267726261974323678736379472671916706780462784957006109458991781319513764170726786017499290851099184819322686440831665639883639285468979642687866257742193349984261464964956023652387795546991442993230661777944581873205215217490453154402758562399468962451371858137463786974803233001072222899701044113318804525806227388482691076245715230269417763111593307712484012425872062608776330579177003871594433395480841002338267443440321294991868580560732822121329074788953752891746344691078955854800589609170079594352815047066590066005815999374333319198637411864516538454878408634101274421849698338491022642299759899035431936960581331556125057906355265041447807454832284818721329923977324895010013845104808734506661990083058471996636528895107514290312300472231418926939308196150159549564202223366040599216464913630727697618805321130068626153305528396581325018252209525803286823908824525333789267623566946912408026165125264377544683384117845590280236967197216140442591998428719692083353250931607032654879240777741452909946390876420767451318906884616474422319332063907404469993329958959542744405805309914006054539402707351688601670264777901951773972436893844507760310013817994826516324735034752418373221069434314149651107735995725924327189714916028521827987472911895652178147230568373295007874729079785652716198609425721888614681631295399757162284025215559517384717228797595012150234816428766654931440068881965121273349555880721015606404018546505206108877183224381661989594735015262380446405728597250485129979581849954030514531709956401142987132330133376492604925326963080026606483079770406160002239694189102207004751813043718456053365783808550161232844343348340212137979198107694774860565003052717001391162722104455637740536151568853167440434570945830027190028114351189186527426201961818879023201443166474746214303722297196985674815571854588668203291894599974548700485827654010923989707644290750324322853635900879380347824600331188979157142154009001488596629564674325911867412675714465934797378303716685706121394229673222190398346903129990735696836777410894816805641796893001781107275809998427106215209364795308379136202402340771178319161458718809210665217763618777729536817019713439390183272048023628810304660866813470253966028205580027870124419798994730962061275814701448301301860908266013296258444643114812634518095514017859415360046053767771376600826770378495823481830744187077129011933517874413866656164264428691153163490638496893397835840885762700750449317954999499192279030368851947481072667747441994860589827604807959562441124664951462603811633104830114975053876997156713393030560081883467083633685752432038414215426285419832527760746792805162215364782535556693487322079576097081777303613098449085545195762858338187446868522847861145360151092337583456429709261792347584373682386936394801584569755698564506980136739544356048275864680900516956450127890666370475198182918917242129384486546017401258161904903755553304696485903377303249540823001054379458322950051186974459592541284085553415526641354816357670455262943535445158306371454441660113914363257282739804863321098731083019625685432051825946370766074093676315717789225247646850992550790436230030981693346089347636849427924231284111456421064080110984089739238897384087451919507039659572924321609708291108725795408570379342711703479497258406536712535459850815810324241349882311283913859916318193956880220766538732735737941474136638265466568003842235758317143876004734306202479428561488334451374059707052078833317517756205366122754560330949186867761370479576697911937457619374232529603242654978704051637403386793640519767256821660569359193919060125361193858940878140185175820469385726669139890044021419146435465895713865352712628751500306270273765650158498172090090021036940915100952202382025437187777182293209972711503770573895830759429328078495616216628506053178252912890298878582129458907394324141931658848973043753043737521737069540262235379606567283949135768200683355569162458814493184688694673727022164116770459712501452209238234984286945068886678345633226963727784854171046801047409482982212398866502546583983960725259853395809328354567011754865912761695767754566363411769453152637487178760389151270367969083753745105916445131059838065508150626908111974874780268670475392913333087578151781441125612295023495426695346212427813693005455515470833597506325279858935736873554481775091986314131816053319062697194721599194878660307613068154123564952510593455589491605212186345431770993349953494189725248067552704013885032987495994067521825388924608031276297210840413036659234707312694506817655699982868954666983515888648702317149524934771281918210512303135401601347690242656880355151131241870193817905630529207500174462756786695288128673505094166278035992844125822896556279086072877183738264559722229198839974673286135804087764991218769178571711098132350931264845259147541264288352018793357687182702096800275165747011870241972736535026921032720420053613077492189137190948517808474336183065827344312749716260785954031549507796698339571533053186587158029964127734871379610654383195316454377941827075197533496033332428173812884917199943803229401365924343094170788472029390940855341936369350048112642032566852912674444677871086877948257326924720275975837837806439011872404127667471904480527107643968819301302652124989499261989538826004849402300425957282333150078040945496986556415128314036259170720822653620001392797920712862480871797220396367096058837638213461731972770225249959985329787778943946139807611233628875890783368863248353817049964094144207308161689539240615910185014766573940635411291966939930636785677255880423669663907329133022336163247525803749969370167052780597639049549900480019271084396715152391032587999042665002185428447138287249040683695577373260059172773504582557453159564954959594439480616298334720799627076475561429504278724364368105247778907471482872091720691071376539288578026228682228874667460468716289112394070763934349082589849024236753064225341287346415354240003044527036923634093719783737667056853003096189497072856640215597405440665399834658205714395486868198865132247587801785548547989286433612450806680261178940317924661079186982493692381069896795970919285075808446343273672511164824827741298872750914701976889341035133951636269177934079986523863106635470559917703633584491328498153298116272681343098408910351635083987498995987012639889010549208084880648708895802772667857951156770086314769249841160792416013151356394422378291443157003498434282778963794549746269085802149415363675232685331509850932052118564771268335818424970220272606732820901959702779919613271328928248950276253926544638467478361526609970514822403810774431793753122794071099908460740420660613136610961712329757644656431132380529715258855932352169433329142690379584862881522438353519123067924015286141764099397884315075240887498541385952969583029675039902084306264061566803224368482577585737610679012721674270333817691000110442362458030614613407746843097052747353729167255237368511113710837442230606833059729681462727697210891849550746533974575038692233909047342529745822061176434094014056805319221823616043746302460754842141221581977707379686267756957455380473152423796292217965972011383268503220675633809769467080982059156696078971564892717978992827388753458385703098165704182136654366355773103018152535223272369132520690189003667796785126263800737147662990244368348099538383798003344147239984654969134018705704937086665611640237799140104597894102571787329574671380761944270633231184829278886127111486424196951700853097267477658838203257493525619828592928958891769326251716804263867223583875265330060785796369446999978057777576261120904451278682043122666596830437050967833420160874306434417015611209562641961506871632801446040171372695838996122121553340244892640039244831401731284616127427477037136796029158612508480132270519460542990683358444789316832423349257325309913972737540437317895243658633960868059579828728842985915625035693627906098314600527032707246025649551028824023905299494863638880382501566951162082748078281426711077049435081679404614151934982580099763073562855026870028576672063336757006144368445784042916804030790441689624344913016729218240853428619453612332264513221283465466889358771703460439040261593840787583942077253281610906559481300113384238250177239277598881875158814890306732333265584905473940967944956380969755855778067843999180424144801404242690076297548337617841813293177960490982704867436531757288169556266569691864813011995450542890713723193943893143282108551593973816638111159176920240113640890277962753055434573010435011334310463942172160651143490591584715500321855842488649385805750525411949331937847536042041390463248594279284810801478564488643961328523714809153213058155321738587037033132319936702025421147722896222288919603245220155211150436031531763549300064702552244773003382152083994932210928665179824926214538464584784934215850763494542161744377486298754460339207313159249932073076798049122956254920828094716634280077206109466344695365912805912415779724868168102518910838167757213128183509999250025173814580632909857713275162797226848939707507990829032962634935226076059500528621617042920334920295227716195200424196764920881969528225179316183149752136334456497743980670371411785532642247568232343537419525933317971505852385811876083578481804818066148592465712179636234290463399916635525620930939920180340045988217218938156434059992600270098883655483012370709941659910543342677216153719945508744061756491991886833962592158471008258815843375919696017869525077482679451859627059716822974750293330547704241294238707127799331267626385413611798063232570354029701211727257043891817357176761000197811886454723523491104603433753449753920805186630462775637287112665533904181139627200749741388074031388067281720444671445820424874551436774084426778924152554174850739167096248656499152582104148929165448320831193343610030634280629416562499740783192572100543421043031507642967617109447227027072529443757092518832874278347828336864969248481559645664802003869889972379300108928171399626137719941792347562833283293104246114966774028189131166848894137749200848990254783279359139645669098669135119150745437100491969736592925795157404682421891013096840451589366415242154221417193766630798533511838324723495939233544415509799283003870059231829299562456250296630857486215665116974747024353476771549476934394516364027191444953402594666086705459347868332361979992861753286158253955039913294799122888583355039210266975580312984081070678187644974219841434276363573729090253837313970569095346192155377628335882364257143253817319984601886522158884314257281209243921142258837699576184086720606415594212703570244142150041849698133940297606436358189246318472268223491855451583563974371081734668156395014121718543845262598539008376888436235804773144270338202408161089527501961861205021422787980397790199132407076688157155384482137512160624190578281647938991767185639031398769354318923758068547529342893384657443060653978990180900675162106625534432302995742932880959634541608073728900758787338566856340060610769449197110414545069817524134316604548488433694452650410081435818381293110966664961592679017436189454781991131682410873676308359423138148787503415323398576281328593535781445293456267053981917293597551109337966615492637688492618364758598104314026835884515354983388043657272039377696469631490953976880145277701734429510325561353539771939943407975590692672698173421274784959865576635857364057251475956969571479213405732569091583088521350713876234508594032015907104045249600817018816836986177108387554790139993247522369974817454128508789272239535703646846232212481906049686007012644075338348937347186431620374744194159030570208497682548407771406459282642960203699393070328102869887491654932474634412335314521733849054005772584187706382554838925954323665532793658631864665985528577213451390097207066562724150978765203362715474575732871914988073936518959600646038639325385812796256180893658022164619884682176862620164966099037712707622399229773235460061561014069807948285250119663649122719126088204055191342179953761853402264290764084164192811138970398705263742163239294311975464392894102658250232921576515967312244848264753686335381217129525536088932407374627545454766857980096824585846535846740932201312307773489089661596578234719005375751848310024078177368663183956553262540706020986762613072786455066946709667859135531261145993296820577114926523590805997278235752134141334612881706697354088608097386039836686701511907388025350168783877018086981811777046036253419790556564815873343901094929562820322498927483936712786033140492614264648292300208128528419258775333805268527608363247623285880167993128141660343741166680516588883633932848676261075915611284475280112991208372373071530856307199518235834340459388309748136208177462759403280195951484206566219372901373992526893420699721672383777956229229075656270151151373367690611143301838130205690498919775652385251103835951244998589316661858773330312239641410093876951602182258851461629657047752279136633482362712889403041452334279757276419588346956544741863040509149933728613826690050695494306567470631339785215757088499600534360290786109739715063543283744760790621878528761616265558266882749063209887896685780799400870254723405049099630224303722433801194708000938518416258392912973087740904740062409150136448208714148030077536513848640216134935516910257914235636353768097469332724119779439168956769544844902794077363769464438280227690383372004459122287763345514812223493187886443317712893061213210137751863906244302677303069946544724491920652161837644794437938257233017784974695959907133195877599265570147514910555915785328527310085771453060545553453227046211854096759154743781974803067631716971626732178083979613221088845934256974409569991266509535597613329121479099585385528464721714803799762015125376259127604007624671909270329650635704885005277141212193739348971574256748917936168644325733770470733512767749563998658741097316775206690846222453555290911000675883343721786770492257756744803061290563053363226731645883273629581020037615721325163651492994981245223110470959478799294961852775933013337671659681648590736451550450399420874927078489276377357222748196298186585846545273219920691743210219615643599392564451131131837028600202860745194316547442817885481228701509684515550418132566301100791888765162671370012208906248246405305529832979033913798189757962733508232183203450092639569353593500658086791697096791091016032154129308574110462280987220711908319857466146767111395360468050449655101881465866532521978039292276828126196013763876398417327267844418677190032049043786819774374154154015550302858951947787688460594145641471626747705166149601057842388874249495020055870675894406105010047726075571474219080048586549552442805053439748845692250731546604225575122645798395058204716805611294195594645901086011595574269989500966286432994045053560848885966871868871071393771451256852160149650366725206992295470379806229311070998865105667912680440728956773742293073465538805408664916444621108986290401968013977818934862599321620309926431189016277998864735421574205340881375082271644576819658067170565897013868703744701299768459285411474312149448890431796476403065889805921196946335396868969159289200633818768540351601982497586710145480380829875394938316378659699703485728407216995535729827251667860722700782339762969210810863357829029258599710476894051675139852964832226129414448662959111833180747745898907479659233996847206821240387225256465768174040077566423843966212957008318403461226720408765350669414800159336186704208154156212521209612709499841107306547076604450671800196608333268332469234054372065066458767371229836834101060793266608513326340583205876746316540909015920579400744559893447720168303368628871987454549854278353493984916451387345181638533414318457958080375179820932247722637966046608543276825089904263190996457534192131154836625077108822606007598581959671726158151014902749611254434836338201620155113252529934932217549952016806527992893027862697115676137439927367999905933355510554348656177546990809824222973072591956421852588046983764232415040168791680232954449461044218848766192979087510705807887666095326108942451862575964847082175264697094176304769230077737683317448723591152606518406138095088391742340244916629882765595583738913805626679129700576659846568359780255028104224500439731250078964338658144864068198523127830833908741355372933870774181283779056723088481654508847166533171678346300988577200586656932755734273748007293834284364771632163428218297058818046410250114868693673026328277219706068033610837104694434746449805642114525994733938557067504585337136563389374887625350175813771580384867988233663719410591917266849645260642299167144667864496991385061693844862765523308020970328373947970839832769316747772135988717997663626330396957827672196709299887446147585966935672998416885244652009122708152132559498374917240999474239310580339583980073510481359637053566562640612137600774285021521422686920813381222778678507760203713028482019210275095542585800933489550841149699083012292575297944417647127014957416144084468814945613230891558454315087297726033141249457435981655529654975067870251604352961030751183161995974637568429100266020162640618293891068619181845181381458373970024007992730571391597349089255621615103302984969563958794230810389022022916989467000555417321073531953386129103321698760028301362489044841317328490903228496335514991678173084042835919802966715940200901520717153115488953783135853276323099958908927660036577926609604678373547937642468772198603186039608016584510423228986907936473799512775594251724507043579962238549065294160990450726433542701703579028185262383594642096160662531937884814231419696375270956493876155764076289097838372639794804798537235646837942439747765911511483719663056982888068635522411360026121969840531943695146965315327410143200467735135530922942289772192038341287105033763934119699749749604735302705037606511691618002957107388866645817520417025226821420454537781331791303453578575156486362065327503232873231332139917046420297629483462022836265160197413622124176764534949953714442572112494223729256237664593694501858318319384587798895406825332822145048562969614018003880472201970113004088518074411801128895724112095760372618615075781058424532160285348562584826773348669779601293951689242350941416428268887316235027991397914728954429351276305640204191891945716480128474375251572564898529868482138912033456187573030891029250983772104791803688301793296749179360527428203805534713877922466035625329842560362232477374518017754137418361518622010151495255364569455156409714929709572133375587728246326863444635467088844416044729485319906199068888434810437352182940632951313444809370913739328222628433960755986112562755548250815534624454971434346518236949859072712420955576364115087929583722882668615551820283948029723586124434151358743383750879796291745054568712405257363048195119707112088956082943296837671881407240504926790367993730305946047799694383516747362738765231451409948185897511964845259463353781884552316186710053411644976146760488985648940022519878082957498939786512169275112102997442606803299936458327075212507784050957609700948870417055544476595409670573486563948819096703060563406574621248101871626741341990152505758406276321702076815397104198224223110076576080419011116103384606895326797308693142607126619203015568486440958281514082752345149112256694449694519259367332464838970233212204317252440758171249278155208398009491417753046379592827155721630234060204690674900563940124718896393581483842624910394097235804312392741886119339278853764272053579265444038486380426888552350553286190307115344926025038160362187272263787354140380148162482145579760926558233082715775117098072266627752652212765886871791209110998730730308048930231420892870831395803059696430993618909979378297101709299804700209805561829616297208093964608280729494961848237127126822931278226529984783024594458914301425577411415893513321015665695984960922086594298047004903563832227364567298545645892811212703349911077113699441376085861965880951084087898246712391572156862940935255053443691966003375121422152934522625632422977921341707075087339048253701119569345985144418311432420204849112155902075300832840191479903086122502272506628930812208242593126479000677931324697540174449792000867211164355375116300847088674600847484463717391085929251193278096791346689169111160402471404137878166914766051731623889109084026994972934374247457819425433851339520288037354220636397222844503762197844077744660199604907588076806948217987856455361734857298235443508156138975064226681771398174897685252741909405025862548783327753720039105304300304055357691127011411026245843159926526342372224749879190324754624992474088339463520138520392730750545119052815834882130393919740960251716448899844791923650440805341701051667425351481019520564549220981595368365406009195246728902189697281861864505566046800537741189792997186980048272706626810856035824806436849072762487689342570411420886243244232972597187669682380723409664710423710740112814307111039050612643361747878473885820052512477688393064692982381689035352131872461948750356237833044473267318381216255687716750731684210600873485483629211455887875578031443656277489158833160968773065616446273423212832241081785554607005381782668892359579840373580366004037330664223825505022491130371557770802814401724384793731871366393928488199071758695056939656821110765125853896179023410498412230796130527935358803963617181356339974773911922711902143648364411170482781000114334501475180833645058255144510146830650220281943557885478780019036671314809847804248548171022134388289280899631683495485153977329771659085535143425519159528920124035433877291185620212938770682788160076305755929640720299076659718614899229663042354874609128021506922746007210946825094800991525794390432918146197290697187010511908804740134059202318479645772047843498871992575550782993706710363399914570339759793742259164329151439789088206831416183622210077600320506885091683542923899972752502843733637052502039865257985346365321130980862258929299158893582081028100618598635781098185715828440912103947821596115802671849173569919282955153538745260546575822256106879649461938853491203695048573503508153763708229415521193024341289713865086503943313934848954703757263546411904142259175845332981820237854416040522285848568557140103352032975499205298271423086086991755767407930515132559848389880707085630346414801596762242057280171526863055212975697997116340405119731734730440990621730712938700601983301188667804654835978252504801560753069483238787039933958048916179488840036403835957825705032834243203465500937646542562883277164242295374659000408712398080946293460294606443332434103341236166466942784403892320334576222202996870757149168751032972372403862431908780451170255772965106149879017045077765563412718459273279805505844389578891287369797000266771685897608548012659783489389775890743896479547448179899129908675027030164855663032068233648838653995059092130326957403107077922816215953983867750696303257788619737738177632596281794150254946177337072028951666499099471222216072567925369368753132243251534180852540173031776159027381951727984597178921136629863553556790488771178126232329605865860740021346576273145129622292762544804398247028423212579785159432014057486007424883100876990223309078455207388805163718984462939421088833481254705882926398768069477347220466404051495732199863907755852552973524955634941762981663432893012575658215042225429672364934785658093101043674340647245753733731005957357909596377080185747687104709250383399536548533208174387163409492568563051987114574669528138590806924811747061783028109621731232764402800136111256752609728762920677078257514028639121939518207968544478421209411597087160378418063119263840376132342381298277561133868343684662759893257284564545552676225138270427547237802366773760906433803776297401792197303356248919186807134365940712372432967288137899612350452803333749391473055493266256566434405120933121221627069185628043075456428954967051240446833456951022280740027733760751099429629247900025077416695301896280245079128077188436761575028664178310921613611420631582211800428244697273627276837301465352058643602610368785722930669555846217799044761316798411537317486781993902589914274354029652495238640226003316102027775781625568064112757784464932895366948270215072838428310859297025770627145733727407172860209630904574510625365651552417813840300638352500814531088921738748245471778663162569625588486630578304998372275795598808148926801564969598074197338676322518593669093970179758172354236489873875368838266555176894568340664184438444326332736184701783318745633956600196180571551175695017850866119014536266882203950449795525790464907552036586233987425154541333947260923805717972863253457247126391570904144398144079902857341658875236200913856292311444878858124927242887669580061918953276262141135127744235661699853544488135858751877664526661482643982749500196068126487731985966822384654262824121365204693339390026062013967508077669728594892607798873957079696753992909908702300322300810348515558753688227536235134549895197278198047303143025748926274455561363940370040914518457264734551422916793936795765298889776068541525805499426168530138961527670398968552700895589535991947420083767585045033810883533608890509498596956851460325907761013247729055512092763867945941199474221165387722769588720764687516943861342968642541436203897706562667503402263657311602305741189857135398230154969939697775123773521938655879038823511831448908096134245595265005900609064183921698912544943470084527907354279782772687821489641313515702911251827890884359949400115358744521501683160936800816059709968542852047768491244878142842266365654900212845367988208666119764977765572000220166017775878570048917218817932271434731103544460570916145233177204537088975179740533619044445684982557587558356217482639424612037049782890628754706982961413035314971057310016855276639504091707127101154521318421711882938089837481589187282250900004523424076236827463472802666350548675912230936461530099860111080736760522027453061193247924626372186418069926248551663536713325637645511306229928091903016277102708611331236693072897096967623365449263038598648539734191438767343581557345074089453557944010849260887968977239343586875354767552453418393947813542990232561660921171992154376385842329219723946219643730236681310665023014352454690726390751520791341407214720763384008594786217963424233911533080948513678008882618878021313174531314386418168102768838596830747518513287404953657603881393913779696947497314957023794830314024941159868208661011903718980378639308065370208101250095874420587687432498348634596053903025529239405098019956876750731132623599768415929249608949624798612103591340404613864336484204248022024890055355327175470570205041259944691476648898057230863760360316397776483165434725104508462133569678035086572234411249220200224094256850537949276352497267536133023631467309240425525233781295614866496455479714492800968159771685223689593712641830750222002625433680823683522222836736836418035048680001569098072736325203534047969873069204715348316497706946921253497022556598741625888784011954117359256153545651350123678615981799237662273583098099520538646260773828505704339513983853568970758926182496151144834879091638567891233263804800382936980366834438610133824697619548334499010010668587500527278672547672835531603851203064147001750292100899126404472472292180203851097292678257915867759528983820884444446500690849587756171158688890452901105029819362727447581176080241262914655871044288174674637229283308799778079057141349949752290827403808821590877275274697139088435307451145335834040810945842960175374913284831842278620945114764934426486867719084212421365594774988235533774242213403818510165180021549250310411310621453039784704270563975514098665439481011270183783871589401063105126188630068199313074860533612248160927754108743124617726001828295212011567229575303700413104802151079310774872280888519224980799143778304838391076917147553540696158954765958271817044368227194161499969801051984501720387861723907249585618978019406923511336060119085792944872484684312392372223887132850350877214287643336774986011890176623218845112645336475608090912395950856807488721760033466945784625312433172359798213716475455717746557370261444087392225277309454493174650192096071522288846316318731184789686842409495872683433301474468714503711121219281195063698680961473330370503620426203629228585813061826342081756170369984879554151501099081517936838748633448190011872537449496639657516524643215240690703334262651122987420405283745773401313365934052166889694891393223661452968815362528564184644009164628086024666911040900702784558529748290422614127589086349076720869112663319910511416733168288281851302979437246791530896986080822329231938571361261606130263854705006852891427874688095191021258558890842548376183936239793214518405384421346345201048579001452468266960814975821120690452863406996285684555037088387256044243422297488568632853069172575436716547608086183126216441266209352389899677091012286372921388784810374741335475580859622611405239129243665549739103632478247220516679645350141250258865986383443666530710054793869427580182565190149274565973840117642394358435735063733028653482424515781716288869770810355482225240423671552178595161917061784519564677135161926788205355739061689868182243331544942503808750072969289721281360557244443747915415772618715747869316383071378645617634167743380863469527329268904690408453602638772746415204533876518003834965383285258871965751108108483137849597629683120561775932064015824130873474627554265889275453110461124965325748446713603469792394449053524905875177353634593976148381680991913422519343221736408967038844854990589556571435858309932019976644551331310449082570688353367061148544066108505597479827531479269410250316503183670074609042223441952719375477096117703189917982300674940603330247642139302204869761217344273678182057127703583344443683324089806243114501742014806708705491684973963941199555680329857037789137043012356267142459777842809348206474588669804647720665236128734363778101725978999123729092723109477724205857758759575236039323374333509453282218156323813787545073650701042143259872372544081379192061841246152435079167175954708699488864426151240298437246333208619665790653206758468459571706404048697417015374548179775031995247104762384967106537628822523595681884243544938033792407398951399763564067427376274824412849834894944988480933265275884659755213666711389635970463208045086718307560113768549860900717982026296507386446587870232698697368103303330198475569550541284607028188458814201091437435595888642326208660777063713680518829781248477726248205979096141461109574192532255874249614111542768672288128292493609814727614615364147071205069930216301053760773199413281137455114403410970223822119135640532086806154458460409302511642264286312531777900483878986276814598200687333932976992122955442493165906124144911380817554196511012910985476415956496715449875897863436488509921956028591088308478189643132647125962791330190909396513293018052404492456818456871041349981428399670895494918020112417352105609920100168065286155945434586623885253653080946627642241237715595388949217121872937269428401015256754296653766548809397522195420108294054504022880893487466257024947529157309172179604584333658557979715445930116988076753410970088633022013628463690683922074911361874224207410282723037306117435544067846955364279429227963118430748492620499548350760835169131765224366326739079568989687937930820807679231607837275670603771979325028067387880617577548626113126679346768826835578690056768616701249180701789943819413522449515372587241009445091448573347293176330518965904385981873339843017049696056770640361812100214675555795578900814889053664158839364280146318635545505658748037250996974402599572252746351679759012223790105348900317248754211869601804875301668968063542630402932008644743935002909260139625775233683422353038673293661224957934895595392416840423005668435431576681938048845730481337405244132151777840583849834356996978537721420409985418964730619580424961630662748305683148799167700391966430522406598750751957275215743131656090705084863001165005155688537377671338039464023772358911241603696546506301094604403882175759975482731603411285668515625483361154829836878379345642500691717579766128124405173036217362440504485725636789549947857476685291684705062025375135819375238948421306604205292299641358500353527231923006383402932979292141076431863062945742563969279008507011648063298055828119427818391580436702538836696985827225170843588237183377997456181363267592525975482740792957458018869615290092836883188655769980140000914359078698148426329129991897943155345222446350041293676934463863485363335064894554138305379979987008173733224935048264128204986013672960582199408336615388107871721125433818239775203509193462214135061643483566499912721598096068273379666987360374587256127027648775883602127594020427148559072245651033625359843173684449033069418450300126216499241609514962749518269659949002014346225538564037364285503579299403498812198029138134926600759588573838805082648645479713958877543250483929760490057902209710811443796207586583856106709378834849045684329971935376266029365693426264586458686586042139968452695153404758463707935038764599094164817562965971791451324420787258277250947921041613443811760016226204890927948507769585198863525445970538993079498806731404310671197646304723469390201498072728196991502658395023749131531145294807415248214606683895723816752373296653572015155819015339791070516337419332686136117367518554082185167673221444297346260117669207398750206854633477866109261096314551408583727322843836010754908286292952627720581681828079448085536452566035182280668619391293716211500958829974025700743997002918021851039903738309326223173042848138656460618333185440207465221128134171213426140777610239979125816888897922529086116291528906401237697930345574507104685272794572063018087394659642821595608445873575376344555371268463765866746769684671178172444001202459027138932301446217940705470321367018301335198633043208268760750855848115848832238409620855103946681991306351918186159040991135948127984990417633127843704709468497777767848139953106459734333131345642025583768263454183897165958569865591152751570578606429565347284568463800739872613267733208915450226457082015061697574506518714255251602497643674159060580773454280237124109201674549786890315748395476762478890239731731627590748699267584006257368174243457160352585499854956880668338214855464579947222549870077555698819384093116786147233832345582811574947959605468418828516046053380375156144382994327307736351472829007592248540362773044439917367819496320374516781272659854475952897173485135536333864177770640987047205822762532997016175143166915987205198492560160654332476706770303132811727686636674128255087935059678478971917661638516463339047559783314381984200444898249532812799655446013574600203724492768332365363703985408343207630679044858930110495599991978873520757744964733580557472741777817301476355960494549681180328441743242647286491420647078535182624615534983199529548576957342172422040136935748916368163647771193414619890687185668405231087120655593645018692837046855079094121830427283458340333386465880804314195335935227520855855054776972233016818323165342460062964681658733400400789111888346763896187552250555250331535175631975164735934199303490565072675064060181538794272060490455188570732734349122836355851332684549575127180034181024723348717798251375868658851856915741934531634213071540548024590993565923208106139888095020138992287909034330640149918710750080361526814412180503152895235457169231919672908047321000404972322713606753926503028120449070709533673861674297693712469894229105036240744965635410521359459465345537632171051261698857367530132784193903678645833320229936126558383673801763868929859474604249353056110318490831426131782036695112423170632470508656658961555651752652359465011066851705380688434178873602078368393237610963352601159661773388271016904343644801951049797712809331104219009377411967903033270210272721920095003067973275423447633612185596226117973374901160854590165162359912681491639405504631377926291107390986920830684144934555531323412923366611683284635743375832452094038118168598766604942078211163593962521953387341769593086893260680222218675645343410471901630519482220968306221763703742679400498653634459827394315508289690369833510807842921897596930876275034763595874586940920393832717484277452872773181221675121519939036151398929001208528040201020443343414839619362243143829143536662796176822280727673604888841959415684286141376344596293229445593844978599037334113421493393827436839370214219538067418431723343368960862516275515062808559750691036102744251323014004492953106761579820556030632474384937421112671744568836623266883002393466760752746805350238638321051710228816840583852557651053614088159168760602087390338932225880770890146708595177042210108255802712692735352452546372951270277969106863525345441404842418198170408817569276738460016755765167051615326149769677533809741374330188175895185718502824672608937032940063799760064790129702566837730298678962029992253382914168324869714978982491286161054457078240352917510673165977561325897966944037413392010970989135272719836229449119839311499062487890215518981255175774537423894371472146741172361159367585540275895175193306862725269749537616110948815095857934172204372983100063333980603891010819108667652414015303596320662974115821440772400354151158332804046639740960867650169030770125248623902985056222266207749330604545797417804872768432025432214261323663060438592428657835526119127673256814559384231985293495526762319951332763817880966898402913849291562295885399492108011487530223884305091069650130699396407722019647479451975555869889060510759874424045650366619134899549471459701844898109989475054211874210137241085007246295949751049010711062939233848706562088409643826803122631016452644177207624125243633237883494036465029804613564523993964345494522338538762861856079720967472375935480684510506563186597949579919917997849767462922300287464701799670639957202540560979490605755840501237307390721774388909464154294874109660406491369776682343076265970567682709103934438315247074799611147345706533250238867885746721897831339016444288774226277584547977835901959779577186559242797979550139574041430323705097958892911827016433453067443512762526777671416117100241300396091261574292700122092026778554112333300775707825667678732974862047496689925617704737760985784105550739461146377141305163778635524826666345377400889480968810317583006823362265690910907397690136574607530890031226433252926080095235176084659330200069588630892523875128804283368908385382027641025477740805220161690983096824708240730006212672284799006972388221146157534963753506775908486118557413584366954936783357047851630197549294378000654471778529481161146688863201672870552640020883443628771789940393116182250742510760675825288993461177356487400121178523380985535086194074282772176573644477036865623169970058708346788082479103434566687124622394663660419158063932689334718696470739305513131367423000068314209272024032285911373688382170721929692912431598510646262247608344883032296978469366545204380557094398923012814221810002259312690469686633280238197549437002612703912554389865673986575572463150149874516624874401316407657939516478243956858266426868375490581403388055371078838876018980636310321630875582264739512007956488432851346667553949077404865165334113639175223576769727212561523169020736525644222512305698144687936669592623729123927165424582186187218672392972279389217277393133870939977587229916286704718351759619095501678352518422542859019176942987618782614754580996529268707521513446400948521423860975542344996706216229188098949167715435321717924422079671657539498453266349074848207200822186507922602597470614613305389920521637910264741754710363432664692122458833727621563525440000851501787075940525751565179151626231965657491727183615555165199726987824811425345979523630570098836266776848890953612962897360258685661614359109050553339492613243457309689226027648001242179683713749339924852815883420522956390924795116590647147747799654030901467432175582630205602091512310697517405546418071893749067528295575638233674501589407857724199525245868345990966345261359094608375322729868374009172011831916395176621261952483398178930611637319384414305418851934060177851484052536591645730346629143507900551782991161690273233366316742301125887047913659764627998692324447235906271134310134305821839890811570637081497711666358378712947812315261779096830408095156028261035152379757354979138109667740226761278033484270308414681925828748920381527208548804581185384568082896034393282039076434231925210961032593666288973663288849027056044262627836623006991811995022737476859408314467386028243978250275046313825608333042104828410879701813333095375821927795859581849891981130222364940335374764895101555122035884936028710371561138257053861060938282973471106966613081393400788906678608558788983209956613693958193918637397335000039463163278395770662456006432056905206681921433067457704143032198455892632817037313848479251945487521148815300723717590284058361095129043685159124061464611339050571750262616360155360521344495630051734874054624558608069262159173389425015696432551482989975376952658612022410835546080925270650720511498639051473307051710059610344255748554098078583109578838330322015571028186953821245717795436487018167583298380709944486726313602685457358234339231974305509447241573065637445617695016813642808488415791513955415294767641616434992990972314571829251734397152167776372542786989089159816385519399819847251209757607019453281878515425484801000895752019965243489255812149519190269222473359942796881218978946647641334051311178015581004408904678900244516431187154883079572414820209318307002926125159290069669542756587476083207252048776077094848382812692244608803290096289387166058980246610012898969092095616202101171712072627607169918055171139234942657574910490965732158849142261509239332714970724700613769975079303611719069880268022180412072740463940415653939955554589584749741785644464750592332844018494141636269166309877564468119166423625056731016045612309249908492408607587152879338012521526449134720573209790133373722184530297124045460504898473860243884112051436860157826462190967121516318519478319389864298683598963817902079913278471877346392590755216058686317446926418691297952037460798821101010136189194985742754630357650658594856360188750178632464871762421190507585608115109831326973142282196191660489780439379804107626996115331859731220859015902741827835076807468106428364886459469048428352259540588346701111100402483445891391333426108163048489872996012266408058472569466926174304732455738803198595077598857634087407220254716795111838591344640333494511282025410000102769533151364036324530478301758407122050347521121102022715061005784167613484475115914116466103779270783319876685285451439355819915902804749278566776995515777023261789668244363916157376245181757101046464763201613192983373542572167448215308844779455865928265041574652347888566514219804156134295003918680363772880705291707723764168296124895816636069232232059875819848036388018243118498289231789277209788613374439265800902517157865326175678624329963310298564756547856166668633281408680409938302082755688546025907719963022872279303565523352307049698180434121218676478126915631557555822503138325890269100411382980104123268009129591479877440939927864211396725512881357398379340994784883590000382121681289343839088144218369425016425154895245653520906677940182169779803437755726210946644136148905003504798646932950980521768466506584498946826846765226550759137491178630051236134942314554199943384594692024220803285362007875918747190381405585934553718122542189352994368890298389714437062562945486542688721503251332622072709904891638489601483692900151815883208041322109511036140656647551217163953617867733742024517186617348446870264519804536268040996807806729408201266168334064164851455465704221460611377549787415700872783396541778279702277871264138380665988041653788714344342041058670644383167554199275570164173226381186030224534467258549176734683219749060415948910268791923975513780469641783499436911541688383769581630827914981947282187758204317622031390659355911239989002442054834988075075025520593772783107945401011110283516469000490977323785741351016754235732581812044644499917047578802043202766144884038965906060463962237514771596236251371651381147022794584357651373737114995009222871915620109073196101948160177761516632032723085189715857575383445983661637403791131080594222010000287471565857471692380387557683868060250273087049635928999153533913394479108051441520608801790045555241654210444670159961937695004070826846656366016424118303581385580354547677956128186257394205477140113666644311757050518566784172711822363080216260447257861187169615779963170616019153032268837158397780096810266167129439165557731546737890006473691152643793731116747088620770404588560981425517698145498905668970463909027506730910588791550229494576649541834883000361206861808731915615644900941514630062451626589357192706007308190990710622869096284864531201746883309497821540431462468767555963044854199798732461318530246146728458500232341469021344439365930346279224628241680476839058540159103161758067632676974073820099912190685678777618747717529852404701976052384491812288124449480025701815140523939088246166193294905445307280527416858264842928910359118689353839329818858486866267657678917908712302991040712869958547208405555664771226136960008379446034203451967103831226493759753530786572154377025147354989969275424694386830053785928069002135020740448443411415424907629921767405840270227020095418284674740006774754019894254163329390287220144876132200040689280532081394333867529020727523782981470299855727548753785210379797578525210928197624774663249771500780477954568305005935843135454895374417689520007103964280489639725533123320040904707383975040166700005282918296911572672235276983572478429731511811271445020377879506661785486136470332034321929263906522343238437025892949159061862521313996419467085657085874340915078683019209658238669620993732065550625088151637725732755483335217411907128814756843986099898568626769584939606582239375926765824061337280438672657231804078574741817338276244505813130673125041042894342279132789764278749929021442611360712730453643566407308733296537026915988535117792609956356079719728676112853842598192697597035664482306308916828860237052087806994130102604631924504814738285251541861789949508959209770721061574787149607441195241474539954526823156502532884857965245898067590560916041030200444997774693180191733460468158922491896645824017432267772861775321338837496155567921656492788353569044279307082129364231571351726334352724743014694462512557105537580863670243137694021737281877407466502936130421932205205676341786656560652274851390006972850025619200340726805796051131659983480356159193720355305262600405110765079713462573975913035059570406530090567287717423091445209969609615634177321279671593912639159105422974810763766052591982149525833252114766591589650184360476348337099104870808019562214262910203030592275736667612611619102539496398051923517523917593271284621666042387310991414415168385450642311738708598420435713984171419494651130251331128305377958177428439270300227708970339999174227978008424221638349317998337355430512383396563237548883421944300903205303050629115299704058229109853428218231775490720825528845116660594808883250848983242064349360525575328737797671368454785928385747446259499556567499723327131048740575375572911124957161022977763249945559521309203812821407746845414386693106000568832624079411235248107429569992384443540775854314996567441472739845616790999407395929087204650207084693008317451827863753791499712292394685369244051560120283105810460548305677252768983717423216643710211722334268709276838486967382759128909239192951008691843502727303950031177553225470648942065630289969772049282917587233004062378353271002287033332186416747473651275140330253871588831142644650030533222890699410059655619426110652393380836977156274918223566862099643100974860523855603220531656361345525019217359573435020437922402908274962669382614006431406101306699718251299156262373037814625558519930273461128702629170790324766659435748003373841646466457694569712648159073623952448294430681734483962251430839804039644466459452279073701350269815230880281535785389774416893925137684079588472293876498674837806170501430218907480994488170678358599333719945731956873206222769926156667587068570323130186205125744808231675949690469110543429001064581767145832129380212243644729429230215346039445086169095219319687462310131620804349303813600606947006023006816697260455589302523043579162867279596758195652645234796157963801948194864115443401053956353084052624644253558599866537612608798554342524429206105301704532490709582235259414684339710827138518557985458881607957535142623532180885361068358423295943056119763046049931597712661046431397913885202919988826339255090638422005076787588266505277236303941074730753182165873139603888198412681415987929364374963708344863957183086991067594458071298146995270925186093115375298405953982996314359710617837782260399558257765174422715815492384803029672171698396666652430166566099204055293368311900872207330735901683263505575446003391334880802037250586027116890415108083746060683828907743368792767867144547998109274641340359822739543217541523428766353913032638378856298700986010576463506686221199231416271379029600804573193105137437708009233702422748976266809160502939821380239914332379996578524903916985061087206946502392455400752273602154517322168956110101116272812869095244965081996964432949222804597721994129236502792500711594015798912867605982908041666817250115785326498263745418148798739538840608485935782754768901186589430001660658066742034361350069703168435790637576261330504752153461827767669283792066549233480022895707953012243671462051533183744033852785574311462324291755572972104525168797700924219710170339373371391682100689092229250762607687276239482798825151346032740517010360558509180571601728004600327029122041976340228110947721024324696394139650032876625568896145171463489595781377590957065855717351884733953936875858578982718873088919428894117897088915041632736973634782634474088695346940519095939528362776805660789385337556088302298478020608165056685458494200924840589126738258981772722036724013703138371439324633940717683042677513311688957299629789114113107294729326445672041316101858664109543696197048826767507118669595586837353512753811173929222056967714666733681473902545479744983293982425269803477420130162415163339431653657632024131527985350352887334363403158420072582298248152832978835143657226554593164496653202193872556559114478707354113911401418560616425220166040031572980408575363951107475919749197836731428478597558168004688645864616493179197352536955176825789580516351282054095497021842410421302274064820416495806020154977804976461034329440258898617955816739325810892699815652263946650276287394269611361375524263514286997704108420087094423013784807444074974049002901554930358718865856999504713160140314993843735894077087675777084759958307156764768099354653667079113509456018993870487931952897930778741663783196714190720134059760871698440983756797069699171843768524984453748982193049132005539964401712212361034351959425429418475964684879811962489493384596561791854322648062917044381791195563483760239671631231014307616062733621737468992210477911813311057292839704103631498124276212530979066982166962347287772223235993742239639041894813904269827763864773900925690562491153190205899835923173052993374908866425044867604725983833385285251013559218273338160142523149421368791289785231509288241254334275203871411442803988105866990921848590400169866174689960428009872783381535643403731803131609930028387970788623816007968161773115397293651290293656441562072930940060842007086556178889943327340218199090238204175740794619426003571279051778094335297751294194300272559832005964826426158409715776080213930611573050846267172888358328081899204413223450452223926561854009861181478583411931860991331444412199900539247433527870234107261954454372610993890258326092037246669866928400739625268314672645221919401187853045510983520694369295474399653326240288715708048269641348437974860040081361157131125921507871456547641674672609410348372590426263816619692204987433771713523909252411992592536601298216320541452332289581655148715731143308981795018569962105292987921247719891992193274445535107870371856316720898696321137942931167533542564875649924689298968629298713812263890218727034038307038688748194148703435626534898319181325476121570023760571273043112832722062351398357029623701151548535167863489365417197633686394836770475473066285715626582732946053475753977830411341797057289137326180608276590424068703344807002507632598545471185503900089712873680564338818057145811794495753364393774926373051456719392181262760864829313195126397803848738005902190202835856752490354714635597169969527845395069732535078171470517155774405112183324429022162463385492659553832206479094100910347116469398148107229225681822669335433382154457668716797138466708711857847759783609106888406118548486057974985436130025266230250347982195443630378080958293762412723799749386527006091876470597917973602518234056149337897690619867906448650322519230349647916560726354528514632585794635955711016033500748863048854677961174311330752568719201528986829031737759058939488492174546514751588416893744474833842884536278427251748062890142009562749635905089878471560482273537864452556214751729569601445145241087104502592787801945021893513607662534539470703301666828902545256427142147113425911879849588090695493040999692393470571905947852354213445174034201040453552957553943866993108247808820972856862597508791250987641425436216116265783271550860396575277604473922005294279599692545254577949839467741067073097821235455410521347421406919081951370098653361118092866360712431477827366412084511827444356480622293721264878341511855617614376957746071057043459848327484656316808656880629212076082591262246495903398820931878465619018657509590463456269366645643663141756629408139783956683966433293048837980060150363748472522146760900509903030460672907759654798284436826550417828193782992546744303222718582866053570201731870704600639468159495189986393213322087820683680521220356963417807567411615113433064207358370597853547872324391068866157743566092277862043078896984387470723827055684286939856959060640973934781619414442870229614502853840277568113650515701072512022664819706327297210208966989982024642927306788995508299792244843181345076375177583048439016729896751188840181264487223116769435936423654243880113353074207835960278466579384728269785134914296644155892804328103202399723719921063165491561886383714484762612361024189956161539947368415083032581341229976885205041298297921177685422967901985137682015804456584379597187975793229959692958381571572822870719858501048412401819116914472224203658650560874916702279396156449831762604971369717292148964592368527615991309727354167375625460498566850031538234822069412987980439092656137251509651922120110260809879024561435129426351039455322497430433928530800272104228458937918961997864049490016486894626151179911696808352607436024539661771608782893222460331939504794289878112470132605313425408110698534517440111566778965658009450538893085345486232213157897036968827483959374681211257160409549659410452241201461419231087183361873021310472140158732616216259249379572935337334720898925962474529739673776485393423469607366134529572283116758601696032508542400280593679435730920063560151939208958546674552968370785400821534501422411805367437779233801007475971691253756636084787615246420032101496638612458439304644618833821436230787256599240447513065485397368534853631246249456624347476847866250954290180770649566943092142820519613103696081063570139091291251177528849296761341430246870524869633355001589164828630593901205048064368860798827505240429869224892726223581728232729234808948001514995220133699579158199082364838780370293771563492470875408285521500362929880696475492755188830270894960828065458133543791240433343493522070130307533323582762982878949155003034368137928863731419171162886421179775835283664421861585357020951602870677226320184428118479170745930185677195601469481289640092137842098672716544019081788102005023281243816029993235763276149099349791401745394259383086783703001457596696264368738751921261173332610654646101504107001783481396474623622094871471385900886501487164978173411209497784838397089045987833077758936452537809014380035713260644022146685021931012278552560123043083340705760662737315614435866196928709908747977357332483687788218416487680836396855008162473063776447604311366996514884713479420620227185635746554906602408858267655212871187699752320455268306048884093841349762583366838472693679712214493699223039479736032904524594165600697897744450742393636420072045930320223072772903324277931599331721332635367764719819349514898438308440217218950541513248493326184496615189381230647013852226973024941579905468944549124266523526180515843000131799041871834543873571353790277207719333220508326786146329925487963592192818659800642106631291089777505721262296046523270953683531419448788402394800133007740587612279730935167558678591926642901471045713285211518129089190782971773919694612219975540437208179758222893461602085845393577001082012197584148629949200015525472786386005936927808071740040816296552139231838713140989536308090272340183200732419188432204260788764713400238500890329242894758764882392191112567855532655832100000287208871492276865189421359287790402107908773367160261737115471927401140310954921803778560147994532600650776423942648465797675485050578918501558093991685353324765211776936842226604926533491738546257287423263873854390556400427723299277719491109689539214830041501626236656352544657533837596301594609147304436948807677620916129535594029563253505670760521941867941774797432528668083234886240383807872924630360863689594650894855053038555185246812201232728025489304071262447304166092044606594641055648159363662023648579364505899765005292859315903317263900124835909050592514006864811974523492246562315152642617392514365527704265709913266024558397638253859729565162788212054114389233027347293286486736968192889304985793901566383451318018531049862586873961969579113493795227597780215172517029012062120038602711152288331767155226857212265722789796246743414059698295350416806608463501740382847419481249658050956832986968680548125342396360572649829215462234045490705674835625290631306612421936432685749222385568168009900890841685296414077326484207262076181958521184608478945729077261391466309471293664290448360493669766399354563758660069604367389136233828824913792960941753714741890259905924057322055300648935890703397005399686986029098290929658083139255530338297006309777589481070877710139303799195110816807333492087978842042027385810560853328047342588996565345651539884058714995387166110394100520351299578159567262678902763996306791158142648902934927839654059163378918223030405229003331651918588872409314087552638713731264050080113595155798295509185192036503552855488107176364195212418367725692048810695084147410211375232107598922199123619847097847436517127445877228603921110991880297004020462177882042406726508413351099032000315148419277706323794115518506138689274491801694519734223413090902732664065826603592780506607959711229558047922891455718054663686955890215908039679829320351048850686245733190914783750184201204113008661223799423419032394702717164550381879749024249034236086564000201694049071380509326140045419786958773794805789083725277375528371119728329158116187748966528682327835781443511510777899371459582538619478407563649193302383988153497355517023528830734027252481870964551069518714861189472428125183968044475687606430080582166020346439424630574179848260571096924629014740914099250556195317405174737858143717875985659625700229893364207690154641893360915984602316982479992230848392474482853970867909219011361451171236964727798860512353317418093075144118567999624660897753043096699897553721307865950414585840443630776205032775772821762746242929309558990732743940770547184824670342689968469784853554823590891632573356448163301194586224016862945799682602409886158899558949726275555606069509239200260100702265046541375295469976764934311586603405836950891340080623366382406566775527527192385518856008858643398924823000013423191856320208510602600486298306422654348238892918851511316818510538886451136148933798664889028991884259972097447566112936302370905372494621837744645205190600177556064808886131562865311092112977266463668627046448016853339565150613694426789893890846791943349098288007679052003303854673034078222458187294010832065041079714078106071683050595512876108266853900135057423996646244083315441717774516867532933323404584884907247646274587468339461395815429475522552286199901525385770534030578344749069414389013743498529395192539867091221670196943392936523302058128556842804375428072502142083363954275027536971567418784526674645476823606376783543232498692057560359377018043810076505865389196900208260538719272404354187703320321856450756704391756192006804510770622605495394011051841843443791646175851420814203763646736331923561668442207183798068160197258521892423624137143130570684598266113344774282806959493243666182571635440130099945593770673782875467481317341279213168042948132527753085548320967685080810845922871088861801614169597199010446993532396280360474499727715504371970247172275856262646997280424073906044344170383412718792190923982395032911950336953506974530326445986992201018405276288530345846109236689935900284789828108614647115559151096273178771638333175613846743652431631859389514477497093015456009659140955593735167854788716477741450377277635585927430054811423793922785072847963919922542063694566190705535682702692174100153833190292308046630154137680419686323400270231654981772596810345122260284605041806765151354022908745022544098121926787729016595417339734981764421533722164245708118183098467545248510865367447518291213515590371177623796240440136111797435648454413754222870145301780973255365804158130194374770620285343256588601620217506716226737532857147931925131029870795455471686283061692148003714452440379994440672297468626313414497785971013221634642828397299033654306716067877758426201914781646400431583768455935851710449209020121557316409208124208318772137736243300552321610363413366322748876111794889084678049126548251737933046764120529327908205369436647424496814849717315138593574757221820099382360480928270727806451686540666178899329086558637898397508969664983272525411616404057799152333331022060224266089720687553076311963741828004321797201449335052546641793900623248990727199995560333524852321349721852878627293080932916775783344270223913405295601995995068679032585446169002869156956362676995281488945788390011573292154840485121378833360316257854289585578265273543063072872953831711423054232649731283938372382341293420661166482976270120983606250534351480136606561500580010977820680103413334306701193119985220253417669049126250234511797823325090992956376837699376651663640649161387839007218168416937435349008132703172915456753591183368387145044006466796056228235573285428173028574837399651603267703316160534770045139225896224261032754885531190464840845933581871446388344212277999971800557929348452440807621120559015611361733494415849338636563964714766555177551947795631365497829877797540194048768126247009307557700047176605854595308725562799859095143840986824034080313960382223539940251475310820285085411835859977233285436012239106175180414609392460370764764842982471932786801407258570067874962877489664625698003628117934560711967016468716870515021354225941587586979758386416163512436317375287748784179969079846962272877118024838970436304869682473318080624759167743877450902046613314863782318424362719404436299246475551664308173111361716139203555055678995004057548819249017576376077532437624550322642172777853695947542691886501987138476925879077874117536835109630935002657717620132229298187913816323194436103387526129316242298158438843199339447402205531985469061818662715848963252562300666287178548636068508855272523647584816141912565360776458476927654933519701156203094280255677881628483121488494432623624368288820149050491985814875633158392972845268861133084785985134042627147344982100036229433284647487195316998288170231453237497486553445677351506544547261086770402487721719867977832461622547298302950825733910719446157087343724505316547570561357109230206966086872489800617574251849554274642602259219133367527708778505720869109712017349129794256855283002222684099809328292652057261292602176257471489806562184489313479753106067184745447314647311302921919893059297082023353509565602057399618776092696712847417258170438731455048103811874206279263752401486740872636315194979083391377553455506764851512921934988099818644864550161109676546471683434408648642895536228244310513021060756050078671911466355810003860891744405910631476157612381584921720769962968216724744479426221988870136621999066368301441247882070190389574503915241005287901826382356626417237627805502796707103818071303375923809202078092859428486894350576260509635956030858542806277092551451722063268624781616091028191297897787591537072742406457892575425906301201053522784653494289715209922252752788152212927676615051855064645463732644416800308851406383614541745976374159657411561531384910987335453022541826185637618505599036782096442326644597413069138491837598410455560272566259641593657455089105731481331708992934515544114619014064772435177782537019146029073330950247210980975435161245348781007794964760560314029121189940924440374865968740525207730625202898627196651668550291341242103846973615460308508129622196545367103625638734243852765474102553515880157612962013497916490493051791927442750903812192350219091585287651693554798168808821781768175751213014856510945835085544720522944107617560012254945766056622076201721724577216782709634262863065089736814917964828957898250443947871892232713273096490833785011466714059899412221537289112458420114280658072232202288526029629385832219098701856139549627845440677031216035177230960311571382586737099019141796459913080973450302286464881219819934600389682060400579849275976607202442797604268631094439851243686502964201128418820988710720579010386731363066776358409841001936181752986714350311373736410141653198130184001017791020497967997682754379826746439696881613299841036942489670587333795378810662422207751133480683182446743956716127640177791162161529297000964638917620504327153867211560753928313743347265929121585761391670451340230835583172537300526882653736422039134602962850923157627121700995284310390368510701060119254032527850477994074465955993198888311008874504463935338578739056913804957323639805582059722904256906726592158549820429484385463949292285753997812511684846321112348189155205142007223113559843924777120485627520909684711414292508361698551156461422787610595895953724833185123110546987413874764233426311730952648794012519596155301219907535058282829448716206002899566853079207641420092402502404200267388488154261973785610476925623520369770752733664460028925026903828480272677145464465897643254330592500544770785171649737341725064691925110558932722346142286546771240866767188228097415222451823987529921140991326746110039691198453149854861264206016074183258945118631779915254155036833331321650335070447445252890207143863946173065681215856115645910052318006025918495657281500061418652996360088692232310619859944025849234985179844795783238836605073314888429812223121480170856035770305282182954553906079221912396679974000399175022219938570201437945870202319781736644384352593093154455969025919230635207578050254633215859738797013354900840262481685680676358234404728509741815929623102780935645032059472554593711593482928725762715428783427277569212429233533766293691997938075337133366994767824810709659876943238760577083674211209863028975609447517891035967290702477987834424853347051705067359532085763537842122929501305505636195941121087799238455912949311702212157623480498681771706545785865933943315978378584774501129239086632024126653242232144949003803971319199706095408141447187703598773927952584273750021911733410233195491596212920394743348473085886511587713930409965317007331387603972933407060118577895040861954266241934102526800172447566808969036490434592009875630802890232886748906118864043869395549481712065030952836895255810925086067345370680267132088124288858666200517184903162264904944362569912505206359614656780854275079251597833738258078005549993478513024882922840861095930075561521071704862861430819976839890859115064960851244274097134810219662838695924515138178649505268835608458607369367165000506701334513396671068752302378481919700613686828552500246131676328968570641925520139518661084453493050573949608159690122512079906495932614111805624671906325159300557570069302155331720636707285804383833571504443715191885091880142274390733080851899390575203570471338165395769045458541242359375256522711056104991262140865654539830013798038336853204891393493313659411305807876881769759936512607126689136536876248989089252591906523611090437069717962618182040538961105080012755690435974748127593850048630998078380407836833557773716720865852878945539263845413663858951808560674737499288329246001789830613583659510644468490555819310646726850729886924399908803321500788968032159334064252985448411066840791555809684963853389932357990191906314520586497303091568581085816851970466617099385045332861377799123411563719695187774114370063622216940714429971280018574923132521287085204641751006621173795621825139517957647513495554020057748385350583435154004093025191425211434417937895261608713546280906616114634479290681084335492720444429912256954349212934697415086550786597206838509696659540039787429659922268094224769080537552472273037254386180397117536388574002690270768425887106146057057188607557841792041720837178414440296983788074530946717454167318459804119029882960493782686796000971273591494252775689737571433569743775558323859294237245895363106097388871979900462841564968676750328803484691676687821186479515755723463425372756281744038921294307137601934140222701518198581282899768343144939670210172280171204030605590273884008438216469198963429499838469947069414351954178363766547642399156118250742723850609181010522700206679625237288480653161427326977465429816080161153206569765280991477837095009260268906896308868254674153206476588004002601805852583524699654058157220648696978852799876194990880779270513520759784938811834313316941076496384084553127983934988336244840129262149908826217536860398702508827275794287499947132931377763284117452315910726154867945004229196891327264533198317136155666418266187444844576326235747592431966901038644005124401517962133082036284569651513900767516627108775774520778943003682776249066612328162470912432509060948429540892208931577676695871884329955277890031665515540058772489600122571032466325627281975477775840935939636935007895779771549303561391281164145072473300051235575603997385752865492718445217630498558632050362830297469073494776193879425095513054016306793306633521407507894578893117553647246418433788503601573990131061073650223116219091660806979799805198628463902706221102007395641474154194741094476980650429427181547376334755880072402490322357485460964504187938717547146906984771035357467583202766887180974568517249165334866163894838634938865492128350566498079223456097861654934447816428236060993783927424617982519177502646428712601946843001995622289046870294078878941551735823710058757924354025961094733392092687820894870460588494253367200073091952116277013974273183751960767938169649750581894294662552433909185336346913619439886902584739520844047683888876805437043486573948800755974553756643469219080800167600468553035837885601410231958893880935709923284200072731230157042468603287773710911000844548764012277140055417779775874492293494130059224319624934019149803464339638614953223893774481993374394203642894867842912490612020313608294644637892501807429180213399055051624198359166235098173285914037411916090734774854524049190718637820254925813770673046735352897461074311237630391703243073713419447255534220239454781294036170069165485625211265938754141536870783357129837893903528250896113729763180255090776848548126808420374954359936110380224496317722750370053588066570866867864937434879539960419524382162291446161685290278747581787415192113039804892722917079360239357987641330793534694027346843768667460424437938694421696450334273698662582209379756030169766378260049996413038302908282860886433934157884092564786346693025308918793617951912073014818742060675336231153107590213217491702701184918077665643744936556905581161042077864126484378257770710419916650850436532963366738998414471376994612736926216721960490029722597053703735607949666298049920577521267134075063657026487383103617998336553550210587636290636458719405872993543974663225688890566944187072663621734574134049882663964573508435369654386540565686860888584299324114636877553437194107717166168771134287319122154345864975301718920161318060217097259039280753811010737742455002942464918271987604590219263895280606002230186770120289058652301055994690286939344186317556144032501043271242282311481783557004851918995498699976864069821954574243262430182545425016983031417225315136467040424631170018707698977287972471286583064997910315892266397668958138682361259699832762817175081103812753329252622864186953677116162273475593397266577319385891201817725446701672225895446356898619764725580565833014071103123497455890402787290140604957035051964238880875227841308194827014699164238637954103751315258034475681525303313168003714247644074009838528594297775944256891796627012256261155220784340062364052828737693236269011855459594447001699377294605925606237805789241872462714175969779582003628521753840220815356458075474564294184126644699412417665049982730384581184079497367259055485493551591675409463980106882358620425859523727389657967803866346505260049150593953636855822335392091000905628840837144629290322886342410241518068553205465420593304813911429271717842640917930903457901038930824346548342174245451838903629484199286989828835501320312993043845742030516728842779454804194501212057477517256440031023923236050050029096804278188172651726045430531143595410640352099531577768899980971477144517544216155180530873698396477561354354967629168741002769484193239425362602148068270259075274622141393387516814774442934701186288633713328019388858662287416320182550868991642637143721178789004566227363747627191416430775352563221789253457407707870941863774740035885173135400381273659571794615426158666384827098545848840712377102820372304625769999657106766365220605760507902648725411492718145247326330529271490160174463142901727171670727675314234921359057508083306957720627880110509501200647528448377718639971675175511365129852247502853487476261764198628904949609098306489083146042949223974315075959783373027861256528710214930957644690264045265896272260839688956330602490771614920141446337082635442894638514024541443821784279115216008671388367846503557737215309477206080261247255115149882816047244685324396800387957580765010548449596202867546078486452862552963393387499458865827803869028967569417925252876936785923349094549998382756548032323896452706808498792426665875186470084336733693734380312594022626531375792325826234576844153475468745578125755161591689077654398277418181854321478794358707046054474319915284393113925868964983233334378933692222770702071822610950187588801979101770206189298597372762294427771093248317745406605580766912977324723213091859363430436535545400835903396589058689128568906431850093746053864596547633939226090910719668671011978888923319534986543115683725871128174623683291891472460747791847897680794640481671795940060345458176984486033634741202383323481536242587793152152757404171855584826038526610119236806655637305600013344009688683499253693921537234568460704097284608237715583710909078610197303372544623749132366030354851167299463193277559378083071742790622599439219039621966206713635646376542943229234981259749985382268768863327391399977171609956107240600395650477415956383722527925517198871089339297143324474127883061545796635679148358645581251661202208829153734974657551338112095593217588378966704310291582691891515165550521696701461513876306841226056419479014342003390523487291966266147750011666013965421629908618583534529310334455356274996159553134959348839648705857885771362828435554194295572726222958918153631254074529357337486199706821881046110275594182294051884396113424051845674623655395739193546142667699656560949297017479525617207898990408271295487924698812989431991836168373059200004858570932358070083866954511526999832820322390251303399274090319489709940135905847827574075355810392787666567159449141785249518249374904236619428304251999866805451271761077439504433280238256230712054276642706730984813456627206751482596558254407748011734568140071494047113360398200501097394071112333431787250404023045827364380720092736453109395559645643384628951791459054147008346542212942791427157101220583129875782603902020804948466382026188411304333978967679058645419380308202120411290850003637334945028093041052363905150450413283604191519662743797138779256506065922211439109436332764475294205337959154397545777843758733840845442736891834724245364472952726680634799247992825978786647348254387138926692658714358193503680869919311008400384021210422197412975787933171641760116837596574909586730358217704599919864353370088271877409508748826677244115576512346959638106195076129874838560581394059906265197272857823174247765033001141548422211042874631003591093466792390148281806607471827300517509852179033389378105129151861575116682567223957318198748612720389975267582794929786371638276448587336301880030742604481069516219417261026623406354020979409217681858411714585536692410514435877381282535021988617930209808563437729349485280032100249895212444074487667204952799830014543409253374031489062520462840205240574660824764526328502720273878044343231168574324995729341926776840211675995198743103680712674220578610451777224954230759120982640887770780387849438032823458945877642926366274719778053675153283735683708478543458268959734597163298700938911057574617137881164504810803904035275277761508673411410790008639692034718391968234543815445634137666516260212966534278972432816993423320199937528657649278699726654928246955273994252318457485554569976722692675495903123276278738340316291501648916265339434848423438468538883680260582269947040033935580572639161966694830520892737018194758519805344761041684716213751368961200942108075518819858346368163220986478546414120472061122656835420156728711523357908993667639844246408960211790594631160092272402740759878325509185221669901274735556552202902293508275125541328211860826587867729275765901638839162980500703385616583684158503580476334038725767987163522843627455536993560900069062485507688928812125479344942208600744765304624973570688460379947176260670406407377696385593167054406750928277839293501098589162414824795698347038036065192903415313585519167212842383778619094558745271552692300033697886852908636543322717629293984226861507406355173439665055364589003894424778953512070846538784973940101194177833261180198252988929584604154819968349381107248025449462303742152654347983862203764944547227726811474098731834297273693939408544462326694320514787671808495304364273293387041688415520462531110896036228395304568392857188670726217474998141967366682375923867120466293874336821843440667412589466048742300250210995787020380004887836672165238819570418598022835020231913461138325438094617289561911075248916454881571632047952645030457089746225633736470736308097742977281501761329907879971020458358434893147552419579754424170366284295042675755293662702000746399389500745566904903545125019293233002110340573360934285791292771741714658572071799707183521545485899780910182054462515276786998016505536417055361916944549435937913027765957307281960752651243103766852268275038264160522749033464652393812470859863085524216973677353537090104722674195666504802307667471964901357659529945009925182918214857154854167362417398162185928762760364895573669128548439658399145373406738730122657976878526521416835550993664163610690392722436426565533245940517356056456071035749042836170886910817339827886175205827049574664694663235791398628113076185212245462174868687299980814575554955659182666702041672397180303896777878534208288334534361309556749642074365469337152767379875153027834918633540161814188618940986393977317342016920021354983291440625402885160846894446242556435990395944932843724748984713768319044395123308569551721578265498480456501676072979960746863866768385869102500474164035711900886416584096339635314074959611959236796255126713685477245917160221818322831284118557993163523146105381178938945947396871371936972748122105164344835958568218615558901250911564985875970673198749853832865114755381066678838360723019256275028548640020499338116356635495798197671777475348209952472971857184666775707507740543547681535206978923152278090263948528468135370480446751185321869547834161571975214365058743957840851043857133117860123185294097540758277203758601026453155330503532790147060402981263415318234637934914529523271890580223662483642414643659205996620420427100076412041827510393535500744490766439137674262234619966305248133761758256987168410322104292448187232896045300116752303177005447295479359529855896262956306725258470788830519380118654283843784719981914429913043718805788910106722074094439840430910712437101755334679073573390515947362239847973813577248004395655179977391408118660793008745947830280537030153311273778973797670238141692400631674879477095246665049549346276979460973933504145532759224465553083125595290040362315480396001022735004615271080534904713404898502070600835798576274058305426330409535609666551179325594300580987595293038455563278222628803210827603086587488152669754634633589317594824863854476796947025648628535830038574304825142532101534399083867763430499731251943439277763333494840539394845943235572114593642732090053547728659182568262739844393181206226878451936391714050180246413116105707878531110573257823119558498190474487968193583945892168365457621446170586153100094644631222174704778913023218907985383054690533661176293152674134622767909812895234704468684476387460095263261713953662299283280276766249026734421433818794495374286938997439215033326380406443025109642355149988148373882594149328171614063640104098542463574389973830181740655491160857999858672833388731906273842430014868811068631995128483544545134142243689037942475698779175386917899007251349676612541692305819481031739160134060486041987314433852071129317998084546883981436193986248637966436173752404113359604728087481541877075537318910388758288183558837575805902082523244857859395599080193416331998497395750932079297494513441840360109404594671878876554814143734086437120766172260246266124453618458740752926554564632638439425287279767324331188060496336338826978291638373866492484492905883870406059788470160838658910189081463172389557950962261241555716985227056167927471000764742604968534174290380645209321613188863585802128062358460550645985101648769652326651376314634160293974269353352874875208688734130577762818000030607507034094411937961772839064693976661793317149707119543279308540582979394866688620050229536722335754998597677866060952056029066336694248692633058724616514201860663282662098279187763176534981014337044353091896387502571771529163532051173902994144526265056062634285776742585462103791256510468190276393218667530100582058886872648667924033345795548990586616600788559828702045968511905256751523115984913468666838940579092088331028639946116834593729606691410129080652219412508880264396681780876796613960567114497548512013751616877582925776623078010834134116588788863978393136283128003402140954612596393405524499673115008171841516165093101386785998153977397191557743878218708913889813903422687350514601231958360496069696979353598518373484598975808362573837101683233470461845725279369409964452532481018692814007648404859618960732555587816216025580927155825117036980487823208547083839046432982415449913697116413794046687089898345450995834401862353083609690811688767190464219563703639428288725439601524793110610321504226249753546039210837530430026120734919544409972989720293855867261136427190247640560971101571664027063887435972497013003935838691056356139020158820677754693781781159471225915289227354473533477772552652758006121310428576228081394591872105158795862979826392637919696390953111153701050438678388733843130435721246894101903196865550268696620407425210559569090198919552663175333382929358054775303405879055135329785922230810887215149916871456566977422392832256476979937841185228942089352331555663756320697736970143188129358284996843424584376159934706248657718614857654412113853081440666339335103720743427097843066248024583823984923401623335207370096405210697330955840600596644709728580958798316838465921708821483188946162381387610597969163224281558503675722504534208382932001151031609462052170848470146302832622545043129351184682913848435012431193395765421312273001741771201075658092347325930736166074836879814618067655139342926564042606634849878701414738908310672540762283504285558485037687657864727992844850709554568518577526472738614464694563153145307425348014804898208369000761986538114009731589291559439680847064208129692650331211043126675758428763804475600432660544867344414450826235236577598450469403588414655517038981450689624235238495681457784835485368313403717933009562705855245402306835956935236513402341520506453729159174176607229045606472577194163564932700208297221980773167804973120992572364628444816234520218573064240220133996414108263786363525275587456948720666873095982521152083502688343966646432488382665187923569253147281071340801117897180793699421382371334320952634738850623353214187101392201063921144503173785272201108887267411939842500376863995096778435623682240833137618900164687918770030033947993802392343064714329505637212505276205774233487195247689624631019518566431000198782673019767578277635981938868666706925266770414550643469918554334044078911821931364830181869636658305169662595541384465092964396143459427470441685506899056415125246411313915850277864701215224256519912508437339526529485408760434632495809357334327929429655737522075132423122301380159402239033428730276416897765268735144453329706954517448031475780602543500703867328975835876514725552268626536585877549740219872681118715216197537297064122837170512621146502550636684278027047531291535713881627522717460842380923758861756047814481272929630388876616394391280643697794375683718728823552744131403574597679606826627958041646380329812335387992773661836326755147274164054016723142758093474275603333166009555252215578365012035293807140366307584525707836898184465502889910554867079972713667210018449937492199408761856056367132975218735785337556616426837604869458931542473595313240319910146049110909602723286711759113057541382003811455286636204722544720661066752754795620970397837602960109738538740999934074236616436612970595590199104032556992650424566532139828983435353464998979335535815764521098230575328591401395040525664565796632619477645026462196383220972819730238671662383921216396743230138361981420946060353510437536012686852896362104889576424225243224862825473469955561408140912756224572284008944539101957119472553911287335637811836493232181803072056797852128300178350567905764827677234917494484868067943654435621618967090971630442912583200207767319881229306674754758019859017196679379780284430980706998946669384808196251712871176433614022184698464997575982563914007156759653643433470759318052422141673256884344744874603827606349758692602006070710841223620964840088082195941112318011363257291801048621054483811594733282068105120158997706039399097787539793300957206407602129287445523960056223014753230152567341444536652176887282074390233478828529649704610823688881801771745532877875699655705275971737750447403971263554641502620116802538277585395525402681213010351374471963971425472775431757009557546456653234232271867443630027715927173496190532313953912707117381886754300786663727178524460649391052012996973016358099131734561318098037514151739782792484322699800040940114351862802314684134833196419658225578971150619401631724569646047125678687353390338824437221263931956639336524410035165172473774778124251060881961137645358399277297319348252250281646033719759602126029026752373148902956222747211704568895126349651093340652450134692873178005238358134977391942739751495988091595471419110997911493414342070323466556868064080565963542881111326126918396140332766252970002401574312061875848928870993332594259940755159568655067754940625151147461335167677705063553549538451801356279186622593425853562743147326940773644809136940010611302354711454217210581163691074129183226578487651197652173435485861312899981936149158582798814316486802774655312291200339638496052468877335619959547684263627730126418485967969782232721504365787782247389757029637230446491992897107270287012344951571467233341162350277387611924870880201536864211069411590894280679464401898023412734185399339399849180599773091846664915910689032603000549270175807580423028697183575828176290598535814148463017963144734026446809126124235277733875733202530463092848040196960825995564771724019005447857467950285922809286827373167202892894469963237197340823268055464819320848883967644791228720615214273357929398949255826768614879040902750664227437755388432295840337444026507516669782885870542636997748978161023099771240110157951957767510547682341952605186534540791622082932318573706684430289085251489758201102013128397592519735922554386912656658223528709741950340484479031537147967504160654682545581740440369541017679815395677845836069398946746598856911899290073414186115573513444629954309026373789770214361783589170222072037558407859007321380959600748548359197618501302424625719157833249340253896648122634259603192344173564275592622135901770903243654706066485352964563058119223346828190279503313394675524472857902783598385475359619703002423637750958496000992472024280705317230616294661179282855948579578889063121012447102408307045001182885371002545412189243352630381318438230385849708686164102230376511709980918366251337303117513406335338699298587689237083719698253353493063606154062494962866144001551206368509394402507564957129439307854334074193261289823542253061927617068830877596968520927562498120296573678789339222329482527569960304452180552312979225262887620164210391219621641015305509220219069702955820727122876426834710623157545638254167598338807441071221522844510364257617248578959504537999059739616817845104531979381571394231439358067896592500880292751755199721563131534574258597194892443723023270137356480670997935666021154550510353873931422533597851152029340150907958370536713595446851362689461661349600496938693302992573361101509319757611563364293647354468308239969097474326019938682497886930269161357047199949188791480288507937701175258396667202705736950877693057733791228132255689646951083911301490952359440988002000878774765806734685377492359876676658887527880704459267499226985652153549911484488821174374982077563594219760260467242318153464282994031994464807995491192367684569542824093856316421708348698152986309079663430483872349115320162657285597701119492391747479037600663477029936388143495891358516826366220763907898569537505008400778028410601543388452000431287032714240184865380727857006433651167116285207444910799898917793501187983837946784182631561459235606654439325317859767048300105441702438940001752758945504844482261979394645966605919650609304674367599278997494263579153368627886877739909107917295149158710630539131042202741582950326966822582176848085403959537028958208497535072248277795440036222067033027762796855510319793270109869201624248644444668132584422283178369054092870909048447565590681440610087456401516501046371057898587890042128082744892427517233925864646900885928903351879993989812312158928360690931530036301846017711655086630779234025982067974726135845880860289458930261890898481596512903342652733372103470506399964202925232113079475588920853221524214187065848142163659582751504565656627200048061932184826425777097722758273857399019096788102372680707626211166045684569948569463788710426102008325663969112806258637795194506383244738594974174050488152328154732507617951035478554112288687828874177192720004051473832792364583572776326133312685337076925930996322562330131652965581171211208987835139396299169628253394986101550470228545735556825165909249196909005428598633405064080614828821978152527131969452799816696679734611545312520081827685701669834335183347685070248698580946355381423853704055606236704249376049689790624916376612050107264522766487343827255220271529248752822054354567207135770244427581450512075290074294361799098086189745700010162835694472523441237209286101499931711955678130305502580575113579682767758206118028732168382061257923895693941074984010124675856993237676008784475852326942481430290798271598597450397728892483266221832615943434994851508405901360027392274097821463879803251033849921765053498739051055767507199807698838328596643665523352146745454453381641482039281321021953005804360072182170416269285362461471559585118148836938817335693351541529824794745093798424101571600677501699743078254966711906259605207184688641019074981157121654822697211796459277939098621991508092791787212180043187191157195498431760316937656710382071499124470100489017289314133010373090540608991169088923157773143163177881585229313180051393457686688690897903134967461409618671336041780043537622256543930080104698311266542042285925698617288844868553197641073418177807004111515569924595469837500429937477565989098221469929199209359176169870934328653892432178767744123398219052370335708249560094927780321730783170271066352549546682145453118039326638907126943552501360432984667260901542602749421084305005491815557039569357671583964879157665159550971273757151584123818930367773629318682773192793187894300207007625519452752416441830894657051911132663103025636182093557330636547901944544433013409034565944483482632760656848852195573172639796675342105258879338784204306037347379684670150926073642892422120263656471259716034239955269826271038960761462862704408037434751901743794420392322478240130853539875802439275241150398508791337531532028938454205345932762401996173979224826960689666554274169041930997400829078247924508362546197063796018511172031695177534745543780952253881335687139545393584052655136085099245908085170344172686897047673620039683506206522633472352132850956783728929897925033584682915173609970108170625298067459296858995331687015496886036860036030670649558182893622173633683481779653453308739048560871686175216719488506588219404472724909112294341467513844412800407864474344049818495896995624930693367465697110458185193379930103879272652450066196241614515048308006825718927862991905079178115360912675460143640125790378200979991509164061235910310308269552191471063282964572098570026030824752002510450275117416243191455627990002783710971079556918656512197962705066966896553380794181358555546129571310003212183650021846020052906180693592533682023469515403092262665643880263209029020593376186116413245157350524781668846536438189620953068514921973369965364108048705972347140830498931991146310360678435767807786626253629628572855636109893817625417331550249462365487401568776584838228832494922937467732278484831530581786654279090696362627663410566237824025075643660880945286381213698570423156498172350077901253730774894913704369258993304986685973783706543707742080662461222316714738190253086767886215541261867798141869240531478048798421277481117118276688448536611326795353222456638150883688204185104597101288146557104156258811586644711334983403207820596447696280484005541558230127084100057195555166562945589881569028679633541550600242376710363303243463561449432142601029571143701974125214883871684023695657972871513083632149856056125135829059411525480753958996624618773373508062615147764860394800637633377914005490971360698035396263488078125993325697677355105297245023955272588913705539119805768109078506936169744967977877509705927336666355852918027905157292351874778516764123983536633027134407755421207167936242209778465973817566186630787719753386159788961672422053590965293428981980747703935465449755065713269066673430408582483490468474946188682578929584037451362348970692086996805873672631752939304389849738995344797279786497149114828454842188200756067031670517118568799876935957297065251556981185139657821656638323496765077441507772569741687945449054844759244598290679920823780731764942880106412029720824396923174371275232844735941832695612626581411331534727703100744593556807242153412464855634545133785688804092255465713392679598199054763320183789586230319757102690676018884576934470009548453989375742118903461078732448500257192830101881555133741608607269593807547751952144961434438518955478964287650303651710166848780937415242921001559484228010230064870975311261938949226832392928324405416643335206693163373129986187811469178747754783568399180174158065144236529311646440472430221899519140236751588021981739866776734062731862955481040878610122045752785255192790125631007136883966788638595135311967916144857058201086207550428504109038294355888097827403419713015132244612288995599731771264880031667611777602437288218749727176858543968900299837445919392827717992595109692796682510634022541143546143309838042345597037723293070927650043387106287468960893600823534067085411300822260523738518160056040434257564134471209380341852414492102839271558690640353286048894158449911246847666848096210187873584609592559062968201739186939541274890433905379135145311033317371215950654674633034020006824178610617687854315594872095238961043681629320045810769328149931140536976595927402745782514706729410169587302225129729626913569620226743658523898741804495210681158223650168983069949047022294063534715033993745780889754430936899683608981233282099170128943721957059383779418280785740676606457950063526449177433143489439551525512453535521182971095693629342819791089905872990773442572015895593207417823924028600083103939438898659066640485226948449261049664095506135049419623306628840315642640387952641499428142818606467902384247098346695520575782357216027146594378722360047071695911487829821798712017508214571135624605887931832775987764194742019648235396705128576763010434628224800903169364148450604047953755830622918048745945585580107203767645534144182310103218143312675087215598087220630406360252727846734215891558524972584571185999133418792118329289361711396792695865467555586428013670556900452262400592300385768638227059629554612875378355379286019414701912514420312883259479358060062465374619055245373679181233872319909453351267507344212501722056900012076284132085213152023419505249648858112969009728003476956147140031418097660971516534626862910626868816246951622924387747609689695372588145034981969775870402977673330166159539616366509764058902808074161351276605995783765279013446719177154612924075227073986656053106703558384142735518872309738584956415066932805409662348015686465973971854855617437468884352821519835422304389109027886125577400043622773962253113838388603209518317043204126685380378343739480219085294815162565955658557503647413973389778704173826344174979255679286288500097294589122594519923383649169695734808819266130206078242139962563798743988785772785099811844432911487419464147765370217306015307993017640789334014833546464128944426832178426606598303428856213921307948712672710971173099715672891408195343943397406333893573567186427871955482948139741983071837433899858863616996345206250855644326736070575288976966301370666349864747133797984151734175312218612564345775805850034551764182509334696546903387033508741714283616459479931497894099132128392691988055339522192954206772799728397192073975361446514473114943853186772857514080325276834505419120868003366502030171610223857910740457756970967869350274322339547935984206208801765734162646269204699129852659359624158453490757794963442644427498109897845555403674512560008813815181755095222036479775258308689411434051674370565961225196405690868245893081910091682103609838153103998019622040793790842585971582029281583134490845181991354476100987918815558276120451720082553366870616873630468752595948701697334625832818492412535031520705446634562356384620951641102922988979153329494745456222377013281974745122541175579194382857085326315752309633056680326083326220715686133652900576090463085978184039665764779893028009267006342645949102114061196465964964658200746144703204892371027967198625488584622494174530990603496789978557139464648737719305815471265191639452789622753113634353323872460625559584400831167869188050589574424603091156138104851534834000460218496161372623790978868569850091346773590218550444142284802811425876986696333206075127965781801710151047902309337115423677495219483025147059905367583179987589703100525095189828766028703315353252342905497772348634342404765052499609335231529915249724098233311976091641784593412312562439037652418009959333010803652968987075925686002612072115225663648525406598643969374307558796987060134650937479215061166042667039482202687704595442112831670222457521326800868000734347712515120483901014567715558687674559731780555552258891378407419260173398685512519077741113946673892584906793425801907644166141006871138504072103558885694172248921615162152257637913404790799964688781032406106185113855972879262462205134889082930363947293388263716251551017452331971632233383226362379569433882062512242055668468359023766906059588596338363883299963462735553727355534295988164897322094494796603132977717170833157655417292960291247661509883525451354946886550147548293666070517971140862197881578905354827438870273992446417286510246363568959207198953747345062759669643772614691123104988466455098134958989055371851072879983207072002361397278947418837639415039342898090737604438379501761593764746836779711670651143727458909669484264257277271515122651612035363205073518373223628798967658205879849026884975809846031842979911865707730545004319714758890616101978946751002311501520356023564225813590108758974524315561966554596842852096402502013880494767510117861507866897535469115388087724107275117540741023406829982637743884464332680732268476857869393091016927168163095070621070079977080717649264382478085521924959176422263216730068757077955942721168585468087088224703911195926858309274029981165591114411061070832511352818113592570711198855186790287839837099723817216054750074996205332085549868489332808389837993608448561189301094723418390482414041398827003040303059020783289304403678011947328103132220389354491972773928204275700777543477383307535443361302412551587307589688151732752626483392606933875838128718813892193430365536822581581366230002943465260901569551933460725671306263116587374055447144627452873841235303316446960609273407712226334141301525915962417256841465024062140879574493186030522941804254208022225068716542408500782224920542969292677720804366575889595156064520641863966490728588429483634261407370090687478536154817782599282708744690025871130547134764996225092770055306134052706335153252397515254180593632884766599372074759602578888311076624323649233472734047773761163298763044788889918571432558835862726342736949311071304135288463970888348103747646283901660793290744216287594736976508835748079181641408880925585315452389874636302286165528778852717358024147964171984355174685336070062589278334779091901432577166385693745898847441865919598306259609362978027817707803597768995907209781915024019446717736785719230564048877239254722552697303913982906080554987786708901217729385276003590387370827493283052857779621429481095587192678189753521928163364209049819367824573727546957633004436223622833678567930751353513551644512982194790482013486932274115470411461776052678854191277032721389970094757974717384085062449172385239594574722593377931020004432485991165678553802563035898991842252655996278402346093168775395280280071442262490046112690756655299412959065257235852888537192178298297263431028451810538471957591441021125470976598375382102470874216088255201732719334670967796495213412250167786587553105361005540518382248979686189635365733405492608897264205933560835266249246713874986977989737830449815147664284707541649399545714224384206127329279322476649853765469951214697503202424147999909572840759148246993637479374795327656945184068996914798836230588238353444571852488460298463842390497137115088473127908331714054726898417945211003113313521445650194804696220317048933644737376750783763284458972211495947753714245598748756741009082794673834381108124352779893760244525651368488084280945823108040433803331793869762546415386720163494861262570242797128234392548294418743359227894449915002301354952345727779828504334896730429548627615133490189232106444179016605164447823176183152867788342029705156818008050446165090053462872449858550482828579302355623384174777830445391720466811206139204438958016596645308128804604490211001571970542164857685058861814460243218893283923935790014970452784668894204404861259781587690610746744970767795214658765482564726766698763367307472772970315848340402801454699439094352547083010229323136928677143181577429831974803742930443079420018805400479436821125308886014732612340762577129490734553573682864082637371177120734540784554267395743572628942920314194694399992121032141010501723164276719197916493540142347860420147239353347570507323101852643895497540913427159098822600052914103068245484773224064581146114627760474410222523098039426074170314347682830828179992011649244791216414281653515037672247184150540845741492322577921542187338953067329613184165826510046876303362106316445949695187487561336282481921794890745744948872152072670975132603700032897197404241229238716731821425704844146586650528471787339006928650608139333764908857387267431235124470037310366447389024095099400768189432613354590577209438184955502793686003123784538307714447379118007923859931782438925597597974861905737149060128357429826250715860631321063814950186089685322267628124387966993160420807399705483008320315761883723571421900103515083790077004020260317588390986922427354356809589233502914294665872023887518617638312103255987038634372662758571063027109825575947063849540050552369641207283454608874481935698894783451164614579349294442821697751373169368143942924008773724381061996240992410092411774665977051436431573311674018366433944213772499319804060205311422246440827680391640992703983728135244815906632295046463383001951709359865271601320197408429335861322763901725749186907288255001628514825794595776601726736803175377905265445889294768954543825192208528383565433439475351540132698968105290850667538084134478941612409216718601964385210358825292972071159146938040982062831113688177288669873538763215109161584289551259426788900565504021917580423980370536408878074790616264246259603585592298600230306253147974599657413719529118308233093387099357694200565595941737340293758258865352437525482627156278140014789683360364809810615365990698622598254341056504547180050936392991869713850093960923728368968569124246749771258008432324012337279984803259744908122830639374695543108959648364879138927699771968863803686146715506335040465325512702780802049705599331159914252410257081789863947797090952484798200917287358058689659722332163268036113998925584377563363478593025773406575365042019914717082910798432981755453029193985004176170069991795390175194734661249202850921505048619614563009027006252609063075939314281884150737480860784755257958640945207886681790773371449660961936089909126989865062876951072476979415777520132056511879815551075282489146817627977199834813239194318037321143730064907808583282243566228148318162362044247834497538572324421691315486868040472388024204905420302506204247613245923903325390130951016854665486895305329844991561841947755088865230599182936079396001506416793636157413869648079416865249516481242262839248447956940013245208891915261881822789882958232027029956538124897163830978874796651081433443599759606757815911538195833033779695433211403442689977251467834523099440545638652193310666777965434264297052987339171226408948019268195239638171087129845346570970182329624094251649383410240777619883642473880386258964344331396827230242649589900540560110210151874636450384002299154767310015647047803481896937176387242631429358259533743132754644286355958963218055981346701742282558754219999769214992028828795727509435388531814974453683567083892639316697694139385833392522099767891718289034690865633981460177965516581458782574612946594702922933617489877404673051840112031965476082027426863428334760523105534794209808811852743433478911271485695375362339915074369179602603392271520154860647727397188993603447688515339534354221692870648329903647522413781456387343506401949752948454282938129139059358081000523730707687530923918984587439526506553601498088630331806332312464659666301926891650799449909137412541662299084737002468642901118069203066415859859987936573701408451294529720816747716964562798463525902033784601067190101686807004966372625440613226800025733087192491527593016586554826689999983078693271570499481551211595267800829249341160350206305007520931731691268229481337555597261835648309686347967002521187146357090553035206293253166669376852297700661230988890407471957848036478029480554739976619024908882040934714870411179481859645068227392756687045318735308640718448577339397719995069354307291652663506660039327771660684782362529534163999774401550444426947204419544022588113377578075767809241580588743485815915523809034994943330161864151457424984487756299828978174385563435505549191881424265528428250732063656294112820955377484102770296530575644302714979431618560118743807673382746726474513022230082414650396395480665464684298553598164384200016569657431138682456241624643676619788885967056299675048138342723381144220548921071001757838000612690773184822699870242961224566314949841350705952313022268979335765914698130419837976593129445143535730628059909520108387850994293020006883503533182664808767533631073465150656339264395239683556669870118585330989844799102748724251321881692889165259334943693013968306364186848852205864225156584326965187046590468499192133862295534557991697297282974773225388561584732871386887450484540720987544171541116901293776821345566881193894510921903421896934768048303117424177464368124124216635789329712356374481902929142862872240846218156097030013842426329835163103935894488768826147716205659802684847171653361093237151081197799545940615932074692354493122143341877452797761353252685111276813305016935629101512260896450843670967832578413755196259262221199853667076283102961458118367264785863676877968020547506604959867390876815244526874730086872134477789996249602049414589927959330954382868646915014366008813703366439143283670455808558200921176572044475420047869589454777000493199700646546601972991761131229576499060388544894270005979196144581306279268745829350619378626721684010384871782966486151147269129828752638831568060365843379170104889954925392884576553929919287953052291673696107636076736391349797158411227795451550336289455670214685738645043162513481147689103438969542843366944907877056823185291893040423610762610719052599133281140402861612402016658083136965720143287127239651864084882917711439401643963264400784718629236670823603027370973397716067498067628945975834607933484932778870346410636125944843711659574562506773286344871042053020786254753452420293626602686612784993188642250516312498363931762517974026396927313763660381827294961296713279170372734644120967184375850686413167879856769858514763178231648145880899697537873445942567617059378783096163920580755667634942895952597906741220652987676775345444559502656024220986785441380016220122812197369538427002760259287066935290239696376620086240015637452380679776589664644889249976938784838632440647225668725206896904767681450466821450851635365140554713750956773781740245887726400108759443177474290353755832996078082209496259815661465889911542029899962424780922811628081835552853208039954226981446097538296033626591387545259664718683980524412366618667967362732348741279663432880736116188460009413019801323420795333327439635407173332290672878011216302786711917651600712476084179197634932054178826394386870673682822030574813974956178276008297644697143157605173300780091222798578236657888190067402868518385474815190926183926300698415510142717983592299991884679781469023892834516920035752263804658142465830201930092774022212494420499822470704618891393325347465936024890015294245103681511089723592179273612795592639258298942298973882151653732130480074006317090086953610889433448650937722559358987157082317816228401847998747568702844023770977849677542726002649116754668801269998429182354127924779764963992688453382950759174820917000639187475616615602901769265704681165649039371312788069191546114763672849045323004659602458961031855472962284496762820010883297461382606047304776050348338793555826426924559013638854143019254013612970781264554230991132966301442370759841650005126554378232264126230690763140415866020411172685184392117920221834329183573856378481740448413841563605764810970984284355941445969382441265586796961169850045907532312553761892648352750031045278659084030323181075658572374376092171596546549858971582324620300645761622749791370839043017633716632388954095034741940259084154587278524557120130095243178076690441844188824225584740662568763094974337616329418945704155359693409795013257864071982050975478952861126006956674347954403503399263010085188931070443416518538079267069144039016422526816705187296213024214015877878154452531193709560802675556613627431553216756618060795767331671059602235424739630122212103056077195717576979020622601121584813069626058685962705647109897000579538737605079058203900979557208406558432781504993677730413125175671059827910196916828093409775274005610667131665000628384705904476010591110428923258622231450786943077928080570782359221239249120647015760288226364837620786444578473816339495987246972458098349432109107619470931612534796841348253502739538024942161088146779440171267172078278931306209647109202069013025426530527569587236867592120972759363885936606841370067974296403368985440561244175087036001095123553235716351687882376898359414082919377485362922741236930753534615750695181500614677071029913212902160831173073708753348685734952271280295224872377509865711083010924027985781897207065391516772868502853400892728652295694449222159639142664641111867677993530401354052054722309121708923787993903607824654881198474419257008389221076481943784477102231348069341320450686237277315530171508424129655526947655527804267906847606785369661778397637794134220181201525394115232930753082484579206720470943489834948914395090897745143901520469657643217149810408930275446327975034396519347407941307973493426013295450585886431704873881172706132112315124319965424703680313513508857962835179715410755312578229328371989954495179958568276238829872600542538972256331925397709447584100929265758815414299596976328271114163016783855233985930086803288685768273137963517215051495941271442029181547455687612148637027284110800981554435850560961199109668487030821477503944304985616231486502219888289653143757953199766576914461073712974720097327318901291528103922920323003851655226136241406696130019133740584394020532815766289059492925321316348881187473455583564575087823763985749758408722234408675034622634800605556222206378514642141833678316692479762534262457086400295107523423171768751882223242322452978148300825811428134939583699186352691757183071637307806054680951370673823015335837531425986211479394677662231852014972759357293199403375199319981391091162602556074779603417753902599708191413629918896670668184219969770387549321353046790937481218790717410155457199633327995273617413195554775825215724611522755148354907987862164322270312329637432651983354087604939600788945873520432573538949844877209972413774486968044957611114109757880914718658308912902947503653908265167398911532208705547483980133975527511515067010280297821459726015447667333135899663714250105530757523618591021113991891817899187747500844497884420842359592841595989802772920083426910413998123533693426221142731517296499666497150735654773432746419334934817626971871165150680242782025577887376754864408464271518288482398140499725447111377366263090322982845821899044417517097344581565374542540618858988126157910891914651403684947514156712458879026075910803208393099694592496567883620590017170358354652665245566388951977372450486356615908702812992470304820646647069975046847872745626319539820776722016907675537883759568373236288902232242054203808854162446989928192378103900202176609107269882110347309001385211882658561167038637813395533889880898982701710795483973816559232288100493602937730408252414217072885325580607184720236810855536325583985321892505646200979212609558806248384347865577100803170199154505082949446515057383983178571630314803649058474947530521616845101161592248651182411965082303500641904479610096209860924307263004647467568087709331038020938529914218903828382602190765744792924283730472319914063737145501222264038102753809292719230830110415807454144678308020939756744424297824756350115639793851817759741445186399912260292887694867258478728457039598283229724311027674753406403713730685866281812187107830490268702611496552253489310732293409323925980902450750715506726287325900778903242562445058465315791009343300754379783502818909952127672292617795077015629089048161070349988898320571309823352255847528201199885390321054881834744769541290974782342539258790347295107049104688028816678753434773266449603127566520101832293962838690729864716891186770885754269213116478042521976371531429853010196349166077447177034581322116719229039115772044830191038322719815054028366702416410394089366194028834076254229059978905242951447102160510368666544715841791081078348689346767595741410945811479324254405217139789416076116382797206355133909684715890881971737567808610316130290289444209386333102034415740968094765324379283169752693911038611729126474100926218656498830927836213137727795893320378834691549325397611657309148898947156727585094528424957604289676500635878350352626222560817834910994841345582420979669104494323472689427653716249812198983049817588062647517518611251403945366406333561957164733189281059677513502423688119931441021717745502307717344977713724821277006189172083044877124090748390209900130183746768991340956845456063498810125103376225775947310967710546445827549412753728228406515247848212531746881586944633715669925501035065826485699328055621341044692103287617985321915829973128317490391608643334563718915463790050142734750031696985043978039484104912936816918966855991117099973225361550416542889403245638724610437960314829540318584101528380581569127529577812391328577572235727855316496243548826493358045162201624774415857184762856147715089102186186152081483427758797250202253644994109182234123829039109638200550311443658898999911623738050041113187416755854802900200720477044919916023054520788005284705766433031962979433275103722090886439407416560378583926720352452397090660617870122406621455265002056156215987554025488078718084261473508385736175604191113651390611652506772713640788479667891917449309159549201428570804342262634524067902991819260515790057972357979771177109916217492814003846878171030505329023573507147017681789236335546288825593916559863317316180090028753177184385704960073901971290393380552586944519568954788850967445811739359080883697227897282541057471496743891695079173183079967520276601850098600531380466647954470369518239370211622883359568863417124781030176355977309065736706856289702107872450189628729006629794709336475649258027814247339363567242669625652338201557339191425969468620330472955023778062895480285659174156080913141765296479317596213984509980989927538328010476538123100763068774130085904142224056955728990638053392033889256221956502251248394920143322923855963941058103194601731388432974039275424428108694146096305867300144780879804463699950174528235927032589904853723550200790729022303745458039080329763345201218380028406450611576273591608164912274252431512819946940724890921642901798998786310594183325514860744252703384421976284507165465297350603170648732175338821053916382281520465580488396908086003631906750181492490841476628170760958007723468015953303378453497035610165855895032053125031359643282162125865199070216810158550827550664360621797886743229328486739519471846216583268338796909628391575116946429402701312483438187750374887121395605023442820526510593229525328605510112741730963221416112558522689416781428157515642444576333329835049770378333543635035526576733943154002538630933805770936224460244603599827398868845168459152023786160169098182601377203203632201653147599982855698653416119057353563290839649611507444780525684466790111677676519815456952094741376596927964229953390413497872918358269916986466017978772134505760425072926057689455613412666520966367297759507118935396212356691358830231482079147325438444232919046589102756547351360190995608996373155714243322057721002823985131433850182709528869687408353738044955910029808111735676445101071986054593183074578576039824199126466120300387470250279283962787633678993781204903086190053313369208490365432721135024043421131768333270345864771122132627745891993117264017339179713473309670884109491063783252045093416846167484127848583998523397149896460455528666194073127343495255302015591102419263584097102612549610435380079443727103016742116833371957103505841971023877994096994611946550217737464870100479425077637057888569081677275845352222633527892773087812982639871281441916559256579635956822654863764683083991668193187097520376761534717294203480511646305627869525617543971864951318618177440598189722579481325983776408107159426484576271499690742204562369098759100351379456029261753985652865037842467910606661938178586481426150960351429661631600365710864586957098467778767542137370693658432586361229066044914069659607377086327868794112211113346288850580664027674680042326147984017362109675424624069878325894502140201287417425814412011945532888150271891310523078061429484809818074952022030409445865010381418477446671818278138784238115980511827942041674069116006290622265707142595786083673773064020283479813853063822769783338757705214653458488632268581133151400973508736051557614151507330931317090132843829458028435162943564354364040762229911806848974502915194180160697150570205935136331597595802267242846144259315838772371400981096159009953815871927216088610006463698490571738118288101753219222935384378285867326438403911159214293102083152195335456974500954277847279775380030046137751864112441337368074087507044240502734186107008587550728642448032507717943858548083775669408639113277228702029256498329290213403940294216927426045879777930264567122490479855499899518618678189913614248493723454928624718137837008904358012106603319651684981900627265669267255776275022064142726420603232027343813488580969459947046198610877944780366725934820679662083825246449388298019769453738747868328797730549389994751823382373649501961909888768440695482653538751052891971060005503285743275539877024542822815289201588167110365767076455949429038366334880686614223953068440816778948155286694220648812135040366033567028205396670674205297632795141503535642359981791849838015183921733218581507720082993562889710824217464560806743504359729479564588960867422097413604776642064855188846771711467241580469036463483964593851266586857969828940446121118475638491020027287403571603666840177847488821037668899644042258750502571590034698297778879501990430272466675335484279763778554260160922476067200097098467016980782804790554930214849554404618439223531352246092582186660615787767313501707809317218638540724099188181619200125699869122049025813227890235944640987096182678943009562378494334765487203016818227124932823042538371104178430475450451953794496645425781004829843318861093054283077776911179218396620078556585647960562589885579555635336386858180206269951807953424377164628383858490532116050709669387437851484026752325621691261956922718358916480532419891028625633798079590075047789941017932664325782342227500183586688715187199819887226525288154163559655678814071061935343334020267612608733402074805883649253383808724610407733008539347731434177983432361653335940684137553514503492132077275939673120280047100896672267606091486740055892773020416907584833178462551350199975440795010377718869653345988037800179361926146896154723142543920422995898285118795078450306130311153547908491624485578672182253565532916780409315173337284570887510848422675136226168506064418338647811543367787530168389699177605199941542336551749583977148388637729964134478538987713109939422627394762187816268416004144314743298311025207072286989055806332907099647089351869980202086280037403488084435405212922391490206111616755131499193203609869832937128954063026088621969897167998981931273556426761219939674912670462062139484676689148710504861609737390673440159228562983301872064974914012993778056147970609088198381815793248177858996208142645082641829641771806902172921000584316793523189289277103721166018649126371408663045883834052880557882000338200592372523038248431959155003813624261043558529410209953223382928143791808735576465482065166739326365278472544876763298740304485610306081489597717416808022721227555060765945918036540283140073209113689948507437555548122772430965594817785999189977455774439872938500904732788663052345554711010720706163755988562883287173524007530978106492023287886257946622366036909054413928801525979342692100425063556235244626210616217481277277868311368244106597683430940679213292577894909652684785820720434911984870455122851493428562397197655189676299743760370122823413754358857023145999093646095021505188241362715223226225782325587273020624744953232679283345528459476477554615172105378187033244412895072513224192435703209478613058726911845834530475244570485676263347944375393546446924540152912017101735939705317463618580667895667650368028796311133372396197459459367548741334613130988551686508163122491041233721999284604209825216737156952248703906746540269026435229687752738810576782495144884744375283759045398159860948319560758987556226755238683049803133433327610381648817421853199741730689712631053733585500573917075322645619485233987453227747870732094381706466374618964366531253836353763881785015264918485479287155767060707837462742771536810538042980771187609128849178733429229075249025638516554728365800008425968339920803103602857665913656516433693863119748161032847250189103145533292734969468073455065896978655597906278680623404266634769015713974706447692440442523834207580314585573261767136444804535683519158437035757302681663559416155151791686344246169227721669682053301080274245852977588764879672593968965170676407991693517282072576838665323069134591751486336887011689058719462349681923008804758546297533185426767609494875156980233967346570764850363041740408583301184401131123653587115927137882074599653345295628453846144037230301385541813460086044024752884144453099319749534970380888259558290478129543513118708508662815805719615114264965002361635704813779973633871691273863436582482667789599363370741873946665682198160930062439536065422325244860018085220848260210743782124532024661409237385959363157852308510402504767192951562538192226130702435258523784302847533100212416440798546274774415118590004768380768281858234602468890921223352307277607521321279523846815776263540003918173002076509244624419931884033911220401409191835980149730237493227046296417458232706657915720587617794061393478627065272235815421229160120045120027495631994685485070653514456682468546902425796363890745138998773492774177729719726648305257514168511805055793605749255305107162198475609514587855253834345146995019987016412028550741569437003546953432909186717173385173145739207347628492555653800263574508634319528797360796641273202773260211558860580942113517769691934766933915709597819627062884990092650403450727380276968718873762461229808847682510056799163663318407479458885985091058176533566931823547673859560810554674828966412267019307706980981498576605038605817689336296394525717592245927801672256791922355302163337765780881707088531888104041966182605482056560475880139279935763688685994693684513605468879611081960423377121724072293142790851902027963131091644808100212045778323042160775367436614124187736176080176143870705811868197881680440713861886524307497222957625008667879307929831650171134263751771845582836571216746380219461161730815716218596870182220072885268844454734867211300060101236724231191773905256771319698432055267514255329682482536108835827773825708223561637136099150274214351569020477115120058209548154652812620833608540200778469425938782447306594039375033847092559575931658169393867865862988704937754753365674408927446908643549218549690506998606438016787015698977131106194918879053810645301264196948924417364726088302026683681409130988375143537403559497846395174789380139955411431893035911954942351442318181301617175469777873219124271311212309516493818940818444400691254261447934917486023827163409043561943837327360841393888621612543160994909106688630661368378248448055055738794880540185659335190418144144870544605260220289626251938795475382979773070912893370096526664767057728231824621423450501961549258436586584571557374833900557027318300513665009068830172449919962091092862078238725287869629164865419392718972963567823102114687027290844744705325659429153592218437469748121377439324836972544566402589234136608729658279441262057801126373529513532987117860655603865842274505129681019463232068187787596273904564585023645610038750053295470180539736304200630501486847652961519429706387489404046755262093560189438178510609314497608796155761797852501023884089553681128728011724492667434844606820146071301077463837012262697389054534260971869011413948757110708865261758076316999533525664158352687759769882961613076067999138509566864741820536310071602134244137964645799497733005667760895629010569230533037127170093465140682790787784438817439586476018936213158954157697917217208003407753973416402200586872166374416860433217282415916570005929472246699565114275490330810326342277678974045203656361715424429990812453019153772940013949784408768661292175594462403047748298741769863576910420753475378528621400450728787487242519741587631230728850209466593012225374066619668913274550636974328730498238009343897567680468568762567264827316798179704736385073520827826289334437011415902536850537000969437418216029669747582301387906664535231102939340581088458416726765205267320864251243243614450687162788496599935240247128567023132077161012382350150908546597672373261893620261326944655525406473186071898685081687503608140412992633091982132067111838115747238710529198890475836164040530162626191078713608470753403178874998955489197075832912074566494911357297513086066342788077032776946402639360530755150735400229551645650931322209509885601328132895279485377780597202706385598975260500717514515561303794882698292249819831419184459810874740687516724048846725442607691133706626134715893110252572444143113237594691909584712661545384653049833013346135902178141476325641541409346888995602361481784800062995758458948614236507445449529487630467225363557302496826938415946285307120807674479388697421337856722646379203268925382732983237379879274516572538060414368364718025161138644503715452425831852244962502568794625729779047986903565499910998485277448769711150075741580212181309968613762320719288305659000951060900012597877846327831865310268451532467054757878918576070336383268710012967877229218278090283252621317562238073693096797586705820254771789526966063021323607393411838218739655135014288683256293710763860008091333937787565204754725320847322034977316309672943374335581347301641923425625660292167437201364617658902369557436065846368357732457823006256586918533813360556906841810025094453896633973267201223025044121034328278546357570004148322064669171506976233640337281913293411461508186248101125957098751705215059532481521052229892403183366174429271782672485699300910394383223534859891097626996191411859228600688640745703885580499698017531721648403237328534709988854881100939748314299565829646346066245360586423883307190855819060971122980220710040593435575308933128788945936643722269569731281584640170841668859089114910549469806498667815364172710686786841967071017717885764199782027065381451826095408356828783747646870999428461502676542586768695246855029214331755457438029061215989341203655438720855056269252048359104780992374344978182176271917295178315760089155172559381878621451504361530628258099916796522841352196443657473978767417176223201054503513780671356633101289104629844480617584949232218804053220081704421800709207474289173797217912496726199259234680609723179544474593002732327289250987593594212465115164811022864213408324264950691871080340626755277782295406839046815776746091746462803994706969521343455309680944727382011219575162608556623703355949800751693515780068235693195442540190276375069712563336818851942129239154163990464051281674475900391802713498477435268769567382771388028401634704598557004333094713297736484427203861307417760055069332361715672971454210132922063474289207650747649403133334944933805986756355895660848715474888032380419833785353043445441852758617520038450300538254707120207930873312765005517979634527156720673350173173347648460576746080322165776175346823711903107724913865713370358995500883613704617643321616660959717504719642149509706399451625579045574757526305458171876075852776276753984261538476320382873696984155432836583458916536021086788664010958812119614107013739030521067603548738824527284819504111760774239852293907434044664683975263945248814336765282490365481753335844052101195419569720461793249958107648434150311930799475942652634659682775852256183594749595178086353018161651519437983222410322436865943481949136268261464760676312086369692501744294289523251801846122007622800675517219835716392124526538458046063988552052577716646395879930217809409507453172748925934145392276548218295164375982472833721720957918990506082729648698335719590145057548730024711300356385910858428350223006142967463607683346057110744470930254421430390163957363679470576435729056008737446792946497690377147756438449953515304246689527440422931062122022739099701044332852761856433594403895114022407291956670422152660861223136665038214432254409446961578472474542787287476752445007366628080767573675236030545024264393117455869622190628518275805989278120813019992900440064025640918990506048853940978947899623827238880018846097040999468516036675390227728135243434084137006022590534412666247634564256780059596763379064967528712603913333640071904267070814612411890095410757315503529423736991173169402171989210629753965272468920417506202720884654687123974869680435400943465981875408194767248960274464350409573914757521710861469198387925206493906260693669496172339623689203842900163029783494114793847956333953834988703676301831841746865209593622508213427025148100507283282312066969286337474932138759820872679203454067677766637590718913284741443167172976871728953722909169123521894496295749263355863108244814873564408254493899708445589405385151959489904085927547190206264393798885347868073373653540232665936766583258056488526233221187183827349601122695115997543570234722774947197437789540200544257876949040180453481031557474722970113743899149992244337249090871172862004266525448804264515398865630460549130807468122239490914157007504196328557338784215340877828358066043784885990840932291388180409320832827569453440148369771413200288526540304259918347742911340303737895610122304890327201932949344726818894544046111964742151733849860766258412711631879313033746036149778317689778006579590788675022845156006164692410010075307493932999993996657299578456982217721398537456262483893355629330832616458450282687500880355943791970454979040504602421443404129385946516225518719143745825915600316213309381724206279470061986716371461995842860789053770275566960310875105002974557064790532290126950771649174156940066140232799933488561598139222457441946774886302801256878639178548288251388484239477539718160026448992570959922108462986668539732097414626690141275601226367633529075108795733674789407540253418407981583304488457051418475979144128302669607520994877181752930091146626477547372567791920635842474444838698717296816606181861009032718445266276961282412544159301681497934608110265874139249713868603415745913425835901080585172074295304247362494633682760717591613388878691575380141708822425822865757347239295012189033833374963551127637686512991322679416103232579229369321780200351567681119114350585849309923039978203986503300730588297587551462077412342798468679990839223098819647638643593107726023041123003789444320081722944445458341807935763317975290124453886599393163891298872246108878929205241790826821479152977149191318143283309367179270473704632405249205642325998126409421312604417055879452801527602809658359264750119054997987765729050894994376666626009058555680307796884002445021855774190449712591491953450279669495556992426678576244013085062175353483776509645622717480531810636540355563508281918689714484355999354590285855526472721072407060949246711375581677035521805391048683663199699158393961989560632784166457241301404245044290918336393581448078808017604251027573473605973230778870374126482245935804399161377812400920353728984848083062267122008734699681730162313945231064676298469222292153247106022768017914404990433067723506982505749916339047352290829841245283755005156901613747302503804621790680602315471073840144060851441386813274829857337728645634191104167265964323338204125790917406681514750891606432401583737213520076911590680863127202572078788762532658998566759780414953288357277056438058208408135243782740317786034506694287789485575690648886700124383734742761872054416327338986056873111598193624847271625821756982197899822133722304394977240078069257355738837328945788182873795666636532378017262623464280240766596281939728222909572114774984114175632379005697806889042319964162087783019215415532424392463895186492208422686000632687110397614100683822285377949151249520380213903875369061397827164836782685931679262937874693894376756059191176179397717010068262400695833235213005869888780492505919330161547486020827762349866135097343928330989763688132972846126444064628592772551430555223380769528735364044920703212998608925604862192051775595902283126740710610673150916041232820455496554961986899980467264204394405806563739764606552838606532532070357681849663345099946927508627756705067031390133675423874904069990135040907432941673707324632114186926588343665017610727284380904278010157715803473204725274853199255863771183198521001269544083047984069375437696455392520702570912998946507852094014885672524044420256733078628803235604584806920014465580453135437934692768837512420459812730735468024538828539154925844791695253660395810746229463940108480217555545210018827324265948201707152397346711205104786383477281168183271145441937060489795731906188828431544884903372020063616005159960602855606234860517406233023412268525125465349252075842133925981129035733989429074679142221028146529323200095937566761802815657671644936723693937468032583637423914408538872263694390226099558914393261487124650094346821142731296263663289512255790933186409987782954952534835779068011619777022824439568367911755646493725810442568717376228533247105178687272764850065714787499136944916804916159018266644625799987482570640682520293904134343119484267797305276041241808655350254901294833562978893866176525823431900598932465809935269275765103604070756524094133002699026731737702888414695293068896998046349892922809801285896262438778653830074722689354693566718380789970346642464874516389596231904467092110554262497858279176642646214258007613202246608452293250256059815760208765731546534202955469533659747476435229038192874229546826029383817595726086975295268299701498050402750049863950726280600054296478004027427101076357695572781166150673814159819082851655842913938452113806724669839165246551108858782619144407285589655459958970964036761753318871670475328348850553832903919140116400114952012067347462049180732066889960826600442377614101361921508691226173459658126698357458706199064044880498752441021165563478666059947185360010623447912316943045615791588103356726132160139496560363700489394610348010190834872250211046812813469973002779075030211183145398882006621353510623360702678921723850921826363607015902948142945817132981813790610486592205166626670295455899568602604336259970763479520149270877500091228480479093877807118126033534310240279576487980026847009775118137177723189529420432423943305145436266132925967273951996140211573722914317710028807931207061798619046301588303283781530705141088142555304506902343431078234368891367278607852993919852492013685832727146464176097745929482199878046690704563534293061819697875093221315453587434991625441514824614387657556922636625644363968280700387484844515593481774861600310884710341593565584803151080119349250113167414660334250365050516488276334989426043006348020927062767357465273452248274773503102389164443350876301734459969450395490988278529540959138141734483307529082810809109014295546547043696336484067717237185119473715888441465372126105345939786793286389385442655891009479598176499926651534890480074884246172249554352020787727185185432778189486562953229475928072227383856384115440460748322767220383511011900298152759152535001119891087522232893218261902242052942143921048851756439925735877287885001190567431423012269535495908433149121730961697578910119549412618811385280567891670147700218608811403577184950397081666297783677141311196418441980671448391140207423996077999668704469536163688033584563356893027435163048757789216171731509419134828107472935888505960567584699587124832916775115142040766770866071199387386098046539032606652092724316176444911001861656456315904462069831839305369049798282819486193918602124625410650148057286509155668580861453231315615052372455216174670638697694387023852627910970246918940310771678332293831430428860241713204496893086561668306833419272014420921710424849931302885242137373053013627196245626457899553758180335782359325597819206058569894434591625595247842724486185813534178218611955224135083381990163399227342227407141906245130530736187201920840594830660931383503569311649749450998531138325922274351088381073000123634905943756018349125184714374808493410989053335175963577817007569869794306872658604994119731012811380966926139401693175123302728472722082159307451558654272727254933232886027936399652513368504514399346047875920052350573763262147204311630823026804835356072151014034723857392047360950474094473773222571649063441440813537895912961174534923415872541148635648897380290871654509668430772119255346291367095393649085770747292041633849200584069264072378844036358895402833885535468355057125262450017393476948905673404324087886165706163534820108769171411899765761134146064323983113117199089367207064726667976974090107400200746412091023182564505797187106110048162753980330172277559218544615052538107148127714179205428168713707170389244191000489822409745606899515171822656667798380119675092174959607842415884067986201530327214772797302623125603302163901451603974362422752218321078367075597072978037808430350653722598922629907261304369821295966764609725569681005735610023832978920771404623154037539755774906335890505962681481874247605362159991706725033583802924421443943131576377310150932982953628818745617460212824860470505404441843126427328975090724504812227819477709913777307900397911111551611396517140115365704668410306250425474028060605616384569154920029490428473405034248636756145958207090175188016857881163309788912244441688901125083923826425132682201986517034357864790398210988271026133925470642183873126537827458606213315989127755656462925961217777019222310604792788721191146801599040792268967497987414167933142258819979700253994744533168457469669782137622638196180018151902986512393821505173990472440036991789896651209330579557972554999970259593709657004535738363430848067378186459182242286746138743325554584666939634561868189229335474144310187951291232091189928711836755384472481129175305186424058887480329916005834573087854521092010437977369384264731053161816430761352491193601784291649306042992120620195464134266987902905047098690617267547620655673276115868780411742531097979495047634432160165606320419799979698723386221319916711252820541034473907285411396378563028286016077785970231620804041113305259630703656549254040856018408411730425175384128783793134160671219173954446421808725638999576642368367325127830365409556065432759815761067267133614356150633209414509823886038192309461680554517131168223597782944038774622695358224593133608252785502755904334604146474028982671248304907539366409633592575393290481782111550444185765865847340750587294896367499887143023125501121219948014927358655794671421775806987304756412442385718798868480779153685725451473078545092843580362397270984411787708231070562013429065996733000205410753879403816832122016546931021145853675430173109127018779947448140860823701387543653393362150043605478615331531441436107792279064685728175180293765770879094133578759510409913022125699365962573529237699504828808395333973404597763031606773158767277674638068713391318336563535588976001634876460914652705920736829624356732201884169094544898004442787242029449106464616102495828010975584117810907995524794038317192879173361928936019043275279672321514359685537214145792589456204580300952325576520413046481580168967132125472788223040497884436591941821557056064709218815282079317516218582676445582071926527325898762471787550012620604341102647518612102108023019893163067947938914772023400779544472877905144756749648205167560611702757765430100377203154959085206171219129859848035265894148557422465805773469844175922610086407150111822077233632098574268495317449446850252738613041427492295154950731481877786703223928438153377596548352869859728858553802143857422509035043771845636009357820338292341887191415542878063188236770278322320398595941141671118992487856659871856137259010358104828184378359198700283065002969444466492511649275537257094924906315316487742639958095563191652101610797065080774544496517466542708836269599835840047911973893954919915472724248633077709080366660796401831488194274918098166845606578645422828928222846547328173756139681985346610041553400353435984009803054978169932155257524617474291164150239567972186430426792097804481183683674160866136846153492140778957399094643214253070777990589897704285070707200871449483317785760795177141898548978132111251643476011470162935768756925891225978015519560808070047762320371410389033315034310089239252228603742190223187604904820239846610001199259073280240339891901151294938931610679407106114829223546559059964953251978264255337010318870626333863559834612754013759748579297421985760751423752915844213749790992286680257962114091859351277292533678210067676209634053230576612380401346635006856896125688551076733225917017928316628320361347864048423153061053499533314024452030832491751380455833010702148846299598352987138284501934238282675976685065467372246316980090389007617286764732194143504888035050485268735951613100096579078114537318625880255551962384813951705550573000007643575715793741120830283303650241915111829893681617267848434047739884754119207434952886670913760232276249616479612359611686453599593151080188868425992314842028512952838624636628263127740824198918741367755287227134430347936982470669846983047727241654671845014124658364723987062311585110545851241307030592498915402703530662462995955393216239494582027381309552372948922011776770327554050035046152698073449781535910854565345034012956737828534271505414436127798143209946025306732626744300138731904442136002167806997317913507657814398965540878082658178724746364716564309233154553788101380427195480490813838054424387400186675345109966117458784179537533931373808300997282952313438957281445443756162180635572480409555366563441705978347442335871843867701890401113514862371126277902673643453905707797669954552989083172042771296137103699899720760400412803455051072732616832797415515173398144831196734484903907893446244237465322423114774584695483403078220681307482200344796880545061493218824084469808483222258395788772884528309988597796719916902277661603993866151936402636448103196130680008820866919204553432544032403781769499642105210287375173345552619019841217369837137003750361693788893258116974543872472505869066343282093731455069918986323835486617509289900236717355648608240606339697201252906109685596661623706848114514208024308916190774351032600003190628154804699512429562860616069453509153997426150209678628101481603292314474005575245511503085707717892576743941767660841282352461421664202709203804799551557827669575290399995493170370875297198194320758664665011239288154379886036305286016120089579005066443586293477092578809022593596429869151834741424650933157714214546298770513006743074052245223138389638922094174415151249567068292635239248201428161853179898404588713483935095932355175852996326640499918016004842836682229157446230151807490761486624091095447791306358022265478228250240047150786248733571498311735456308921158151304055963013955051377780201270005188685730805799515240026103808290753304755957440395060345763242204562414168903352243923738213386776848768619433767454006475390015482483708278965226449711865513135388075351178522289435443538693932962485287203455539777832594978940730697306007446750582674118238135275031725372235952032878374902107820255176768705155390873720498143984514940457731223906283999061307345898541705580304901485859043529903604239377967904448917235605146719295898808360038653873253546937543933584902931375020069639286374340244737236769695923227312385911160284661126062023052692269769511484604887349421483490489093783762047118451737754189586885773244708284239205845224616470570169838880199717369530644857311042824199570395401378534922744328180399106984609697261055239197218391037782670408483710458231876160185058458013725313731468354924108082006540912592648083543181915916538192693529262816460329214635072170375301571465759821243766768935128696914493424453134244798794192328809895089598849805819662696905058740396893302320253528817074069502967169927896143073760799310907377442838604754256239287498859129381515604072903359770694096149805057129718404616074922480351147292894577899612369866724147437475387997756981413891897670550610767503752272981921836918664078779916877053686258851247750719114612322609487406735822505467975601825784274771591838442235206420290145242095121733635493227942074899425434557767521254739844805323193963192344888883989856806544404190702683264613036315775924157100752979607180935822756266098793552828506791727745170764709773493250762280744725390179823407283808614027888776871679696420562685791341917516467697462145020606666238162085967609065677563044995496122740294423259922892181679350920069050861964513950872861883366310088066479890164606213284313359905933515164431630718888393851365248249330047809565782576022266366427016572390663211414425657254752646515991885250001142129693335111619861162178245525445020626915656158831870078438200260657468589979699751117954528678167318560540507677278540061260164033536378715740502615857837672002047498135573133014822917617118305987501331676220562151351239227222973810608862850928246719476669540157915083029630906739713264762717388016764356116970314659766235823636488364308367834794752287951093912545033330015684710963480816853909891737923898725410081037434520765621808319550275290338842304174575236159836579602170029020182962515297552795127276217332367832016835389717436588972044894510262281254263712676902183093602822770074062391010652769711003291150451950299375267426904993359751450042874038417477162370976261765905549707213086711634710534731574464376505499588009930920594264630050489449203644775311916743840438463960068674180358849864582802986158409700914755703292678796822180183644329676623302966173093191236726054001188427705556330093664247232764899749509111520311805422771463287696955350895013929423619086673750358737158118261944433684411346379608797855031091369971013664255778018056929288928588951754263889394305427090981479195862645321501805628200490986240279856214363521601134427315819690894739972084783845899995283166333876007861030788105561044013160553393261995842443294848023437950982319472329479451581741024486958065057421036771371169269846007991977986653741819139801860283527944811829797881103843858524231121876594801260605072935710682122736528620481870235366521321779987220345161678516649427947684845496222811440738763531355630157080474323857984725516146592616952226544480754385473671421615454507719079943646589713498422708899543497800648550826641880646608162351257963225470754332798607896725209115820288701030159153789256266514252454392160634420182189288152652960021678546270587501380367334414211121060803649557171555445252086243984239476889298855808953977415108924273063177988198821712523538370557558451481661839778145624910309237645269857687258283206845992380632189472422639630095663025779464414012947592137997882071861677700227096634164691388583545656833965655109835928709879820976721710769874169509488810935453768314043570346053441423614229199752133113548603639054022022542021731477302574979448566462722668790694828370374799335802345991423752073389291016379417211333668890083698848806829362103513069935282122765495267087038428213527417299223730762498656455603291301669042558962530645830324104034787234941577762201614540234541897043323650739292020231569199325665193415938214519589003736162371390947375686899598882846732059819194414425872640407949662516636818544336777984640640424797581244389714380389149120102756428774162075470212399945331814868961383334186388040529950851896063952344992504647640978545066121050182177277210337523412679331032040129378474450553939591939062252839497460490235431051723886203154079833336159905788053842233412875607436679453439458559880830178910969143003994456432745857618604703930598941869298679794467159622336477707633638834766213055041497596559138719904309319963240555119631063995955137281941729214407093442817941061879248869523733153491994416284169221148216786483971503319509581469737381629335394972955224140258243319822106938140849661907845015254283153505347811208506186527357162431886557631866339026029394608347583669074196060676301900502754216286766939230645393903647433972017967936515712111885659822442970709440329805787458536477706166395822744481355740084511193743918134002050573740958891288894523971330830975043736468320186211171713031191761109687670980039512560993668249283640043825939160510734975143619008283480458373258486758813104831558476850747331250182676246537393949434723071540862372615649939394255628211005619080201931837305738673147278941800305173142605381009636466276156431796257319518838596458274721652613880441166200778638778950421993072688700184068493371675069366365243221910589777410969680548263189690338698115124860910151930341805299366919196434681948965120966731955490075094339687797964457967055408319148549043960676240301451643339700052236703829699247261691512386798585975935547067305766856249835332632994290568841601778177459444568868519259309367513026443731617680445895423580778316656706872583257408754827684491884653665881933204384565762392712405662322360959078227846307188370992845399808607077288234935821094036362395840438977887303401358673220555931707593400965168226573876749624823287458871860757530819573085323623300855924554916856325371358434544658965544204624140828449697071488462279582996121586683329096665253614023201363617461625638209757619909726702582071576054657857007502453476919772000106950474009778719127345903208774014231909617965941869856308608575112419538258240309807966910664800882274333529356563252808144326592684834735813721321274946384557680986089267966420727846522114235992494770831841894437916267984049183880418377493205188311387179220745895465192065402359577876197119000027941187005982955674229816558902183945262698748104453521675995411901626539853075818553931740078035078740144716884180260484986318415687693022242363686678140100871416565503680104300531164291231930339371278780518005197027632226222437490691315674716968916255867533574969068962109751332805902142737231825002342837542822529289071074459201598183050454065074540092269636796945538548774945739321713391779799120244511608264058148660249075323590682345799116837278865281687838858566656425887903037560102837649615605233108496151356100117677611871806401529537210464590978419266589508863367101277073827778051157008080559162927247476096558286490819596260728047999218370483539005848120204302131795065687077822482245595127409520377589139680424187851552888621488085945025715757276225494519147597088610275441688474938533171762108480577036519263347196009149632132143619325230563443821008735510074950836406685574536991732563083851292470549831935063091110034854834500433166292178484313416696223934426229903303955908415968609683817231260762025963018498421937913764781657998632464438861762488548035067238455987676480834279841448759821208298364427674594402609802740100020013342839653306440894140434494646697775964805548614375526444185164678142576756623153285484993077805229188545780095132749524671563068884781388753446284601646541333412630886703548816317488534195994036551289710159300684647654540227487919513396314579763794573464449154741548258100894397953709048208188864210915168085617129891201639751531468602146888573598320097461891431638616425358128557280193925526313250408487699056139806125163496370566542717454076487808692814845795049117354494949556542946898675775114116559088059626440299529026568849759993346290361099000080676539056525655318871075778433712603276964034437850483423220261127195791541481478381374002423304678769681407977425832973134441669733126936396661188423520470328340755731988826976351209034036837832979453367156601361094516371847827409104090011856022085666328271179689923024884615788624738607929664854584948271137977361541294488571798303624228020853597175157326589765423378978920225664330049345536157716229253186327853946235267251347517988081915780768467244261748940038897973022803332258573582090523292539885040679623454531972312613363419190842371821017815235582082486687660481976266819040788127655539027143557314459893216075311595919883962856896342483135373625180745811330732472232084533451868275377360590081202579967926806323457503127391385080341978057612588086713537904777013040082107277052079090132113337705961363492695475573575310429724228691862967213895182511355786491963103537085451718507437956051402838163078874020561349769482743512439807947197766202899706782098590770194944143554051227178170529332768032645828020273898607568105683838912886830273972506521718013657818056417507797137555333128757215709500829648729074549044608346726137986053118811560501287625324077851226550291944339855200689038869111374001501539687692168880557785832321937940123351890423222686276205840694565619965740509600460286328206452407173071021715992253694871192719357936306453288726632877723857790078187662545082112597410960639297584395195976670127560189404092605572529034985673500667232490548431828457236160480306306105546185437153562913819061967972398412857823145407457627632590448054396062224771445563531831517602549165664486509043001329725491960218684410435539780221212738382755750406467379003154525806179590378010244378950784026553103410898575272662367943150581045823214081839379564641312954240089122173580741684550718525535423749001890832810303515435691835845715683079957850328187088914659613242985199454494018999166519696978769357742251575989644018702805524038424139014563019477191763327183249912557430634612945158555285483376425875583487090115024357105820312050846567539178699518761891231207071792616212942180357594895354768551741481928880602429250149625947944048041202835971287645545930160343255714702606964701480686183699115969078111287189766947744030632557957995756911534677101659827598602077078633598803654144534021162628513089720344826452926983655786307028299574044866392565367841826561960133901917004415541109328086485320042994157754988153817006427963033848795590117888544502646870801691446747811352438972262994710792249418358850016519603174163231099469158055599421026085343103403068303262630037174003757558939188308994050755342018686617302612280199497311145342825071676458150823412745391528506226329970811600240859121078510333823771267307855964496773795002650045080876520925694015484624847222260525004794875637102161153012797626750149670494398404698602993930957560864014974338149092841560102181845546576853337794028064767114072083795723370809228182818865815052240593579190554807425253833917753636753606361345330627167653943343007135568497624665896830124662274655089730836526355826205085187190218254239489565280756537159700830197649371069313262474496221029965575740727373491777346976955881559168984240159962915528631475036428159290496291433186713663306743428715961964137278300816740206954673012218570251059709359733677286703790608109907917112563559122901986310620964150409460269110017495462130961965748958342895931662027174889376091404263156986467390848172203742488403316254895736755601133370337013216143456714571944159850571696124730542651278064499658591151886532407259792256606873211865408981168421477671781979328773474851060606095973361080156203829982973290577400350423875414310333990806971426247996969461955370419302842960162079802243919450496753200954371162760896740543892992673032545214043874712591459717276333998875555290424976479823214408190029906934644524985345566221342730711055869184531784974701327151234934528729292391351648877772048088306934661730042138512582463854285782891401903480762879289130502436129390987246186934050026322401544496412600030641590055387144936558468764479618499280620856340674474890566261989282458254303208848405138059909600929233866559999617640384267241801203467057141721412401358422321923148604989676587669585733863196573678395102037001969584479305573324509324115494157473431176917161839670077522507822575882079403973075185161135735186930889386749684375053446795580089192285439666838987298224879373478347314359912527088480629597417446427256858525763795321404376166418058037232043075402811298091226751614724786033682465304114225767964318986539339009884237934319661359996068356709657287312452634483987112288120431247245741184735851429775313520517877048195801284361846198397917083929790094417434472491159198596547744751993721965680564523806189332448705861424115484359034569563797065736536219153877236416846086269381282030174405148261225158934872782097837902563172915915498387883394004557085459046778346744756945270827399135136544423749520100961269068077854769700599587416750874227588955391732290003871999549115411872049687230319662386614809081427522600323478203400637132966659221977082627345129212979060123314083675292151966027044824137033096925171748968162211011775566885898663286656613904923511760072850177016708773185166916533325073866408437314518681769849391502447343254972618386296640413445826004890149921996282721681224102950084767658412046300856991101180915637166655751905517093484397883926362895770268336644466722587504348400617419745469679077329431811566422952934607694919470755580429022220638167167701026153211853849884201308478742886052872142201275064688945530830226300716897221192099156948647983107096210324574226772934513245460513178564372627103860511467626463553975227127007444315735203102143197659718463591872158786211150424144604444461354826212735779845453560684553629988170615983666862402015566946199661064990068228964967111339932061375933881677784535811019136983316372638746806948378775967767030599795918274714695507240151180173837575045198476512985366578239463364547385063600724832415796314767081707352042493266203167615056762334762232637133005260078383485796587321486978926472199319553785834054658392213230299322328482705239160290007821373593874302835474383199325345322749929979413912700987059741652285373612783012619205944338318547729685576688734495595528916410008297904562239035553052496021876308970711187775789771448891932744804397031879676743324795061048907228988738367455867663961095081959951340914793518112342115719837311104735439221596813955902395698459757891056006845854512293206970178159885199948345306632243685463443291446495208407359239995411875059622966506217358824454704513509339658027151338419661694371598464898262198026567127624286368313517019985250437481655047735458690357729894463046851206429258688495152531147819651473637421046361078779614523477485379188199967321337443659170747932980716469249211550206570042936044933401487452439300672736291755839003384167179484279051106553459268120725982982059711391840819086764677817450492913400096132614277843247327436207812259115996101513436937362229083935798354093903996050520251368729465139809104961466164473225990894664267621276679596629331831913309496685192281053164390694094709907404693713601045775094030551164259868213592455221495911149441301299503618185001258142707299457972637536744408084648959568289125442641862001601748873085912132291424347182376607416994154071486018518345142258151117818117019588721308173464976982466058461936382963379909137621358619362954696882683005856510721738821203607088902746151468329660049872913542983609473940331227099077491726703112494993420095964298800525251190873400964583623287630355774887995835957626467383359736028164782770180478895315894343398105957655980940520674488897864535312586154965866547727434704204200359954645761503894314276086686571479861163582407443131494245033374936982228312721994884791378163661807682458353828331486073210054166764453646441234368962926939385957516488612156558750558516806857753557483282806199240569456866803852292820735505386641500847621661002182535050513628227189863089069220512619365520020816261363400173673329049840872352667951610012602663332645131054239290497972911176069694735101483509319544895061102687209649612256038009298983114962745732036676066813011213710082469519201394647346380293868536804573821032750529968556757320352704799346080501393534971041094327295172574360018048479870070899233589057643759536572151543078059345204850128432345844643635863619747534581175894297799466761063676617642522208354877543153116456502683790840207612146387065140139950257879899109245766051146163143927933018696184113664324608745082295250833089869452819602186832323451884339267021486696079859373535778266310185384457054197508162303463971202795450377992656911806832463155294030604474117682230991107142589302853920115175383065208793036526803898527365566712081576928783423750673830998272281255903765275688220752985315715826909511752433912637372938776438090386315430560257562928157289029582873083172436877211500889308574277080999000408720666101592208867883824178088522882675253834058364403003606663779407398212810703332038672576723692878832066698291962639452345959940406674558371730060830738249325446175669023059317256738550130780810701176817841675016841958763112056921405532491228625313567278265936057778314175515575392910269200386149113821960230418938575455691103392236650314334358270969986433161237477730635704315147533131424319781125031013051221410980657595340430956756327835546222210706558199276573482638998492908657049713009745152638858960065868290128552548367221399814198566417911507799618614661122921477224684827305948554808893227718381126064317805276256829302127519768976734821758408527105758913898937774636909394700206339206851977395907502698147963286429576458904529035414708528588134036156371995673277974141908805385307650811912674546746217019123708992438758744655013875422636833282370079960509143410614725080277689708002324245181967694835934858591208306352487464241949301185467726325275464885453343085134247856055591148371369816463116361878596043125966734588037206468173904297553141481209613649698640140597602420627003642463809838878751940399128029668780192220196959538023968359610804374667164108076642371219673693601656888186434150704316580542845020451205774261171876465316624249307469267068161940020038262144703581770108966121575921462533890652609850474732100635611760037295844407768439898501422779060659611797622358376178438058058851591595298695648899121839427454770581234838913256297431000886162545352672400178613435421263431848653761099392239471425621137650430457481360547719063530278404075555853540792565358003325264296168688290249308541898708855867435539913727405662894705111367131988480339020815973419488598211369291533713198171306007110141389023795054690832779578499367205611549959107541483423712641344261012201969299016093010755049377512410233750077518290617755421046345828177535539296256248722801779379167602489867124411488707280109103413182917110344003183252253976261643080319923301021126102901034892066403750498187967032727569741605794902325883731111694576333398175278418414347109076842478822798013075636735764836320275396168941364054685017638513395218852427841173713663870723286376765838077272599623824542680811295990120209815573317895070627036717372581162581590504664415748699113674989239527686178799486970496252248496975424272009090757782468983212020398687176071864451428886328111251910000124106498941407615103712229353162527358255450417926170716030051963293915463956579331816525319022413005008972152512071235099366056542161417655757785090903844416979025569075653203903981261411290812491688110083975029093201596670142015683859063733742952618030294583107335174787236797506877989966901647340121123843487675835522193816395570858515704905971217939265495182058399704763604945492337202010516295174085350559341765254220346868098501766891081365749372794721929022006822597431947616561606882960941351040494331070623284926612703021515717102211739597198800714107613079000440197043125668063629068395723106335457286539007814049362101826167450708728971356938425935485132218266464308533021740956871500071658248527069588357259693764572295529634445352934400635047687615003373513252047780873700934157951464883732489155815014223488782173332282173731105795150393111023743468894150498436955625046571466050517520472694016255058407571739283389242365781069555150574815315737235542863762798208555310082897923827528028568266709890318316503167549674483929183449980945797634639082154092662906181154280992330519651584051235403391620880163152955445343683526391057447626170997988950537590051388440130648071077645880357074983224131741395751778083851494156817957937205216994493414808893055062514838815166966949425571882584504595268059804259713672071154700644336956120951575615084286919329972678374520540702412169193127659650482269410423243468718842795157027540682461691293754904074900206311525196022077550547128621725685729889466701895423770350454845718397068749962291319723578580067504248085461891255162198779349138519752872793603710353537552233724935315382420655543034319498163997106699280271452133016163410479093333194354121840040771747891599178287719034133334365603708675376336687935056191676203657958664598354920107119898083129351840267708946092606373434226761722497995561108847971519121239548757536598330675107396163042860646279116650783477675394345785199757623459312660243235878347651941801833949081793086280742499659934151420358132546236815065346120162047580722722285773753889467652310438022145434623319998138542827251817249076768725950409803212892813197978028215817857473340797234174932073119038799094087470678192528731477747717689058554724267245699748716727612945826235037876137408123197158565458852641679690741029687937054864356336760821954356647792587251325986056727601200634718555085367773115833635181776334127050680044540391517069611153816573439674867350628226918602417348254893661024289852500242119365898826942233888085492173517515652852206691911798318057907770403359979249139883420400898934256015131596773748646231637643454974969338755890624136478586301732468459425867359300689312930574231194448222200902158040272804471070577809954122405277945192603482167072377163250209063178478460786162782329588228692972270859812534304984581972603605639788595240503418033133931515711919615512869371418947047580519953324573856875298104725819406130978008703587709759774740624462538749844870886124293601806243521690400154948425592589558537131475172218305166195117738673703617737478412003014639661546033134895287046521834642574603461227595547809550243409552196253293006455267920847269383572684312199235447478789521622005783672493020879428097428615926937866492772612090469235984736123778792745156863713718125882373861173865709267651649418174504362109019282997224414921722773043958686459119247899485601873793081234428400545428732031183989228493802019344222967704995031930472969834672082908856710863001377096748736811863817368999265764320899822788519215662508721959721662168631915229617560457796848108441144869258818787172024724719772130887731581389835263296936902039050845211799304938480559648771256395856267876363751620669647801666403892954259351348675897937050719500370225983663567067402303354881492249118112071193738069602207161059533741953022634322833069168450355547871002444175068841054619314028691132905417214797741435475653662791893704881694286695402264115018258355398666660263323799374473960499876972657479354149448135534116080085305713299618513008012951268237075392128387825234169138015870912924155057730782028760739667480724623552696263849979903122104898700238554802487045089176172035514374909654055220919775170390976459438551116259586768010006427070321695467689777998637701968891338859112278935169297453664199138700537856700719368210719878523695295995792668792664716265127871417840990244469082084836501265189452666849027856634094397151773939933098288146774884614476569836611205671618897042670538024005764259587588783040747786397449079974851261578167058442112528746139189156602021499601831108145854390054499039550635365849000126623536930910739827878523594916914013018245601163691250736534001861649532204298550165746984713016374410724162284147966250096595865127885861805197410011648974856306926290818346746331298372662653977691180408093487008186798954388121300649246614555686657804334458608663533172714504061706720563183527685337031623929408103940579837613755704909906345523515134049156118345959898026669378110189675838756984108151782879348909344890377657021892863070957142105658953475909520959980749020158737409331753487045523267641386057174944492505055257125228910196884384485918010970185206059578443145970138750425550708464539995667753127868251822311543184880246821673628866002515791192069872496913982490601180399007935507594454808118574206584811377167087299419420168914030496948843207725863354274524151637481259115094876471839189636888060778948913593289618311781863447928946421816409428081153544044556724167163442593544870625924717857488125324363742518484801090508013689200753990225308934765863480291043507438026612552655255195088067532224023688499467607323592777566742176407472772649032184157816186995766307531160992843530407192560355475436271717101083051251290928402992223061492757389089435616773584505128885617402658255717802885451487307650375606529971410623941063803650757966689334428116993791743907437706805838118651538505269391289611727962228402502819386530764235146686062795230823194950842261411615175814146001530891463577558471793865976485247494022465425848225000341233961646163790168733741733646582575221190123169178197256957426053449272600322772490253644589967459398501429246286042312502786402595482475794233090207196906397994843542336145782289790830084135390209201230860024140007841644622076899160525619259324014627690315830334994460617175819139068107120737327032274119882161414457578240872478325429457395780699828918892936323589094616991344663682888241998516829476469019284939825530071143228139673272979068897857307062557523344432613290801329358876993672358169404095797096104293718941159254777890733597874522467218637915754520350303411572028499045767450064412091667426640113671871907874456511132469310128834001732562381638634917246392940593956295169841822001630096028269067467229108431052282273862785751489764455489787245157621596484880243785075020542131427077957204837719121094271538084780240000709418812943878492737834405777040026508787779341374498655707177819645149444640670003017806676858263981207240975006571797268184449717435542953137282473001990903912222572661305077973144523005162971632017036792739029517973453459895393750951530502181551126480621396582456547940167697459388847577139137005897026559439821684829574121365639886339563499306408612570342338778139332017442852280082595411944312633771867172757613736725803994789988228013366534228811384500837530596336210855660551023611324693143119393040260233551637594975179735643743472725636860813673724092367405266885381829125156306556314010869544797592140102821512683578656433525993934838543336663918726359568360722220149552368626968019982969964417857284752730508367645692765053937473220495046885167359404492378898551085905295812986275072893890988172829095987376454339956835258670807179125746685975867123524257405134756861166800306650751633117047748499066371949793805832451962903140927973428821185381839196541181017733794425390504670985759257137620641012060950780943615161063835164106468446993342745945050411479882769889711716626777436105629597258048064700428221398371921669699029658720211624680666316141978072100705492513660741365412795381132960021933869626003897928651567343251046735626136748930658821964429342148344037038789065908546417038229021962746467554822433314451800566182531651457730438277315091100876999278106025036648145768331169738957341638154537522973400461037343167963671205687984229274674488775573080358249233353640835709508989776568807304313501865156079821783840079861341966832862157601289593618760288031661685098015331673705729111281631966145007533368754418976696671347825740486617064999988091125304590364479058881399764967586559617451386391077463531125231325306499532072478232205226280967189873206225931666804959312144237215476784498907462228192286576443776220428045689255827568185318865056820000626964852949493542952464541219037025591454580728366318386902158844108506655102174354157280581265948959736384819167293482104972298272314865726693945167136077453749708894403879535320579966394628341627042134208707604260632084446326911024950485033076051795233631282250996482874051524012281522728357145759079557850856531955264621978908925479994331060764772144063778101144432124501751984687197003836958936750962083423727029226294411400871439421748930922126675442997975066034848797991581767720855159470726129333910149502052053343680715848231196179827377144734322183878083332612646149884563845187302814460894360745738962394139912991259354948811045103527925301377889973435234578244406471824868721762139768615668394828692358850956297031315580298646695362722503506498033878724310911342694045041861803274058232305345888165820369956924194609217970388991546703430516420490248568702123254653613426720216323909037988101121168166971405663217672928176702660603990838147798773057156989182050465837814030889278840966230282899760147248827840356652927678210407263673071676900485084155758150284352186399945444742872438967117284725281952014522837530275843654262966774331184883242489945497312027785317003368810389897453599730081377969085330328577530721998827219634743908061375826411809947366360405289016692746986602061992894714266906750247820689662247123170718282414880308240956221485553684151573473540860149839853826769974341508015581520880299870732359048048002728536039440005382244546465450879210007572736897221037839919194835801626112423418006208125016276934654892636934085546343952779989582803459746177971423669573059171233747887384368891055173541212382275475615699025385803398896490945033569613211144624788441825668910576001658425010227307550216627238705664602161386434798552068001658212995787687333190143536385055274693171460664716701878390749547101943773460838379669566206482145955150159766302107360890644124625517392444251134593596747473658999770736781596124990263394672957409307588449577150307761332240795224169647802158873821239898678914296238925044330027432554761745299221206052734227548784545410869870710088575939672659536452975640186385944839687616348218831230116074131870155281522448725957242564501958613126199367794918497648691444461390547749919579976477356271346727240111574559337159592087587091787661606232678160999281039664486617865202932879501318578487407418131791696961881729795903649930739071851899475403681580630844454833656317160543694131165594814583587305497593097973579937982645867741420115593683906700619570391377345627624548784266604290309837840016996060981491769576481779777470498578854270810859487246081701166380240981697130712779697838816005640280419800931682513835137377886595238139965885671671108704753246859140821427879038876100132636250171676772129225616141310823342238147009684813701607042926254914903747195623602955901327876269637964539409072131268818645055369536547481947382799827020426782789609808377020846541966917615160742501784637840865222222234169147892117462641472878451768954208010670550182298718751904532423619866937793574291214531007739517664842419961024935916162480638615578080053534619432158865159219005677256721249247981857124489786529821545558964604227972458489636270292716383836172583118799645141177741816392336296179834010081637867412411398769368071929180133388997325054988242069670669330503788105555330333249585963100724721888784196689691178092534519544910207855719186783177424101520321509722888183350261375649099319494666654125911197095185331050266466724921469147942973692350908649237705803911760122176579065104157456838557172915745462736595313161471349042094981709862693989034211922823642558793286185836120959599000107629252316622845346746806934629038647435075014304649321859018828457673842495478242803918883264528208756432250790300577697229710571747629403540271927538830049889236140004252772995581233651296703931595540887403441547124328452232480427539387462053907828313519450166737076183982236523147346745017567092978691590305098544328990868120830011661419293473053089095587439476112203269528321270711944159144334781019336503151125543868748159576611519078883857552397304374119297237927762733790958069335630856456745594496180768666715042725948685336418201333932428544416985327548324517207749418729291271556898615913911745461628104377791118867496377096135833908718752188143586994928178124539326620462090421986163420266597398816463467314647634695627375007854233298337446025134567460087139373875226754442091576585218131386034673471569588650281261005204614513514599987545077807065662464620922981982691855962386646513182519227926538951810442969128838486252871825321593941990481322536118624224050297257684964261500336636512638486039299751297165587188666906240899479080365992508483682151547061037975180108984681044913894128660325654429616146743820805390466606399426966405021917076149629926388680022657433227301759084227888345665432857704475470479858823345100897715324820509796253115826525207827398965034588458636400207465396485786973778543070360171258007550617619629372939957319716824358798163309901083171859493100743069740182906090655246501381152956626034746622392404028620410398037387406497720529341930640634468068310143451922215990803643645181700267978587238420107306355838525297591603049194826216721775301133225016514376665657248284997563899307265252619849437239491267148058824488558988726228825971818856390745773474410195057840501820128769238717763242705709905269951876322153144250610368374397900945006691178638007281539993766191980251851526986480175577637701502104482352428370728028583589850609397132245700541214570902886935601861229812862114692514411060054541583066233382915262401244241882287192919555232650969529576807068557809892909330353676032164358249800884529969796255871378180488275420222169539470338287239340417837473807071395733840112281887345855294797896992311093225555025870207204291834891592187237841544409458352326072364506275694356108330738006865022428688640349454558351183858145735532167818629331787795673012854287769777079743415069738376676931969852673494904217778645390306346492351444245750819713775478707165623953382249021148249899989976275527934789497355540890361338992736105461155340159717839972861393537404530749319504829912107588747156145322566808448478771738025663070825742646656499351913964345561108687880025461274890652113976303291389642026101408086742879228137021545655315776939030512117311219753841306972974873926162902786034846004156805937554606414521764969455791478885605179417475332927498084410021801267663924998092202889465546555687782187777805830455453627041832848031096498324965764240052166274686017459505116250706217121418933660902315747685983177459749200556608645373259345791722574896372067781875441409737726244484446855116755845510086510823700356641022751132627953853146668914938692591527461398770968711462225245882048893166692590436970929637571193470670679669822982563027676435574667673156617811848890097370353443265180916669089384603571759999110875290681478889879423676156780200984899723413523744468651228549945037733405206008961085785789072713662164377389525871389269186160922952645471470355990629870699581052869708455421002554776238152626134142341367612957207859929205134683831896515377726377474042503176022916156512850179326762272949850543164754965882180989646206699219428942905582321680330915395727241030467753988052590070219448298260960768091698906324400326396255761054766044280358742734418224290158112943146908753067740695902138333609289124289075443323115894755032734673301156598613575532913461141750170399233074932045929682695624577112416133511943572394695890971062765976575111453763212671749907097504982861950091900121499785073222764727646730939238052356814452466037055927028847079429990212542284346087210975625713407394601696903474051239150782271881594515816193410742777040512637304290905142019351770151859852860075213216317216804364591547948201984229241450126428960850936416691315428531224549901557051292531786039168396112920892072646053881618048461755033599683693039754576372319006071171825307839955905884409207551209597469800929244882987556313350134180643924563156280016051190448680943319159392647310056009304867187195698761411073519715898146496723154623051880037680619051594115780828751332490559255210330937792873797537879453520742404423335840496035903886731453278486039517381791025394069794443127032715619541587122495158227877625250668722501352900022909658526389125867331624754304317020160460722930213895737331598238676508065670298589451559995373981501675283490595221909722738385181818940716456068602588616825989054195672838149885083658570145140456282629027503517525159469601638615859432992342194779079356329741009615581016367161866689510420730678237814709936268951870579821489777765184844918311931699984426761598520881987404606580931766913410362942771867368659881910985063944063237141989313345530013961193741822006720331639807960506853281007560038931855886521886644777620548579350004208299803076026266962593854558487266742107897166384980984837931483657033112906473487021748327608001311446997588079540887914136552000513072741778865901206197250635558153165745495893590318854972690967309341080036934951887709138878762497384833872975692946555033620079053650015364474402383439012256777505862687185569671522616677400339490792207398767213719175859161139595047473274896335329512717227018154565891931065387412476146316492550915820806610032327314598482619453719381361890267201451106062319329080680931018289920794139087501458854288759435542443038544589668933276057532476100680692289553275590913588644822566814667771658267661956693076773234640311294525568712332289135897304335280055111785544616016111602821444937601292595782916764364241044634560118992390844318106394318225734007546302652085481311844323249941627665707052995316860310762736704239185957758934044376646647190125156080839411311164054652682714868894704504613059796767082665329087323038400644182510042748894511988968387369952775031670956989278640484754996204072106445641248290997217051515638019068798529435028591093607996682987628250759306641014732679513427345758454568615728929610283327692993302593400582143249205360000282810887368203345589341908045507190260904117798654664588588884118947607292724876660428216130011323941171554637448923066937144720325325902244324235601371426251304409598810718082387173281534899023411617333566902760065103159916228466252755481776092130154184792869848917443336267146338360017116284198790685386063490188613346969087231866106633148321666459454946968495092312947763839164112453447879920311241180838191809438520416918546365512818262123015962858605714571619049940632128957694575374298606636829885657881336777188962433724969457144123669731593501191033289188607403631613094008337068304831797238020730144395055888587291935227599938407028637501726983402465684546839045734989637638140769554220431566591490709770539328162524679585223463749354809621071762478900586358836969598715987364763345281321493625199346147304954679305701320709190605889681837129812525925026073046745639248018676006283794323789092491969290273227026622389565834215035033698173151176386556840982568021434820413617606991806858724610752103416281337004772902157130653929966372180760352636830108801379672468238163177659651384660008783364022838949940201276596700077098086481003948239717792884095454489940734092926116179743520575844848918306570687210763962191530627708211524192506148734690438469665823921282066377306435632923999367400917045086682527948084506060925947023816025059408079540692676208758358439933409103287703935810484374497382022499538851728301751902531063123976625963731107377519697359909750435625441180805916098731734417286671004831350846796185213944672674687030784068218325292346210538887626609939638054317966611710785149455941387234569516251070646074877821823061948107643871851123317299868848350019401107923267407131392220444665804126805781579395326110221897739210600788111975083200569950009223640017292336027262680090703104732692692670619099935416530716885641070299111530321577453312472947562421987704309660181975959616419044223812142655445455926771537346343630909297377917525434974415360158718419542652878385875328726466365494900689815414461802696224694931486524046145454474046442296394524857987826823831704910297769957988018635544551015701387245775085734669839106444319331214839257470968752258914565436320971208765081068844688491910576120325944592131207404162854018299601573887962986662499676928163150694533126225265124378715300032227197058159159037338171351320564433530507153949968807924581945186102687719207116778773627855725251217603186205832672025618531171005932777418283617413150466773135307233621661360745698102949552140365889966861474683998261779006769005179573991089294356928100934368837337356450601287532135421417606894485357919946433552117555402168503625127761716926940626757227761937162672088585690884605618918144125221100333320974059156561888491693166641472930233689294196044593680639440495154870197612388203653463590991057994721708920167156053400949792111443576366992619859512565152771510217051054746552107492012360276573048579704503873490974406423127231614798827194806054592775450399357584684357838213627575423534469271971576256729159442236543767061413478189564644123844674049855578828266801248264561183367169118940506807128410033218922466905172650751370982627201367447024313063584599709203598740280204732660303329133362147957842601391392760371583020542413215574836393368284920423325426940505911664973780952713760332395219171237467440116030398102339188672490188913297709976559173172860692637792662927745440578176857382510136593596101625850656060470174646117805562034100827665588663987078433876116733707578804323892355098073831281418912437039761832152095148538356800427750795571725533764194462342259617969581701889676899760101051747815112111462901221318219421475123217406373261862721350367256199675932848617826463506486298352438772309690297929932830426140204494372433435534801251718609190365304332311527385483477424709698087110893497328146190821706096276665059211892444130513197113890244212393213817408413813352547597041268180327258221842624319810024816661206122508991819487013107513052280607834874874864617348445368797292426277279518028430132052120745964572931573257142449575247651266348255697582419147556844102818928365764815082953006190995600806742411925475056652131326730065897207258449990649408018809392092029429117046636024176462305224368478357331023832776508804154888737490624086884305769121324839106323179681105080789693358732534635496984588007911394687728581332334055284251353813933988335567803799879598340579271696092136299508640545992387586500474428220246960365133179209856455286307208617143175012865472178867721668971195487868279518924875644729146376827674904007185043209135072993413238897312050842337062312105839382723894685825659085011938762747111618531058312489894371551651386089559962396220384933793563171040261415289133980384047936362785682573123080643740979960524709460099187455972098869848214359953123439556190671624417847761702592077305778365408870256863901105103558607771205442748754979076143006586400510205361017568215833044563242738301405713118202924142076994517993312880683497354696390541343050209099141193632743588366902382816797593990107227781702632254776139950880505124056531947877217153146062545867345531729922701871800799354291029268477991847679504185886649025314756159564690409340875172032953841518857781680278125008570569583262988594694336550544431887229848735397180250356918774774213076316362502213251836349409450148840178388857588294077391674774195438789852840018098914708058138681133609231648743528115179103458131147297526826263108970939822712313570846964214766219991081349996008953237849763074080479932636557762604281361472808590386137376832739297389417045075825214240091739342414251210360893368646168094698388180855836326639452894090004052734475996062721053876886454660448594571288762860920922682000365763788728051266726365151365393704664900214531252786317108509434091011541789618128479355145414786170215835943189636651196452416968010422591707491909805630106395665059475909416167447492979429234387711599591391615634189725596023340941715123604815016344219199816948754400364807126833291079889795998803729122194949481059921170228906683586393382663624784434672617767417484521717696198203831214285656166791019294839319294513049687385655543632913938647301132943988489699699002736752469327240691742756723123084473429095899971522614545430786520497239434142575858489852085349855188573131847717175727023353477871452732041968846491540124681426147485058413664073834472706012896750873035471696557449638292429067400818737465254078492129107464311433207498577092210315120947052877460153780904238228495613537013056764409376075278924298755838560137050892943340615408930433858542941079009174376097535677486160365315593896207495363322436841648685288844245109081948711562583129180480021527448255593276301183727035341596336477021326421789537040701900454997458605666585683701247284659474287684623810562050514106860025359223981540839039744372456282150395739991081879680204290307767635589322453486507140522303375467427251495294455198208717893751031292649433649015062935367928198707330223119755570655649876375438738694817444318161805518722150446816191604722694536648449111421035341551358451438442404822655227257245032439374410206719221628872763472178338172427442631094450513956212757159003498404136584637322369854018759580147393138536246157375327329047187552004163722990638967362253553187089896082676016724125235078757867879398475615383862917544551947589821785865782329471300573680022973113831626598094938956212560372640593394832676718590468557559189074630364323681220774774235191659026783820604024895469311886306537041311225545302935212096824554444465385056397003542231718952268835489165098884798313444051027040305301907444031035428400046685258425481670448866601816426774612614603977092768059108653907158106649523824729897129108548998756002186172307399791656342142501266760371111503341015467578884490919896237554016975230156007983590270488185911686005592536973286523129835096819983658592533025264916899054258829544477184332867116264841649202806160402056080370651183882691084423329394839474755208968273044048191428666839469270182075715943642170724801701663368124547723660710538041669387305753627521415733807751881030753826805917388130852756654870655489822957606165485154190171360398235046811679167812627669705635947079212570308334602530124113873670627058115385486766776022698458557582620852180951415263392320179220042226996766292829005931451986876234581943795789106441947633195710460306860286160597368030444689241604415079275317057238228394462745209629456921928529267320805138559000457640591840892110789564281459863294626588529773883925551543075154200947535686759285460755395166649865032738887357724380179839265621994196520030362603291912237148909263194302380305110839077040713024657732305415345829142377388423312150946043018856521119205491050036790255907688647299718407361958156372005523434476203381918419553721246797573642307006885217636338076547570921513888781380447855592171550310710012875070928700632948588556426883728002910467039894269153934014083819540944404900978135941271619345502716602933355518750339847751239608496130380223174716066415757427702596449275523199543632388600778585016780732820155039447287129291904224004212612805135065558668238055953937388105908818633905353138751733026826617110675993275294496172336812599810840973115118547335451255539186864679045416787088051045148487292187716784742647590402968684950777513638350092005349602625411261931274849257299875062289983533264271435298769672950619150181205279451900354599166132676951293549506374806984430264243002147169036081643708544507413242239909998581168955751870184731253217977365367439482301476759036979649998427798755081087069352365967424892724415447549128599573003067966317535841381856487312673454318003371493285004339704745930185339691751721379561176302203130957246674524892411568017382971919302729146595416983586828914048619170874793431961977082099460385295699762262252443795852822849657974559206160173094874884691002383850731910307887335827942594992269574909369554223884168552304094005633782724490092270771151267734498284843933380695607840533933238451350985937073219725588330917012762862114897224672672334621723833987606809693944650965827076432293707327627546593705133169713016558258922702277378068073110262853115036559887466346465311392604171717087868406181059325445872332542679381421819675425451853676058752249104268405663678276256205767100561041269482825582101864924915283019596547927356168097243931752145494560669343973128444568780604396709290801047908635425410190700975811205675724912718141716292848615751607523820040858617851791673201568301987307266961808625769687338583882272414522322372366937110282259155829874332560756053541458477417502076275288939683776643615335506999038403440451356044363476315923688127952741191210840945504376414626765046107247772098183324828776920259966426472947869933028899444600857770187172018149951987221152450254492166054175881476862656618335201165032898023129421116516377639746267570499538763466956613382913118021556984268668768231544349124457652038632602978823845380713735443135164913692194385359934849640495994712629317488732307279322259730776113608625170283784104877544865110066844433260453927650010427907295794943740764489372074319745023463456935252929876827542524089854564087292857095526821275418021208738158904726973510913717943280696285988352776301993370566751267220982636647403926165243500790133249643002285125849685456498209778371511568812570435294089943455774881280060419769013467778869347163587024574498273995289201562012821106846437098302352505838861788353947592074223547679915144352548791704015394600922633755847144056370304287431047296398279715406522931549494913229019207112876128170292063749827904791981994007337592846723953493107570129236084505186905449845844319056009709608291803622117964316230846128697869927006449507364223034918096463348015353604095960072472460415418802528454986358057597123963066760458658701170205931229743238314754166356185822044586761328811596521444993360720071661036551523293434678338918724786155100379318133189387854974605885240560738332243344862702922183781017880513888791645560363833308790875111858952274149006046623856032676660583019835268620130001488537142657816108675883817276405053120666166635320592835498402248314450886905499559855598399221486991136971868751838549243778463173013212248783157753029636841329873873784314735778537351646679364026116958035671614414465149280993847500026515539215672940849022622341589495294792019333435962364891884625853550728323723244086077634038014243082848596394545905564562103165593695324086407531237026860833242415247574633737953413662363758564853880473710098456042650892063792174033064067719183232052525766120278162363157445481335360031870634850833333920934004347744782799888091446671013611466588792759984821107114634830737689168392250439980831337090195240442394023505348169933546545915837549602354232434982345380942817844988696149234910109589475554333487278501151645393528753690278772762160209047405779870712510861350698075390336435866831012351336720321795766970955189364771494040385666964826652087191394214297441478541712681468249181706711328329277774757910021647258842736653921739934958874337497608852866383364110223895748061813077888499778908618911040731802497625100309416252459598680167361072912764339473020393197855984647642560991385871915530700549637868141349379237699965299234306993893573589241460711427128121707088255124475351276046738487471252348772437524437494743221394470196016458087555534318676277842500809548832315101516179686888262906821561230302307135943330615513685897308384766512975850140007166832290621445550910160417795439555341023923658652778961590440604085975057450279630576106860111161644373473069961768097424361639482257676461420294224218038334283956648283555066672482169238734526975310082652374109191923439065885390674067728991100646380709410807814087031740321254141001395816243336084983004392042109812083343655563077314490071314577535084886137859883383222680002151620181126978573349366970401144205695784769993844128696379266274267417864688441080993764358111756771952410580837186463864578829547369173685177625614532157731056450771857241363852976043371453594996171203869041617524049865426678753467045897307302856376332701395725141621229277729173335367179608983429677630598686832496693995965904689500543304858682024435999413265478689245245706213599777064436726592931262157728511756849821093713822486372307822883847724325894961057184844264657976777990939479522670737861442697202053835272658078856151439105086013124053591964113316990624062387130401321264487840146305929640589015821242679790645931734954735690075513608289059846654653729900077657941419492858841720457836024664129274716272645241685856331258561376218808873495814792295615281919372581951425210266961791915676091961000318339575536759641870898354614823452530521534786363903487769275044595296750628838822190312800999520253556174244798486179060331207442661169181757238921523891550788350763008697734005564541029287017579292068614889604189977302640405404528957456761727913369076953836824839730495958344614799716218356240740697317233116299776809129141934087316329138192501617839658158071269116153134641484748149698037704505585431815221011467397265727754574964848810938010764284665462576588183839290693904825634771992125602004055612288769688070456795066329660137546752678834841505560485886792687370306324016658652483503651335749085541005620450550076367125342802579915746936169324881888506983618501825084237085742609513598220051509001467941448227658527244731257011319950264376813023236608552562721265986103113990953443406684837430174299411250600594344276773096380566145674171374315802050360007866296196627966189829864130958554550784223168516871351532498515375805879954013001647993450800729614207892833409145838396959922247116245488451049829540479653930185395756703335524014751546903687881155910785350052928752059207098929718030828175730693744496056075346898264176392193289336366985470933603468855228833118732769942175844175943312397811671280792853620303972243965408871034637138737057058482051814527984413188803827536446153523652963334566364105305841568024917191178096632845977861051763661800247513269054834083749618685718399776256534815491778167834698787953409323149056154875320716717042761417803342522482776154368214022873428423744245715155428156155643870065341949899088661488938707087679531597252312723379800492438478066776404568476243271223952566070018280562831739770916427360818786106413543848562129464552900053843993387968876203572573016991823717710503726297350488414909495515813927102865813215493445842349330710612726057008598018716240612004043220647299271602238687866890901019855353421258396703823564030768844827560852817339013819648641005349507816348352883374601529960448554021681382121239877903305811004648042713889049128167927121098421633874585965649321488621596206251729405692082718420828855602491822700661019937650624496817497568831311367669924917499241820700859339044552839220970651354679440860926923963529336927701616425183366573013929974805048320503515778367059507447256639371609307407869455156852293424655911980322563747601721154596809317510450996133357875894589825432824723174672036497526905861968261663023509059993245146322030387555973521016994394849246196453333529763802022186291498436385879397193250189314271115424001491303908830899198907570614451579342377269217259552761565763408413101003542517195649274019102650000622647323913789508280770002696037409209817822420679623327578652610521564217779616074380999636452796076600993049961954652297067614048580318724990373127973170568157787783005387770632826374449119059029071742466616884787507371613706653008921751338205915573660048377089367329666200671781448798375474715838547024344382108210179590607351475723521779955434798083298986868084483282592647847168070831211303040380706103921852545538328543664947430349680975036057452400310937521822110129625646689510943304779705659073156280582467527705146203677936258054242548245566989639145129066842674413108889951860162711941534325913365288626894579417726390836962242479474782349264856291777713222851203080780571058010798468636563636447076259767114266357634118172295361626004770773874448322028730937070309519048460643467927807569164500879784624025515620692984964352447721893038135501290286535801013321095814834039630855037422730782694951489985103906218406956599628415278713537604521303129683158116274195082024644764612792912552580987116501736577895446728906009164039260108157374758317039571602222264302773006915177284655095063838106603646459204526360345869157260086444100183982206285777717886980264018650151804462249393532861188080908860729463150151601011466806083407206608521244494073497059824785693506356112802943842151386143988334794473172614137007058979402055799502070788412766986129201944130490245215392336823949510044028557913170807810713354589023766515704735191399504452644471336256682247088105172234738662638271619202087188788025101027382445398899594975406757372516691221716506890525276833628914080984519932195981669476354947962531356128994770542714085816040607990124465960002584852119931575315474574542280088060392988595879078483456522660161235462065897570832794746225508800641407601880467603948752746073513376814548514840429640143143096859900010917744336813574196814290663456096414609465601586640193091526940066040012562108292724696072096307459130490683515760977626470844275036136477806924692583766205642248849823327291722407641651537130027538897719728219864303915328814507512302397517952306646954616493662778178088104510342387794405697758717986184890652279916351067086829692950636621508963026881958013532403789265279356152259787834437925820773695936885867028465695324055005223248486516584236496899996037200598921583501857391191069790201944239759160593186009053173200454220644609182897319311097992724285452850204172496829704825687048625190168633727072067559914691617289491368486635826355468444084903953968006564659840318587676580792119737220293255114045345429347757553847390392756792750361403247441909174731558507426434237379989175657352205703003417631717361082812963100754338448710175141535649789872468908819482072974218705020515875926489304344040647895968637730765356376561423442539135698083882997315321898817996142955043141042386386299733362344530141298160408445800121263050552690382679496555678674573522203299299894848396128676537030726672193072226931720758026417073118029601469565605660669166600961824683729266185387270128993693312243910308885781267712349495391902345899429810800084817965706017337960249571818097001308764070756382251378156444575352153201517160572943674622015598065243583290052291385732955681167005114339761104506157488778866613588493878224589707271323729028561307517484435368123672560263296428007988849972724922598186282085337589562629016758837186427843530229470695970267861921954109377327516140080923750230522299290252232316891230319191076400793854095489960727997457862118126121545292214939337833267206739432572269629646605778219181101194659698559013278052546476895024862432468571597322901035082719938920990699503572664894722460885424851646994530833000811542753752169784026631073304613915551462095758638711038389659985279398913985380783086669719855245099641696191859072318525468750527378329739253428097688741950179987495308451962933900956496312908341671091466243984607868225907986408355308051922397377522398678247860640418761152718017389827127074035027067788566289194914273690042854399969676046038757400811885972720476350703825762485504799466002337632738386134867713621629572473211131608437193123361296489201564448795779116297986826289428298652095194236693325981528612742819218884429601491841157335624993264395765202546101550652782444721033524694940946100926299039837086118890291725035620697328198912071486497271619927421044081193443494953273566164198486470825597015383134035461685861850616351033776003582108366661192516710332042601579668192083264264708773960338468097453623941333518166653246223573607457132427506271272767040901880650182888642406200922976083462067091180731621429942785758905626117204451486720080050607183027344398448181518211388243238664982203304098753445999181956907712591231948715306424665400395633822330787474720305209024682028252810936838635672861433853997930039890900090558843896205236888960964931428422616679486235155386671050358333215988612511762876633747580321835743892442645046541215029796320676522979820695101606877272202592976681182274741044364764130686658534729117347841050664706773294339986522331785717099054855343104034012200627199330257879604360355500594516019955423499087836946681911888021223602025665215723769644245747655895009798939215816891829883098979129456133531010609758675932112000998390925728142547494697954616495861091783670844970316982793149416964869554986552733289173522028412663668366961069867972500711662427172127149388416919910518869720509603089333388044786176784935132173125774569669638387923604996229008159192566573158319023379945143617538491814749982137347377740950422590414147191082418791066447241122946997658984379415541013651794115354173141834093489536926387719148012011197033195338355365755837634664155104917423367000958510501300488963027151002151155358710282509776514426881985173480516940069796920725115491564414365204495788253659476053409789165827151028245518544908094833024197531504499400557905330618892150381189956506990105594592080663616958965038439732145579880195382467421479997567751768291517858936888323546942647973319685799824638742829260523644383332224540695688105078484599651749998657627342414250038956645545038163424096833919271848589138726467701076916041083827906205946345491715157497208937136210772921595773363142295330272098971883217550167118652723775019856233471884347595969669688573655759802484387301573516847382075716094995935315181004167340695940764632634154519856486634367279868164325900389440576747042389690934610958354440729242619435212539646406924642712706284270444614437030784746280272322003863954622001945950723410256474321529092859826092603454020183505740463938966620856820382493384336108654626543261520910347886480912000530809916755868954011027919047782558518520683123529849400545874388173613056317252950444919796099146690359853064586151816623457551810123501211957805614606813077828595390233697508480666423397376014874574897008024433212883144905937037095436251908235156333682525904930019457268905902659701307507832781329195458587194731475227186454450231546325411602287097772823145159824121002017357720958758236978607379245416585009597297870327013154525159384330640407373760825624930905884376593211936010690680549991978262095790462559939240435150685274695185723143069810376140754934128403434350221401108572034073229189999959568809572094089401970133956638889743221948761304913604533059395267076179355586360513967741131337692100380944273452003369081125925161170916765208963965577021446911461570462378178078975966540093797792365138369443856946827757870633196784161078116736027224525854156005875399154779381458600090937701838857689348212269206640129190253727296918050515217434069572907296345796938689903771198911644103517715802437539681817980023049200418495698881945681522538081845498345303115909095089753150990342601814030981083581385830197394521496114354161722318733088266705558426804714033973737967150187658818897985498855950401145321961458159040793807508550537738829777377973630560400591260857981632768304226109553667888765275878432172398064290453745773703948481985550155326151092300938290343471704681563234950566592385946082397492998860406272855504942454001426016471579572686079761143597896413315053158470834003875437343029644564830596121300755108808677106456285671998969719359188982926264270565088936993900965683742819752403992262296770105864355540950923786914097062794267371880888486313204644576269968092832732323256957886731604374301654754096943744666477155874265717501724654401369924857589030841062524892736979492505638637885241011314524722430656018949553067584800922080495244633809383312022968774502332674228677811138880845483331546887753329558510048390176781837690662562514841856092559546293888659642284089302295927568759945604773049608773119925582069515378235503865604825893889369716677595544079587042202313387964669128109372582926862220947590127350321094812479393910222979552575420105532725417069145700530069522657592812452769972252980770878929129626076425110922831977021851311873874491489726983741849501265227195260008583665869041965840949559537262190035302384444725497136745927269073487578025027858993711479331383165847420973452910089471440987159507411534412872177455110669426037517828436261009717458639677785807362485333143928945908765990795147430053102833379128070266287871640707359564786002367858931999770732382913929967603179088875858398848313020046903344608620587968720104547113296196660644997336018788423031456112319716868269188999998631241861594405591546698022821118663947933603109143365748775953867048578255651686721922338174372522132330197792489297306764775542777734861330443027172439947388650117989148883615608703246325510998138772895048766508332439743936026238887384093139576663724299173786326284349157660458219489864315491996841499542758072665037001459208758465023384085347999189466805792020353289242744426662515492756295483359570320284976799886190376038728385416114579615506518163520153858441884279228443540563920755664542759470851890205183457883571793578065621575435827620949274607441033750233941219112115450456490558577727717201210649730781746789363366127883748449821662485570485684598116574178363090566573641049592159336110794944990349776303716044746433672911779694288361913031837000244746456777331163656613540007627469726002130140817361919379690762261528568413417153997693753430291542079779553269035159697593125821395001338519273973877894384337271941229202644290377999648611451180129387036890643969599736666664163355210227222230950273942301588189445751937822868825031779880141084792013210426247777443874509344139288293683903815763570515620488791729577103870244507874802218433928659518813775104875978909452977654846327504810873501137320148344047918896654346755789603751659175128624981284567308533891543572996903853013566288420495546722908674015663783066558540295302380711577701596451526216678522885819142607923697643454453748379781810523850082098688636514168346793248524870291401708267117028462821484058913981914987128402114368012238171722513534175542404183454335995592892663418208624917552225485307256221068520027343308508761575437944320256558755877935264842666684810689152847273041421513072039965202504329195738533175946012522653112170713779145659283095673403823919249366200342900041806389039196110941377093262663998677749791669780780003338487576870186222252151057489658074289076028052873454258127301293316297435725645930683003878227688954162352173235286456039699462680262405675676536628208428586956967966165941917172048553373379337978036493376392568379096524376465899951820274450306116651819915334961750134150029693843565925471099554166257088842433366993551992230410218527178862520957717793202137601018040027857274215521707911039174466318871158440075149265154905642182369504467177715581819415152148227415954111288257018157617334919084654973198622727023534787046013541779810529145711388198065268666812214446305114957299196931378833757785956616929469512767078963293744876860006178261069838395469890497014644183729674532353355773764055848215982325615007410736811013076526490888143504905667068809918614174510834012449884783329656223422618521536823630866663642518691977707328101195915645547932290723121811209894159203477186098698474784194939388425942774491138534973876331217658062468719884574198400418446150474977101334358327754085953334460805450906171455470256758482171590196067622889318992951631528724112985307582055567471385013082837137067382004753578316018350984924447730188176646097119578329416134029342440636844118267262029248942973874738850492607788015837701770220443318068467477491574725977150381970134852910966649427451449604232180425884660629151490474687361023835315279563968553278745477181786662126443772473364941436178285641710734046022127530988271228902255212238542023933436443255765637399418354752563778118988508749600858351713164032899768732131390942856579327204667016044474800898878524591618015744775025556069078669795386763669454819707718571938560818323128876330738720323103255981180341091732611656958815551266893303188887961301464677981805548216017171777206892572846879672357288185401291926265700302626507247570500009818890972610082269233793659521553034924926750302737218695070608882595819719411543213669076788879029050778275976651771768294861689367218159897933226559978070501884263570440008582891561213365388500761771892782333504083429639058628500371584495623520755644314515664897236768729484973786638006512310663890101471816363283228313601540341533126388308246275278663241781309947475116985471988946647672598973088437472963529532590189869117472114009131203699404639184730555385655633523865393806612658960332203634558544487556753143008897057910425438928441139708363415012255531908076815483026104362738314624014296506096464667991314802057232571745351890496215825276934033807063121532440255760372224855124089797449802478214201382836521122843460131910589787491211223846162725374946707812604023160786496575735103978387476456406722483761138705844931910022372987871963312753447695330985018742655039505071974432994782302880938636228774044649900399436963692059673334580702910066719424505871510801118008371744295964551187384066398366954717909153439605440295597838027805238790350769182389377345169607357446419000787084314083908981738409318080301195686974456425116547300445256684716271927466959305618086836854853482917738419027679214128176719685400740345299373765401198241262852126918786811375569467705677295865976112173674176010097579184395981521956785406596345232717655628464484987722182668337862342344514151324758725985369108694529619014453507310764212146559083623495588697797866895111494374051055687125547515822400139445402402810374956506813051487840035375113576041799414222511771629185357679988381264121636136739342990907477094828734810925211549595152502321684541107265925925683392603329830638694219207026223769123728992140101568338278381647309199979004631413436277142119417041243877007411231025617690244632023489536716304370270144442878967799930756365925549725713655292364228509843514721772054946727567095504713782014730869254817448296136460660705980162267682327659724958393730274204361641648357747938055319207504147288002102512966978635960823760932788786718005460165449074259780275687583218218715594332720102330879000908765156578581594011930138917250189172655405384967178182231376014923773806877037693223765381755363986726395836556460052434598639357501734222002110145406095134706436507557418528048235219226877255104586005656305358028010580359815071448109395800508706242065844005373968347401922858625285396244609482923187958533014543605344149512300688810060497523114173295166959125231105395446640442436756062455338928385537006127322590034407565693280810765893462095079384535617628486886751923415769086472157361716605389659321004944724037257919514312744973424815013748437592227792503066487432678995244393519520760779962729282790406773338196230260140093542432153290193586925878441366735175428914662629344066592937601430515541573057798050113908294309592494026539653666740588976618547392575156178984857311862633872737887158309493753538889470305131328805470725411915663503738521004225707499483896472037523482964553548713370069685580220631935000007087159657612559092702309091142925385717590926658243878737291939781155318243926774405903459383908084453065858839771170676166523386048196576474306250049294278833204582499531450145578701815039865035239496652327062247521346838393693529450902872907485194901999475918759464101940922065792910441155701543483438919380938030309985334126326335964170581361460398583002256308677999257440058883308461477803926193297200361058171691569118102050088903940700280192133923851853489652535889858563101780634673769580169169223205602583124845240068644419050782786950883489693836804895418853946610574621135115879331349438292153572228786505351738547523702073683624480621325062081478211582147740932284932279582806355100415441575244729531730433960321183105197017716790680080229957204230089260736896090860192830574383317998413562207326047930925759121896606564070972071740953838240530665046249657302470929563228322045412512853375595395702765734059674852258641654643380482428471898825668681630927524244034533076319873212260486009304989340919251755440634286392619915122890803469497113857313265049606109176095158357179908662881177734127597822224548692987753713762991218611957419692202376869121397786314973104914003531915266381707537812934891454793500395645850963752699845487066426342558592662404298378613834220179684478099322998668509387967676864805041320589967180419887902482525034494046812511298545076045893617122823205132357923429383937025755300621222187741001668635163672778984012081382678052668197652925239171423298348806641324353901525063757169565139682501127729862341610251243622366092659647501824096247825676245746642055844905421984397942737918065217233527705244272773547529188579262854588985490612100620212793975402608909206698164506661225702909856814760606904954355217605935035551697955389041762995173854387325049510214743918185185462847641672894406026998892987249308103340039288382445530115584589328856145726738229756009842559937438167382401361719762200229949989102158781147500989879631350888862507756147200377425773883842043181843881505744161253181697027910494329702508502103287928347443398782245773057192068332154499766371627604015607424737912938752510195159471294233628211507722374457554140932997334531450192074728534194949234640647242103321296281452509914459885958141540993099820625780700139896143371678498956623720427322109663738442194199510656115506616781134924729754618951723677634680785612068591761088171947221298702441389011219085189182521954633366694736548146291439005438641874837245325846479574746105778411235605709473407776008686510208724131367199862407990070108864659898178646832074721663319358148691307094885924406558955414492190924905079836784441066450280159634125581052735501192874531188292105422770715472357360717224873509051562339413132860275179175459408150569606584182901891358026526456379005238176265582963210783192009313370894667363676631451896062182358219333866449118763653447146187593253464216449389772405953464009067833552946867567194883368064782856915571689054715102015305289330576027311390419250882531483519394075151039121928889971542603647532378570017514283115400152318026957179463022147929832317319227457046048687711711501170634951721318156799511723562369409873814700426161995993010137027375682536952953583352011929407707935314294769569224123001448828425878018430655564339635113781958048344297540676787958467113277024480493137933647599451473354968667128066804767949467635732187689861471651323868658391292822341815161424739305396944607033188597241349871250210167009443508094483975486896459776637547393304951808481811536716987447177269002648703256276302527394773781622406532288951228975132395431381125577108211970722860471874097997623243319615590633500368916956823795777953872655277184342870213975215113433158309058375486628482448387528000604202628515604182434387613885405829355664257613979352278580620132038268667270372047753569678750834372264809783134085821285373355267756832007893797820981059099447382651097792093980106686623098928716802998802912282476657544207524797884780379992110169369479197328394231403369200896720486793180047935578441095590163595237834298623394376686587005302354327056394919094630405154188885889855845030536710640028540879296948395026466164239963318538721351449975765359808601354742455097789592677362053814995426750398127759379257149066791521982458534769675161680476829499887452007583468845682002169873990095007376426143588050972785817621575865960354529252797719464336302193855868271536135428031595880168607494838261860379020321266295707407080091361962370661823318988272547572015890312887415136770594020047192185411279338689030587304742024676151162875528979998785645924920946687803344263623964387815000137199035689976790864103141918584304511202911537893192971181169198574170130885824845817735154708308624071319000890811652195024863195486219403701884300487832479812965705499921069126363625411041467764713888417442939989826958297423459648750295037891760037712996059796824654766762690759567655762174030914596420197297224164318705781929006362209639261841001051401506317261302608450211482820395009997645468008991563865182286133274422211148940054975841380953843266421187282617689849152799819464409260311810109888174387100515769355149214317104543851258923189734336513048371349046979563466871282512762319901380271620394488873751360351248334372826439390051537391934927013074076149804377065587443879913933240013795969793961773830738596466253129370101256493513957244324040294107081581807997624260177957047596239613410762736361683921662976988008147632708799363533490581818725170511211197295619128351930111079702180038417493542231203077872304984993534432490803164421621841681502039430865363019522630789842182617728258017979672088333680515395051963301674354679187812618745063545393014269882654278370579334254634405684997163738326800222980130996208891152453052849892748801098671490903501138211426530047072594725403412202998484029925988897025694772929652408882326600770511747847792653651336363800186758167287669719181300101392141568073910058813569183115500698776382273138124120066016238220535837605899110742853193626058763615899396394254093118516307031716066778528331411299908677990288147804590740798888965849035642006645370906638655846237529036635103042557648257616021140776487171835027664997775009751946825565784638005835675077274149859296399837587921885297109081552965881791356969169254424202553066182483388053119425022382818377560296011900800840756738337346032150570198671144392017923282240438656447977764964057403793241111512237394255945755384698426765693005581075748795507726298435551258884344522059846909819289450105366322771862513455455686547005023370828567270574853779840282087902972508530526657719809558215283001029725826296320582229632997372824237643269554047900614433094116869879519131621751945227401060550747651705973481833539683164557091799361315220414389730203649282140524238085248856584665665954722134351263561682983608639901130791483737287186661534415205221607712578469099357970618576656012072754324743842501689578109350493781791239594223334571924282341742368463378078069589005531102611959062681786681129998717886916812019431870064386611257451312141624246042414147319490946652190597023827433492746846300259972099734648032088732188007803156421648237076884522249607194255977147766040781300806306057857982637134973552575113513883361492499474819873851708417490618189399252089163043398534151690345065725391959658656033124720246796006077472049770083974477748422207614720531313858866781482071501018398788924165993954530059291185026000409048120357641332558087490185060247747639660246977855050766236729136433225133459977413896956683714271690280861856579517118061764214117944133725089687598428850374810721005346536103849659517891671468872181881334191200567983705185691276733016835175261596214386290580646630287847628393754369306906007274282642233253768920889077557263585105970874378258325672231367077558658605025632060885616435739745554194718069546007138787909579346563698958724405961925869097459415444821515152274714979254680589620673598012574943599727077265459377668412148592121759430244764053376807226433644918533595753197860816595091279110622416919183092970195833546101575395272790770967235034926326465059412356858801397931576097681749849764482047890050289140476278094570113478999265282099101968981783294456924368613131574843277927247345147455424289119035551056726004355436715793230492852922233189700342161418822155200227623497641915040487797412407495452046974957397795897744407337490170601002192615340757689907116653294095025784875678446486193224813592869594604655106442637833344448818570782640234166397654211825199055666359929172396838030419060202572547391862327791323834946799275845482133068181232065341096287398429685718812227860066883017295306174812722271903717198813051241114144236000142405434665814411375119200867410529821377333105439774518451765151733133318278188334744380128424289377057921781540006038747442922469035902266990897902586203327406832782491838460882136286580438348437747602331154531327526299652481753420419756197021947053876832121725537272152158420959580590530647688156740546204150346632248167629854138066434898218711299932656211144052481135288908096626755114296342404423691252825621568881971145455572084165137691569275108208696262725128179679185063016924792856512667335855051447623676504126073351532879567708131005749379067835307897474652172872578373682430608714672412061997099868282909954432441853682161162970948600144365303795769039767377224930435859014113988616203434888102217076803269026036113840831032284709526169763677198169185197918268116302100104870760971713419859655437918356314004054932782730840522650377464180949955204810200713572009545646662624925306791901163197680476157843521442279149307156662097438685534554117032985676907713462773894295448633829675470283749646765066463339368733284375139321322342210249688443750308965046927889894933286174403403157780335295997185396162048814705476496759283407898292676591150356992546726110653005710502876521780755323274818478385958555527009630522019594571695190622641159111247787500356047637665619982305875892795448386604654724689751252821163637051596920706598645612422711785181844958097538044938526361058885599093041447516958594367649303528805223793157388357071651895406501276505314975157401127132760512025160099737915636988389175352907077884222370387418227829503396823738503744684010097645913073603551914629836477759397961064117333539366523943208845555993470578055613529546800697727319439593473995208785648735263484850565580598783746418188401094266102320302001034038303672437460249095114933156471778363972638100622965728126802277563798953523394293000119844174356178427036307126766428348945881978668968277071432510342090515181687383909451164084900910174072152118428118513438778957249826070833996802746817218489501028474475664864877539426000005664756927676195114122609487026250849166120730412826561135319427950872851544521865086197670593086970186171999997087425978273161733883205666732234426935578208451740256382793578405404457265600054247712329236961408042583523682416740080365286510799998908638007482846649101898187592824647819248989464176938421530559879747852081837810225449216914977192480558478902875823234614999234654845050097455382480417523768123068103302204151592256070108583491563948764439575858380034070363962861847599823341040266509955064957081595837369011878423183829577635299210925522261886034289785127275939034592803033882083772105871627354460800666136652777777289258222929423186221140416374418394659261885539014804041022711881570272854938861017512719015252997888959615348293335916053497314857008215104122015540436274431154549194514921567754542050645875468011855376516809985833114006123402468952220102912387650492697700369262330677890819946500268072827206245008593186940524860893327434296462825880244462831473105096191760659019460857702690808992750921381347582232658417507192773012737433685803689815453122564635521438332316982909092704331613570606876767256535639843679088387415860094833691516656168663299455417201746391558299058396463210446937138235996645180462985375172208814432048983424241426891892887998294767105728644742177923772608950785624257582119712408277597975740531259850663536259907151774843671954871403614399135130079479303128041078405505886434084789439114756987021492725238565382338988232911727998427793465644681155786817688266485216196161174100427989695688883147927917441265578663085102834332567466846783238512427928125729046537303600244823072344329473962290692602187950096611675835352967045020538026187567504979393932689213364327701849462394195606128071097092638183546592369921246341321222984403529253536256059580551212512869677888067112758702186869425518703723880283421038080544215919148573603338789872025275478360329583420756889594107303213075056771810219343390466968657494761457649680917265113982325070138221953064272428765713934861416934026422869174909813130754298470582517332856132088832621853367213620756090567263879229555124266623440079801012743748145730455519014603943531219318249208375311643750275077368844425861830177723984183676147768380727550837347409652369923770837554004609362213567673300179666586027068730017463383948815565348655319695879776334976712390197917420360743882288299983152533809017952348933802026703309668256167779681858483368063349646417622962738253147883573618188976125135255756026110988866959142552881852175710518356068769259515599803282895061556751000478521450243089302886583335233456344393880003251032832715005259186639631605751776104762143007307972098727511138031856692207169063473758027612566373946519347970148065969493297132874363072656734855740438111358144564630651943040186111359838117131536024326720492294149474562536927496038106627212601716075008769980342202272252335866714278682867127753535831660003645072051666054105590925474226791609146477653843854943183377112868007711174548066052673913810615425247282781082485824258773098605007336422055208392696880959050641192227931437104913950807990185152288222429706866620804573814931320563673740342783311127312050151072587321477326481781254488087464355646202272749655498357005925684396427571129522337489756778179354751307991851970082479772197849126247329912072212466101966011392251395400463229972255233031483639120589841386844885919333104182834643049670971382941856183575198830475944294472939550676865757430208689363464639849994251307051450049627103629380006691023844991545266717651103029710636293607385035716500321383691573792057417233334424101487075666789596001690734812034118733651254106360156705347145175777678358464646641391323296337044613378624473374873403156467618355249928852972423789584273324501942436018377863767281620612160532585623873643399385621340043061214839475747492464446696482186670950923190099516703679333278127818210248587091599249586192703133141628451839826299080288382382754432572330501721041501556004355505620562344467709483341141145525655659560347523379693661281091061380430278846131235003152607875585871345391345909176664322791248958207906347619866199213801055734589118256125568993554319779424163555345457622360010782510010066173943947809189244758898385769147179513024383027806300189446563004154027770540514698745522387216516926668369806966003064080266617613313171327325005763989506384248568248751712675087617578385440412765455025810460410418923649216104023090479610671925669526907131568945911921337013954685003002769340132683149381248428968426614270029011187187778863215431315891734016793188945186473500271632294435926741234161237418789006110747930627502897253967090444356127578433156962192601644202694641345537388667895537246060436852640899918690162132611546397478058119069355696525029382817082818324444307728330137396839945952947687871915890694903957735659278830153150523639399284093565137600069353307626564654718020868941901854896630658180102212251025884002314568399935335269702790971654153545734111229639193572815256456959015757528618896532902885102476678792183723351338771495716441048226053300011552556133718393961181348925786737653375778237098768213778658146398170923231573362336313945532196281370000164417922364830018519738876103567340939152644263744342218174199691652470433086952807944031528078887178438969475524530618128455112617036098897222634981500567630431149053536808328810306251600896749820984957199889459853388440366974116024996161072467886688630582884114654701173069063738194987639372279736051609771945006512568933987307376312053363836278253112502256726899632742876778866835068313477814140701078316551289504478621278633332737136503216297002312838354746603189699753160401286936877874826337036085960768018310931895122043182686786538250316603430906783828749593118826885101612297388356920156500752048384793458432716841239996219702054158439670293652299968345317790175869393502325974180987659209855624947558035483506922699738321715425812458228723982964305948426375635514977522853963145383950751775109153974443392269173279502920722407844418958612408906626020596386123361696301995089175237570881155721140263154068652043170856251926236215407595126811614609969535271981689185947671073036276632048584761798482897983575919882274384920476767818970360620830851484658437147744229184262446720813895205771626294959020624880715015115387118188382858196917928876449630986382559569079830216376565706743770110869464280419587727904312692421070185366757550672066948219333681433469104888381133207432378310839539564718290151749075119909091741395500681414135824087572625702176616427965747496288052051563851513442013790951112811198776651068546829500621365024028840867333213246876210694107441083782114966018401828954412669798759637807098295007272311841637952666074920136752302432047227332813291546680577790858028555983587392877108046713254237474945932793603387735342944084906554251229109832752399636090964910345480176283203759538551613419987156725595934848697133740121190529858600025696068334655176985103318961931888778629046378303922938252847431511926360273486267288311521910474877072762821935242844821435152724858848507001546582646077290843239547583408294921877710340581772606810470849890900461766715063232442855043904053797614490058254575125891096473424462362530811349169962951260154765132846116438848215426425986713668622288726643538119288681034518051759183050052659814719492580534502031192613681480914015934231786631096821548431298895326518203227480027750085916339305655792994853218682878245508101067062749929129912575728334893716022015431689991610906660211342968722531474724071412602758304767657113720265074621997143985479025220079773491742714354609556143731740269294788692028452510097843152571152971696815274039432467721189303868144819096254283875270116465735077511292141844939427497425251605526773489547306567872106319236323477422312090506992703219351013359483208790849685348264390824417356618987273101419786117152818819449361999477183011811031519766893878430298300704385895780286923523396686444819734286435414879747265318168943787522552535411940396761540340511529928093270698533065868842578020629913943921578735082625514524568500807964499154162859836150257973632353229819898963024703502745367834369418293136934085989597167394960122586787483763350727461792960020657344493489866438307292167609570310963616211289897746957666595212800932697030943181008262384524631028784542225334099345147248619037101129687155082016274677654433535645548242655735528761584904509998130687774888944828296904009068948421448079532146695344696560799723556454143213552320740791074750292800992269295945707916351778334566700006250435222032653767361807525809757242056331941826403744475611142690279990228008648372511716718420836419303641355737204811666224229882097427244896873402336589542924766844898940875481722630775372827649909303149648334829683660566697896648208273999723771871258890953959351131063839479728656254021984413816350168242525595181547738637478157560401821332231876702614330913244628039661190132256949755573680388755077232408283441455543735892074800700381603765318876669791395890888451966568191347210017106454616058234967301397742230591311765172397237993464573289920936795934450784232467859919405802378951780758086826695936004607961750314802914162531658869037991688349887574557646569641780202394155533748063557407965014158708947118929305520392694468600919002719716583572692580909884992226384747869892421564060804122435395544672858407731295748903284506183362929111794876986965790888517522606338380414812624023659928580155659682728618538558959806515503671249562933505858251577441665256055309590445521391999236779984794547999924564792873927032741014221536891889253621851811962895232453371234446152828139517896223979071321329861562585140580834338931876213561202654646091534100127137885374951847122225334001058725894281775159789254717143257575614458483656230639834138205696252817303959304228545834510413726478127138059703015832860026015606685724961414853048013337804351304543872849703062931130199846274505953232906891588897824794265346764544283165594281944620693945620628366672629291292344861602613128894601191994278891766678230368419168337301756784007650274238314794727589184388548147732277952252366853203125965417775894310891434111611738991130315932656469146355587462930690793398122819562449923523053350673333980207242998356351673318338238654066047858221418080494759773989891344000322253447030087662821749337986636394214557720818698264096706025598622397134187344233815392864055132734927978075131055668329223212920689459262021203335037969574470844350742373768161917638328989784280206182212261108294462481067239078020771630388843467529446117263231509166636950596480898458675020346786803625642494508269186827548170158051982442387420146472791973330165045925308271923129281980272540244198525880889342092171785189747638199227771604294146640148857387033911033823132124839617353506669388179035751184664128198425520240952837752815157496956032690889731978140708805356502758946356729795515307813459640239094004880652214764609997338360149544590787521080877229879546401022333718235374664713849314204466866176437341014217473666714940844070105662576207823413014606604157480485913072304091082981479584985703606872642340532306697687239273762433520773098272309613752788777690157376306416985756474788667033128001326747836401495301591608373269949967683707500001941739330352804640264755669733245924032065118417619346052706382130090371286499878954672595768522097666566678765939892830022365248718736331814369778225853614565591732862688621006125900205965078961869159752053768409057845959730162693682132124559217731625789941136522594838798680710360306602638311668089038757748338959908898810045511924770113656127453515263218085524147736128248480428714900643152134894398599931380668715095622523487179975153418567234767185941204334799731316389094705227343483692323598015356428710347011981347648012240153379736532566599295469654302566920885701558426689857715108968905286656743039256765299984378916665965843191109023199257475053326436867016713131935281185092803602944399262592061842921519379088068234825676980914971215521037774123359654823241413869708097830018074873356724764033981864107124430077894039577699094736854737624603726443206303724622069189468676055148262897854175385991877331748915055382530367808465790488998287381412359198207915375490001985740083031689611638729007085501188500269794738186829539912543799232722402836776617052019429308628236444687490858299012124796681853240838741228202595861663763384035813975332144784334882953386050424411802541679861750092848885844850031276878724367860273452024636041942125517799457821931122241734247687220444659972195744959836382145637599088153099375829381302107748476006777088085278495506444173437552971149962054337297033443631387610940437109621478285334190248153887769407827011693775612648366502654140832603001784193834520894175710922968518225619818692460189215020045215520021703047791188119428082820882907112256280537278835018671893779183878579702240480614621624121100392075841464177321649072158882529230721350012112328968474086585718960327182116475827710474064177694401577841602766214480251929934576288874924705580356998758177870534912808567536498485446219207635983890031614842088569327505169192273022240379808239136546767236378028573461251781531599883269993659338936574939915931121408309025862357386915437387828994692315070741474523708231688559982085526567543317451087184395061792593326121896622363449596356375243978229606756387496909594048518892378177719463238148381206845601183818473154611283233372498273525595289674168219518309310072204784365798608065324776963702995864739412993932952919806545001431048854249165692439128143750400159002056076799131286956564353502636417655525522476341930806438680681636251626251610749298619389983792131908644098709163952765139471609662247952203808850427375265133681435477272100956704413159890611012822336809173580675962374521112167640243944749401452485455892358449253400067351991850435499648258090581614512744682200532264484642690099031314444526434444007582292789361986974702982307590917053594990567066955161099427627659655411644580569093897327737424819899091400649615140509082063657951328693431644050238584660530142131235304923846802732079479251499593275770508786102550366444778473545448889248944176593492946320362946744055265000573741845724678895668607325085027567388659511133929840555991534072993231331145629689685375753549990652808963658699990598740688317490378368055918636458078069115165885426738065364172854270381301461583836383272202382856606364080231765945065757865829485841001425370949870512268088704707589569094687553006115887891422324755233612321817966022701348266180672817479999068654440465399071174521905092648144271221029262309427315709279676411392687846482620534587127451294092010978831145109678101109477445761512075864947663889173096018093977718742625774120115882569072712441921919876808491812496141217990441373644575551137225212607277173602218578847816379003803039730302871805915421753838676469003967785542050262193347329763294004112485370587106894451037962221433991864041808560846718541307121264186159216300520761094029123418199693736013060748967877644200035522678381756547614448902209016408154898738887920930149654937108913303484992909515858791227430990238985288749079363685051350962791859904712899625156623909479191559633278527536675538305213549180262654564060189916926502125784024145931390621591319532034512312870312983296750620766370763505813608257957272974532316794202090421792875327315261034295944839272081962392104793478257490483015514732886311334486657149953386407849747957163645312918705349477869417543343878763496483880239431496792629387338592209340340618321939642939313617170895043239087942918793205510051167466942531128375750883840296142775796500974732647821819911957489797885116852680073547656767886235692002533869562864578740411934954468032523774065441474036256220086417974162398800443666312933067206913107240112187309843223769701429949022199634925901329664835043279158165511857985522144034299185770470316003672008946811494178376774056176551169016532603831765277101430837641796958987653319153292332362945744482354147857666301728374555582900067039173697768574516550269343933796840990744413302935960641201834369962471035922959160946961654607692927805042772481025215300456697135208654847456380002010050977851973078788168622716206000823006561915152181498347086095655947656764488260966201041193363205209043297660792643114523868943470912398409490977788257653721865400235824833748922894018326495847415005323187606463180429835483370692119019061646372835996743528861840551653692936714872879363511368605492740913843863330977585968791605745846331207655519718868434975520116700977189551367468073185040548511955432108847558255738404058265294869565651601435593585443527898714877099578447163953145430417861345850647332915418714281442029856256652149552025533770948519994867718311017666440205568517767593149750756890794709147730676032513260904007214726404245391437649450940241807984363868272776104156822123913437096971710849093681600893755708882843399466031173215297234353007069984477693472522952920108822478952313557460413502728378794775318241662775583543849528015131087365576573743505504645599010051698480758230570943433921935605850604612197361279210827244989525161226370507063315560829970917987509927446510965125992815997345294379776698246140941006879423992656505682105331526825082668412802684146891821163412691849753033869304606834161511667107152913263565463201968725287143832439949530750876516613759552650467214647700506025477113712940908516097899681239285634978193638340270208129578072031169880528361937275723442700169024716056408320830835310039618584608054406403954654419034851476164708861409594223354156830780038802538526331004952578848208905257399887721299400586153557539379895111851997763409308997986627300024226489003313324633034899102156830966463575759036955495408566628914879183102509166363375237825652725899017784831761462626863438026653886216580925530424201425381955406098353754253395243787931820589766094542431254062130517166260512829520766627958703698138936473172231741549619965909104370889206908125940863304140695860105708088626533611360157911082677027237131170104499839688970323266300888005116678039545898592849827574735189716777542423009338161400962596878931863481828511900486542046565051209980107850982017661268214357948510527803303774285846293722678010594918470627673041268638789429862984887682708086250655331994336194963052360172609536055203041438397003830278029018526455115242534588383799824275833066746502893419809188512379297051690314348258946678724323012434271823494414003818435755172738813263752271058754799070231615052350207777825901193801859401366146860629354864682949177300253855333525834518877018419551674049594321540401877909340064461902296911229794503078873377298481396754854954278571229346529691972337295349517860848983592312343332007850277765677625980125736199026804339857395386226178408218297889126647678038382709124949347708501777315653292353941654787865705403974027633095399868792314990010847182039713935422870342728154573176136528270769904224066718476770022760315218092906510892422076219198504028420302399572259813831679090062841439562466589809184237437454392847911260962975359495487576087078737246762325690466211338286650854416321583875383474732720553322595081095638409485182869517065204858000328292979362743938301638389046636027451894667726390439754879816053883472787250695069666765295363119525184502775618413792712315651985906274083713820354980803099597957956742569166603412121395695725284905148329191520461261712827769132918873753911348052807668258564408256589309259647716513971086633482126110032938402051298571449420525019784601875101443496671485975254011002832307373871274424750863295893242521763631098933602373530571656498046895429595344000444999823587243302593916208451423265282030372905322851000930570422889148669340528079685455338769728551200829460531858766872526991738421666296404554187515029284368487591973175791809933106389615609085957064574460080196602707481924288962342480553578474107208959201814039287627219644510611333876674132241224225585429856380575255001942310897166901547120546367085514178794925409936422860679141446371688404168015993939699076400122933234225972135016494381381839322708964734894424600404259719080628135254615518914792827512698482065014914218082391288560123292557664334496308841970540924606993687142249646937812575400527910392259757942883548407341253275632785363916197523787922432195662729230511551599376120935440062179422223839405061454398225351437978966830180505089711667155952125496489918159645793522814454418403268783750351350625396273660636305140871821148541652249458362937610993238537217025344533787223605401974796148489901157084416458314830031439060564548014499297763953593990456231252633712031530992563220918618413514074915628158955261452868043560438396201195320748684381846061592922799800107682786991912906763203604805693131326889596614877554578029503770815018727812268555510011655453630483168512115051112911243750355772130148135650825272734939006870008051830229995983661162914592682184739962599475657658030722627654118253936890827014807534067146611478567596090444276067638954455760961225246582714054764080492172829862879654853013664740648795657914518826701767837924237880277909470171609669957878386150336004971055286667719440077466778299802930416726422024180688398055363141049666834083120811421080545489614768386271960964070460155533323182325149928172108735994196017339028365425707919258991063050756404338934072866685500551533553191643703149917442230380465756274926657163286112328442030390385082897641527094268009412914333170018839562809354905731063537898022727334255756487036719249564768648940947646691953681450616290166035067452486215813634945183625854466251269592206793381176083709066975769581142935118055360209739902168872476431957258788359540420402932128579570954661938064921946522028355878173844661579906740299596251098714616630124888921279395048948223988660555142974887884143761189886616147687579024052119362792417629864891522157485675526563438620241746627408110097604012173667867164799621666574813085177167306451732017005826300157669039365874012163921694489026548148698999320182304371009699640741478477673675856472696600388255192015175365430519203999916969775707816406929659559772945559339724627651373856870264880835520038043028125957539857728427196682947147367312984218982418467112332181309017153334679197059570593912288765129696085778759557014862520479933798440695124037551602104395699202960529839681816710217415334045021390405413336735506530132195884152241820665831504150167486217212223447277808696381334173724131979118572796331951121394004781331026369351841607359145407261505837837361493810893641465374381643478499082704928220469317860219361113554227570175668015663909869144587712828139488097113898123367301815233452806882734689544250189765819063723491805148946236755840583005061830626918377679528969858383188314745364259061394103532739446620947963352850274422755628442738581004099387848415180212331141665263272793591531133425308292734909196551275154307296391226939566422877908780002320827889718147775708978737255373652886241257551267215909910659887690413434664184976871116194597333696220319410402829989556096108785994973134380758071847947399382593383822591836260702889302385165305340336366552158599539323575792963335190056404871163645366423501263144191127382333927806225241957674834847778305749999538814639700793021477280002518728151653105124375683817419350361120770326610991754699006922374026345605454941488548261659740366144171298972723276312259802433620107105002711999184229113098104453478493949517925470945842399727366942374114897128962577051337966350885971450893056986329009886717241262631434662777136170499868467794085113209141709465181644827156696532186170044262283096547162981803692625840930901323290505058622684640552670546975012892016799276786899038330652195227744323132753197782950047950804561327042483551925211314421421200391517970089642769269036111519569267773745164939687077349649262142193653289975969398732028306988051752116295801794072714159410381767715396016936115791516167780754366652128302301070152946091776281945170294556625232437234227912639733928048544210863415808071197893380071985182357897044474972724595965415025040477423119011908171619529902693984551228693143813252580993271764150278471599883737344724062489189762713095035143996469435353929062244856478260554047440911670215888163497280083498498669993639236277122470047310751442240572524663152352517485085622019626015065407259825937848023924557477345093128379415461510945234442302060205068989352775983265178456352539070160885594736065110180897460351338601848259272902807376776593410024001757359728319029355568586250159952091107520712835510801327889974923828021265272748329682317276899065303825205781783920218139613899380854506196958822198715542160218819008158189163931458070363090067364657360447962340583696357419526394451111893485680032118086606359805251460307481720816896163486646036901426172312496572841973279641310159639464644866073907882678143921309054672108699968219632493005894881482759618657443701620372587492553665725810162542268227820498088995566394680540528089185221635591230459826468406137188819965359170273598481494773604165286773155425491509231059974672155420807283941580322088809347978322412304523337291190993288839511007470263877713423522428051631264709224444526638971422282365484829965798736316509824987168770294246121244016723987326101522231681902458218487542658451631214525296206358609459468109436917204690616276450903123743525420870299273024801087097807769412555301305205874754152224834624475642134119750404212653592071616887802157788989364536327700786087540742265817746629799259357849045767522020580600367252785463722672488154873503300243505964152200998472461463101806609046822442081423385695066423703659339523712448925070104327297163729382803650371518539130151728124647667077452012259038985099596007516576016798564802462439392659617984810061539770484968795126091463646271225009370107585676681993888472590831101584034035794057940735797280104894189762310999627703126669216608008313410143137572352037869700499505387340369036766550570322466623643844060083299031223021755384925886059859258237697645340609786336426033821494103989672703873897336670069505163972673171666435754675909316196863705557071397231432138074637175896919170167544613702990477403072994180657801047933221316082177061408643110617046192612652310907558320583348062612092267317487744015743650428877345292028386004170760053586904939746241727584793321353177627682444973618563214344781137727484430092721806063386063513979436269052996926941144967932204722244844738643571957891869479239723650763746762437677573119051973301175425376731591221427525582946403468502860870606317478495778139087769480224217813880139512606343556578238444260808978377571839087263133698382218891060510601526057246540612054569580350392695008257264114472645255433897157813434269945527509240786416422742553061531360855053859389751130481415418715688311110681108055569580909768897866744684050616372954079574910740424142360134377905480112614815495541938129953406437519536684334693159641343057361889559517389408446218649733713155233805100063720076163364925311868380909668123852551064530082507466573741171680468397443085365920280795439789414870746049809311203258239921261135088560586135864675136100438742231669411267169585085982640893832527012856754164435894808489977656309508295374953652213574119957726298962303167810533963353774674873273172696967008936258605470873430450863433854630569216760696873588582256859665360098742388879310186034017369449308819732403764565410328830915474399373114853187029194446346824532236887816225959314398887527033387468001286443849230283250740412920814291406117006264076931089408710559184994649965594570452737021749702360435759368934842371652552363224732268917102861045981576955166953294975813204441074283548805921973828250257269809560255354432981439699085190441117895614113286527298889837673123294934519287160537453000992467301937996063419472218777843800888978251007979829962187205020237368535588443516553490064056049906439702053742757206648156268057644861844644567648499710101667617900381842103838508836300682880136943689115146868254944564570100794233277121228913795622581373433176214601883645404917782481857057312126833208666135986610813685588946422828696711941384705686438175202440448020444715832283583050268197344158924878385383087854703239270519897337660376003904409236799246473256876658528670888291835629388219441090349200885088475319608183315085128823474846805513190003039788658317328580048591803384977284448112651532147027113042284310744691378681823182796689409596550113273552741925617644227731033296060301470057917491527522735798623676165706352354390615886475098356552146166190081875304438653272727899199617620674721569722559345372932176346608757297615269101428662469735901741960314592195410015107948961441931529973506170020915470948604723225482443456154954511730867923492193931699906114184825401673857521042439115560169525530878214073124647662840189950888934517813974929100653827930151618139868233096813277875750790959211750914636833791520507465627751863802460046661134084234116051358646045160071621355579038050807322354113050426532450201654853055933850057959647783280820879696321614905097277824232830692539999172998643443815795030339384562907203785736221597267827699497262410393646829935600679638889607770496781924533665601326735177803623926310588693086312603044334184304663024799453566602195003746656248542039561740390043703412845209206507512031959897393828288605734306765451185482591672091273075921497113537139877778658562463552875535935622685171328094344844806348223110104281978484696584123680035323681435376829459307113356794965108228281598866672589114770317170946220122183937496257768442710493868254404157264935595905407061227681272974575485512035660324609144349573580585186977103445771419978906333779430900094478061650721676380669743759450026201372484966989571937536757724252250811035444523067324693692499180811216004550147857703679840083990846172772979477385053936947379806877315265994858767584627454906180321107134606901565680313215409040868209774279869061926204224261239929908517415268219255058597098046261336191245816968612972450122818871191869132019020187375620700653674441155465475984975711381124506799256777138154629351998288470404455377638994630068381770035412734366857362136757474843678098022586204620562694028278425003280054270261777556602812371892479258120910491102331170521720437957115205553047762233208202000759707490876059009693724009720994255045711212668559520528607254509689357553519675879018743815459019414289499722573513978264254101937663869825599669990364525779962677528528303654374092238415769164650487245501457556110996007463850810338515746053319263412650118831560692665879349301091996207331487064123509926187121855127072750283052674567953928577733409028938483217345528962033407364271077599212034624762518759064781420675875987345511050896130902372182012885129927566169832403400727163868832706714487952536057905061492203463877951583905378733105265999851166656297676081337203707391892482854893594071354595716667291569619393465720128010269449084053915377049708688675819714949067400480534768734917864290007876612934297220198039479345111829466898510373887290529655163146668997931257818644297290676150785477097787092043580013946392568038800979855346713095772292149112505141138746312201105780772195490331406218764037174140655390211985960094408772404407390697757460746716722558109446743568713247961024190908265843728969112566025461269807942455306084126262702964840179506611761775711219110410169749211874311789902732301328466008680858582570436887754657191570793175756940334786135829130959362909228725620224552251908023177683702514530539813974937629386115429098052911300030326156840564415514988038877375532741137778937161596123922881602335899832553182389517277265395162144539072529823076830157866255677267788149488543734805959133149803753521799003656505631352169261747823650392234570265856702202824611304479549059005277108264325865271147918715780000175367614909202327134420715530998591174106638183871958741985523902621674236520063306220638796023554333699414214192094495478196122035855198522571695419203449881151589146249841872778512061984529507220738021792126364412891363568311548353580252795605990103022883640448855198809062350468837780907129213015492240594900837647534096215225828558755482739918218445304557495298721144843545406529554065011738775737958594936724054466849472551312256939867551529933735660082052471114774770007685419153026509980283550490389512995550537628364323748724684666534203495407081178013797243914526287447065003088162116982292487847773062223011466007170504935796513259589894367149760342577697832716652997341189850173446520442448355578614852871003106072468678277796677032521841251922994375535149960496921685632775022577679411684734586593168039647487242186646468840011335175955916647730180450219390751380002532202750809229947439210683975271610656621883737111468951630595934506625681694192479216679772412948549611427093506784387621773655040239209669608335227864245515578269927297943231813757946149652180886468325408795506288202040891488876718452278442609685649201269030766586737657529597875872357635270710342755287418291385998905764155697677994387834454699832612153256280076642274684163535565325700737687487558434653237837970850084760406031929000030757605078685222892805203687557068271780254728773943954886186986765503259718468356555006414736578567669813596386961955905027859323894562837787924297391473682534604777766325369345161363876604243325282364149454012604298169647011655746022904984308940628573488538143994949953046841971109810440393555805931727476271333450674233563372756218157244248650366449195356292938850564702484052444837012273610651729659712353789442489294205815070567403207852475821989233962540766473324857113432760078323102126387196856898378482379937545504365776124325292204463814400515642190032936507993200281208247101351519842070579639569411302940885510924766151668434897170703298393316647302933783508535572736045922492286496807374008142640245006640893431677437567950455418337219089365079745881910631990072603393728678247736913925157523430858159001312648490903486083021693602821614966573547622860620558463603531242612231920489598129654597915623022946692940701596535357436642900053213523703843473222094926067024986348752378717174453442912300870352948095135607638252052573203685540754870567686076014419660714628160068984034927399999039128330657467969409093591610665621300828281794668020676615446746052361860143483303294284852379722404849433963106311405580573288377288166553728842777982862593088190756342155344046532037292020976167925045159302289510178666522886299552649761266832481646060211322880739714521323740603293697622079538697972049931152781395307837582510758572495199156269784157648680420820260516593172551500033024164143136581453281583295705285926197532434976296150343128883962098288136945117306722235103461196335726288067163430035669359400233221738847898829208538855860691787831656160409472454629568521066227960994351750994216874789481271206605276769092375317309992668167794935223938654152537088022984413533704759140622289121857828200260048227900184173840400102685676432755964372228470955433801214196128374505646923128904348851550395959836958206522230639236417509035986681001863948221528814142095322445556028687451453093095852299174368609778079211503025486553367773740335082159804881054048985166878361969960217554456332422921141915394869357114719792216193475580462609071972861067622581755742852645918721854262511296790613907565060805537826536379934207265580092927402639281992004283596876362435579899521837235892426959749133914447096758901846573935123085997596974796793629794055294798262731578211742485687799434008846224801776981671829169988165704336887319241983790560712473876454624301964757980589053956528626397515143636220891548623321292585806140474496258997200917737345494510139298663809293210322343945204231721566959994398404171470206718522095892157318166602161990610816220205177051598462268070329880184781117021874165417180655470147785469576726144716298488183135538076983390385978796944209865037129467789066074367342639359034420321145892015036155152576588485080538922581884496460396731679920731216399958576339756791222017046002626176096417205794766570579686135790445555836743048175551775808250275684125146226859880475046026782012310011222731472875333449891315777268512504444045870199576793386668096758590404584642475884266997758461847367402853789558548228685421048535185315067646295433972963275048477476913542098008984179513899414070184232401682561356962771895464606850169723962845741312017387065094671789525995651370523920375454935341724324931056331929523499505936366922869371135952208231527304252987326432091461781142655118391215512479997355906510015242698960518230981007977931963580693976565131340200838416765128287325008873569851852294123921380575018819277444277029727115459101322745399685547652845604713124101151356048620058897700597685775378097137003874233291265374287276402891665816383219959892764457035297556080362355044512300132555002821183655685498195040827407343602620713067460885405121758241672896610416061491796035698479453115994541117849149098068717144079681794989370336470873243200524033922689730779686171277879977765754970249449112223164164239565317647535725632436947389814473996560771911714490716837484328827235772212557210947771890369263457721856939776601763095240452524764963172101770858303267496073342769607922855141866812314509597582888232747107360254438381824319921671153261842784580549420349353046598865863428311674481781266680184363977614124604343557266036332967506511193555470109169446649928322462898757077905230400715301874548056358154294921498789688071177899215179042064973964622666033336667906021815852243214878318421127715929638687341099765032428693768046015765153773915753695327452350587641388801187044991316289259412660426517071977155696957888122993592239799176750435865836372793445118482960867902694691739229402877380126987443405973721324398447584936202762328599000249812971511666437455799918220263523110453287658988722633791046706924295799368699598612553292850642256270339916271483279577547300585656004642679805731318546907319533481308425332981372232928612242436386023919344953627069841658758838849264936797124693396024762544891025408774574655503266730764384555948578751685692572817806517476457369523779287793604571753404320897085916753431667906717029469992705487583249100005705489789993357669552224647453392649640512003710180796529468730480013551868534377104608824245573929521851627605669476768611277221695818867060072132744573208185391201627874900132922922254920165243675087799079563353849395046037080972005045117295129091035568650051633673746193834401691945741724613328307120483286245261296480455663944622361463433667662828893635035380338516231379061271595078067130825891801494379907015507006237709917607070134512523538540510116285508697453653321016937499611882869443971864588919087620545558351419243963200914988390949952427175624021726539771250334471566323488062750039814161892755883988848001341153594377838698728133571806219344372709484359254157011095433752612411263919647601734008338052199375733706263309404372074995210657851398490045964749161090001845704612188827321425200848747754934020958374424398216341006209155738567776241124409214764052788736058834718966279083724062746237552488617373474343339213713609714915521501764643743933299269529139456458618128341726441963807364455034354060903240102094416952659806603959770519479558518412581287780805124958568200485448883121482008927583356122684601333718461814717917907285091430503000558178886078734034332118293624651036465934263060313881498528296076485214418563934783434865780430217297857891177055534871064925342322195015111677608016226573427298114999489510545024771019818541619318961357999087401959159830760651839475906212616745440487090108376696149297105034169301240369965612831138659431305782675970744757688564792664897545048450071443115236459165427773859858396098756219849402208208685983934209257354361886515187128548047110917384495637385604311831446959735285847995212067347680163400081893254756213857719718762883045596794634161351960562550847947692528446444637583780692290432716991705896012660459793025846650946978556020905183175140004644966181632944410435648858580309099734071452434960220194091891653065597782474057297921676635525986362762027868380221072522486613143597335703561505116279331680332273858931670687373883532670033322238045641197233897463471162371407537608070973965885280821374076298241057898365021166173940366983193483623737368886166072848429851545566247656217451101465741878813298383624151196263292878392941211532077755900878588581401347814339866646670593604024344041665064803289752516729599841508421031935039681149316641664448429396636546040548700585026915022435403830976498859558620343835265479810712946398519915117694815307999616878903281517209505224581610570775588793803413094847132221114759124766287790699241116001027193340473891967911971640074882915209074206377356788337066825640104767901508178781083055394071423000752472345195115220182558999979465714575737477753867824200375289141638899438561580119881123315369700810832705767653536075027937092287645659909038187729594163121663303314940895475958688879868991005175897966878564831576154366264010284638366664717298933666392680446255125017953057136287862398916104638678797518658158593413021006842848650166036707025316927219096662783011323714506673137106750218623217495146035328400281361041304607885016837996171518009287817419231829846303709096495968729248454552784525676343064719677737103266543050613328665172127636839949116541140073998633227889154054581101546230041119223409733103085671217006344145842969833107511432879944525808328490295994954063228810703133639000373705167321106721028009065236758309149685321263660424170681842562710231822298013235177594689010008196173244708516509443581063472324176483971134402205807727264224182984612899891770595995923580961472304166748846452768393445616172406843232052667017224282374166837949131045296900301943322522388471924199235324500462911156516201559040403893734051070114703110123341216122082305040086065408386402730549902813869066322968387676042018224870493751616870597661292500249001992235616826253475914501122958290772016175810538899696546368216272609482630677488954464174037347735682314553005793646269909681988393461360027527340867845068368534659101358611370265276042152423875814348627619684417944758311879508443001655664432757871535575960834813786353682320067930704882225291040072645983094538009189080223807453105901900651598719723230494551083662497938566945862111021675523038720935883743938832588763620837380773857627089186993213191007004995639105145486340404240986891052443540740346285575032635961257972244037582618934656516820841199527590019749357068620012999912790188896925220344403058339612321271747205977804968971131553484644630136056372352959062785735824087438749521323028548739004403622038326585957147778754248627117733333253676287006486761542707426407181574862476590985889609374189239274234119917541394788555828556130056694903876191986747705611667434254361635623545142569626985205939982287866192866186213819397593527202193588934651653327344593180468868903401177708341178574859285941561772315984475814649306740075341960782720610966708067248363670515901431023183495548681435462226332152075100931106975464181679730510734289878586941988470935163793689532180311101274321122405734328774252351606034358610156934968752461397760298855785373561365588457597025252436506564538462631083856083362909597599592115014400013194124594754509394710646007292476668991665052953548479119767746328016887966097296917965931901454121780650655693627314210136743161940968235960159126631271974405058036236470542559216408878633245174575671353604041874287327025536881101877781992838077008855649454432681021583790335874985506540187084904385313485391427679447102557984330935258158689785491316721396877105047612233964339575262205800773712975456185150382412487511564831307175288083628783898763467934797037666657151473915704057369130133688517083719932954652569939292387533485370813238472229770386539812784710446059022632298303262182257554561943807179473278321909635836973069915993045212733494516549985131111608000609274970396355326447422387969392645969817412807490790633531836826502614088266635777770186393107597286525034861109115863983353358628987214253183817791543499966636128481084552677805696689324684264853434150059855696364542530927086901339450064407312782132550986037431167402225914513729371535501146570848390233354434785332495899016064950451103696617703683216172825030401249340614243890571335434117809917288085070147586358004558139651297680086480780082048603063460211766976306248341076282876735140737260398464626067937026370079588741662610719701033420315654304819638985061826084823782885090851637924146356243153253100871579461886963050759686169973782660642098799382816561205895876231114051232141004291649741929711428391806204519844903526606993338256970338320788206098647302213421318343910756442911744037642271817943268891945710845630282449705979823583479101752432046754418337764057961930709277305243375841761354542569837687369920122520410329204399514603356179332371036452837286530508558196705592727140090754700142308343768623529375897075268322981756781718265796600714057573175919924679008242004839746663171657853001299446792294853363537215520611345793604400010703894421292839541577542425315440680592253820529284517598723375591537334851703721477560240979649648676856111671425968261474193431680835737313986374770580313095270564630277932222805796782108000013941781836599690722923758549513834938946536067435231482968222321107268874422514648179044409597986808188643517600026105939718016380503969212530120770061863511447999328504459398495501645802921839389031966856697816120406609001222542525788992147399072925134497206900526119136675626980458869441531943717307046420585754627925512780662464467333714061212911860927372416546355677354763104040782324947806102867547377565786861344253032369281767922075200999079253777334002543344813315024484392761377797575079536548232742925030205038697819477270814892405948100099755899628308535232614837930644917751885387673012589869356343155555669850535176424054494220651846341524812596278884223732380358459603628075812563132644838590346868251848666437249171555806182990934160162210199421936427698604459375935649403412700139023651297477736322243573793418955064845220785654416977441741594697842668172835092742358739535701546020773433685444317376764899229383664022473096062192049643273118468213514231115128202363137149486530526249915425666426163921719971409103444483437134321271912157014116508605705298668355912487016443820921173642152140762608605187516728032368625072543833134630807926961134946264065442290627672932567662180838488050602012379215978795021091476131895857314203541055040716563148267403060361802230115598443251303932361618170687167278115032812235422776243872256419213927471411674586650000684767566718049882452080958570459178187811825204926634661039073235579376843207720213501092727783320496751045845268287676498390616644542893221004213520324083536023762565725354134620012632928929779470444855160298792505626257470685386313795661352841586428618456839862661298582817416399157116375148586637308734386509795181413453919285321321879485133641470091754001610892954035585200391301055020719665891754127557871722709257286827937951475493112498253545294818272722751739028307509573838263357167628042811311575854906679260411236535652775987499782211992489480877811443593202277943258755131513124690580708389540208942526070379766941425099788344346157934379193868762349065043139747266195204010778816477118252342219114605884081534827427825836094518894316410360644976511326840865958271002931388082270597262200185079208672775184228814749669272343822311787032164995616516714279149093305935405859618832039233904023275338013722673413983456081131482610024026944082045403771927171360059902187159782115395589298565448904749283222076700096679919325755923017721257544171406305354359559409304664092733653693096384883742779570292717759602449424747652801874864814674179053980455934046350598471548573708037039546925442653671311042298513203662455057087345042616851578399470414995973266649370201134496928448293117004551385301161943660740660489341640013767093447956154552264439658473616122686233445474627569817492140186037162385488211374623036342560909880902335441010742404963106453965760373932367375597261676186572663465363802742511212509079387729351797747528726253213109436405969921363434559347337544793451722263487129203761298682302767751086278685469000720107710607861288424804219645184886215290905043410007241431606860752708389305911379233057280249303148437361059206491195842600761409729819436838383535814064272185813665302640900631304087211474417820996351209382389407528772272330826503177293865129629877345243952254014081729084157375034621005007387618380858659152218386852519037250444267408409074053096174378470533414428655474562929678949563145987743500873785480849659393137010726413748767211763781389025933825471526029424127295795405188705738451044453011746470965569920656840902745823651641199172454114958350809466057586744541967548370843941341014446199990375862354576825748843133395829710698242344632663036035431392880887106383018335561007206981021089578610772548843926409964055263568368048009718626239217075330037800358197428034683546843729240776941741566358788892980512255649580643444038776748985994021003447980634602857656229581620236311363022761188076432284990009428131493459469300793583555044214670127137776425852851322824976644849837701144156390803936007628521658280694569859940803562612230034234094297861496447160198772541772824572538592161419329423049879797981153056773228176327931619805436388401845224365446767286006039011064485449859505810337820467232074749445539400102858611696603346175855078718702021584303138694276108293631694599496327643653855954755913035703412359759780530288571051171910896684711561205649795624344201073821860121568462042807252359274465884428521577229822185048261599336819082025803272178439807241625560784433015628180906995090085939853579804963542554776788168301324979438973790006756360255398339931552884203137345246999107513317742159461939463185119110793883075573896059810222959047548924616875078195870427871392954266838529521371793273338665477960741309917132153350219848790411629738322682582744297534190123930439758166899227467270924007462923210030145043802056576124050779682551812016026450633228980796461464938339265939970694005561191630071215882142216093592096826936505577245473279332716320526864771423934080611767763456628505889092966517651256154540133133992947148322526988089169599886904441172728951825712600037584315151863329794741428290503700762911134380414442623347863153379639270562143925788835225560240646906253998649812146525216927043140620032448951273364716048002012330247769273898776512861359673788024146708788118091939542184628870270777464547331210123947390511240186902616607309418178990751408499691153549076348450907371364497190440657563203936900166839728116009343874031008188009787860558631073432529657313908965517071596611431266732880197185084517991392286154166795289622499408274773241701609934776490750458508580189336161674994698766289514155598703643940428659005493927982664028535175136345554237337128634368587176862629609253487014175723619931397622037372137761847716873674130191973670809479479592027949362046354299176511050763031237433935102938398092157270670286550954502312885261859461750137916128126396135271556492863198632636598954901220696561495671779931681789736122646746302679105432658905879808502633662489420101541145183152450626841716314271290899954948438942971225654545839745779573153802403612894421002140878493170994549466432554990798907763840389380803053957029044022386509029062475700197463290372515153802148125220584033808221387165181898772154502258896563891493850265429534848986296026183087035201599065812680463867174871220596116277860706951913645583720353140945471439448710521182191619032558433997393257611496329927531789626127847630637115818372264538736561351199559280806505980427171447618801766691226473286345633968409939580149065976592634182933318579712914443903929354274805360096028472932102173331116907393225900674728126044706841722614651609255486043562105761949108948808083496720580723731562033892207235947187203063649397133720306217879875748300302848269323420948931737929155302389551580101856823456915308626397801747639396018002004740708968651277602063921832676634040722883674451389633356215187923817504509879778621658470091312746601423291201798427274752518210783028236195417483695543644044471265828882032881048460213771282512560142877985483012021954684759729400859799614046419753087246723640696338596976364340561075474563071642593034182971433254132155531501820119144018415906362347710434094367579298133833259216420816932918121047385454485805100222915903437046180768065313625982698056829939361459048629753597097603672141257299774474287211656329801953483967056721882671410375834440650316991465717069759211234573787802838565115568176497289809152124815351200123908449372238243517574167767821129632508337297756362012844461621297513422277323884062345871703805700630689596333849492236579682061252118839321318596703105553682596505967321255996947957766981831785196159095415751104549940156424929777333013082991624772878010912960836065278316491324228524852598743424031488290217082285829412243959961748359822907748975545964020687511877709439190075105262405295841598810911014257748185235454420301699024885556865672725699440456740047972412223805531797044809011398080034365166125416922774590480326870835769902121682359525704485799094940891011658170931866769672339128453523322390332062182383443705502633588171815143874384931713755324100257886722305878766345104004309774943286407305403065965072117002626028257611254138311631866140543667589753877342496949320132846395123575244989051725691236771151949923296961555267825822932787402656338493850291417953400163166628150463338059958227496907624551477653696003199248076756419363173090789128380918524236808307851410719595541057454078503972999766545521518899844681834560213450851325399750626016195005994643132470934884470518743658468230672809141049539025055188700784644992184020546628398992689175862879008181963876977329339837109463071383885827178991105912959472435510727232591686359505824448372456245483463744593069907511944415431512616105864296617881442794947534153887071397774463736339283828376538371599174996372915341982676249171398949278435345984915697696623908348869436324728656716372449394727399361015404699506919680401928051025049324651210229368714943871711095801169187822324773248299946434508926966319717289910437572109859681041869551800026384338751792138066222698010237588402308808798181243511200469742990139524312170305454836247064969640577687156566690359027734687309837026711177060774917065800891166542207229008280612398710127320410453709488932514062571638821012777182626721520834979696293554348798167601822800713880568665507587190555095428674106851716901816948114675828370716121666580211140279709420866524445701607035586588414119654790365249361464816280556385868642612334254195702996689380948370340438839475606852907392082316502141393601391140232779413043895214311952246438401906032116206382360130386547666038216403888669282924700388207090285670718023634402699333408502858190218289358288403099134942165861495737079144378934838240566251037260609172847083835663140130869175278680105272168965865949592806814876629765569750320680470316610329420212295781553677946983026557013341772293769882634138494809543570123419385022677899228970084180513912749799966961843833994914330821943353626653261942112382354877847899715206235672551341706598352644478195081239952694279309178936849651870508556024058696917405884445062806142798482192266626888007934788291153712298728824534098412470885930725711334533368279249942379222743910574473848219816190972041628953996478528761697297142415695542192425098606475659196342422429364178884174935101522106169892990292448318453120746690365886557218853632122077123089571462368902474964974746808380297354868726189741377838425119761314191753042898220537853957397640680985630248769437813368298440593277712487477088751068415285626738259634152187511244860660150792279299676089040783554826376105193983568340269675659279111800918598790239209886101835815117300625785935450536582970548780909064872467929620012212928176387319259549468313285288644418357884114977546540704113374421734802720517504507122484755998868781377158949072498654610667213651130460569838900942227896093597413018593788096762096061041997701421866011988925114046712959265259904012211062145863782988754719119348394509971153305822093536763161666624283509999271560702778420104999532963402297086743333249052282794567773777721328172313420507453847643930421372724003699800819753449023439169667777976887371360872772921033976446585795759901772009831954438389291561193981091537554010603688459859726051270761388629806119614526640892970826285319965617657196668743108651265803022024489790556629455585220050473724099403762823764994534204827761173579160975918333032094429288406712937523035567876935796472417282757403995390402536425370989124397155963920055009583597324465682232790671723222069674915479709670833058148496269834200941953217227807487387941684841059333351917471440186706115433038225417722815627035308309575623696305732598351298108881953416445341933029761349118535323902911798502117628824358772508617040222475101467059322534146360172777334392951888585429066355491941498003890480629507081206527295876669752395278099110466828429727316513004402155290980449572864458755533543628742354330151754646468456960036720566153305748203449218585130127329903955005464987577354222928729783206876798994126664203936138377877738627498219241485639944129449917896257732397203749829855993364069569528586588310369869264556737288487195236263436054635251514377486954500759856848335043179684604034092780219161742878650486073175917858520511969866779793989724388863025779586138500058729498212038892978188294075373796653739084814818459654622791747753165307513342436055228460872180579945213842261100580352311486231217403128260832954589025995374655962724505629928872368574014680300583981011467787599989481638575042935832771541850299023664066643377576553474880893027863105509530256417886898322524238146007533202534658714088410707241861091520676590966762167735963837821387089455628787992307864396928751468787342925533671137609011385080759202125261569778154746837895180759410817843934365544414585680356098023612521251752718077173053590799075473128925511617522228808028407690107849775025422209798967289561468676407305632521709857028578036065243232860097337844362452443378258208739104286038058080341509401204975813682809893718829461063995623630892278343073042873467678400156349983960426647894201293212725618096227907643561961411684950345860213097636665461697137582316575402174646117191831284136090885068132436675859901942168844552197138457261077258232982755111903147284536203770475908247193597680932965279508595623538943214678929832269875919723125114774485104086066411413430799337339037810519024691780629151458557898902054354371240741778318200956031308227322499303992119826845530640267146447682522571438169778552544286519842649486908638183154360189865259858482805377223384953841124216227420848121855760444931537059130074095867924670233573034246854356979460684582624662429234496336379769552190635712387375248264908002201696745800634817931495046154591895497850310046841734640312903416406903643579834065021037060529421857021206880665045316877795743744548081068727393319410610531559169443807727899713102432290031164020609300391063674640609100870458681929697107187140523897499709357971911105013530586809520244018472595734997075085813550015975427733182385854552554943103349507274631513009229682934932062401025834309382306851410426347918200179979149492607612766251428562982451588326804846072905537823347848074092075239429406514906020592104046191165505523753572801653395557038553889032386744786363330594284218944759148925965068207868334288166421697959905437008760331759234081488325307078846313139691061507233208333502154078779720102382635029950043870998875765003782617933975736752643833715461037667166039400719829563584968801763875742779930066703500773237529489008540309923781525686793341093508532865038998241299524079252933948727330806719555858567977877805491229487998382656873557213519549645189153653748192665801974456494580823380152220505525198471150582986374873664552302780398847805650475754039089129521907500928980165927884874292746050894624725814758358256087830500101684826617341067145983034768495341271359539688024796013693352327464055722138281462182964741180447938126104859064251078192749813828237445146204447321044566731333237041242674782632940185948792399760626080681409157178329124016580069456032484207419459744457740831428532109524989609336295226434157339051746694659926172783775261933471892000501060575500846626897364627312881485116066126376849619982414166614302602490953424394280903459637712299178088454043241155603271681148256556232310211047429440178585908084164607954722209139359019572102528461770464821266015392484370085456041033944137588646370853736628351842783433376567292846040359951983582853168986192109453813790417684380223289477504142038722990385742866991910868441387779905481115338683090392230075481423185896318055940289939247386685411884403845841482953254231165215795477398083099984978667422021873134840016709929553065944885014007840526930360224856931050154725165798207578870767439707744359421502116893707258946355088965579386862184136355742751446746586784179616736973453689185918814397612688463163339793310014053108327939744022866021776262566241459242664786164128161108881994072957580236798633642228454732342241448331190396235839974285319735330774012844154318780842742601078318743181732816793847319918179187125002874337901367108844614777902102461886844540445610807736187121647035555536094968837310474443479471367914519247925026071076793260325240677431899268934840265165464673240773626579118681381150936490985448018420042624579978096869225668572792856624077484783116629107667665244804366280809549254039569045396168321854799601946432787780072352387453196342712808191206575368811452754259631319170683398136218247961518797538373925170689362789394118289350181489406618089532338856438868521323779680315324945733935199573328344013907831531138257347657492912159427724494982788493598419879025739032020668468437422659887160702298470552241502522219364070762891315700439665217078607248382753343429952909929716330293203701948298597426316556855975666850383694415408860137342122145270378632498067496839225792391505683050101673155585714418005491078530926726574536959710664286575208309331806053843812523293084317106357569837725711560057148315458340211670325904392314154745987542138678966446708128256372465062176814167998512579055738226617688960457764061954239259077572868516954893404769408010240341382153157555840648660419673334721708910301030524702525864726613167114569552083726318012188658303349586007152183235849192028426600840063100870014764502231475584877394672298102057384265390253345230763236724221020502952729802219046220705787588846349825858620753789381082802214742357590550405138672293423022597815951115883792003602821368565964733753361320207475092555568559810834764576120055188737566089452784749140779771095502805716655556877029839714715243042443333209254891805243781472281142928553523543366595738598299294607991193331848025549747432400931342553655887951362321253834615651964794172851010193547608643478880487576991562208050202468635437830994676416407886750801771531188266524969895859288990782201353419937190127345383743479574575821171728023055890117359127314200671821294868677201401863618865495858469462389032562720773068769395818478028131481426851791298705877723782244410370927117461271799017757668985708239517130637314758081656131445424458298217525467258338427993123740955283875225586298521530767622256390887989048537320760937432168723289750721373072522678255646397101893152017236752451492883565373726895394881293129130537019424107762474675958677436377424755557036343927943058460234928327799109548878006275687493120152213413294544060968124758370076585831628826821627448750386956265546418022128398330072444906367425944605379143040468415693066812514136351161419278858601608170135881613814054154513574591151419391491279222128414440847009799284907081252118120310692363793584335840024771510935182351668457310161809224262518637730776061642826136959989510204936174155941404748276783173878480032515152525524043639846882076294030101205675229164088704442573812301686578812811007091790304088706147329621950483552920787904394356973316972171390913544203202140728175618551627453447519770828751287439461818483145848872044985318972412881199868400254692505520019794757541597363003289753020534709768718225193601943852522065907939434270738812620757533420737455205397941949233565526213724568310561720536727108276485916214161413546765926898079129630579297472738993093217478592800898991936989093063208413937177095528536066107163379682120539773982620199824725780963733841500714940759649008778039845264094790441162720656867074761494945639963674200534438031596542426638530463798064307862678688345841749916201894059175477314374590837711545033978852379836583613202269969104057554809365037174036457617737191320810373594894232617632776580955363584973686177962792864093383135864336045791210953206415975160980108936783197203549555760601369967689556343805367874241623498398200572357913215472191674958793753899150544909889123725262422259354757504050377853687753402458211150663532111335149739620002901025746982718890338201114139683703665655554394353731941063675041870564122581216675421518400279632280352664271709361590772628971624941033153178775852522940478966833669554328780604558431455343187271728236817294302419849154291787084881457460264353165979610837068849897333840154394428368173768068489982522336068507767713147515583263835318675259008636784172041660256201143288138912960035903500505520004884428153308827745640421149296061284845274721109795264091852571069026076519872561775401050577286317618697435630697729466264357781079811489079512346254971039255446573685603516745886576352638814650067815173549344825164348547279465325628675806222761682982122436896670799118173532073749374769723337955638163895435205486882606941382643395100835390292865863824655647264956312031706155254798992982023331980686174745523600430822924844971665033689088118826381054964410016646759261447413638165019208440370447868571260789418845479519649268637097533332809652593314926454509570214737097274821679352524061640811227732452764795554446709953780957058440993499509238533250606533857410711337143335982677565266943003393506635750633668624197967162020167189434198371527955976260177715413601738178420263567784368074251710346707380862471073588425552003708165304012396055143272661098512044281315349778793197208813608482306793041545025916643647331907776939283166742869614198439685083784195128488823308145894048349896770329367703865793164450636201054382420274083790047444410396461098542468438750617464555820107595392819118734699541072373497957179980543037614310252874458047534956365752793182160065315949285218642096658079180658988437272658507257826363035277383446077157995917352242217749420014448043508289184884031619400315999142769306293514510586410252651984854681156994206857298975270594906531704351533229796501142458049328643377796178372375825117240000672062534594458652740020690176681548992304730184271394376502683274176142655817450034498812634083021357467161083734711086947340077506907236009753260094566155390886919239387033804997245795540376781534299754994970741570902282797043245391668727527600160438380815595290650258657100935237608623921273100824629789829232876752304044862657380157241060190868518041654285593348630935477071378544725503663092233683255919727900851740427283077726777010513196704993095079415369800338406064227129926984908081774814948385489072411137849850719491963016720678843351175622501256849581230806659762183798108946700317957835121523814460380620543811307093333524814035843383959764074291859013438786070068314760126928110296884801035074482623337437887658395279862886931878186146306610828152923736199947465795115061694016184219427201432068043745386165314012484376167371868433747487774014278029437700304054068674620504852067841155309741944096253340852104594005059034705525631302698134370824750613144469609551251554782883554711699214068235316811781503905721120392909913576807812078833477505943909996197118603443832368686746579648345113955409960612723625738947903670364908635972124345263052015501823625183373784453359690752250910516390958063370743515584789714445460856431847843457479694341521526207238758137141438720693597552374623756737215002067321754046683471794830536056008460471257733845856791264967190191028944756159617638385675713461687571812792934813053506970134072205218305072806833313850137178182815122334438892670339884644021794907985908518807286464273853878020730506534702406043276129987579796584624878186173934193815891892782499049538096264894852683679124858753784056251656044994316638562002633759997067402079668000331739317117856404228334540993154521873859212225305111157000343423900149849732109580775003348100520692401880131712737983159718655296965003697709431369967511457382429343288954783443586389085952384376955883032375731708935508158748013134943263132834300132233248817030595022675764649545222160228674885956642961676214820336341949472924382431838187473428155859158936881904003032685774495425335702296651897963627940642162617498194874593566794625272872656519989716232844367333462588612642450675810461080917615058889728989835429012643346483281758802425719330391970508147181250676890199872905276476618955781686044807757507527440536179090575496151251834058562350986110166833656919655672314184418162878839197193081234662222533211522562851896399544982674564547243002589745405524663568769440236114539331966303803736090265325180870820179148568920641044963460773876643609699252465284413309082194287533372939621870789287551372689092470065635192128033988104015540078057662290228502545978514623245904023663078756983299274584249507177478677894232012521897357580947785929380505876247157843804075666991161613591505883870830990057153420299390466692864082755280875984549475820635907692605811639761844849215668144564349610571389579369500087889077322871451638698467019175272367023048604490370378690716303482522023154792745433997056630930093434512537787252542079211908904552642867396105251025277630932526355298578461808573607283430049586822291410836075620846182651012927423377942529642031634871909273638285882625929697992089270351876536660721768636676264841577581875245997873800852980535646247550523634371227500075310568963400195695582914091257502584043923628793297806816989840962420226997230898959972187982700190373057521557848226375529648007253696835380780011958685044798411343794373477365681023615805289213090065547436016872255197511283532103788950681449660767221272757962718352295737397236387130770652458767023633169838438622163700680262719966887433424730227854719556993990775278251528747682775994865759075472045955751405764729131264023303317693414972018297696481624554052147626611552231613154395541563114317911181968926851641675757448286862837659612645061011242838105075698509098695595876056732708383897027963833542019500142029421301665892309816684358837939142985809145739433356546405793167847122194444928699586473397236780260565775986845098581570947659413497690430178695183415746931687074901794580534194488627601006823210599632713248989148868583989178864760884061055702604652764424012294222913173003921566884727475707674961637814979272360216551380213415408735233938087714855171781483504954078119293401551021063051564922102250090499893110487476128063043845911886809294406893054464337627339499335192284867650581587172685253303225632822217456893599782794734118712937314682542816911892698489565757357800742801330628564464929070318348424156273993024002446588126896980640031468288292485932932557517884699208831684946736731305105309428273190694315461083262562571207226371572507518052028474601639085629572900502281005505960645174317681674715473965009971346993670649716100886844033412851101979673682605544193207372384239082778263725787803394643466938396705753763028163664512319989356140272247806439985667726742478421026944696275408863773791257280916768818247176772949620054058654253968332491746494744374504462090977187703377366066084044817679653018234749015818411665348288611027740213548803629840543481832249178793414385019419751094255846153720606521577475580785420862848719266663601626061386415650238213162437403682650053141857579933207698271681713407992678587495945798485488417263304108568916337149370167947332837761705743029908791979053205249898245206212340055201245463390107775627620180415345796869541920159242073733629224545230934562475082310649166623850352625650143918574588379583462577576812891215166883755997475287728145957407809824748393562398407362696891968608232744795279923600804981549027206135429779348635158139740496029282869701042005278397386476990898553060477629098205968601638015214550871367995871586250203112115943517507139595143748067630497170498171735089620570061029425736580598682508502236544207162262058145120913361634468165565616590068519799051404417672882430480870665500706730639972230883720792668839247293281512287856485278797588044337109446101938487475233733872343095921205707801992930256785223381821514112424072748891712333090728144549845913931089869485278576345554269159997234437537835548602621113924043245842498742443472875258204211776830609945713287991783306804496268198705452847581121921028799844270145885484620666102422151641472937742724869201473308120575054004788692528725579410249425539880361367899806130079219821170528575444353771882143365069147604861735320426913751025180767633336410138088417918358518377402500900950671097837815396000331582726571565300640261467764480395442710886192141611868039258172756209375762478366697814490816388361539081981793756731302991426676167031429585605232481558320060684168747353926908729480067894081536435412491769142248478177778480324384953454028069631300149998441603064213000588643659365247155252880687438154339280024045966165723039906107683806633402904763078961532761047361061079648344204043556073163222394830531034612331200776518480079642064204718477620878083547883776231480160583090253623669772727162247428532456446815441857710736673756699379326554694162357187014791924521627998398816681891182937313886391647738539876231349753694453194139796628582824786785644885376674186505732396180275712349610155872362908736230408121107806890467865424618108743913202204760211824537539646117582994733311612170164577846635075461996468874172738111676334388139539312541274052516662237325806569113038796977111104555719313431233890728874064181209515294322064338756602772042457292128962835061804769003032720119330025024294419467315411710139596566047119781675153886212493295772439119896445768374350892779977404190842271892073818501398093854668274897672210647466600206036888148888565611539419469541023046312356107898379785369354316831256265563455757952929176191746619673000429085821178180152677061130469256854255685857998479711240609823123408728498125172261139648870664969041758068725063909668230199232381295943942082555002262393315022781739963558021602549499105968976604882666259108172219243748495290450150214528289408714387705169849607230578488020773235848853024249552611369978324757191742214735391604774693315924883912143793170279897029448061501579898226615229624934122741324209829929586095545005024315501047532758974182442152631268507146843567795883840660793400605761264721890027097041383311780377534976646765091827673882406737385351757442324646352282385025915348593936740756685429887175370772403026236733241251593779688175559902991968452442529999648900241113238991062595981534976553914847112680650506692837564556664575821815688323818099394632766906737936323186417363177157887104085484128514432372890162003423513147761692018125934127002868502269890288565109553918595763690021035789047635755308743747068271534280506483733582284569476484066823051965866659344791165226751415685390311237142413163131759784998400113751370496242434584593398392805870147830573959672688352350080600073369136269281206759927638055825315027105477420895405794688501766076798842340309400729101529315374686898319524070161844971995590152058165267841355874688967744021271678757669284365218834039259163763574862416527121962078331919797267009536368252081580254169419008944912749018334252273272972034658187149400135838044514901643558424966647148839142487194983468950849169377710982989580706933085014686200501533802880389767203599072267795637446651520420896059174820559737893585232371956542496401942744640309080187878224653546002841288325974321972049166491659169457280316615370354100895606091161736687721161959389998835909006084295840310607079401158005391358448184831001148421036731908301872850107136639313235363375814246181834414562091512711870842258398612554951108263640673020074304711775662212541299617802814189734706211383044099605003401195400555023161497604181182640609570186322669407082163230573836420490215024181952446325905934107544331546250854759593944664767013621502104083715339615040392889092601192530532939297331957140029313256028348959474608279510473242407859821440674938521894713491500176679862497499790618967772230329772432896380989443459583820060103667114356975319897286107810494306701803134126000051016854719215839457452974014050054335965310566108028212179508569163694744580085705975840829501717586631606802689393933756601468514641070386787199917824997103728582529978553649949111529145977800613231254657770217842728625819824720590573182539657937917052022481580391027008926112780410981644832529080249536368482696160519298404816690872076060597047312464456450913027378434806358503209042358287297785027211088893604209058361476065437591825795458507283477680266755061573139789647833022611524940866773770019454230085629488431909011900978262241946762731655305372330209927267467460378623210094136795718416383809290814837753429873164235999525104831164829522751216954077747152364372097902961803976284675577126797920869888562182016647230611968973016110303612151053693800809193875342581524295039158515137869511546349293258732330712548268921335494942342611913097244420895704762692571459331401905427841332568954977388619905656376893192603105733622605658621811202443117836610261611615872902181101111729587524488595953636021207420838264013768410973498995965192578220571611399784595923437891206772237977466637700465006481960596889766583470957505305750860156162142779554243586193736835527062537453395669732097410357254202833422256788052211000503590478145942422678315092713223104763598822015621737856972150998082065279011105099267904190413458352202549501098636944445908581717215896064376319454830057439472063172207562752717741886719866345733619896233575080094016280862179646954372848528216580980145858353263271608399240613297154129493084318845380929065949962885166611686250301541933521940062796006909361991583985203637111941199469412935221609559934006020431887010330486209137458085596580574909876094199575713514471872884954819614073719263208267524060875822515585206899486751502236746474439113605248162995052123944018395491939788992664744231944847577513025910829187765018498581338937782008656230263560206516304574831654371617236967736049761341655078202796286229369395325223786335996542844188270285754368553776205061949489747456360621038691418860406186369960001691457443585798186670859732847434712347609815073763934888591032500899529948327870793899819011788240555785346555625063200497384106238454181572105298290428630726220658056403953074504228374094068286745363162741570364600810685114394544872589892295684163038018463035881297695682725806054769768201978466650593637549101246862468696517251280640649049007749450573900500918588142336236899520317242529610507620679295500469039093935009419877702930945076740127991091795506294654345103473821968863835598867125974465062822456009409243480819682035892629680556116944300896214948882252002506265062288659291121356224810372533096841705325921145118443447342153173179523528243176387890159410680189153894109522559517342655025383553559597302053707860795866825047998073180557045598846998610618681060927601390552550898271652936387216855602888719070159403066101903128686458519692907985825889578811437080010976975666516791061973241034010354884405662854498773150279463570623678271709332278346742491597853768161581938765128617899525806074520203159996671803982529972995831050443360377576997475253557597630307445369454975607798030684099245094255183697523837541645853340162260733179967828599831671639828242511341912254785601961281443272059754481140502701304839658932241187384681547809119803336092799408382541753555764442979918832591944188788847180674359831811295852584357320984245803887071663368337325746157184558169974464833056651551860181496402189093965685435948278172484718487417250899700185122743166208240561857014813177317140934660126860879871774614751095459637925569250559887140888884576801300225898037837841676903769155420472360380348821902310279406683388078188722417191964079370658117717850595638359672786816540359756293305890922784674218311296238020449413208218651512221624630830029935572113368533343401050192196608254065949929733355089504369883498613329000689433630439091485561866350911067142113352334869890244490014510853869756676095217234864051831473358142062863400549425757182554043281641357555704795728663684905494280007190299698725139296642075241391864545345524854747000370281649327442689625251138093318171176476706372705260035788498337187629601826918075699378300210476392869213763043139215848450875020057225646947987035987957214092069096676713428736785080602485914479577370767096244631805551428106335709601339054660437556757612963302013405800711985113184498785230571210590155476540843006984839850142921339488221025127201737123823718017585763396247813421574208084728003590723827262771051489080207645096353167217245218799981389889640668352049489846601675670916636346389860132169488618825735416104159744018832658042649846769924642028181546789275649086718732408635806322169156386962792874141064691206931830855611048657198281237951764627502876810391394211201221500105941298114844635286001192937441780272409929592816497930170557819415128850618793696206972589467246278305176022387037961568453444689796339709980084552419612283560236698809594893866652076622692648727631636931273673335957420703240520324370988266777404925968409673325051344243263541519309444525678019817735358547524966129355346277246947956082044447936971645768493163664152222431707270165145573668929622806634641980292263090821472582987225819459200735220566085868453141066857787993871032293192118597236941322491571431691790352777072432708968806956337962029562360574560445281500809863783415678327303312460640094249852921235418661305566142770621052479620692392085222404969489711695439817072357438779876957140633512450955988232659712378965137366921857150862019778529026919681392015532122581910595025059444880982072592255727769484039323730556978434043884244134010507918837830015807530493734767177436205114408797327606853745609869638979183898612124774999613550871571455997271922956501576751474174178642413784594867444659527672142836894271329275784618903987168601005370915204435745221397675005946290378142593816497178896396500553265016713036126656510371192838413310217487871306436632865914342353369582428666618689461597081882528963994087250446190631680198849357014198479593857340471425813155778392866826756729546668265772848275912395374027412862776110469176725941090305150278158717424833915352902864464701192066730174699463041478574696666718897895920508028263949773292077117152154557848762867168348653314793888970467405519018996273386050399540670719912765809504823609802131862457204854514168129981789727226690703302191495761806781105440826849623509249377474177772688859361667030057237580869124875140249641559967080925159842832889937422884708919210678873125646881503608499109596045174955576488609335382467496938786596121565793347284828768987860744776188326222030609921666130517472670516436043991226245637982385355205033778412668042709998231346478136433164914269610457947519563129953827988279607764989650146505265031814693697924112726861099391335574057538081534041506909484144811796574880230770243228498032282693496412811927069849981884716114340767637595654503549424481919816096082643617699495567680131699654342351752628142359917896611616133715152143040136967750577015247204186238813237938386479830081108675119293243567262409057064022402025319291452593082039154863004521844367970276365290003349986329855633333960531085133430350053634811435397429588524874777154609813224108410131811793227966520193427756252486921843331337935550879198555367069781455778201272687005921396129197574402568736804078887890971070735283621730688119804399104996576293052108764114219715573533102615297377070486572815144711848468637993934361264762050354618042071828083134042354489535827128399843429364708629445355332427156926347981709271596976166844911559145430446043037033825153562361639743799820643292578357345675002127362012422137984286031792695530684253522986848171587882384763304283311218685007929540028014930673049775259772488214226294990439015115393681486254012594926056844292559139973499049839414178748571099740055485440843441572641467798903985842053841529300097708523126383768877185516672051460432600652517896982265446846698486714698141458081839480712944174978378024937528252095744651963551839033573487463195916825971713280937398832860428625322342380317351797085269525493959573481979014897751706730045531811754687724196981737415054945827650302613918037724335536826714988864150981996950346325502977615845805082811527053105602955744991498862525639030060494518763021120099787578331662384092937904680544454538435157085231139227680621918031794762502874630695537350063805818076728759183565725429708254419018196089057438741669466905792543329572237503232552902027009558149218171190958263093478988684526904148585151863957777572107886498591147040855754492166319611855198915122397398199274838255501373011750424104543296162728602446255366865092095619689559996204209667205591308691347670140858779053286666227561672934020839478338386691083956785270689771519632395741048243678172149880833589154529735161822388367375828010441045545704133764086721604589561618153737848552750933459464664276430341876325819523393515817932803773107322553591789758972983186838526342490985275039168926744360910211537795776498574252503439796212767559970057332794621347819416423298637033694976153886063654181781743505978752528353769219605088623806982440413979817416036683531524273229443942325877048719765512522907511691492850186500651863386164172028176961688983329419928819845469252891026010168364550813188477886423546786500827616200545110579771925828930416866480152138045559495900467722498694337882759638640428983282025764365417984690749915617088554780962005218359774165133873929689456618324120954426438007365825032567619478638408576713993193108713584392106812195717405108406802351748088206102433107524835807975960850695950275677519803605630964776689426872876902663928233640600730593234987198241437361559357136057509840028597944681882611426133758592590795236142632409823333749790639644044875963934212333867972754167563588352094912510643552297232829051552058755599129258594949795135365260482953236734117462212309976374258575003156221647343072073234715390011490808789523011321708462037819650520851954054213895795901678273848069030678893457004323721888573259479122809391566055669310209089562179134680586582144082416662663300075599171000636986572730569642370561439278193005488636641175472065954606701128564367326253529684221392654487405100059224915306119525855473994208664101019877791076824453604086186952152119362091086215444243681986000399603444207912879391883010979118436185076427102750350332984802040711533960101297152868710569754731702486556718989525211610711452155912352385732812446240803544477705081777159909592325192217401463823956171162385710919683595663444135235138817997594870901705382607338148914701335630372988313371416780887221117825472508212404171289953691296364144660815711934631789220852772936858412370950938893108656244964965118302210851708296872865543702297815517843782006701870340507669869853496277976267208025537703452796666358979705363310190375144515714008359968484779887592063476324569543425870691871801217724187483184525797189472800580776043450385980455032002256274226221231538431731976258912822952120206882823502586979433048152862420274470955827733101193342226865231339614342013954229554808228746828986788804613687349030048101687627988142775564485521730434268588136782573800009695492681793548369342243010679308376267685198109919682888137115004624771331640934461852846062962622963763650657437897247840706352196878484170392509895438840944266634030134516828358031314935121318471338259156018330485558188601804686641988544586457420761479653899855181508377466487301198156798669327566898400803325303135161577135060348165917686825960940379754734889707876306385724943640211552889856017587993938625435560755345302047237271256801689117340244652252164746967803510431285810623328001907334493585923588198125034506421966902476602748134657331601732918850204909948011231068495333996812786256754268849089725686110042361121146743574060345309681228299468275188609422034454136891621795063419113373318794261891206992525086142872648289497919360731390746041483027341804226411753574776576422601010073765576938017003771713987137310214394041142874828951833670632010147441268377361642397112349211020175700885324674480689130551623468755642948282237929230545107926566166887181113023419253200304146320944789961223933892281813583634724020395710245632363327511746644070330751262388610091958327679275001544984881525123277112269172353142424917772250187144740541390620556888310684836804239423756629643467585406491880376762855809124701806515846977457426124613353990293829041860712165930104943753143715015100365025260917420780845220776031828043565886966154660751531657995094755562730592450539087810287630533216937727781641562998693694736866510202395377712440672303476038976667909747185903906328539297383248922724727516971364681121498547995998022070825766649335115554024133824633498726998574346649668612516157782626864495574418898308009445934085429911151948813693523721400817857729877907627087943892597721312276028827989367678226090664826618002649378181356806342085572726551010539613556469232098965464293489025284045760276445130564609817067068986506568640408502578944647429482683158894470367994344216398663866999995252260752552156198158294996267083427666411889483542988503957359741231584720909053055220908108622490426051969836476570185851531363401279492960068207014233972213418091060206138779625343297212721165370441300360535588674326299276322359927288582656724623110028761293583654131091008247312887587200893558007322465843981186419414136050260981825869471691389421014446898422177499355106772533449917761794815639931184560536429629288116755622252648566786218969488941780634984852432417999343325492701345541131310664448212878706419169091519855710538513405246018990904484704955171023164029780487875671553973765380214119331825147743899000381744610153259298111082893204604234600232558220481760137413927854265678234250381940602965545226113187528493115662233696010284032542610580444880252593032250459733837939113651567306375603591634753267001540904034933093677460877565762866157258020566019420029169420324033611351609924391249749349748765296940621131897858303508296066200411742745320191300105971246784865905072021939999342389363596532749897269858511173645373974137414432291706066313851917478021464020989832773901847433708988586215029151678525141852064912732844348294399998877520871704294585064423554442129538267608165221358177612671920419556247218525561011348542920004860633171902742511846501628491699918553831703160336767881371466509592777029371798056970623674278781715245324340253646577212106254552875285803315946073368584209274645261195287330965596860551295984542843958366550228832874155448558420787419793890571449178462888186945684067542511957274274243876577651398486851376316565724485303235381114443230057906748525641949344237402849284886695888236485520346970537405379481544282155310656250630053057138169181874078384152246339155336084565752838213014348897010464485112754815144490802972481463810262016707554059218857669810503478177676639998294236961759416983271230325334513403449087888978059485114475807968516889691189714425185429114207390413438743788664204331115245053879431151967127772847283670882254476437411725569271816283094844809705755472668250037925241925537699021911822489029876940861352687718608276234208224637983814339823231363345912200618510289754037244731340505445169402313362981352238316460920055738572480824581920390034318009046981383247132036409866631816879003627908463487597628998671133244099942534827177775336169664062060439287679973437854959889665503007515286486208241872394621756633438441961844443544037814380646748975777912124048390915406080707860260224892010971954873498820140571324231379243866425240318034814640202021700961945560576282281730672597031173918260879829951686041331304391431076641940379218879351237847680671327884798205686834136087613185964970732655489432829271712596300268359089992288867433376458448960853208019022419257022596348714004905215939792496141448910923951351552403119358724437424885330998473197440122953111163252024812752840004947766997296700469175765101324298373959115045478604010405540017751650712887164760269445805627965967176646270198866587959018293456242047756470594500443795622980858938533091292981626615271101364870054078493338346535925748253188229329480122432403365602448860072188280761244072190791153949624328880495851837625145332737380640060132580993188171047033120578634013592224553714958158965044412919902580486609475702355238340482142314585511670550838529062253371974559086231500445652160125328064152217977041122876783951115524079795509244447598635421098560155020546879739051241392793245729572240677741238867165274424166951639290873877675528210029046800166407424016901670338167617050635737633010372305304851577071001848577135345951398784017523220637346106137124551639700569227768882714626629108034993276014442003537102251435454340563873421596107309727371199148405701329604679832182476332688477520805678035874854256677800762633630931916262461239400376202687861724377111017842501388657303496948813611232600135548718769410874864050502097652616803123566910343306282832500202751380771273036964206770258509682990359461045544043501219618406216858724692939557318463846972908911509468311392781018415319541282740222458271035094502857837329283094783613941611620358915379540290725355235535703366693054592395305176198133078349987993720446318138819825834378180689305018360302298862254426342075437771688012347132296351745044991492994731039629501465785276328687944996084662679647423791537438367637597441405655162928072750563074545913354833872387965543610573374691081664115829602854872325865928546585793875847991432955472845892608461990416522612272720867045667386060961417898893452281967755193613360441462832049670494574849907964148831453745825883310744671954125244771008327210492794242180706093702645493321457787266308844347561551249673697819874960510471342173234923298105301353521644016325647685043504834603001313154750516436661677116609635007736947704057652787068249960360978919870118616948906526408600457047042051497423074559709603327257038876845054582529811896290824923636689924610545725710207637783908037352777974012809212864510656307608084887444703700144610744551057092515601430817289283861036764831763763438008777021352998280900710836925051497702292641106053126022959398290264911277799832140355021920794603743974378791786591436948607413735461134620545366929113310356935516241918419525084438308555179737715906540945655825877975898514725085415975470348624874554501417737024062788907692781747191654436357561729717769144897732773257072967917636205003150641644348108204256384386310593084350494375317858674435602773441767733327152375745674992011666042276955871986267572895920520842903982686881411276489703093429297518426581803553784241663312583661784472539230751914150293976610113992868116889865415362896512119248190848060759597902244293078677953842495440992299126131156358509462640045946540010404386523275258884815176643171699163167331719650763007482542411354712305254300768978518584446183376484528378836514656210107691426581645455491651049390821953642313600939597309228342381968211257431812573998062298302544868870309859207521212220844808569013990179984722831641599317098595285082751318821964723930141224919768429336965874002749591258626669250538317870431025911628044379580844962947557104243374137702788829141325237105114402567457696411586806259603977600275612133439040259260384713953406133056102310366866569841297949552208153602796858426951176797356854736993767626841924512796258818116818406859148960117720280779521264610686629344920578442903513377975210613890571889095261146478068346204079260688093740465011363434934006504696263377208881316601967743726566591736083132363877118290976471931706218191034755849576370356795096218186762522059287323706968128415819541887399668287319177613697978708587347222796027986920302743012068784862930350589302532703728316783489839387069973887323852584335057085259235027695398703494257855134998159244686229100940401104857939927411836712478718902134347459697858510830491302978112381821568038517676745135182264733463130751839963962565294169485979486079023844266319894490202479469553559413808410288094482918259138351294674886178918993505512832795053253509555821814652407863368805814307773118976729194578425166489759237550509269852493980347958792917726368645709948955724231881452327309728203828659421072222891655181477026295399712146784603276681198685323650340878819687252442744520740908243046623280191263298295145741755631412966199729513368524115983456338395156500778102438889168327694989867826943593821327209511101556456751778898803497566159995524460021763812628268956872854909538317080672182670938346612806679294405802818876993807797048223669130107609283303212475178771257925294968022232399273104988644892976167398536407109244942768286162064484846440749921017741889254567610458573120722106676592079140854850717791182948464801002002239979816773466177779850961421698415193061248214066130768929400356670827022779273909320693547436586860954819925373256185577213377170928060955142229974027743358415077761280983733261754778601809501299837981449328799899211052326518689699691920317803866854080343944167954900239092041348438739300546124097130358346922334592449890761718615444370284320694693375012365284652505831570495888440642026819379749406299022203031105965351339002844013860189658173087475536215406314231536435170853163958434491497250937112861329692921247778380480367665198095798577558678595340645818251494481421032230766528793527073496727872060390312968175871726232791596692374432077923768672588410904177421820122373710376142747861323219447488694040224012842019725907587327133254734330291369710392679594611129330262908868067322467152959646427486258655951089106414512355036408233049613459136359544110843532045583135353851234236963114150861034303725527446591899021706946265378145087540769582019171500007052381544327960176089480810898748584739450159884412279055534550413975035552113051410082470097603823630445762183712668014305736979229749924977018734728688975348428772385841840745543815111582288872373476631473229959891433739595225939556251051490628473425855730547984279635395340389676745745090529775837753397951504628602420418930386216074143937016086634660686319177968865456857834418618412406311198402860440429257700174591507991189029430398928195399199624360636557445999924174938036028281460718571231557822017229213079927281472611832251805998864165907452514125850793630314034956958774711916151789492991220405417554766168405797877804611583542344335116314430380792337089154123779719427822364623828677840528229646723603830345005137786836830615908623067301065398822178832292638854199904501124134785430329535004402825835181433014715385218484291732530542518902994491229618901782908723102463026248729612708665193089662499659514460989435991380478043469320386680312026363824732651208923174826713062639689929163942311467146448741954340537041716735017693022713489976151278781832036900153860413891650251507889637726827817368569199717049974944748852375411864843975585327595782683574435509020297975954467852355355277800638157706116088976080616640807028666812920599134778053486373057810320858553629234174960727750224480645008481864927239545148778172435551166212761043164730482264375285026551083642777998962525516770577595198979269865926945320388714845972930754280538771719228576774113761608030769876193067343633304484135790900755987963237300732158932338635977874728949741576580888770171503257038706155067747661394901086353963248553009735678025531085834964127537036168126157867286796809866231288057136093962860360082752469711952362153558896613826689628083102880549986391676693578289575064586493388717069063474481384736797460504205835074891919664886870721272755749452988834446132647734710365546099999394184557321379737691193488173742662451081791471144338447693133658221109840548101182202749778790831340181419178694196212559302929790213870642646452585104755540005172121626965747458985714618898161117787117255367702811138609327975573643099636035774059096772830226666904409048504630684444204242583633875065548051628620167264938337405069521798595713557791489125038920218943346274250245056590742128317681331279429097402181129294947293664006621907632680611956398560237915719565257748225766587778319993183942912029175269147441331837539009054990289832216203641987947915804298073026605627207343874527395512676702175792299500866640098188057081319173203347537933011182600787098755595441959419883500210604619041388344600802557385594911596009271518099206011155015854230112188852362297873427559729414864924308128393777777205160666086135802236433586354687584821058467683412956533752708794495676107656166861510240116166394543486691077542544779753510579605519570518789930638301084790385982682807357022380284094834593206984011472549238200737756490596324323723300546004596754463552251708436114277338812134303425115133940066982397539718870850755292344272844348521178155240160938392487165307616482291919735700200067467476322723984363336173068389582838089464370168291582176694386842194400314347199387967828459443933496194870871438016609694746207310850879314631053726556110834273080402508028285082486529590691673262019043837427765033214163178294318797342371814557301544289322353895288281284792072515028233562699518494823099263600116783703465924693992555387184350420388835831171217580266999752391054315230707956669417712158388990005025725427696190973879251555841731901526605329198322408886173188197337938484634554292987795318817973418702635582954866994106566794823996599021555426025087804614917150509504456873960004890064161707945735917095110553259817343659157781375135901241115141927888460971536304463996354718508837431154434231230599389275999896449102916786483004441840677975045909062882218018217573749181921446090896032721202262819309648273116344455247208411441923762566421419898531380330562557457770613823939706540637076332115571428547256339918593220454897552095079785322014870700774472073921133421145571018833359593483822696866987261169009511943213802925805447848176383962309326462411092987436508217582440956395024405460352005452966996265157429684422432330898585452214727386900652254395753188854287345010402016298933293443068633208362250274079542450337673142063050142017094811029596711523385153424487089896237354706573834815783391811244972147900745656712859617766668682631014790816998465565365912173505418455544819329116368206624011181451716684950266823663715000250404883838303229031931944073618962290596674989588639706938657872369928753266387334531320090656131821790768431537577596597351456506497302973632005136438439162399436728496212819329662838795815944119091550969576358783809203859506394720056701351321508067438184802353821580751175377638305213129135408363007296757169653317204689180387925877502269883864007670200224841900876381845738929397418721187400455615690212808829816827501585179710075163172010736616423343954852892877547949683527444040399016835266001570252979391616381129295054651695389339752999974032047482657245016427116317852738578874743512487565879394969056298986220829922191953466699820084284150420341944976030963712515292879035321609426983838472563310554514975972670746207455919795716777708918697028611249945916256030182094646216934971653261604137949202127706159286018397940260879962393340110893037868260333485070759759317923168763107991595451451060178670642066667885205933487890347314296696368935027945308892599881724383667995516241458645086948463824092962277237427979156686845889755029777757865387692692307198166405604861909470914830722388327513389036105620069363466999805913261618851686513772253730323435001351979757247418062146417814269874242877353424161431738243820023863646958656597455504555636882982737388859270457928476239720637674457928856805722317942564099416980564051375033301051642454572453921327942678860366493466889884493984022737558646652250216266465815218558368496662474149119034236380531134990132411762396571444227869441633569852576561772149709144068364769938603015195066867821862577827145898013890995750206624228202976638047311351151683528416214387121407135559664883400683856928135038978772501430867457913371698794395646055913169255094017707104225895729672860903541677448830491770668958324623848590550303552531296995399930389861278874901356968860777302205609581541960860454589926122439284032436725092126042879467851935003015870447951714542187037879369511423479662371459200988185044502990156574644830490248801110812121918763524973018289536770840965521754417453813471723312331482400034538508539678526073547034687174108357166059207049477367647397615661992616691117110810378122870740464616179637525637024412834888636212881009399099045641081739131207146441612779085419866275172804975593864717434998106739044987568755806872758275945349100427785883914324030779323870235951397353666146022541839755826730025456079490995688665804940475252678657272396262709168823746252816176153834217887392099347570549228810541954396984607109714584334309266343631333111545681221781625057101543880047176278540640353379400152108012508376906488861056750969757853925732181086787156573751736539740897972919530372614846503992180649713637080805570728540393528261829681558631997514295527982940508387821229773256322672764173321764226992403504551871451364680791683178237932189972549958357784059760475110194339191444199258610794902678990588712176394396129099788742046797577807290480481311279871390211877592622594461309035189104643193803415378497456578128403275016991872293445353168632123079195320555367129653762349488011011935515078169137447972257355166568842589230919162119343387613794326341851200642710668280884910049386192008414862130511807661749945606424625160909800572706670656544901283896711263995091591722350706831738860566124086790468338659561508261053604246953041766961741957291648396771585509044010524661836592580873876147139965966762117604967142767396347909647750712737053751510982870772452260941556038830708715147335555763461216769843285657492903562815663385861291613702899520502598125401984018861552670637898702982835610464995772010212763481879904514141462263312713885228797924300333118684498969899171464624396102657318927525127540178603468660126451904353273088227432145482339812220792001853707894808317031668892038233269792926484837316286046231596489060083785705186551252535060223529731475606386573885699327346755877170221123360940104184107734497057883999003216905962518206222389089604486977865930611718219862419861896760206455520376502607307852784510389728832271207523140741867018346666948133041633958246464470219148094126756392967014731981566192453730501119435770270854834025802820652091339568339140419267374379902367545588558369607804013470147385988436491510589316300975587925896229699793769868480542747756715488087315754364221310064590548806552043568894832200016850209687173987666241523480114894527416904034217008546089174896020746387446972506572473401226095432081091792610005433004053759324746406861663941663996725153398162601616900923119405246787641039538757989059670642829057533141128437472407599572960537134107467556275406872673775221132374818423389128819109453008362721070569438546217101478169307882705183618492439566975623935071974458623018739457179637482046855246760571936149488263950600507293262536011378071055513504004966992644461729103173494683496312625598255608466028559962575734495394062970963653879444123504899546102137067827633834187415435655244388928645443087030732273282350589967877589214797790573260348443174408047229754103123611680926414604485408017943499119856701130534369277049822457036733490257980616762099093956598029858580922251451582920810963508690147781152425437684322516388947474782355139589249825785571336864210261328134169621819833404883661371407537589713344974431605293055960938449817315744876079638171252114641861330799031184060807896581266195893658105091010942023445313943468465508181067368841550427520717617510331089997166506658709306958399937586051559215584993407746113408147970873719991208215934308944051451214925264837886623465129348605512438919724145445323223792841384285479447163442024795787429428133996960682330794607763732710010722899957277926360415198957205352822390422678649063652458100752759758200698465602635359104849329399458341994420698662885785389175899123553524023150868265423972837167036517756756092072510407711940320127099414696467385697429542885341448668893453537989278988583321460144039935859871181413228507344982432210591324596277429082497142082772797119956401417195053552312570570702608420098548401810821657059412371516395537847842754952938234778614321554354694845394461870165333368551713913245942483998564620345211452935861495949982527905947949397578682856856176886886143322200500539747464097512720036937577360811501781427605767629309768613710043893446568700570804242134783998242394470832717545267534132373642979534352381581735531917595436984504563188873425526748386598000098799356383622677551628978282781719616577773702489478074067917051832481904204617435398968617920869906051660183195644415355934424019155121372112319829258142445749875907257505743274007385388594037101372201830457491265594293946096898968426795485712070509305144659361416255842493442968521407301276126404362098259645388859194953443194497879452759823529396922473784010424945670087029042630146621241893398846447464176735311812186696547800233595982487717977234280011498288538705176585290548013564640798941665308539766241747789529299838208868024524341915175144643431990098466351065910311456641662898275816342076584648825008772156172974013773683515978910994767485775390159427673976953100252083617117917139292263877243379102983469198119655885243557976679726554756386855775949749663118496486081197489444491202700832667257231900183020193479638098531115248039130196938130388522177143723122861209522178177833014022376948083462608875232492662122648985618428254035231242222118677049361901404180878748882363321961927835037038962709156271071063168549479299144304766883524178978498559433900882472227010364055440941754485942846694836280228137375058039350694192160047869172126683903166599420923198653391272255646821504400643256686491687951780155648309372306872628476026208109514541790842672116204670848829420546723843113706794578100151890552575751503278530157493953247676746126963644017944712672227840092651247762766289168046097513897545106249681788910823580713931008085627346896781033549225581151808227985863120730126946132277927220900244947893141865148970242217300211516154027313339021290130171766245791511148239463164972796103043711058506315399710574940573759186997582338153320513176002299132471776483328642218698342229397498369669965790045775302699437773775700874639494214129815320531872593367735142426755473860118602519164537611646750307665925735643750898578302218255188656406401376861019698012842344839308070879957471657827516569314690868161163535427687532885874399700595053240898798625854989661221142077829082419952755764536942932948647142993286971876675528933936898509061470671415702617303586392775924590138759612572902389307165682787801638970855059130185086896666140174940607888139980101114593939477144503345481658719209379350323124657551555479278105410373437039363162263941085804074197008549397106051386982438839568613088289903969301168582754946945122793899840341018426902143017375677808884279584347334113862806895049245413107768229949438323848852000629212097753869140324978156702007395074304089060247935725976244186367511629443745206385515747169125823513368422309766933188933425799657067643729064885548267124540052783263215603581789671678894563331201822528632259017817126327370401692627352870830827816249501303619092504558652880500547405510607117847868572739604574799565580315877666455529710714219917278557363995759297239463578789605785740116928865257232335805183273830999265818094968118197808075570065739621031405544820666020081929859991292335610305894090587488191911038510240072402103561671746953979488901663081413042557100937428335395639723414211639601470269661947359426289563750682915033842722368411820284134358589624389514342655219415419085623426009929032534306515642269829899817399045810140759368681127955443506626142291634675767560997023139842032778989537175746169623014078372216593514599261192437532782863787002835578546271581690988293053350022192690016060670607673102548394795210815296847129174317438332551183678990974081374267734045180095870155045802125746883854671223913493450175022068601773008246888801846133851120769285354163956649640382799162376390239154156682353277775618208112847160330688868944625053985969314337318641993538463699525293571279513477893728569140029291199628724801176068413537204226966297375525780296717786336300753663597323844109564250526119823804595678526415413539798188833811555452791014374430831609214760252627048084687714463974686913859982882075340796520680995488533248481164739728661129658767893596751988834511149080368234086434536399204438018835231704505867723400962724111610353330367514634857598841377100705692917845870188234473707322709582040031184772919353632719272334948491012680022602836644896312345025644284916525405134809745557881938888469864104451938444589627532628259943190415234710589222550747843736733516316484989530515752203817523163678155762928619701176345704642773413724632323397615061129754872905852862075188206257292613466110937344085565296523165088702392863170331178679645002647767326084409825361957581181058548305660304291512340248917058555231996406963360711073323459511642921878217049435934932141975316670660658492724869354970168063568819771002523413849508690954699288298816129412180278147825733239772928346320708383186932773795017786342320877831040912798868580177138190252763466320847240093105699861423707580972260421414465688540981715511075319166603812657124311113019818719764164994221389750836652450511781102109030041084821740814742330369758999240421281853169172342242901522261690041006856146655163369756877700992436556266343977444964011153460341055422443697467032700975635799531068846577330573692910491414341949611387991489442961413518234140930398217462513481225932898905938246524928970358266385469251042222556242548831700335190775190912573600422859575638094307001680219418240597813677973433484315823508251990065202095995398279337962027248908761988153169017635584220175648804025873604920080517287978711310755085761245648852720660387513450816539732643545078568268177162879930670066784514938507661044530032116007420274482446885824426616624103610836117387297292349301211568086880284824933822024373567383743155398108518780355165204922496528935820171236854793781841929630977952240719220949519829450288249093159247052834951227738522229005538425956399412429739638209823031868410833760642293130701781221688820998855852619320804782363491858370764704294898296659939607738185632642451710079191526938654098811572180399661197384911845556694912157055927118675106953449664420618803176425127112499316136058908910369332504142270778096531780635595802294305599418851241745623851898792145795977967069571154952015513280496736948252205867186155431063534865853386700249203201959002377232080299867238723203336155342997402075408462799026111752698186366035241336863750491468107526767691672491934699362698860069994386937661747811159996182956040684272338327017948203354358079415600533315001052940045608209269686789956093919878618922404556714987100085603184134647849462556854443037189697203773009363323144009453890298138953078732414034983619522859116702516513761835046914604223617983993205553379145024160971623965356497620139989122417465930554983025411350363974115915662937965601727803157887760888564116595828194350079063966013038261474162216002629745541846751994374047037155319085288852913234421503314882333373482443907732944951215497706324457844489455540018166036551273840377131785310288862936194276102643184392718429652328673969547998443480797031781465741485517104067120411356599193771392961456270034293539594703477651160172130858501976614428688254983348517557413113696783894771073772540271347877006350016319863344870220245044092598725065009237712569209649103570530764136467621018891608249212735624074731158392044785685097174270240258811291670471884707138260514201913556579731266243824099197764655864535394311276930834286134112149722053977114947274610481331513337296112291600655163541867841168656803073007816294361603443839639109100998693694819160427943896044640682588257011320817736891152457718936043902225811552152152701168252093442026916704459274397873399074885167864046202579837052550672809152636530074190292340145919307895860283625275023276142054870308571571193917540695429225298733802194337448844972163249941694724854940904423604569539188247679881999743959910800635158703099003398613210964669418517484322072075633833711536643121920842358285367952545014714655213438588559670047648746356239700569504762026231736879086525510423963455379423833471562049871761890216267140252378255727879836621484148156190267416714085358813751869215020648721704907933592897840335149977125456931045504857150066619970242092887178468639806117092278880301864490072132332525299249195392359565114114104691178675019750006676834776398101240735161235013103884755955472451494920627342484753665655712224967104797220178697891298174340804069377088122052735441638033085981912655566293825675839028361546007229346733548658388632355928616527907441340499922242999593719077268850068664186402555517267932232341349147177959936377776567830939028867171317530467290932236447022518321438506751274354100022584480384424573645819743120849810824985492750280266953297000358631362973538208004561109580131476027553464376578104928117888420697790616430829522818264535129528083518074939256929573026809611708955178746426310723055351266007943507148599778873597678920628407885355355092322487533440767530537105351835792464123051842201077892101889568120164125909271669772870632992008081281625008159225519640099080420660928045827615520532317718342165180389234495634952725602101142549519678078428011014430077392012853407574485388663570906144443533497108535761791577995981180645625905173138935990185955289248916270063384649522324048494073888639880405355198175143338857882557031402698118503462546149365650018513810662062917066691063959109216880429384248411920839099168748570455694269353775388948187357295275381102837815037076707163088297561667655190553173674316573196214199988664448605163822406657418101988106452824790052667869166229478204552263529007794272984671596596457526657065436547697332819071528415451877158188762596587988281147821939119728499322131307284881402831304535181871877478364962351510076272976490986801242096720202262137357013589604582943599735133978885898743048819727311636811404740709521865165427894446514907622926237642395857549606805472675605399215890841193683595207902759915712717935974554263623955562966781202650833576785209739431604736960028788296205771317753208497613090212049656708552523840561228151884991172737845414816646303117507425732060638707975132769248184323160591486984793970546939465952805349819486429063826796170027898790543888330154627731340265679281443519448955528532263154863461654881001905407175818072108018796745184272385084633639826426715030585371165593555579459581727204410678646721452866919994163928272808720780197372936460058015653705125174496976531300063904463204362614439844257378749876271746314327361850434940547570361352457984107260111509852172830796611499442835752001558105823719757395437448555419254767813368690740629530936521628722078666538708779649511178282919258577746726284380996897488002842066028087473200315904488879629466112115151399694063229581700294047797678560225763369484321159263060290311950297764919926342917381614125652580564821673705856345821845836880048479784546088386661233597656065337137383375604053634164665109337364491387909511263326859685403835244631912544563592011000778520566739440534249384295262689549498573137379988497855900972734780356391112626478281033130019229425668910910939460615080151732535403122154495283180926290663630894271268068437443194090647280753328931292798117287651906940906150305868529001132873783040853613610271897305298434400715687297702408281079216429288633982314425569069630123962304602267503617062853636427813775993447713089549884038043577959488680414271814083063995545837785698396730508340395434782405593452408164622239313509396889575105884224050016177218216437423410249252392902609936167105798689473539426502499194899606578305630350114168355707999071944465354549119276250902771900412180555953234430191149855218862150131548647179830467087133966520958833991053335192911288935413840719759401588064170765690922277984697038900230115505511818987111089555843266542490968659493771214280807806144425090502381100418864085699519507465789425837215602012087805466365303108131351247592914062744278419901346017702441057754602610493739187775785296305434330867013800112833027994211454597802521321423383440823569586911342542456785159914634303188019711843729560381322532646780748851352729050135266145125884151643094343025500424977754256338688815247197495330829406684686413860721410006290063390935027823891901408845606436270404949813346221469078083618210508289796451068245977858730220501249239417026960494708104466710467336032012633082141149176062794276400749615766895975490638644964590754277952717745071329127481209896460402273617850871012641658316630458257801274128013817491749699651218299399764469120530047447300013690059663615788351218921501131376042082007773102838815206093182416183759082974379376662352938138183735107817378292202559458316954978301218661311656427412863705387511191681270808137846210702644731430919773375366319229292243065013029215661265269910324042376851064634723755830234762694338635577315068058688833069149506301774904121226444587900095952323636686965884879529549123046448691905326252040394898880504879289032267025321949425894316873733815966814712219288786195584058582115898740640520484106512021098018997696896479235249615100044978193772033823802153269620012716779411698895717094417406557528345421197498764384734844385856820095334255337373574338538393030452444942980422506459836353907706012079355269928139337777365239767801088886387913274368459072180743391415452717893258204569962035328562484698854126299641923423983485623172418960203452205558990758319937396419389225883269092340793890251637284624764617992870720949676136168264661601225883443925789447042450341139525203297559907901492309330807521952731079093287719955653612418196958802443854428231380976523132171675136576721128284210243384109949156059189309538170006011849133731135003047964186686181397468096305076894105099826814583061221416668039964622307714268498356089049311241017043501613749566918605782932201679500117511960844006155679537301219863846226409104222212506438163016869179267530022280924006237417928950055555077236826371422480285625606716033930593515755523816232370233715551014363125580587430000215248420547315505089428571124634642622156130746917716239766870256202858649483975773216653626997932444885217213912197208233186228773818931449343673621435407784825124864251113787587356638300909088864216275802497190220656517755287280969018580020210463620697228375865083663115028574506009146577053167014838307574897841790673259591487194173061581509915349229511538972676299833668093548354226349974127819643017512325479662811447378840893571136395122149224024008665133971883669827103861298555946011249255170362070920644145036968980523777339276785010580901312619583052366327597941728263036582697492823302668701581172873711875967196949133232509654766832608880667335369125308021720418933733906065277671788537869426525248819594675021975090500177540571605658056933349066460246435763921868039115617528810120446692686639628275856561072039506958074541809746683352376354001026204036558096088641882646557354279511861077267129946105224893909106918704947862873508558256027308508522255943171209595626382331437138688406978244725813153386901504076239728847068841911345509629179309033302614646123852867597611415517198753882257136853927937408230050331106803824111167048594249326779685678888892551653119129954647077550567499405096294541540205420970991377806734755118542548598018966204403341019281680892186289812054809043306184524021854499862409465915628901170437402941678571625974864634950193673256175571300566545304984892409734357279393056391258397846790242179762158440601521052563020910569708046108831291220226294983385623208254589914985815648967582074153820258611319036261025238001113675176562027270274672143120141677987151873092772251435274424793435482960317137928336939909717599980549828392186511628159051065338215620314617009457997926791277433886501398396922293045727153111952067879020595917359027849741367410132052699735669555704966375091630930862733271515563926352814930996282078878621479488326285911226818873478966580509743215748064094948679637966142670862792102859857768550857659463131544176193730964817072156649904787591034255621569790397473388206166652751265784169627772350624039482256226131955845326377579101221099169861908992992352799259863155882338491125811504922692998498155336083405738439615596333119723953292589352498016663940963155117553055576586363699620765279131861326151209521507146331475441257935177165643174185479740939183172715501633134086586677020568993208413299374325077417404522280627342636963040507705943033633039692588769943052459159551530741528599920540319455037950477189589813903501592278692372852896117120662966636318558807970968293310711992801904605809746192358779899452762449283849171552748038123829961675879734415956504945951584179851379571141718906292755266548701922972407082101704394189318901475613293222375301292084801641230422357152397799446456206894069874613108060283889047108446278826521230873697112652655002467450153614837353619944619471763544586502552171142688427490021905300634719399609585845441675543808919307417923224951347126902016826108776709923248359481214430415347722980293557098715700393942301618020738634989343789964944535458191428777635937326507505747846095864435885057836930601924935265954452960247858871492808972623437800139056514830811708234153065865303810960918370371482760366832335195032465810072759698543957093544813942249447096378542781470729444949512011116731397175323277281840666722302918729506300674017794222342947382106900812058000822745643592638778761776153046335277336784207618995506030305139662303114544667340140679183591349534117218751676191460239099786591282807973677643849799171423764297106732486559230362300845198472941111885008052480187735294477323269343862360562159521975507665882492539132562934077454101530352431634115142887092450170627718204321917616301120977084806922006810622580057086344794445147696872886410220276035641001510620263037867002629210436676210467699020735877910554534109410875892629180387866726806950419523979307353804569567650650962454556132761501832339032962302777748198690905949636182851328353680674869091832349136720511878672012182594396775019960452125278133436758248970506301144171871579309755369776068089121079668931929293897805256534256656694699146283000997743440516401682681955019453438561325176371022936631158812523766905304533349701006277435157272067300456504709775573721436322834601370321577368301877195393476564930039695716210318727279394823087927058424364469317682630752352537232240221482192988876005197784543608698203630915954097503512706145181131260198822515774936250681449571265537890918603891131692584420849178258382034775079465124886562529450291949087640924724769683845842876719350773068113038727164367463734599614507345193480484644803053189075780667268035378012891468088874692755867341200570750117197029853114670661962820647076529376912129464104562347248418334920592976449949516211950000078906122045978994643279526878429408667085073313779192027490655560796689003120745956518473503779086094933778612120870507807923360477738241700147017858935950186024427238801494859334160129640469286855652534428186231313774119186015340281525812789444755928990876518809952936013841912444502958652525685712449642994977994301865948308134933220302381845397170379210420502506794501337279626232896024803973393420987318553297284067429416442227682324383918835411535544117959409634375871453854463962287361723603257964556460927466064926385830870320225101651197589305491620681392421462375212859285426467903271914668377814756188106649056473665059030226799333149787153668552032677775877171381928254111017351747768997866341324878754450745963846842576807885474642282085976415037255999745026874951632512963473508710245531948842951127898781995314310836087609143321795346354201315293235254708548362722717814029548555977799498700316532336513878409749576111315667892555294802827452388905045908968200880392062895604688938227722396959113896484901432379624354986806359020582918784587086370958360977516870028085668935045514534008471713920048968316671820530916523718320918357609077486580078629989450500501040269245054901676895149697572485335491220770063017447617425151942591310387730203632502130076892002974283648181255743733499359871031802780377402475184883338404952370139317927264418296985340627518096012388713906497816865832906162554442264750313633076666294885919425281781952447252226187771511075452454391444638040594919216128734085042441184121333115953822897355361240541415495448699642394598855231967728391075742359149102028698389296446415136697697704393057663016045321353960337499317017098774922538796472653209355895951326127525412615456648740290170451704519228506062958253160322233711617897161422298448005421890738221082343866544543940384511654557364653185772952372157037459561907263970867901021550916408028528798112529548743709858152449129717493615605521333636362484990689253649353762686326184189417001875041927371804818455922328437391221831010951171622028211227591209591793569037508350709420799350512352720830684686908596385075658380508800034862397786836643370427319558345727841987801414869409760912689876842945563712960461908827458028990201411997590365755569531333813902467076197692248751828132151159268911898073148675347335043199960202573392902559726015428153381503602934354971521023533386961310626932998517020646227107864283461799232978469239832379948641183481581820791438798362392324584935822715398585895754932391020155002191489878336742327837612786392008109004494858787350491595862467337518685670009718473373698467653540935533150988761993109616149009574289936650634980840517994651666662676222327830457328043325291299537371210998893834816029305262272241698913591917811174848569449964653194536480272986907485650205206385143936426679753807666736079486783782591190520179363078065356014520277749996060081778872420364877647559498730921986187721067236352486059205202905125807074722577977622509657020532285505556645341789827497660953694382574340250934979629019936232212492406236551122956538554089123368886519398364317985661553065436457807408052068170546667262834705786005607312999909267371580200866750455604744731273326451919125572235079540129931031316348029258616649755710745165225103103894249895148679029755382144209068446138892705184332629106457329042701977477575714165366184593722133667392802821951022087505062047426865117052525170998901543481433329516695076800138745673108920582833686318548980918697221835970687155553819497626465135733373918883346067077216099015684129007499183976033370739691607402503135044629637231895337991059309276903855463474508548990576450187185391513017979674427496990986957170307389161952416692056056772355645931830173426135688858346028706641311630597199215747818665160972922690613619148322874975072366639955181675643206073449552567175850749630856246377314213763526759362501291477842767548501390338123766226523789557572805706899139445873670774233810486909406170472801175372814208839943751437450452997507512195357040933740622460152773850180647281969287889858021387820787645278804357631974650048248030259109287974406114923623628782824852616458765019536368617644226868154166876301537177374332974880582004947879760410586695234784191746796883083695420865086721683229733868920055752629058348943719060576398790815696098781247035630381281535023476917513381961486174462816649187903663999409754346061844596924592424067291602044922898976018924088755602306985990093380465568797779742835455628539590075860387431107854988158198829665733497346972477492972347416088196051641582937147550955351301789572031412689544451136112363899974391032077295252646352602157485632138794607890182072323174923707867640185312161885008197612578079343089002118462173290921308403690577607971535949133684545500442113072404227528275162151092394537274980341690413549235287549425911544582881370952903779937702566066734377490735172733957822794175318705786725176377146305657738649796769299874445821745594913127178087152087822800444193609315162231365659958662993647054350322116543692233725602296128617571218146632948159929041076611862136018790323229898085549731603946961648736622193429203251457705585464370400089161833377228565270751009308346808266805002499492022058947986595960516820745068643672927604713925547650861988053688445106099296965325140657198308943355121385939887877692816149084464540061500981694695762548043001501884437354474333199676752108983771939910957072982207654006339955873234738719851626481296042018639342888583667031661789780206451904602231690483077941874636335175275363535660632641332641416698803015033077709860117360307305474097764049499549782126475896409660299018180634763710985420444265484096510517286478760008077746778357840366498125277180430117692621168766953593884918374475584092905831794389081480911800290104736848803555252731868407291973041242143857425153194185094249724144857470490445315832294710664287665430327963563526623850886182885680132981930525726554551460404754378041224259534614634140962996747629294504927859940698927527716546617944415223314702646895351503986143778007846095651315647507355905827763701016591105307412722524255681171975352723121283287738131318229851901694950025486103866893732455310755831692369723912520214807865284959102631188259672620861436525553481831095522571246121742167242261664800685528839229374485743985699691780360568564808143109060030722455035441356191062297814015882014114696624113901355169066399105552050415585566252750011104145512124453547197379690124184887863838113880663441245357947489300215187533440217593061545196069895858122598810700230952451921017751096466336504001395657738154676379086744366044586907881932640413442916649759035167832680395612116667317402178237571335351810104793195233792510807607826443601760238004302672800380961212460843397955042236023817299308365169261478335891914672765386512972701145817120771659120421219647664721382626389442272474317215196017622271845724714784011832084194288640339121255031826290356414358400530964145772756842457964271733550173519337572678233662125988118836637726320859957002844353968287469777642611222519410173432897624738032845174707259406169252358406393750315458846649135416515302643190204798239136416094495418467999131364642145260459427829840480208290004391394964229666462398821660227593283705705744549396335312261245086397271902634537892364705731100695929897229947721635767442765302945702118313686856303675357878342036825293885293334267916386598736804242349823311742152093747704368707705152465961878392870113741521550798031858257463089805676906078706551215629896806561145922662418123529516457413455597395513489012096176707459398946465690940069794929768825114288175184269196009902216523058968021453741043677425361308444395478274369166549485545662727895966977170994719949227334067307917014939350839055850390186427804165873324791750038021735605108043346038123432587272599672102318616965862667592541676149160402702517183607735388001152589629972177361312962818240916963987948272703054642062306688095489359325870788427631521205270187296426060575999312991793503977939603862978319264052291282213969733029015947042507052848819686471922550922356990089118973784838110415883150454294828808020404435386809426906739082613329448306017173678961752658073941099927094753240738916268603896363812890398386750368886514329825331174166426152655495772726968610223084285465987103699684799462850908944885621238642220790493045084943818727530189619201410456968918490433450071108530560851265174476330485350335370296135726799862627792955066016776121692220378453872611276079677919011218887850790635719920789837178878628022476201841477408313483623204666229011865537243199418310380288704792873934769422923976831200562667294023883464076981361654006188191034681562669766101285868717861561849581809109784327788609646731644979728596201777875846962464390407905556491040814631688216334497382028325884098716751295785418644166634271653707409528015607859674188549564044479710383569137900802253385317256117939030864721317116707140138806874480263184720059187800842088331737638880444731378825341083944112770850642379195928441748341143638249889644779816460285276971988471832309622559320378309469674306537403974567711824406435570841350012677314095491293567242891426032381441983689638510981261174542345439410786741066500849712311016055020129553512913993973710074653645854921220376595705777162721563784840014745831192774025919158458631467830724987585961791645501521470482747147188823002202895881324952893479215174897111354783445912788285730306102369149470797130240678724217254697674312489857659435803734626868014574487004324942419516078124252120592006293553363082557209692468850745145391301184878671664689175162562914670442775523140188505858845211865999760603205756155016970057893428169216988289159261417482198022405618167440819964239426727862219744592557850700868441724230851752104492571490265759045590417688010860665838570287295076684598506137674326697300569156301867351913735554090954779912947658920927387391511736295189961679609402537785641564059842384472019516621049101651116035904404696334618328776884120467669227206111752604791565577357897651202264236664547311083107368931487819089625688001631270600952496353244783465014456022418832044728755943397794747950551422134053266732529102699685285293714044305479116307305393189288158891131160066413399210090833383401733601309804792804464836327098220866687497075965368608487500507855315331659467174178586099167224240910861961486162829272823947159646042354718561477772206219736406671904943546362070185469981409124131637389480765581473000567052818408579990769348398398995112888359135548826766937587799261371397643073772817044587414396495734751007174670638277435383200474137577503805303876571706777514119260586525937158849659877425085986049265475518457892153499948866078427604724766223019651849377102877585889281878756459775562221265416646056141049649529829905122007138569086915725437160104845589780395318656567694407624325608974187270531280886110293314957448059824730260380201514993760708766170208422172926846837977847060013069759566436553552801446445244668788611311631886983208087845714324749162450268632824349380729588754573559702692194765425433015627120958969321315555400964395563590031687042391898154328326581659717322096068049098301547435683304910143729484849871365655036324202895172069820458158998618823205707173710332356932144045162256044443044327586563790602124716257202975456351950500255813562111431940161934033727841214117522415827196225249131189030773437400322239775174288579855404422007730209362904246133602051233446789583658142977650801603748558341300594833867162671466235565216672110905865681245537932810761902960653639634084378764126421356172943671427222691689636740534260218297483064915508437833554563748287245729586441948057567000193783015092553890906233619941721691206482291228855431184759190363129163906124922095787014582505720092292030620947403459209875589176777873981893242076757304841950735102284306802320952835227248104132295197746487102003761156196584762242870240554109576648924440969225188351277133058925475722949526850777797793789510823156861634705061029361720141705909529487137736838440195319781594908853751136252912213573802969717249282736534276420306680127455194529677931493218777378467149469820118801174576480041539835979348724657305218931425400649942755924522028448363585408987255216341287244979424556193881590226243647144811961107546020552299461007510971711983911678754629528391190691626264218366953194555835793629020741072073757937028528214568396490177486857228687076432175261666772415741249228458941656844562695403283097095736559144819445472996255291658983901751600772761644525839875806805522402301000508038057375651369345607090034260147101958573834006156653488076772429471446330010383667805650266324969957934085360521531186732526945566104706821311100346986036854372087899610633013454194063732544718862005562159847065455267064715350986394556344553102101024091386874441068517768830635494774456937472281267031819889815844022046529423518172801908786082043901273113379723086856999230736306548678340346660854951986860894172757454067322870101739401322609204616447469901625038405348407825014309334296922549900432370502309318851658284383951718651448230121129213625635406233524140227163991925842987616099088917303859511591078338818875353330454584856331036920931264866169538609187551771841960847955735493570700294543931159184727763254441581160771110712939355218408822580185117435821525484176453767395683099532253949980714436602567573163507670655424771091020994684155995147976487377596138596769874988532992439618058631053397665301326002238109998609577674683768953015846015357055420190667057337340901081568532541890824891355509107714544230546363585617749957004900578734684468827969761847748897882340503810201876627215905666953157780690704595518389330661347714673751505462771759964656855434752627055656101265144980481447166704861693836285347597171980570470753498504301401629531947809001808121217907018324508235135609495846456645146977267596380551145838009306099850879676653987768910770601243649369724156930339821814303088236137211855768621061308576996175216152399209153716374719014420740317166126007210020135881613235436990187105988806711574737926324558032185370187960312387028950848866895829553696503959217340166572287804810051021383799341357040861841797872497189363154510603354975153361919228644793882623433508715355634332121008763031937991270578310714320393763531233185919282975789315006503238394874922493326600159813858145700348085732514629484205185569332266211643091696679277661454893866528370691687820057304351128415867009507926676589876965018238913134511837508195597155032791270955699552991294099107289306966070509363097313528603708027714951527335947401714051452777541275147775812980659804719736470193346185020664754368473907936680840877288099292310060013882778187314220981026824090831109715920817488292834081759869417469981064720947840386572110526393436805144666414702729187090078185556743647524538501371963516585616309444164159016607372387995996314260762409513733408196021975601548937726843502725085772497750576098303625147121904753240139888504502777146710088796848817627286902552958881264828529632663637543018491535675825840276530701075234995504136401522003892439752501461661289203042371652510433563063295604730457943971383016735645504893574082753861169361590527339555271096502881673463711460871128438126947928420562714291197321441581381731568079585952727799390883416113317059444415578400423504803227656471208354791606965202703455664045456453796629370236114438466370603430580380828326940187516776064844525902002408390265174194064848698479975953055576376452349955342678361872400130866079283967262772078267791447751398362938957302463254480519838099561772822925770167094636156522517095309209393258066309426314808747094494417949285808880810156048202887594915413258261887674707059905787736284963122892639568435191492848610478368671215167097923620773762839140087165762525500275325252809082445995656664755586070444505905697069021443867193930045844111558256112061466695766241125600303435870490921519438494757499128143030081458374672090142412161308433078767763706635413052732969915098550419114268199099957983035185088250904070854369596322115769037101767259081680266628503033329342279900519926967880109342138230699658835273450282759763507669404653729128127112195458592006463892530457490902704256852485428766395761661185071968587592434764712816348899449677552658832887652297298541173127614298917504610504134373019779094867404910483508012157227020765742118475693643042853338661960686638302872842483387424341029658602395484979052474227063690153005153653294974311352376461952968712236606415442530651176607403385065526920869703557453520435909980901222867618799020671842530583629718387209502847623271883310907718596858956590836896565983012010536615360004168809133998536648684734692715197091063022467239968970890582377854342241746206858961159842594820816798582320612565116770461251720730800657396791028543780047969638612188557520785129583845128370105669821335178414200980798780272067030086011313173551129290396823793562417027309436389304453638897219107031479140292764208122953656124056436963940998482108506718344167524150377944524835542256681562783703983802427906176763162048339043738011223476818941884192853377462498299927659068329726850362132228518375381760084798625306069395851788168541345749697968994346803605934611081237080316321393860236009438304743800929008377948615185441445931878676615062478319818285301122958679832939619358411545908433580428340846729481266687953330918600678922693072725233370018344971824986757757440464871638104772574923461886622294074830896146299944166252609140985754512071650474337259528881836850434808174194225724404987928294606802349672862710101774692973745243887731467693690258211387756344519886893712188611110438789938836462782739219769177547385447945973245672647294728946279743041615851804571670364927204714568713880628197123932385758911803726753091454743720289078824835371303186306615067490641368405106927430646852957779611393081946412743132710856734484593191410972876161819243346004853697449698695689289392766177091211680338131356259031165229676397016676758294531246406626300763103394209591696333725158738592932575286487114770596775164596892747588582893675193023235205079472332493539375222353651227332503373367783282966380285209854432032749757225156436198847308063617437563004017875402152328711321321998041895384772974390900964081650435459392766748922112158134251975440182780683867701509996028092879899455748336816229310954470266540384513055515658256630671972660904915930763257054483148636370836849894651338888446475471596774069159086936468296267145738459733555002899102377845579457157467242184477335397373632358513271547012710085155614959226257319663090008687408094688010182671489412172700438897398006181647580443065709189993024879321554633310576831099425004453204244700594495881093636775768694866259355417653519685998250122905430019317687507561896715566572555386096435815268799295583239284974050034898313815157579157765348821469581283924966078490726873138453619222214943147655949677448801976015252814900019946702106935519161798054521156135531137626838715702959870085464954128098545028601134801946285616607702441123289972813446658284310163879659746588523846414300930498454291790361514719506655811735675763550255364021517643819491293458529470820476779966479797019417893073799227651096062225528626435382043153729957459884109924935693121906392374835313582929125513242196418673238632903347118234269349268628552199408474716681014293544383995924409756264174004691596466714238674742798880122018610825048231545470974699409516210368503309717387437751971489119847950795400773723544112391715762048943987543530373299941240612947019775581337919452146634149695439142876602522895483273471967498661588749597636284536242232856530396009515966048951962927968850712101544286815352555661805248959078227112646693344796737491874889847874300133438179354563761208397065189292659626499685651139135698330123546533426687962539409105462137106400625947477742384859962912004616753028390623726395916621415999994655781453481555632188376998926082368044903147000298065920480336491888008410872256385639834032675164926348644758171412915650152767889274764612282033443847882806730535718734862189877483785364530352179938195530233816158821930439191349907098865648126140746901745116914928892449084223802775822587830458142935286314055181245219581772471994158161580251711608729807249774676720424621348703526170464353215007891601555540479594438740991703941107644084545594980809055992527460309625459435650982283118723689283060055557702516732583332340637843612840016218123548924637842671041756399607951145193884090710377161950361681380533771942432686778477109429672140561216002299382305070449341766510502012454222381661027587948465632861556125373261531164084585622875690333329792156689093010652872664637965042936680554319781539219965701596739619642418578965241792096803267617628781454320020216056954515336406786946962120829573443919041956919576682718966781336232215577937401507637478095309348474448942983990548940958612966772361029687929195940929619433286210199781629324490338301454960438722824908310693252868755237959487830397737155104177455396047696803845970456588000321540450779492977345554544986946454243709019355224911912714113786211227395182085660304034529810154946481111262467058302846175257693858757821373694097599976201528547013171010756322918254238624961450453434708862291920396189000190630582804603301967692816507932302946447384725964012174845595233310114550562991497866934240738687619465717491851738088299631383880635628422254313564638514093979348023835690965290830662372350198900420758068781978304894203138348104625663149977457842071173897293664337170521191001748950635874011948796688288344471329281180852681458217607137147897859843699645754816731069280653778222961409269628000199736442119735526263997883686030213389208514300089397608416535956096631320829633592142971068834549572555345030065428166155515255014622519738909266601748265044985021121503066230753991313404718178414986040748179198408198530600192077203682378499224960162092831066961110806419990413979203420506707959900372044603092812770732200564211167227419134546646675480064308213857492262927637965932144097452543974837018437535292635562484542863138017873660270444837397125804469736370225499339363505214354733051179147264770909023046339718995581031094831726875584209400221026921784902339559759987738394495410702061088470001929431751827554677301825315442718403478179886509255645335062234924987827745786463941693665714395418006452560878213307987619053875160287702870878826004307594966613890209685171653701618702875903685580876537302504352817281551524850267759553006003292635038256258405977186479817198404260485726069077045616630061053495462246905416505567222619735151930614032993171296807418320342258858233461737596913159144608548878874443948241358746055213423624981726465978840632587827410885024841159267158049856731501053393629168716096426580603366853057875240244467222735601427159182913196657531202270756575953048702609052314374599114265896287686525846788551255660094800657049989070573846549515544741536542652529204807611877933891638201283643483056650065101315236239035138934924640497435350140950591446168026920644835707865202200743546026022117736508454077324302156631966469344889680053468944661501912563236976190151620467672001870588080262713498961853293300563777009567121506867539506130785928409271577224944466779219224641903464242159762181946235465264989407388025156912543084527510248989418364394393351360008281285178195353172858634392012137798391687735358167778537809850892920900825780701848231033171038041087000685233913000173348140002875918223882330708739823638636808916479568007998759207471858231123277682857315495099905688941283745011652595145275518999162303076880598499357598813540536757451845914384584462421957743452002809819494240058211406646405170317712996565730909315515119441449216349248730810432495026308091518026302450425683092035064562789901796368864255294013950001545862100697421641170154779914828479951797967132504464376840771749249093832036165712018876742944913058816765848080717669551330154072827078870204062521141578888543946359554015058963727634723503574170606526516817833406289613064396996741047752608399256808718361014378496003855211295315773541978893499656234079523745340840248403867922727906854980013490947510657582571914265187340672232399098890377107933459033639540704071269205979803552060056720608935583346547293383590620056911576880474071268852413172597865622872598175541922864198226954946678117869187953345916334612008460126362753280998808736895823240722497120813321588738767506937649228831374771957283803126419851641376662371809270836907814693690259630914672686946052154770025603788892778508515461317122340732567573836934545424147520971395547165246043603806489127228630702711624415483536949326817037337370645917535541119170004270913132870108701205743513548710599113928110197623503793270853379515572130397280487268953038934013392863558950773843249676793071964340979666890118559124215748267623097315288414455221782530692316538245917166657312517558636438701671492209128748301954681311986156977463598405648483224209216228204378970945842776820659719705668630179574557628688888556612412434097050577047586434250994631076032481924711986910033408537515004445296063356078451836447207998425432937777588404681987107435781871917219860569873180281859564266888705073090083908741389437337132230369558676668855732469318127314683450568254018326588241054157385343725245493704514953271705535639251025544153660861705769104711818542389094662394883138854463962839364160681767130079632077473952553160502417906398574373826885516288609811617212456657366123623330189638644461022748637501188302703642828198069700620288171453363017789369685308202061301060585362211937286195403647858620246899613829744381696783058317795548418410926960858991336312641433859124943287176672120071994555345783887288425856143795365599953815213775977387340453632182109171901145654197422482154807186535408453761565174796222881041169776326266037165218725136355602223777587565848088953595843037168007252873407973861119067706454186141726239642458339051588023883170852448659880959441870023760643833944435364603397439260711997819029669415176476125816249871586043163064039738245545105151857157936729400661991341406099825126025168165526961220134342161306946366591384684412464727969474173425190040047703827852165608125551739135240218840552675660832999188908084070748870750673946543928032858202765445078949141061361075415082745076049561716896540048854358423262501251684700303031569246161835497913267860419705976658938551187786128086503573241427340819903138438442837151639840872027971861580108716249420056951817242150786382980148034019791712900418591421816320188311422561925442077537650346102951458222179268917245806703408495396241676740699993600823827791590692055794871105947976887080782254102756848624552810295274145908139216585360312816397461015463207850579431430701584711991799175024069354770887471774229598376227065097698006664118641114295575231957312679176237877210344329461779679253581793074715521868763952377216005799979410016939002927513686117489704907681160473597538335214415075780306416176044195696425344803819333772454060923772736982050791089730198576652335239835399919349514120560162609383835587744734686592126113047807465654375776394758473590696852048897859493225226411819798751689083023424161359389206825104520513305716619776823490062947554018882421201556093586993893303024616282919243330751204500320717218286758496147713058877485181559843525414093411211951559343587264484679108141600704249879532692510986599145858466539998376351563944027519730271919155772205966677292218624595403367559253901897823751045298003273897507577689425915395097605083066515358587607145501805354797537670347100212991010773306504872764618964850634422729283539967218062434651510392447835552626623850268828100683136329460461654277341127418939334719023634958539300287171585538745707332502317732536366267712647637707098641401178821261831035692812509621303234724064981272016140114848999887273731858778949297767164198351430686045218404675434505485020981179329502233480926425684428249450683312687549638124129712294146874082068062528251906675008063696831252210379580690123637147328973112233796040545281196659085572555985005929133544141715516522245572919637529392419540443115450350139798165456417301387413656605583062556954257809572172711726960511841838528762927598353520204016637676717751543943113981240626057658767454348396027294429674661161299209335254066443392441023811179373775169780934649467797045203183698287223247863100595357231330426240892383892648009024438470550134393896136749867367790569023399382458222757657367312824347849104071540193061955393322238529714082191850093534100618212155506887652460195445240474707493807766732425254308803419079258192610298234657009742060879625932624712699025157571592227416710171375498102272118982375105878134813952020805712004271574124310162602005213799433078135036496110851407680052832526054754707051717378197590812548234671414607758559378374579990426443234220954086033893377152992026438338389106949859678297760414643458264750772167902294523614224603861880809896321743160579758597996925241178923454775685051592013674292175021791212357430921561079088642269601812666488878394479638869232032025878011090389625905285214682397633556000023939122842906385930686642294656998073274126534886342506332921320625522838024307211203987733301779324281081543617929478352793374284796550774874202099478747053824078437126065479726015552201719287738117680006767036965865843907012656002536645935658135281156147288772856773141818692793296167008371587210878007028140985640590239391790609974055163241756171632188744928238865813740999109443320629979841894642822720493022715891655237247265634844391821271127345153647368547646824433727806811908175928510704038226602310697549105291435637175280971346557456564767565786241075789629674091403976655945047406496459775275809153699501697425426848245107860731154405328364054318297716899169574323050247714806397240480514218705539892482947806956762233962738841078999740778342690330389242377825827678875139589323504326991779527736004652393718929498877918787694232121362545718561008340725179302978938389074150844553112027643211625239774101307565968605715435447817943164449116524356585985042654929121511957221700824928025668577210911207324786525341570759337179252029310279513482826692033019903443635586722076872524003711665105435497378459405837651767938022516387051983674307538105152089073409244722931822782562618328501798299931915370123530776463994619232195724806308207596603276925641997088527479342990112544028321282104139639456625389851706347846270529459344420662849643402323391895052391703838000865058570010274736774257439244525931674754850943658640465126563835739170215005942539445539005588771379739723128219790687329257353020536318447872861839767093365303099859578380918937559026527671786316227743640401213203510829848973157555694737562381402094721872984728024833785834805941778484113348876064053774079906898037531104205801053879873013797868568992516715069408979393754619998824124980792471311643309505698776683597613088589055702986330143091168561080599568432322213808614031048793566242951549608355384426409189167475052271795475677411991250507716284227310654389679179223844403567323065444735807866987201525135618079395514301992264683278386498155631705689713919466643622486232466913145834904386620611394300179438581272871501186813482377701872641136364398334713442639621823116530535606991195011367702307371935461832479667132786713422362549543938100428830663758033604755066114473902609888265998667281473903142067482140833506599485923805232685293016804277316307561591507783991452012294828999724493039300925062577286485045861375634573266401219781620965463268870011198505654330299431651907855757906960186096881261068719913650998308315213393603341560706976282078843280787307353006020813663493355265229286251399406961744002341289831257875318664634038587657883108789202113136920211837184916892518392617813014534230516540855752414635885131663201206073220736137417302621609806094855529348307287194164844794922145423762911588545028246515268098914630242819084410528760470240554424916657739685970626860487204463507984727706277961943694498151689505813689603458904268355057837112449612701729574674601090798860249988677108054302298564421366035774831195147359218912300637946154464488210512736718393107660984043143060649035317741483416960598587331144119805498807993559396319469816248879773632260159267888555893030326578439691938284653505619709866621797045399409382484822905059835902534357086183705385254387984058538257138737016082481708542002815050974231942438461444135026820882326308931485241822406841706311165936032822230587075179944963979374629647664428632735061524850690835498105502087176054394754850032162632791569713345907647385521122496698733069269942386715120002525602806054715454006562624642136017212428354309916791463947025763537042011796060388564264304886346954194422920266300400896442291829428344000084885969522393904667013049605145693518624946358912606492406042549284045567207978216841782035879562412918828220057613529018107891417764277234351529744833732809442587852353124385101224559505864868132212588089962496010352823834397006607424117961631682417188373521599337698152541537899290371098916472400086520012252399952847228186023951115049238272552276431392148932525744718985598330935415397867217252548541629771144305460960089402503014103232067539663741599435128222105281474895026593529927938253558863635157230229942038561159831875424121981309795849072287524767825271795625609107959391712801886820314769692069716166859154763109829169723348790896393287435853967166886230703520167785649751652198838529147402293825916882712379159636145399871178607956535767222781307527295969429764434222572820041331907065649080345759908353297896438206987868272818519936063328026019279847535153307186393073826771600283474855815555386159334528084572866445752876697023034722960630564322103792877309374304397766345572309653145043339723390512173698988075766939602662281541362502334313784743959538188150505887798592680732533312263383979863720743958966986407655252773585174885875251542925683047167957494806642612622429945578325484340371510518796880640062146805762564666863851955281954779705668763480584380890738220711549998760844601389255209956237873320116480093245779824489678953253425918355812447054843411506054873054651224648505037937883402154773425324636966471534612180294920056004297288014042962706615243571002678691927644076239064267592762553821194719227481205790717864822599475891057063115539269112900907437585757218742650278066619835190145697555235036469863021739160024528974572395691066354024574752501411019261826806638603922254757918357505959821745679107861129394436132901759794890504027345241542230912224354933051542350110343700481962228387788209105493519859654133462878283943576164254638437232762443256969747383699609851187403043658560166531520995775547509630342360445247059598825990508342290234744741371557732924153278361193077764779816854131901862877236926210774241466451149479469447043616780399713069537499708825674204447532082268048607578433072331303020513638115660483793805612961780880969106663545677456944773810053793239181831902371505464588452187811171290363418684597555589063203137915374831567574771951935477478825694130294549281393974986935236617863684117190728361631016688921081065174176710559224664374880069381330769169994851980726293805002422896499161044153966471918386090682054309711262452814048854626424091229122080734567883846625944903881578997358999509537261330124697308250690750340439874816430300185481147917491932756943358867821289253569479330472473278024049710392950535293282657174562097811710334070403224310755099968805398105698936517458650725995396802964546312992435096468650144686462104619098548975387281300464938013081167331163291987663479871686502521984783357087747162314078833381800861118713169879546824392009314746880969834689184241961878201986659474433594602386069208033165504113259700040094520295160134723905270153875097480163409554884107393140943067131599447598258602290351472910622200369445277905976782516782132018632655043033393961537250709305425703773632971619523558445880049011453099668844543207046823408041992185045967685109881023856084806820596578722371224081958183959426074059555145768559332693152289685028151952340055477626751935199238104232850747241302729892574003388145359450014833415555755606836446604959022875170094065991947597690027697260078009608030057226912131600928358203134740736894735914701692296256607798788081778011433207229781816832131868034194624083963593229244849093653570845222437564700205420478735675665955056681154945932222829503993552628601640604088945142363232698988711483069067535372722449196209912651094838507996240481363690715659058112140501813232407176562852164041841508533321317625592601892082403680822805415478633303743346549925860655294559756393513132355215674424635104364740667871509090617853098178087692025872056079513578719144145832754150103100364236104101964419485025876875203862376769030243064434565686289650487686326348333854716790515956943219045594216569602006490401691570680502683437656393112134758184242817611497518835366292330770321636065944752864699873533443701109982320964974113989705587654621315394071825098209317575407311893441030506051206288975638349184461208120201143672812207483719542378368544277635349522570564316310876019386456583085717344334591199834644432593279899016241293833175508184245796844293259688291023297970694966172787065827451972915654844291809776099173229864037388965582767745646876269729348375554262555107362182764303605205821357897699214526594168965870193374843353043802561768083341773437221863704880945882696055371817628460033548537966284046231527535188842282386246752502107601062917899795696900860268391244924393938975678053810301892245043375906907314104058948200508652188411588773914605433859998584731304181498041069985450185753069063673823410316215190242440844126170549533295910250404350668433196643195893743493571175511379179035088521294691176922494544010201216958518925746344444291111361390689640943821458333436510875837357354545436813906892220288541569587999147295684168322279654565815841857757545035509349722542409459080569977554497858475073586399918586837292554857076248931523120855932601634286526694108267040779915017072336059805279552279201064834234723694210043512782193075602926858812376511806862254744541948225900164221415520217728424519981966422959155054373905511628385892844866741296649383272957140738819884163556299896634893633573811832086843637667215126757334214907100502027941239783239976807325481396261475420132256848534427404929335443429088409088412626209748599806139393531282694312623501098961920476224937547139694217347595215760258155531207142986209107916125207358925873010270917409813215398691158293267670631202387789020387491564088550100388446997662547248795190401835694320270872409421072605844146118022050524483414447668838900455281618527501632367098419924056911552716202332884184658039820296005961810193250353827050615952831629641745593615617345960592042144047309532732381070862571506953824591774632728538594817669478937912760975563585088889618497068196753149064196495187851212392891151769829027768706609848390307904870385155606782641575666612168214313788857547659748088929314446670824229658892217896469575159382775232938117011677459263848282000463202108854524155236724367434342257221503924032629883904890441382674669588647361554924852887745508926412936037393091258891406835891624472465855977906174340111810838002263434933314609483339415809005145292159924679805188683462957439292492349115202131917306643496775965362578854554715045904852296543878945527902667423296252179148744902646393294047853837954935879653955237821061017654717998826435025687166427094057477831797719865364504794700694599287492416248274121320241249162588238623571321697072074798046856318184171040219223195145398271615988968006194004884468567156942475246118690307912617714364970643470191643708917644771719198554608093568818092686346062507270373213648587807343217609965602504743178862350843382836027007526441035957092635985092899524560024602058459971557066930285441511998552788758869902884009206713933909394755568897237450032029644707789506631022125052585664662795124997215401104617530163009800362708589106429204035163505150118776834284204316746053204876098296880326355838844303411553791521083725670638158344932068386722341233514452319155101605950486922669428029745463712745259679730178428376733315099782520790502829481024948306149700469615030399715756948300723977159398823183013802286451472247337502795401975568578157527768544753406608919020520348767556006781518455464527028641319974223706907350201284321763564972568769010993043666574068482481341086059128294471835367509823144318119829904189017242098580422266181107756181164023682310984073314284318372335959247067395685514867906639427144578932296758515311200652618168052471868118116439280068234547616800085236324717140058025522305999481524113669214621503350749665418120204603703462292242576593007507428980514941117965049599347198147916257507954014839581896522104111848191117164967996535587172815576197354566440996566099256210734986895242825798082943204789435341704135992463393667881475765564640885110138189878546793988769878084780151684710515042951865089759724169761465009580638188898678408151538776166465588781604452556794392754442036237992263891975844927867912828677682847552433290622325533650933384146058457731903113126280713874671320709683223746812550246284854272954262969615723282935687763255222260030558986843302756246181101127312295204163199327531941159366558384942711010975591584680293909643509903015499894424706145564904469567559366208908759407303409296317564640471101290494091653514192312132734308084897717646681681411094654114450964496340948969630652208518982763438310472447583790072197292048264665638312568189055427319188747270931387527750642579913500431061922772549304229549634722854073089169345444587952112744211881021226489802001071763564631082539935370252630019705272240594267154260889326555962106523440622638308300876119006750832117468664091610217713158737856199506807671387816953637835242499346548089087494819743041267128356855870123039430757643757508893806903875577683457696027062776789973536384657781536041029368666493642733272284496357302961046504982157336206020061277157220162851127415098497062994169223586573695780017288039824397709140323176763102384420796248109148546817188490875142764530227334556422814204252337811031342874248640525957132866788701745656074306196843877335716152176366816264021866732480710644539165571398580407528406627558181413869065849918451701593343723599884187369034336505691366885121593330234881846504589638628374856501838529872191358001890461053676321811056230735858845393953956104849164126164353335390450156972463323412447601915289810148486732516640542724759982730484895480497950652426153761908405705985028457134043654051034633079195209501511727264442230067927073386480482851901396308688162653903605530926446036471428366248752457198496902747694162132623473788610263992564688672468415725898263703221714498969669296564818233412193234055540257999163437155782100986115534839973642700919980679431964725335424560770622895437079083402287308581232742587717197666600691446573238201273024936662724208856271945874873109283172310498722664753973489154968384518362341344648494190729586953860481706431140633938767068621077293733430475691237222158808969800539376555053664974237726149936953226026489093778815448723937572093346093248524977082076661787054331801698376874051920365596799697944820551740007992032275996679306817319243033196760875814066331903573418782609222371156227816579919536170897902339336923457084435656270697496220527094809786039938359596851239067021867611937484885283557799725694545408480519163829527048539487306178776341008430292466630706977158586964623463053480360031669671045459305931836333299417583492007972113178358382756178629347417772054501623599745966883061650815021421229603702243266873480848969032710709167239311909213703533146508253401841784634465668849928854794017037842242332880237391607182806573834934479837251033398191615098380248099777121662265032541490901288885750811196905352861769327025335360221223224422741836851173176222912839148228475958114903727413683335015542385857633635337391557356109061840406045910948557880818875081121390005879555717014723843017878545575969665530425217095120323886688862300744217817194266472585026740960138968943655608149465569654805187944560804433441624078124875549239961510390391383537332994476716841784366231810900750782465387090447308412758337711068148796339105841167958556932243043337697091307588185023060560622345348812564507076359209467558039971798195594945333828604004588518590110317546405072154943603575339320995769260935688768872449915504723523511069118477703617778771553938139540285136990378621834786820938137586458845229964217664593807716002905436438098140481037945435575013249521820682032694638785807785238088521429564198440094395830390912649346867679505833990927651869569759180548859106388848639322680463198002309063265132907332888840822020367489184816104535824752942869124610663445610528642339681568532007470848520393108668554110312253113816926709517473622176400356565956577855211144489376719506360352269864732511744464060528797744688438187876490917246339996171312653438409457537647177921318706191414415173595498008644320783078826525977095892230139801375799616384639511331439143437542356544679059896344737620715125616477976739412537824461493198787624475471805396012445060961615061569780416048794876644657854270119158151607086090953369385191712749651293192779134036165628709476926256482394510440454424283483005242860141276253294838039054186159757890516681768359073113050492861798692465947739973478346893726755287930606486762812449905600748218158822536564079062656935638485582220230125711303141542463482953498740724406053554140805316053135063362274698392375295251073435977131575843834380636655038715721172758548501136162654231703403563051693598574876894001563348678850049744753798269133911680649324358005148400481558413372412830327883554773806309632002223964369633410941260031465443215518940980702893484063015574621167237649716355714714269026512661030101075887633871097517892716564980908713273954743113677800677407085084822576081550459407215331066288953205525059804475824226884939456833803785698148077778397563847985982037583023003822363800374470966337780133736536348590252147849882424669279623027921363181382762280334423649009371037906374037128799911883469630372017145286518843182808062811361102388494137294638613434562084217118541547430090399802556599846445709245270733724793652925941061909311368487938898415596583970264661595007103502115891389795748369759641103333450972914367844302992544633132822089970477809336602089217944879201697537238583666625682952307080702146285399325082024138859263553887384002820283241563308649825649086797982871559628309595443529694890587446537131741628016127578738508838882191080726718490347986032091401448056069013662144878525010384234356277392312524328292968445496684761643490821080783391206145928277058209186169199047177154765431183056733077920623100965322251697658096884088111654330804294562362756699636608924561731251070386677371198828145333073452591114082747120320352174621543790002026351475547167361312309018532246331796165036380947171908673811872506281332953416126323882711755443186094476632651495847622995819070831103966270366517553018895657961931470787436107616923352687895088615030115179240938118151718627089792461012572824197766983539579469244676477389972781990523783395635431979216659407792411447436760223342727114430461274198914330517081108880012101539204512627480350253042674836260216821569789912843857515309367758652129867891631738423244672348174521821312904472403613797828618316652384698605441504342972787713211399199851109087109250995137868537135711100735997901334109004211418641973487214366413230313079348761760803923085351460409373958884350592990807541085234301504654827120070372166598415609415884076191450849510601262476129171625159581434781339421216496817082214003972209365702740792253061979178235444314436392393831550576453045627065676786594255340805120902798109836557213351888207562794360163894890165772465108473182603134674666739817808200726307172099039307315181852569199377510232855157969808080036186795598987802753721008259775872542908044055110814970426498848261516549239394177793322559657004336955666467108150300369892552345145812190571481443705570768888499948240054154671537965921654063861123528291555510827191463415095177199481863047042565900206391915962477511153640646594929701450040700185685154023381403279165935243926439803115712807539698566307843689896814964780773741244096865326690225043859162790007457806925268317262101660428886305327824837494789488998086001865589815164799161602948327859319581084982947510079020375534625226138957882788417181131017105665085550099755773181946825514971883013379101340099291673649063420972669301456586177505820194892056168515865593227784616790410469870903600834992228834563669660985100236106504103557203037021733756916481985247848667048160208475919782037529739798714744765488702021433885907739737811611467292523160589681571789874400067894801133196350324176121229375792408950762880350469744581119097476434681278887291436567361504180775374934974989550698276518880610117376498640084696387074603400696124934584767976841942754715012648984242640690877629257297283286380315987118256840485436755956107614680294710211787677032034393587453950000050603627680895173398865386754157349620876619717460633486423045197387026081163840542858389116113990516572149273605512617082812373553823259879764674549312131974479271456920550094804529354541638146537509636723249468365774991793009942937317178873877257565485040496667934151710004790265564097362419944261903424307045679051870987009432259080710491008809313203032528407387604480631044217673359926658471255564927992758747807473956097783844554320173489944718135071866679780985927502449266570694181822351754461017883723839806252498525490867255248876013376074262535958317378711939631552907282312476417879642842233552140087822996998539103760681714390698354406161812030868442733022944256380274330430978900394174695763018274992818891503578351585570532286642599437492708787406273422989516386073699314625508176246752817738416669637336034095265850013001771185220930806849290209822632777401831696942654353714177975321934550433182208590743711557667208916255863677631562679318687111403537178317738864881137864442702704477650555382242164598994336058153200321182285971819596143595380362300485005928610709459101659833488269689530473359109626760801594591493985327555116282456402365159916696110355133882414031196434840612420504280381797984113566239330582231669251384875747028622366843851995278432781851762586053381333636931132772515195617708972020163510972066628711476006656898118031057271496949519172413195336772840610795746034531207498317159797183288512954796397912582075814340911011847138599863884840252362157843601912738962410942102026105492901605440822432894540566944234074005634832934400998516306584419478552066669505777804758703309451630610014292470213594275242115349867308876975340949119550575330456872244975832707412913068896839377139185012888803235210445320431988171124541701494171912490394026342011226741878195741453642449310888978201275906340105405254866556177602100636234476907073346943199630667416300720852521029426289105167213996035411625434615479858874110042071238836155806799145982865430009665825994541787584678855679371306911683925051657968677698263031977381154397414590657035516137365052514140094836040850800329821518372844649889299293862433428577425006388117312168255578682248885358261588300236143897980668463913279931732812816599645059231477776777208625344275888523937030196079789263549733666860078019945737407702650579318560044187279437143134564601633868369856725476454525587997183729450590198659991843874855623838811618295343447267538444500984139421417654938667683059778575404721431425515170894979713259596037348862170682381072840689270121546131326596656159880547774465174794647051949995770907848534483388483946491616718568727601739033286957515340747371522679929808188377398969339646991781157320943578243011010795302339346008959119651668684621837271701229812205322138670694048492087751523950614225093029338956044480014581923147037883981274281969105188243212188686041009993939766453284121305238062977095899700367579998963571961216237766756610456483693574107160503536885073559814330113965770878597282960394585172196376233379088529832355321086513724327587944307056198280742603281243105341028479821093079212583888314954750326861253694829855684248755561643185574765293088671642326778896847478881289885956736154624160069137150964715970076846301183126596791577466560234297500410537992149991838154430468332775993222491026193238525025369091403152321291910599435066887091534403255408348649263313889149748117863709020696456269065982358721828511980763932193977288998663379659319599169082043318864551474167988867640750001328682000024039105994947849509331122172480011261074554998697710927129192599257648995173538621569202168084288529124315081679873658059586154818348996653380338457016207135566864621026026511571482746898187664300402223190769998402134002551744512183632479368993182940036555405146770582091438402133777025891874568607873467219868363884758243822526995041663760365796318923382474216147368410378730019391706318910022428014763609958263120099839397052836854642224359848811468164884052189294609702719012120922324226310735262252368566869030923775024487562243859873059011660700167932234940053202489198047464263994736835350530587984548152486325980115738470975073592709122376238984842801936159686274777223814601217741851252485494528914303102391579752160692111635714488433509870884901149414271086630334478304811292542327035826478007384152800468226694648054215493648923349084154468899909427572643733582708207778337707001721365796048595737682770223433990842398758569304838118727499395334522726995915749654366049704346292200948538553539786017728601533226174114313263542978152233274111361527999026293304519220864484927581430569040280953357538610658869448758456607698184417838118538271551552543271088663524394649494866971451978713423076229939579444082744956008459446744426580819436752225901799562463668973399031636531718264089921522019353164059759072715399389162764175057495285629470499080571264658049292666616380680603545975016502098214363964266298431827406849607413568105591937733416677421221663050863055477364510048033582217282956136516579061528466764799142730230650105586613990433960972955727862587538337079860396619910591356546643831559890617480221283769291383359704979594374079260697148313144542784049441332410344124525436050911267559014201305933364535906629217574635938748283092233377625810837982428269942080784343703924610910143842500738518018146688935347645192020952342055349161762921740894293995490872311150771847240130564640761763798017472023224315963422554753038506402867602735782519173671162364812721845417958783371601397214139397987820183840438301423554073512209104065406421796843496940719360350706972153845562560106532632507309473480381214462686304532245594857302108009592540914619457741886016243954430522232026987343439982218908810852467536539130004844566731389884863229688919768237473822108186054729131975750442106825298347169316177023065142107205221616875939306688532583624152625081835090046400825134797217050990294285568053810793827393729933945516517705520264090370388460337192310521082130807308762697565040137111761614646811753522572026824674292316288890909985346605309348729656996469051303986125083149334645193598812507126167373594005859095955353066794906691866768595791353594164141279958960400258103974456607434325768709320567290473253359713412943009956251973563792876576250257036851713939164090814435706519549368919235384689710848735346397431524958679761047757987275496811005308084155060977732300414274483861258320365641665574553635140798837418010186478457760715819211432952265543152911508554847469678587166916642642305187567821628560570003374541711826779073372471631156072554606171049960846133407988218545059052421744666123844575333979656834304817956515564017636151238827131671699461068201333620010260022730476052644961270132956892015325595953284137789590317511987093719513214826697342356860821533798548710343112547930596637148628465097523716211547278725010698146315016139911279108015965821062399433298121378396411319693777260191863922045981248565651454465369017135626454500780540141311297412970528645821814443968651564399967560852834081486738367292761737908060592208385915493487690072822653636167917309298804249788652383680460155722539507321711908326343578380071893806865318319042545128653827349658759179156080092902343890822362577480271415580448200848047324702719473200494560950641759230886197371258277837983509883938151767130607372870998786228044412857666712217256858774288856148419266468562337393393453722133524301237924770255247572081053923611628882199668037802081049612332732031862866837777064735707265415367541940965553354724469253372312850093696015296006618200505198829372991595576522897731556617058791603346983779839865726902671002531929852662035649990507739330226082784496188289617480470317658220056418484227173024351700532726269030100982004881889011180593503338345664823938472567099748536374991022864210708448776140455903505019530495826666620214402299582295772011364984656840360066398771962816432974553487965473963890593699772362448772977301902346055856984605688053619868510294786574354228342273318314514314490710661493613548578505228270056900180129957443519639884115408083222994309110525961819061156050438161528321016657987758802882043514807660568997369327181018814261831634784835657221773093987981347884119138690494864333187309461266530711190481669638582665868769676217414752538217925360057541440192733216412397478764375902740444872761043223358556288707266623964422016267905183770733966237490765195511852555804251650723602678894261122420334456257004580120516326479478162420887881643985396156174448921102952729671808869852932753643162682855082147008652700679916785625373915902064060262229999737621305398444682077765015283052400738866076288103191692353053678250398724226072677128340425246093433180136998531796630765706477661025707866452978859197821629319971204623861141447731145642012814248892551349123850171840128967392587380161859980505609282962016062296389548278757419697438188539891576464963787853401001190046775193040156175325539702486037371986182906501558974889933249005270844069806845860502758588353620046748142843615989951414952091257409461247988355986025456876937113872630646065386749563299701137680183307377252218362880433481303035812273662348522336787945171288377656053912008831610232378444484761018753471758417108417949998036954800350793619913594766216395661500854066543990790845260368187615168987615428448879780850323950359431580217305915476407376661234973794099889832530221526535298299462789358160386397835024128965034544169443826664261646716343129422350412398228079615288183418842473282641702525100538415508107020762561230881765320336643771160392937748563286587584964323678411528654086844844979132117616149598615351018612280379951848102417643659658509803897914249875942458271745516236306376855723068467591167856445005725908234331375497410724425148084034969445597776445353081088103170612375453305148778525266441511384873867020317807389011067122975477632433926690796086659083283662515150740592085004143425938486215604718681063334489216017101526695063901711412795550224768281683639256953510966714825684213886802818036952827676477443804481765388155043719250045513850739284187074757305278497915301514273775706548575103842051883315016111265414048830179974080536961519416079847101331673398483651268178387382525565845602539829787870969856687292461222268587859338708784833711715423194675255441018706603139013262620983675063775989714750623848001377453965715011201875810626397466139994527257405207118295994690580716224687358008185596286095582232989578402149692992895484808551390115582248557231938120724981410384685388613804659433727189528860388130855489930444793883553747758757770036101786444164432435831760471717065900796424133221433754584080909421082059829102629074858574481373710749129143861108711451468371480242590998828779196891614961600097205352425512639149127021738062296337876405544692949252542069260304061739836780200831237372021728302119998023279662734589633803121139888876634438186148293914493507284535098790945463046363620014012747979671542865373217879466327726491537676129582562539557420300250451459994211517610704155298949833529283398342397732668489922834088289333204059308185227595001656952555578735174133687136298191393862899586675203623170404173152388231050362679312822706097016369401680502372741078067276684391561069395907082032394282641464657810656476636830436103519274470287790719980855895235358698107423345569224658973393796462955298687851632673804144105038723184613163574565146126219339535754979342814737223779906690221766561490134025581984518584826202110747861637139272812267127310744120783564311434526182368935123084597142154454165362153433753876512260003537669982242452148414721991503492276890380574802742616814537674652235254080794751735031475257902363193762832720296661851799704890378517389240747348886788521606641601373990102736349806303713714774360194834286986906110309975965107327567716557207231922768188071095730733021959395723797043543224172707576494470306603454232917090325303251525025083519211836767169859892429200179330677187184435694199212274828611157036316031370648926484075450226408154236443915873249667489064306088944182011834792433163254403011687156966623399441887835373639545383071208598765329448062006039772415816573596461680500449592100049405043629894434397805701758950390036244791606186296068366685630638001045507084385812857448170061845763056763016462006862643806533194311642152107546325933145394946414180535566607622403874482581551179652593723735066987991461784133262848300866500633477967880087135579986542649472856043018803577916570380059537310714607184979814477891939859415018733040361199539093593079761554855011913120168891223871252332724857352577373722764585945317664119308833080623485132729410783177731130581820337467716651626229520501755592920051256387833987776404585340516330757744071636439984199980700934694913789763576971296037241804976295424431424680215679334707458765259798277460143142643226180463588277909940437245883031772062686528528086522481327561773704759396679595714712832471706083257408302620248968699202868689404662890915715269837333398663453574034443382659366799960044317898151780929607009638148038585826391859431412153568052329633845151817815654320796729152217607333858471032526915543514384829269454041652276412483843766747074841996695039009012466836171531373261561632232478081816891658391480827198205745371725966066907933063400258701503426266410727002008895835255401918992056090271965176926216335835294100456242913827862697748372333152509262585941657323210892886109937871650848657845138895055866079005846429361715048751936399192749197243425370444327565899670468990048173054544738359522626840478154371911952067208758425133680292372243970416073916223273033099245844080716803994099445901833120152266813721864356243878665096210284855349363086728506056261460147210750911542989174083775691192273269650509937909693655243442217860671447699788054094053460046931966981304660859407661846065643933495739351154277843500181446636417771164686087162366871894893681183856029854427548664077565247497995281415411997646081255398085222388461906858723208356272840911938816075369873946818997940467806165160765068187746643090013249915976157483692730302477529298398975825520232810181266508964519785817919817267486226210610293434122908594175392938259895019320986434417208385211236460950736160127694389565643198924632071830894192008911127056248240881830386311134117087432011453211720062364019438395683799954923063008553323928366431624679555406476548572767404228560206800293736164061091923743252718971931741706169005525360760085820607623993373891120790234629486717682245879951490252177421767369149286095327708006558143394743176502128924655513984086051864348051047643051290987971203629783616413693961174078039279928526965141752323631104858229992161543871745265489513296813271466904453206630039064709703521759739637209635869958998573151265816889805043770196934054577159154818193739587764025326269428863963512737691041246390326197351450705185386303729360210868792245581063689361479787408383192608449678761350330678961402990777588643047838051346981702803258395287099143439464285979674697715444673911588688430403895028771061686482392402739635338555430246787672289760366528267848406761685039281845868840116427087613281737215409155130147254852105117006155744013712704773871486082079131042692266377723636183582213060117069829370672715843576577811991243539658937553353420015056052722588145006660512370510912809368190728332035138312654171267531903171523358763444158222827799092896281729143123477841216817917076021036241431359121023086156708142571114209933578362126647410722563658927196253760029893760447587707443970984948473798860367515465959620371997902450350273362454161480706570094995310570146188763853360093686804854183240388515300902775446482757366311837386356438667330220029314832471311329098644539258874782702270343866596810669410594024078175440187031230595655212177858843238946471387790290696144949347798542204190642948851898723963325708581768305086548012706653808225623701033012037847595647823539715975689871091035923771736329584404937827709344408220803301990746614645067649782936045795296220612513301842469506185771977157749186297756232771252027126094195705748988442801245340455270792570891576466654818246158025551872682755727250762237767334830614413789945196043394669926940168575384112808173148621358545383134868310681256162497520981025103764111599298690238761495708530735268281083300879017664236813843255119530344481737848788724439255704768703675118791355700421391389578285792206943003192809262131410722347103103253439688926021185988086399964065850419768282596092017006450661931784581897753313723363723447208042964394607378016254141896212806172181105541723097447717997670991809912417248078315815793621102882980262300723673358164609691515147028256303797788018179438382865975501398632482988900778401347436077468780030459642841072113170149123743373391479064947501201387438099393457705326307453417759549354420849289932456288565407381648088328430531502312465272620502314085128421912856009485171352697447482788567288041058201487157060450345171293130198405593211087104704331050069712190321275328771672716124130481549548339886148495786806767546003537338334773776849270857053403206331193679113183416718997608202770619989933891317824253823731645759120657080640355527906782970087239873545270380069354409362366047756935167166079136372975330801460338302021257920003133661278059189175396766447746438533606294860129429319428100889060142546130907942104568731066469368877665728081109504834282434110376979845377815954643790431082684211799942755003710138201216724750396321571792893922824836818983729516270672247682418553416917061017550722476044361463219096533952457042208881365703109912707187448065418833111824017788760589432721888368683167710780622594830458121029831196344289456523029863440585013483638104735402707763267530956483346630022572023062384060713756857965296927611590942019253926413264177595460822844463827894191280168822165438038975528168683158804052857222444519848348900625697996699794362476963011727643105091300017248206681410487600209091318734172712804255384055179001221915108747471304111959044719683043189191957763684035490481376694648420514752520279431349489087308895148184296759059801035881755212304713948804474751795923466479933760454870033920945265275618825004516480211591994923935401446393999187291219307005586056226169963520996496115647115442331900572341131484295621951772617695512967169005062175840011907980824944184655161648194182400016501787442520644603465523569406001554472060324633338297869578692247231696351467854651723771573834822575156571827191024944687530888024515743595345287435069796928681098907524158067242661246492858374499042449693618734038748118668299805401468131675970199712031882787494131198950390722647014431871469661188700518327534480627796698489296516304896134217657347015853290127669488979339333607328460305023965700232161530558340286272213785550575854987902469273920304016285980786035620294428667288754161620737830046789021392103758311862756796524209506018969073353155988623270694598519215772996122507064117807175535438901771284070705543042572988434699275083053112131117164214684878553650458086861323969006757620039621299115897605862453668477684474809884885633681422064822760265412986853260183930679160208812857162876951869614990070510912370302072197109160261207706816789974482644833715128357387658947106943760449534188329884596933970309902178849843635002391343617107477508699024803317102578891889841337032014184694212490908104367812257405963479568344793285823111889722559990606834850581677126346620522894246990180502532946953506179498864927683813266653484024080970232518052394016010430240055935710825882785465654670842161416370746149163766245434681262510577798164758465385874402732559541043407701178780588520249028641343308897288142921646342096470987144650565653686054451060429871328274885362306876949875781796133624186918390083094323279064961520241317093314527581117939854849021452187707404092691821572989050440904468931732245085698150245693087713270563801812984110142596819802371115162706661189905646584121832312071924760036108434163250064150046954634521457182439795205180177168772361552727498382733814067169304997580275982188231325522273212339459633033422280534675082834291779588292832191871765427266932580315827270522498249220365750029165912415183188546922954342585412846057958872438210529362398513134146560881855757810049161355084325703192887627019390384074260188336947430026536356559795211490123365316165518808831488550671307787140910475430790007359391003793046504230146801642575742755191925322730602925196004968158330610961244477937306827867969433710503998236694761698936718165862553101180867364210803144298454463514874040388898990840845361501569461769443095699699388181607676988010477812906557497863098581361241407182134312665562884584521429619575542062059820394388701255427914385456426389647719959429823933709584140953846950668686238076222057676014683147486485100986234746473247408323739248191374567723005311326046725678558993885503744504126687453893800941421073638761387600895474623561218582109408536726869180581490715906815756307415887965581561085920162663737458511283334470878648123886570376600098892971033396206686364018856264693988596005266860486400926518362021647601161505184592724204273791080632511328606607114982790812881365059679803835959013486320480953518698651701955632631741277932437032585752194736583924216433388765284811734810058976957900392412180839737195286748563489381817227437304595942312013353850395413920014118044265106441915314940617409808846269489974814456294531396653255931518284938101249168504224529810055570258139817988884795712933765508690517147737700815553796491043091907198367920956676602919717420302769613277411798865413757174232223542768668762847180920436388093059452147387026252794251600129422392579096752941137100435758602333204836208444511691494246353349285729125827254535392582402721345562071025640666606770829616081714447056565432114134371951587457873678585920049076135978173750919482924413174446822869407255485797154703491792367005480755002431207923664346174610018150747266185533402385174331005516118809615264386970816032307923501490275119361491195905528252241694702532209598963866423271342669518051772899094075030611860516908920110205598098158188747953132616353607320995677264921925776078257430206788131236983148252599366604249315734924855881538964151525282443840678662921673162350918957813977107860112596816512538782789235681922088885635677483678078707558200141032378641546865594015017377255006410279871672532109591070785907129201679151936080942178547632403504570587116761559225664426334695714833046821588143231826037005405399627869550838166379077782171623363437891484168039494504152020878965219495869935434852321138691139812969078408396308676394121329140710141865946723808150169033047407246671298524500923950564292448060223970966165800565281268773129482192658607887369457006328097975714204025870697952725170266143369562766592483594910045941134390927714848960064432086501625220239190747440459556920862197742041433573092111591577663897181678297645628059729200520418244192942657734088196390320546387872143413445690256210216539435441211483365361787297684741899636818748897233522303402071416881710071062647250669141988469010571562660381215899917540460410479712028867634224206982215801946675376452745812782521550112261699441081451347722967581047822596976712452862604598052704332640873020125057580017571304220274803292290744257157271766238385093023861897754371711792292028746454428220511885837391000228615328174164546091280200298779763400053041813152037122806873255463976441766106989930596552280704211443698157595137592254543238421618414603121919650347556973766691257821396649719377077224277962720385300701006074346484868527812974228476507506264647433134087172225642039816901604665696987894132798673555134787488319478092609837427353661058754756349344841154316352168753719333491034413723833707449937862384713083468409032661943346669082590531317851479823475306301317584293933766962037733650431210490015323061740631537528517977987531961372498717994197304640138722406707373018670899853903345225819813123992517631369355411009575446912460186622915337321538946208735985639806109787406056685578003169123181893296415764972008728917945388900074168553092560862961611059116684613681798673036028158821680265614466571547875181866947523240895864371458361767576536059856572968851494334227069752675414765286186167851344571097145078154248232368141323607046900950108960028830636544755637153717270376142335365475997483020502361801637866641110854685672636399798618939686071624045838981066551808707476889054262158063896292880476354252748490043269720044851532883022291178542346416269313377919716516413161531996004981797740206505815757951535896377259123303272029913183704163194180909631271901943409436737159603553493709055861743422216865405249182425500496157932550343367698279705680548401811943795790862807315774103349928788196002281047519940783279439870207325522368511217360094795584385643884197399109225737063055138502031858240344562870654001685655454130250231763467018509644552800518185402073540438569909771358564187581917897224026262010661400607561583899624578050584904681399973147996088240895654908844498094461627375234602383505531683617889900860217243784845630687432734413718644971700695057930300472125194618146768717685600852956458745325394257632583767649284780846873919768535245304198933332400861906615541519573329132053271963193399412803470675812567795767269819433322564012481097016910154905660017572656607339395982908820605041553891251504338748711620568556380560310800460593208950799173553176663660157298433134896096577105295404598939267425902926006439714955239781413428249743270072341918133587065467830152829417842471080309709532611160171817904259600601472500887753111676149209482981078652040615324166176066291329578288461040845599222597550660362490962602534898593281129057669258454620829262005413513360131554352789017822267467063616400796292700797234264454134368861580710056604736093746007177110379354114412354690102408344111020091583286626207264900122998539449430341437127249489069227606401711607808916985560263402667187840786687872494586581462962944988721830135069397516358352321353076640725254698510556302792814342130672726074672622872904893818884074474941088248261889176987600443420008431572724209570343701717677549057800725665292117464900022245923285567143645016549814054844141542274760829566357790890815718589373553887685233435029688659497507604831004960715672546471839431142464788295626145285160731589345017663738433721814455177911955975907947303421180894087652014216764251271610328631500179737101821114010183048051690162262796798766492922318865024866669093664559855783412760941232539178937953651942478821390718448209734301915206995895199616602462340549844621006849427475907572704636314835907189749141805122011437164648436094040084086875306191033265420308536465543792008194033678977752349699746847026791794915729841031478952025852835159705094560045663134570257875451979548180089346182141317084345065097781087341251586954431289405245957125910865183875569534170873200772620170132337000455538988437742478888882167454785181138466141863715645940963105761985125595689150518882785721805582613720653484336171501190745064774510130323498425075688719679002024001328504771261812227040817861633118260476236855535242585825482918141344991122661410305782023601395379490474161271417665202964876533221817477956106477442231950256303529038514240815262718119642620414132439065455453949187324119696793532967128428606682970897573856396396203397227345089045803754857871559354050493374591033584326985330691602232474859053424033431764296921801129671684048031951222173806533241408564819701657579456641776770105012152564650445444669451044765044140812603345935967690784522391020472778836042207297491136162374841220626203877298155195391341191629213350191757143119414421991575751972505187222553485455648005364760558878831160102949516598808423397333470455067997205221929758649861133883860513187056880135011213307146767450625571611259375117227709277533259826319492388908096245920444794615830157345906944050010741319215577962590001205827183731998713218186258497874862698648247731299303939137460858842342615651681425104326285378286705647993015537179029013631504347948170633247887548113669548330678625974375463212377445826744498994247468765714926894288866520940992459807318206298363343300212998029658128091850120064949241774584894288068211752297969477099296508156283275728608714874893079560511720033169141085756374086353538880229066427405797209432834769689168084970897898703848480035002333434137602749071728886780558932337868924458698947691868358146037654940210919180006488395236010484354476112318228567411509739524626159560642047605993712466643819190639086519539002387731257223808193277650685865010249152816652329696815539791728796415673660954668776946522788274919315492377272633202822460993594994194404846521477401336850578732023690843788342939025994466019818550097440443441549636900349586270048847694425335978549440007799256152179910612744460828723002336494631697466590133854919514180704792443924241650508705792996127731041570620153726762974897688898833358432287605269563962551535020079405282665818358338103752707077945418264252850096238026423050418184042335585565375009455471649627275779306424148229989595589555679521714483287783575988003445043830712251884346552003620772070074573904054353178644117694640796789213842078899484877035963664613902494082477960816183741854219259110716895348287200499120514407346464877775410797721215178988194318540199775585359883612244873071667488289116638563962463266148395597392989773890931581219530296622604414351281573588238724733808407980571213799658669593212174061766403927682434488491799003336413941382349234336662690022274988016663524750291408288781777706800159138250741146597778403121259418407879896019527003278459412761348771443242368440558535847812800777603846348955199635096463722043432949023061581115288222925527726219277796872069795646778887045305390234090087617309139884230833436762060857645006007946728224347739750942665542414633712816389825564192546936566684821904967731532428385027645450296170620462546695245848035435451558268554188051354223510937753264169455359042068353870103225539333886057750182589932843025424617107078869525085693221177647365996001567891387249950372607697078082786600058320849088280465604835233831353488232143629286457448281266379961235904558189996010431532500146722740969834707700549851867024129999612621560917257090526185336768073461448298548369336577288242125092673769066191799314011147954957596255937408209631529896737717248326640365858184189056135183644576596459668437914781642260484259714349649025653763192018022170871398861709629783213647632695546540119300568025956020737072340356337585684446868587801901714190581247168547506623710969952376800825432124236669455657721269904836762793134168844491451628550554328236551418360796041988990262134239681141725938605701239655074524093694151349615444142579632701994815457249900418095382404091461581769573494772421112672774585131751785333554418525629626317560694952807439498781649483698468443868916534482750877705359832409921655613926207396275634256807791535032520111442887503254637706659006416921975971662864281055530357935529768368741626756881123747103339685561221560294121873542599292903650879111430414187457748503479675012121148860730409232505528771188762182914969607918926562658693631853265025368018541068639104328200034754452788295025651311064548988353397486775079675222216728526524151118790681028379888791242183786069553260363148105694291978036344575924006394844455646902693352471315165245421920679459941201776268731522169480536383257599015740752385439771147760689394363753385137624802391566254321292208494647991130818280794020285256845039246699340910022558080386159951063359981383405333715993551184697733110960041981558268085911997649853557404037951825169485102255513921253459769110668163150574848171018410402340659339146421336890079658993754757318289869603087405852621259972548738636210612078770049217761005144098019239837565211113284194652096980332319524822707153340457548527895978559441096102319927979031293538881656777920012191331389400140278436058273681489033269874980057441908215048573949488362728713105671769630108136483734536867410353405304686937143657917938629062486869215544559615906642852329298456216848780855139200242768205560055428947476555591479776966885154085059946484977215744669643746069572885791920151784478146237778972860979085580734820227517121371252149176033269056390037532466549878653716456008054113244446359159508368540359484805208318747445761564438625649066229321512297890722995363222924280518641907881140740092648390403000474936751183012517638865379902652434490627552489680081487997659597918548391288923767510366222975706866389118730242361023692368747638914652528748296001413292523989898102796233199034977102643343137483782986895476364148720788895438798809123994100672118752924848301055265761780145566784653007957183421903902271263027066027944116145749207324862533241107234610706608007482682337999594953019229100947045191705651201165587407672400978532415986564376505251215901017336179000827581540395942667686203906357071906621409447342728793235150562216898446663042714193405886116801032234432106305883081647965648993102289925801990081310923216613242775917066514041110180709769391910289305744823758098377851081705494580207836177707217836955896866183765201736815734707308690797138058338269041081801755623192515227955178954494275697063528769724116762796178511066962326154148424170478014552310752169079880432152463653707199763466446364819684290861873232240779251274698354862113271341836698494236271586172806408134144135491221823416634770425247814694356165696863513128970813828675762505298857292121099512484151957253532359147217878685501704540532818409992552592070760144285024612292163976601079461348683908013733122496550999749131038671344890897225076966930043067795952821279602338689205466555799418772911658323004495174142388791504248037154233929626249134912184400182995860356891835119759597070851004084693099960432716645972540607604260334621588207947125843674626361232310496684857963645938471337892918829772267336132468250754951430171388904753152779972617105326158710911976675349133432679233584378361009053639790575079053957493430116695983120216659551167381313404351891000716695635612089687557191835897031204479523141306585475836541857923111130800443723252403291637091831771727650931835469002608859146062947590393503000356830662819980241286312537599222587603209409363775437150443982976068300552982551589951825308370050224625306358707918685830298840174844626563147011465296057256278481217837054128841610680766434037165106208421896240573379002128817323651371452821588884376319336996920604224661462788836945250810073901861682177036444984810342940640377335635760016051979299490975812258034185331969407002862783206225816601354826321512815361586570589649532060744342937711997822358669682671458606165397950012939381042747788047833966165957341257182945878145656515551446008402326232814527284283061937243908837323900965364310857214987856461703700092371338957075803667509655061705931818254550410660548914396208697819996092577848850484589569635651647585955784581850388610044542459222702863739783476348480755059746431748829345677452344298494293595736075271839383486698407551052563811318440217148168139729045615214303876349122956592996863060438516335561686838921523302672608461943328805778783653381821993091758977127292815564069843606407391006125125405708729005379907311211228171278119654090356598464400331457583951470579045419359929027490051336738688015467804197462412238539231258676484271877890962195952160062373202434044550918325781163339863451053877774831339092521094870843719771143635371857747463187527347043534670075144439983462267281620393540001575957507542803249111054194743445234538203559092208243746974099789881035254947320776085088754695330996220774480324453612250228552770097264016450592506688286782870178156056536020799077819145984584125535348233298040280243247640614093923404422683980765386088703887056223104060629285889181524575863796357316959082607144831473259141662651359823343856320790490458938660063591134254743109413796639365852191855731467456983994311362054501941105788881814893664460004349292713709962496265566701345316191507723562404332351703454416621399714336839734069121948349045469259035138498430301448343045137081424062617453025445660178792686877688599009994426151119760611125878456267706281768221325224446976900913856671173366766255483475192248059572986594955633144058092527393514929544137825059895005757146464002095245426978116615262490442233741915779582342894564598217199322513672648741312425105508141160664572507600651679974810839991656302846310677142085891270641427811776296280209029560862585619697305780439035539002503784074477391694015988718556904714229859271404367683687613259988160697199148421941927779230527127694545054424651443159889490987696502758182912445656242525842511253371852330437906487755390368739853319514906345776228698010135925916491992644146783744250991000932542957615810490297472746255948716177441690467800533054086213100858714420924339308160500772109136621573032152894372875333587792120392179067999405792031180244442960594104813877697947155989379807404074368094265910440649504074086767923700341681967724839805755124862413086509699121544462319712223822612458006450769411521863902759694085408963952736003117564668385234019681484690563209372876788762592513672388715420294116123792009535171637949628322482904431743034589431319703197585575287287123160278434148593696947306802884787844439358848318616581361024223065837089701931960844922542425397084556244838516261860925116975437386616223087294552704133979889306723320495810687526395409465324185104549504446562243914705481650389894407426053437402186909918807459132623527053610268895476405705481754223428635178860413191694126849031974383768666299120622846845257427010866949082677995166052281886747847277789830483569317796826947875355316782936006790032293960110078732710286863502228688245220138719005794857401990375436633566429030015614386171281031246318516016505638819637773061334938570484051897540684621678407388154091343656539828722929188993712720687230276330555994526008528181219871787085951844202453800618520500323256556812435287404172847565586068368590364905360624829104663155536591813400569624289405074710722753571707990750703202811858445389860896061517057472529466647027207064557171824648777390082526563043656615309188262047201239349341747413027860849955286153138254225157175147502619392923927458218806622323922384813027954325779742233767448774785450018871071188164827845347988816518493366285973717432886255924377289527607138275248226450606387433899168851606999951828124971662189686252656870818891884218659012448262101000037324380882715900125818487059805944428632426714676870594526590079612717826799727450516460440167953259548449082722432436147687237949385478400743773030951288171485308773001410940594554488144920005213997023065499676142383500244767223774472728517745388432284658474979894374236433990140558937405498173296864041107028750845255409455460550193062081042302357491406912793160579814917496768956091399118878889922745848812157016796731236710549675134764458085557339173087804491629066892908925534641859694748728394886470656708715432599232577033718231777803549764694192281377691081270218315764201697591106635232797818541587526924130914907740821487720772355283856165335627091846736534425127455803378947845725115893867595188319870855983714003805287962577718219467885668852801279475392993760638427950697126872686769117799858314939397598413182014011034926072561388706238331406105779361139776009281257363506411488878306280209945049194931261987878898761104947545654620138129938349193181420765142143336718736556331823867235912517199776432423859481453353125745998127381555265776519047473271014110071178204600172128514691975075526862753352089655690468384091013031945912021865595399733541716548911670729517615500880950757961836802052959236175028301325992311302952275510460200789739984274997196022942310374556575481720659527287209302752863084289238304317529791342749374466221044356599408575210759766467772202316051297270658717050497387426978910997885184417541703615810716424679554962731929244375704289317213050321106221902496712897938553424579530233389969831097309567489159555335828646311603185153920572463459409725841192259544737307181882291542348877622370169472782275918186065225616412688939102136577624913675487992368863912005095057872424126277723381912261694086469027075032806418976064282950381059637523542439011314777307487984200299056387000084210141225927137139036883808887117351382059903904964128510318930049044373606991043645712063627559835661571590880426631414891720656528937293837981569269595402038705169855949531770548817949221575731213361881439741723769917918223931749620198982840380941819792886304568962988559749989323163038282169376392560209882830774389718167185289728417339070497686839917513415171983666843757779415286755725232669391401270618953261771081359037363424460998535510374313811481930476666764447102454680615289712470833311786285138564569681654949763587035498938818024662938148760575699122262229513414146543998826027491293989043616229134249447928543154675452988962637339326614628109299899924168611320653330229552449337387650754206389541608088344324824089926131301473196626481139637598547401010151514775183017194081075036776219569936422564650193605401618409285070653436528515242165108979634935669933383790453711581907349223056980043121199206938226885646980707682333023862614398285527598443218081268593134717718851478029800574224090058834452202776323055613646212044900199765560863251612633924917419587530004924235312590790084957024684576090915151392216692454294250672574913616915118337432519831953005138953860531244772452105421682078627448399637960959953161772538017504224985522039117207510160866576680155338710035634619285034607106765195080090268777953261363827688656343537590164874186130848450085948974338548096458439089705451006656050857965671812415099863845470633159266098682837001106240273238839314320820679806583513990780228645727301096627779944747102781543889131708327862993164976611152558155211789281047628058661780952640392979690805645295096436255135898425648995542622312679981305544299265115474496197027073637374158741218277892195961664367531517821117661150493869461041524939745967466442044944269133708359872581835830477889379391031687482583021452305005270395110966231641046161185708282473549575817461337361224021387727516606721993562761913984728335666322807335681392947279961560671298653198054981844506324892683857694730107156610192201731935717989510507723431816680845864279325477455879478028241757843486952109649761736513494853956310431886289941034086743838948371159107936176632272169854837715166071664401227375829166490070620025537250101364724085798592423783580357125761186990460531766683749236206440619929749758772850017802309428309891785905616165181972021681068163052797584861672720254363735591800602854264908927689934531416961907778526109342581687207256407131231533960072804029493429664413057648001706718754099005042063771821552302410011466189100384093730215538635863449717852108391100240997428616100615605516927305578668227319240141048607604932625860335435238863289087527820076725058746913640927557977600825223698973904528849537222566975772172667328577412562661386986468770953206082648384056627182763322218824694835767922808423705729443699543639802409016954321344927529404961410879087793128574523920933905154754531600434023947703890554084449009069108604005185295489371612178647430039201866572998117022435955171760717620300052525263878722286013168389303858349008799709043189941878262497649588156882876199985492770501141883909724491058259907477545163855497895182145294405389322327097352216962333652932897852391827864082221312990130291849909530260046064851232607346736024694796590204810567378092376484646231779881352831903368956008572632360083634380098895829307518887037939400483027038321142837469721099253517828819615611539078832898169465748618134352903721480424319648843188488846429669659894205212306949853204421397914457804025191047502619001543278440155906620250413793715294833831876351307912645217083401722427122732394085583943415634099908080431530403218773615409964467304327083566784633958690612713198515264401637713951870493686773530329731028898676607730277793672834006212997086860854204607045542791381168548694287103802371045270121197688487038558093439103391207540119556276067298626858852927267639021754488322162433785394502969714184107509340260158963086720583356517397647728778888866726865759302554306323631222883307567115959973601212514243773071114075688679810549039480044589012910068901315566174054045611077125667471562307231137752450218928293778218938837065569169544041281007164267952193098131607882431938633770714294772871253918264234478909802297835039200315157618745291310638841233132782814689403571929487179249969236560530605172046112539241500839212250541975499948481913626199935909576898203912700545335219415046036015000823589276052247806052425655376802289939143556081981072709204375521215394789644719587491711019681940495786864281142431414462101846883169894413872746627614914470936178145887226992951565492670694105336373855161655462123745502781378315298575164201118143850405303839258764054971226973279661401350607473749845805877305946411013365094147480060856496799037622806975819215102805889829483862491902437246159645733709894192162072687673354554599485392995380630280012022709442102633621886192577341622421349358794902185645965151968024682707806221487231471457084542867144702379249702440029430766999533612284133018571863084504370359061839485198626309327717947605441832964371426014220999117150264880011808897454975792086795879991542022270837011721540454051672993477361879528112161379186454727293167403450834299465771636567913278263068469644741107014945492582591244013085066112575956483102684747585352753878131477071159720377469422880268727894260159515465453549566355197572055056864984627573021033921361463729427880948263667205748694912580294796960099596642506247962284921068577142162693314236674260801578468826817218259621980707759669308083253343435289812064645858030518772725576439806340705052444829263249663819254455086768139414290337777157564339690334369684302147825016735641801013438586440869941143216563885947373892891389158898264741454275377303622176922964386569775977451967329572126105756823980975004124933009989376893504060844399861367518985321510248365291867761830516987522077100222174007428823548777985661354942527709966907294890579788776351327029839285925239618188780613872088099823652054868421068499811398598264529645064281128707997798314975969093650222582304322667539894111820831820019035981662862683175827624495480179064155980569710605102753466068654363260113096325874221278107843585827561049743105067713436561423225372500316092506336416118915156157617654382709308868599067639147028625457381587384446629421850900805717473459177682144280140802301417567654236803597184728576891439200672941309502235164110548272092254511483157729997307839324046553568887160787662199343978656578880133260319116062087760964652005857421991213448392434774957328723330396605986259174856526923255765092671021464866216900647476317614955382700727727815890183727700749943263603153440293493091436258906645418943280030551792361996739310266446337886236436959484825016655334174403070185965524872959651375962911066439822859983180832612217691273399896908715946305679418858805889139148892721437958236899186485295053981985110154132799279476646869512692345202180437003492465220633355030971429283797726077166060047889451913992370010321729300076104393766273980579049570131271410939682211195221275437400518367911548030201152602238561929118429995194946682017943122577108196357920977159079103012820365875059534435747601928431947161498017603188407162208999300782656462451786699426693106216936044546712864960306846477227171520632084307242999810336540569416005066228272323761348077651858327659820445593041951443012233693028719862188174296417006433014656330179792830243348170265838892022723567753595059878035127601962339128956593757159749006125496919190009271988816808099083504347460297074365108191122738362877247350255078816888537949759248511984447002557538195054433030488844577571731643841129113019760606910228504530332630361107768147849560055760504104609328522702669215210430722840035890191994184631546128136602171440332159068311627424067217540931097382982343815863579650879561084355302816161601436816214135786008957721210705534818344748032832623353762485149030926439727869956582505800266481707033134769237218668776843550862450400509758487996057657944879918533777400689180997953891721856281423456492838084809543789463912704368992069250658208217487958982778626742545122199737376711407306893340194633641977857181314670847159653232883130289515697837433281801557532449495649688743292522974462594382175292153108563152563082725520225249216064420956901080423436945834421141254853513675323684688169505731659151050906122455882438132446262468883601000947240840639821188849265416106825277916801822917681025085829588136099472632932003968434845072118428913452481432704624102370391846576651875635015706449139043354269884240515398678229859646210573904586901121694101329138164200514131771189202981373212945139004717227137181114359891336616362053078340903247061773826794057712047110933700973219612821332174778260680761420070561325125440540516863656298310278983313603795345318849422478568394343562960740332703091366069694389140264760388652184758988022252068700226303609711457456056277085769551629533163431993917889210557779607226639655127324328764368766717270214224248486828771696503817274179299690523534134889884494912022893638184354505697550125766450818178374028059753506550244640851578460943072651691374362113161166809411175960334592152187817010805844630981474561235258100348170722051352478626309903724138080763504881172576055765241290261438852910337174004403737301683826786344269727390443608122564105512207756035076079933754005211928106693120898296024474298049756376117180886846289594677083843201305251857220482815041171995392519398025429297359879875296094325116938289686805600626010575434922238353711128399122682804463745090586179340562681505933461934826678977023485709237952754832608543791054880974218034014314426175700005286838059536935835591584655747175304482524390899457785719024231533600029915866016822425891565983820044406247720670967703535277605008401164161396333105782440741713248200145787691600175418034716166146225178244549394482051049114490772376279872072720347228946270460044562717140664626056782135124207692879006016940340028812058643799634229306218794488092129607011432876306009523047237235216740512619385970220435870882797895880283050725542968930164939885988726236992289069271316727503245149006851215602094904177859003109489913451872793387719961791319770277414534616445131068772507296615456786086373196355039253841821712271396902777449020210610578231266437375657621410929641643953274357123669998886649928389400358821910463808146860657435809024002454388195299251557675502266396804506411961432062239622154977287497799779824688003757446240068626397830804815558320858238445046367221070647984094044257242166820712693975062813936823964319500978814270914276799470812990012894445703005744610168810030616525229173532832622910540797123304018653478443618519609464814622805641617276534179414801219051015503694975840693244519707150123191636283825352154089890195830883734045245103836200587695930872674576589175856847728503177135074921209701416091126648668070660673559352326498256631403555978553999806805821520848506921361019939150175735826391489905697761401633152158390126026189371597025794258616873208367398324737804139020922636437271383810261363139080828919669494113057251907933659653869676138659999688441954057323781459605142292206996407961368709557175741202107989942750989312927588986835169499263487992210754299716724124906379691651493252497090574215352286681647885949663362990144570123783612654831956911466125481302789455825258559281189917776054518557527275589958934944341905874329625699225411029836062441407659124584063229427219093410556495901642271495543613159946943411052536455538466567664151635791806681928877882733949999539221206297306477848941959400565364131323972059895488308239628457795818660586097722956657679512523085894831071065359880479770801030796047879618487812761237316551830626260146687162459951900174617833559882842161619264270060789791209387759957664679649750063731573033961901720449422598118667404941383588337883834880129619678104012959170877888008441593671357106385225058576649867875114590534176132657710146712671605078320613970370300305270389883038513959042019128767170679156860657879847772472340173669455073099603849639208534621814044998123847575842610231477464590233056936697710734717708336574047322279853883419268911515141150789455463659146307188472933031700230412032787171675077973503511541240077103940337068980172704841146750106829544644054986482694269276518651912128795091365894955716395264677897274756033261728635385223112897276637027712798142385748314699954072275782386278899082786621360174497082720003092913644055757487946538344601296368466263939516953272921740725976278250560278397012251504849141834717736216680019909995187398568051002416114847951581315806893527832797285841842604750162991703711406614678215516100285354231695228053214511968581970458066598979721833130306408709403676374293809124537180869365885223967933782682003891817668038172288337906472347812476517472361554922712237559979308465076410516328525753828051279593079232169442855856802172389072840033919087511225081701655659519212565516296598321844366000930936817306753107285871452767835793147059369502063499815351303181396390999877826653419447340425455667454436845594725239374985451042177832362156607974233970548978103228539959450349275700052364624316748850530384292870930415356287650848818451794907637288064876099414859239430846942424398118952447766555758221470210210696807306821687350480762986764545124085351787137210774168707709012577522172113030059517710724186967132424169394380469080136723360344089172465669221307739896723841009184408061203720378469047090665800809020920940045558528677173773122925346944116487795556358986213903840701883302013858191723327290029808875686321162967642547785972300327973212379702951572558641156905373465335092630034894024359381171673928830783581199986794145991595712822972467709807591819020136904659969398070246270601074377150707851058043013366145546166179167305268412267065047603274640418856041384360748107420471066130294600469681379077683077932822712569028655773536611354209458554340054006466878700043303081909497008971242359562820876541387706512459703880281624202032739939372997878634354864596567287167130248376615974272421728114515283436625492071467782308887667595419399604395491678083559509310552961932546004522961151995623056458749190022481099857948358326147568320288186791547561592586230407685058156311264141716331081654711072912104694468896924989030241045318257048594539325819357366252116979343268006632136904281606830243591792370775643856925229320203777589562088385359928783770813616163605004260678432501561843616988165418664184328925552355222712711049864394819688679864061277523545059748579949901040613091000681167505140192484710689171088573423365029403910176888331259145424163514282997949400234419159422293001597176942588672166198717650719291809033881813395867484271803407450256760664379174918274722240250362023090214306452760275284085611329150803391216204960968227916111235828511195563003813552457887120609570194009777065463103715155562481014134827470427150488509732424059968962342751753027790920362397087461787557419171866498872503636599187925960406429927745718997955566286665036381653106880477483276651072933971211929252900541471007246459693905714974130819810553630359044371614823545308072812811082661723271751558238052000129267911217700890072571406754586311578033339699746534791727384624433929602604287181717160483420310266662638226475837715323879573431812954420295292086786511005679550969242059430917216014625423942052428114275277965950617308581972070267045117237183310081160927388353203603715597031289075961816045800402882147261868234354809190640550917498309061966206556048238561554902688625432202094369041514671409081490234615114378065083576544703571909181745897459360165675511834445236678390923292847237810785362273379157832605733917785917408362538614324121218826753720766469042164656056049169541073633629738707738671708672260753874721355388648043862868626379221501999635738607199087824082497780258219418132572856566928512575878439283131847405570838783796546560517242550659374733894596705282898676841721892410194707394188770370267305204056751963897532483366031563338026978932749120049899812701339251099414872380708758039837660886050700213687213378006845157226237098875866293947221340424603062462088149128094701948928641556265351530907698829327726006918964869225646898807133807320324445548051640870273716183499484155275107843536638286803733033308302158850765140685556733599215755351088083460906225838010437668402463588110157491960505706774125260220783386515196748106952142740996366459686059176844210696496539824032602255887552219953753791236228423878662056701600952875060206001669138709332414147688610226467123550587059369433409915309678571724481206801372130998585013966715734953806098949381311880549730543545270180111450380867016819123938761005930414228443074713223416701226535883432583537703418665783748908151912989916880478474277447708734511301993533746830321465647539843921359362262585854614233905695682099283933004769035650533626375698824367395238907603809414524822160518534750194197055696204025369952609364502252546910197155986985478141813477788256898708362064194249192602687492311092973864462260536663226875717490024363288500048563840872186213217326779944486332276596865960884048513782628999829785971254540132919169342452990848161830512284711656164869076449908246101725322437288964243922615793213449243202939131224122326263346732969003921273506271975435488560564194234007800461152055537957436373705866705049875913553359416726535820733763715158315590535746951194857978129226570808611256112151415612800452112800245707335674218883590771543003179062443987020539768838184439733788324209097729131523378613662740481022069258315975959939635118695488398707061173919245703494061026623277481581738662978060540506222708128029601490389167418786679030825089669307364862546364412849792097076106286643645496375428669722064907305234883008888182171218379265497476731050230148457955760755530526040563998894162309427695235944370426288783747245301894584621989972172943789367777751396414083597207321615270636013544707896658361686258095384058952545473019452010417703549971139903140417802314554089074644307927797058961553722007974876306772883695941055071038801645586519164047664506075036658736277806369098276027442285500262154754553101120344859496734108607298793306332214139263965940416645753614249595220813244185160339332411993740373879023040268586264707486975934289647503715686025655107727830217402136898737404924026855008211810292371759618538830436182459609233886726021801315348336544087378914148845459224704339547005859582905692631505092140666653513020944406931092857170066644887967548762424337521505663075658783859870215881670940780812901556196729882033944147969351401465842604575371326440477038012453353715439342415356926146878422095007881398084966418476427320542211589680110422552548598552143783456484786705350129340666897005830876993535749336301747531804175109059946991918576766491061644761936949201668968870172246788293984675100389835994627108422650965744563820217950365123873185634738826680692848193715770803845067717530741459186873494004739806579691890825812289466404512970417651471782812528460095532786348155594476919774639473441726248964150170158979960348247558598873037026984980181416272589932924061396393745497739063625226082987585664893633695864510905491100622023157046630109204343331745774713451355019403648722303572856861921449520086563066795307607861690504587095341494480058893258211095512593033147004555979058916007064255711305786252724705289006073932399332348071592388632469896735463574731550007080280721192680569456443419553494897150222588774616619004382441754020803594303583348310010594620610069491130301372732656184792225896857287032222911751499368730738885281365205249909921134721122097832504256067308052573985308855150935458996022251577054013335673243812498844024472075934579426262954964727481556918313600304642181445613238536146405730328192586212777792583246156751836040271719351457197583497216396155796084439448992653995168618619072021614653317304749522479729854436783871009991092657062952920665376041527176166318062850701002930229315298895070108017531373533261089294821968878614725119626707089894380495007092179425820892406800703303450153230702758847842949202404322447558478867232573533638204236140384143924159721795459620884319728743518140813115384601155468231319201639875647123950867718183830759304855603535959510514375445319875083334887589874646849793116083371317221854204045194368339942356981632863126376935858708188284081971227351468597816700405648446551702137111855129723893046551526033904381462364853155571247259425567643110959186268670117728102453939134741628555621350605936436837381738392537739340750637317598022307978053851991679342188422754767868105703684696447802372553578327656221177535527440368269375561433467136080771661956235783888201237469310934581359679859936223565459851242180616041493441429678537561531551302906081070736224734253819441268690385078697235690586260523191071395900662231368123657803702308643694960848524945279398781779983579201802067009081503808248600732174480650247388893242650381132169772632490035721840957760753908846948954772598371983993316901243761329009023329149823372497866801826869200829506930519125716909014571813747245473265073899997419658449641376215476143518365018499004153574932893596286383511833687253579075320188670556718884305263981275444851981651072339337464784668232457545143639356241659538218240355945984935734345435413947190208995028643280477061881862616370597317702940733156704263581918055277911648051129564084611521949354381520717394621972074092707449052591502058426188781683357668819034673187777992678152901097043199262756252979511834798249791656182146033717125878834257971595691349971178970582858484757176743867838602105674962220228798404496691294670895552034613639845375140475689604444557591690679691535067472002189842024178493515068544690654337583670009436642731320793307467840987662931662613484132080934132207159144926217173143086173798160692469198898529647813184369850358991748343332898871999179636234902904232418432533515868227265849099707324549351865275141336928704472071470616559630319152182146775951007888996256070331878224657656942245116883341186336126833647213127647821726761940798807859509893302420641884853922978285952201900635612064350898820750192239005084979256654367103431962699809120526093245303446752434560996904373422072824896590547111843965116101933756665109501180621179442014910174607402634343982124078139297457651057304781436379073382411089654331315773219605117305246011011484070301563166818976358672472079791651869956578239061743732934102887867787556480158822230733737609976334112205128902866779573524891510686058913446442000768033781106339094636999777800234322678664365924884425846523419515024361213145192909112415888591251965935636725535706721371929195561984171455683763690177538520340450981767120309756627493032678988475354889185810000064729370037423415963287126482452112539420144228919263604078296508620684322201756614051761097113609762020405509663113821771851343587187452396567966822019095145964521123553043379021431544350550973491042054734992440369946027594142694506262510411028643805417702272800067505227742997905578844665478658742332535169066577273264106652300230586199019417341658010000870649255675863483091919227899958964593930670170727665927197108811427359389867977531685761502321596119947583215967654408232085139934345017910210247869949816841006908832574552890041936277403689518780755893675547665097985871477585554466119800655220398566638869641298122090259686118162508894349086119135026690323721473741700380182696453720388782960019955754640665608987595515886099879176522468486979048147519382057568166368972741927358571159717699210824850734631114572241192491420807225459810473567246455341154158674067100178329957683994698345407112548202262932795938417120346788347482635820456665989562668564439525971536100257490930503968063216543520223059105139287356886571859115844408677068627597895695980145670164073229101130312924859512644432407511257093752330251705791462007977518368917712362564069428587518146356913378063939251334287995683677102671786494950525603935547525809335412126959329952236205884597563180128397303479770178638889983550818202364345485704786282079930273067880135001659672221327177616677329962840507650093257665128513696367167487268079731556350366909531831701431100181673849256872115471340278683400528979970409562323657778073638481537624990221632510552866072471169580640797937005437186344160178293788331170456898547399709384338355501290878716400934004926049306848054498890301800392804373130886510058143698136666076945936351950952733040870984695047886000484474355125411123569946891114330920742232901140196315681118891026260661720328177042050578554664910714463581862003151257030031961651568125398539519235508200904087982829451270575926283769945673603901714438331764892988486817175442132048318584257341543683998835100454863114540307124395641474176075488383667988932533093921953317208619598108671642723591599960151822498582365469693600318744221529020854323658910624431865977136624760271528958090034045558489610014933153524384560577356364528281804672030064533200717522773000564675896195970584263189558277447469944634814701363866622960299401921805388438628311983306180810771692066723760104131169715008676674129039630959698433167815091424279378291570896649561153500141029869333003811061736555194787365373531823045194661615810177547148372185529085422232636764038667161382847837792374795637775009494567027092005369304613417732612729022171655401208352917050963503602656459927548885315137793889660976852065471151017009495914217419495987128570090643585111757914098299527089257113775697384896051478881386827193249131513240497067616583143109485864458149113833391553320343234013001908499657970512511503548453938918393200438990462052456977015278493539394746183909666389064622857422665166924261054658537302724467056050936363057117121295595068405642039811441447371966361692240136485203233575090467272836513423508880863290334350006247941033777114229696836888597706154816259892687255253331837696510518839889375589336348713294007954519358374643058186582794319636034057042960300999435494373719674609087171694389349930683081854996076947047775107504145119429234962385120166555458444398954534492496691123224734765100451927271338223327385144310096888323418843414934031595931130675663475316819000022634959836426753776681365050615762914589058479658051543211626985137683042110352267231265227682846712942798548974527754382466269999577102791784266611466020519730921747029120111137079092367177989431804656738976778448960127724988683794918081270908793837222471007834738004931269726881984500960863974117980603742971688554435560032216078961149079258824177948937203397920615562816678134792406190529833056232938049642402485145788364078154233247943873780813214449922713570852115713706748243619272879923238136001155396625545861415785520875194556161679869213680726285265699392594801606348922574249055273869478603285613961152563016541824922661496678443725051803426240766335716361975792189936076799422945661872421641388757777066761872780043403516826622276339973787165075155503998217512712994599433647380822960313607427392139922375158572430128706570415871573720395434880308040472723343841601098820557905824592165477501148614590007480523123321415810049901460364937411278162847061982505808774144136708586644863464513466793763835320379673691807816791212786981651996322744251194398099532561585992944355346389378523701895596241310151752643306100092763781764338174371235739688431515318631870610935082707944535247344540230729726253976761104904248967493291535853740596632875016005039033169882321716018221477609563889759606146349431651948532792492307694254756856861212590861120871570287393188307127530119484424813940350153181822927182543158714064350650914794294730647238723562751275700105979328919696591191027111785805566927168640099020803477085568774261307783160188974003315855736051520172620798408803978780958616960377010959326485070264567504142528704952093436862346392641121829995431217954874486411081665850356250936301981200546735908357511894447330799547565751740881740539729883168327006773807649097382081814033780050630341312506823712668646965800567394574183852955827385889405243394962242982772181418357147444684597714247914618129793330810151006199786358890671258335758829498117801177605653168016104621994680239077270500473537561538760916379425696489841917166174285943723724784062368455583700281753009112138639006377062145398709924940864435846696591667839571223339148862118080060563622681282210088956514404175501094738234341101673572312821190857131718983838446814241301779387197566214413987764661849511734784333644413825678755646317908656054992528379690752869424409944375530867086064092572249846990711434314621090389942529322283733238834150669618281936364018297052499655311134733276078968479282015565873561525122557092990201901212933624154599451062976010283156588526004151065493796128074712737614154679671484533881393827723187574437581106486384840000061173254514739931388133219426968063863076445500293516334529928838895912751370720858497520145852524105741281230967199289940529371015345701472859219247007110942461527221602992607660531027336716817861749168885458987071114786293802164358028238376535565359703184468078651274160406091998863850043565232746163761885890686555178608373589741075940870551095888286446740759513581964371419591909733367775885969613378777016873255974066412711248631888397750372623540646217570163445995153337012587156145500620314000529896241034429603333546875383884574280644683178388474397227204062429226735017871626241514597127692568019274965104737817600823689470158513684573764181122958089643904732103327377230263563183945894478635845117250187384413198605357885370207616579505147598537741839698875598343477185949462134140731644474842560628178949357166356476888242197611778525189721115056702047221488667612065318804911821944833208442500181442897655328177889923045201097591804291927990906505866654922143287771758710717418357703415095878228047521815679680294109030986287130526464259947773640979207493105945631700472623311559425104138489592188438825174793540032928091558086581109722195369657556315948167627717752628353195199799615307385394972974680799047434205285157280352505379697324536050230797752356215384172180320846829977615183779727344044652049191661491705891383515877306152829928160133361520626761264171449725153656018894308532255481607366136775661182790486124280761702513680954325012355421719429680440759018342457320829047641681511676197936968228255308352699254567273597476756355863697757878353283337406601435007237406624439281456319738493206578775967368501044311759714888498228843686086004798114284863819013826087633717336856264594952554601782745577287028002537274145961777313759533773459026947601679572304474210618106444050762128282227999883963035012584153864206212451009738091791041347751354421233203647131729445574615251775451292705979292275326818320750591160566337784993229024941632222503538551235885450064877949388271290793693619961823905590902705559982079306726522152651476441166580411140779079857476228737177888216146146659876495981005552125210655782892743094689172996156122386094446257757991642983866232175885355952697014401108871215672412912817477409612851858331701816114133658297564254497238789630856131377521112784367975886162849969135757816531242875564962054202505164237978521469642365926484334799602082927084407756105886015229332686559647024445307575232585194449953143756064386298255567805319025253140304980881130649610422763969728475508978124579574490230208152826927679174038510484056280459264352191129480487897265071877065758036505773965386554079355300516837766159044580025469972460614456077501115619031307641898229643928732558944260476543229976975262044320436590709233155514062431712172950480811485912839833820444691167296568077312151758682811689782477498247797676917129816992296342639542488187625820966772606663461314304892365631345464975379055003780141199980397875210058493687940189011703169627429405733565489967309205913208282323993604857195336747420907551761210847570701152983071949202877479288342389178151953828292635752926165028700211155083902629236349439919368387208064412878909025963727915483584002818935254799693411700781168301995101724442924091222509023391303427340953714550579285566060165840359633605322116061706954114821394526214328770007096575426807205525188620262145863333497970998589250934319516579950209547802110954029805340997071821820255078701154185664294644673808810359773743320832356654324435191849126344668803341692844674684957992649932739389143772930314125397212646133187630248152091102189918557336313949838931615108018676928985314302882858714602235713754659044168591666086655740578008162011115150969396263628340455982577278760673460915840501518206351860147493590923731870578505854880771833190766682991004977476971724930426275273270111438818604545566660128356234030345428501318241074001150247600835624104247419441601394758475489381933920138591936583269652213557436393395277221811949470246371458378738515774808413679167436017052000699227156086258812997471043843138028777618378531916096999949838497765579806804611893458555702680555479569623276659371609968707560457246930507844379516030440980183849739921053957415318985626268160955933541001294894412729563544234890823778437584996726494232474084627454934717067764014435946508464833952513316755857515550898052312818866057782400107226283750244417863255494807935362790069624045011510611636626774690407655728379068745383607954251506100494316397367309499482884070488574042615199787570777769328757417311130180318731385731714955412799457871887041111289966982570790910422292545295734947861388828660990464829153494363376735212093261904317690181887250883239754209228240074272926201297132957546108088744196763306527563485866444553203777627920333559351301577152243798369263024917840603227876257274266462769604819040538121466224168030196639690337506696556528595842760020718595629491768612695518174092126461821525185032944629805421634823625429740939553653033828441389986455661854994159299544353454430219947802398247713333380382964770732982270567261268959875861394438687893595453819925971474286598389921124910448190292891128798568604524513274090165158260036341483194048257997366745668846142644386219432486946664463310372857692353761826777703109829865178575696913863500332250266978883322913886647456544615090881097365202505355236107130953582491775638419427385005862420225461564866435655056451117349829457135937583165977335174428712892831104594415651695595650701801886258937648438615427204264218018765659386895466604395128360482945738294664120819644042219184507272213702707923109165876951817999014708240646146782828961518400860688688780986360352020706203402177842064553063262114101534168981183095772870943035180492663381545810110756286988643944994444780505816536888763003253931054153671650386544408226586344418095856828911893651373934913727082463006562817840815277739147332349277855370677347239297628356395306473245537788864428175603000196927450046091698895224375415434536820109597102520998281212942437673806214577924931312580951747136502924088314135415150544655904646416398075275664040045351908152978479486967021344791198521065207992535489509238921378245355427112601977184388051416587235627305572671271731483899592962571656201106260534198005448455700830371721151297711254551808851959879958245243163562945823442601746544129057544629310111388324752858441245114892689002636210322527143825835474376821051483086888248743200845916771366106040708927934487509161791228439196639018819957172438382682539042499961052048021306004916098993519528869949204455827110825893144980506940635029926380915633053383855103505937740069204814438374917548216984970976916903176793473391394835463125012114281649917327743072486290204776636156772457580097462949794973691059258275074188377936305159668791635767165039633558805138927950124438834302682155694929664216857568235783140903493900124155856843780212003648467812020302613448992356440589751388122391603504810183988129786320392829498867619398433892616307235856729005178286948480716212026894555219753518087319526826640135112593500523812859272533142521226913564693643958630891951486466178194822117717284760834689153014068389983608223879267582839393099763628007682050407991200606969873500587749941997004769955869215323659697485758862364829742673145214620151110143867520418141200635284109949862061307272228889874338337720562298319128253847201999941764362358530145244974509555634451741593832488922132616902369548335868014850377602754765199235217979003895334536589857933957775347601259172343844216284803590507875318451136094678231166993442809347765371691033601237007927870682665068542337220647784059573519967232026307886761651301298913933437494305457787301109332038764354652545028530544113706101954413340416713710988038981810832439074871232337088712388082989005000161617636698284940011393772935692290942332705738740015180141078405599839043319682052707198059966268136773750483785651012631528763672102894595442025082807622068682799427340569750693755800432340875804737978746015159765500909184073910542689674478430257497552868424264892973474755728655696521198303719324668919849493033874349061595917373871087220927935514992670127277634952193853621196953468448080862739299805966944389215844952893118520212998442755793561251555072644602413141602850610904590768575320014537256276039603536731482777369745386336542294120952196695298034216717965778648758376803424730400623350857173680875192553418873836056517411923752067395097583901953672883839994124897304206448440387963688740722192309441354712714516382010614865494150562217345370331216260525219658573353690089772984836356059611528582487463779024822375364303762528845804307520595220634535647783525773507524406188742186989530450077273410540856735900696983802115737698684167155153699890050599890398435325759948588965377318161837371427330993672585351642983933303061143640173588758741684459094245601814200042368540180285022709092999062048194683248594642525702431175153541082498768812154175673260253070917282005115083554622644321401939604668218894012624396957759792630716381175785268482412907012690840237779860240859044447331917232789931383005188188026644439941525609984592732771097226651966043799833539204839815279444255579145711638667966536255352119998803045609881935900319891599870588316202390073833647912930183309777298602127752916816871055526188148344833934483531729359403553712484818648801747926408526842579423152496425122078846721969258820903355007139441304398563875391551885972945333354523191578405430905626509220631673091536975544681323396154844436004104688703306352404356640246069063985761096948418319762899091441083703232112154765635897938782165432015715246814985372734537980853721498702901541247000700691078376378694088134780253340661105539110282672473864719757179550380001095251097952201164872336748311468564459261510962293860861172343307040871683963473798789853177286783999301950017853021695808576710529456167707321345048042753853431984095814806571468182400058414732502066553911390681585995838239586046754438710829885833064765059581636587814646017914599878478346590549903847779781609746435971121634656779523883741018219181749958787075184614008413794208906025517503667829420239575404834931296183007801578294532322245661520239625518031722020528151289860672779908879924457742672691370572063584336189723158498324075701250242310990872075648865298484310180422915158102197352335174620418897865789092916880118224585022669644932000614026073312807080500689639794985462538135875290068477232721708243892602644361269284153997690629911322031016664827167301793423079022023875400617371742025616750559858872214286061423229218578890472691671602199987261038023018829581924156143911038523520146716364470988855499882997726699221949899432752207539995428246163923470732489879971191975194968069402618913296278378846461827274355896963734852207027166819212080451450811222904080521187707751062791204751311068552268393156552583998927509268000696966776568650903783684752494789468964264576339179122952638156781098345345201882677444068876446805384235826566909208745021004831649312223222607631130460230685267710150232472454479057583659953798897338540184862708513896844582004483245470431952626022501857686650226430142659522401893311506991207471890080277947370734312239067708777350119482891778315573491847866023411038269513004390643915530091173043056651604192839691066277446324171484779356355645915344936579182255184362852501580635508226362310560656793710000354787776564938946097327190064577946047517238095210044369005280723040841865392656861043972818179542071200103604530874892206060737006965671254597356319051263570483988701090560272068803417039666853517417478744711120108688643083352111928362263870539704687826852153983013800238057728862715882989922438480440653710022223962398143099155801013033833344913372632624800633645624463250513943644745300017726952843840338519043151955118898794622794622964441937580005323758342461340358192225344137979760750268624992801890271870773566543895672610065642677144642251660785838141059106762301650388026736489511511351477883024288400348819984645830030508648679013052671652485055093888201565637960675787177683782052640942760781189499212959528157950119034952985396006676043970706776663655014154024310489627711191151113718146625858524631459005276912289517548375670358742951327336573307389194432185628924378305304817188197489650889641882683944686507568464738668659228696288528357118330782192048768532202966635639608461603578942199329967750180940065083874978471712256078197216572616983886797696525323841608296079841883065702632241951044895150868720796268167227777797004909809791101396305737989046081568816955579774467842835633838203028849497151303677078679381627532871066049254784889779000654235840830585430893691667129048557383317601136475756771153176252326690146397412209417984776044966558037461180896252164647058098438355207573255701943510055813810496759952669332746971363005828845957743558800394135126350980684049476563844711080916197871461834134199585079162565636087833384506752182635159154505828099478504547406452829785683943053938397309603580576427138773402508643199690184840804632474922305943389408445651474739303331040895647767529025389902551343309217506175273512388230233175640822960778081476092729611702674815672566101117646204976940165622575774026577766344097895282938451184675628244855762163690461486626055055401357523744271874409035694039473935535034714983678169720504684846713998249410153059879968037501869674793137171393008836067680483836387190545148978131429974632885658652547864205633134944810711785579012626147179456935783497761005083193375467551258808424751909729810953320029615787554341197920464117704232683961332349650117242733124869884127716182237760879464183269430192635800213814513980520060986556815854589670030674777248816810580695346275140415100080240515462050473175901475198795121307857346121661263179805744999851964336702924342942182290138876970416280735702864813588857563572737262755580201305297848877895969532261870444572018277665168921320243745142301753594754646956225852055689790068132855147100345842617496152973241141070964640130097683745493780470791306768429042227190605682539217104437008047620557714008954221864662738952845199484091724447260707679620549509838666371324199239823332256378067384409174295429306305515084556824462945460947260168413089749964913387061513245127728469801633862825385568670633629814681966694159470461738786361565344766895869674486760759689521798629196151357315771885187452546833299279299303968179515955965091628979766270318589000479609597449350209016599062636711255306058700388581759887587726769696799641558143055391842239250361021688597440721816868954678836314467685094507286354844595883339153210016128989826366285441174215238356217162481575359223592905066367549723403695518328390948201300758868779601658856557811163391092874251639024360741406989996019745967637811127738877006218831298086935715950529165484310866745729404891023701140129369327204816115830348619603909237393024625259846257816414121609393234227132611472456325347124459459334720391433656479281826221081436526487820575635816943346369144576728684175895055690843204434076383562247422794129242660071685179695530752969936251147442520380154676910085683902124602591519379561210188046587395618512665161390747171220472996190573474554144900910535178505745444498572095357884975443286617724381850012981253632778871491439249779259964807302172570914586843313714728905672349315910725903124576668908141789049862080789720671103018365625372410047836314713822181637384008448674626417083209103206989528177499901853672082143278719517466072454304112257363840519016469546865531878138152498386489193394612287972615604529375918477187763665113247932349139625450945181529359230064320163495039812839110536704491763640344413498168228893065396503267696436398879996727896269716619871046901662988288419328526433736719168731062644584736796490433703648515449197903210562824041805490277229352253574922910745795833647808760438684993672470636126285043367308400475676164455658142612440989974306055904041435879956624155267407036848412756187037218297004403317669623752216459009202184882910085447693237599663438997596097058097154463445959563058704878282255452523095623619953154458589701502843786525237041639036667163205575446843457332827330441315402623411646804336396171316562552258310104008524726434176168338679674511418586082931014510225434456497890076204711037196463615988492441713651175892271624333757733671783395341926776112524872637108923015545124933133813619740278851834687930205773679220426824579264316107561389114778080439671250647248329646776814382862773333541257736858231170164951273320898565328840206047409416067186193501810277592609117869063046497681044298525063990451480312305702127846212935515077536276238449593378427215458567727013463388440523778669744160600457343288242194492114337008953171996655626540483066888093844170150921886113099470363340100494659583976576589810665663190182870373310729271235296587692053537506336038377212875977164240039554269595383610195759338246073958616624586237290327189462004214963969439079935873899637599795541143215181832814017847596553524052005111847609011129535899643657345110702040413016812362239302608854692586255242293098354995335041914249029934033784484153604320804100566406943456168496935839995008244055223728176835474296132710372967741964825705457425165316375684710948904717032779301939941553529966312276225437169745172610599431209875262333054317550216699322453074112024875491855253672662534964867280166260812799530840116555034332666425713254992467518690503271030183630742314064700351542840334378918349476545080675620799132552653279282096539119514357730955921912557969410383355783258657289474656425975838690632908396774031102142813284276387695240949328054498852507053568643029207042093894578143200112796173161044809700271459000772740777475137153891983034773613010372376084318877494661261403347046667903873949963317304424671335879977897799101179385020068531779975183732091648225736953993482827890831756034144107110814367510574643070504897415121959715167895414368436559299563349547782997415821930625665201415583188070053540992428588677863229736606108974005708086535998269602014301487256615173029392003763259311854909259434194062316317262192256918058275161876198463166777714563831807540358924595279674983714503047137446296136965368221285050184465555427037452219221599940111508231726250433911858858093129794123354389727972991563503971565247810539974098657516909406432904776451604966817741044872930964675821685413863493936263489835400190215187402291768818599934676476163182136475108917858388729276650470195420093592934092842887651995767854766869785292990091378338298516319477933495317966603460882492717115624076709225961166791876150178860268870288811311462264000076889834446053630135012142893359716410859060454883512765413878586537466052124066319076891526558367611371921260224869659919757323627964848434889995083201894009321057737729761725889990096672432731111986559838296367736856148965323938211351298861071791003326934569506604843561418349789690128082743865353256485400618323270956177677987482384291407346103176783194684138338243221491992172971209330316855994552351707111231196853979321285275114858041256887412164971497913670451565119657948041278214749637559641500502617940228331681132833522530912656250357841735563031818939619322577499078517864534673271330222622613844986158576281199914661264179404868684050478421734092219292550549055216432360754198715356295790013869143770643047650145089292141378472459943340951384439068704176993923175957082099261466859368253376496580033630071182625031366913559136996215532098180650614071361047430001623931893692569667143443700700745184478203588957895607228310008369046769919945232420412378015503773395211750758895874346495893618945769660246251488606068532122161765094471352632832984085837109461039542547900073508238968874365671654950375687376343118776709104088045359897629008288086912081564097120842995949640479814071195476721103288235699226418201747477521442574428866085366209760921126732151030678612713347079662281719401952248013907318378011018205163100593486552385903057106938730883150290334516743044497293171054514031852763652381926238789347099635710101821880728829088392905741609074878223076089804763363919521906960936982444222341680241696527411065685409667426685559365486863250093025591990378374777348089458320911825229628625118614182067768634508125603815145484401416196487712808176137947409140208702530779795032669332160148629590580678875558253019447416575782097568847373152177587287257272880257510911586863109941564531867445648019248583018857471660838619547316955288793855373777062229167171689227082062091203482571882306069478078785879161896266414588098632774529744752561050398924340981998852412818553772281208844074742314644479366676803651387437589056769367414172206625585040713804967692033019376607100445111234423454074006931564593065207505705506673790090897501314606613213432669055800740870771382988049305084878569102622642928435811530598845199023907898241152871880876601535650278254620086598917552252061635577485037555080855172951987517143080802440963766162414101107267500858163184737910885199337221799256359813341080662599765046746431061959661675475994055428134270369629722509131408297648783120541095583663783670989004789176863380397965997512248211625458616968149806967171418182382680217768589396136555691938849619146288977588682805690396165293999118026894530394303001263392741355544007298686453349424671486988814045892599593089310062926362725481967642844118098132802974047211146877391169762267860710577235826274247520962104709761394213640814125510906993576735135862320065729141460746134533386148131013721971122777740344150711385218593165242082839206521481097275945880984631337108090753993843635365470951703400956692835326807363368006731726890937489714990062404525573559476602182420180206145059993462567548171430949973042804283043136932182103799900274933549820759952861547579471587914868432612826619266306153767148369599560264828052108783365932399581136564777877972575466377135901996848334965801997970562623421786773306831542066126818105817542285101146632985774023191852366291183013805728775184466879037192364599176916490011427541072364013324516944629843968153275954989878497818091525523873227336344502574850649814369520481734209870589691028516980442785906561374813542474795237899538669515036025123853854052776065106859790400324276542476601269901046172789623806432900863498108630765292849001618680673180517157102089552838432009197736359904745971788422272397018874450476015465607296976074433032886451590050757060932017643796059704807601957474366849481756874679338031606097879965883472443135438948632796161431022399643522869388581584577719731444879498148745204929768024344828756107486385650013393857493102728851370252156203329345506762894150310306438925565330182728466845881816158456377068002637024931881556895332264956126184912847888734345900686607964521764563893195025697925415246954057257783654166585432301786680003062238937349795056893426428897403312592514765165360406387140925915362487118504377383688343686376150633444927534487421390334082943092802946315343287438617001405665009951933460182856635599775845702016081996685101745107773869645413543016313629373068789794119049708660242714534427737523617307888622237891134024820578688348735918695175393293679967379877669259256968572828726705058272993324096995295822403224792791332872443661892048312143388662763267847458122105254070510510598156630156074252142050881324876988333088198956215371703509528471014896304467948794019124806183679338798517512718978284009875406018119266689448207376510243021305893124800803800851765013138660853262210538798149202958374085449239293829617026587414980771958560436456296442267103490234201130615668294063671557702597478705616840453559579355568538267577313528549406785882694707149670774948240111436117460059296852643719742388384128054529180646099499718570374355462329844372200316030574494577601835657214235980892934870947309201807010123635007898547348409101665185321522274413324244774583760576794549828230353622198269336112867063526482260422257937812733347498266058126337431400458340473419689459818094761205684916343323876542859017299091085745608919040919574946454207412145040736228647370931682282792876843133968144020493582917151794947014162796683045943846760635126964886558813049231921042937469229511575237763378423741761992099703261524251325100995676327848804148181155853698972034303797389529369941946126163031400833551341107216719575020332992614556678437771091899218818377299494790367579668825207847108405722159088374965429278508029774399363928162727573300440480447763883722483392668190551331677887919171546812702853648706521298356722244797127460880784814990418078461233582987677971192456064575484154048451127796777855434853458716580829012066275083245981586468339129056105582877145028442697128726738996362385428465391464528511020294360957462632241446673045773128626887267941086776695395535103469680565580763062447331721507054976805777478812843970856431855786027234887062915969660929033570578425467719717956718036889286494318958297391447894837573264776268217626906415259217586565916951676895494025038933696847975872592018551736178254718569248612171921669184028436986906581110213282617842871715012598716546359156260616229709915159677966750293142974925071066789607380475460169775649434398406113346437437314231354423659475680876024539890291972065428971624722252759165111569971269583232029899593593125591892272311736714040360775479549972697880233653301234125073159748628458511371175373839871153308495100323176843109035831840738301099791735762099337757481710438026923257031549623737223901522576776374881597291704188073193701318755904239676561952732975920682582460276088037951232468505761195802672812612034741273545950281986629298171773263926114144488177401751490566468266385147581302094453525458181326103160816145124491888520844663043101932174730245948713557529067061290893977574529085510755254465784600024710886512594555818293256415663460917465565729834832359554053358844507104000244439478776791772028316897438655323732877542016856077032325704103608899757302923552026571118679062882318539727232267689521457457105505178574495626992327776886749537834692725106525033881773639805174941149210554456274786532828519034092824597194510845425652537422160676756419190259212435822334781696478652931658209450225480701819824768774466808161380859334040571166791947239036625966339328795125849999633777891948783974811696620757646494778123586664648664474778240116645190679735130531539352930919919501036443371983141848716910895258411732513373026817015740800859554256340713951766587972508040729780101223230529532298270546297125436299440385069271920839284728979567443008332951363784093478038837237525095667456308405732734652515635315993938887047798240012916016643518018583157739651024005332520249549143900518348408098255257447226917618365534903115609022378459597656391342652013208155081460267396202223029670848633679433592716990482205205120255915972814569073012275872577328730233529762513892033443855556420380073921786403315152170991341588782891581914574865522241048893149323609464146486108843085841764666287730854183109425194591898762023766932340340955729637687493684265714464195738055468007312172640253896637689540126782087830554671655723517471246025487125395927691279110638995356854104190342981594513196352753377033322056555082037734803979449036008097101846293560046285318472926616769208968382875130544811853930182287170089631232806951259179328942680340733912241705203257846578431968702998669838923570951948024803328512758278207069900105061632849288049909280219928119441671303761151049731254115214726534133520099841819380276807124236692110499242175335978061462702535522242446902505037903756336269911378250297332431785597924469200567848925040891671154625453910995613175813860346553034140603159859804404392918226785242884500610875949118347927572475017291269230235710941588014934887345806117471231856812941249080932236883880666086422722487168508147016098608945623996021656803329354971557188808754379983412759021152394402951792823417948960662793331700290837228969961653398746278263867892671384898074299553822345247969363329175254786680587213638882938598540388543052036692999414202608983733532121544535302765147123051368003722817784483788944835078704701350347422388848044374602291490501050337300646486847656928450855989279664214446131206980254555070015022730104225220195713272763568943398135379038365553078318129799484976456871764127072926964695741204456751597800192538005012320937412680469979322646655864052773077262106927720610700215499677306920455830485269067124051573880538995686797404282470478338128024392811226924353464663862138172429784125984302218990679122730224616477747702989451125253611922020675172283809510433482718439115506077221856572664024216672480035205319684330857301355451069340085299334679343602178160694747070492173935757485893295955186380827024119771058784295703540608920987402393121166173007849281742503035326282664597661666873476369260970057978200103746185944158990551500573345616479781787791934795829059545844655996705297638668390943945212220040905867749312751329634136107406454040613850644540732170851872954041454335574602008047930571158092717931510579170352055795416333755417081856065290680111940500046783341154929418334002481736559202213381486860659323654509429060918281990334445144624185440279776281632705319508701315405976222180370744941162784197988396612140660702121641973694473785871195308140479142578582437208193899681220927950712205065821129036770421372344211936944482842848482326533053688071861661734239284588738443774316530386962683995624259669728603070436563356953966399238774281702996641495168392593772857966689944579221219861277439220023743771513886473029664082721048880608259842374510246302540459656727803364709091868256782062130746588805258076123544316779732940181747111055063550037555506154426197023872340432730578656971756277038187736057472466064581038124867529656071547749075490014590535283362081317191405936030521071479328533318660221724608370892568585604440661272288187399014115961346977529978823421419530763578121061737998330901260219425057045548372268386180358710753007753460219755082220255401674521358236173996622890225682738108009865656614274044959162053394036151307714927128335393931581176094269232464900958956789572823003919461585170245551336049101215131260753597795501680421254875906207643464924326002516966498397079269271357284041291513132450372115932316858021081956914322177176829623035527957304473661579051490744114990000936760859352922013858430291197196712469969610662960289104772731194310008435017136768836139904582643950054190289292751560432359364893432600892184208425633824904192758627537888284830679058718359924030168312879395610929157424159477426102847144877177769906746555181383108299655668951634806503013530041779370508475121703909816051722855333413168201755285311830847762056024012352467172462447357774380839573705120803412335114674413943705143067327731315025239859245176163283940058033339045391391655970961794029073809864516916093346502079026882260648983443145583524342576982744396646703721381991197643637749516399092994843069628686179962637592780001400051096784507687144570915858898651217995606251491618866748476184983214367323254439574500880451445191949914068763905838306758235414352750472315046369070165207018684318311166412419981340562949394980421116017147313541605191712539930412416474135676760152740930151212127025588030109208085576783715316993498989244013409543954375872928688669331618496629243800141105819895343182241754880675878008335852429485159545556950057518778612560464850358364411720409008984058201142710298620682647348309361091588947837407223449525276711134545016082648430009754630332937551943006759925135277236272994801893198112235271424525790436925666699330142642397932142904237471852746578463883940045317144554093152622063400326658782601647568249974841652317735968926600869216808757637215341774206127420978721774941541837809508545358730712229385711566561203234469050817881267371353318229208456149667098324173070773737810745305672983522960001141862772367912950340214227757175538117749743312096897616062997672087364705876873766889836454120986655785966977583263515731283053653486003504784907598955741181062524837862590343351957353119091677320792752517956148376856912679340829399597714868448919866670468506117434880081656815900528084794715187003233430449838714178606971695193491406740596786047999347636328746159905433866555871190301901308728523476903226924902854493352084545201141010251379121070813225175866635883962238513722647014959317025387640309216871783059479384550526972917824729425442762175665270768069765905378346790547583030047387138526987067510317103759529106953764797010209394264899314642344682065664049787039417268328107416163307893396890575280052786878691867278773609260457486030307037240975373242540899950023025683218632129994133726787171460291253952019667928227999935573566423178244893844756925322084944827199526322038817762307612556484715486942878272273179939084973387643074929767890854037122293018597932358323661356250541632813942214157540497640366540526635089698769682216713761757735666292238060313042122859033114970706542364103669691364509983564387695432500201609502583057018470148934047430320194912834314509084768345299282650933885301632931887247402619267881362280409549066253906357888935818163658865470352678768077986011215427107395381326159131865800692488753045972607667172767113583803123486967591656128152451943559477828409626912247735751975879811946473128562234084773270514296403396481992300355573214725295834503047083481481412928317822533002423940412579722546091593318469728819163850549439792759530866456517298560765386537732092908718389180282073318021277570718453948811608261357821275155468796746198733374286510847769792494253462430522616516079637031526013083913200592213153252976517827475089072430471530931145050608068555599270624581674561123946975783674464326673631545600071937173884149570466713971746541233448531406713836676358767468104247539771252606752371911194387435429367649548373869074574836642076622115728399749045462710708224603469756409344594394472596977767228659266704216087808869996507601953636948520879399853075781016088146884270733581284161919037524920100369080389811461649111265948913211771847439582830164273242807022015794668167632602731086657821527430488349635326100724948604669250476494099717559801172817572671326804379722060105427741968692315240843971698114483378203911580193924002989031612826178882866163307809278223699089890702432863343237678787249581590692808687884459606268292771933766044573032616447066828376791140201008045138868784546397331624746862698031516544867856579426173645946399784341034947211268892718635832893759235246932929993645755663483322055691106780510125394032509452610426898801129774536363511810898947139489987720617007224363479110740413631605861010017340491358880098280708062820077083447070571466108953501315559551645572560008196596634084826973097673552248041534986836617735606296346561797391650682393679683608978870072752442818246529268430184860727562898704697347239460142443394552799207256651344863206131864374590944810466835291324937980181293488858218236219514112843148566776024914430233512713516148744384643502411235630543211168632941678807714268755416038100821035690384274421014670551857358879392477312989158908304007396848325391055859931658988854982088322169475780871910348723412672024477889470991741556499064109593094758796178705003288088434845629138534297868594724729052654626597029427135101424186380885808233708595039944510135618021413426114518999144454663088152016866914290415377614484579087345877558014471952382131440936957413770536921992034435628845413470226085023825655416955623498176386912051307156829076774191663858540519314407280678779597392938724018092361375862138754959157035012161403647606624580920546028779999145806498985770029870743029295394819607893795930405479162327488321331307467174494820900392396290926474321496123802470083477625529733560639288968737013778342123937067492875636830763458914411970498408834542469138126368526063928312808641624782138362435031032183855454636896001641027360338303232405426126180283946585052174081885665421889055169719057994213503996868683898952093171659503487403197160268296323365952200578059419491585082586575749566158224536696654878336973551003352723609801483667305622372788104812586698658912955299091019359910400708520854331333447479474922739747705766874924856764098449952604191207035695753851722481110643668899271325156111501316378754931548782535628945889948457747620161401560039035718157022608862350011774537367302788041333403175685380769431467891167333069975320132379227513164303944247581677148664466278539979216248346614491757506491296800033063575320169801546453171989401945198339540282973273120332811084058534317637176936004728008072833292705859920167180811221522172309202890263712245815830561042311152391400909141247633788086844451577930407857130966659990363609048357406738672502741838392052122318252931312732404049482113397248296993365191938994428279132755881912910467791116499455709128556202443839848999142182182694686700489497555570122120796683920647747948771153992637360110438434939245022181113256193632958929668825920070108188440219872929919273641314022144896384843427623253285529366498712485470125156060270956487991396725602848488819382481786387428606245731385833073750905669439795362272345470929467948481764445463754114385114979655036583513612440190318358796772390772457053754105553898058609883096452584502064663641638418499035874515583949350385320063921286551795901926146433892310559353423161759830514475334064132294410994037270815848002876149242881575803290315622839001102172712398316455762449374534199566762932167692649528691962957177279853948593880830005087752894777458728993065788911845956453469028803398668204966983539177331356934311753785322359698732692010052736335312170522167294279910104917730711279167250755268494335291885464929536538077429878397881459850802181048828341154079669647185764521445735545994054824422321688294237125232767590034481800121327029070003356257564541068215830376664303789155984250482224079571149983235254687216497885402342105737656414573900388104485857066362384491863316568364971513063971803642720247785970563447404098630116548935209994666870488848702420126363917617064436386232956177925079930611768672615583502323779240493179264537007281216476452056773393056772984344624291949913686804075883881916818518611959794302064631466703641634418992136370317746315360962368663465629624023218739693569618395624863741511130863010081201496937945452215616560263472909447009991615855433887079391794947233500868545407068014844834498041449220277007142335137813819598780824214069216962685040931712324356328192043639003147117600890083795037965822452263083142722916242094845601027097935372876760552432472172431616755082436683332500064674975753979740287355203408846897129772351121296839503350338569136976496863434778391453999974481039686743522057387132041997881275311596807000439550138831738264105837066289978220766069753702926432175507991286620920231981124502912895756535525180681215497514000625088936018067551122368016798262113581943159088925118184978344581870239971707463435454515273792131855253920392089458447107515656838255709980389295389082303643996975390560378747751020296013553002273214693388022880323310588539481184523115092235679990928596959715267947153914904607746007433624468728322121730613487063520262602289407222626227491059233096806096060568297397516112106708574454474360965443426181803912974111264706590603617410056935977569674811775891144318995277586604561503618628192195476506802851465712496983782568213218473838433892172297319867800903605300694442431621588788746496966587201621969231120745592577215669800896569338753922183998370052633894598774668865343186290743339903207136305217118391166531448854852292855812174381953415339556607229834354310623437076914799793469030535479838586837455130998254948139436194990946215565032481929418411152541302321360958357968049295317306969908990668699865596458548923802429756581228598394074540109106549494170274355168305190986820712553629883688622971197282721576898201493023320158266138867376543009104976869583729692579069789021578003814292381397407811257824455839418499551934356664571721631190110453429600443157572533022942534048194133053170645962111426228003576173372130805699801769114233235656605679342955776590931407662493973972741952951363033879468964509831570652290770658007011232305911486689472352852988618718840563862798305815633733796630203893010481022808800382022078173018811048676920885880429919451305441799701041921776276044947147799565036009725688081763397295418303229464052679520977605921553652221715309584691656773209731042720139803375147969462414357979808753791250872829088535229157972174708413008436209598074149082955801304787948118647114855543922049187727080717088156578461883393804395361559713776936536631467928028234781028521494205317504722784971183774289007193484014523349331633325139996110143422303294297193544022601161794010238372366818241354940382369753635466768763152426479303933875390968119750544902808121425239336378503644883202073009267958810517776365517380627607955322363711171028711792314207235039898163177816805658001536509931153030508940574543731822289895299745051952806556605627216673595448808743481548897708927562662903586774765719599434680437486425606357363314924749670174239328599862757263471726664391901784971426456385830343328957528849665838286794056720735234064467877874444679800107935736934362313684290029576709284778784572029999314019611420773723788475141860580097208466734481402063320868800323443292672525435067040754101608239507892549838188278894153652114037574485682451588181226379540745149471856791606523515714075381428954772170673563091143471748690991329900849543303302973482766010077310032375641532663125261087391195073974371261909793327671707776924097213780386725361708894791074131245462159552606870400011426667212483330027785812108095779873937494415769000277397130933970685422881843073734315482911777630657471386055843222672364925355886022599307860401726718412295994125624114711113414340850618221232461324504595100608751472275681188444213947316774434105618165130297448112347791126942361741595628166742104294433600095557760378015220161085222226602450537512947248021168622099446039701069201148115971119446130129502298060089748657025506729116311652011083810765635642588320307855886886583209263148408718155808510708857592481995741418899572671753091256300143976896257040878124397477498628670831944287611105210735153147373401453751404970904480183741720005383313887114872201299711678885170210881412721620158664632286977764490654975110130721619489686007478139650716669025027564040983219241805497851273746224001138925731188331483672717734345489547713689574564238025887885041247283049518931876123508508234168439775032231017685066454538025378698965601032161777720255973038024678270082957709907766632912469166786931111044540208282781609246693062336723473455609075309834213912867109919538845251651336498863234741766963994182816731763255016137000567593334615793760188227291270016953829740257396429096842574500183885323313493113274582467647036938912096258830604503534148890571566453285836391412413990553003517428736742096665235690337968847585784390124249316886891542808503722906474328690913656221540195155708192912940640086424797022525735359816882440132240205032263651315850073295532435566290350202131514455774232049630397524197049192369455390456417174213179011634444258382853190041101229769772423035269136857232441904676343272572762085809519737662683561354664530073118184506319436495496790002209472549940866630446596285853205373185400675665637208338869751733511300245507230606483740234644762270930541331710813551692985683679337484115016059421230223708387704982429787273417201086063342203605220563421697118659953416454542732379479126192766768939867595804024657663082117797671366836488307261688055011540765852908945180686399576698703773309393418865607857199163768063356879798584260797758270007603292287383967803175336226795504963587596151693499377405861081991818005689645354074982709609872134492023773513092543093530534844776489996578306036489452723720463132626343894544017594063236123258317331513450785013229048823076160933185395891302644340155924844939412701368505742282516802821866365415499383843754013918656963094951959429307361696419506117138932308291510396206718180182397929617787847915673560620873461125192572787752354043347211144922647264818367812384454417386098719634886366824236219233086419629467523188846032443103403593377672930697874746018146819830990616685405437206761663105078301196931094710671922798167185034525641749672927503633632126741765106999093084903528670567856894746854534573959526899170823744181704220071643565917672791103542604159119210395312490740810199419408838982941526767033363080480650211470504636962403158846018457259258163097580217401453041697048837792649363179896784762850340192761218249018196754280056591151163941651600806785214609029978059182783081680433449216869606081930205715424745575940695351180207081996052513448011987382459253137427946268306127233821676979674684422332511010589071772496853040862137759493200346568103393148349087018817387805397117528856407428005644870506698655171250537017468870093452920168205427776034512942182075606632708055025214282716152901302078109400455120623958441275200767826662798580901924458937098342648084313423370568996879977948162650776645899131917378744329449699139017790766069681292406813123514097363111508922244349218961089272165455682999246761598427974353801423203883627128278527285178172865131553471895627511224732630944802293879113204147806688500478354543655067687967003951621806330853284855481590074960666655758664199605826784827945354216349125732860720763763268092317935714220870358077130434403009637116920763500252710997854140900550561051719238351481311193325782799836755936166278888898597275092788855721272311311524870384165414175523840443748069748576651480932615672575581904407678495598466439527268694861192517015211341511077191939022968656940611148412612887430495911929831885290537556171895715431634347202794294991244064077621763927182670051399679690224647275304083467437481870276516152470853135405416141004446349945554870572324942025649855970833548841128353477780436652716195048287395366104523818604393865321382302152950795107970811975996918786264252320427151630911517028607756129827704788835966093444242320802548667826538701850735915087171438426978191443515677490317393217668052952675842524054996292173215491269853185678959146935057433262458183935022890470543986149002277777148683029410357796420306287675906414480288004253364943455043795003090792288061676148604454509149481872756680419063033191359251359489662165150427217911707770534568570674816601706361161305206779691866747908882847293278330376429145794799275505896106772358726112439589928116538124552676166167203564883494340360810822924790778822095760007397200649296849106555252709306687699694666073962640071237250295130442576843839480850454481323610998916977536922962691528787309795063509450185009303136995631913969699500937684830715060897584741697741479151549438831287211111354272671434340576774639117266385985063576249101840006852602616741261006548729291391448996781276535017116494457500965646112897001378151525779909909698775347821341648878594381565094628295955184615153841074075938092422843945380597249934462604068819288035548449267608546525606300033560824419568007043518817306876627066103207368625035270403188559703633451727969650295705953745612254376654852863881868880436572048728824323405954119321488963512694756012195767599167388274568307036830763728906068209328632945940864157740080580339173206385848292037433895287149742886615366718159934124513575188387583869095633492380278155024260135327523677892178205826029431842297891977794038874295885947498529300700384915460749151100317926261052745827563574850590798704501947805976818186821381209679379807459403950252773118111020127369551437414353962549957062062786998222467430397271812534958031826401202159370961645798648467489694291686334538598634734703541224097166550727206494746627007590879797320177661626638504062044562293084584735652303427301352249658586516447347446024899909656011294549565407963481195590671705141794299133289664224858874770372789107067069026465525332247845792176273261380069259445853771212822504198968433290854251928620246117971842269451134716720911040865473561467883889249368559296635378227507249672028368522802026530760458798174245615495989750345075230381913914931075804483872650384241988125407691437746263410386190016286217296522827263255901754071471897404904935608875565923696319747416574920561161047016945929327667436282623849146666367212651763538177791758845533965087942058879543780499131349188399568577056395465095520078801741272380705103828388252659570102473451788040082315693507998879511715337224565998617301878532564272053375587167799870155708497388836018768656839477246525722044717021010027823108518890972531779848151620893680594035041790834913669813521156124961329475486038620477677739440675009580264945096412418505756823992510269983747571802041499909490198311668186872926283802084855179963349499437896471696040170776110217002439968460239295276903602568178739008310942845936859645523541141103877242911716680459772690482075587060559553653788649665417080943422303646547229751854942472604223643255934462039616700428879398571161378709472024543078646551653939213912836605797482293956515148090794101689859802393466751889796166312224994280666637430069571683277591622769876532069778616611183341954716591093596175462492107022077758733119871027726910983402154680239738746743045867252013783862229245550348472186604641765821880650793137782148079374469392635065955617221089569758277174045824784342954681324871084426446332957899524692189791933228405339619062464006649106941570377945467453767398906150952732675253733271367719510511052073575485627122711788207658363517592240627324745496340887148011491625880157282328132476849009279835246213084141359120294826243911291961798795181231834766479641261011974289155048437375505437707312373399149071416650709770967163595053237670922156473262576043991567065625916787948929851118240305854292242867202005261243873145684201915142681803450999730131399136385389282304026243094471254000646849208559989131929550385700370231526858076422937585820465802654924060435781290836714874205674521308067984733056362359885595970530280248365708641740261756690260404324441569534554344342923907669464706213101380433206844809426415056446610106458512576494965077228753158396504017528224903415236760237189204783367831298710236440909418348294542364335621052541113156068493718896667859404787109394673195879087079474784591426910810715887705401568367375321240931407078448821572243632003756485332168154048888917400448447582988051732640955880566067706174770209655970592693400323711691629472352001581909235714492543976474789611150983795149233978181936367107771099675603707175804917730191613478320783025277277821931583960888873837853996600613756029335525426488859621980585392067798404973750868837099336943479703703624909006696767267083117678417297647462814806195473891355373984133074212417291449801061619312046196595975472190054560941997255684968463441237687170859659344522512057923166377733855672157190365287977983801384193904797769803326838654963783209598227702183326764227298874459485938584050726618227563784612670151931335634816765701997707828020923723222952589591175105184020556840666882595327681327779146594817169074977534238970766148513531889221344898656289531055907348702109286307188010650451267802321478872865456006555761898813864786435973490485611762591130711949604580728608010587098196540096023065603310897018120830168293687722083291441421623947694399278610257922137471355936034518135192055376826416757014148629393800318349369972166904207119523834539265624507343397344949931166738559585103504053454674809452030446771554283476011244604716174482198545980293863830324870119897170594851907447402818316754573234033170179027034128830626328537664163866092871016334140635420785441980654666924780169928521832730455404396905740956675557981422807557735842686742961796721721495611082961701198606912216343830345959292082247528218175511407963750552742037825666680273480898824964193878436431899013871348292072823830409881833763481836265766114877546702702860677867482967152810520646355195110470307820004534279686745738678646427221508128767857763632250963491789509802655814011159582471501183920161065208524211464028554016654808273610991753000721841365192404342739261347353794905295615971634548979987271419802535985010082453639939909651196487945927266719203328878544473651829476418480766852692231333785690803305929677667138465662702224812456421768888276580730725998958328316894415559281486627502902841383135856360475939279016476156641630715997040099572089884010075639550100812990130265254898395960613922870656375349563920837967811357881218827181054675614533742382436196762647539783471869542328438526438455763300241338688255708945696765652261051308618951292402663332172315014699535865073505613127624270906715553797067253336297228566862113597631603680027977860598571349810245254068864828870951694998927414992024904560149919775294782470022742182611165112337665063121044131235796063756446383435444503212779205078052021320610229918620554745756099911758337767570179019431437796662943223928289063643286984070668313387539703554822200838617810605100653401003602831907911377647071546080480836752192455781006670359116741607681738807121612373672057319421767979617050735784344929024678837625078860230549054610349463285096652128517911022874765939376260491952364361646931153267937882210563132318912315869112550312475654329901909850226155952328872102857912206019446761577231441552120135900001999735855101603050943622391288065339090182604417335041621753928164466856309727818303430333521071630880679142023672824294013199253029438725453701549261530086487583343275591718420453506962562161161953898921982014190669026444391457077831419482225217111518540275541278690157136904284495201678845863318861541462791199780208721793992117973285276787658185350590575911468088440194296914074218037845926469520821631481370102153815819698223250826687193741138442745209006123292705632934168942020449142942706546292938784832414762321393714660109813155653642663830803870356652914482942663948872051398634965181307606707950187427296711700051193524378943027831024111075537497654872934411013480305021679592602630169425467238580540671861242649861971434493279768752129357549365757320938664512721234211530252078860502835849176759176268943620947002904691137779030808571215837905517259207808081352949296360025475140516637138205861183111106124897914188319462250913591359395769153176790654602766847241830740720823191042587753248415005114489456255500767519915695445944752354535496146867692495094911583456075196692164066395169638588514503431725021385856773785241372419904105583871749874939851814019594951180955446355483770294642070146635604853403783850192750805390370500345448944046340867505335376934431452867839730943484374425648813331642737932089135910255325474992405289911953970445141328403889336518491662310634969149796908178024804704695067587725311999927114071778783129517028646236440263682493741337360010026312963801329035499846806658762537638562120871702630466778244550819450907533539801057831808163278574343724812281390667776830467255981516872476371342207841899143800713591039992934248429737196692819538209812962740525954387428077137625233643976073809750408521148473658975685167997222789156768802303500979079905661944824357789963760775985646573955417845024204641654506574308884701337769254325837635509376403569908488846224777039425957819968405576293552272379194780761937242602808693018078668291377227403491050502775888600152551786111513222004376466854857253259680588608730639810187888469412222259814556686690831595056228748096105152574172320868250488128837172398718038165982880683944450532816241535732668539661666878039409166556015292362505801846110416597239484328758644055898966455260185533325526593301001086224495976826527976603937911651447066159637565718734957723482551849258287060365540067667295753404768371974053685928320288529069611753107485766776954200907155318200761823173980534504316747001256920732803865948656851188265514896731217179419344144213958647063467860343208304599104264962986260492258441360948570528324576551498430109487827482160186282477960818101420761631832153609695248779605310084601361863048860562397683630737990367480489585668284404664873827914737088551351638208673590766139256820711219229560926219685056171533535187012244625910291690945741105730455412963059887352388536039766708985000283611809697517438351370329314508373369460380978906621645666825080159387486199545839576733204854187141534815160004620438015440005209551069834436581663293578759237082394316247025172012316759389479965283020480936481326840138423293090570946128135327955013718661532674099108473928031811851101984039191721977646182682136981941341963583834994476498297323993731042295419219323195610662292594008421835957664179858328712755759902590755038539214301288916177358725610972698850864430182867350861847353257282727867962956962701655106363121627986232810736373576078986310435115703331143640891912964911418427000573518727608059448463656804594875028832962283523127579689730202796919731713247276866595586706534212207784282510778376247691446882909912202561546426789700121889300325765558369474510509419218643046582416001432225083802372120813123380790895875389478512808234715199411042715745270918074564223125178949139733041903088578064309955336667752282453388284573982855475164098446928677016725184863206630774191307366037349255743689325684256194108993963671446319596744663138639447544698412413515478267395306747228867688413783183629578509566950515658090227882339008855476452979128770120898361308790203076846503827119358632420337379219927890590439185043791024221752893418420130208580723740814181944220040500681287700012814245068765755464247548940905365992165258958246454476242051756150804749027861517307017159256267621728799363334309006237888811659960200475935216691075832270381123889816125443135106356801809272894129786345604807477297220586128224869309123448033748486251872678076255045017328201615165859694827069112908433162047971694803690611043969774057869722690559839616991069867895217586239224707819662460808080028988350458760707708223782680764739932171566782173408755834061345286043787236617236116898966124122798997956300353623955546213096939225025307829519018195082131004013638864648201936945270843041086732488004714996978557251404609226994051262117542345925903639666994746259544594149756380765020738708774866479291952237845474647698769866851051102871852620846085313962778554482905233381983693350867081123514206657423603633874778520677143572969741608460526676404670225463889099861149307754463444626556184291000209427067769359736634188448121061355663996709499067078569722867215835554702337513951824591123199573788510987350022609973690857581802968858092859757548149321294903549068833399244439907621370911980321237560971915558897365553136898578057999127326293084606866235129171976566428805188875210162080969461917179171714496007764115510398376404141758288912752218047377606967368825516163258007495802207630965149427607230974826291366920922342045708287424456232782153498781851323468409886575580346855720803861470046180172473990669964669980913419350767399173084437726656518923296356010507442989364224894558731830052463476443481975577396398318748364821586583186093630685533734865426435307679385073254966450663950363544174526723007565516571244420992342303735639158489043661963159268706320689779559658772394688084639016525126485194799396393561248088400925424528134519302194869214328310445471275689789173432992627659988371688817134444471605725595907500907508251378329960167440203503882672613571320565788853681535771373060043831011592768061950473511251044590068280813987954282610080533765314654496070459629264983079699772080668615184789202824678758776277154895317108538250401096209658067748231545523641502544616802322495367468102628344890610446495571257738991424442248335532512543585965480460635121682363603334867564302841882687046832773702595576089221669080225889591792040916417241244817469391017744134304594966204720473447353080859414360994175575676505742834111164798069105430497776406067640530009193246484064061708753055861238395288307644144811845583518127917498916240002774630489721488793674791101054730731290354498491141304036849425084858924543517036344235832575872421927180917024726512186467536219145541887761154868339719522576509024582005718425993215175756277470113902705707055361778531139208095450229939229404758536779278607402350190520725600321632607241692492104591294159893660774297391134432630306702090377014114218642620602751205863975507792890882753778871932675076133743966975290008361955028024162226682776635543658654157907310589739877181304289447012059645280842824232395323431396788545467803740417684873118950854002701163873372743243317270212655361481451120393919218400462366454346903215038713763261234058336713825923505720561198603212980565537746262277425567285918743747977382505419492880566097320265636267856495055878317812889019401430564610938685334941711880147806103344656741897056937973413585835521355262749849099816213945787652277960922774515307294409454425034363852390583259317053786150211240038084496163159758421018747886124716379330036471241262013758831678713701215806262132802290753968214242127282358081411039198438124899053132546744692103976379581525979739499363624544683700450854310095839141068567925917678483198669936893655515490108163877658084993108724760005368758001036446293357714461407374127294154735816456539069296956740746435385762774937781326817988816760866853880303939593238615772268216447100221171370824021084216405262542153816715949165873925121314560660856407533906971019928728817260819369093246178930993739489433459961013859453879902714590925569990835933144046721505447073286534500384294201111184128612391924982158659108889974571548781952724111067585535570137790571650493461975636229177708015810151711460687476612008019185777761454510386935219337746434050055727365112085820480403713272472431585709196974652725786148490993552697095261493887450641247819360058262984032973938537680829287705437222490390628504489631883651046590729482507015364777382676560953951958879418033687847290545439714647004809815544390028347329450830645794785629805551499650446661052269489256045731412517723169157825024297154451355497832485173244091773928198369453075071777060342792406040115863340204941890051106940865346771929697695569741859509874004082374334981617447387372628749942475937467681024843609796254341426159736444099896822584810518226013101099093629919879391686819507029376679540124882541593841096072377968626808652622858555643401964673735599143937491899792990612958814072223188582613582393014076483381513278202402039379263383104367878209811136628653955067369084253058920386985471888296458177474621294963807856422556723893151153163819135427343452789040859744701143774274441974923995681463774246550597596955227008299660970170803408103280475143744607767449332108730629410216638473933650653449677693437729149658620273170361413201136438063825814514884182040589923106242743074188119551422100939962709959113817805031587539490956784578883662812639892970741235580762497247800190016744021258959685006508315432053027248095161713811011958924110376258510491481266679898211456006550897283341291602896193484320560337908880117165794753921407929333194857685591920512604952497035453464980523590548891135898232030297023609426670152736329538537104537611689467517355010746607774656254876874050566120582291248299768458866149504645608126727347350641179710386665200590188193871720195191060590999342847787249775884850551578053683100844050112129903800914459429939389476454177066637957073175372939478348997382396423477640929471710464636282250189229763665605655543966134401447800839838918761358305642683018880211730436474321517264521165165136032705051960249671045370676294487439914572263740440254543466020384398891098541233215697790460375198706260643739133787131688154975523579692058308352699002823635257648248297555758618419648014722542034499196622059876651752444732515146723999333217279706086813834858576699931760190127778249604240625706643683196061120166370883937800584777925334205205551010227737298729983169515723678092730189754881080575842853099390647840560601865013924810423078491312295661521523051564839758063688431133181203816091305167146113861821942369804173048094777146625860178174260044642899014992051931581685568734211523695834966115459739053399528902058805927709650557091073500132651758407923619570368919883227158473728190052759870874239485646147443964044499427390891230744982093172354177491279929751804091194443483946701536459809570458769247899402634215390043283618752920302390258405163291429646885225093523806298976927143160177761798522157685825985847706591283103365521435931332253567487681404874682847242776722486687064327225073020121288826620743125318912894746594170242239368986929081773643643976968133434843034140081626092710292458946805004455443822001271601331818240109527829429041321157301689311780787466855290539437635262019853614805802716326287437569939094626016284158383430497656553673996444057290781596330488706614620454648188329490821156505930858773075346592209676205304587714703848357624887762672673968474656172722858033915609088101844914537972458435052000165639384784886888911455553781049677371415967433862089575977695488123546705046878674019693338836188433870374531095230046377162427347621781434992316617670349249464150448506822704604659103413467657380720183203815220593027595876963642038386615999597609431115377050434748028888673920180240892445044323699342850903851885225143252469347203420922537536302510279680845689181800313388383129382893982296482897340089150332809144228794342335558299083593438948228051113441700345288967146388690601859711524938982342124249166220363267683283069326766106555481115185516679858438760242331766550758539088470952709137876438131599173592876133439245582683650743952033347784878778415988502306791733420250578403037720217550803053459577520470267548224458327380554693120953649161634494169423937618880307076098103725747852503239889505046870989570989497724069118247789484976480464174571015808741560011212787526694042104308626378978510405314050318351081807113570620312269654377006549608147512566150722193212903704831786224777548756089726276177180113663428168589570846344664483428375995825882230959527262360825795645645268129591132811944905814129903338482760433266405259432979210187643975419222842625091594015708085074568010419412057064555615774592466086913204640503077119323838969936424197941968958832594827862749440357842619212606909959415277141481481201022764441465789002640028599224178508230780271697524312530123674708111495872972260894494549528393551400336889305797537624340924738464137508977183961345499747724825473415493802403234990852312231589464206216505522013552104900909753531388309705973836538970750663080660746040578218002132764157284864344342985207300601774499107800844639060808199689279202469707983344293623501912820998117117309487135013423488723031123391893334907161746578832226871728215105062693930569795780662314817806510021469813092301274603909192510012722741144786531516781116571114732193281569797083064687871222858842281378711246244376713437351351812626659866526709347229667792234840505487889121381032920695070937513543634021559413811604660143305232194030883960573561295982752501404129026871558999383199191181714711631660165495023751599076382863860239161849638364522700287382082027253266857349496403095628659768603950739556841686693940320893599009875104465658466818136993427385792441956785791764997850237603010466760087680572284258081954781321010753414065260101044063457418430782518527359427138854111993128137752693736832017323721615934774172657956041525096962295113497341977986485943153074694506194067478143296690656005513911041910379397088956755203319874311902323104385181453180595566992082219027141794393786795727165071886338271078158981076948033639946655170466435988449254948084446657990922534553884956090972199889530456257376559811645893936682219047072914180137051718381752979412232955788930488718369843736440103437189456902142230115366104222590624817798899906295534459284970881734968414444538354467609557712589412121241071871337922521992937515840672603060463917719905347425515609895156097540430864583329646511103146157302314525500152374081669381350348575695361861340244433919857624641416340742215162334371753415687560263810100237567403396238944641126395321152504316887798672986575080314675203338961501833492015991645293053725685869932619259594624385928332229870011189810802650291450140435619121013692909001559695715368822968448254961877706176244980955486701184346569259107769321759046119390052336586398082606848444694058444455130896027794196634073560921633782099571084831320895084134920746067364541234635993676011519778064100578165159271197461450209194849394155249607355753538956256940156776183025341801893570259688399686818253978272247406907085867844650047591670611692117092225143222091639960696168837244891036329782741091847805545878590417127451190498430779706115128986816073178001917082185295906012439029661827837223907243113314032111738117857481894812526280158472437976046842092510980627129252193756660194609830184653859224461252802517853983262344430271867678257434486000415127463850063888522440700257644009450724562282714568646018180179996524710656748877900122465047160265402690773577020423251923304535575807717375495511791600387221985954673305527634637740496913374906242869919018561220131491546500278627608444664472167884364391431572066011112375515523463915566781450789645111927517510291009758184296422554301308699723152672995095626179606032863526648511538052803783441569064220911595300832633627098360445397066019525678381512884279900974345003435585528415386953260486371856363369267276872068473341820695850671745920754759881227247219689294598852341568235711730305939497319139886559305008586927828364413229866650458063904340848367241077471870276859466298720070191772631440813528295313585996765702601863083566919080846631344788586087681864578262888266359275217920745788548870143006027494987336969299113614098395842119041750945186369967218370565476111322045085133621284628541596769264376546033110566489954087339410596893563796372936811585063067505376660985792023904067007772933227708778981631845649420806950492779116874670672224697560391530161216534776697184365541839990252727917179125212710686163375485148997579872753460298362458615162991597963335141086775694899699214263220259615483005176042764129249699146281043664921795391493594487870458785013460232299616623862943267257969148973301649801631555957565229705204383716292303848406816543583272876630180315928510723178483090926697393170384572792608672804842900388612853782344639590161861016694631996357585107443215414848736433149379500070853894949705873475836639271680332421947538940179151731807841121145692105678557748856819950315205154206089185573500069438078505666576765320660307385639273189662747540111705006595033254330734656940481792440674691507958438174659263940501767431402460190256486196246117119031920244614032778815017794996208785820235800099549900830923723818630337957938816605712920232506621495689642638197947618108511647324814666952293485948183525582943675435790189103601658950112531629408671615314660657460977320181049904796652069954463370952492880029400920109891386631726482189398092585952910039554449588502538763598207216968720220387788414669496241974747168575151852357240977227334800214478406990676362116633677825305455246476755415686764980341859874026483214767663617136149385511134168608182919605075245219962050832508575050278470641944381710133568662202373431263862430160700302551119794426893412375126720035602758257589002148773640562896461331311825423363799302943374125630062118771410414974589615902600172520009763417451976671568309585175943011962413721462815227447701941921594762409674132969748533150659717928291314048976823093792825708143439079598232562163817611408895429384283774793671834551924556381684370316913821196279031036751972092069768716501834849301972491743867218007789737883804900624380802624985408062613833984383835662454569109127407132211362525926154048726295701813237523276721047535088515767702025602246647400228764935855173772591776495149402774759239122134231580605496944021430162852549126758082682827930913569776962238416620592894799466837268605699371833215674062530142003678412535722340632523990737346122096477678481600285104852132132304656232561426424521899195143552877056506146638234903003766693760790018896516077321684303609815237269536100076789853227908872480553073870389540717869662939722954663030159312490936832093023648191572220114287627654783139270021179945856153486472773681210379854807144201999506967554418995482831270693532869651079894573256033065871038131457730640808402770734053905705017677431540076499938161343441536789095075598677252103496662221503265552348535361851665119367338745706570140491321838713055970511274207511216237701543514531687320573989649719035328622656429108059933910916390755845274036633601238715611244624483341320097555717839097992618521931869980254881915225339102100252782914084535606199127229090320880873589347713022020928166754457449408509245595221252717950674462428325751782827973875284469671558077109235820088103346971773155866956994509098847722859820501717147498057712799748434718865557807407677458809530853117154970099346309738737966745583475165367955155801588923296583549972656789360530541002586918267589979762964257732013287627385732862399667919129998681181072392987028265875957496992262598249147863487654074171310043300989305261671868802675094587425641939411653678577675259697647500516981280647663349261659072152433000880329569081270238775048773656767861245708991717552396673046826024878489551119210922242238833047480160716602409324030031013994098693753884504290594795042136072534808907974817580002974038717025239561928192678255805985586315168439935699688796022688605451117344315815712154887145204032118374391116603584027223708964236903983967489443153169333210618110006447571619753415264363329650190598885615203918599185269557249607739460063563462094139102816315788512741282626421728428215817153181345470670812850276047919533043540411574232755780261670358756055586098240414690047074186561163387449787780520955436485029693440517387774887196926227475557916804811259071646316019372316590573231990986784009349168491250399414673406079235217390500533500793517683075634441066192978477116858096409888227672712711350656773795634060745570926310661173834261867037895662401580029879256384620610563524015139915067651746598495652195687596708699248530207153901985107456302109607398157218326524468637854482353623513669278404526365616988151851602036438674740564515664430831468812373292200317707816228366393033950799035277609967843648339345410555300631687697751515273797250057847628476572217733112231720862676027659636466712640451748474187053994620508626930073038102939700182031750787407388507326774603222172541847480424409517025630131190776278632304676896791402931669823099956462649028323706840685608269469518631866300753711206204057815075733597538589275692625076689537991627929709784803917221849175127140433856555471275639317414349559645982143475462445710916015150789543400117216093727547784782739715447532510283041861806681750284429564411705916809479956665844565642401303558843820579683179239354870487079253700318814909202781202745387356352778200523719920419208191725053076541806404764568240737614306699138142772411231078782845659483649403052162068548268868372846039702534756011301953438469564002911268013742960096640143939876905513539135042522479058211671521282976592959545472002919905251873861679072590121509859071324878968898855832317308367761547856854310597928131635523255055155970630811892217788178307615930067245437765800691096702469411186030259465728901748799611511758589409885356965105933937092755866328263141652712985418775834770416854979150441521345742331455775337467298826025587607000109742146008802076395777253770517012227662220025842974503810656751563748857355744799471007439003999185937595953592936044904451274095578494681791408851436046890047023672242530841695241676486076677850116881128131362975758769829098079744636494994289002044348656599844937051979513535210183980786331797475182225261950784515561712540520006354037779086796631731480627231558625574751741918807947205255229263595459500460223627005110331407236418301103851736467860005719226076734729889762454597682883798107713647585748924734659326513926890755765832706569949526236859787477764928887822435712736180511197104683391820458917671182865049024923868071843147454626193486062359935908376002654175806499585578080815076407533553716904344802911551556233643657362802184892833194018453522999069822089273909250396549531618447354249661669415910511432227622876301180503246408382258276285465629107553588303096473500682724819892291111872893321594094954152544441569701259767361377394584647847712359777991452740032116034635538772052734288765112123689515253131661500005532087773240616077264674478397416875047521104638420492503865002909948953882619998270150170358695281538584169462493874961015874790671624423907537253184933936495689957959040291008507111899478523269315830470395065401730001854960247060699790929444889665479501698501930061271500540300608883311848633712870210760849294928288040689284915691351839761708868575218010825882239368902537597499336453694800129657093362651757656013639753932676211119287983921041357738986965168129867694263581054925956861840849799853883180444206916182749262298253259892529154134552112790535732524005831455083268014848552963982069242168326664488092071917615358427078530922354565664956082949889987370306674839472847552295423619247317991278655991615327591736899558042677927886805929557095268056391648542942530125272362906977929004451491482871545948121933681297795220505319163428071324612754988479507907656889920517232218202367424450522709651568720109243654583827609035906498783187715559615711019773286145159139344983911281700725437031571003099656288369358415106172760904265196551136166922562441482960414661765624687917095625547407903444304602362140127968878773382945924052807730750820651711729515087257346826280386480694875635606335769874720744687451356034109065795663453406787046297355636348370266275043265606108955631871543758577420926563809172480334978118758918474032708147270399153956556825689069423086775928779701917426223656200612788731036649217882280942720313206942084545419079227994021903753146755204236515009706968145836289437947837417193346392026787978407790652053181624074162586901554895569119415291324076863266025243810429251724937861611259670617905680830219360865594915835917899777847928170792108818626836126193769094439570932501279241983467534531631738509112885026953185549515215331915368245935364544800241829958789226175356638564109848840949115240516894391376996011401162644831731195842464597839988812060265893929682657442529692508301008766268063149454156584039113476322124425962378424771254760282285714205680917965140243835145351992837353467636066846478148811253013497189504174452604948549070312997088994550032341046551629001555040185970196215123738494801335580171580738378388927251923575833265179458648847983407746199236511630168794438750949174057907724805924301557253886313965402404177959181694876851346631726624764383182372344728077247092115708982069069592961996068773093853782426211602566801791595751272409929200419617801743824379260636023872151608161957099772275060705980731725366534218546786579504483431992776984272119807013038374436427929005523232976388361488305773434192139059424693573531752196366529522288549661448354995153366638225578896938791830891497130790963759794470921029088620387992013487083565866305266212206530757769497017434250896252892760414538256073784514542548658191329509617612712281820523714818612658361701328292882372940154885857575858706416242426490301518801125513604159438298175984367921767851705139491131171441406756471430707833749489309397813832250180751920600369236619270926873928225519557089066521013651777074213730148241112510744549398218364985452270857864102230097051021104564178680659226743060137438171210613564789779533299874972776697572445958515552490761010500241406169979748366747588285758247073903357106632778028171224528768985904016794522911990782044314726122204150450514523864696514847565574109272629306740695641343215458381366406181834888129089373819638860876335288037453026457527651788152181605101479507039004307219499623452623503390787791470338644134661985423098889440505528623709226414948469245664386672866820972649772210030991742414544562875096590359666521332235143039019351343592483073614037403044122239807516224656337427964598452371003975934724117952076385039325327749849095907137652682967532961520411877566455682485073858585848899651805481322722860006064355289919734948063544287634356742943424862073789200439671090667208874458601893781208170739578184214291776319277812062604863036608356880767090085472770052705786150643539654236956992949796689920791033497990228037429517984762393833682623302984487305436582916885683357068244266396544119599477426373157385426045468241964936995861962590868995348995786693966522083887908389469318106484602716559091258587015584624992928232423541308493223002260272105471691036239205662691839487964302591298202888387526443305808750319010393256457854688438603127795925370654116410139527821184233752517742907249582796872871185058238063038674211194896159417591985048995215844078129155734074314589864405486832777861410256350985991787929954549495259559200248561859718771335679701487549136393652079860305082968657604645352139374744177283240160846868543097196871775536601954305091996008373864839177136965337077446997591677373737498632444722090436320171085788236908162610252986261102107622143116015246728950163805585702720683780098504868578189366212102140372300607442279071493516307255874052732078737293979845763041152821075507209724931628356814720871743378011726391336833775779806350802436290280099782854897815049951560872163995541394894299694553234235265876190858111212724984115563032980780554566533347649029214246755038771323377137138465858399839273818826881305638413560345390746392817311549525106162020182195238924810788714185955968139593554037000416260909561352841656040076961143694820400361082101489471452130062403611447036534148058860420307399550149276049215545930177178840085951932536316309414091439810388707170498519649793931677753314907782127918690201017242055351104208539914976077090418525363763296214893087059257564024071528736361795576343909246518648734813660342731765696591013849268441294544277650473912347186079023996764451748349416503742464716180428649589026786822271357157128833194917870537324235340652129142903020157647547063144692693092689104117340258514945151508351737795756657696808412308378800933939580329132840588545611400935581944485510797658474350068276322592871827058411419453550037504658820535912444225802048210688508580591861135930614079720394460541620597007364805345562439350770796648640982882415177469506457657711844441398526844116864659503133864518495037760410424435125152287461627205558573907429250612508041337354808615905458006984149687006369862006482191575023973349525305650600859095155554363577896134900955838561720489270295077381310276818911134609953923993782526481762792761862259041577351674693072509423793913784673090130752686185891433980863608588115188357280811940246283434798983154695790117540871128813929071772653634764966257110166892922017066684774931919649273627854987653243670070297462377974505526848651911778557552326785652802026112256930679312619222560249413850532040115218431345427969382248393656728334124847104864547243335910087661347783655002466187220406833130286987500621841558989378844136182826203624843643497084381275192824238221324072481995082120733723924873850092032745678006204057295103230407223407285865038930055358828990196051526563475258273051141064681246985149373139049463466352323670261104101690936645692926416740407693781043196207906411543483430022972903346703963488771656113438799604886253285588654655568936681759431977611248104623877364392309975437098725933418690478933963049037817388622485631789085911856364977342753763899847021789707092630985972109967900672793743423431715670919750632990221911509057478949279833971390283935850985420206836805837757666419977839296853032490024429168267855438744670083406417700735665776655333560314011818359827655163485276186886331193398010227032943485357835763059294735051673812052981942286986176570814192422700851931892725671630819548294238304372767443480724714037528490634749807951677855599285629565733063380035390387850268658609900932889815861400967158890767577888046431435062158230378886349882484004474200147566871141826660963031042726184581256587936649130566286434778964521309718200085662395768554499235561877384815729255577736617862326597833956964243448389454178786251177115165187524320551583700433557983808651029399313012955700679951348653440529320072074515502980488470857806661286523894303116974964099324827393160207298527507013129617977201124677360392917156093554766491787298869139897945015132037026069800643152761967347573898140659341603064613644090553409377758642753475978447348847434679583132924454423185304836395389838318785920265307897094363330158598108483421391083056933857462080651431418029442662182846592083900611348605638274856493141439763456077612650529257323514958197732945001927994144677015609798964183424480977307552223540254368036047564280888456766361344990143787252064291750068318892938125293514486591141999574646884135294100320531796771159891969749026094085151937135991210383566008980381909048667949579186564164030269971175567954779782473697042006859099934044338119721325462003760416334586394120374489361001171144654449447267800555220078968267446409010906000506881584951526538996792084616486791450503697253852707110056136540264511309957226082660527768580133095977596449840965306621978703104074746583584908153145987131592640271618077546213178920972269967262096357490618046816423541408259958570425032565716783634846365975278412492968513267823310197304038772366413363173097725911405224957269660579006099132143930708981548741514116766213860161386914645662022655713379160142478407181968249556852741993599453181346984057562854852184382609238036402945444607101352270462313360080090492680264049067328253535131078060060546449894895885965483405898845232286549452372329386511769842460397392901549046407679892283848530111028968464779033449215289501588954740448941498659371716185660736078496143156304055714429395156845327468866115689276581353038814043388125619315129737869374273732757361769565058326743742581857419220235643381775331366547543625402533345129889959000462688785180060568106764734991304385967781791356279206185518860604298247379119213373119690907736179023064101886588504664879788159633897576943727163778080702752472889037888602288078936115521331370158257660083208230018651346864537396721730832253420244067917642234520402826846850854578846693816962453582357595878955479988876996289440889616320054367605637988013100688869987931661471327196493932751947700880720222914622163066416770580188949616947487475125557129521779002978675284132701713761657808300503763180810955051167142408634970205014089223135441612480767067540747858699895685191343149750404563763540461541443672153872437145805117878701289739918289796043760535295984380374239754313661381344280890791808100540654092015124759027305739057199805006179205319909061312756979782715158670747038012545356046670762733305938691008579670282954996678483463980111086462255460525433031213405042223519601532270430492257264024773192403895658769992278419295281812102899581816436414742519993761615863025734576035687594391447080382067468856348085909576160179362534053293225419311029958276229082398912807008394606124101748475358051308508948472121383501188466392263983560966965456723951273194094034037217071316082290781750515663589119096027646149782851792890527149526615504369954942680829125849820703650776965335727014782905906877866877362463872350092582708516565253596621412647995096715364113989365126959420524122873811187681646180483744717210422567257831689084796711138043388733703596675684650583310673702838145368250657324919402302665958581360853625015750098637707110947169097780265175249691824365090848175765611145531576216895093783619174412357772195383862932419263016396894010091221946315540518300856961741413132712741390710918435850723843965959612298711253923652156522851491816444334343187062276830533524868970231805501711279887745465559022510506255534782183385571330511200115139500378881049879586446108932072205599457005319606281677020701181611918624082120662163814333913574574010385065639741988396059021876962283128559701041004469448807635002485932959044750577093146152751018023474904952782769777650505535265244983993258813489871331498685592172145140033812463933746044395252712384759491218936599301780005217403702874509115408706206721145929967318225972048718814712612942861408617648847716020916769231569200995916949263608439881048383734003043861754956511071170065277728932057751642528827028121482629967623618999755966362705742284408434086553791328258720178304750938975096035263120060861042699696240989948881495017434335828718862968473552073825600097715702401335870489836004211603286194542845720097859043550752593576668592790614722078036991693602906777170289632202733984685982545313656160509286064954643180331454989389901938031909970733276526915547203776540534223772031817846256641721367705524072319566332081693525268109873203815317508765281896853720888823485467098359726207860134611692264532700063291472073440890377805992728716922734232383942674596805091689494451833178834344105844607949207809674821002266301033167157199748337540761118820003151360234937649186509166588601269571996360870260696789194310661695054332407251255547357539119998206214563407835248205303654913640218327922736651345743626047544829916080695370429907376621605509377430565689519496437468922024302143205783539521869740258432950520353106558866355124681702616068276180788164603659300673877710183977482237125800411658674015479713076799223573429605751411789306276490162972371964110972011260769792876190618679174397828951084923178797056177063496261964963053677925415595756136385942574048446453113335057304969018508830470822649127257591114684629559762954466902728369457477391265558225991813490292427468553223275849818589417164905652565530025747744994260246827221146483331960044709523202991921044456899913317034122699708397898353153147784881585425347441628896424858351355599463013335856050501115999471805852782016493161368233563186607961009095562102298409557426122312320156642430684833465199878058384535549972565372096357941876345596912477129212982623125944392277430463123210161418314323102565880871299744698907630461532626085533191908691184615078844915340187934155280105828134263238775703352866110735146895309290167883206213636501924597840345447591498492311117041192520642003930213607478304340732268327962060110803577135424280857453297879024042255826613969445211223365844997216971639449971021991092117859070201074489509893092457339308768371865208479907389242329036596527519860378521519820835444043931586466277630320712021897823609345359927455261393320648422231450463036087592816754113510134335049461530667042653726492297210618207586580008075423614714110280943208278678207994546684852183048183065361545893027353454044535232233697627225106252609451107888038262556908927687562289265320493855279813563671496338781174372520812522158238264421047096793277135128347746428025522382314760214495307710275898270722246126019485484588832140792386881248573658640335923610498735936186090178731228378220017493641738538876993330126215700960809095200637925189117096783646254563973058729162562773333985915378472200920067097036061684049021466405831750777296703342797100928601851652456645544897333389549174899190472107620055257705856931874324098400389321915160333833709803909348670675234135525386445461893282473110259514399588847440503145807159523242725403492650256162532374449848772665669027148784500534349686756652086032777282792831859156580432940231224378944580117174547350643594192688443440512189462935879599511940422459663148724051251025256950316863531551588019336957666588567401920537498327051465090907564508701947457824395943492575169807774670590030678343275507350380134778769539873174536047178788051271058914483269846061131098233495309185397473812313775488926431927146079894090913566541498547389618287308950791515557347352664957256404670880935494031477941336101340807577410016048776739148052153778947169514950688678721282159254573083905040469940734161492788415499969554623600744149268488440461085543564582602458582739436956569350890273898603751627446890073505276813825949813340348285861102290095580663040943618525114470827103636117369872704632875091508862969778846685105044938547779719589651259248832020522662210839012060357923176309138493754491780435237732515093456915003784057862902536436200328502240340674214414039600682848491352135790280520615054104086650591861873516626022459773740393492132221682810854546642702375505522751692905590002119525688144290046074225291675490115646841610032071349296019153877210346629885876099098448373081776904757076507705936913746607071716802629882938493071404429111933332605550109345123818730712797931988875042337901846741849971735416256369642805173230606435258884391478031951562871403021919440876420909918355599701523643044818717495250193679056841741889074964461177793959403180660337649362123749421235390165036430208208219564814043323529951384068781600596496415624829403483828875534835762607133289647673168141957178582424519660925496378472995567483647040290170224525127757753180493073335465297682209140439165738434187699531427658711100528385745043293722267734852476549638020857189291742329459779943788580627289621640328459252847082549068352671197889029945796948808406470618808206684383265592386089113408057463150207259350232503777936633569536987725999968890211377735271057675751114487055410525177670366504087980589908579196973741700554951782342919146634806254714988967121177841917765040354923125255487785035227677142801049072521778870178830321576914429314531819352823359700779733376326400073850232155764771381735164264527947809666971754911404178090067686250308789039101413072823674588644618908796829565981154597367363754143195076487488754100192350896100052070873324457247972056017122063142256836892189351439300313905973076087363321983108589334003385690770623900265441402816772128089655791367311971798399089099042188706707845698948940732981139627594304337328247550603168748859732935299405918214775152776363925047411075970623361747298080987900690571275323649555935216317407472764320574407257240795714586358317839266199830719631500549183526006598505895746165000450556723168686159359805819952363850223043210986811201495480908840919680154960145039736625152822651217758624180216842526424641621489140407465642733722140810464275447377448968104795730258460885470420555519095501691156910487100354668063655665896191153285423739691297922124950361882078654039761614713898088628162928178942494423303655914064988894180935917633751964246083248231175988908133364460018683090784935470249397077460522562643432815585325154462218294630924538299456946428937224118223375576665254105678885040562972121558475884780561317842761183602306588066987914883779959904371074951578709208749671758823877195227534798302143776004417500066397699194570580163446609582826507676836678962892018054790656304033016057707481388024306793342615507805664524120464821747950309707726547042114276826042951325345543528844257413136807356795884899479530814148793923849336569904416139157820218400828686462827652951198676085065476460440940070088271201581717596388784972112016111307401146684086514435428299056004509512530615204257560031419075712460641400619269013525919590949481769506508480921148866864391607593433454112318622299440045031707009976354560933532717763104432085938041889487323308347031033169782748227604846270977261432726565695970740856106968539907096200747108659223376740315303039888438002895543506264571245299119790789415183716811850993162880548604780252789888771716727301432834467615409758703763174187395628921451505514320152489187800440004532200729946923498248495827302909513278982613781649427071637910154931418780101784464297393658084022779713941044535491259690678107283107267263520897707313636070109794179405491024508881601491064646858168538487232204418673977766866651327056060561686888998805456814279780290720092159779073634959711144210467617327204242317167531316542159926356210994305807677211209034614117892202468499828367973962588923615698068906374456310667380624074018015527011350725781115373972485460343780169225296942795211851423909023253025223083465450473177157900420946252202387617304224301666972525605666135416745591486580294817996873657499287803080949789956855909118382216438442569184817087823687581574342087182452467782746875688382191602253783358117903476994061458249994818874819867618487487082710763779624687455965578904894920696707391372753549723505699303588129680595026570310553298561022932857354876153409758828672795068718276721335109961146350947029516190832499877510970756032199035116680643380450396675910814367607536546107144112749627258328609411130603729303572487100547317754129975290090516325615139923190538482679770012369112460785898303103405814353512111095504346062458501470376891872679579692242058980825658048230253943144811526997670398541614756441008331368634455825418840961636188950140364930874431488647563576944497908893060043193474945751259054929339076798498640224922279784167122379894791726204888902180361521462888109601097671596069803508867494374811892141738664197881385447859120693817081335143294773025790180829397354486323647749852522479539512065524993323528630244400209232260346581226777465134319120274881205893308712536334323730872126835852738251331537555590910330528200859573909812412164340335572621627016321360299204454193873458899402021760090552169725071401331835912663465247250354110554272375988553567374355793181652028145164891861199876145629626794696591379601532460532362241997691758397854594221037056852893152044436962237016749201946876944789515620728636569985496171249536178111377085353842302985096877650806500682967416344120616705181515240316047537366195724742285184471738853249045098420230443650552067577048628414822732422763568812023136245308793571330689878035903523575480622859555710542389349461049086214516742695652384024143498789618252650281648356164644934193356674606696339704026339443288140372420729694536786526519697397721613496965407811181434874133290185859276309959828084758213816736645971474305049752833083550864925432365235447920898844432011072686617321692691508138446547987394808946976453203794149542169609505598966434398542217139087836451423641697753103311078945967967666551661152560543125426928840864854616812060923903166822576762830651404006265578744120234655327154943690558248062117527796179116886090087680333641558921230584984739018543529259226518478673543393044820130769703954231870086048221704006831544282215457842293494528729663327665940766628620514085559490161117357110003987002136393464254053703828510123961386229919584657539449525353874202588821483084245559997205195527987032366721862444092854789838154878639246403741048131944547298045591185564796848591313418981462653814555189987372807668642791430081130452522142548712497941594054073337507929008956405496486450122910625293903608680974730540624439577342913109208983211771094929945857719478974005675136112873289181227825546373030864970884073271416454098647224064579718525500805767040005560322907649296341602205440765940023438456090246126097624568517477159425675279558908832947555217152520422402655971414031953521029027662353931553738862863384352887090590026136476355289560359599659203997265458360899242719293880029382741928935710510582847877888147263765968713259192665873193699264642684198179327522878397803297096767536319372308044484845851103907782269814096686757589181714579716589463046560716370288631726044002792736530108530914544466890518990016773619470959723636506173980412875990531637172817509319349638000118939542227870858643354534729424390852262955086905740056286338302729818121149622558132123284278659097771708985911237489809417269940374557968118771783296627720817696490944275883396855528367531689296480690176919442724699924371674360181918549900876969736694433605322649534745612851701411130249025240074890160231650451915708062476554520513038952299108379802798047424708421738908299961982843143417657689108264523859666388845922627791892368747085010685356094767715196719112638606308209093990404064373804042949508892895743555303864060942691686983646910527380907623146701041385201927361669931845383034631823803824705014028405534954900521650933620539111329588928263727351982587604302375287124765020940560108732619997759235989237096449931471590602553137969113324025062532060027770153585559155283263203330340689578955440684875603145219386129961812970393371089161764712483892393159395123785809012912471042855797070819285721445685521153695096550056174955636932843392136782317188275356754187791617146156726197647109851265448369660771212931425883522809820478105559256442100099346366974224995110170604489461351672213123057632203844429445058426532208867522864136971237416239381883886421309684429817653331747363437607589453079871185765133670495234089680623282360408929597151417394027185874608387907154511560066421784716134989751638071270405793446795687073774133087524288364235863762604658801618277438131425921618123088998761508797252696123250649966555608176547149419586333611969207913200840678245351299171126779541841548101910896502090222704810477478437448603677681654551779649928144175588937181041359865465254557282237555849750535819007239140076349946064790761160965877435917733180244325516190906579963393529363306541976837015812396204733377191243859409433920749228018325033596244580307205104875269989662848625985584699589806004096248604199308537860206446465174963900446603671302417444640573106187737644618821681073769122462255842373633989650131005886304035942728600239981321835101994744604944770226576839860412499585858115706581761947856118223907829059121201526418628351133696826720410532764538159679582226638862989379651261245039160041758118261843739815662598473261084895096567394412735325627624772199430973397889533355149116102871016875681267628673884645646942340872737696995389202187206348440933931616805446676106307991062341110335925505413286996360909320846643898517250603461812123850861306593973711028827053105103119705846021335199392802917477831564448822195425107327626195221608316517191338876640998082212670940175092778349384901890169635262938996733841520757018988421454354865428422067002095518955659881765388432590274794880516831677193664318845697085862247586078223827116608804773268564156531710802154008355590356603842722421997357594704992251987234132721276276684853464178323429564464917299465684085815576303467727207744154899765988796948353796131781410215137663707697897098751459789308139126536931948629011625371526852103063399585352433178098458367167468031904656554687398196892976684174690995357159559534201533383412441866889475632954590833619291150315917187985356001965765690685716353826869630518616620003747961186172112471321263997071166431646869599072499966599271295270338577753519084832312406620995208028783593220344969173213478261199071088006161634746689787651530822100570548166781045039587677850092540952487959066271649884642993069915438273808270014757827848873906563292177005333133870569059313959085686365783428158374038828568172795940994399081625920508776172693287476357389594478853896592010595817210820230244917199387671146877888751092825218831884380383438772988689612447775728624294658650403609303223968349598882272927270145398637126917065519261334032352327846304251237949474204847253236396109500867209895879551656040098277328805947589991144300299763394482018354833489631954364410474795324156773182671354672526537259406231001472992122297669297720984939263392673121185595953402312248531313145519641307412112902747342390780487433151973638609169882232381053414409045580661498391785632726853338518945230546114506243858948940225111447899562945023030603130779952948373922211411897987133670828748519904226385475710441766083194216213985931542398661321743045709442811054620719929182814588988516638040664629393091409639965714643812633215027201495432527665786667240955251828680145808085894918686505288858451769504504281976390275381386149476621457688609098719527176851502550429385979174247008114940552572740898805589074814848902476044918025545909710334920364959782377047893984785939922810432038763076730137981413296263633433788333035795705825369527558059041154191174211008240510916051569564338198330478348866213177746273896745342522473453574348020261864202122372692514751005819420677131352009304335619652728991465718061063911953367048874591442572927406230703441673803922433842613941763167276469377312595499616758592617641196127902547929017205623601534570549489221509194974800302415796693130496997512667455973797037336140084445007358041583316019719579506733034948956584389292212772333617587419653964356479979293116269603791646663227844406779628984419039629364628135416694229125570809207744471136143828757446332568061261706479630540533326050195742711304385286399582237282826721587213893775232221476234333524267768796776603393521277176232000596629046292371125469000630572218007098107512170774133659957928680434445341257620674755137819679096580268773593423416156659812440644722488228792483740962064650843899599010329912432966567383001240526777788220824104908118340501707411620378231431048677891273657315022785993031623399517177999685406083673904909509146279624059646653087216738194907781051038581630852858370901107470005328688043484754882744754952598714597593319631691526228465785534658728977755652821449535746677341253890139638667835710333080998547833371231312310725124969945509622207532302003132694638859066121646805088331281797925142779678625678936595653320325943122223568548803594295211003299462265555059269098064340414843564838277371525783333591750226384463101220365271322521053344676345331854460431381534735722744771305929275936371154199820204433060346286396531436135037002428996324282029867402004124311786571377300501011576940005823945880083655907968378069518058886869704149721581355381800031243685683075570262385928584714957764351213813026466685406392375024463802324517846322265265354324264772608365703125455886541565095896085026462858670284423125704662620985127587505648281166310795145741621218989433338883106442679749132586335560605713304874211558061949174047801100222706720746380902584018250263420857042163706809088658633711787924909222143243184921483209320667171797099086372748037342652686397529169438176584144741778986480182400269998629996791859574709443398205579966873230811217299833486926740172495450170224398159513280420967404038449033382943296921754110003772375180332198430947943688823013062140882847989467484063092166792906666038760076692964126149766268009388043243763953912939324981722059719731304015204952127182517739213365490405175866787346480610119337744491384695999543491765476444860008731980349045165451617174598407831333547532638538637880540960850772440662422543560196823830773469770856689500708686474209434154070406315237640989413981283599486322075979981867419528677420954970299092144934329003536735444028970883098596790833735890375745406049429689422230729739678664095420510310131860227332187202163288659709857240458192335097912620258585278186579375635600850978593357776655857457018676781543392918437269164319260126915296326509073910623412625197174370842212969655309833589904015697975043846316782452666211869542189170851208210613078006277922035922050833092037206856267648262696676895936937999115902895266519795681302750379800652477977765086180687006480456495967642613765033684880782641670671012560529497932215086896289720117754676599591580657587161912041339404572517311691545117105366178791963156617020454427698022789844570619654692511226869148894403938502848472395754446513030401117575741526452114570644433321818510744138329777947214347044277935783595848225587380891364432761131431698331919560781943818898955180826574932174949664476944827381771384737440506934383635636296383250028068326457289200207132138887076558508525183031419345036564955675876229689094142577448484244386604649804111807990645897641227300900812752175881561667730489810425643760779803517463062864135684341670481069598632300229949990725690720442466505240757738077062594201688700587828000678477242597440379910919007649565519233510599192557797663543691664103477620945150635615736086049016171437656567965439282897662861518403889252199392240873675119506731329095808485592774009179818638996850800459168318423164161135194062480650199039782748300543574002810976823998110075577961011394637710032022196583089312619890227730165328212336091807315993834732287552948464267724184081071176777173607541065915575622868659717986772847721066289811166429435287292763909012926497227408403600122485578642619832168915560752908132417541221282558100513731778409506121874470477752291912483787081314278680412755129317175562351614733963041159731631750562285638320142400758290812526689559800744292469556637518156654430118718946530349748993150130742450352538925311475687736626230017086954077699040134026288761784862696187498756464221660113347644108534005188493733520767690820934404063207195300555491560046642890195924285776227414246658595924273965466394575018944141974080204172316980688870191778751452335490782760265857998877207164878621920947481373688224554803848777933240210938018939018288534453602125520719391412990935130502357896410340141142170021850913434618419584989484856104517749289658661653669631121212249730698222234450881142367458871085780626148692017762382985094190527092958496978746786397073392574552159754495748617310099855416985875993989038847531325225291157301261817309127609834780444858875892219670634844034115736667908891340740878380459593051824347394030339036351720817173278517855198082131334340129002873997206555079274066163319768642519415886383245893727117392316722105302772652584650211693045902673555991401427018840847183879061895401082499611778666225329470599240882470276174904933683792549162430139821151800570424823798349109615118672755476031353318947695552939074750285964854540933990370240346288284921913995487422623215087660103602362456245295072947056883638514626103568182069573391679977008547194603513614493471802773698704569089418032364142253180519739003415975755684348532913309424589697265243009576206298131858963501619823687952861129024155405686649667811432175685942463845304769861565490398982874763308350945867019757502657327514091501656119599509928108234432651741156588777614280987292980621577131846820604012463447339300753798413602913284567100803403519737847729731767723711506906673948956427854198685951984172553764192232084809294572218794605512762250493732261570623965067062174699843719412348811738432157559696689564723778566640998990066269809229508185100570218725153436163741582692780959001825504141612749875673786249083389142695973818501350174538133204559555953085063366529242737775637154844327249040797860359948354322983904814660121071654559583213600228681173386855488544463953410261080691522734874961200729668797775665015859219834132581832329898574201469819564244581877932070137389952271106057732445313262422507355507068393526851134406684792219561121574377618128342045462696810247527281484201474129514526774832875922783644195898101919362364988082655469713815725610717731074961753937178763579762464368297321135553700431699132014362226979057088385604311432376649310252980355723649792853255550190376681352747924223260292895842521240047705174347899223586417466789949916446623267824983207820562592638030565515278029012978229754850842663085104538854317560644336650261370934193497328796406621341029672304128507911793374682767778459819785013527523537066066825729998005017318220066434630853580534558038472729713215156382222849079099764651371348014426556136501769043190231492448147665915210748768218133147445474474539911582204807632423546478440100973442149296264044248833652760996847306919343886502914214697337748766342171107158797676659324777631596496508333543112809088909156282077551913306786242480648107696491289547191565314907976479575587882375879339718003637400466545173352828551057765233897341997747679589401293330331097000070648084508169951306507461785087832232185988843546569902120977535427484208286591889995439167965988078492111829015422749148895084013892583934204644271218258221373345591974152499723327143715060763449364039776330152127536774691328701811587567422876729857226568801575269085263834296983115044115847977285325933649807823682365914245308429103273585073744925031289417020245220494733095127232195994428946244296170590533562899257075981145207596456981399620126070041603025312177370964242585819973456289309727009188661644488944733849185926140974854486637969071859258166342417476023486210854545422912557544809617366238048939948995258270549293576581002039878062861632085313371279609606875744928345220369759241397671521061542796171273730727835114780020419526745504906023952899372384250585923041362933769065918059609283393447772082459050996364290916370708104638001794183767758501647540973709469539819895825374258896600558952599656926935018869303499211754473371387268605883506827830019183333522026303599277771334522423910737063385405866845157961939711225419155805025697430513927895471889249568203675652400062817012837966709274450669668969533261312739047388904844832328251690154663595606160771141144410439474764798209588308829678279484839220941434036389990479077736775699254825043469767542735878290191699901715145033492405641002291180699951815990834036619083372767763243585088198381524532888766781819786481689018536558189027274230501692102206185281939949742211579490341946838123814667685245867821495118131667989176081275617976614738752594931026109126831174983555224627519412767549476457604556568266967418498615771642009020257029152904998592601999003914962472488840393906864758837274209842922064908169733008926437178975652804336211147563377151237807377751299217052429700452773295464722554472677462122967026002690401226999335922182386127998008671956283815804560782284475629414680439585812090578553167775892726723431028788437969073452580792970148833981487179918644537982214915828747304173580194664622309930073642998660086104538412184523059215836506334956820675055616955998393456750453721449806091596357954004791994054710747602303678031451490530867339206897651532571224289917171640474742771146046702693393781099284182183604204906909337872711759716455887992499489316699880455985926378752085419849987161936835001538836813930601475782955914778829140283578985003562136677569829951288345939771584045303320371076226736961701850406743138724032287034926458019050162521436378090911725383081765899935738681640434110671211890855135117729419319740665684200413887348425035273610311431798439536655443388794257609482849495176695657730729261883602534411957680401610134318235634108309486641006263121751305508946394849276668195919393072353280637502763844267396680142754210727694090999822985865660899741787228492933296434031408893060095308675244471666189701167011662793145886041535595080442797198526722730479494646174617635198099840658066513927039229321997201560713255169662072696469848804892219178965674977704997594830108412494989177395096880507538517118644187205243963028054047831788520219040568575883459785921671663214555905842667224953246321103266706461664192598767867344569628591737374752685413013412181518173344326254939467773961610135423991821444310416407831093725536682273850251220594989345705347477017326663990041592349383443678584452881490211089265149195489241180795320298577571128923638388042436327151208738523322485336584122233369757572794340688177242794387981763003945168691018569053877773137826243857230798052138934094281047770512701282735233279297618950105524532608415034373931586195205660311090110043276865043871538906413396962035681458394907653469560521839286593660559231340168476699073480639119395274173163356525380319111302163272159644415287617265046010649317794617479676031830310040950849539946413361710779876763644528722050632745707696931783363748783081138362467127778022042822103071740145193726625824914056634109953128840425600998396215912225192083640329089702121515034227397790405505659921196341440481422351008612443980731618344484916766224596666397823782802203125859062298152929290294248041835214730351002903063533949292043097410021823226264199825878094221091953986388224383786667512669782754672646600071208761695065154871207094457758838192369192405755135619332397887975593749196393400036454876782740306421329170743153931483716020514322083970886293108126009521360625104454498089096652459102055979154178445177636780684334387325050582235465162073586581948412625547616925208251348871496088054651316576999058206703334242657307898506264533478379157802180311959410569165790308134794745104846724333214793459710009249568465051994372614279608946347205618122983441418243520614783788377434042213439576442978562340585335041894542184497118713861630029681872535419093583676344941313359478900915235706054318143752264509506830822972264529313237811108082213664669764780009301380108519199888412229188183196602157902412134302081611206031954898240926707781546161844838906543166483338453389266868401021170867045322228182764868734727808356176688396219562210769035729305003913515591806123650994614482359162078366712974509949924225762216935065826546461026986203620351569541436657480542153516440043170941412763391478077137750339812333046465377547013998717146750766020905994069978943587052439271609932379778834434643196520967994860749189479860472524759445394474550157320934809802171692193876081996005333541419025623324763202748139747159287934496710811919839153180322080554879741640542340034314508430421101479648800393853876864500316879636706640576270355705933114498548986162530251438860328882495235189198369914506884190143560467518429533125641392461711091077391580640245179493376142440926006917485079259745236453566777376660959222161073533429886958107394647763580758476274351578906254281669438683927199942830865683269836647479328051357992738860980347840824625333249311598421368024290408714112960447753374143498139196536954090418996089321660765659102415185236643155943545653530917168968720913999233693014906150311755425390741469507923269228082250207655212207985703773829169238609819615370138838660230725160517113249618699469373901117177378512423832172915438953913733029730313424967497084195653952271292257503611930437974730552189026947015329851016323307661642268738041486094759614804036801575137416703238141859262523752603360914324654432763738849476798903981411594425307931408416699784025363732945217791670212823190952259199580755380398295707468942290415008584480356556805995198908924393445582005343403093287823090340340615989373033901264674066383580839667311523847567185925625054403832998636288055583569568301889050386735971983254230405885154142028919810626584650000411400225109414744568243961709805163196347182962493941968946146603602614485177060538127893645380941001132142516643056587752874363714455977153996769124601237019146790266215707703903389595910774909960653773122979733212227601458398381708858847558078193568830547093008310485896910839673765604393486888559224984625155305349658499290327951835204544804301420510708190027949793742664249716863539319270327920613825589527521213728148248949075831219588844479821157842049530788467009739047963608916066516536890197821944171503937796056298212727251563852041221422600846366064979897134826005825806985736177285197112600660744780236270547386860599568221015620710218705137257317332587824553277359423369795719059582644099236742518274749954007183723375608812885003563441487668195053137972653140469176194446282983667761944614107754801488680425726881672684325445427435620314459258433892069340346854942966152546372731661953899865841078746865995325833948718668348290432325339764210613078141517673985842302548914657398176092515678821434140538351033093493880106796191943724880742495568247517660167718957844032167195477624336332435664587099146523749834717875517277566008953837562716775219346085390665232822687416756400571872161667110924988586339894106977561339194234658082962050736212426891105289978453204410635087664539308856373878983209785737374079734460494890321306035342452397004202327514899846299025298792213019874486737425456636363842082659893558141107255336592905845175422596844088135301704498546215348363789972013234547075188143593387306793562254235888846136709724840771129984503665931869762892663002524864166503805471027960421135060789328138902801690921988558196066467314094432181631064511850131240971098470877658990521492647442573395653073626895486248786873139549429081162585114888361969829316205427419904714119672611128783180818476792180721423303321205548507297517103803768458464599848295128653667188296515673408551509367342150235412335897438207709368221144244656761602424054050283271913187245650084291705128551463758888246456681887014274615124135461863053960888965999001309254299181221133378426721307890123608282581919156719777717337338913644901941637667245410463756095434463722811410447586262370538555108622379841329051225558472134963239281535049424452220178583480261075403111953283115198905083048225468499574303344253782679382795680587148251504199678972927205593083054144990674883873660558955479540656213738224166134285483485501606579967752549943181212384570575699248796831026422552073609785490836221261230006815535694463048631696031559295757354056199579660043321408338635052387346331546875317006658989515456794781256580212124375348809743604271549723099832929598522282717257689643807509205862561194662280418069823784378802159245784522758407111376453639597719620359123683268003376987067339172997084969377740767426045901782400017789361170572826099362304470336022062999364977526708185061287841933767332151295073050906814643731589577062826256645201456827447563364430312326896195868087232158859195419854910897319954565174033428304290254665118036954965113370586961905039970763744356432205150003995500205149200042535421528136797863504470008447330256181266472421913397393012792124560108240203837150847635090305306600921899984196722467385062837865787752152233474129615398489687216817401639195473601717247967660662251644691126642737714524100500206769889224131768966061031796835758608148671189583949421929281596796756040438471989251829198572095928503587493231366652677459128328586841906439303461291448828676191761160875478486288056244730823309723340256336297927611226370727348086163203063995901029639931888253259672669185978419413403508878067300477550243312929675110925160926463819849961654485323038944615741128737662192296421555309679841752008966628924087908163104987742535905252432955821940339431188631852586754690122157716585378087904305589621504959646725527690167379787828628973304843345358207526262578698713406686435027328927038623757734020673958145801952747359379236211468350497857642659146095033612454056755928921555973170457758129752449771295835630836445174617828660272764710970758006605955099320324770407724050967724630520704686836618542241478940734478596247573762077787981909972959995052337518767919578380461879405955017094913429815037326958264634190483494092011797550044026196344113565157370424628797821505306547117832623004370790872676506153854006260589490278424227176716998886055008964200591186059842860353021233409012853317328515082001576116527058377801183345257821838500481062228349351788561714960194458301913082517924392910912568431407119736080574114024438398877451182224344152153016719855543901213111832132834546382758795286431128192894854175845257344004527134831583459031477693466467070583116897476862570865189511668927214931678665637901619304198927656681248696039568210219738368523073907887360154365443533893520275440880136541177315782700055548933200867695366949676018874253988042831509129756714752585942701048685984788888437602130889255905869229567143617105138424955298260398679740894144809999308561767782529908150978517183162976443337340610259131649930300408647724196201081901258264714531216893423651307392669983680284451970658598637503370134186388825914223219949516312132765089654920594666130605321467810040036166131980767811479872889108376288882127986585821663696941109922925043323289267722351225282897397587977251570279010964167266365131964452946686084383405526390930375860897953324017545056966411777934860628920954198584708790040139814871810217336268402681354361276928761075925897875320112771566987658118880877804588664511542245881075930878882577830554651059358220504211097112866472633126260237779497995977249630692064642344760876848886956899243235205771909051100878230073945673983989178306028356046942786616324664590329934385906964610048739846508637941994043208593412000851424656051451629193861977437672268360025503712475591792686109766372706117919837408476757003836430956885001005669733645086726346814339694945885564018833781653562677215918826217788281007935480273350037170041559960306854243132425813312209019402387037564687037625359171866149054371049825440735297766768164477997641475172680380287791447841508607364296789714124373630230652922664718892387264950224457281474677269477595715754646726938694502614619888303143532769609573307195589531129936239995560729515231820008787110115145822249982460145127894252450081126634740271489268275272667163958067349559343214424272700055312951494721218960441704803236288967553720796311868124929509228747946829500280384625225582887778193781847074521439437201470970617750811722958280104008785975575162168721841425581182814322526111483143000225545956947043564261071730158209605047142353842146826666376211365407291555811354331026134808657644341491413796414577495173484978282357785211674390020553033473567391119967505141508249458313378646084475354358482877986934221178402324650502685375058991615299312338618368072630732912582049552863421276891275246074624526341430477055287878904513111852115685842723450882088303884503616336450009731337657932086394730182885438991881790577324595896924790853933947049061570543313097369178892807610260753472301908567658766124538971164089505740046383553820938991556589867766496446085935268677378869159389972311988373268297312598255842295181196765445976232693868450118656412725697430196954355533564030927979793097108269158881771572597431078017557619507137758221325209831020846887648964812070124530858688395626374018893501046847800212344345307900333000005140958754428428276511811100161099781993049063066185866395714972233575778270850892750935695721438045923384634552820213973104650193579319885551658606398766733157338411996700951529689600819196008991827456678231411907761122757791577660213700603250761160927873206495181056044098233568768524780112044417626491059114878746585620739243582593019621218114187657547390148823398367242908538700425494965864074528830996307686933637465713386328234605877748522161737951619765650149786481792853989710983663404657732333554687614689856283104631807964070313393448663225869655340608289857117575326498277236038510954316859662437299656048599449123817496477934981884508313239162730091866231843475041364724241853694260749836277344290039336333531698509146410587081703721297039649595370575781803818401621720874293544080171915562928601053783290081179107304600853713254502247537677487992364487672365289354803358464082726142565321008799293636325506574794687398361445932048966453353348734364280692723089379977702313722813541449530454764531925836079185542074337340132515709930413241949127918461539878023402348998933131738922909393341834121094230083554368128764825488514948029343090258860022934937739098855719603242330480037380934526387702949317703506983124064548673866688671151442903079009851011024078882132840452530370316172675413336214381553870751155597815019847729040729740354866343108725299269470086007836400027087911123823082681027775436820515731606445450214128185124787050124245849063118265116877809865675304332868059588496043261466939494280943933043794900526312043508725453143552399899815316241362298565051160951643343282855024752288403207164942583514617749778662799892027463309804842839104935997095648773887657712673501569419469410270549923302005268280761311927272860613685638430054958222045375865991574758527500982573127190009684759964113699450105302783023331053450023828254294750268206214112665511806936901343323527352218115509620199569929955851535559214406491123125492090122749306720610007757146206630527555246787725835391050142279105918796373672210991262559182788973326027117965501211383841376959441426795116570239492967785489881512050264911919896219628182987605377433455207290234686995173255310133116446085310787770769111437568757643140872255684265851922421323591145358669571030029051499511114485168572717894614042696715027970474151405727228459096104002773976410237403783550012479809633096752969870952042296525264519896659713198909728511212297808119964654502986829160137488752470394767864552263200518088925314672991108288602180977813198023997628660941072797680867044367718304701737248413324967090203602870795283951080103997808387275496182625312747777801353656574062424551442317681364070867236988007116988861304153965422563703715545005518540737010969426779171967855462156356761402366204934866615420428341776902505140976874174331793652406660911689651339917792085976860007738699844169288610844649617271274014571029259540709775482712959568858608828392467058187444329365275743112203194472443667115913300417245073807666178902096912188786696491117847944317558770003876130120452648041290645342375516631851394037691393457726578034482966722153659325770185622929806525684047458303004808931386732983879374542211276453487544830693583861772425145368732794304051068660339790284615296947472447970858129528962567255922023467338905147293785788456807897461284929425503711994874491835568718794268227496624401878132977909523811807508633586540462750029718882108723202826981311138398403069159806253941072472030510505507239087274547310490735012119260045311387479608916666989020964678538097987689700493253751860981830091620988108923175332282569156566705942885319991846018963906120848456156654621097049992292846379881412898820584859837875084180168674616937140893721611336606753340272901923431031311991293535394641591858688125730183048172408055675394063753189226483005827929000569146547140241019200746166995011877419949073181766129883814908218391974018123770526934244171366501745390926799015307849661974354316700900189295378923807990590254496166759667403503731536316995754316012754632457554514071051958935694752001318943408887958738152975971838629302142864708957162395528766070286806821775578032381340824923260108637727087311982966262492014662282385265766886871244822833682633950349932958688525327564988652736360580331926496997414574766751727496343073286471869723713969920926141917054258435245660898526276442651138511349331172508383112924929544310831418245705941477519557148113026355380719326105687500551766921850937869105781760438785630759237534377547693453304234399311524412948738528583285084520556367642488601598267492181033507269236140179774707827979625459466928113194604311297620060936614451350896415612915722836937127553676877424296807238598725590972123976598188754697553035380697589639534632521730393821197496081049310745923519092553781517314970867489041827124719224622272757214801450850683263803149433174908436870182644532049425512267939084977328129008544970724858462246645759140996667278517119537173133451481015519509300191323210281520803036317670778831615020236264739666773020098799547144993617239533108088224923009449346459917911191517074537020961444657014487456771546935636627893826073375444152288550381814532793304648219173040226490718136758209793990337088433797291378617165014863252235606873285579364595064891792347275362310323832357482867611995164340816197030058374213947246299106487214567573429470860719940617483618276199319058092499464559475844416132328540510016286234731163010661172848875254193524595041039482484169757873209765063339919383735764636836918199870224511954137052451777935345623365695714500995163132611472971581043440692287580349296583573139415638409935685223344906322068371429350781632876478682999445698248794572261994988047941457359881641439823525480359953119755052002297109315530818168657803322676746432946386768885839485852343340372465664722820179705721397812667212666969338426495209063940253299527411313805090960658211494460941179304782943880553413417770087956743446063681608581731925083475067592435253210544902187536404507910515653258819006267686664035089715632186765114283647680004992230500416359705727682010985555103256874630184236452755420399167630796096926760553455874870370351100981592839185802452386886143523763414083563102581807873006669066608144427406498024271384819907205181293448194076222668089727424924978000371117184271000136608127627436604075257048608174218314163562692189888247141866698875433668572985223009001500235716577955633868758442072579566458467186115540158068200701957371324487751204306805111249144413310006234096802498443433799483885935548995678903783957018559380028816806080736271077174146624710872399045002260627264434747397273736514725451204853463520463909686794807176935826464858985231355517300184760953772594756690973577841026286028403963271059129536216188445162853172677954389441965010322649585173414012799096280046641272734308349675530638029565086680374989927193469114630480042127348282721769888716840222036317182791185216998547082353479803440018873320245703112270528659632479448641021873336721420967950663126871642190702817277671145373102329664925507062059304660725076545450890513497354779189786799821639927468980618723815598617543664266158501610040897114972363582540531854616868958480582872901140336165853400319692098831182081208608926287805177935103838192626749009436800283874572893702360832032399133739289475656744802213016650755507392904283686394930977555760985333609986662307649596140354578475158698843641787777271639036907785154181077604354791815873361421737726401488360804394469157966451656899223693783113816173932478588013471954619997964320566616381025120798699362887347715026836815606062830956492651988352941433828066490303417344956224311098841403335618336692120325345461405112637922158279818086467700314779856789350959622708013274003269924558173974861659982319147906422407124093755908179101585580969334040915887906574838756186810872647415756000612629416409502519389523730847817969539897620465327369837053128062851734353758535026362099458969287649416501415863530513938610335291055505448074291474534395159141941545311775557453428417349670417809225537104464612603569952806526140787836803705341619609708869983913620998234809724056308361264893937069606841213220631034378490616898941927009582336863358158737305428889934506096974399753365853713474074577422127878070444667294293286549139160177382724737420639566784392033063993229923226515026031748946012040636561690336553475766170539739855100710220034005758538366129374548392513365377902972139573694879128389050199912917675556331383999757333216246571606768736765288296083990958700192171046234744048153244349194549152932984172824688255161470814742919156781125875778833384496370078213853601035072037263770721920331283435738947942981884274302850562674470450088195366895510000146351644203031076203833000011116835618828922012688113978986301687331700513239842660914377358331445918570419580668971201703291149683441197296785461936052441366946387988189454236334689992309860509746845408049318502636961217657328926487116458501148581872092596346700670423133799584132193314892474090046990887951962538191118685497300154643323819563211213563281859607373692351565117261867946342191951431664532326169862092833169277168594161554981325304840492071144264021607900536429438378352882665934645587920678922171047832064791407887095545370143036874937035022362773658852274187380896306903294642571429426392226484472149045499136120397822151785990329628040436867093138501521865166264676026070550862275776752533715459293617781486003164106772250242152331944209691815537627281518963751752789648128702162222849427742897816832533701260701828455176625808910260816180865524634278844347849076011261772030646557010276794181033595404633508281780492908475332361838461829788747327456968059828819722400699238672134008715023027933345668721714097719214063557777604191658391860616672790800421805042819929789222779172709946029733905603769488449531487608453374528854785216837474516978888125307963303695032330710187030531990718360764121649108588410116264130090219911504698476681094080342627638132891503710585424538172673303098095834564961824725546865522581957145338954035940895076025400629443715798439425209430010123126545281048489590873702353436138006778118074325885146085808299735909246118901735763135762447989293349648311375872697109485838593672297709307182323217388859119661143988512813464410868347853358029716435956968524594680064752924288356505485483932166688317007152865276122892064654363683102662782053550561740091644171854358129945420763772272065582168954844873657355570074137052929483081090012156491442684232710953171666201211192504442050806519389844208792582185562348147055898807628963717103969268487876537960177657888356300790979178208566116406363479971716692848758692449185346984035514708720089365834637205808639468753440079341393518616769015940958694003047074946938762294711836671228929122663139429281818888702304605130661625869719361760431660557668766660621522832601425751673993835224027546643189254993575501666069674887721995981059440425058001612340220633795475337375504465183443423830971657974398809957555129672626990981701196226914573541212182391813966859557500020642253609539659984819028529828809869222732001953828680709063870616392886096185643759427816511052495182311054457538273174274909543449028125710004544397561329242218658012331440735159848973219793595357284811416511311274657687126026339299423652131132921587888610724997362691732551684673485280379710052519393865282351957886683346389366575312812317453833100359118918740184162715789133797480204950474602416993783433034726366770209691400069379963451300572584937861568290715962471090135804197182468107903076722669458427927688092531468386171637692621550502898361356868680630861461330916214773003242547075951300628832356060675017061966240956874211745812107801182171266547283381953132508039744899968912864012109273248303842436388916284243354717086026784057403813687054041797081244345980153929586723047363154335797077558444663508603788623998720633112038390713950136716335653863349512948733596652910326634921671172548871569129367909907372772887853207340601610228152793313491674186550463692935033812691557989445626561447833105821543147155430520148797416344211878555818969817378528811001442824081879211204639036026195478625650902093795342041039920654611224793469678299450644396675990163588930491819471546065383244413469112390218353879819730271049317652907984319606616390959423699340689580588415624444628456516211419050597439457834377452226978408219509251206370770891949981582662537019001748016187339866890510767729300868637946983345381665142303225197956256584337118527395940088238216414364744143772733916825896058681914644548643652817302736364639086824718394982737075670369597200572103861228449160093460872555882710421204393442285905928449588761927108182816187586462515014203614111308406466662841660411835164115162270027999609221630728315869436520427838435836443100223433375679382833217362293097672651016580000879377547100411231185760173912024600902328539531297761046945539808706609805865078983496431739207649208696041573855109712528097881417707093281084873469639303041579642836783767099565651534620885244277040242469236562618258717736878145818125958302638257360427433523155363159173512805597436813611249030503951545601564965201311803157369870197409672228698089988479558769838065864883715315730453052896120262096911088503293266950603871308812209194754730723091465649511356026812854327576799955173787677365504697089304461514456703899910732398337431629846499858523740055725530025998106727966135871496868676028556538873155097860900801256973871797139540295099381482812607853001994540446743149841399730142071657492666907480758059996354973595579002295036818207754995953218030300746853557207072772586638895317137401904992269032234878579555263617025968522877181694899510216035162635245666398858854131213428421608869621921868826759811875539049076678536331677254664065539003505280199170301271918737257078455581444850812671925236388750812454479354761210734652497680093492149499051093089389032272775814041072343749096090854114858215932409898601417416750564265678216459631421843189718045962063341812331524125873367565917867127016584553323636294364338009659991825251682632896347545471396333045156422694825105951165098530836780122876099277976517406172670356401190879593735720298314652317345291570671394933407669093205272215247426388953624562352656512152642836518933847339790752820674922737478490464735250745506613748874528178354459364277553898967376318561175342319193080936496730048454112253228410018782918129377657234955293470906624824828714658260992004436807722053705437565803296132405936385424178102604812596288767472953863305657719257472121854242756890449661450317721823549731461095933226333679658901601943730947326296691339251748080434617733574892737854871990386488855654658533486144186680598488150877315447389820331581890968802131389914555043860851108198976471438652120748329585878508192003628983501461138465741429037197499106196677512783622214160381487335432253569252816281572746658316653826216035348008211607748516906326401981794365729644939634796616810933146247817635923997900612023977433741202121816557350656443935230966228137022121065391050011389983685597940018223568939479681207413983279776144089151607194839750978954014032616833345449985133195719414594142978983315854908905561615211838483119839805455684213994994102541928254680602288791150249354157952064529201173315761736039275203107814939007561242127126845455022134549786434062388856973514331750999881793475024409164330524401179917318835076467593056324288997262717922819004455995312092235671411072259238617142958860557629615445244817485192688225684465664431950351495491857522205868697863114930151715088888088563381576613799433088067292919106716696804768886079689714522076826458210829063192416866363310330653888192760473029001134787564611601155089326646407627973175235615116147746697966581218599696322724863140441000304371306150406467098389323863083984482777370191579180346603417607447638159638558980239497859348715517731476286601480358223321304619773742844172171702354479909010592228708024567114883717188874485588171036574749935518324396147337648450977670603185564656829350615668394721456599541354064763581056190586979313345965391165624584470022330598022541467773721206525953100931638645207068374923015599767174145576274396413158500453081802798020839786208363176772706205700540182149035226165930431930269258284206379928597963740744203806395629137034496902520969428130412424579640577506554925138437628631283957791147526196116654314890708503241121481132199545383196945697437460148955110350845177007906209713647893290283582450329765638706028148718249051517194506084990972544654285433177246521603290567984033535566222912254469012697927724984775210471429807390336454269459739335380515195822677505171558437156573212504005379646786979331701197283322154479480272676909807360103945588266617554202003207501471852620385533764057856329587784216167123362856987590858383748315440149980529540662024888809354571055015844442220350657676478246848090511361978306122583329552253235043436971689260164458444022472127046132257766004399690209618837905880366456556680735276310255066073932816705956762074803796028672523882403166446686795671641810529522105504006435326760605245704763080404801443951505293743350577036711278268541084361633147387597247375063061695861195624879306198040244490059857475017495940516362313328639605952046961447388527058641813386473545946765362766323285146986559204791580430209599612849743853382850874914535182474318718917182459598505065526599793158767364817480662293323258108962392885908394909126968373242490622613450217445693314475727137290219525070009937580867020452452726490029291909676195523445637169699220072264121051933287133829092710094937310551226321916031752070379011607692289748567419176878604041204921605498507687641016456675266293046090983995374474978022989194146827850779089609756406848842448250671126428883551724596478879907680990695403064015288174323614435335415757470615128903306427580342387845554835647292842344630339641032711949974083344134883300719260675161615259034703343979661663695900984775630578062375200160568520863304044222920459481102781654798106865203079332827779184913207745566161174326848422466514437617117524450472696387976961572289782371763267373450249236891213349526356084508240306745258484211045055205542521852483482782429332854967487934816274095888598328280043961920081251170184751811205458172960089647465801689665778907983697008676855269489939552924242534021333552721088259830076775338722084483864237508921193689134343659304072279973620150314406048351854978306635640297209062041320261307831193796694056832874040455291633340864677104859093963266624848713393524668456664242664089270572601485758093216606497913257886523879798155942894976136343008291667983677856845262285493817531778789343722855662507087754259737226427546517073921630460230766997124051016554768196049301006415864827458470835150290349840941340063765142927661457973731373916711750290637308389187595250349969115273968263961932746296787270156854618532934015125680155133605069455529440941026541382428388238072586052554747730149144670148208416911304578036057307839478192695881971145987047573578592001227157835056602575155325290666707125527559293252921900875424874599610460080430646327457694441670788136515903950119331490599700802060742234455509694950668139959969048610670716683750910594009806725944019954416025524698843683534828648973683600482081645125455911449885098802389585444081810247986575302260300563468418457386723013935169004252051508549236921146696293658521521209364306784865981916275448951071102619490421254359866558125937657904560521176110270096089864358977922199509268840628166054031658138749408049741293174669727525043953829458622796836030854107789472137570569736851543048553294121135872320246945607442824737609579588912967957874090026990854029470558477599920510519444551471181567231384906981322970534746045051951407862504659721758385238127222643502271675499354041139917313649614135062262585506769624488120871197759986505467330990054134146991131529423325364463419893530900213233181259007897409913810020238456595342890157309515415717005763423858071461508735854595405801188676746396473634732554617649081710512497847328015024463327308960729740717268343950554845725318415582163463330487883955371269936811780074621077431685032748803128714462563016289576417543793338718226283072164954544973879112079602177845618859579941965470490550225319124613384049481312513993996869265313960992078638902374513656008279268532708048460268675996992763307279782611914568054098770876816381354649875891374984542449506182519409130071886171781773972259346261147018581813911037976929896762038985354577752984042254176223542886829084664834865363370647412426982248161987029278187052233752312478737725066697948321014979625339610096040062606656375402615728511267069992214772866139221489665939091871593528079043143659470027712670775512907338556222179459677870611557865420168447107246624441499786923651694117948340588209787448789308476112752087931016831232481307952115427449700441537396377410818506162830054535269880081097743904959471654929303108342988514667731497077068415883816392644459164066448322907451983224217135613175001931481530412304571959322649273993464445119375383335389127364767302941416840267846542427194899553201717052422438064393985165431073170156048315671834513535709873286895714925818050895723009047348424305348177583074927534906106012670980886547931905907097932271879507333807893763018088454648544570068910434457385582654699700373506126833587229540060586886583224825336131818306424017488223801838835938588896311169822945689082341502653336426661099038368791977254953061266356238848378389986449382473821565215518166413798795810799027599013648713179625859317457496831050951935238675143692464027417630787863672451514465737763850102848653215774234879347194412684523839468938248326662458896908857302933112178396363057870762684682213244160051113134999237026473171814793931030686715080865657902093269488377388379455566289053804036436963469326408904341795595100754728045591570259213720544846267623232576584292933525166166975702848656529985602882109062056266657618358802107262887957895357270929040541162340432520845213097355260593038869490302797159833861423836580549729355398506760662328049705460671185477904946534601600550588392662249243029092953803023438904059605536192427477343912775191008236565801071342309862913935469532372012033987649970241847056527117805245463184282857188819946155586488568176647215229318576644622465141744363051137488181612944781995860220406748638047716825470102096729339174546786941744315630798618684130805851708821666748144793537473096552946498431545993050584040696825759586786696392998371921022896381758576885380254131804226703241831528166553281411166164066524887461856109096989492184231777406415398414919655342521979420694857759412871894813618709078247495435290877839318551351879275780877646957283213402026786205431175806677424365321713212555296878235635068437478484329677743928235392395893105583026157679278501202979915901271866214641908065528434586056192812016351542126131321613673756676225717784255543665166765784079661719105880326253958264343412718126034732361386140413734799034830229644109668343893644844115120737655495717229170017300666492481677762842349930536307327103244656850798104307474869238030241375092630168667738673631671391752518308237359576799193308172571320716700219727642694866391294933271328649076926832024456675321721439900712482247256382291111014233835799348416066527579878785682968917545390919965118878973970429352722736982740996269275478105235392914384693703690246128013149340621938942990157214469922441259804369867116355423768212391223460754496899614623574311089559972144456491257845745472674362295303594237208807364914851093976843405566028033928238952124348674939634311627776409772894705613871698032816055493277513742641259404902087327862520165037068396599124744888896799572026959314519370819778437893684770749670316394496406353195168513673845322619640219489658602142370306433481090176237181395094900809610601127992149554604730321354518377948878850852140415216993390248077283697745429974356342451191306206692823341025121934159377234420647449426163840983320648725385650814942524019401914019844576006619898235212796221984587869874211893059416830876459160803218286931211261152342592454905320489384594948462943943222423969825244881776837083754344517735847793925554762915827945148828425079440953951153955030059227957470881114124058238853289671829465900782865154939923427124326076548495669496128663807301431490616898238922504221609692472755142476808605489313955240914619180339949263301798697697769791069387563705110880263400291518609839971944533620931346708599666867232948379342550048345002306299418074619961192582859773257815055155477019720655075813346392891863139631135316816470280670419898733263082545379833245764828039190511786038375172473363437218351331569867098644801618371425457715499501238691072848072009942835116404323451318134083626315778074111081028226290435240841817659685818335965668226763573057340849536918502228868156525219896765578575406179130692296157281587139427288572257287680291423995755157618617801788246150180261270411087720898126431232462203047532557801688268771534962102244221464517337684447610563131740978070097678638249572398309013517680209783520723827244632188921189647232270998292028992174707055094590049042127209986861275704993012692556290468031552751933074189624899785859157145327585677608887356803130319077322805049036490858593611875406034525916292535900915364222548188415469307080155797856278317989808772051449724097199710019359004791727247049487205108975044145988900599890993169254160470145698037727110814465032388650801822138363246907427778639504227888034981910214949243155671126870114013156680827465549392168672178191383424081981886599278998290737982555150064140158949348517688074562854182431634323242708047407900760392526203721361829548331363440244037908042444314290881883933257200041331275868014407158870285951277983135650201123877124632000500422254869598008822482811137174311130490555801339732789304194866659186677900231463395660941558850226062720443923587133952484185408611804924871500137670750324900503438622337282605451705191507511617619963305245991593965859224888635545229671775392214778915550920102845496184513466772179843160939678341173756406258725476170041825491431735269669862974211940393335248230911622601693142568640977028491943011165840520861240889325258554772119644230758663171090256604437872889163477650647797558272536154919212673694379749718334300751910690660215468426191435850369588356741806082041858502093459348849664037194003650206830832725677279576813232761516369214484690606148680248519347405632492600393345564029730483917879939106646978559828706207256328009512612632056173518756748483995796416147972323599511982121093483290719156189119107578702370897830288821305791926430817156560504976793623815559004102842237769093257275254840078583695459998281517585741728165739566296347827209946464969515478859854140920038171787026097960370871827744463598340023237620678873635366394481134413214097062868047191226772854560700020662666042425409230309076875626348187380521281430459627340989067003843778040686123853384886835974685385956985695662846518915611513005283389091437771175032477749479006495383472240612925258838188158912938091863535830285351816353072954853449356219661237431003379199592964354526909015717759383967628076681769359483185333496362961208031756330553413896933551856892185559749621054055870755114683457681372899761692456985202170941872136882895182487472598678032766685976873612077021080277715000683039374415130587628651572489848889405164650209471938202396500756838827744120360713440327106933598546124931631396267914230789086528776222445589303883266954296500137646098892594872803058765805085400722147421852522871542210130678723219274961614205178857106698942177944791973984288694889103851413051468231969733372464908065192425586498846196860759023905260976725308978539519561604515724767724124068051591986012193385001969305133281247176892508629070064450595728863619589922933695705524448854468376940622166895728268048414488993008193429586048214906080769388678563997171684876230834321215786870022950292095053223846790716008014013900765957898908632759787073980417377084902584942025438948664737474801371650253719149964009475090845163303951408849208963092216799298169027182851905356171705620684454235414357279771350863325155945185654416801125195168640447450894147632762083719236120490767581390891649900614226114848066450295711781036917591287678935458576290564244400176389049363846040012571375828400033249599747808639942945043829575588000670981022982822455965727149729789040891481133618787493443786766741488095236007696735803370915857233830849044386851456970914583211348319479326180095706391695937336227976720399961017784904863498478298668493002604174300791779955682821663527552342149983695380484086187433687546976585427973944634963621527433743373439530208708104546359141240797619102773624148953066789538272709066486720456164227287908715017035228457238317318270579255463010306488488038312082822712931791424355410751600491032304094337598951026770392119219069638757533226726438264511902018593087872595711718162306948319489954369395616046171868890097519636577327287877895842537264923991785282835791380649674269323043043259041508632220079438980241695571993408160747818208282174317566053128808432783106971041142162999221403029092941781249323968120226236112865775582650252336332069486771741496024853404253905969914226416090461882733377081680287225636084890548455285744790232089032975196525686682146666042068591660489723942264049751116812141555596747715266949249854027093131067766046895945248423146459700022333611062110350020889502919673388165519510701250835418597537538687072833527273236910554475131633467236335461780711865692201719031906097003088904252091333899526726871540725237028734890341061426078678448852206694959354094141329448383627071286510873317661452579119897072160062862208134028804101806067813047573555840978642583845952627979770882088074424702858084404082802733367175043011385163404804451550545772311555631733208941910674372842233834792755726873289230077367187676075324372982119657413518233955505636848347424630126337992080826052921691269811017329357440410331833815708344062948028791670903344897859580206496930438737618326501242480908825230121701757969729865889553944774750383386872870495193755728743554179095544590112363238183579307924833270049213488658582190651503584503370519030006399846155418217665455374405266410862577241005779503026086106804927436808705384774491626840546750392795214046081266524779467272454755284900492372190464411116544660628507272377314358132478073030161993928338283941513944842872286707504322874784523735128438009399393068508676006191461398682435646803407529878802542587794791008783704938706043381934657962019226622763214123964742542649634272678291152657399078069842402252105708761408636629582156635397191165462809833491793786127436210097534052216007223396624586484869130089322273937972734017662175554763537080323086026400143520881750373812030681266439650363381851048573861753653661827830800371404971731991797583293805678639666200805717835586559881409004207534320142545594095990189972694621185693195788802437160053326623444370198926015713753650328493209296218542942582909329617830795040414498357093703098686326384805484615684683620865395558566130923676275171195691977270744073697435370685320314962755736662257800945330848401898305455499790185775020035581209005032810918180618474710601604339866200461451805521091064950724997897338173889700835976465981113548676883789564330687890727596199141876541274022967075864463127807434426020033437198534247192170959345292703663704422051138852321683188911898006836048909015635359092243434555957104134498727364953757655832893663570966644350064606243755674849519073227139124940239142121676723170330787771292083277177515286518159598733096506557102663400479381515668784373773141185629434001076170070827598536115644954860226123034797307831444296719047045094970733435276968656634781752078068910129655823801875711405532509660223295402773815779604154423097436097263865961786993988127776777763372945638970522528464914885289292307518290010890654141632260679178479111960767173989378591188851051331969883116161046340972549662473753508819480061935868762964817534037763970753780603975812176515587629792760090345748098412602316936419598396956635500794433323162301244443638875397234023066387964489383186006259917034701281735035650164137368858206247078669971525938223635824952337478725430982166464236603969964904146510627325340996140955769616315777870389472120304918460331130075603084577094059453135378304842589024179770317948785325746071017036227590963974501080434890638639779602780897107719617092150252891237595115521760612590511915487401352475899916177323571396852477080046260770827467961219278719056777209648616190454772294998518417828159468969507926865809226065191011668598275293754653729199725144364789714257280189430436241693645687860878150840003524810178655822586414983425278295465215319178601613313914692620395911770093329762453180913147408841801447659215002435558945001073343229034207763070521840880212400262682421498696250935598179324328501417200145839410058058977025941177729065809418855266895939650449822730305857942845501162277197944873007137944698770099425642304870977693348138636377294396431307611428031281327838202515664364154490397823736608175529909572054785168056785827278152438577476482939994795174835916613309890122361574875282173393714600335550307686304681864401156372029331635521086044577621021061730839007350927745754960596630864268667637937261548313206730679774871446817498099294265020290931153666154365811469254932542568169069060318884857777248332440297545449277587001282377692352442559485520356109337530915501428040287033935886878332577103820943030740312572423795927642242258662218287660901356888372810740450869668522714502019133322844681760322950730669238977604580541536788503003946249433898710276383747665465233987709699602397551358492689793549032842056493971729144909250601140679713873428904545951228556366058065746922219406958022767548574149618313044876951287169625530407009429276803104855261219143788894255109717867853759121691224198298686159647015096268736976150218554648822199270144014251850995956879251841187807194986979404846597781912635908453016652812648825908461181329576866168858140009423034485598728630615063757348080569764450790916343718726441193914100567787719288639428588538978434160321416958195522571596676252220356734496197996800973630030783291657579251711576061498769094652881626310772002865527406598460462539740556488764789393555495986721139998537633963579218159610635606691012193082226587498604717955770937995895106808400207122354987663406310620790522455233350975400663314591600491211250102494182040092763751312766443099434088535731634436725889759885302560997165169525576509835465017430638135340884274497623670860791622877320613084932028250954606145782097073170904679357918244602064423441970800171441262942363086833723204764028187759586891906238279918934523875225129571370543913929502324583717157076654680277941056432783063470669605522599860421717120473801349608787462032124145371624174264768818557896800270891457036214839203720287879418234781091129610529054100828860745986117443287132961193774405069275137343458904714185810451461255325279624602858487544692949324359891400638848680733867288386111134922700186790434346547958994922796414845732670685022740404899130161909808802855270172657104974837853941406683922086179672185436970279422292895264173731246404910281125686337955574324492866365359683114857819268651322443469425798308939316693568793151670679241392748158545279700374709517946861483127799258664105916201306544448858564792882958651640247111452876679118866177460562864287769464539186170635869343151365726214002640964073976880629207997687155524331643015943975021925177762951283138301171929104444723982713957556436293889214335443746009974757094665894093082996591214622173012492598700961767321292921882954823565281431289202428240354682325906799486367884828599251450650604988162047298043169416838159004120194377269986205076282161088726013790295759118436402833988390661975784139609440932398976911129891034464333504783383525133972647130960358903191034041472950536535846313115030091014973220507379038085932556577003691666755716320767480239362609210129942182753881642412654206083829668885842198376190240961085425215512188513738773494801630930166598865577911574800429029258261424349939276337648973125278200943609182965253508650366417789967133079734854955762138740746414851158412096088794680066224022911963517635777927133956226451768402778304229424128824451561030542904843135710477690876076930662028643672502334150902715109271711827928202450529844890609474124534658656715858307929440399224889143788013724498915456725170081124998923728135292708266861453746830623919131361668165177797752923169538498478651280402974852745348276092585350284001430286812331917161539593100773880493352990954036000033895595154005446839134041104412534792911619083649307023885238649095332821246732764795674149081856540065932754923499507294432076272105658827858537668974658302395524458324100073110218707493741622525524396111741839920614698356253676872678486633745213528602715109367635920121548242515739938805868460220704075582316965532344581471131947752234769729613669429601733821805031464280112156636162349606773730593292130186490231245612744075680694293390644330174447640944246526038771102183909392887307987864342671959968965186868913907315866204600675524649030008773706172850536454572597008331417446686290067212727502166615872096237898427626124892001487351423212819763890721522112768835594051878849440544686828473627867367360451595092861286119948750294899163169605495929087044831790596678515277442430547698316795226974121736619837806362031216478825718263260981201798544034118023912960076154239396222161312178128866957876467951927836398924567393679957035214860320781665399402698849846068382340863317863668026121102669197858461293353190074010354403116816180300526911752090508835717978249810704246825892085672239280029305934319691985905395693682968961391692369042704118866574661856172577694550690002274474588121760184938605469312077378622270313273597701289015019693779686839582313832653988679808237681617826246972432347113246851967740735982424200124539254546815740166214755278676535169213814788284764644932784101230882228555948538635928316219142659728058472673781904422705961639093080071828985853855316872630425395431885435928288759829684074021668880664551776258783367028897591780339177581384761049708802825060161042903485268528501935046803848808870100317595270748843391555966397007563323531944215149593839081943227833015297800434467262573206558584130677466199134200579028039852152760865269603063925305730668904749705253689611957606774531673770232364815831908615688965297207042423111547912697300840296698777792879881961630114092522969971199712526109845679312238282304860879933509957001753248918762630924657558986521913909356208891439307076694381379046028268256187642561040841426386273327333647476295656150296619043318805559778803533181525618592499897985546215927627441924957426496964582761766169680059999253825918404277867387607484222825398922436254390335995197718782756158647130260907931415868537957677173235045861098951468232381420147241756057270267588708041037869488408380114269991965898157645890489035451017223906819784053511080650832826993052699848648522179558418539250428342593880307442955938639015931945612262670412571843483707000384381180544376509507657588740595873760629572854495276351206189642068101877393757393659224365350962870251406080702469019728595116012232418778173672965142952630298995158287530487938630542548504865523107995426789047282295590955330915076680672341385346164054534155159565811886151538481803354040014547782253350724650399618124586940916710616253060681388048068547487650798618951954039127200480535942811620540893545308270750182463102446981654542974913353587663293450234703910728654258998087052874508876455055660844717814902433381722986353696533637166700434977686104325713683254667182631559692714815968732881391790661671245647536523830893348254535549730689329970894356428107076489123504568357401248992214637623483580813469609649137080134551667838248246472994559781845846850532099979573598899664598481686843011319966352450805174258580079083139548902029965117577539372115897119477130168642752126919957191761103057326754951100366326382034034105118611345702515155375079507356880014987634244161494538206355235394970558345674436601512517558540973903656802881444372338271406180517120348691404228893610156666100370169649962666468193981262290323487765374871223367240912474588174109320416031943427188770104979644532583899472718087945975743586714360756618966111516771884544685416373540704268069465192110263646300402966868430021466850272574002063311281006860059962141304301213835796042811578649929975069274201545820518104582169949095946040006129201336641427486715936163240293104996279274600652675586870580251250342140185998942966825763530459827323283780890192452670858719537939228758758350707271722894508001051380900027675621929828961660341299634468381016780054469531684621634536593563745547643223213846717617528105106240566903456318716294858677154674920657381515578693176171993106515023534895054958029548588095463355482061296245229163851914125481323914044484002001837512998825411192430553673204046308116010431162262555180218923033835108214744766422766516610522695172689298566164289178643812434855176090272850658048771340664486635542538634852576891611173584833010723918396870576392564003885355173479923866219954803577631795625306540350138369812722868176775261235388720764879534060492136202473752803358689287220166368459020169514770884091036536141108501882596328548802493501429145292817030113296035232661969421535234221932566975851696976572333667993737525932744966770389566434368713816203282274101752259557728843302066461903850879445460337624097524256134204085957254386574653392462299542567458881452833624442377224924046287559166897218644328511380923217683325085296048163718946540136975288380327350124861334411128028484856476885581750406226140613288208055275424890207173978318061325237220495263818654983741947546826337476485117013449861343782285879189615031654664831967221291484785357488514612626115624010697108858484657751313933213024713743913314828269895709130998710101616360162413011034860775083291174900123377021126712225597757235769743976340239703041127537143715469001429732520775674066158174761723563755081394144737371457162874797881511589474891829762484552251492677181075214408900295059733411063762222479513711292362875556359752681076045854958082984932628951637714849673997373929379057279333751660822212398868243840403311152693329209248299442476382410374900277044300804836952305090022595725242060630598758653733670396980359839744891767512267919540389881541036135724369458778505747452292774580446800942006503219319582951379840583265451046396414912114332770823194479253422526799370451649508188384891308023667922526101783927906554719261585114961809284038755601932202217502867319304924792227872731109248917613537291640706624737034938445267474017921573610622100964714617476623560466484949279809584400781791882031242671710888652346008623984324106110082472849695368991320154331032534797342365349142481183375632683597462313022359232453574164122991991229831831641935756636764040261401152038170576394442209621185952551664430020821026728055706357686174868798474733194137875502681834383831780692304503457401010378076414627655066585427835422748337366170615795422502633817652212500766683009997301338463892480626938125593965007878190161169414547246602794128304114190290343596944670675984177371813507704410748724518172337274282735648987502528560785678439592977044909633694382523268280332209993194277582016825001528053028631810060497475153275870260822743321318508607584661228603181368742218692762968715525810218141338647790219819151143671873540811064200136913141434065708600445790179087971220294093606158499533374278373748701739716235464451365196302102706426790244938265603423485056226551371656672032525743587922458774108107755675450559413828724704634928490438985905427924744522892031507550485719394632193568619989666056213247208311821913086830423307706983718257424481326327259612268234828391845872128261089234394065294886210654711191936122309961346213599479556638433493152207707247128816548420201070690853489080774574186550728523838100573993642757890344066156344607702372110437143965694307417857172051083755006456427873813089299374469273563555889569080466137649583614657162124738128936769664291656923955350742114779985317220829450989794781421529369969935325595624749409076636305517760904488433784516538763591152905831187206707599647757093020171124176955965899176487859836250454950928750761973824471468224152076490568144366348030958582045990390532932754480896499187304396679705148737910939783988898751855987167771824192933257326534895885486870923182706597598251139029149099240198518818486413304072370110945433974723041506237936991898341623576353511686207483005957737829945026439432387357369789224610546145712895100175072551403116301864980260866585962060947324343446142766396444317284706870699626872550957059894123652844105098202423026787946722727322831573477271338473131576082177735592320411466452477459884751351032329394149494707897759811727763227599820490280664558869961470859340610297582518728265236554878232002662785531191260590066704571196913971434704642821189491494201293778572431689742863083623208733848053568920842419519041501076840058692060160006874189094279949964326793733112900416768051863902110591052420349969668245958117013932077912694953833101468576921863289357234645134812408407440407058509754352681658823249958917616613087920833004820629300363750448642482475426732656880153587324948492348768773718025283228309090732672888348163185496633138607754668217946750777373925420272670619592256872275690280141078545048040333392849309278378609159018493645934336506526062122745901482114455139611987627569970869961639095163455441203121473113127578843910566528361796183504731151370161307267944824995275193979547205892453732146811354201434522474327322581893025729544157248453944998771252034505135295214472275303732144898100866135532947906054263554257911139847644675580518724307964766924324650133577342966582640832941147058120298777787623789695762132084172696655981466927978145392538398046915757108400086233089516552027402239172591985431508868856575510636570762225959288841632925375727670066546721473168641857120240575680592590633292817949601197050137369804814519861129972768328890183503520223400941236275785761505967752439639082692722609046311196774056375005624597013495851095463368429901901840217569921064638788387932070906956276705131255709704753902894286408876420592558723494351742879534590790276926175602741299391122303190628627697628100452407401862964629473123847306501668196053006129374698910300820193746530813669957449520315985793846222992753112457562207770812199634826533263813162874472550069613038637285650245438902268665415077645976582115765440941050726220901875804386611745404407002579319651981836033840459822313847290727150948675454991861267229205682254074413263519142278038291597504011995066476600664942156758455002073905802726374777124069539745326110964029889757049155368398941866507866295080518707510432816958616139671409527666775920255438676138630087656438366912068155218234867547225816931678164655065566454033795869294019644567081298320633896707045124032459672581949919605616749738084875995658732776295730458271690617818402782597352367238144201433381021669513639859950967361793347564669849959228922335741695355533295622204966040315289173781302728994755667363315307371808090460917876931138388064636703660469336733317231756718272630074086104929218814479201964601771378014357768617898115711917342104972417362495731569183942946779072348393308477856970028727277088434140567170202841585150963904118137302551502004677529323028684131218149619425024837455605287465511798668191108715279386553660475737429811662841687722360309672177332807532172508642287135237444243603542674717090488594874718363615840622598358801635873394638715610275417915612099357011031984686067448900486437950780412024394985669115343898820129917895268053898748691071602225972283441136827861633470350185084164220491154434938716633244360991161271874863897810969523190759653170675602854353806588576774162039527061099862338108684522990604369284950301996391681566201799014410266521856247818463211467045590017742940715513306780674658901773145569998041009843219035508954040982289093107683705884916293107773620318240433979069966992684091517422902611441199625270101282378241596639254058909358158680166034387858161715734611996666384484245937592343974152261997626144108299139807806003678033063034621709373874214736857839520134800379464273542599345187873543341701009640155253955290561200225246306426596677266406289819087048813050131326553926808916329620046940281597417025330284964223857782803254547169201660870058937215741544447377388894728739580714653979688818057900731133855975261626584411036034796111850505936014886335843556830152961928413328886588736638542342664565322955333018310213747106543071119462199565475719391932975280073723662427699597522029413417766604043124597440348900695861510985929865002098915252800985536253431884649462941024007743816290694648421499186955329409316657343436678575766887603677428637898214708464625024312280546429523892332016125602264185696823646791972812199818435800047001146881656996870096099307385682674611208531119741333810738930700826604397151282485495754150482480963042647710620940704216881243142905541133434799786924443050340196721374114103213560035489248233183462123205678839292854248310101341091444220193227292159117868275220540136067453507254631494659070582180583539481272181605911166295687969868363392331736313292760975268551727128311685339174251910084339113587579335756724270173722531210114260197270772440643084738264271135747628743722508462966587226173797994307724572767839722767651377515328065899450137195020264301925309556617769732312042779829608163965197132627374264530705928091657248728201427524683536645963568249609891107964716180159514537562850042566056259953772065283126731316015274474199597281337425277719105004306332562324644436989025214201472433802588503478017317392876992438262095790028890085632558621822239880383454578913925411655748332475504963739865733608558382940396822559439332549561826449694247409138769050694579500884432974302284745476192651538419614300817687325590062218887898950648376086350380800784251672980066436886255361210075909479292524239900298330064423515798536384030114483841873982589740205900682472318623894615090288870606664149157034551313884069378506723976154923223696134438715583735124206567306128910802974133650172483954320160054074391483316832113114444562167241109467494400694011981716727038607224963297060973833229402354223480079607422371529521683956553599205577853727660869203620055080264278435070202583257301350194358784169059282431861471617335890272896003788042473618329972505414985872684545728991658482355396680689803847537807273409199506674009261913765145975177282900370197670701122112581911726123940490984453252029586987604002216494259646337233805073987411992201804311180798973609878679489330827568335406279873457790997122141247044541118861911756463587598932781514725072994603964076159520056714057213387745035542347060591204145135958015023316372629274117119692610340642310239430452462825918901312190787372056371456196308404946164438553401585703216502004946588500203579048620529677972798352189463234838672652381951469338644316950714621621749223094541690650035716957242028356089263402147126386898520817913172847324310187123581314232228875269666191871706374764636355863749207673080797184025855521211184218094256962518301371216723083255103600383397256798881758101213643366888934134378486652866644186119069987216054700637801713854024165499777885413879885350204669965248009593891855659468720158557888462584493392061608218597030125912747322173407772980133134143641853142864249262376792618861663532388025927048940722911130523908521875689878134288839717326620822742158083051844540711470040571398772519275570306032009411728964216407508768515051279919128449364423437425265700555556455260330184592434468342664538613865122513588687752437597262769801136904925547678021298278964148627116611805417373864955924689874615550881573528506424519819137727367921874104660085628722551180676978434150803784898902910527902589294191004593744700389015607240913778268566987936000128157448731381570761623070539330221686255177311271740781774427184297107571812874769248502824770543266114500802506241826686181511006939966292979041612008580583749789726044217709575915541335998989534709732364356566902322787046017304998626665799147628292707169780451319026552092939943384227751758800534820640864669082883627169362371141500595818027982723894366085597691777155142026307737007863693981919455942379058152210764757700128408543171059021041079314164277231504398717254399800719737114430426914491969239157191441289185691915276793772429132278235716565242095312473147008289614788329323409562342240999473758100121085423119165880517355324409389893968141604619528545728200679157586538292311879135070297577585675185274939192832367159499645737720452036539812618654089695761441644024621823809578712366822925992837498558074876865690634463771844622002052658235659939332526201725263889933323707033957453947808550333572259224230399902440556701937031362985589037225981248311795187219173009541842858013623793700722013770295609776970620775339283456992888307378699293636652972117479901836035568828288411946124456701230457102429229951878081588293761323034552725851321391684104147193885528133967523882862141731667913876262333693201185920419459475334373990234726752733651617711392354052096006760031627673516775536908089699408400855121028668384230046772155062986283266868860242534114087229372040650755353456323405006390598629114134994472185905460448925945658306143717546804913692904383794710589189612259886282710184208998182408844086231013812171967437470395305182173290541495517514222041041063762337040567733169699798235859056289025873278798702193139229718412466437327706997989279043395907126527909164931801025716219679507914016100972094780877049021520563176451715675896103681585750216187198301347567029169898049150063393597030904348759363721341527216092133512279675088745605842340274364013259731409972429564678027042745862398361992885205246376126557064184376788826587078501363744578734985169323544757401932818253563253031947653536925164037573987409223086183598094340011755765222474289209501935305560775980947382710874152491433178015035709364566601023622499558788688433416500299970228190529033931187633263190249807413873698343377390122828419783175277771166027020359898572430600011420945467694913927909330549678613375121995467726930328958138015254661448616601190291202107218728000913753425506113219233456804011828732164597352515005098388026131532954321789512744780533670093064678762334812857643837711866247504132622468591126883331250676083464837506718553169146896808511724476610782215073719773771558271592268596485852713112338885635503956953982125418486422340010897514690066608669296677274175475565814756288385767390847329284728676868951968254455315858588895256397861814409957834457614003123282752212324214759733076618964412282005968445602375392120574677816613520207563324480333384506487948278198105458799143478046765381572556893264443178438165518061735981747497568422654598488701852172410755472187853017723799080498849686839590867771086296261269703868872082050293288421856377574297682934791263466264124508810767215164078817304110309244512648849868668162514918600744398223579137580802252349979975654256930801841981156400098395378430117346383439606656939821682410219686861108141300403124100998636190028523806282937093589307982356801440525521896989867741057350507409658511381222142923377112794429560845327379711835632240782785188658740499132602380621740170491353957558198197361286398069991812840434644622820495524165180187934146944626917624754428122945636405316360718062214701069623546388435914590568173776885627470332659127050746030532015308858932842500306553133926250088767863323568440560016962978066811937526329522042413792722551615616250807182799470216681560682001285092030921114896457728930110549552662680825126880626479020279833368018453889236946941152660094378188890214475893632597892752234010650212818763944163587153433362376352001506616943748481619121683738635207375455311725022327756486457004327443632898977191368130790390697799144157679624906003164862801754600211064441639304686224594065891535912276389771888595544983665522656664035950175568608300225978635263758820970161532368879118757276469479613052894238483786646986783690813602135904009335386232144195671910337229067182730737644642044706118801112550168434399241987818205973218183321831980352629896192892953034184620223465062448221967325173806420107832450613525767002262694817250949977354941992846773292152577578286848733843967944229050373582737647537191646779157939981007984871534174827804337774006485618984400388106325510737764785566590253652168671161018421162268290046634950256171174699398022141706242306466033847073215618991652474751143509165970627341647950372876746803210136418260802079821421854433592737339112075058357607386831953339575488056372629027205400399538297255324696360079848612293628687495576001165350376980656685185317350870334129725807248716525493535453857367403587867247958551659750488146801046170637193187143884870545713795839117976533276511464525026458323976119177132742596492539754195578263358418571137267783565177428556971040187540658312422517604969892113137231503466313686112092387171035867530895513589267655605935496509767853496477400194091155906975080636322982064820912327662059102157578302379278150284228500994366397954755552112561964474000230634378701625358229333711327394673351616047593623551058784301045251452469450396008302995439230525270147756601787776369229861522828664584688768410211781930682146733002285715406416844280297679748101998525201182730275172192453354605904910978679352342731699008568482992871256480554764613982358212482519050757070339008982405646565789993980391068943815369188797208986296586602376234814103470104466446198874209545555513274831795463869108445994463978843439064075197758887462610570016737948659756374503978622031714209484883515472649738819215005517968017234840291872475689767207018325070566071910544067315671216064522079886998274821488165027121556072937242200026440984924059033752105130918493156344455515012194356821701451620316466158527216851553006348609571449743625292227008571176651493197174295978967727199604169116689148324588988678382098084666995731232720039897156798352476466248692575763286276692777543255098242064056526068109688367994868819098666332352372312429859076372414241645065268331976077308297630496245786500005093844229088668850288115383151861923883060724965965830440370208957645202122262041756186855563042411766921629701561239102319341062628881579401422273397318755411276659444589319655766096966197361453166431483058323601153215920328580933005451692843477938436622743619356207346505875904497326103469353798968305650792964539921919292694137732403816246607339384058484471808849373982353393514161934588554134647877940708691637156191126433774221640988102734845253652083911258304682799417441577154317847376839653738611938679740801987169235943626959078487936691465655546331771062597550933271929332997647876012997717222821313948580854119161782357844472481260107083215048703008206778647489862571168955335830172419343387602551789433391689579235218182246972246484653342376515724051193544112953575473562112162919468394170971041318880558535455792587479707613507713623462366169514972375804868958211434697627549748640044740321469651068993751825126060555102063803203194770746600631528642134866703989063203688572035267094333550069020349591968958896134838717623692519860928032303320135418615086741720782730674753205092847674278579021074905979352746425322359727694402421422637560140525383018067531289974857467214585858756813071054683405583624180250329554217862748989219053970243363342825151415111331441829207520673185743937564968492470847049471565495727102289383456432860508437410854693940430331576910691579372739135271831801639499413507508928144567078767583951315381811230640210090663184591180173694989693559823234648258284172349753185521050774568192834253719535226472563615129030063044411152797389640245930101823338901856419455686603499434423176334858094733089471438989088365092442703386877261382129821921072220740837976097395148051724564619877848794865276397123654435256818850467642872425827538068421733241112004896109248445958367517321152329916780334685892366834533980444267974592432195270405764264215879329524546102641082398860600616618755985164268063389983167421967833198904052587348239364267728249064883640566871339119012226411253054036396574186343465982459356641510970396565107468964184605630631357186595845205785415725748819256753190124224279730360462321051220915260379878024824380018133247625457467431058627063997428002925767786346596647495712782024658846962660428628433078729612008371684145076360646595887618855982205166830569685948679986071009087874520478308831134432895319170359666164035454297999023830760668940736255338706882799601645436144648558784953559727702671029019262220573937329989910670018974132399876547625395768663943847871735683504249262545265153588071666794295817175301949645904704905120999845340980283261327967373566110130611751234653980470952502107785273464744066627065455695055509732254858159671077015103282033872975947104360222648321422739075588278734022346663437276180015569590826329813502617222823496069932065713780268843335431193620041924719690051643955830908939354733167963427494840834773518743646641765507073612138338870641888168523916807761379234194747547719535755506948159645287162339744043010762352026072586220210672639690658595864963544518530542571105417005086043531770298912473460162878540841539446390959244072292280222256703265879150339836826943493654358960450041892932761988913679087414810260153534988806216511750685332382379678192511764862916749161927133457766568526699884802473230328424162637953971713459967602710392042558128680814146082152060777057600382042693646815346860818149207553615779274480393358290491273392562008323237936989657183456453240412902194149874464774014024864156736779451004906011626280627178426886689367829882714961721645607238257131379367195778802518812185752102487726661945539160381039388928837837837381737672494526590855710587038414064603704878963176030314134082942777871178466170501400874298532358466686178188864661096030611246524279325105147658631909776913106021165748010471495602112922645437297597277432507124722452510317687438977506651248987118748661968684863072749369011595875427373768381921358675960135612839352224425930763854345994372063809065986996413709976800983722313293642148348458597343872751765788064487543515775874763248004506000647098906286948317407120203908214953657466255246762539522081103308256485149511112518940765927147082017244386593403485381613768615487966349866825750715726244082353990181568777196716090133505181778499450305130465610792423078665794948751055211242975657435533022169059746967043720505170473001681995855199490712713777070998867757713824653989541560294658769946062131589044616680967461805506337058549116712604086130976505526866801855118262933802224721532009316101689852356813639988003086117650142415497536486036040609069018865616911817373483655017954795946914458828393065811973341022676310699478691196255526177186834193959213921260360400507886022384633682685358534377952577143865906919164180121156936066757385503743449878777055212749422361240131197774581506538658063204320727510527409378800002347930897979914945876224250608726887056158581119214788563919200015335901770626253497574470511640009395492232836153606027164500428999550741127407179782849410860622518184636557371575121754544821625117997761155752125565307730407665466467337251577075850573554589948154455315602737094169954735611727967035836765081132026553652453379868559580409390387736518545939212338430922381887796032992591360146533282930023266973215007882689504124980643291332410595150732811865405198018893294769347058255615022199937541550054653349129023802158589405425403991725503880284172348559197324684484056810692350357221213514407646897916706707651683385773338292856330410699170700104870348011821077408857594245353270483135510355029716262778513100728045816319941649388478522549737743165938509523646483115300568270722768633534218770801055964562529541467449437824800650190565974473344270217902129309998862572866845449158450727682472152620537093518036328586127773675390429371602874293432472147578550031117499447669762191352738930513652085565531138572264426451210680240138396397807052665079408515777686613130173702821688122708471515046529901822149161334580337771419877498491006506519956306853159806665840881084228620006567198248837980660735095889607829788837623915051081307809446600904308233698342561270401522369573340104098524146275280111082162088849742723708666357647728081090158267978302855600915562774585711474816454172842464472256273546038587040580128064228316719313856937698855476310314203997583418145804901231520096179826646580484531953739963425905641439558438031775778574349745962866336344174828889392796781508704401857404037665248686938814488547507467413873656320169081973100096611417044617092694510883549900242760897715002998865120788314727789604624944937006973283506826574969117063118922768353891896460813568826871247457715978655961540492878164946088973465200342231614880281045610010262002939846747555631784408194661065940982662979659330208313826189140563008796914663056263716708881253950991864638017167443948936097441885121559973883441298748627054483901441652104483515591735086544626151282464065345665367376768183723551655596341483774744551970312012339366436414443070498138153995585859932086424730669606843178331040300836694461225212324591313551624215419200090792054728199771332583052155709075978855091935175631567984133850835603606278292713121826393504079779737138452019217723383979015128143077531971450787631318693831470158701399612163997548329987741689362567160900314262710279368955286815510215225898665871434974330231956024091923209705038520759644775625123936917492566544302396027718617756077026317711722007342064431261813215154601935242489447008501588337083381171999239666315042492969775988936715135066069730829259507684902164033199341604724969475102432267696374923636602640321912425560851823633494230863186874896676020290997103818239683856766169439502928222951786085862032522612823599916981752868046349184325862296678376956933397689773015750216134828779017822751893575145541695897052585777935187104657601858549009730688173634242243545450914106912440271901808955974542188905604242819448337584639607595919388907667238944276074529598172077397498197358179919670084277837487921573548866857904832534575223642284200356076093953909807574039599228228715507796277681209454607978095055337451345307320131683067252777990357207713624737688920376270154463163329760545814417029960972101008772260719973856926416044875935283182562191966203740855788763701288885723214872008091426573736022944494396992727214005737397576157396088224755902648705059623334495837499275780197485597370220579003605887090157166922923019768712744685047310202474251010366137740883094160060939319684852621011453581895533582767049565932050107130141091666715814445391991130018414071355186904114131418412603249373807256140226522732371392878921107862987451192344514916724892818124719686008269798650449743285392478442849628824173148177415039304766087510787558164333616837005134652589697044851341360021216053272476917550070911699291949422469453042720744821585148035985872028934392892921212818997537410337392893699763675772359548608161715823596507762116904745301283286596851342832694082840837099446631993476436311365148324997527280427107312516870237613187268048126785392443428534485847019044979027806269986367525413434326208310652351367163641140282348427387216601530806890253758547088702325684939243543534652926757873933872627734186543666413731539958129975663644318233864710236869961942473852864479115392487328324668005313174857198438422943367152417588899731450911520147186789110086239573808812045627230021216597028171303733897688160196215718359111253663745562507493918720876169170820894367573299002263263546187770883393284660788355565437718171654941553091200496471335001027031299736182246406297776468915632822587640837635511591119680770272447232927368135293798463524368636574694519172540985335396947092747169933809449037931343539702368350799596488881042942774881676410599712679295256357110621371414989846573109842202351686530655369174781088114708969995880784264120690763445485282357821436239268515747283887902910981911674070988611412256477189008273317543868634506309425973839544629957874027366228531531432961526135589196823858735156776955527343038083685234886426614073376572557864225347724622564422434824771308313017966108353397901228153838444327152480431448771986706974638173985300502168939163066303575979962185952317980709704260333674957281577841606540464881176789868434437929824142972262597225886918557211730024109317805110564497908219949402457161851130910605681893565045522232983229707715500907309274748816396157999686242867882294194709899231872488212788516584315212713847588517990781663708313781114962391591481209631388694209539039138383043895325533530976157513602142961417704159115803435900496458879472791834926909315158596610992408641301200202649027400763420408764252919359253796410675254162523376726384067138844241354384442304468731449388932877974952590849775093912634168616012429493381213647587598587271207881342096836944821125466375327865879051763831064024177560765915924200930746842860325323543267285047150342922119187727418709715180229036702027588875905608783015101990474337663606035537768161819958962072858550651415150904378621428791878732704311036548444535365274506030882227317081859722852922337777956293553140455597966286545161200306099216331913761217761581716124653987165408777382665981119024318167109109636410905080862760864327077386817363420491219746327674925261734956117232223065978532365599400268139718864348070197006451919777994791438496311443066182027219636150183601279375370226669325222929104029768549608432419120653588143351760514517034256445701755803086555865304478290938130676389071477073793190797213012024734590421242605343821740636352832227587022578805942291823091603046830760802715249346535885662487197280203594984130005746077748738498502590708896143610044918237913508768219795218577873543780072626174718157340581078844292924067103805285662550833878063262694001845769493034365334577798120804409521820993567590007323021234213372915614033420563168132253737151040092182570446236030219794004687892265401841883334640439079741603790376599098748118655080943557218860791505251472407071658203982946231339491814150203772911332035165005696894750855194755647510672459686849642282202904622549861125991961061908486729135091519645233977694168401445507495688350266276306106869589453941077118790674741448462159332532366149749756123506009054312174514709510663966768531665791231121058701444933133771556622446226380154242067926840464759444454573490964941084449102021984401986916264290174023262105952205507128851404649578560745232375204300728677573793211646790815212646507748971976572656999156132522409913224223694755072504575679734012516528525296595071266749555422506593746614850050174061284296149545086760226282251972060035402988676245609310061691984079903281410932251166024850189973986379134876775882437906433642112598582011012551421203904485605323625792912691455690014568715013258344019798012358268128799635216340630475275428276964951459815261222029009642668465772859117441120097591511997067681553526885586897194118513913177081381815418157095423397240092301649193481426396530343475653518138550098283329239434316432892593968726356877465529782960372473029965562368209190521332601999568076660685913623854037056587800984008469240311893495623185551383924620497116438278087644657993033555898849601535460159848866881066025196433429033287833323485088805588305084707664668891593012726884545783198665333565359980159404055309196077131284729736820186160667399274497963108889416906285536979187303041011904348684304286666523383851113489878893434408264873914605131730039441834357726551176734873644692571051358962340554038135766120740896624337078100255968375276451235934803594891330188582537049625821157243773131308313229456263289376376904338346122258127698455270407212402882245754751460071232749147188196746090228746048774769110251885549104291348349117821808274115358260647358988031326292489987203161426299545509883653316399299987142902182748476015813919508536088127080427027515810328720477832352965204012952693853648278473667773773565695948073124299316591995078466381866571662509194381756797496968071289418381287503899961565658772652773351657478838475871631975422842755546738317238124953731055376099704149672353501185600877332450119292072551377238276662588020178360773964751182052754500176954995117279128799819077728440423774220795821782293915420639595889589279232869950257598475699271203476865635054887035180342955685007978184980642276435952278486039347575597647538344419290695349178259059205895942285038029802964283971158709267574418244658006374994087866914982012824605469916928602702736193399195013613635661782079355356829554963496931168249637794715905834862102112816460846677706349038647154648779099219264276878887113948741528084209563168483024567471078703449902121542931374810848033624402835093843601969592884460218333646867394212765789331131127629722057599396484121129667414598022771932751346191112769676308523908362274214353892954091111355624940128556538329563733776336819980905309872822635741585438374371823794378161947509131208931413852292751119542331963726587207682983230284182099117684362528094290240821336023044650878116140705685643132784987571988202380130541903272552929309191715799409797618633956291637779318189653563856611379168539197075895937861170636675510732455203389985745919142504589029420984640124212576468558855991110523240392952057796773271358830300999922156849483099455003211458723030470783169267373460949414140644456787995755482287453777146206795769290984453445370454699887061352645540618432675678624294606221953721881100011703841380411535815643364304707860620369560625318001838884038229317086277258850704206656175292809751356798947612117473271091967911174272277299757374999429329072888434180105192586811341742319565761285345781211319138065046576927649361091687411130411502893974213683734034924054680703980048144805086283909537867540066864718025277585714493125811074093553346034431417934225634020228000262779838379904582454315368979028672017343962406645990728274287120137237010766970478962531111054435871588436685918800585592800502203201879186106191610678719354181963703451667757620709505936320021779104592778336014720962303420432322669239727589051799481206632413649339019425010860793751146265204994715835882339393850362208696096804143478431557139703816452855331610093039126121495071036806744463002105301110193216278800832621679361356904250085326782215351492165105250051552463626820778647269500569334686273504715995814015868389377280417832454150074514122711941675056858481365878030568332110912471484632076360140531783546866292634029644685108473081503958308182360333098176244821833462795108097223115926766672297737123326600896002302724862812399172796029426067853783779016962881784661423487032305921558411244494056030324617024466209907769872990155823204647820833355788572075431038482292722563139193447107664943054181356318376813443778326620987675560895624425845794050583849379699680325398893994663031848260414251319226523159007839317788277066612144740901971784208231072095655456543921131317718913828565514136746549934439803589552864278428892680393600520746135367674263212450949528146937752943713855687449277063787855452570683767983293818827870504456346292540244399375682014564140265348736980166248220930640170474924162126552864542709503262780755941500150147893333949028772635553321736778109453907730528325296075754374653459596345090498393835829725978627579578398304154608757131397829925043922084685988846194164250234234762007152641369482641403555939513439726269995917124808405632350302257950986301007298332705316184743208801029596643491631923157893508116609518502982084813695990454969241156702859218740774930674760803799528938693421820431994177453037502349119110117212237778014834463717843276131307719449942985899663419946245193952195355499629464992500786119153020028382705364335054030284206654455601062759732349005384160382720239593287027246508495775859084660550437007043770752833403300817451598174062846317925876770478621962620569077580708314800542797056560772132325015021698602914475052581220385397758519012452823624473187198687726712003332589509038149389818996966709679441605847650661216095505480160737012373210766548033866067406361594527554566469913540140090663414004679570577897821349345075070658934329270101259386402875698124273085115227493096999377631970488844257732550472928948585864639897427817085998526155440016023639547327233505556888655475913144048919543133195459147291906820568407019877535048797124922617102624464716449998155905942571173322509177589235998780270860057077362064049204524031434616653768290826150427941562535425536393411538511239038112450491332818024219495948784156281827503204101234348232204126352708066931006590681012925505066020228025680774682999634064341297755237811047142312207900572439253399225483401017298619835493687489759197773209890959843944498040116923355893482637933982973119508441324143527590231026850597698275853863570667710687843291489127400680195863684027500759567920867695003865663104466556590272763339116990222815423860976952094892786809773441230483470184110061339017878370585860814213635417724011000226537798779550759490476937178228361051811208870714486443808840993551288312291005494822938516666618392017840175574440879594481924326430908905360260266334921973383219769805434894610308898645521115376762785472141900327806711566076190921092216010118055339072991293700649819434139192264396363878670572377946404807403571012534731895171541823625277066769936271666998527300764732200135394744494524443005813488101264836776277767957256620180989019863181947977650140766790926420058298670354485056690278148295976947034055994963798314335108564542574528704932420266895064208940050244230926546016843281436199584102382038461626175449054704289575269290003748532948117905980917745227037459611771949192721759682976106288962075315056284924868879778694814827541285921737882728096375909755886137651932339792382070251438980326724772749644108584870893429917394875611993737672515114592532271275948534742138189838094857598343953264101689235084946864513471524331353217499150044147276048936730548946525031957951768903343150488449389014011090265787093478273658424723987629665561133559900633904222996657561168735097926203044530146274117333273852510088141121726325627529213776559391610994441910949163180922969149206382404321589530813207531296282946064771884691181718653191974488320401664026299407681616833642568111911845910648592357575521304896845446600632073517039017589355705969164369793548482461972533676712107927214103889443270186734041196927146026149727979731459553458616961242128829829571960652884245431234501939011410344721904033376095558601172758756772029886048070405655250503914572035666702715142474943351795348793989141589749248538525820038215984391698641156230044978280679332088512029562698834167764259477514376217699579594489759850853654083584992620440361552118168413764984514788955667243698066394944490023401227056947514717290664222432304059197929045082852453012149100750284598559734105592432450185767102424974484863339147547589987200766855940580717647895590582083196834505618278775182311778143763555818020914781608282172449911542806727069162005849272955938843122691308573339439185580260761652039010859036113070315018332849654775511602195336817788488185265203647111376470180392417039030174826137873331418822088912674296964667196728746306652310017061672338196644795331279120618423081074269999905597482530405615877113822916415116920651242861788794504956812224075130070189694640384184941465765686453473978693373060524223449756447070011140669287868727665995097619153864858693732023928737252640996811053564242725882696744538983528676368894116595449433859988990966135481093610856952221677254386647026506778076938965829447749382679816018720337087448122949443565145963662668806469902309603533420958251046980267602948585983658957726844554194079513465856968314235371705999702448379192031316990206401745184278115134835698183385028025281085092878271692094151005286500535719324742760871800170369393480214751447400693184370565130873305532867957007832418223441207391343475846183584671006323819336722741386198760207352677194658177619809843565221384987906058850561541978405273239541734957508046906501548125550616476328639623068584117180068253335457759127340436730080033762858292320569526160378009373011222872891290147484992889508435193409434465002231680387130384853370333791365100784851819989082850833504470476028443664871707129309233181505048268690357317305539256843740813952684752475569396772384726178727771859987320681636555324581245260475193815307875166210779425527062033119142453403045541699497099566775296675509809044830555344013540945033717817517904070770987756739859667041192659519816253717863441830540311679204512805117187788120532510855752636998712988773184235007885615839414277589183401349808737053501799719211746343818759971822286389315852482551906107666426832490414512223109303747915490658036387066493079612195304566251742237704053071847674114235371399264517187344102473564761280812812079128997002208339997023026565864136693529009748167355544000363533796072048001756498074488757392391880374418156003709554234209578705011860277557115160416178078215395536056480123256314673544672267469002045365262288253397521893774863653473073628322742392744411885199095793926258410739935016984876253253351690180185360944981087841352452529292790739581823609273223732101063793437811844427566524887293339911628254607569388440555252712105720076960651185525323474532818389173136447542712919228579979031303063428963340861389453945836852837440787824829280865640501848460331207310419325872674823653320991277524738383381862980089450392313180747276512201625226678578635004377785954440872400912927866713861712223438674027370237795237702064155161651627954746328942769965702541403839183039221893139877745253549037548793150582752673463281169634247647424624468229870872472081705604971629408691709860320893873763582098643013857337877973568513770292368729996010551093545362420207588468472017192577596520116561958721643251350260430152404722657544523132527291807737812852712350476799875790326612849010983055705584014871365426024509235461476133149676195637892460065783729886562352026578541888243102892293293940880867681850792318557991376122319477609711095424290547180323749751345896338657847310361443432653328400650384333614001804293443651569593823105681721392981677566338876970968076849905676524764954973249494624900577291567042469767927411337807016655167588383451953680897193013806717660221037528218132354229108011625669378061292057038770262529370551544151200530707347686515058622401226332325542020406855631764774345559949745919356259754515464802074417902206458104414528374841163436435540105946479047133675844141305579654461071636670325883647331177163818812432725223795450110903621703013751743651377778420458599440027934398655012072978749216213378396188332391503107723971278748852466765978878434704823887386146312226023693934350296203868416279786321671591798434910554328370558337638712837430148236055738054346431130909649069100307576785188718345140195161244428315662353338882902146017750300890513196671042525834421134989223501435818173561775950550599167466443192635536996361102311111548308301516132973691407913231270551610898185887887536614138644757587117053502293703826137828225962413032805721380409166987634185484580813501267091261456501980714814389667052271737823375412806350899170856705595473593737142560353211773723600059539414522492600778399334377711216875188955435689038907717208493980076265264115018556051262033467493233699758346999573726867225968908270928512032461916854373822642174317861141945740691327537868132270422233387121860343273933027896403890971641104634475970310118384037262836935039852059949604179800596750914612845318296674766384226748745695023881859655278621893264227230999160087503522586748869492434231713478078437263747502376514761473380626713868804179607281835458252674610017427690618824279331092113828254332744711814897445738407162071664115171377234564712868655520154776870749265947300957995754458415453545841064988257608358000022573586466496838964738840669176365542780730772763782690087150457979255401854316104679599238776767331224428781474155421025548238078789244147726261672753006391014638548777696733071505014858940922134619696464951951747677735150930504643273506331494092957308561597740176269692177488227716073183432445633193106237192432846432037363773021561216394268124555531776714665396221722656883477783828325036283979728070924595091200051928037319365723250714638756790687307609131510012269103091137271435491708675529011293592517748088006973571390208898435967908679444994045454898183898267918686820734861529896972651744136307791467945677314811256465551960284198005615481437132827153414396164572989813042524633290117484228361121532452177995670527138743039256806955763812258897571141079627515659660492123538009386094097006043629211618319580760813095879433990004121197397432990726277417303368536027091084293308028030467498345885439477604821286775021766099432367859671425550681815309431740410168269675205552789295456192977625790274162325346868255824064001077316568376690902529332696106456844053221430958555912011687935959303831400396688883445703641368860541813118977633640143362718475883943965400297033678730376015325267634409844943819233455483609890809637299032775371526000987881987374670237201639619173225619753403113903990630669957378756320460628272966310126678934059177218737950765973736383573307599900467060957625689136047043896622667171168966320357087931436725963975731949707266985232426208486250821312183099703565712218169382807007115862902247847022333887601162422282109346959444333162555694746516316216278365719495439864781549643974758080742320701398333316492344909680922186278561182525295079481665953700533786608589143942325022792642291972981040993289871301129347774394246244972781805104683471599890132080609311155258978478822235880074354712644260211715973096634928390449315687110331870307821241074480809215205251208810199969193373118628938257032214160850372080974783393841007427320076100320467334765472005736322119737117223278944251209872535034094185167123676713465362319310007234177681430803532683346063139770570098607371206077144040635257100221298521569120258838078712445888725416282112478237973067283786325927044625836089928542781203191367109415268978146017984141400898868774882220737429765697308809064854336415196159341148288744634716125841371801201070762676595280821932038592497411119980591054219311751912851667977739781520481888512287391876494817878584222887715017128241137707915674791650160143822151475604541716604578962469678081337481482730007286592125414347955565227840636615860972766131740625192894659150634835807135011550064952782611846527011529363597096298817483173269136845503395034350103642176908724418949741650202946181078203490431085197081869135523648183423376685094061707251752895477406158688640336500871948792784402050375458976978934781460059968589166788482750059643856816274042100055762696548716382075274385852689385867585024530656429531739008363119400429926908754553452631212207098153899534327439270576595985764345682470885339625541106821124402581656664339227022706648161401640044333925171628781469239803500965503114638662669303410965449354816616072889534255812254867175692307174524582894809517997699631403284208061537422722819425725088226826704998483176466608092463136438102971306138608445157404240508036808297154432659378922687255477628047404351124727359169182214572045972582526121345344563194349246042383519992066506329813236371870707422149634894760236017627543114229720406241932346717230668478291582531122456699764691608901464953070935076747201839181755553196982718150013065471130134543241879285554614810573187482168783310966709053633725754051469084000552998176922661553664093852473597672107249381270442067884054242805065068891713643654522038202288998259961186159971218385915917192719031949519920167258804733546893341986053197396753050642532993695794549265665136750282818622678760306920642220804948394651838671518349199493432153178343057857987771883657244120347300420176562911357113706501319058777780320984833071133729493956422062687874160009265816694376831992008424512996279550836132989754185471928405149610475970652200936946263878773019249404966160484925195891567413126993008810625784859812592054199194243963052580924374684957402025945289764493047985987790305227285117785029628924497748409874615766512595337751356044593261408305517080247514430936767400821975281129664863518414539084538006571192491495762041931959230936118310058240437550783031268099335298530260913573957584387250281458805315205464232574158709627845712131073815171236325520220406134253707168347378063049127298934896571261079415437516738834089173052291781192001624859184963080187280223932389135231308700084952260436499589640624355982031381808903132436617518250992733138680600853355758372272886712976159683031168818980336584302812288765267176315289804414249219691313159693122119661031780604952242084182460138152836248255830745261337488222661529299318393639090449909634808590089395318687869016675858742021642783615548126309752390076041226815313950068574568637199791897175444729276778119150682654862430929270289536362711999788810810385486951671754588159687625557790213803427711272708695687847686571506383668783514939985647332258170026939082895151838264061795041000802808003197835682824872158825068383460041320522259312224535812558568815537285170381062331972995318078304422537244398262642500975886806122013706712714868848943945363628232379119622816471254135453502055799746442717119631058284684524238823178270230257914347463603897187000764946985359253828317171467135399106796333932170116746018393913846230809007106218532713713176109254680132204493093061732082401682270654847513692255747206667424775410401997708303148406583575525140788333213883338171102244134663739997368348041592223428874482525807367545740064817885418933429495327091694050706475629039490621216682200887139643584875732826729491568187912017628614093218440207316235327278608771475357278269753385085748148252376802848986574911890993054745918278117025672090695884793916831176952551893040839207872269665956511416052746885200799046612657012905065917841126234437766908298249241651896716197493996862130412112449288632144183748524084076565214099917697721445816444986211370432931994446476914192174070929823482307485062777763311351372777252323889484007313653155771272017135960008214066019488877417183209854224780272978340953780107622481059792080903525936736016252919558062393606915832331617557013836622185880950812754495321113767994367199357122898216996707832411905197757767905891375935963059713882914775125006032030409277612968309898717888182516659120917055354908964641221977649916678214951199620736064735924645643968069104177035507196253402680498247586841814678251347291945010523486607329479946353821388564190691802863877728947470948307213732534550025518138328514719631391353882286397506755521061746228864674078427327715657430068005190924242774328538919760024965181631657120880145564325869475984411509735270796976305367050955834266981670045430886639294788483732003848706090023868458874587777609305914122059285235619455011379439701868333494863798827539088395316695648945173373718671550593081747368094921087520176565046022330525894662654212626021403543856232392250269908727671848762378844126558745277564833487772504827147762015880891762801637562349555675368075356839863453659881617494258744887008340557674849769287404344629772481651483239756879396022909583988054606686151448130554061235356318338514785631766591750699144736479084488427553264906313727773279400724965822704063104776158108535414977090488223361144938288949464293007977898912079595572578535985404762321101270952267107624123873059554204538660179595501793331879647468643104876239552890539853042738777137901090132342964221263008745135151183136996754099557734468891184694326280859549532421979070956650780136146051281921690569824778733720725598239314346499725064985760024504011122603331946404013022124081141745569603400729302224245516836807973847645032060106403064668984585804692062047224583564071339508380566073403236251112349858912538635103464754781180407469028227157271645768371478199210912341650101432494911183863709352068162491188642635036029644447338220329392548473146870815936864127547590695713531048516444701042441609597226166081841658384963369878621681214168876877713282799613313222969274966691353086746885653311575314160920460434265009145570930377455969391028631403768425702007676531574315032527450255524000205774872959002475334918172505159680109143303769123118120295008108397613501305424949090359108924538621569919954840398074262278448855332244751563127671854748110462433625922356262412779528265352392357537816676028954678087980706358216942709122712711742736722560179478633756437985314857171634236489136856756307748949504738126497660985090388448758614474038472701140650746005245832934498844607362689188029791799501016659063317411663287916829372918860554434499005181535355092980327028863118759299044678746195600064058684175025725214248776398774277304960867639137314443956769627339232919231111106458980658501444656850159943961215609937728616304361683165256380670818840719885989498021957843048216272653219950126573227786443592973630300870232539392243245704825558279278488921374927330877753107600859153908238197220888881235356064729573347840052172648591961610136598909723799924214625825014161188486338263675492791238325527068285925948624848419653663276665736170639117531639160362253910830377595161967392692866978398116857091604044225810177864642464180844926182815265822185357210052842920297085248210984880751059495737616138935357453126838475498945088126979556074153161267671684703703031168447427839123167253733795897510645508435622217019120345345168270031238752546755103103267338677323487436033038358135926283762376233508941156601765866910626963194392710027907723986265886603300442587170434682338954664942408644365449723499916402056322071665203253348560628084722723586171026685214630632006461886051950484583604763259175735711709832823167183002346840408933117945500559731345574406550109340473613786883373303898833034086756037901753119575027943843224214095498302795934504590079761356580979903925281300024152915892864255913922161592393294158627693011031694321620948466099119733980295546372534259460053732459857472584073328713431380065117018693941787775430369475828980933832338896685740383284647009256438656011191438579858090109280709426265535766585302078953101840003932613967716899122261645894004293883866189778138165803446814241315638703305674032404728127131799936492885973999355065411883556622763008547480821882002373263815326947338352283726013165046905267313018703778647647156079199320102929660299854619484783200126074683215479761436173824632888907412139045601613846644744115087140000719940452965376070700544468532986154072245666854500172356875156470833307623462192863668304994699188142839372716857935616598138774377099195593554742756497748606807043518762559778159125675745523638665185824492056293978668803457425294043100480376028467602164756828284889771815295326055702500376656331257977739005169127611167985904546237100701526520828871663255958563096278426021733385843863950126250710942007768954593502903142152136285085483785590985866979441243105808858899381723254953348468613165267556985163331591771340609377055155648228435402487599745387802254104218441755345947598030344774481269803049221083203343493695925388001037852605232027235986954710740079845893362752956700491201099085403275859105349464961493945777260200497246714435986613908155339156241230394280205711404384055954800639182841477336656704316094435561130382870910930993185773607167830213550948774686371084351060082928314601654124646793505246796098299009967638986300571592383243077601472309761629282915757155910222039300699971088239361423413944302958315551759145274274413279615632009702092803499675530611333673326294788106166677623902868184892153293111005169682220859880925216072382261716699730041957453779563918529599368089805901275905715385458031205177446578215110209514978684675456704486397920349925464609676454796522044940405028052672162342481370163177640919272204032928696787653911992391189556955258094348745640193746364948828079715767674499409061315189472080744112884087872199516625479963937773296785160897911187962110454149149643295920597693002064201504531565108495800633431353543261490460192825054673466119745990946126999403711050236081867506747526900810069346603619933452764780255612617716124903187445070266800504063744638658942285392256180752539411943554129945605731481887517332950802749481613617202590201857935871486718527757505823733018061600180629060065431423729701023257413532315204561565133627173980696441976637938135269152602417716755999756815625657973873100678815863607610069866460776262236368135303507241297967911081915391516913927133105988899574423801372135373920744050619175365176614988755935743489326447851572926047918366477860786843447353632872451584688701045518032180069738598529197357398340451165103921097853344156867919561845781053239942580998182773354023884282486723281167444557735041250699181622850930363896069166887517566874588958036331086046982013411123910785451065550262124306563025348739577066184222925714753887291974762976783834623591177522203404231945300695485792477300533674438715605046791620750394382704958156868865827367270597050546403537814110063621779557951138322046010234047273091746872323283230214222415634748837317161222588779529239387305400683967152972360517575558997246472881475490784405499294139658627236490270669312766960068575845920036254368824713722179785822722117817242713543381309194248250162293556461690348113645693791157498978628508663068948289249696439293724682586637070605118165855510803465504586940840824135940838321672198486278704564920445746276331418051115844672665256215886687084006979778522418149140282443817948644431094152473525381285422080039371627616813065800223593095939451546265672050285650453049122858224955301284713127097253632783477142053027936982956133095225652853132049894440232660992360169829221938199938758978255608584818578826544781784870577879759959029431944962666818107065399118648490340699517842259360882335478814145832906410797469278003822072267349191677673405406461324303624423387963105916233663759359462763404492721798906341688452434616264215631114508617226662795030526593387159502327812887454923272474249609904912123649640389126096373843610471915825874784446033245809479192840267359211027948449221930385317389187509359618353695197595734562876082096926342377050144345071579602480768338215297256110261850067299455898389531889786936783079404012701429580132018855801283694059440880806228222684377295310784076194372594542304557842406426554245076713877521041364533531353372089006709616728514085247473575014160987976861801428814824476543981630876731812200150577837687336285960634540271958640338739039044931277055729200058908150733933178537613599405828802074175168495117071446606016459089288156649918311534512172944654466360485806012130365005689268053911739265236095666932218112904322897987587895975175573167774582560378108289107446902098909511751287035528412556850005080300247678014879635670556012176752554631914630318791988482374502561138623655035585637007882746239842971191518796027698120916598746288157643252848928942181983740974484302932434903873991252815527584111449725639224639505732401281690465676289148657178364635104992912069111274206008075247023583171707891663745410465398293436554152834906672025871759498979357566767465549411745456048794428596937647534129407157222198295457216607149571195393392926532007572598556877311800314953117322023291157546535801170076124809891872434954321796165102181897434926377324648415033770392506448448846398271965508187514983899574775773839794495304652500155562633424724182262649549332470634433534647479743874254367788238001939191168190839908545510081994614821605339758203931574261795504901781646970803557246122130060574457560270202722453228395624160071043575090586374725452734831524386781323418626652800172906475702262593718767258145799818514973529556941356752321607135740796070182904284283447624893523943131707527095482057041858786870231787337127435887136080756763200215622563864526524190718246814187356126593861481420089748996082621737687183677309775189093151409843752481393797949488261316733170579396840576710135703268234096797669755609284372737925372294750594847353429608664991427729031490679028131224603813216051310762622088433700574638796738551863608073483780101273115512288772712049873166852304268729994651567134282925032968780261912187437445147977447228627699662625560258308576309028896433297204017634839069646307722036755255066604740043784845927054777369965501253634107520447825950768559930300929430658386716290481394556718600609449124734013616397118614767582327979261195627800855114380678885178812847571438670546745309574791266717349191267896866161456640261770394851399783379475614841802651000387391343704796186235874120683050225792812646793936840263019013089442080694173035393554808936868787241364121241012051525876276699803621739588534463259014763462819767127840668558224617825585306773470480544589477329600729287164342815292453530295729997161975187298750491865666714564053395604152271826197145505481927996062127375774469333124542670211654589184843189505625498102667378598407151881988230622387083125102135368862931256678783466454089517515838347611099573911480537950314288308899299650944286821280552035661825265222373053694472073602412842644790666657484114291297086182283337016007701476816342951620231759596246125340770320108117980521498652192400893938347891398791358282762656279105354628845222145694537203866628761137951667681456444742904308651241192377412307083337354080200440842673298575854570811910065974283020882315348279038168478645967397366015267073573128933159300690551184185428357672591254312608072638845007455796350110025345815383057479069668496049943498492237585360255827428572216389212950581087004942304786725400868700159898526837322119427333944464635670426607962076378036147927323777344042597614982355295672565694590975050873163710938917708562911151796797406096618877401300685828836810421029319127600891325703667254029295568243189943888051517934567870832346812304230359308808123988496926014090981952318633443854543938717077459022615288303243889845259460711369880337591457145223186628338406965813716435884695197255731043321631350007092333472762876598822845010369282324937576151457998376013647198443272479320288738769338770124524223019107856186324031172366293096746767943257202538667039036477075991803991022983545269910003604264853408201208010293917549875751424045515202770391824153126066813030115576124382837647844253446044757396734142352227002927265587778973744179706710201572194207059491800230080236309261099249949765084358981707507351141414822486123705034678306711869047700170681495700919155151315586137384496998281826982271481893377270054382508440799449269013725064949013168218507514574528730648220514080495520966483065757390370830782321005765594973386732533458136223144081002077493350221831375763300654180939633883818420150448502860018246719613850089382794421212997088316626672868187034333091276198442158849918537617029501261543255081643118194082043731468658581636980485937932716072774276869083779200425340731463261890981304197999479396195648121552026997418964814214545536066309966159518828661376859421002191714438039418721753525370123662625940210698614527028063465760826459629882337470356230722395101931333315145840314647892228335054111848366892803387852188826878621154324054587780975918025937813227794698188205247304347005022737357743823686106542738292457152616037440274358142441791655630285092019728297656909954772542618123169528278094817143404514350250853804533816974717467539507844582476406209644097384879046869149387551467414556406565070646671861316485633764814731840073356309270281073613395679668611112979309191504450878930756451937344005305480596589546451828130734589391227536073267177469311923185424704310681185838672289833420169745880072259035167480333566551981853858898952482693619097795101398959652900759599883998469744474722836841144665007043258380549563637448392042500503244790950912115325975605889246884876153685203237575574456009628635096066923351933196450035314808572371465032376242272084382948171166534794421597211009483409531286212204692343373274469358345643663611991228169900638622182481709350252993351989408581708380453732525996558711556545172994500200129519775888656404365386957603913145323935541880009736089512853404141327256050052771273135514798356533593984320129096580733678783046661129283327781273584707413323257819996716661350916990561879578011290850486302666382063759531435499536049825482357252095116716507612479405259637940441000732316998733580171949987897404208227029412269611116660030516878023809852559771546454988139490985230999242031591843811446828031290070719123471649510443975645827565163946491593514234671802515304533231213095303515966770134132016227397659290019473139483918324016306580956040251084780801084371244589067228959044448807095153450740868858388224799675935680366734438202466535570118449334463067696344341348179550882143318245621654551906245461656426461822909858607919701163276583776924838082198810311766286618826904851118826464226593182987858465881174185410343118811886252071329011196621253992696146432653841015606417829770784626654615959437629385908051682911344618104914038416218300607701089803576299146501216617742739939291060126165252153745257676152105555331353744534248637027619920301599552582170201695754545449422030094602159517427244307734537676804409111774581722583889552626910379030427753917940503329027925493060958837520561341148172381684503266373018426893739562999604439999812989073899836513986794195870428048926652645291958397157852747001031483971005792253567118044675270094902002853075185458065961008650632434406939722847575079770686695859697706292813450972206225666604075274991147165684408364790018639710759356967437191349175448430601543802517221669949390677148508939804082193683660858686030160465686232914510579929237800029531444415097171698066625273294402612428606413216614711185961068945974414595426820824463228099804570977057393622644396931163607279893361924163096072835655094393058736939583599264098051381661059007210865705429177555655386926518747888538078715327926820573662940206049519909262939332396690378588460016168592764470261184480485590269332380863639043375473653248241426799139534795259214882383704795230290922450441299072702213947924032235798440630138597079912207730466121909601171757940971074113414011977191352319412642152749980889868323336502981807833448652204688164111377013508616761062185459021628953305504531197618086306722525812720090205380552809715437101984522023726458012461797178967200656606009824294458593238774747687519216020395343958160783218660766566246973940015890240476002215259123093999427106527474535112482138798054280143205997115301122903036971104789179333022024102009289345449671965552581296172620718696264997509356530456277689295823950591800751344557791906208090210547241629985337546548279016337239435064038346510188604952951645448801008611482487022375535458904570724117250930429945327398578005766706832459858655315060391044582388148181547183491280645311692584283989461344543138524126137556721766824523119061739260262660294886836190614677221857221939866852007556466306188401490915571105613424229206980869517373418087452417155209207522345127821484464087236115397218247304272860903490782547591496362306478009290228972716700360314937934858538272684026566999687681597754030963940167970586279264007152285874627604211589430054181192477274735770825145116758651693738014863655262184755648228180925367490294126190177958872645805395064689474155130895477602224478319909417840454706558710121778388481021922960735486369820408409388153717568225855603410440851501917808217097814744609311737129163644364195255496645028537251724014433328527164320768290218868597496071718676006230027374785854366659453766110353601235103179642052992271361664017341918313725688876689298256249279281124247085690376684900489292050020534005282984953147144383377123152478623758496023518766593094619507732777580262684221599761783448409026044489914512646027221989559062835938938181083915972860449230200863925367206096886508242131295074707362648088297296568268531427183250751496156010222765532610040560768528671226611467545372767899181287142485455904446117024129833540250204035142707680755671842604260086027304089765281422769574303578185080987236988952149498920109475807750993053924721934106980255184862747316464341212789829654827393252527149840678336900669239052241156454706245905540733991645897989842507627620772771333515145959855585287494333109024350420302685988508123217084041233526775390051079973828884471794031195063307377065989707139430903007529395671421743931202694286428471919875162870092257208215330167919703056312200819196303338348783030795763684494978549433302520245238126542018276365395830169030721268220731217813841420660929997909238249096602523327269789853293940015838237838025140378490770211042629277482945279086442103450089307970436806812133657818058949082292758866815241818460216010145425831307834846390975417640943966118748076988681454996815509151979997047679952663669058960367874897368840715650842033463943158985885026750583351965662278636717380164705543299415765945367876496023453421279933032407644666391868451546020252235132817234776696803899838710928984155767345848370040002336692981902178548220039134628595675975460442466401006385006353949039299278876663015264932737875952300252584607920566149675636592194613427769012780152153090317382443247694344473901802029858639797644003660769897991049893202111547182023479919741721739657277221618129035321021300218615932076092192686094886824396052455757924734861089993466774397270422042030075745656929733514890932328333972577467077892284697356010352389705487561463963183938389893345260236371491226643089929032901400568963089178655642423503884440438937993696196882109504874093137884706789084232353021637874356700693655864264035238787383934913841487215901603931054199637590738649274635993265593551007492973549376163252625347835168650763496172630159238374201697384627816598764459949404081471112744421003290209431966589170521463736754449885517327002241269841508932268868140953677251495981680703849994918387016705172336274364403469517320047791257739397271026379032045043731432021157552963998934902877049770102839558957137012668106049658936341255039790059651701653136113332726950489024302914068347467091470390637119611296077075481755675852753072432939264223746884449464935414042209810127409273311477452044593643780112289660006267394933485902646401642177375932480311680676861261937941274034505617627633217809257391743279567365669823266938699987499704743855329657498609106327349634641872974194787590416486368999082597986794491218690090194293899936169861681297790663989731972490801155826813701035028211253478943062504640515453758386687100341681080761929028168463227029963223445853802147325604893297360625019204143660785358708757035364630350740750752543053216130490256969604646844028594882282776784833933925143773492788000551206523392397959616568761428359263072472133241134283857583462681642108932600345517692836524035231498094116358161343663210801690578391497412791946958475831562484560256854744162238229605967181343333407920683976449023165195374036757191829233804334187090483509781509762400068407374773988826755171420903715570592803009011979087602368409600527113975768915393645975826117934935885779042611536380659897469032904546317291332233904220079390855294802989071433141981135261482338784662798140865303541138013447500014915269216871773358686583289240596313128079172931040245240965261495217724982964584031364625219616358192814511191746155267152222865918385285045593839332660037233808657018076208296408979524292161941319321527125382391421864295011917083393167363217663838690097025465653778468859148059974182064052990562920333789050209051799599679173976387276396556755365830115688027815299106986155301327483192127994274809806431695679123434015046399200582778590849843483908520790190214876041113802344711973524999123605268568125501433558382114542383205576283737339208434544173791070974620169269075802333246446316872710203590651086619378908829561666502448016921707453113984482933221177797522628397869058098824595142219461241970592612339609213070148955873075009838114071219297672676747028677448219168815993675875298916350559020646256845883797971591074501534377443120266375215847735316810351600069674739617484491157356456105052886844438958600179364665013899986786002957779034959230003592730378392889224198896861069369702922092405192816216380622916616305450437710057459411226230306493407678318726952954614381162279953065376497849923771684855261703463274290905167759637211667945759756209907584993093224660311762555374065217173876897618256889633349738558015680486530263436319350757275713519517269748584168909920233205773008740657005225826307366625954847098246659256758971088673893236494011280366223852534480774174025643303282532200929920959686124833074753736394518658571233242405125460075791095509771940882934604884658720416316453833545537419712681529564797280658807471207639800140977286669958832455790917181168200380225892435215275926015259350273309991864570564712180230253540000539923213662515113982956348782992522635131038083518319109738814989198934705889421292089519331714515191304287658137193565601212055021970982150188413463494347389419102358376463780942561134955234149789232721253776804828942756283170900287934902614990396292488443008417986381339927951179170691179800851888075510344920925533879420638650405109982559192457104682595784003587962950031755022137947645982783094900779392673796985938422171370052919500757275531743762849494606579060293039764574517219771035427011309380928862581631272850069810490383141965890960675336831790297802769436283545428435866742431900983012903265856101186060581692347982718544312839380751570513774387849720776622325588532930547606543545294838240278624780126815376771499910795109273862317268109576203761696942566076065657734795336868678355794476491756893886482859514810329310472816681207753473241456674642927407727152174288808285117120976407162990994926906055228031637751288740627085048364015502496490565791403745615461833536582084484559068151050306451214150137491639202660245311359441319887026407791174468401367543388600592677938421633422286322521470617132501310245498316965389855936312278297715482155847849735134175336565601227291536056736365335349232153779755150926005103584436084582369483056877019179823925697385538434586076641800870913453641071498147795233042145194784044445219171726779995480163177170585032606231475676326755469065085799745029858303782470892164564443690986166000280964259252705151938682639315614348265377434715136059383360520709195204555837785748020683085598683559539201385280699519520282781979297665695802472073220659491880522709059231388167130239467772923735841580555009886365203519118746237008990699736173747380554598114171641377678220105203911440203366865854182319657095740178673182480567210858215808071061340340347084580765920489212893131203163984728188876587608707760686807191813107943515354743581972006461837038871079126833943341857977004315197885998167726676042477489609169968875539879471584326027543693936891387447920037124888591048309900975348685139095842210283215828273123826790552348796178121253438308479928656832315433572201776793352651172411921852863858962134164579895961279262493681007126518055590067697523045028639455147254545131034495253017026535487079885490299488306643941296432558854224335116354965331840234077707043215744851520602092938352234878638493859472110183236616351232838537095081547645035225281127141186461337994441036055827902152332136083451355450339299215349751577914561409929664571649832354240186883654700417229306846957206875413364662813958844002507640787235957550880482493493022178807227680418265970950948494584182711054613816050517616228479575613165036912608478460589509634947080721967563084659047043535525384027801291899683115528167869808819630346707793471190095543697666572834721520089312665558540535618533322430908685171884947635350372992647199514794063888462628653017526738012421383122754302777031530492274036733365589293732090340034660497499905946771223849414586610610073748688586227758152148752153425331089282088279944954642583037128681369408178408737167547398200309063924395671200778223355728622671579737809880384013462780110731884264728744280389614808454552777128634903447199819631852147213275631068853876900117445546548941446718416805895808145109899025943134403833317978422027844967026594591235616738109660571410798276120398290275538910763843417518643317816032052821966876534319063968115717451304418300085100399815794698391273142777244848737638598651521920792034253287715492865026052105575206947083562168633756120591877307534432318002986864781917026829132942583699686476151676127533959657877051359464287504474413272428931621948398347844476398750929635364234067559416823132753788244882508663769343726084978115644067155092827657870370216540559998602293834659308423767470051178394503563157908965435713733780730258537205271250892920895941347880955881473675145579410929243967889410931821738858180924381818546791887503421336870107258222596977199459943923434097317410031064211337996061017205682087819807268228764674227955500091151483940646313345415384026018325945321324417780330621747241462985292797885859861132959971832120434952481022187150020706429965445159902222130916271950202194448502869914156425660006119272838710956742453654173484478420918098543563794109128761098876288661171516024460291390087264167823334380169491200389140814030444400294961439642232223617127497295240150944829792584770464887490535564645711761429863407252976965871052089378924094927755870646760656016272028828666539030556562770189866498592702127776926912778517556488870279631328250774306078344493256978421770399451228773499498434751448596987494572336167299188412035893945670055079010148382343319206722373495647534079935090938833267812091092602707289153538236508606951816664340790784114521425797792209209806042531340503854205912326446706906345968843018205864251510556790652186072298241180987982946123050478316780504744685841072919175459120286260941098416573751315170328301827733323554487130962460650518183775872890222211559426487697304336353109362884949149203934196692187105726786622537311942711597996443752152116810100109566215729756467975735179454235995636340892633016841577849312583640287561686961111748949233578402384125706074481489539817715206740196200753722667960603915867758335458975885058300884479299169525713281362182425525674577955098972983370867893345640326399866029420047053594768293310587104140285733402061678444157698137523597845729084180500182652341101807050986598871980161814482562154651824637888644402943652765737621456644238940078765064186664275577853490160099296711542718577636382052396498580629631660991628312060914715942504301528306902155262961459304128438390450673810935333920669565244362338287056235576612286900974505458495463657137153619626081011806940935329083196083485799471321500127424778826173403358179563687592145175195249622544449602965601771759281839288914508445438482249805054790414934984194458614378232131772246387016230196479659878470601029231674742539973928021536648390056365210059131143726023543644512288571070123384339598277589747351186129828492732315635085790238600663778457294449122477654911389475898859372676049562014356317421289588238919750909987862366108674293284916797547345823135074916030785365333311249512820234313890672949754778652301896606608034923708233584256754520297869858601352054987169819823082926339760100857803189826567108599985594332882630131077777328623944425335964421266773229502617598887760782126116446236248057307062323256096575141189457838635182142227734864435699450184307335897296289652177426184333348452225052433492800078623688006111918282269911737201149137449005755242329976034055050343452399592198796113950015345971563962202263975009711416852032522223696951592502635741582590388729528613002498927483981168196702533459727000556590519245078323386996375499107996702641769955768384160687598885057947922663874182746769112505288523822039322517692987572316228410701444173480123714656541014070772425187022244625383877869396202999783325629535122696418678270656696292689774381446499592360797095619100419159414362972212358477092117287652108767815306478662147889746844145203826253484371280074283613474355749509607143012592288674383521893164157743986821251885759880944189727952311594918903606980889525166610174977934239668707013614167379076940991479510124191696679856070811645707153697375583330206035326505270121395977502979485730535886043438550645541629072977040150376567147754699848850789267742769660563283585657895520512969568098562023126446259781387107052752534423518466301865560627640167797720218559214133045649710644869847218701990156853613283272917775202248798835637873913811574337215272044046649326090946080080092345746364777574406772696395805777236799586030230465088273961580904696572654307582020384239655406556742238996178998034395947273913095822933907621102791241179665672048869216265154520472538904084938415704164513612665285817051242159798671007979399583608770626988453245460159287042938605464812295654691722833460741168951349231981059905087322221356206025412752271999724143559618375631581245533967152423257916190304757203215007574241498011250051651198187686196395643397305193438609299099279013400117585606125870953319315581642724807625020249290718324943422503039343732452414104579332125237379204346976546212197130055079863753945263206211349262194931531176885279970074645272938635996085105742983986344540512912136459272831623435086066739536798646327535340257679521716305740687675016915270276756467626715332632366861886900530826018396277874922129764219320086991029373447736656268881482296810759531910591675034400434415282559691015940659170957227148495818223236726617777003485864977812326610627938237363656439098277083253666384891096123339312819793163140319186179756593704294408553508819544355659080117722135690242430700979453409679578348410963839760191737226410677748249531202675304129574917707273492440589197910105965713540842209143606866416251471097373217152997252998418643838637243619235269544559574545264267780703690312244988368527531535666423606497304546096820052901852618841852219882514043042753848315444046169363679301157355830095660329692659016522828280449791051913167817788159066272353930319848592108942099011122844133825135054785070616327829611930532168203846390786340274156384648063198630712193482770872636562606462340331748115413372685677261611811030323025137330047304642969970956041264287161998960171171566546579217538548360634895798516110752428980242850594208049344500837682332848017964148631690707972329467918914842925792563115062532877784196047829048615823750308205704602958787206737846085180743290014091905482921222817726559445736119147582990888411051453845980309913577706205775382742781635683989380269888558267037050146175674151440107850362112880996878681531983709551492489571520776836782828958721357174845550449912706047977773616167937502300456713491361093955073186614609667379526523073755184041591946977939438126532037480626284187586164427855854875979630271416251666160095177665890473203393583150237190039086394138992805118093234653075635918764991847986707283389911020216815720258122078321846579534450653356173640058317736348077787513208742796258319185541465222815082315788875034203910447303084818636480998936413620990763363144750740376526683978767723440451909437554414510326210346759205199354448329858297306423130480564058002911767960801624551634518246210885976928605079526851016514036304406895987428821946101524943805708344253445710640184527631535203304023091058494134252736349104061622617436386258012909328991608304513001657854532456377843257403496582486170295993720815238621299269874975828049270466707095252684690331938935366707404353164736804030344723804591548827538764073121849818092789831868354232327984739418930620371616189933654476422113447695751802193774542610653023656945680662841352640369153354961553638055469764135051456496503797530732177260914529943033516485521109808019987592941534282042991412353466985795604574760087784796303929916141950871767554509527396414140523240420219631478149805112590395645522759472577069029471475200801586456816419326234955817527838418950519667975339297026956878912329244375568094376836503103339561481989882135937955050733335932124291056718612757377293570239114408843565999636743841397215259531987801557535775541507812775991146183367336004897087010876784647244186948009740907690655294021224053826089690691357023899889260389236862423431488324672063176513971228087995737026297810284259896287371313501816510991659433108821949188532987034370051982249158671100762940646013571425143094187406610057853386827511473687587567660067069108166462474048199717868217725354606887323973910930251499391353010970661664569946560661561767123241120672934854173538023857782807594599277989131323234927632004506603945108889640974950119702614404365976453589436798161646837207858265239190310323703121580008181363533381628395550968244100394101064168090325861813751323786786342068586749080497038890697636762344570457528737092970370732353642377080629857413037503252640898592877720085406851483099855528941803119158876146318792676991093429849412595491862969568167412087078325421565461619837092021607021531362502526222364113356051001790249839885316562497628712201057585754611985655632319464794980951083938610912647921737031471816141545551134741400624421121284654828523144066086667703719131332460613621724896316457754753926479066176652480822163151338648139825461850538608497580635473810382581575150412780428171303072066948240523868449128390537795033946113619332302292666356733382284617378441671425526000502797676812114913141950007151067215000384311331443146074544170916502452740585408977908841192084625316370753032764207050204876181508563552273348433981104861863204129675071225569912703667904352148019286826594677689837609886487892898436566098207232937991653330960599882037644746570803659447871402575669884384961311097424237835197076612733709357856269119825749456876521730593910575384332540273608055909441566834605647205167958543081058755805902390238502543118507324278170395125105550991370883950062372287414243355640913136617724060716206403551875655604232440085159384144819337073354360500966777754850160996417265171997072317092091928028254272892344167601498747642154858866536558235393164917150152208115704878370927949998794460172303254132029421830866718930214910425280221598226401814040358924407046954813071506508561343945850921287540365405357006431767290913140961649657134400830555795165943777397176471906348951471678263488245453075150857513946749136514382722722217427929581680478398332643506652505752063881673452128912127341906383833124449312688713464076865919869384080909276269940537645116354180845001939935874986476685907120628966632132305695520492143092436316126560878250483235099131110289092587546384996596598792824887529471992824646952725314566320299275858563198775845943653456647643431827124826991328565821013928504723793728031904848469000196738455916355904393723850666110018402022227925310186601698881211001921445618413755975451765275362874028672486047466286750598584997734703062317634944944380726327558188252541455424348515198221122204055653010481145422171824492361296102801452232643429345880260142376908237077059496995535625099831455034565019588888763460638818131733953821168578514319355624470190267729264297501307838720827273712348741138248777114299056491181059299549910450633897632721317295016105200490186236655570347279763039763686638102785521078577858673414027088398632428367690043746634214266517435703662328470291705778485545272350200092753029649016912044799437415876456785521259885244667797024341960403661972686191862687090430102857265267873542497627765671040666246892949885829310225232294468714130389899782930592826388722524260511016390371305265747290596049284441261268420115713495400941265321738049027271086483040448268977928417846083219082616249861745279238521879232285401468537689011518780561934180726425307539697494154771337840470398413782347744793174523018829201315647182689823682845958837678570822592333807644453206310458951872218786681195367050115800381677601004064986221530524069935617830572365749201339862676731052263023603240589561295897231492337692925152486766324872074988764874124214114641108073819689464986592431126010746098437449893668505471255845489538206326029842377349241655909685403024870137200603357086749730974924350170770042955583730027909762976138333569319881121035146652938177042934909753643651501819577804405800722013126505053538224983011963917973400158494048651749950594820763719270397773277180081677427050800924676640322427928623078768363080013795048647821628597474033075665641025756568480815661273856668055325516898539130678200631867941265161843905418032842051218596278029042795150957166768689202536891135452415058736792506118088142174424736194142088251289543438505944677876203499397035851201727325275064924056838324358954066200906437895304986482833046775443219259151597801888040294630486358208603878605645239667083194710014278869648774332764836630358029134688212262565773772118597296595561047492110599140518538892001752237717551269279621262050543252913897431775821140374545587073024206778241033903040279685363857931065605065924109756842085831717187352316477727644799092885500606178700225183620384018919760443046117011980497179918228182036000908662561411057241967632304312870137258264878392520407508079764084690750297657583971475881433118210052595890934154506173232634139683897885757274314823608258386790611371338785034933420301749141147760212514263899688263966726317277353202247543653603379369417163086368081448007478181977006991744416621745328986959307241164074045000373554452278451169598899070183422240385858242443205211377652128907099592633137033780292751859801992167107233672900262275546528351661043368021069886010773839599689556953781876449427233116221921869239518992585006028540035702865327962765403213883120750713514066915434752592806783258110031548842148761928516129375104907303389847257280896689730390953196234186581882310829184303276071340498963497286374472906749394796513417940571445374200770825648866827256295134647625173527679078186181954651426578567477513171049631819922541504611113833980060009782332951396560373115583816177779830072617684353290024772065688290646659570830913127944764049944883837182080932133786755655652587389459390858454803600049113464970981305942131832291295193204650545862356472484667954983351990924527737914648547147522408830090651650493210004626135321379701379831138475449891219725051545052122559351787704635072015853519373573909487266685367443238050093472323400921656924641526677628206026599900017500083759235874050062150659357981676818826198591475364328399105425950100865808476022370423332236587071432997629699564331272467924292229110601732055058422508951463169400367255072210571097487293690025872730503178092892383994848427503269633742674021769423813007396631885945386815818867664686808979840287458242295542261881260404011800537921539703867042328841685971377922268785259900541087185217461499249003326632556842350544458903254083607439852523946407796168827531909995780674842578608503926240317950959149079412017371832204658154031299597597091749276831031354589043879877616895691399699439040993796510963765610049530292194531217883109748174690720220464617700499179595671680867216805553327565284689082457244212887488138844510061494951112825210122443055510234321726664105381315401176116683468847664761617711002334883056271823509498400116609828436967709525788823540615809926488875197517669211334837567923645789704937458256843264052918741199841882462680331418289094991981440048359436419338178051483049175486367644216623136715540468381469872319652601859781652134807031010833313905413898588991971156296565713459472099626487380934912109202133246008077172025923283702377060869619492291473950417653703550414436095492019482127155996811018204578983741494588412610893961210476794180128544028971739723033102615870229381164731631030252530958326650634942410572216241890252486135454516202314537984269747679571201861608935032458826096905950449957134498245659037418479835655919778548402411282224735749798723510368892537569385411280760730209537587986775795512415203895550486120872624291412927032730106946906632797788229926564605555000303653773290449605159994664179329129687149834471555379748669044323693424367293387158625507327012215294090987212432398698216883656553493967135223489870465313645640857518404206963467082377334918531091487432835893790005524220075678088779871859421646533466347072074786593852627645981753838777217764929370108461009268065601693711433791969876952045101268061300545248228483789799671980246082266668228360836303006083165521279590058713654543220438208102446306180931838786374825526019641254485769332137448414180382408379134779866515886173292324712031326020059540165414116766449909982678819278271695169826042854307253554034751590577657778091712014071348032587229641982278368164188981319729674162194209433498486805239816846112696119943851249717817181128057787926372124690010369499081139437985662725064989508662723939826220381524807608335137442611916938482396265603143155123416449203973624410375552067863940559473085071764625639915582468996518655329200285127789615755588105808356570903190803364514738699673232474388923086987837112440523019697392152502714756427413312485582094597000946977600117171354617640032214311047373308136210317812065227112013249712616745715016451447973999653023544253655404016358195720338286870945522834388985466251899122615557087272393118849247143290294103371925445839220272990338913461108214782976032207685582373004440056228814510061072549876187487948438217641701264239612581576794128930030701818656973367778712004591465592973466490242051744748620167837277996493832246042148964766846213225938329812906500107177251883819823545589017057576174047282475020648664276912638698464189229056456947173769114587472415592190881015039584328990880857668106851791453221041904996569905517511916094550589654232596597303674515042442186389559997840985527046558828126212008746302714619404252202800681471460896733962853273945299992742200967737391271374487139576597991136000641117154227983995261423672676679522263165464503661757350614439407389194764822031461090457896879113102851792911018735653857968208367617104632015475965224939525152811690262355059969753589614667691353426898171223998561220227812106677118858372763560861135139719320357964717588860618892401473169970932848245052663202466117103136188731650562471429082504158186566676841821003440315355486654329510372353425442628404495669091655724309746307484690625666171687346811125134378153155073839862522161426009930000486104310144536335964793814045472943394245224912934571126605211472360453060896954937217828553888311358157390064301153580580774942676017789587280508942671387078016652688039681103602163829612815988221149240293898902252555930515905201018710050764483824453728418177869932628040147819619544269505771388416287634059358344476530642110564907116017101737620825850499681553514150025248991727271453740392449754458618642371233566306120354387141272046360684234279075380512664396604701295921376818012506465478687746477238356648498634718112960607675491459652955925272119282101039545917545765131758873829639297072233373710115732249396431140419152902547645786729559971345262989122724400823869283074412385865970103057852911725042994494273593333105098294758073960363736946087703219585868566446032429516011458769268928672005070674387682389632574959759024882110900923556984952883522166047945668078668748553851538222693754209419524524596900997255954386167199684196995767505394826516646763075173790872200105011431325649663487322348863432058996378184897368454068324351726645714244176778379849671204349361746265774683710401233968556658776992484897494303315298461772159138910250503922389504247016741984252850397590586895347594204120196811294485633891068151712853682910806274419756165532531746224599076715081272390557556541038201266121990138911045767122557602450599433699153230258570130576669047516383258901326205844184362798511170289377673616801950175837552394382460263326083125677714727997039547801471344474707796204992617439131113865958787648311408152491938215849150316908660196061674045107177517026909107809127319518130922460954376270805781520702600949759818119089371372125673669674603870428190806820698353322900017330778915952621185652748812108472264366044019834928890768862356184904836090682682759706139960323011386403742670173586614768094003144601589868677794623591682602032056513018096049155268520402593666531692302182320946890005993867221429594739053918013423237899519047979296711794918923013434192073600662012152483485439841085921093151165948264245680684187563796541612835366281850327711654269066601798498768933028275170575862939461741119863915783995570498590083328792210467081986155896231345573846586905880896165745109291802278319589480641149533149447305114408532051183698651148513100388739208649824608865210087317873291266896467611268709666489852801312990591424926304593904756680292969706270642555404113777027038013347065236697766146523368898462149771283849387506244561788688242358425985885780639886169195670956039905011085015691320174890500625430319947740662110549839797312741593478827646324004440863123607904653357636887887699398717804709468279005133370225896832833736388147353233455546678292546911932414799145218577933912450958025762991142234110459150924544734766191238879260259580219790119957964655097302750074713883342709095041104144731310071153126303677351952261614997696563263159768534753564161796089094706833428085537438931761762171914862340169784516130154618564330160405095548877135879287841370677108119650978354424185318985907061968167017966501320200616036488036813222192832893877342993612241622567781328788242409991677201105442820120921263539091351721203837619416171132605331869717437140561150487808841231692348513959970448301404188564872133459564291340558891051516489856529671211701431359816873676340005121056518849448370222703426092439495529000166387998715904927223915707910243265199658866949096926127013811546382582264916144679720942762477863533844469526368207081062266620900663492311037619613847031839991744644979851502011941073818396180241951902410026657279523476093483804020140950936656471170270070786181474269902997163721127391526629066336970674320123052514248802776177046499739627434841726882324596344106758257158405864929686800858975777661975412400076897688186516286065365771426826818808541062086788970014477773442475150440097371552995711275156878218697195717568605300137997906719155424212701723193730151879750973453368114973001058133471174370222078824675039321609149194933945772995482773075059189834272140422198376380812575528963422832831788425874726887896461472388309894282723907970618513334298160348111956025112299741341526737357843700857151934977726674004536970033781831025498196772414463040335335710662994281405360430425334250576067269512716837421195642073714341109316582260320057301139242209488723379828703683872165768752514951400162913223459952791691778795852961251108445632009818767309423706025417861110858245236441227494687720206197303859600549367036636569547632299946823452629915864063531324081987181728756279969305906607189296918530617905314591723141969131299997100496317857087850568891818726321652745762681200936489112180622378829498769087903344376781626819566229487384543217780888217613526809665446285027124475661899211797013950156693266148724177425822550691271545703981428986284549178343133284059349465989849450212649623588008008508441550200337546043878960164211632851840825886392992126890674590865707990207516882991331005243833196270556591508845097376273208274341024632356120379738696759320314813362206304418462813731479978155032475793005962582449280386451980086368515195822513504697014613352932259482885225311001440877860320216587029043671383250231077045443403687936307710651831659251386490255354016583596459470448824923651819529063818760378325135008347656574193481139043211307477099510088014374546898919820321010842473688363930313242922009052912909699063781726843708755943913208022538459661098582763433006703155420013094245103855163960222856222707609909335686490246334936045160013325814235828033184875275981414190478696065218757471027571773720512818447743599719993905787862709739168427489434241550195309279971036769036368315842402121253739629117531004203267188027825078349772984806639311179328432173985671579703499198394004294773069389394268050893523110368609797741393317359195370097126303485943879610101373220764991023081173205075165647197930676666398756429970443828817204572531323173857988938040878058823630687955195518702939055484816079086539725379411629994668927256203380580187187486533302584899044054089049963099677352500336687178731526400126284862215293667830493701451768196845413014994590878665170004551075598936309654293835548747518074763264790502570007062389787081795121328064666988964719627817762330491091881023284406838697882164523377404328261730330455970717336036429423825896358526895144279786868192580667939823159960525675445168752968339021425261384880076977807637484404823832441598920379134082338040898664278582325880619309088095983749669881250078380798417557471961233711707640138705906927842098228486683061502637868388851162467531415279295875482471756531823152568839894952290206956405433594263625016387188527208296051685371504760233073381171365338459216948903619420149387316120418585076887005803525818841622204049658457431130679703460880761111522165382264978142898925067520594380297895764553654718498698679605039404336602252223081346504475327246267848838632940792560165346528379818807536780571533121831508509768280651956789520843455094024590975803044613622370717757317832675941856224558877817263052087548002741589864038976223923154862473803373016384240200191677284191477744495677717339230045315461589271562046633231564455453738239254338931496265271650617399495684356499788256294934485308536977043698442291129320304142469954761280391283443472336132354359627892387964762214601592957512070157135267557260585829206933655747066411573484007745383046165970084856292765078324722948778219757959143946160819208898661212100554642058388447308009264560565854416751071251431418226238520961858947057314328469374507451175773975574150210199332015853210250778333352075144806710900483156776286766508166777394624473696787800382278637025924606467993211036879182547321929670336612172340280574909946798420202538117006995682948993253421615802618190062084328647135133665051313506040597794082909171938651112252348187777410523462508023340008196188791098027518732855565491549097196063670037603170929909946191682397803407666531642289584341328693417227791529200869189586048806955768295500521416300508088430598303710810408097569615806178345239392616359684496697953600407434166995318159997111738142394239499379679859856049592549968233794310561556404556628256546903402102190065838390173130113527195648512076775110666206568535513922179022383591967348991144285684082654779214599466135184622998570454082857690347129994823059408065157906945959216386379916018436378091215750989821413187641507660326818049248369373580439625846278925959784642570131572167581869404423512777418856422916260889531996664565499387455898930136525107483039517205745033391652001446004267178019316159006596174382206328441378182254919248938053609151709589696965953171933434042117264714780015359069774947860468645165634205592706938376466134439198759134381905416603443199899964254942396318517967181741380620768827695355766520510438106454116584507295000794452845039411862931961947489675238486598783092005715249388406659785764874220389624332612484041797814943054193909186455991245979824815579801101030314240019950461158813023779876370432155963575341868764349480546882999474705690834391901942114397799090851832464258153856251231402349758625436499838826761752886892530244358646749751729134220681559549579378525018488346653731094450682055137913072060786171258342210725379853510377439138951408941953876255117108469174964070785046517806001737626491182573347745239118720964959906847249790144847182487203803492942456517309483046558442719856792470924527093512932417574750190494352393299126710676151685638985730054017236869994349720095414227858546531475818367012832499638860861154912785376811835233794679754498793642482105866123102274495651962259432754024750892008593682372909661147504659106510524553854578934450482256688015172349821221007155677753924116470949839708013551460367818860796435634857972460954935143246699471840153642097070565834017504039886846927732385704729794580495502861163922091189860900757569552570837063453744653271356303123414963893204540602509354416331318848524018627763848793965399470676373706564277870578496924459286422049568537471944230253722424253389991181333985794645665273301983181256916369295296713578883559068132207861122408452072276240908893867519031771996273842908508535975598277293806217253095709423427061526475296872136483098670945920193223233549322096686334924268746717622070050610239089314393198620664316486878654860208795724307413712120334833257786358391938629026702857804002236796846042193554026986173464131183751429517544295248775650115403742292605785152886920811452548635860885257386272787811320543733028247036705902314005406124698666570460088588956864383252140522105625162614433502726730518144825448074774909196031793133364683131909334889380817760193178579145485090203602861693626416803671077038648238099871954728458442411534060470121328638314399133175387763214315699897906247699375275936195242945490848759107046097196610175978988201820894032143874919567191799063563171929244592521545174407876336467440808681497640455439299764274109186585453976462247180129602870969991098168210210444202047010008369634530382492472792967254461574836009882403163841791863869883978760323657456093936945169550814469241232778610607768867992924370080829586671141803437885305426483910234170716217265640560003175407365141136915523435198929604237801446059857023460457006618181657766741582722361571875121521495678291253277953772519906014710149553513997576647245013995365658566597317833716313251846940778579590789038027282229995004958862205040793989609131925434727466661748632989545418290604145131258534271086518779083267526608323584795236314913006556010231711580150785673178481405878112415825840785477485799078111043823904187237911541201194305759384360359922269628440596768135147610140487235634291244404798789586730693833441303172301123117542800240596782212196207096054799903915381398654334739059258140304815828386937766973192651886712664073748410845859542924802301181067576692416794055767185720576718767079920974820735578488868385072203686188918381570183781037909296479142326689977216656161912334938035808925079432068668958832037895617203549459727578020101369384471367483653514820301484390721039594612948640164075715002812307591286349772179765164930704894625241560214770834008774997477384046325916151261101833701418996275899215663124403087403939273079806585669157342776291953842437830345633688427342971585839933704414575884436706831272472843333489089373950764237366770610937891554762360933878887915835879628229050419457560231174810093248412470700002795108669021815206140864383640328341753830671821826171470085607618230507220731462260616216506313940896021178816240372198471184440156331310765957784036340778776209383850669706543748610343476517016732644125263710211076544891008612007192456742880704522008893132405975498020122044760685581394623692564032137073693356688963893396830781588613141594829762570452669084922776330245139295865512567621046135601054280932506836301797919275065234481184682918622569328669579010023622748773284727329385728129335741087330733114207783274709222624017495791073815004394252046894519971117402458198202784726637028714406007302996032944268250016953401197706937143189251218968037894531250426362599749965275258353741263766476541109618069411537003185143127469898908124186332440042355134302747822674261192724015133594959775436124100058072455061556696373677882588412454702994595907940783594631199514398589434241439714057376808812063672537265686291788219353025570034387824463305911095550673455325136226943156378168939787233492148079270549947779698789944648228653430903864784862451361182665158545076222488166974721446335962591915866585506791539798240995342944859150527258920231173335086467415371302578381087554846205335993085615735645405470821795613531302800158583705662298710779751195489910897058705035240045491640795056914347205256388909208079736964589944606097500519054420743869162332263673451707183565154349683201415312343067147459245127770829236198712766055837193630469990806523524781647645969752842243188394173053599243353167398251849793651191621885626112926838446862969341736101335243321745396286730228154068045673183958598160284860895661607005825457999983497238575592364099684030470834266631251661801543677116428736294108038443041602816465029000778198730497448076703526079842739025559522641636001256387610082974747091083165265666895532496297701887034073466737773993717395181127736561503791514301653009184603493368742549249573143427593414169717590655637452095286657320472204103723992824134770725117985770982640331827555659465282629335405003124411556886089937055045822881023678127941526504052287799209903099091187050693684247639720463008708613641057227803697179646401095394266594281408250662158371895590063759228265358687803258927676535927041328159528326729145619334790097947030816505313172998945191173540202612004277256601145495673574791442169567050979311960524042082382633063876861115786009691725983382443442319792482048773774993213991056271251267905284050598729090959010355281999036859807130323988903184357620417400978720499315714134095371802588017032096138827789380069798127873888125081309201026811035084154481891479849607249836993341921577543695500025175023266498341620975179718618700885782410604194082304303511496560987166754704091686177847577291990155232379994670796143290058788896721576635191531226367505021951582409747908449319818364680893002473084346414197795400669257002284455824428896209580674687387244022231130090009380740360646278035552724363871238810949700252631363548509750427565133643564032851385154041309650461845720205664452975831601040381694944372762286570939827310435567429584360149760406639034242273924354212385403131451540517239221203883939828288189652318357307355906995130811171293271731616405959463927065112724522172951387122392482388491265168703410873503306147949019958156101160754969805418530445523092620023479356174164397518111715609097844163907587463199650556782855461931946363189995668372611517884404167951669585729671301466661030283067842010258852741893389445545479757523440982042900960693129700586865092195554920357430376838530826298528419429383729428782498411488901231084873486734860390070303020659476677152391202214551789211657341917641224623501713280033145936427073927765784228248349359224669068378911225073985197620026472235313341303893747139046030243692591506964907147391770781931798614134039668282307766932997728763965476249124221064241318091233629609165409193308502063051294319097225815816869366120233663487601197589741398416924308925298480547886525877545283374587583963141074571347126253182266462597232767947176549390094720467741836145661603876281705631379393215767992730001863820446540679102210887521917066916319030069218400207267817363129397768796961970634935085676136741632603030909463123329472191121295617194028269193056648105703917893274924989747202006572409608056932312589200582700382258785386008033677383496311121839393422447589415758501157691690280928042477306916550243843808604793941431521343021384078232510307418459651057657769735885194753712438790765760509759538738219434634056592776654574650256534708189592600198426837479002291864095636519930923843561773526596576832824616488727268430767211304335399636747034091042835485342988733181104803702101048745289800663214682525550402877132804311174778217897873188016616857772912674681510106180260429653275300369590956885734513774779792824118023789932510054190908845555728778306901949467484205699412318725147564685684581977361305445272174746894046465627705926007550185940307682379619404753168497548517333806420695876559110484395700353600746457301020602139447698944540535526989280352394434765251443870941480928255836478123896961247519649812988907214320897770877427743624176996159206355820801669546015523002670994884233519699916304614339591577515957943446265599839259686721804431407966171295598761443348095987446996848048116758067275423901347126385050260038869483597028449286974089430835846572641715420296357273619585978120995233178063003880513398626453158228495075664573416614355071799357875738982661762794276058822386325824012530407035043577061458855368600981743096487894500833130457219498418666155723187968617643431803973013394307930309052068725914336518426168387894725556969807262698322225771289168533780386686913142010202215841159140842758350798608174098804944798491181258444161518965274764826538211468217464392119758387043701351781194738256675516422186431257456705721292118979566081681017227738137099063395822735050143529858580787401572888832070950003727939883628219993921055742191434167922435426659984713103930060683282715708355302620346599937520793389525363339288247083940260629048795859686493237992216399947100859531008102674343052200203908824097599000431022756610923397270762743167476562043379880826071519817990592910202537648043123374917959135520195021503431799981507122957100110929191619843794556119835779824657613140073131535817269754749356866129059493299534769748243180930002944464097637875536595199806672145496423037763159047641001055033969171855069210352251028359105471132998167065088719183792944185969899658818888778557923081398535308749895009867582722793006851739102459651393683481777026329108482420342724922555457659303944500799770783352469004775619891494468879489696153506422459062673911165889235637986630980684747168397797044787784138717444381284391272956380643613246918222672420968494479294696571849875840770312738937976419802047334074951008825921139865223316153202640429320733794806281402174838467502983429232511540830831062339451015155164568161987791527113034150361441499265400605588667578513419705024925665943833300177656135887290809110228547495444144888022112607347327461486376082516637785287603740807850184841186796951856270346542841202900767766614721261090197884820335606610295854703940718749013501408299010610220792065716857381982610655905678371591893584158246148562367170612887835792019933139110483635422816236609098177073469903413384446265526322840575921641506755121069705040918798102526938262377836276441043215903721065779254265725179828433337027531863403443003205573124283096989622509213705712260931200082850409094521230528878094684724828010266396278220411904933208755619581591880613120684476727899406587426251642929576220048868897205136032928052911339582628605251066579931068151389635872386432052067883524931386091361184932511868518122612620160864109824796927906906328705200233818920928395605536428029091042675388111881068117519605665834313808018694473012504140953678144000243578143254851060318151123676431144631419604216630971702439187523023856613891181328415616156699934382699357704853183837353190080434304046146157372117370446473545232360850684132854904133110631989646873345201012676554609978226956510967329311757732317473622665865454609422968682650232187437991756586325355930686899605852682026632561636305538501031870239772305214482327693532524966078922799457174594436364971401034652953783947546899313617458855053303030424950608920525329834519930462912618994090921725791271508544226861347664975465275174335028311617217382185832020354804933968138423809178176442503274884687455391567738091711803720494956523543860759302025823186399816230126160628106136113652375871562299780007358544259035644328271518237228234209614764307164601731962994918120449304364585343604453720514012067009451414857200715189657459865688192025235719049060142654399047006723330364907225070182947126943087181476447601464336167151819663090608649804224154743061320251556300609320245591198252366274395470885997746251534007686329448573619909356548031377715248911220955911891027396513357253992833078785964433434279445536933544718458590350955629768529888222642415399633556325586959071369983431337241094695331627062008916871579392025688784908031405240135457535133757135779293052899383613229034607207583205820807162992563517889698676106931604804797655151236547560989240426089618012240751561772986102131163210113376656355300437815631134919686177387950299538402313420632857608822998169234310911434742539639939348430915315936164932148892113535230745398617420778747078376801239806596748693242805871070085051548285002689108292892222017045430170728704353438853329017179168119630772755932939253991370103759687964491486751014661894186493017125271334368348422100137287013522955188794853409111314097818389466700203133696086672083632583725124093755676996821586429919122014863824909576888091643576060956549667269607608542281083808644245265469207124761057283300166194979736015043759281910485377876753314323699068742975447466591425584789804877824158901126028059912533631325165426845329111039078488075737267747539069987718955477613454849873741849663205228423484184686893932397279957025710516652262895003305540193578739684693573365001089416271641255254566829125080286509402666264706756829640634122030229678276590017170587157533091173357184940212285435307698789359990688831386107933059351766409608038116489964290208962154758739562044646584377614433948157050477030986839665293881259453072523912544517685065919185540383639803535318565050407272472788305741953043044147346223662007518559142607897378190653485124667635697668864128642579372875989763681538733638341387193261428572073433082639386929441135396375032976040619113802951373828409144736376863413713650915622954974633718373658453011320936926002553204933878722166106361047186875731512598511884132728032728701831974739767323928507342324820386270014855973235802666671516160372918529331105479029063940412709445030118344411764158819791297770493722307286752260695130217305820463140565772048831583526784593186620740640301532251979352447006138221427007450322553019325074392842732196884150268351232950068322038560892245905787507182655615068578914946726797972778612611981600055961002314483193226966360959791438413753309830710767099629465309467021267147492180005979009008029934534875815465328856777360553011402872371754729163066442437896221695858374669340876227193054030145309337707709185123181403342677136669753217823013540636860080612438244741764033870297500073658592742613705660305548354512879658865859711071502756108473820127908810862442839752498508856297351018846562356800851862981650760912257971233722282302590489742767720896653342619883194005926169216275392541931153139611702137465842729953745873446920398373785516647501273014661904262705294571323810288763227416233461371837517586515184609101642954413485900292834725595658195109351938162639330451221494657335938878588939398683149470518997656383421190049241281923120432252436781616227587646845572543940028991762269826957711152356234958041522357019581666818874415402996229572282887966526925814549139795396915266254255280776892233782142513567741254322011733908739262953307663429110932236206231926777584240514710610023245290915144930657249022232299391440346702567963671269685945661252036421933865627264890517576065892013839938404883763773693460485335156773827103734068908327232532975931800590088576813880745183312842514715073818851485812892822358872742533580584875347786690492788961821065145954442534846323230297258330839458118146863700667897977350083332501226354753618929127799773823352372310552545109705419261987009037883685631351122858614976390864388591516484785384379980715947870271938959621286976341751753742187588128637857337483495683462718334377411814507353987120038822846967640303336705960130590726398517404170838446107224972751634741655757145633447429361398387088167749892793636230980035566584975096728918604643372350344638860740043911888640418280933399646645223130669098358736943096611216484793921649823960243697269069310445817262120488581876805337893667545939492347294992266528267546587572224102765934310785616583657148608061071620382562718233388755733113076612300358077948797407939945247110141942807419392432726613262631873898207639895632215454038774609577683222161729676124145927701047106148416835205608870569731546863270250485433529194464805196344478652491637527523797847480368703120208632950791678476261601150237115935279223252036661136366528441014205327230342739669927422031087824711864862610222277015708639551245056122150999857021409760578187502947106588496102298685177718116161924716074339186271363380432900684975905444202710412862567914712085620116451386866759039992344214856952139417111417001621778870459610367212384406175354681522218627296873430033611990125580852905420532177595711513774758450167579714606080600092316157325735349114562916875444891135248605791163239079883939930291171811894095406517596602632383115966776190710848926660470663841378911713812289888242347696971919548792784098053824924957271886287765994729426985845062938685643201255036204604155181056643276325787514877013596355493377482530069819584733321588372293946115740329927533430300050275850909763909762746552344870018435146134156235770999185589007184411496679754791480170250707724060981687471158173633140484198102767128811156614394668386723564355335967142572535634524094777063124303849801321975516300831401480535162708536043856269844224420547817648311575581642469369577220282713745421208966753225103068605026765937004883057086970620905880040889460879628676924789965873986584280412343290161319795914049251205727704536363769758888472137927565069656681423415363640085971647878414062144529933950939297165848344713400276891424056487891626281501740454387073441813048015540312330464089202325204321382893015696728393619963014044931314528128567949415635533616680575855251066364519124020279594931828286012778664957809429459462387172059008067902343486886275434465218798805946530708712908311347773129798227459830500481102553209218800716090762397888213634114961707505608358666865389341625144457930269904069244152242773041349103360520280116623259390806283697841573125203148672783890215664673333020238321417929329681535785765589964704091876902293874150400593987357504296327061413369226745453603257547988836946608718470649291163867094338504207451557099591684295414676663162638345149950093031887861814378122554308963321139854735086328118544281484130924944847802252228420645089476657473453392211588390200573081219596216619188109737820987520596972705960859652000022544520307004027612737501351769119737383655013538682295743050493030586317382264223511722286833127421600059046515929241305242451987950392842707737032382660540066202666523634568665826220878120274896062391739428628784414927596320077421692782320697533307549618351927671662425489774451799005192737261545788263912370788885642767852742219699051030735807643909591783926528481873516634978574060127719286106625792282000818341323764211325326533897124191376010141462602586125669782501985645209030374498590499850601344976237573735991237037370765141965123408927867098487529239200386400087279347943614211321090625444079300813154929329299330585785493899216105523217882709063314639034371316093849026153667172787714191230813404886673125686775462160657979188221604102210661365734783446013365421016088921061803863438406085684553267418085229146922888845187799890649844720021426372709281668668939258480300944645064411282997804900880727846693984060686149791028760354472677332723238814482364757233451252342328029356191443859702426112387848960815405493749890617956346934837672262125500065458966568678785301872649405575292895338148086224489038551945769476965569733445951663209729852676453253026597287216826133927239436698164740746898051758216629016658403467859978562788030009080924982272338076424857140113396653285666237054686901641849677100615519222758122258423392817809598967082514061920718558093212433380564734471059606365245033753263419995798739938548043748899560614419133561656337125065868153457869664944830959588112196592590244083986672256910966254369590619819596902477199861427750907991062159446303225407959037502322302894130608994776630454057216165618196824524571950372610137744775867570587618085538168201305100998485890451892701936931495210796230382359978436902367225914961758339194787493780037552100176853068103851707351448563774047957760201530992739270339219902031512917165578874682194413680890706365851804870594749565242778187104802237157434512397326544430043431968085333971191879458320281477804960042934006911395961311212946342114256604844930436561968573743021050927870198190179741418655420162078168555577774431089837897685152187753602489436088729987748821186933537359856683712875406796240806673339764408834917918303496905551643005644977854398611639673411220937065379743685463789834105363368973362320418820822914308160305912525722148121784743875647698890153704618133653142490445450473759924825140728689622962911154644116518024104644737772439817523296706208515848792223184977773329337799703592173371143003697447649625076063154852571526527345296167104800776178634321716820295755904764640648307980243868110186668090381705761869662492938008943159564806546713739496253667697293544195313803848848958739517950632305289588830768224506469257919145187682835938555287961111587686873646872871034321615509726153126249247137517648592511777986541396305505532190944945606050836757385435795616511200101499569772527172894274603617512475176926621889005567094146342802640586085699421838946477183101805660306696797934546450635510186725591139195000217604751265707058510945640226366534078585299345084190725671070684136984030441818247926430404464610933412754328595945859088643106654580590831925914614509354664399803365594642351177216416949131737819366210682191140720869086331799224825158551468061408486031157283503934308083338432670122545636342945139359694150777454182728272661301564175040704084624575793455322688828575236754616823530211455328005377717163101147895656583974640447315770965919023278794992909939460965038364902153641644064677068037458249538988125776030803656670287724125353515159848120342226518833712066132882494934132203712241431997300277035751831361636557777848615541456559367929496145766773651619951354410169773398005329682673652472213751695083220958244284520450836271356621228286355110075147549435347400684748929036615197855688333751687273963712451356323554716930394477196740757384355755991715788533095204461696042116464673072829885856298736967263770141670123271751742772605169623360689856952548969900302013531247561234577954429577812792910670791913963651263577958355185550636502364920801776923358331311728217259084287770835497733840062441600583740823327192090945967446403956313479575632757990285250676076387544284870318233633298426709805458041235145628233306990405871000438408869177588031377231770699552374719672978917543257383172686394353033783640982467046649057287091498002611994672215779228750171843055972780428878391165012759835601599920184248963391094319267412065513733928700963138624657322410009089056678659892351933011603856994023762555591044169292853029403777015726437792043814531273117363654675882914556904946651414176453793038971877823689173476132461572015747488220861541957261849921207011349200747527576853174778607909316054557116396174167979595554827656250119614595192707540690486887434608897036409393930051999550019704588032805249940772637465082534178192224811266154286683353060071342779199695772980601839600192713330031805694462227637469180391408487563877470379828436398884099437972761980090499531305644970836260227079059914476520257995747027375272397443549653302118181871476465200490752741799468949232035965083055605016576096547505799491249111766037276772986780084835777070115171818929856735225541594642247578042813383977913375922595278994105010899276872577062274580209347400258244658880571535254957194034509042483793033160724099469236422850290163414908660234385228005837744969607779773884576456316038605859751093607797548576817219381491104620090692834523528650568226643304510897802062172937840717894450823124693084497149127927202768287789526943814035071855637398758568522905580946417234783309249944239970832503501149311475753025253430196664008814519620387316378510989804522936328384437337233759428871146756854369022279655681751966305992789342853726083956870511479253592033991002704903110191866654445852782704641312530312552123985396733884993628966085137922342228134494090490105833746687255947129269246803202145292540006925835123787206531561916124166690128939467919809319135718247799511119120206422290713442222629127374757403547592590445550225434059108656203179889871750469986471771202145019909071114549931736573274327908214347140382056980855770526388531963030370718452498995121550535779644569689896606059410050626995357893334346514234735692048660505704858467106982546347623217249509394025147134220655611958537569739222366070066611791729140771514203570593482085210630610463367181657245711135907038902246530353192095838838816491518014482026255430791258444656549136983516901165052215495705034818960357616101392064731424053424646834224098188595719379999280670817657788940702388310213211726761730778174103848650844951919874485704879992430055465621922713668016525310250144404787269585293487347219088231784837347637084606433777376986126873350553041805544745051683994338039873132873805873300827913555286612461251587236208102798114406089515771577542211310760008822425898643111437626957823322942905002101971757671510597219018555278916727761096008640553959718735068130627310350265499393180693252594552313857180558224942468272012029963642717766904611467363908939739966269186145400516621201334507984773887701449272354672975663278438492147140723887909233300485439214628451966196148598524056531168826464655041447972671477861737536137899274188628662548904763402918933816769906866285759605969482953393772173556032686708269323533043175575455600052496633153668508972958489393404399973199281596496129976231319344856153196541366926341133014813095551544763572069317292265688318629150076072786737209644298981857894090803844586339321586344879859924092478560319302774243019758765819918068342178443969709667744923843953417452836360686838229732824843615777019291144322224879181089759017593999297093180594298625389311971514302615879656426488342479055167170281047159895702391153615892631490176006791772539647662838691936152230157522125780596952361908184986289935262612812876418673480218593284128833019371067053690394275751100983121432950957096958009836079503394380397356180096498641471335389823449011388334398226256838481268040631348515416426962032243885601981843996042561784021781111509089288410368284387765972902578642552646216086163139326565737046242007473402607162285676534531991367441243865255861052982496555129848067425673152092226026908641660401851785455995571012509087629134930295354988936372348676318326181663495474161366352919234773750286342854036552276372347547248278039948359148742447020495157500540649683403339403285526986689805858481889019969978031762477664436442904709800484397248211882197527847569466538666464857485566760643857583899496669348945200636804036889437529318685382037038462812351290022650431835658414711313267813995507526987539590104387888415365136803825521552874778407580443015801196401381893584327816346793395139080177819773508797550412550290776474643865065520373445614659169250628338656005278067000119809749824716227344615759463270175059620710802067726025045026575905564782141626133768225597518700830546327194432595496979154372267540546610826936249956557226562877281476102068347313003323331315838541282105974275493545795106362290422535616635024463378245743824209418068086886680172827451591650533757139141747807747314148108550699715091732494325990029121820697015114683586762264773201784067733232556528154077059583573329535799702649058245886694605601368211949696537325961666544491629829139138842162606737293607823976190703812422034080521711775051280103623778772276823489246217593058966021797611743923488746373020069750138856531861422041296711084428479260138525181948374911416482233024942718200001491233975020715237646641058809951377227835716465099772525984872033964698119168996577427007434786579224462379226277798883054231406721088596636538987140521752134597972962246083269569371929234743347830354233383410753875043283308449542453737589120752447726938989819821539012301824440698272070336958370143644140508580781196081557602383837375581301320575290093122159553092666592810248836573413912576979724447545521367136212687790942179312113209892373498033397906023906688907423423431451879158697617682585538003198441840669663502614367172441296866707943696449144823383393417299485396868057786440484002967231041521377965457234620724593737061155835002555909407690287737716051906084483178773457689658551957722262427148627028966746282666022133152222841648099300472572956428845342415785579918673118252787587908478050959355332585917421514211146518646152816911224381890136360842012503728367410668646318592249163388185836159213166015249562140628635149759434710289877709401104735298710714146545660471879963937250331849321838063545252642426349933114010196793636070704922073690871383014426678867706579652570024218640358560239133241155751341399438395984009039595508450056793653028073223453334270478620531584112459051305005169636873909734651964609815781277808591372354084270531773081973739342311809659186603117250069102819148648672565894480806764725360792764876111619255947093310883476974106040454457126175422559823456694280723276510450905809398947085801842074930654815005056647380179408680398243788861132129876107053943430522709316957367311430328772629390738386724444442887800805006891574730321960168312430283787485003236499344919146521198651058454671035484405533864836712880804977146893591421766817845157122417599176657938146653591376856220870776691011818160503719170977644574273871418297428022674801829310905246959643803349450267766239303946493807995231942660319323781147507299095504149919017233647378349350515958976075040735617916491462463831891162831408488441138296978765464413377909752410883776219372330737079530446633980121285815181428218636423301734937175093476987723256956890768719523983284787955981156915546033208374069951879967845106339935708490724548266827018462427598089430112390815684386143941482836208433416583252955013459964893207288232403913963331746983124889576662814461939276093472864249384103473224924281555685978593339920243407312071751873735679963197604377313467578014513954261622579181869633898477075281154379669992253824760154013006274229490571919011402141506133651533150083930466763843377369365469578856779070531484068304523778706584324439886027065536185230830473326027189290629510623779233041959672326205864370665191986506726605699269341009167912623801956975092191738449891073808018852320401332926819362268071898262845868321393760697633388063292625147069273856417946122972459092808428401185500108486303372888084468593697374348488845996820967880120159633491917793360388191868981442770090318174816001419279246402176509297219824141213982067784021252181473809674714797654080581178131440656023738668740998456186882286373045090395675538421519982207696492851954417077794480699741658998938427183405226515830775312895151151473589512840442608019683404928636782073417610797828535478674955619103955602006677738233296911115757972335492589285938799513150752751328971648715640368129130776455750714768415620768149892696741306266316045031307519434995121074071000325154522457260892050830098135881137088753331806119856132806734665999252950859100011299945014580720571965919968003030127032695673483759286860972677576109378279142265614418919909816979357963053880031180871890860153572859734762982013701380570339264069479214451244935887631671766084639052661095980746129605554477295141920807363741072095403653976748304423427625047410873727358367378591924441683645223915091236509657401768157435400046013327163402952261385204590128461680970413147045414827801441978038165873692093945364204522686538787262401250521720263277518232989353815310917537844662764985354378232104814329148817123987120100790655112402706942157082587011450713311235606262760539332900708132885561085562662270714411684522638653677488564712548351331778954049829132160986802282215824088568948777712485117666856269767789675262019111897567390925369873177826415585373328758684362469783753283025849306058479649491229015240187662417768651181739807069200178748688276142363873830238981482923618741344728196564269663918246705293162306826379998118939157631754250712536885207276815559071276142052945470132204970718611129686409395275198366448894898604514814320496506695148441450391871412032452314200483913241267932766625277206222428803959702879265274523273252315702736651134195070958443458166015549096094393613030667203215934670279796390552976179414946612792597080670296394648453446213979935555844280102721919716651704447961492752590926150430349100403561132388040648736114320442857258804478887613892848455665904038895211963586236236699326831497162038126594578899879018182311216222998128699684115063569329374440923423995059517745677406884908228174108328132939398882550899032497880988973726722342355502899026804687709644991027652076868344403911014669293215492691909780957310134720663029926244070322671767878151984076439292841758987097096471256081219194756185604299803155321911115145738140459723397530288166107234765471192685228097505875585416896747945678837217529857447660619459334093665096801135268020950933802692365960391196128347644713589362374254002862002251238291309436439637234341230287488032846793823685459222688156541436510556943192092684527333457679744345504627301982789690270914012408746747709798445947602123602860427691660301631769802624026932555839628776978510563013693749126827692278078183926112659758872614272976086438230409779478978157463227073424048748288530304604259719398506888200960490388327714712192060261588831195704946221197776580550384892563070247612488055964100790906128703647981824183603370869721501143068214151072818525307545213434937159592770701243994550952946279057366124207824984746514868455373153961146763663989110472810346744803443526310902652057435055103635688873595983617138384840991072435937456850687876707820571884256953471121701829329964612718683037162651484794173601669476198552547127932514639082382872656999418998871144964049507366696097839499646430312108285441094021218356433630114018580649805069729513977785024099607123611431311055534280069556707337004635468950522529806283930285852347575549378786753900327810706591981154900309220842061243878810540962015329547859239829025282029462478716798244284449927445568674311054958123502318975180759110810506471745686703920670712920716076065951784290432619732602072774520268792892410512882832982786202468056160051120712233902575016404095278199982348300653191256383000360227774428212215376146772413266065543227824435656625395104099679323146995207669765358342463625628631413847523270405870510721224003756937878356875943341706906866655857144768618736310011373325712441712428047764318599307341919198871292625033441414757464307015350612082991081784407950819337641641868580390569736195499636257744445067707813056015657606172862319334373669059390599739317524943379517725584206854447178691815000016406933271210132480448769772681016446559939053236675856970419056839991190856493975395496118006417240621094042556294893505255388107560060726701702084182230316287862264562582226122268340302778222968582328006735348490039711401136523057101457853442658667736983603819815554771827990517667900505168896015798245650671880880781065350890980393262182019540552765291200948831075174906955417949869604626428889329486217569951924172943373004123619587330607336241312967339336148927816049277288366234735923040620310527837508789629204263526355457378789588264820245024890788120342384090494006078818984800764661465407348200760291496222566225595722060724386089367756184758876021454340922519457860637527176322740005879757846737936304606539413327720856104065026619296470683502856602989169549905249452291579240744987595118928850008450715524587565860897792761343109502821226025029517215330487306456508699687409418249085607726533384161989620587773220885246102070039955442313341690931561825955869703145154712302188520116057845376334635279720321655167238160903869512347074224416797189916631195941784815367742482874516530970282280962373120261538542232036602624177577112331935972708434778917415862730488421736800074344231783895641557469420989658348261429058981469402801407194392482803453236401961669099939451813037345020458109203146149265994417273792274834724434220235180032202002471270858881699286291742489414417613778579504419162770978398300080309667090586362729736444453023852067094321166450216608468269886541669077724254127344996534464799561352119909642034101791830510817588113481593449203424008794702866562545980477427910863287401372259817942061848322515827387345879672651455553865685936359307919255691187250335140613939706721321289881556471512907650873452345095734929715678981910329961515725553904435749489661734258026497447965157133338447728185830035376272975244210431636494091663798825547945608622344668879191078262017835069335242811933521893527794406355854304992004027976473787351825058843683922841484270511334431240716445300885828926985440028123710759945494000800717060419814768792407093859538383444953886577452636070738135685700830907780973354565395468733116073054280544011013692976088642469112901795028218389392415020620791362664599359126481883829535009654367869360865724426419997030764615782717875169964348764798144226307163058434280981062905634646783601520038748343981745233965686954528381064091648377669705661580106762101115077024485171817359086517536393999764397015359774161264977989347846390252817771251925759379620798747746868738012203238349679829326541153803473598341628743748841400878735036942042496539614806400147084913601011651930541683713277875521100206587962780915985607444944167184860340540343274852423274626198858460183866829332222448689553746468854321953878968425441213708944667846302594595222167778660018832000802707044276966872818721089002222752456559738794889150656984081469146159488637238552950647500430515426913193502711288183823059605969183695967885825723122735371885669421820492022441902390509727414787764304871996098810460363939695076768037488148441515539518464369913243981463858163063868381832452752151698222257717498602093842939970266822647156880965247995649831979713610895994246906349474712400969747402858630763559228762286696041157780803889151196270411717142472889093730807734329733217082808882439734247761460567851893786888100755402136025736457465943783499156494219438715488552498918990633429740328547943907334435097215780727801487485687091343945983576924360709621333323359342806255055938242400781280590126778468746028745783571973382927131883638502494374015993972790246396301067388137627900415625460848044877979463660877221924787972868275367511583931795109288256588663796755159124499613648960125755672847033302993941701767144291881575192759319882931996024662472596016072325478726567742636649125865396921753902212367030799991023274191399994553279986162568808382158197190043563718749996797036856421341548066908728171902785549003514344297931663092825863564437761889254836049811548024874241072313729406876496616447212506719736936848205560562002199913136170563637353300691210471810001904973868127836446747285129403944117476795335959722303097922229337474560396566738986170058284209038550179264814369330848545583773960582138119492504213264658376334820372114843679934020752061044343600024092294367318910759696302276582470775288852973806345496036300376366689483501352789190989467075870953576753257496570322397748705311412223875764905112514447127056379516098689492254053344172165419776297744673824637834840666084310995484682924622623664167357253651671589056575266815936942097869314805570653457165955993818958411603301816066646215417002175126834535329392810165340872694710950358581048670998760129687077056250313188594336659088337561554903065860673328064964007358584559355468856414227068216536863921627301259307308145120460606190953550211529080456956606140985436029273957800160048649793538106490141810555291295028764187095847002684755799466935352534883891388863723816606454476667722211595099243254314926253591513202739207442833461934806239977504670211774351629947988894079018568614826405134474604717851352463594542399084254795879263048185433312028243659700915420856187187959911486087735937141982690117522041018219522257665479104029502864590986508545052767108020222703878907923344957289252758172019450533323430526117876418640260063894053044246535000212756564716608757375499600185720073368957678878256470331882073481749878054527461452679340043742339993899399045551907204936804215663438919583638131670480804434813593665710484342554391958554300596761467334482847823898546334255238285047976066864436890610976180729282980615979205076698108899962767434804566562039186309142572366025508333504492203891972277570303435800025888779809761666296886694735162626327787080105772000256019781245091071246996785964586168108287213542781682211934457306386345949441259951676408892012186437279122942253857625115057349626190957565931824471805072487932118627802277453737950649559837807166379358652361076895022862136016226948080166659582941329241685440815424860292095211664559859950333028741313116872529138739849756727654180000693908129116476634054708685880295957216397755756058972952824931357889407767532093494063053387778378317279813239535509521654788276305159844713224018514385372631243862347652703316548739624393703646115331744418036328879020441452886920940329326515210936842430621864490473718722052679050790910512989460047107372649510301206849917123104046828011673402172562047162911945799436753367261922762650991716166072963893466981379518409528207773637295317930883306833780245697630184524974951049305161204824626335000134535935958441252552431486119053156535564912646752469411263151742718609130854045249314840923093914184681442980130696002861048486162227197529529176638178542702222465941210574165999518741736648362891446134720704737112777477709017929372265136940375651055241462899403614253505419269209391385852202875221347205184713717606130130981004494665282978312148144665368216171363877963834284771351925557278515211318648850851557158169414528313380041594800693952551666375653124495653299300323685980973829857111702178049058022951748275569712987324862251900984519959565500767236162459796794683791166914305904282029904627371274958450320410279298198506243211795143610548457569777142722717052015346059105034793272461950456906942101099910705641447829254500010093095978212338328376824894877482741289385882672325997802335179961502869792885193221092223278014604098464519640247228187361013633653727858799961810299039534802460503876583036444828831909705121872355436051765689208380525568854404624021401970209090139621591397875409723117936065057613261946448568263340150691577555973879686388776792167501645157805460141690502763423925434657320298243942677757423645260169635245610350811116594202397266456870261686560125845446482516019625144725991968424972584044063261779230240684260927982067966798164670073326308638652134270742887619367476539836319528937682954935183291478905674957882911610614618509444619042271237818817158234022657556651272451306240172980646482711634641351944826021362235393274446930772952441675540793427348109341926476440167407936320411879007975486788869898751065963797290408027247160386416946080028131451627667837446708849471527507289419262851197015461862963011779457867831452019574862438640983741298495494028901859018917443019135904037381930719658774252755870215076563805553272191395299288076522870932924351639549306834534823658310444155757536930823781868114937137326937293988382958998041764589223811607816647748262599830561607694811585209834599851643068561235468345485632305967317969307689710478619849447646205142384463914754866118683507425116227570058326040103423431737479633408554439880579946351312768315768863882674599752676538263588945629388531328699754016365339730919292499346002811774387597351860035094426206763037508396657370745047120207804300489671181338213352908081169875490717029794595941685347547596009194103486497876848471103912712917792284437663156711273406652666055982215407000169581198769606547290309696819377327316987021594988604888975374231834843658203330883888944129079200332178044082740996342308862244834703830127415123364494862457659203150655188460861112900243858970461445698866012992428713633873202745247179231612659032134312044237013685703603776692038019267305259835507458579632490731808696124087325462210342754734034293801247093652790121461771696330055871207151964508326488141688501647051926354673551935745714523532693768481569936265648072165299198473158903726751289441809902819681730033892770017036315515271596671706081156634560535025640991957589297873640487324107931377844977672177815783551775108873020286737352321845518735156514062483245228741534294691541561260858662558138651374339442738388591481681466212376953969546712423021825905113326894011749034591417775003724813957443536332138759557109799666224254490598205897708596290395173960296253522030366167457159009753965585803183597634096246060077883249450948245337749068146426472019085848660563008099439941386884545488904749540688317350471675739533570501819121734551181215309395340314749473952324918638663258213262932624282571924859496209895464529760986402496120670146803303626851741734194245469518856065320620638380977758747862115838228457168185075845413824345675050326059044906685433941489234660312366774376811457762517972972980045556082574211242726125311753389253711554529417138972449675233507835256388106456356304532535830436383358854845044682368664435830874075113127700761485961574429145559642526259745775279225902123012577304286807136764065443222803723229837133324705398483310165390810314220138512448632985571813197722023831773555634607555820306744043963186873063642777551749277692888060380444228446939924142946720546126854482574112322484698957424698950516015354614251142727713727736949642730073515425543409162227278989289536608477519227555594441577714746123802415290641076017650089086660989628805382592197097713953224969592557535658073048357561667688036113864602061463007069509285014292347937551162545988423779425813680112441333459960765866410158333595219209555384006391933335672289532835001862176003702934647818283083735571932795757407535120916816873843868698596821999719123509559256918898851272771459134664891166836145911068571042851258769232396269936705301992152891879514547104099189594352740217212121927648872767532332533675984751547565819792274572063739199781372694812164375255560199623241019959295739805995491949177828001538838027686899065377446123365505493478161687389670218941041113927925447204973785179229537752703010228682372361297357517242218732486834800698473630233578183641249356482297432891327261435359132809376845407165196046578657052977524708072077163462545556445610404511495617638751621703090669422389421437964858116790443654103379192063526416865770892167356804071819296338778798331823646358332911828423710585395206279452212835976982441032564041369097647974404411048883112779930069619143976160439688439406333968509082920801200983162123622092733803497563596580693653523143167152252319916976819150287467486743785147597812414949748835814064817557990515244153679592962288911604409730923108097340702928449203251104680768319459688293488757080406979521746640302767561854074733234578465116438892956832886742157824451721646851970623722742631779264979025971318658392829187869060458162684555110119213003360112850064213872521952096589274086696062532890161953332070335574905941266977693945284733906731502092744058136158362538790668554201221649550659380211478594703362346772227249324139871058225264717242317705827226394057792575362815220455256244532871874577483538601928797011643336365916389667588465947025438468135013373704064554944381332364170315776146868663248314794054945903332819090887903254959958021166919348753739062628599472818655927280314508133431206999902377545075086674073692187845458816268610015854870640405240265533527214481939595477024950680830769614069156781518410081597989750703501657351448477766817459343264853404372308725809048805725802149124391822737525812306599227002330705467483058898569883677107656369929849204776531510880452712108527203242579674374741668235298403426725158079141091946946334960802598676309536447572919183151670072326795683321277159180029828015738901455444600120905627255141897672879412898525976708896093250157255275664061754607870986174954595604327283877752996476250196516156517156651332758160795150381427824033646349594678110333427779507378386962348775811354245371183309798133110704733769886783157268442871237787798274604448172345421381121833294490858435391717285292218342710086977582437276808052262043385044546688040412910105909514649079175670360149021263516183908344626717191364259978411792377777190436482680425418696509243764031198632693551039229259942427149128705728155876225305025595095602522394593897256121916073346211363419990219918565465479735677269466781404144225773545741974599618914168113646818861365076380054174982671287295287369323712946050530740975955271351031007900979519579008617887488835983995870850103183205547206670973596965268421690037612388741718253125364616741857215382107253408119460030833787960870626484875829066893571414575297750317766823153870885000697131553193823064591110828850544192785164188708071792130809291048462081677419621965014528959693148123508620044137367069555145366757700966267343836651410495816327058100658525751793474497465182937528705687345255667054990296759690108203266220768258402126282746149608311157918697884941319527154217285400938884229103456380126514115606756322651911779231727452624573716831123970488094491956267065753710592893651070665852393797280706423051704201828504247996135146945396370092842677677747032141582254796276648314661086925595610032758111938153892882197606292852881583940800017327695354855035328485597225716517353955188155636954868683011877910280119563254198454257171808292137348303170012138250351033543593562833509176870109924151594246390490398034977710920653753546886762100761280204808933527183542969704280621055907733553344271111633538610173352526629555348965451618147980703672960048434797478349998130546681580830863837407706903867301767302993368916461400494466776498842692070795786128656735256458386695539804714751410680122094580294620376212258242880579777315755696757162847823896872903719635476513823997855455274253913757720226325092113745647583181479144169992857061781726682278495844770880148387214531730501701277140779991355622382330697043318836299920671326452999625797519655260245463518722184507019105169092851349234065139868924193109595322290424512428293628564350827179021257720222921050707386826608183910416711804371079530356544326690090004187495859950543747741564541555224580193269505456080341869049809858577088668207852908292762722668616526747032972257191860750437890030485098584120919669748473087392148353320313249516981378475680096065652532175773404759377805764086762680287115894735621527226503827778266714943230567548884557993983566465596881065949701161174036128612551880186926036818600770235961864579603823167857897708012377053330167597669614400878935913289502843594299199599067147125621562073220384052840695077113916316848062946316739746701078335315257152054776525450917357086559620762656283421371934076655096339150670271659895018461745139940290824947636548728346624210119016950664060270567982858146181749247497021302749607893496213005485086076284929748821582483793897093686421904922362829448438828367832457306585832721589959073293610432211735059360413189438044193966932320676099489939361146245585076898261144544105916124770354621511417957182958248474167614540303831299791625849761972081000275851746675233258485943611583352844816360297132831701878308412278130321774165517490970890474938952958760285676593428939585758039171955974732429699575573938338131480080574148397048239108291301219982510818913521964918079806390067021038517785743564423752724142115926904090675328559913304851773168029287707579480515875935945884248267227258783400070813246729136676484115690317137207594679196961260629711340429150146965089633706650030531147599596756288800410367129324466434941547513392988186190590635429951088789076406305281398378866169979437970207470347004050138704405981938148012399248025186396450612091284737324673985731498190025242421285617792480558404793973311125515098532719853089040876139298065918717936690350849343584389080077140107905726684213280294019531121170108694943929708316606728268199394038385236015822531837354764583675182734825153319886728659232481882463244787405568250596401235817320293653150395712464555622231383366633567845258191367834972531067635965993044277794341562100771235951152722066324807533381725289843684179772274302674407015809234513080112962913491490515917817784176272457213422309193850859055956891279217661968941249885239965457156816361364143631823190709730337562241738803012582443794248364703537183771795006551615201636033935790297546551985334203008282621017028520241589578507039562875122659495309294493440042582770067969863909457698299349357565400552471823035631962113511621554992421224346160279098342517083380743075151061897532806631466483306794194234688387690861224265295751493811889418552702170576221215135127545057077720485582388967827053198157437891833866502097098596076920679434593659094245426637166092215401626993145696898303705817280897618526276348202620027464356708782730423347323354022103405868517589961987596332459406573922318577116738877224068470852336021001644409232092019975128512323422180538596833216322517775492430036076431479557232433711922270329421493421639278451935614429477989661900545819229732653507699664972739730761677410281442190096000333988162891769210475131206535404994099310187609522726416704361853576907697970112967320941548456812233036007963007705335179473114955888763145424986142810055886151754661674224276332483387722478157793022900772935709530037845225393718409720828597291628821644448233888847695774001420908747301366211152977916808513825863047041042876832383216825726736006567808154934470987840112889514495232186341160434980523304470769756350138667956313683747897051123633512794955385801888872389105415708364878202605204089984068240136965748827942041311143200873791803293957722374908447509104234891647947072097464458180660049040061745819245738156845971478083459207244609730264027061954983370317557349981529828577707724887605387366288561135259543250445417502901778181659568684684004368531727760047056490190138357229655620609125156180071918303913140338350168311174873590754382712082782695918170689252353456633123336806936604411596440470141065025433781101313576755668201329817582069985966903524729304365217662823797383495678637862451080278057415481902786808214538055499676440946091666092475466252698035582545931858794771375781124198999811451137186013672779632878539830125926505099971447892320719730592633413453818724505275775479961450369767634202084482335289127529034777944543791699116943592858670329306421628471662752297920514748918682050740063639959280599060608131873857636664700374012348232039900274694918318202806433394702682591702216318976920278422671447695017812762682144799388629528412299451755269404910645596628886076456924028474972303858053393803513708461090477233608765617535536326674857205751069824629313238207069964409421422106903112631578392489946103105430999706966349273927689766698457514072863442997509607975386911907728500720069019135152031614903571740387469958276020683619603156232855797930501293552799591384051751389427285159013042922542521563490021557171435275138006470572142066438497771666979602317937192355313214879632563245195414722931312222292001170689558929489909644723120196762295566653046683931983262241636802643375041338358543933678153001003764831507183059058139448532997608047978532611069163561740867976698745316787275841691968258063375433427150534181805409622570387941273997525237302360388318116527729532191508887989695174180922727785200991142225294087046540326106874290352972459950090544642823548564579587598176059019411608722838855100225366490191576598080200915578278326174396361358221332183292581362880966386111787720248064976870941725956283921507706955742357098227219591917741240108543325591680731506846863805154905495084706336182655922426699108585202446959477192189313723004688310721222613712479782677121818393971554416720233441907160256420847275982959100632529829254480904406716152524315946416348034881918446389529927269270887206569981775465713168342357660157467958172181883625760092629235908312766390617909875882183579616923175491535717453681736557379203415444300265897385636533609133125652172674685643600606023186316361172115724853714736210855889624756251963094590036500997195166241576005720092066615135027046809925782041326996638685625030182474640722189118254161277313956456673586607756365639852035841355372296686848500003793714528576099490268219341609288392713541079495739011758083016369830038817594329928087645894592307994690482989713475999710124443763146746520728898255946248101010910251453624555492401760789743017105086136137958539381273690251034958652214425243240307396962712408359477168188780026921836101572688487564946547091970699933223858345698936842939932548427823238444025567927580574313333723111783343193418843901082729002834561467581337875604646655610106588342816598991548216603588902642213181826430051487996282431877867183579733633466572842886024869378227072834304740735797195200931799159392436059247369738264527506569464982663729620694593073830712319128455516405002572927241371266677865927089571537717001454542829370877565914323614445222557475849985516151748841311272357607502549496865756788393185879628414782492383580597944383782524934432607544446072817202879847027249569937163634179717331925526279229194475635947818953973844898707336077537067644348106869355184813139787550569670830223905328051298814645819090039157722599892101866160108407510947629218646478050768997763124465535136369595334879626495122134733809822073463810600965146662850382100063842277046851289813317432889885654540149990753376417042961168939390116515925831154188042633472354316544469754525879464823883208803937286892327229881675021081890697664660472307594826920569779536036412052204260685488703036291494326018285072061903074654869324525918601554321593278593546055340986853216953340864358402692074117016129699874486723528716687729544169655890679724490029661550755906141741549056773258104166007810302160760390379199165647631775361937323012732937705169207935672349223154404243293253796758906262918556263891511987403165424971209216803695763084529742736085740918466961719059531388182337654058376461297756088534658603356863596402224748808731465532685440542397412365596195896178526685240814028503813776905872264409975779984128396739825651542408118114284698519047105633555012748063314874941454483275696875191507791523221922084861289771531793885785571004231584975788711336335419558784986401550203246883614814867817666661675785778902527352060535506315839748924913307636269819894028477918326490201827885481092189085400824509305169004343564066040058522949442807956393243851890883493856567136525232753492983234178318614443624595770419307766679574593176221747763818600195780331383491666962671126217066193173409102448343907854029317535342684419485853958738392069968053964378737724890023888575844568594488346127880612640469800741627251223907316305878440156096581840228604540572902951663458672863039034965734764136756974167205691442128139821878921761692318040833258904579330624204810844709052191319294870530875499914304263608194217834180057731004781664474470036637018919796766261105693896284800316873732819402990249488340700203980833947038904798770071357477960504265710172342497771770773747617422784128175577552186916902882888254468734259707164402054604638291964483635856229734447055784348229071529223830443928677868894456643479173626369020568737468871573829036032604348301157067930225596419975058481722457677318563236210909461839324033742989356117517796820653664492349129545608566967367514096937846444286291902911857162603463084047412408579055582074618935400584376337196499993619187769260864425942159926751371542819964688255751758025268722387837623532377257739856091013565059965772075576687621865634513232786261676857903403596707290842166512337189476474492455228001470644386275599494229906328195068420246456307053919736784684584130818669565857162670800087061892820154315316713874778818232717530746792416191738483769514668086443048197454484524480042035788762066692692561378753653829103505317434235554642840509899696460865916534202537010299184815847466284145629992474257407020166714607408600593760403184725011784996368980327575247913460530167394493573942092196454770383401043385127964904520120865483530359042057525465794409117153274477874822932641809256435608903449936833249056368104416442186775032675116487228380612377065152315067854024087670050340878389455660698987204422370403986956044584178753243899476356327441505376899929531257695939422619156514841894350095660560305822118041074851922759570932176770904367544269296630896912684512400898910643403603988239600386922780144775882337954941139856654559116076125412503888853145614849343809475622737845746632158978429237348820543797460408361944695334386267262991425659042716029955592526148648825902498585217982356218142851473437444629582827799764145271989551528745661142058478941088524738772137457059535648825157355945558988761398379218030171645930433328353425472666456859895707403102706549401440359027937669913083845920493392505765776471007583785486362843749740809010426613275461175422345864910392779852468997166866077890473942946051922915856195047332361185292774924816404460187342265352879683511876604679545961008458090132868496396379132504775800373405253154835827660893371969056434031329605705693595633305340483142476104979824889821023641185460282840422566490190820573195643540471014545441694508445696324800341862218308879868387208217047605848076670960530088364626956587865012538155578956731902003527513660095206993659183065733365784048290220474710801906172477887278797325243643667185378710914851529892361445889508239680423126334086884004961066971678179860084741296282355936561244358585649009970647927123307958197832743245558466338390191579981277435099115802975150312699422584284883872542025836373076458824442406332667220593452804307394576388172770584235434166115567806294622204062390421719231832894119720533746189644282602562198519556264710621183234371112284830237984157097796229517275845087608000011372981523744395930050744426495131717066085464430833025038208935462766087192696831330967944575624787063207606494497571360253991051977447223970892921412128149142095967203085634728948494113417745989064965425935271363044598402464868561783075403778129334504830890205890370804977180020671288237955227402641166795395505052919079162952929224981985611633268903220599030144740782208569703850868387331195371814650922998356853351165527649428640330209916003699648492965273533730034942137533056126216787762241103190632859471176942787456504814048191403184315840508975099688403359674563258855860301498251839797977190101871929733455172410845251552433857056060729331026854746342901766294570760528511798380467346708661494846193905812184844374116106619488109111196364016843650772039812834341139892056860725876871662751211609802591207829776688690333728565879256282034848302745932471237967461733419314170341031868395061780069584093132017623754658060941539712869374704794619896481013355053527443108520935209576892498246913294562748941331072234617941117106205740659256540248090467279447352084813358589980981820905301537354750886807526805345452871599178105217718799602265760071943515126037385813532855365360850990829806200733921283920190706948850376919934052617607887972740603243430599581402202585136803027704108262687572809726240419012185305918005361594107011376467720849510828532986481221774987903058998403066644688159760428215063905517405282396086898485557397165186998728891364021935684674356983032526067731221808812824480117363810756138442504887410714971394954642636136692068284654442599267192106060979463697821927200878128957896915930381395770303649590653595102526460258519351354365072150584984065409601461168954192047328565242368976124139018290151504453982732888813777199176280944435698912850771576592106562578682307256226382844508237679808272918152704990632413424192776961809531573497879128821298983782953231342448834884526297425147553292176338587630245253135071246028480062815802007834332732733914215792573165842410810071679047896060142031716381939879000104892507015828958521193930569441835829349445325768266756026037455938745413563713282716640245378452802851746128809247433291981578014547019523539204253780572579245830895723422371264519029708233980811751575771557835178822019225034743295386931131077528022023183155266608606667197032699780454557907629759684983726960163656688643624630672290935315762072118307351829671982930235160095792943148881006996940949093551586624104580417216273466977779107517304385112536603262062863178309068579949085707292919291463108656219001766560758846634415104336569516694111915390548063485586022903086198432362807498485544014278315669819345764899451662576932014069891230310656785985374301244911241780964629673043756575172725502418948772853621983394184724946143416561398690265782120237652466712271029753042099593991110142848795564564185101973629546540233930028229765333310622783162093734092515224500936696464144690839264698874507289181408989666268921246889693097709787470516983745666811509171302906857396029830609736370640486518173623942855678659070775733937119461550922019763032350512701763161502569032497303394965480475785469270822344923658391790289805149753203941512801054172447375994994843489483391829085085351857856399531745157278813744211438865493825283043698994362724917880936331113958823802415732510907161185235476562277831791714001267379022849035604266412324068208604587247504399841008645397110573416642912637921803017382817037865272107784621641125159311086387988368091358986810771789277416014175598271288751055264534396364180763271607177791208048262731429888011930875125617224832499850387833595626793143353311009996974883485233105040061461376619196040973118081802533011929746735784923954184801468486088173410122482913094402584840200200442922776219643579220814534040523295116477683824245568331975160155415203132838140659508707498899036875469595619882814101230702269596702920880149715085978315488122215687033175430085228979183108994407698396406224782233502713114497978955142444144315624735252001611066789209483895378042116513774526346375894443280274451747162835160250330809060589586094985187048956534849575778608150949768742087701063021910287112216894138206216182191743686245817581341736994614919142440709086199382713194311824875865460495409340691161016160822930034663933468764051150892827634965276885739826665656775428507986413100137289276840688790511511265470334085815503275908560174799875174518914877288697692107692222001795751329161903891033936113917600535153493344222723042802173152084185336666759670777732604615243364781322434322448332590801060803258406383109948315279921005315804496986110218698012043743599061644555665078097829564986689311246552887231676534629224962767531207034292439628597872383884989000540465629592753504266288819468580520953655729266085825733386352057671962280187939742929577980788648097548858807047938197371986969449178107872006363962446946219486966802699990240826692441306936748961552409359757870832678973326709724695340256844624377280907035950554827065521720120212722889821280366602772752212233662991632256136444056981364991089528740139570274060526705067247253009346483132163697409333046002732178664815194564773870433512495737360100854859902748885894949312219260500533929306562258814227549992738198856326472284240072347968878837958856071753507702255431107414083282971135317545451845613882853627275096651052810955251502670783856449658883722803430304156175354184625885322817116075071163157517448968406832456324048307552110111179906584090698230299364607783810033140263463942396610305630947387218908141215028623539797964194632727531657371648614852139172092635786606499919174982938210913402470504111085584370158266720751058869998567362270872758837569961733073424582336178296884277565557287694678135302919814145132415551418645867215962214014163110805209059145270198907630230834892853224593600800121745912458941508902896734035583447165789258514940690788647495529549830835260138467241902591624553471424494439460237499472302706467568052917837435418171643993816749100501172801915483935540859276389615905293216102322168953128658096010075226595124762173947584790863619855567641229839687970165231668879530974477795192564381144476308345264303616757375535079334030244273756327812187766695159650794126505397004773504148438682096452980271497655478983182636739639143581842395995451070019011325403138686292978353958254181366789517427711302565284566175538466154347705843813408066137904227503284534422341029409888548645363689797801707980683988254497486758664902549164235165209967935962302733392451249147966018777251893714064307201891158082996115765111060635719539363361188378772423393053773412335564057495157681982543973459851191357656846802196531634466872766227690943593117584999593830116211115791512098295839337686301434008673912348262762865364473282153039046733358632470084986576844261414177857280968652095066571648448611274106453303358200004066322232635866130664743782056272702010874719889328643836397092402163019230889550655143301955431732787048330211044929194142378873791626093397421880071887940037218485899085340145412429778201978778841897618831239429441690122322111793282514123062651530674137488311327041130567537586208135186302539312151294763809850729586590867826723121620672694449016674071975604778103109048965861350894957565542841779828468292581927357401030026036098169747161553436932618667205430664574527564672806985053995338432697654089312482454305733125203896573968959887569701703181428771110533304859791481083601115241591199826517862826808568567152948667866013085563829959392853937749808597395073256899151528890451896458244600485449241605021053478596096835078159783422675662676104889148591286525582183309882606719910340631325067079641128740669478000217149839971640804709251070297229766100311388302836020815814916270850659269793860338865543691204752603726488614112250812450168950081823448913329342695647121346252910883950251405861839863505860435523517969855158724102762810896568612459222328825574471384197030726635539194702995819577573078870891756948428295908072447606018436083793328521651153946701220621045411566122290042885391485427508210776831766324040024065374139090849673033853938849417848922553159576480050581662474371341687125132262060651874934971894108407232903614533827602716566490785047782362183238667485895405810630722686063964366091806413538787469477368354816555145013234585465776610638114709107577792489842230815650565284102605521522264236412942411448086999467411612663090035871917516607605815844311348511802844980313608585554566364408633612932576806905120928081047814727867975539859021925075382046527969606252791465397630002183602243724099337799360648286978542888482840150896430118750481729103089194126773724087337688068117625467045095171650215089106082689043575158915225351703329104217762172331750380612244573039000963297575955444764518549293463125512466312502817184060472975141295662688706010079251658279964750360190411441817348182805242521740644500689967157351571727357636783639379601288643943469032238815551538936914846272101511099401335540419269159978229505462975185648348954687459326505833292759723451320034365105154207602531418979313375006442638007507298888105771683900187473743876145508227613363169072757093208500615152629328135762226429110464339639874659952062168963098946550208144172263308330253763148609664506882478146934708561565508087869238087520485197241825688496281518426222980814079438018294830744948828431834373302858353851795502373912704126816412400201250957108099375917857467164719507794240708907913590666964138361347091153770899630296620597274206040494398130291538336147943199892507139366891213228028514797562465256127668727534957493746576316865054308824770584108046498991747397100543705977956158845876503351432338456303166108140218841704846439029957365021807791814025343066540664006009258053835762063613603474475052934243669141614871693169311225762245710856966205161095175077192647337413678456083323737344395639747433176804092245740345701950420326621414470018762681241482866673121479232959562283021139694387880721111264229412237800166190666544006002313928120380876535774360332300561228574470665126429673080979862323200550092194988968678695397203710274703245298740252575640037679048553099398730114748811634449979725421870074161209459387152083531632401446497140373115832775497693206879905175125462205676757217528657251061083141974170309509441126059103709080746270852757183676083066981491698572447773883551182847562741545112783476385275288815068873069349800618699835296428956269862916382320746298205871578465442407485113805604689928686762050059295528295719663196963993820387632534899940771680621026324762694447248239740316946450260727404334055420426792548804736049475507569764617339025494374148240321272866709385685012127700738178965899493297821582092472294196735291508406361339512501597911403465812205363125914362282340487835649265793132535714532770939918425725150693528816432840821037196879025153758119329095778637010998176669054126581377932422484329556996994793632219208232496022998501188047955257781232648668330421734908462570850944795628393417223659551141969720502188321481539733786313660045448963548213192654233489902076337612783750577029055612191491963291306221045228710023180651834468686154650023063621661512613219239846882770702849348453923995224705076991141292945763042585403850125002410357580894848045303957856700953388090833053280235014675287937645025223843824917721758781606394205296426110047382537432733736230436949030904406528728133587840388424752160161632837865560671891342752096547170243877362884456363034690486585663730318438242300745564416151035545800666774787258180155517447103309826366450775230283381254735873248872451843276150792628937506980696364596619641102614543150281506620477628947548198673466947236272893314276875079599153946719652362480436261653354463823687585670253720843196024727998550685854152585469928656324544214578932126350596981900525132747743017658918109168011432215984288657784147018758049770198498230479486778309486094874318685146900862125347433529543615602916490175950042523564244721916646231791010587897238776542351839371955019490949492716297500771694020040163112208272016589949434851683470089325404732010916333244090109804569448378280576889913006105998169589219808796991116540265602340629093592101994984427516844100374745038834079264499004945153548374240183104157124779346659117506367138858714300384976705692787088094365140687536423454721790590585992890662885674858133081752016682317439210563731595413031837387385221343505626228757984041348977416942143325767740452355154257664927361625715554589697166853991553125988964320592252804701414356800408931238610296499906810856607384918385990372061836741308992237260528691736360778933294743041243942131056601889674857226652297646232994299793127897579744087440534651904844649154896352568678942385228565162655698746418554564252223872733721103164508538574697323744112030604541464767821869202530256118840162535037352704023263446503491996377228045169835935804030623862216828925533202796078337143895577910981345592596633530251074522794839697078077653523421930879508169858467619888834764955347250732153988774980240077049233437053909861686574168645678689762323109102644477853164153961350682070422579223021744959506864027542625967470245144475119269199600678465298337095214420743433835015511717365916624808801917623804273450024162745228853614164281086951942071798154862765366814680278550598176786777584337021222029001296214256693342496335914435669537074926432009797074482036076308552282833436245897971784114105288052564361102149683183628085013680518387636937391072721962141004837221345478623200811550434202875660679015586048759943522541543899966527708902378354331122474675846309821828602617407460807685305792278023170108643749676431268906644049805112782229723210314634992023215311240412801807383170932342821446868786531199188453523855923458208304766957954089635875056232689841989074302668105595013067860525624399000051642876792152093151620275581725220708698219955641966427201550892640872685231183644455671610785756005077774168360148587883957455088841036340262103701909190250085845298634066449987392887540523736148643742164646040251900904859380682146825293706255497689370213405225324002408762999409031940918323854350080022838685906961516643015213171945690518793574108322752516219127568089211952478846604393594219636677082826867197424896741359815374634472238241098968236855980473699355519705507444515600866257068782091755643663027137344613140098512840603372823677975987081461399303273427528883416105006787903528744645526476293988286151046222689660607032201509712181000020495009469425550671055095757855105127957316065717176840864412360085042210859437127270319283856298236089410273915183999052600139031519683794599340400814257437311351918880953101422490093324196832560969617736114008339793136105757598891148975059711556260551949884776035017553369401145244315770614106961332404009784693895731149050669620399359834032259475715816413099799428904329065095037858211962837122944843514217111205695630669331215022980808789754517381044804932850381397545173411573833862959242235512605580061498742655993613057831094829325529934218262664737388009493954341508856826660577873510917851618794450004929526745807915256686735392100904254922751256906848052661630703576610773127256246252327856378836659035707969297580370208632656578256485890655321085754156255966161994187520744370969990561898073383999865953569948052026051126739928548668658301223908675696715497543875612364575624298477589898971415942460287415154131236818627552992577019895790537017096220372920826291910337730402336836512753125206597885127021651844899394743325133119223185457409242224523492974849865980183316570872661327183209556702396733507919496941206648826960662768998237677410783905063484631771503078976479366412655355539873143550007724771859127723881989227911506809729715267508636793871984417608818933340579393822344115715468088969642018402827994623178480725497225637929572702240818491852194165312432938391777574508474724391490565854201482888272752117885894744659014177882228273532941394002521249744607592949161024193132116493250356977616764373569528883572322671891567919777487838170472224575100360375628181653602999552368651460882772751244598862697659874197049080014314186488078831144011888850422399761737057964043887500277405020712273535724633261435538799704147150388963884060875378171736030024260998994885458277042960848630923566728694166174722876020838198453541773107703176893068941650486298022757812269512105471548954186744536087553668160758435789994004196044194378314904425649701230608017595616565601972550850044219378844496290438227758202665265261964202048557424482659539703951896368091759189003244820968606847346119732690349164933491548476043327346192970829241072220997348278056583762208334905432851812256533846974868118351950400898211657784614286592266395201090328103875797277110564603262578029459680221772746961787952874646334151160327321100239789973279533756341958223516838912667118576870049125329284681438415705614936852413366660766206264524579998384734217080615349592988526440664205546047275383728011172569732838228210609804829165592819851456054055442838509279977252396689791276318329072440381904940115712578108130039367329845945231646570662251932988511518602852289334788862972366225764615095666084033769006441862957157601798301921697724962564725146973012096932663531038616547684639867828612632727161533467297264853954810720600439188703771961846715122183580235531561714987429445920044204817416459054279825268204691128245420960904126927456432305362721668651379958092655076341242216849835872705627894286811858687998864711835463027538764568086679634318051792887190599601578054305268546546222670242789090210422694920951428433704050320929997885785430505639241902503799953574627348417630920593979093757609047179978176158563657522062387309944989981636732185515594813189506132819399138794946822947051641923210207260024016542238291857744768925408911052234335902294737008675034930231635354686636784972618516774408510735049384379990324042085138121123765324929606355300184298053151193052505547881500131296503290096225300747270303137211411126412112175200237244393943468343099458959604136678309908252437086260525541249254853639461972866810849389210795025846440926674952406882809286374337576400806891864515510569567799885798691019798278534713045408310479705421344470768334938420961011442076645215606291861727890851025188154140573528825448301594603025564866851133762012981413635220936669201167068466026186407341496707188235487308069850802687328874194472911594107031454536645608706996668981139356275184027211382332365411341703359735047668492115890418110641049649475633233381288845259073297161068730630072501729130597474114106573659493366603921155540531604407922092300322557444737285857182606732328512655550458522672501124668407411577482523235909710027107443615133995953965819929764752699775630718207088923104832048299606259212167884520437924792978204156991496739647612396648739768074721591668429991117897267438599360259309347239588823299780232604947657230170980491584143292193507436403581060448378700703060767962458282776741157459729513019446760564884127355382744868816368448918879293710783755615342984033557253055579000638606500556857653094576222819307985739650213701276818043408658070901760908267647980133289588995917725385618735335400521224083277495391173629952485868963154574740198329673324595274201547623782617225760615348883192010936230797525371366817706350157788892087107033038184471887078443369623178213813945541393354248524190424451692581009017059937019959618190596092359619825347500175447162809863826828301569776309309232059824304714945731458512728365642043646008788997225507669732642386508424111214967372019769921341744108938131213979805368024428060661169523712798937718295742619967822772894914580417412014308292815110812653211316469200534914263130858478628163072834667087756156656694686551135576799383117731826359339432717204439413411551755957355044309420077769110945356875586615617196667355320001444909781824638250813603900320028616611598090521204441745597819207288179805750334266877205254032200215365488346506031634844725016758093520806592569365721863711186658980892588042865731011495877582505140611796987293604284920666438415159280566262459706755692384088668777698411313089321646387245983866348056954530685687105482068944709537009022936664613880078862910429450822284487233788956322521496107442147849677787219920968953225634671384912660739156125932493051146098996801286464532280151969530389760787997306820440549658137617807009680328388838398087933098027062568063758509072524979599564611858028937079197730913406491614236140940774798348682745656779944664770266857223310991404979883696922997932022525930624639329721237885064846252410431353302980760028599635069216112322392597894234869518639365749459007245756395780957602051822195858574271981604010632737765581536859004281163237490935491530358347017135965251338620908907387650182031260897950401241779337359272677888632101095043582940315826666601971373430258878037923590969155876699394819909448949479793995611523868335715329287159316217976960884553251521658423260244994946611605599825630452610349797956669253034382066797856240537112952515001363051929803779088349026503364418781182120413028870657913963267222370485220033316805840223374825899661075312496394823563198136503497957436400287559069751446023520163906696387263586918781991577854079872725701323256188979879028927858425806448682422172439573767337077085157681453909389990641963504381443431318531803920698189470149641539850922176913375455218984952897307342877356383202746412286226442869424051973860972924668392984924309041923686624753535764099813969868145858258888944161037535401952930628109654386608641831364112638167520726491920626557135907772661474795724668994448378248658157386778032312868167431483891127039570323090669410739825104664070260244026113355682485435426550213220431834112821184901302214827995268507499209711706924731207786202265019834437369435131112904180970041635319431387068353387578592465094697816837634342603649260682291660109613909147127507776035008290120690003837454342913702219209669424375223298461197194519916184848716670996314314227733021121822558578701491163128940285097748585763287019414181318779155453720016624255104154672490239947393605065076201663595285803273471195218661706391007058740288878030578032501873401433296049259650902856160450408639751300543949366521431499017611314255227697007794788322710449592877727486239493176771005932891105024692235957195410968317941720262888791758737283700167528297584830755430684224582233014421184158906891785416033253191444187191757965616320542220365387316568289577139561182239094314678307993615225577593347478976540171715749700429433506344953488883843726425046623798347780790326676044116647309542665169032738658600917753263541442134921823803495987534841502479203430390738598004586349783366842261950626032397922242090798354188381849918082527099726539896669538746279150941571757893540981391136797339914850182245174146166902763843066660530746960723427782083546923943306153788877417569425173910869107089346393108496855239868772258416432764263699558496396927090551176636763236367870996858197324021822087202305386087959902629613693666290314479891838528426971211440867279840283066774748735012609278701548787748028597162900774236742315002587983048492085498511925473799085929052483107190241659131418383254785405533526278938225496356784443235092212442646861997775911620495526510669710920797497802904964924302378606636307373070179205233744432940831701034027226547452098144415170957878507688781037287862403902044564878838448824474865313274383769283212899250182903146665905283342652807695665161274268751281559895702365811350970431234695512240575581952653929716120808464893827707924905568025901419262424782183651910512536049878518162656395924454103309329295335449561684390367784622381900301718491464975830519186180571618763396833459604086906813596659806392406624120991860197694741612935945959536529258570815685579241070875456334657311725520063340235691339333634555043863903807521403143950950407922371891407937476797009034726808633906370201175006543308158116509767610163425235212750418554562104315077646749108331375949803780997776171626492663398765140529324009739853690724574258661227630496281714058585020191237391336824152123542395987771921632458289735289962615344172616505018044182964403205995318430482608633735794161674879506662869451570784157498515596797928462472777693808737487432082165043324439773030666660676498001926316046292215361249317072878576282336292247742591366206504569781007730932051766796096534325051549618128198713488458613055932002683848775995430005958626371813127332892669297317523362404075312623070994014164259179219715899782633942926739578740668258112304909976842465264145281746802160946326342282289419773614827547355652126790322000083033009654669513236738452598512332885697268178783841692638924105887355775322940793805314557929045020584553934196474884104462621377914836056484003891842370364298941881887950519532554429002364072637825944475697701619160721368191546409064547184968109246866136056154754870170058443879478857921953027174592904499638624315500031160122885857654603152730346763801177286039067825607500484822058140195075524203335716165356302798896371194356795506722130600662678760401373582544330000207742031712005567916575629476374053224565010709129991100475616294371688270158221619905872733726591282963780943901793873027194554998638874209598281487098901678286393991193455460002328573592449663092091065805837416651434796420702129974544092102900315157218947422832168986110107181928214723382938260534717052388310656453554647458058078308085264204755625407443180071979786423514723321047788163826933371538814059845291672888581865960242977160417064415938764888015336411647329808975296435604933977054482583428101419925064326420466881675611593151235760331649970153162176180792964432794142911162679162013579422414916490198206219698956905217378313088241025769164347300923842179919539571318306090486481910982502629241481307818885305902175290632251907361487459718273276702499577345993638056413423879816506255218727802749215908577411831217512208579519977184555621304901688438855798057904356899388909612896355734225064170988987352926797967827218844880180796105969492797015402184830107460594622826324325345336898671532057845665365102895726668780092267884554508167680858327880539911294539380188308969337342513702897786240035883995874488282221380482963477316857852945761593169371706161821034088136927303018936229742331796671545674889798581278086500229364953181265986439841824245824828592991972123511967925766207399809071208750996977595409486754789934261522641004317240816216423163700763328508364037657853572671975718157002467684855451914725105024430249567470687081832734425683385413339945001007463065369837635039486732915909901875251402409683417905759030566563217566045234369666473103519142561250155753075785231566284491459237330264499748741436314134674214618232296118353518944396657875636695149871035885653694571440565444098314831320050294480445969643227246267565038535797831939657010795008415951647721161053319212739366107032498313588136926530793930483771451137535314874525479474549141645433467129171591393457273021463727986538898636288486760079644141328194733170838600365746667259446723442206634954748811121689244498186035249401709429140922031155791783223925921999674185695704819531943900596627288108711491232575809259561210502401527301931750676876239367254133343192601248343053925512277606715954546898461880422273299966095391452605796102593910136992911849261481302354924049983255285620125077284187191874771685704372000309111683308415246016343506624280819825995526644397262245099413162855267820706646489372589357002066942646274528826771984255956336282494798346908662746738412997386590415150525437137665692490354778509683196843553601859656548513405494652279781079498793438858329190734014098913393982986749369897800306919051722033410291193029639743921879623831327033586754030867415213535254745936108464390802966654768344997537753313837532780877870398760110643106736413819111141390143398041895085471726751022080036631485549088015325328095684911133932671249487564086016336219402699090120169443239457934698389887080538031044204882878535319106988682858960431718595229150557760347047191679448536194530806324832239141479402012970297593289762839554329421550220769221915168485407841547226695296865129870224371166905818138712647471134963003535646253836578116913862983822787314312329378798212066827018262794358067131529077323272228481313180461822075067238041067674616251639654874370399542363970716556958507606819340578134022126112005605149020851775211548916868826015108447511067050970957604201953095789253502818910754696075560568780616119298140672805094831899990281317485042534572904960978860865554470385559644591019411282715798441809067207739779926503529294868289688852693960227077532348011372617313227809718590168368107783376941178099009599040365866944728975841337405158383109640045632400656458086817110178540925353051181051327724668965695978204322147244818640326240393209916814341126592910419376241456536581611688372776061297918572479447671480663841653728763160511106761426662308881363679755383206184158575411094251987538547189093763582439051726377095051328547872516761845482470369776939278410649303942957664778258118118606742938211426383543004133545702096282291623059037688173665869108782044147774787569979672331984557890784658719098473872843995357618418411532063940360873357917935936247511665618794195603260407570733017134418025390191050138218259028028530497594642183301609716432895984726847921267872003001001870767879100880234970924332353308959704033375418283256189680186992949294466191792833079741664944689890789765102741743228367730836425279694339210959852942500863965673997231013393951768734326561504923321106713768185088204209879351111291951216207259979074306638791187100728851739107274424051196128971155172470127975730967236898031647781530495114176752488377984509212275401935794843546791085034522444887833260061115961202849518592680728532337826949190529624583281412929538793666104512600949014084685505057988169863116724486267460482108613774370563262625722763921787578554213993690006096141117367601627949063438619884905063992504334135691337300659647035498050225716811785775902698260565714014623950346681415184108616109884917030478178019100612557683551699167574015695932524356121426164853538324225251666933438094648552265507988430464769752447555487578362618759783386194026518041337302675164314347006797903187617656034749236426915798153331943511873624067791636100965816074727171357721561832454730748566789781638634446629819028270107827476469172416975261946119089719061330353675518779587355852193243456907274177344978627088390160006021513530261469925854162501621549197006689050759988944166049599735611834506470986000547138432655409485040597780583312588261676278414602654994402486484589580717042603240833176431532130301063181667051075218402089805066908774819414563167423093575895969727859398534482232069099879848451027519430498582650996326257068144678085899350243882426336612048574355280234055303453108133685735393024443682330935215910065811230470470396954685261373756714304434046723603420854709702109048997574506813804374854333184950077616975900541037858518477902325193351277350977510533203042532901522880474572619339170158204227232236629486430927907865444719519366952512304161143734893791781775843480861781042346592112093571437479446724517155372391554808526078555116624891696662941792550860357307978449101173839078906246175284179630531804291906281055761902660497562949521724307799280661192894282235481434461448377145208462577617480033874130016297858768705787471427692829963498835153440068607459035954983077564013499688004017145512279337451573235058426050959073751334641145033126663447670865937217967643441084325809642745268207087168400346339358758636756125069094149465022636091015685519339050731389318239384508141200039365337244196886111175601216791482239589502066935720987477148778093391903252933438238390383276436047645221067527308592848328612815075104362539855457074963387003431706225077154902873771054082610012391854570818469843606775580590685646038586418261911754671757382033752966721092901866188277756931280966588087462284900614174529925751275624543039758994328720535462982768107421907017755333572349503974678186725835336688010090243356190523069885301101319287853493842006718017668338895119742457617942273612007103948478245551905252287277714825687057135094271576680551814124803496320821307087637610107341292315321001193014347606490416000519017013196741827633459681924851351272297279834530609695896002749546672939513556177172909054894365948963727352611925743706241565730755167968471485301732062801538434676882079383032973720017319100679321480124473536432915536839753364010338817949721299142189793749149904844585419399683207629414390408310858876335358269817475988447214279901005653276457438313248270638973969719401869470272056772330854021420056925048004233265638189314872648813993426834283413694566642799936515119670942721057299238909034838202703702001893932791976851633247947572038521721790940232973788670719346554092122814682480712957948258807029884919433632359255495359457992549399268856099339958962847341038810571614800988074008726399778678125451223468323620898186536070281677748829456706387788366973071460434825785723407771744805187778714816288739642534990897360382145390747975394570619119459361627689178240828651977682165574635513173287295799183492800000770653304666651050709423233005009801830197424255439550746966331573964847210427923604840717448475385043182969609210429582739927677540369479532557746906039226940710102276691073754210187772710588203567322473454622025028721140713382982600942062324594775977269184884856091123583152767888704502421252554624958606712999903741071543781114277802112550012052226217958909894423119533267976630116077656766454299907802972256945946674850342024958081914846645101822326988446867520294781325148694111307475871921801767122438267786209528012172756256282254223249094804214022657842385177485687301429086093230304150138046543852569479178135332871752308301199306392271635015642038121789071360727704278682344298058806836217983221526107923262101697017622731240245404091016567451335136055166183561681827302064348323068420879043756098685121299638482006511182520004132779316687098652467275506516472117737594980180429341457873374477721478964256461787050883690283040274712730030020250795603375227795583335395146503643658486178793088689669179061255292069136185420217260957013215425590864826601929509593609374899900431595618887252599032036538382910649487666735351036852856030889118215650836728942681697686298588365105657200252618164272871120089944471570464906099491582102254078704092160409774852356435601331166183104864798342892207588894105037416785413084335690808069743861864969444047072161568994904774745002684858311022772469058063844828681091621426316282716525063316932156090191357602955827977690645910123725820072612350391622889562483500958144898561910480514176782415881945076580422463582731189925032336516330494803526595027251667743523783792666635067622093411323164426334071724754164641076386985104449582107014298861817610992648939114876959518682029615262433080834791507914850658001978799836403764955126610287775572503984899649750754870528603624285387835678440203691825373425855144159495471564233300312213050643632534310224719206435360448780581599488486915875526328214120816719136508675225756830533762199925558665665234703581840577394791819569471172683043726841336336683195720141035853773740219293213129677748327754073483926297269708582493513325647250037290299508372907247551616078202754838123936129973545849325018261611720684364840561927089716831641863844709765117142331051043015513039944863049523910633149493204252830934645392558575612863958669749088175577571985515491278856869277308320112804762608552679229548563685961808656383639516013239582078628581164281200620083384250631410428827619222271116245764332462637948318393247840425292415721550102338219737435621925305582914000555863847852663689407735367957705709797658008214364445676661938769232081989261240436519409485353439936333605641095926746067399747683628266869483755701901061855015792872895726332169673772506347979325782071953156828311506288178542562009894215650690151133254324310190099552982246967731964315335133729175217088339833154754617719286502243601913666886368145456725648876120638256848586769836593779437781556474192858222169091856385463215204038741348106893627910905760437972777906727663657435058886654131769756342973709924243621223304618586075911026460505014840038066915906811884561282301906248179465361780539632601340221051071731191896143245416664496738552189752967624781731171113319429953619225363253032420396048054877549229388168237225867868267014337950558684216897062128218512429082469424148628573072926211221113848166996125614972009621565679291045713912805261152023286901667279220039545303886359061733504997349976484720725029489137581034479489341447297142515404433399039065891735766036169716395863425392913765825035129574003619705838307857472488322154297315391120569621680194795544051108025010763657297522461281797539556897804305234241208361336349524407649222748097822120987762562051810420771665354698504970634690198983167369078412117062804839754568941762863752805175225345926844154741165884388545982710446849242633283343567946585260677233078155076270449094329517851779199469561501588851459672062125336748879790993123324524387783453376419169264277189690873330480781504969115668707761388310293737164245100125818080526933672276089543150990035452852428023193988548529052427283375248905384746231978655183860567971946556267183327501410241890992198690252726221363710149835667415283007448662879197660910148393575836267334862174354423089038983741426097024094173609947477875689312795253897094886462002268398400791145367484802857078996959052799386944099596062089867478910680630107139277471113481101551641176846006360128647444758481599137573624164601867986070823183234381888837664528591861057645230093906007019672516583654422805652598142304936024364791811495723905717539079849128220876968037120564677858408104994678187824332730461868876215603366120871620612367621526294130733138603932351917100335872009713677375214456293785661047925390597500481287453943562044792791361061037094153002104697867941318041870054462951130815418590717149068376933122911302006460903788524398641436200691907777668381086672809298082388483061175431517793792830336667704008664354664286096856922430321464475210782816144541134776489760012344105201190584478611720630551924965852361797783365382854707189343325351389330727784592640514847285491151602984305488569332531788241472126204759020356924905435144144666763675708807134887400529702545722953371916897211997946746809839395355354825643168382942716338171751228309301528341520449269219027719770809600913626757678980067908339369393900586690023189571709022263988625567493543988849277713102811645799887649999850446273758254936246730594743952275889098992728355304535850585336014976436401277576745802194737989744393187512406032123360863363568295247035070105335128153323520719606253581818571675915649611251613310756237893374746417905871253634023573249172818774598284827296914245079534605214952781358644387150935769105341118679032354223277325238422401430302160397865711765535392644612970310133384271259048674195159941734282955282441475200707019194410825154557472525743430903920677283742689245767516898521219040424356830604480330689425617053618734225971865065025378595459396408655865947063257848681151913338618925345978370022195580167214179507708461740724181752568405311928593421741161626489362092079074465580564991088392998709335375584247134552246104888514812478547346545231345485124792405486447321389485250202374919728135486790111172149804319486418138060353284199736143445027977195871538652627166531290551192459260861355771328049883907192501537566511708926841181285247438806771730936588816773678438415374667916839911435659863683529685516197308762157927968734900569076494352940339628690318732389290585287455580720581817341646314413256875753118731399776572594999174997184681272714787960289759429601824090124550741997380421480452854513951485619102778791743326749539476354612826661805185659002830261613898839356160720706015246456804212566523345756667615593587152559918966873386483694242836063456979388036116623660457496222269971575819812867256390529750423261006386237687227563409971234269929357337239477018425531422736259629089306369979275371798607717305391327150716605426828811509179042915567309521332889603694577904339983703849783781785821531917545764413690717238848023784914115897437064027271858684817557065370916695212479891472383759859024260481231426039509156303670055869864466187614228304324877245815861451417346773604107762309607251337516875147319859006996550204814203369861649463803043074994492182845366093032428783134305862040649331044503890724411309665147633325923300813312171305021728919327208891512236969267675828536935368965036635829214663776002722404570898335834999916204398004830463862273726365131455556837019097193907342076003774322814902331504559417549210701724235415094629851208430782817332664652346538264870672604922798211855051157853934402441621876910572181604612530281989295344899696584062412920220302926413618831254011404549375303393721264981540829520472356754248255212446342844341335835127740698267881604936304802001808632541575062331626602257567582154952161609749373425814788388497380708273925905593679686704859267510758690488241954163082416270801539939516479544634322437145643281353865955069679668175644448867799574767741526715115955557310687036627581000489711490026052839654605829353986243164774015413981406679334018405563583357325929440890777653573955627431789388331209999594845954929747870185911768358684595219007809705311979223001348615244724575578601896903902649094191871831203227698649401244495897076509673732096836720964270212801170326222209568535585894419280977811955197311093200085251945168999476599394911224755390341077790427755515329451508113024558594863292229266607468735825884933977486837500617904446914174092321457605791255935526777137826661305032858849145890811636870762564670336629795715185241942352328876816519039509665362153904536309100280571925980191583970264249176059205359369427482101352971015425335744246302446812861795940942871100215182808778741815646245207435144363287451307881326841364892528622954586551998308728329094312209013150222365524758505083520320037993095749939773968061181374669873385305540930914983546104722734497947177387031840461446298824597831373386422021153820763161154220948642778884701997008439112144363645503118412992269227711042949988049333834257231453890839898028194994476816088176930161700417489815161275498054604008786441533210226252917683051479760197273961566063178023940554020567257851315079610747604599738082059654162720175652956349651198965037480077789460540053391192182714357251438797042791659204335934925347028604699124664118051752038067389713871764615518043380067994203943657418500254673699900386635392043627069145715750528713237478289841659630052391793259822169152431554671963693983638013609927726223916893829427643543876898262171386804948154058250078313357904733331722434709479101689463948886880445450264525084469074360015223892194650631511840657905952434198539947443371330205811558527133436420474200128907810161282128866210605689743296937328842570504789331948872445320815654517991944655937904929117593696004414894262756480833511191632875710483593249205876113521868788291959364935171725458951333038406980045585078027612930856458038457786343527072478520345125647738098652450321518384749532068289202505160467202448880002876677989547787485684678119866322709766188864667896886538257020852061710018550652392493546199547263291229308443148391419946625303194003005145293135969522654241449414188508677316069307487624917833475131856497103915848386100613645092515050654295209502295899853073649971643276883218701361287425060019707730307980407044934373816013843589655130459859763957207832860166417173188061473104515804530748203564340038179557635101146245389689874120615716107217670490629987455185363467702716738433355234950619932501116820613410207437789224220584729266781505201838563635315505153160414211431814917736187393849287701288609034759135455843471227525454841348273569346123043114509771098641822466897374781528215636597509151987402725190677340265678673198759039995741829074358147000079068147991120161454822596594455318659804199521042922074567913111075197411565804986409857617469119005664729507557782699593047539934864833957093619151146256310307343515439271933832161879215104794534859510385361683769863541071883881095048704765551718934635341453089838936626678713847005574849038865122075917475995045275789837794007340687274774416353631320218861831598030426277647496648491549033232620027900662556032659566066487632299057663909263983430095224396328384410994308952478152137209665070541834750492330595498704862833565825966507106889893582050960203710272338496532911234024012939256578561396228941172609033923173298951292779244690665631203423393222824936945204246779979677816820091662312795767220740047607832092805204085060118001093371926611379186017951619126028918428017675954805331460583090078668814362601939306099793318399268274615648060739529399701093546141019979080809878681744274356624991538900358834390234065793610981996465269291941480153650634615935270256878922083421837214851794622812521064869585436650299920937007617967122693709303707875181481215157656326938534116144271031635120835630505049321773872750839429590617297098704886274078523516897553490773399411566411783273833807922088174812591758708054527701338219411937305925224710002203905535408590858416029254704753402904446699175374712256521730210038443313892656950502670902331388146937812205056829151382223194241466825089531700823880966282580114101487329496341986293563355888933451508217078294830193976823806522674760680730654240499648697605817249198862389755299171388329022206834452709742274317061907785841223726818732967451116689305887865532818164783237108099282913631236445914309742325999508120439437074086710376141564817463486551971529784955524481220199605136338866944868929738300417472487715144813415209405859501786490883651172727009659060498591148207533374443973941544871144945230270944387139371921011378298446560810912391296214193025569003519710111911315403401857620224385341926437644173295726626765638984027162016430509462371602143188409489865873872696379895173434487470614638944926447029388077603551404228250692205273961971260328263069217303659385326667368423204198112424384817921394486669468996918080167999813600886722445635069443949147281976572253691467496058574348185784947675352931039012857771828332646004385868001551826970533979930123144609500675780253765172466731272824757465915813626442958602979697435945386866807455484393956829279579502237506626393993857184854960217386956637920356605453679918399994198478301284910029955165806088318458342204340274129301687768238164150394848361354249433421178466001409262402234351493325290327587952151298048930184176864885619955435389368865823863225570347123273107308467939508643739888596854238782104086822937862876958001850352745488837962797549418775345111244061245438302313174206851447144599265535220617248586899572928750187223283298230144844598378976149896333754971023847311652795676327952944222189825968100278054596368436732080702287222015125419199621486576812548975779645070850426145781200891612245601730463697378108931175125752432582275770198845138830763849093935570175783761616091933800898097334694465048433026060598927169795937210775242097117513984367248597806771678516473498095498259535978444490707970709422191161489445601846176341347959679552076585907028346352021742863614699455713208241935595962339994583808131568137573994175128380061985957683289956579159697600761016810895151985307817964543180249692672276506076688467793707957864311590178633802342935197336754281408590724259513525565167609469706249615395197324724746598150439716178326018839699107553609203204597581212758244756781847114733870685896809672876706129006911127179283736026440471656952620694664157268152606731977045198238372941524946202037568767785711820489751955571508967673830284645028956547958530442467640309246689194479827022962582334979424336940988953451376183855364020251733127519198590095801449699341249800319231626440388212258776488382559922040475194545490694323040155405917913629739809600088577081142071813716412939043409762003880309187162487440434690476302475339645853013473593838138398529722411896599050495864059387619289553149557379340535016196669873752515443232454954339322311687373489036802005705010905958216348522734005770133341880074936320179754563209270785005025053421489812689110272206107052674085782483296155945541082365893251958242922089322901250668688550445075608925976881714463214283324210419140517828438080128456956690114939149409586834713577447752816696131066034485306582861464255497169193961582894175042931894975937477058681255589162155173258301291031577098580336828851066051129692533308006016716079758853592581705536107452364193802974061672320352489202532898827508323517349426996113810732190433084630457219819338334385971145559488112439097478237379956236365991772043133515731075889690803028440004659445306764001686904069261569583699418014087031374387678847587312264658291814227308427358224527010815249358857749771413984784542179622054392931593221229362113859478367447173990173450192011003638168146276546290670925848191328803456494354179054515226787627566010986166796855644316459867476361751921589435005302699728540284926889569612978736518297504740205090292154619121125570907385372046190315854110222675046843835187296275532785342265218692257520859516386082700910250092226818249898642021736843321577729542792662049632494883235988502529179217778891776386090991343523425543380764234113227703269292343973563145306384927173936733781293836039693547932457327486749802395254489418429704901949744105835624364535715160523832297173874844168085063419307016288554596532500890489031878951769679196169332666633618506778747166525588090418530557380702138048186924630313297963648245548029615081085557499726560335001241364356268064263192303699216464226930677614290998656683988370353197872037763553367543548884823335374560239285575691565438879995144224154498719911843924625974405738682735969474382264535860815936008663723370765766216253256152539859627717856544377485329214093846549007676907572127174595636657551541530209399084342933810319773504930391403214912733796894447832388373843209291397595243439956917297030000618301978142789853893186213270303292076761894761918163637881145886550300754307529939118670945249154378183330269443344375358493155031952314268326724699449208119778378406099580402237969009097353689220591030974375289764844179281346950339274811919737186330515208949378492340511039049960945532612874122637592658909435696394039030853631024134722018595239745192694355121336442085323614272540552748974951954430913192951973792552097302230836956054202906658925338389341020971785838544889998329937678982327463050322222536917701861878374928346962690010904938622658520520944625215050128145016137439902102036800947684312431615251225774635694359051366205452679266595704768108307208352072603960473300866845902086314908678448144463545550372856574875892072759265195680666588039470773584357546764281779720237923359960265976644187455142982029825723462721412781159876242722039780101207396703670891237357724656579579500645448352948775983987432055127358018607527792410848642472767022980399283876975335333979414116949832361099456926135348263775124676816297028960776276517916120848884228689553258828594089370755457044768600007721893212805347376979367762871585369517828642510324868074880490342023241063550424276121093994638966143033300680637529205090658960545535366033426325283331152724508803627253294059305480339009849471732831712817102851586656454446158223237399724307273703870360312229310084246966357002711318491060736945010305591636511646314790280410508677308952790477997081578221522288163688879193088977894433221455388022955917361739095108185669241319274654914779957697933122781381331664508544635837541243691262839408588271744969163796507767043896788099761534931979192749396216896337250590471602776902038646079148909279832752991778961009179928580526732760053385372094991934716706279666022918606711211660302990643037822392202985811191397310413220946411652580165515941641439514875291203240671909923798123914986867540051144078369623131345617079950549739471386997623978790940146999744092294417825809283624855370492810945511748010386152369161367567192724847167297637510956568979610846285898121123839347104866076599752989837665554840358596638046498351365862607037977746088960504369903091964720265006387665523970639461673984605102219783534773962577233376556544675124884916996050078211635917296400398977918622175107824773364067010872289567618548039213067372369018723968858188520525942427498892055330469399670570681649444909507919538624616439494806021191818449241533954555125290680021434733274353392837949216273603624324229508356960155836414223160187927404121746263979346775996154464830496368932321609997358290257476700157316491606312605922882710246583703029059696282559776355568894455219384056373690436161630305463252950686106695767536126954072948210138968137975492809163048699672375321445852023655919430929121888132102905450208730011023966595025750703789715131185076060407017686837848004065087158621528155479535559610504068855863249829507778229717049336723896050990637020533552953438022631071602429892134952343452698649177801671972125661441956109540518528233388789437083478409560136667292464496896251820902780345488107121804871522973810981405652334923966279395788440895744217245425538537800969165353389724845589853082002749496595515720726019973733053269063104957669878201312580738070935652061532955390211540251119043164106220154706453739930541692977664522585913704337225070131810233430337891459188908062418809873933636823584465958873242700103454434720954357114838127118928478626992374126635233646617594878728949688994050936849776831812598209454869485139526399878403453972207334104403084196165853395801312403658054866482604544420390511451022028772419493399048165772202394030238995101181559393197335762692532576564560858349117414560402760033745603775969450154918590240998908255403251099360009784880155632917617060073475774370104287440326457267278570442108402401580988096978571952498499869503258752322621966925157124906024005613733086159265459021681780678517737495218256662272166883488620799165850460465631988195922316963507594985402618704876925751588706693030246361829128751974347782275493461867036671616518266011992075761818089055179342734382000813096812045571621000564626168706037679699244982450882782604813316729876208822591836770637024995865043276130287395768047392732990830613887061508893423977688366297540241135907905555641493813061034160874301783975586804768439652101484015616969845226772673503748922328710165932300110751117099236117695464615682458757783182423192781710854788855618907199757730624042451212510246707243728377336729446293708885620001238286434331239869892037408444714828844510939724351546216939764383989967183771238291010577032679637334355256005345534899260394906926655311886552500152329079631559155989679219066501635991591645296930552092760267213849639123327728195500755953895837997079758830227135871959631578025223827823337659429703307502267349896142162461051519072868515954819709100648765441249330695369972663445975064773136720791521960325994372970662335234106627112392219112385789159446262342516870254563620565835910277471287248978799681193416916600008718089737584694263215116009927623713662260841227909724626351592415943775400983174775337157318421519172903250392836750585750947896677588620489581919946437514122520425245932104024934388569020113995780754519187882483840773107741843023088280686032312893587840583904830376962059328021790208311739688442924844331936464157133864670976598053961182111239276814733219137300870812383321781370881085792031365443172150503279981575065524474562525529912007859203050190713609712228084521602231355601760843465165734779123199840253138899043892602439925023271315821767538926213249217612862011869277519101423352623430290653585803378485459175453993947722547976504830492753694421794585071438046584751130637039956571579840957093696066312620989983541699284529574947291816427005123765886998143771952660489466345903054353007743269781648894460729716747899588278255240901061040210796546847111605465922794686477816878722151583390740804825840203796412515466000190560345171218466827455952135837256268765284059076697931235524928604142129414708557861099802018321447236976250826621097749633390407054008760035014482194500561570251915880886261486878218626838209362293604905644050514997547264640735549908682394993919812447612521125293055847679572210977186598627279238963878520888033169749664998459824718356290337193626684937643888192094209855321867345144608547473954291051102743442890973644618618197169124248400483384582766634119184434865046385211922090018235666233426550135746000123666929995969624892837015752762282249453435145643534933484329135517394360648976555399443792142941844359519103702533140734633932195928143550806010878993429542398934056523444440299904796849423162836723686572939697308430961319675839163687906830714928629708432696902585963824678838026953128311798435937509609366623069291592016962884233859169555172376612674883834107754204048294475282733692064726504873741723811613017728108657576445407905113041533907546000814701578747165573075475585093242764253805694873861747709880197294879042464684553589856242270951461697923805542557949218761764063364798644796722269340449306443005534811626321236445005930443374970136321487692121764811041414618127119879487887282840103383069150950177288705238726422111643868604913336713399741729194274164287990464323304744678242464161583454878659234706960060176913580637770079739175198370189186835278960746233660652882447037192623313248585406078682866096438502411757884732685201039376975438266696774702219382313879200535753564221889974020162699470625332518938341958948072556250999761472930859071643631217977364918636109284645095811878440027319337881269897952127196214796176259214019187761888619258587112992799330246257558325377684000730542738512768305152607357197054336439234906231257603958463864284658168430349529026264086625542637119023316359853394824778039705638213073907292155128380911791638509507869991077172106051322897492798084532225282800825378738678050723677110555303223081774550849106831657536587914810519564070049367125882747450866228167294203978460619183424824867078732329935168792951649993222059236694833869511477849135566839705706617543640292947465518275897214464528223578938124864520632082353403101285288695472183216529126734848350401034021352072665380717294168871411458509243417353701300304679904558961400379878429759328977305798459191013880778313319113523310894830358173403955904893171780801265073586689324388551035951170370848664286833426226871747664198605860308820734046996166788830509431055255849697486616314339267168329251006204096725675004504795010689992938772698105052479153683411577373090990755066033592297123780104337977019594359801721974929363626703077884043254555876665418335318932923017618064313932049033051091129208956845306558229340669236722079745185066690790694449690483200156732291320359660535171142259953044845061340767948947162413940026039937399978081972428953043663085950784980423632572319799376314523181180975621488700274977851352625948207157445975470273379092290392302282573395081368349866520788606017534569134923775872710166049727178412331598053423241901943603855485218496605858707557123663335044801603054421194199941584082862746577114581632119174016064698334470182007844733921771402548674298099426822748143507526001949900537731932478970692263521113746873566198797905777466372526560317980607952207735635709434100376078578081827101821911848640171586606508246308658829101884751378033912245505387623283475697827733230236816876695196487903848530781722591559577181145278749140117883062996201866869584720479462924480855394119150007354495313812920237478809053187373906547213336721418313146996562025963568977429220322124974469786534190568879442295653436580232238474324486444680228690534366440064092696545740540717118469104151995570539347532432275848246590895666240955176013368169934191912655526656981798687273237304378870624272413819865775864511749677095295371312395659712337919099958303561532973162642169219006778296489004893570184322084453448256933286595459744770882338857503531243548235385831312344018728866298525287644334148429079401143092859228216806976401159090124622044713348418960758273828808508693499169794775386258205223579248680453331455263018436472644555225242857739509191646639588965638716114446147815952260831658172032682789480232893859853418502528218650092243645612853629166244270170188242370624514321384402547171801633408432151895410783037990709560630123672508745702062389123905220207337417553737079510615126849058249243960960246417890014419436604066179180191024543563261869579095305244562622829976190283363959627874271912225464965335195399769155518090112508668914887054145894904198782078664731232866872702574080450670541397507051645414230420557359490535517335374721580962067541105547188338124540967095307493690100852176094759615849626017639264102209273884164034347457775628091764609031462369850579297773347261647736644044448800356221639687214061639096112881337673026602514346556816573384111825934063168767032556285016296066479720488940031670918221172248455202277783966490622290606340134370061219998697446182125316752742630644368638515713261199114505534023528323137056786895323902795957870576468971683112721948864441321028906742656308468430231733759909382823646488180650083245658703367491164832046470057427659814446572795898479267649545426327730262051772842594916894451377641141270700446674342397223840607307924084093386816952264988529021844099320313845088916884705314619688391772210245691716681204712391208421341565840543606118531535802246019730294388060957036305500541537665703084988180351631565205137620512954768367465257896999232059062583103091866673885952241165431205102154186590237512947306559988087371815348543167700032729623940951786686928780555865170433598936105936000905331311858637126058131764192379518201877584356093419161290863019433123684528619657625906866769488107075186373811548473474115454709188926847828162517367401039802826272724705693346624297154558366570389854694281970520398632355950500660996938675649648994210124400619788196235070206713294667915933675317257115938091637452667754793211626399492491784252636322944551359298237728617178884865894934369803570811271219213727936079033400554363083961589499844271686875300991834853985769520258670976693409988741240691146771355026847365361971506681781614806631632969213514398318249280000817766465021276254615276298377162862363211776574879794393538488214726549597169881087699920689605016749834999302080517271162586751173576555561612661473030171178473534896139991941742773136183709046223129974046923298564364003250369935346766824265213300093439110328219224642673608648414440822392798965550526683858811429458404985717318724397695034321667784503315117486147884412854368649309948791819811861807913946276683808986464494874378333634553821986717274597575028214534649228065612211667357381394538881315908335903692448439065552943599232331547800055371806101385610195287450133734801199070841909284227618122885695759677140011866555424438793246104817074278962067763104929256755938361930066992727054307359195045014815088677841207906338125020103794193882097682617883513442256303836642995894197992157732103282419777341747453426574984906150694320897740444131253105648108206091982378716189133964047214209291859813797004798976095148573940263784387381923293831910201961170582108877277820646898636047300592398596700850345617421057188481794431775816290608462249002400536790388584825668906383872138651601677891157189119183268612881022652229650704220940203017307143426332143586906140264643880169855907293466253718670118301953133823776059277307305405220634668406248433151638666237470969403631949160548288808201110451293157181246952710096844371535259468935789948443057893293617431468913690936791496177118057909509042742296341021176921278846681212171629054786961778286934311170209748813508620276613688096915250471700840276066034304721705395937821264561588423003494854571361879610181900870240550337543139774786511284230427097329050267116779404876196898601620449726513996675887399847853873359254845356565269469606084093942508677571375675063470761137264716677990534932927604849072561483487015559727274949615366347035477399033975554713586351351840878655541339019718000231755033866036888718831862371832622345524089839148879785525631976644394565105202190156475588894106744564615493680350840751145975669510526104068928340086705363281879384516183880178261857743711071878797318635616049215678115011834492146368752517381960344298065916787865648276007379180887849118185500939834069997622344417853037554403193111341314284548200617056965299218582298469779721974895676720393068433293991189976993580396567289892369379658741852895196050698829681235145096668480110731181441444995133380374253329938959457854464314574686397981713323924210407190997732305201358312042676307644802839305902968682570552766174243601899164909969657719074143703951864594487512899332654680621618008710326149093841637611317256635691351974410954915677067387236931255184428728091172693637793271516434512098498499850807795588922284830988437523642382798171565596645009439709530043283823073300705041667097219844949363516095705823528608215295564883460773313770619482057772311561330023886500921199488780058695569544368417186249299398490757235115273956157578571539096718387569636794404359940978876820828251901456778421428626695773784079100357878426579899257894259836837426774075700343445633294495572658315468714783351391800363694310891436923519159230487007800812125140564199190889966844686081700553538708298219625704837874745457936484383754903227545150350382043734957301864728926598045056463977209810796712325921595011542745582752938218276494848763242378324551304595925825132068077167028503483224362814435970830753629673740665553491889569031687368397963403196965347559272750915990344052596005349270792294630479555658195478903092631008683739180189324376262810920436790156810781696530581402750936242229321280448723980002381624105884647988674659365023283643238651840798447256105120825893421993971538662618517433988933643970879354977902418753364600950743338383446035419953050418150324543561015423325437696412418135261968646719082690978170765518117384532534418408694634115696395598701743609548589645290727708145047305294268318860269598565192914441521425944042330220735582751693730805159233611461053612287053892132509075516516179471159865915349428175902499421069182434800548375950930646498728481365575492410623394546229976717176826663117168407933501809377506180300170045725608434729715448386471807560054329247886051089037526195619101356301092019362859745231514606019685464639005054396147130699228049719068505450347884810312299437846242083922337632062295714905583432812080923831011315678970885011545343536606080370797789155754006323783694087177574891607836194152864745087537776367807143253092959885122709159479019635427686765881596084483755183205119994292497736055691497587552990323722353385006203035867798039230675862539215550397877044034857099069640263088091619340709420298143846499907252680233206762936878419218236955747438815988797500310043586037460945882355024829929950275891159979763122970120172156961271919657804780789379103797730772539533250444625698815295891110164572180764478524696079855616182787679834519095497390167659343577236918045394465783707730301256724553350535924891210255752366216774909866204112311610246678856711154895409335643530815273990106637960601738671829404358279806604630054599820511104775604912285343495143816673672382172435072555305322150745138437549255208658755496223590620843434880003058111152671669979126022282556062765297675180239179601806263362020360436443140662042667911870623718942349464084430633790097460051344552303857943458035849112302509517153446761064279693032809693796176799773760452620703408531262441106293809018440171458681850559187465911899874122803957514144520257315143125116474818951149565959241807763722555293840908903654306327651203392472091624921599984799070798546522305735918321975054702656401974668725552266002858836377849506537599596966891454132836925272491868649236821794403777165697146352545918105372726124735199404313495902749370563775383822337810896607535828201859766860915379527935098874485698890384957051102339815964333599245669065989034359396783187977745555241596586916194382175540509989610771792274335727279190785549608493918919271074741245806262857181655611467462925890983467149233005472097094295960608546919094207857628029541525439529226032779634079181231303211707355718814256520685996198695741963831093401918069811290932451115545867787746707063505946544847716176206341081324812336567448716325663031083680815877032180132472059896258783584743775696954681894134042015825911560921600814124257464105375752739072873603168587821704278231696405894728044398771726936816071541464608264578531259736018501989188117836043012297997488337543643457185685731386406497405962162218433404641731882105730989685208106670352148513200393893380603204213042952569412656350202140677446414645904005441316493751821880748087706926175020381834213451604361853956538466671922308400740760998915898834732803362877693347601307811140881224067833344701234253775921734063613973174135070891941663584655739269819459891912552964365103749912153248813654801047089733232374653422274218434447106698580265924871834705215230464923367942454444259675438008604753350049592168070999864085177855067955329935187580223332414601020052140120877939703351479937026272883955674068023067765042117990954153400675526303399581784969538837498946978198316279639444710174573719312594717700828726487706493081385787330735890186595621262805685950838605760479807840838596532495081565361108923097747650162612176220393806344653006496158089243488604365761332938021363350712438005012072919663574905901071649145447171968156041288544841236514635195326727026878795728734332362356839026179816042475887007989610997107439931862117288307487729155844028884809665987048411332884469946609640093194329401631509028181169062397302833680059174772518670080263247898057505975823071002867917927236078687347387255601300717860930368072809465008375304868554861327298188327815015466202184579768924010391646071987504748036561816323532463079386315833941744109058850710883868158961066156779232509031021587280182754941345841227221532769594823836905346794054186540451768792497110684715792409660401506212202602599993399295065307255226545071444124077382482823023818417154857968109656707811550418236208252118356589325264341596983927202751919186846442947502587555684087986537595288095986587181493159236772413854671399123233940405492906587933443127704980612911654807578793542949264183573229636343975413008940953250993692408763114106579997833754563405036992974599145571138692770602726046916854580697565543207659040070584158115323676884795042529781290124527012923625335885766610235319306026275817671661200136990499791432393832281008384183585492707990606801118837257444663940411688833402642594030568910923873373495924952670941640008611824153923339232037065115428420900488811599323386656979006156994709350309231879746345844544645367583884834275290834850221055513675918590212062718118949624158947292938843932694164303232099805110822256904335300380655202030999480699440573535967597025932737134308047416433905056934450918455818603338915853015331034990307503681888249679499404270856045941245872248471501697238621696285908269600546714182840350033364985553328061965395148037478468060134883928771485807662414502812952204981745892436078004526346342902747144736734828194656998818296355532079773592494949948368400542133940593321506860611322275171690456831277140790786484235006776151702486027218105613798927177363407458212019395880745002956805788524668692411315538458810148056922533667692062781280666306269241787983050521909037808831451673094036622533855720208383309668336331295732737427962125274381173844090608954357694412893043548745119941571140429232087785019793691380131094267899706949803549518291680026047085977874304234231733220260162056860045927181247314393267283873103053757481768850435386003650802707042045563703390757426571728980609627914599426635487401154295456471429950284219725981339342905120884281508515774697351197104895441324921692589809648641390941638212904619645968001119559166015864623021496215331692103289488512418899564085122598269865447490233713592860800454945340918934601211166278038537723033061788661703491547266800807202691500614278580575231465360198151562170559771229925015727229754454844734978647675651619089865125338743249362224304282527979510155394679446336578993589109318724651388115202995859990364053097399947949559875273023168900511539019208415110002295680280898402732038541612625886760461458109635910683598626597951531862070282277179195786840361253262859651002097378089526770958036914057644381304832589938101881879724342308496028234962440032407869400190316560467932191496348683430128868890574174242466786845301568532904589870218189366176763963028527334734776483671007622206222968872414900643347170835055298935632533622549860178446754011560193012558296130925594327927244068637582876999393066244221496012061571375824476558216630972683454096220255752119286468269620074800786311712249631369273340922537668047686629867834622964042120034936564075486016459277984267946969804649076271275821056085535989734558179899669523761712342859207608203521226748963724058553989420549145269512616901459978295373814308023952229736816025688279610276453045653816122692485555036534399236243613336432722318400375061062602525429002116174566329700006715359234995197925588255555184855402262631070607017869047609651434288010606362233935628030384213146724651715800301840494509409905634031392283023648409744670621206772267053501293003542930874726903749264107566411093983269586037161846784117291560397618714776647020786719440611190805983769578573492146146928184088024448596181189546462586187206860383774143039725358177204808132070655048062344176643100128635031831726191018651865655383338394760312446860759147803378774019914497641838556429298853008428315925218179722883410118919547383471147984418166621329748492977467463642805801487892177745991257697126534327280253863592897395002759138619573766540490963644359309911089988841934079859996865341315668400153154064327617872234025782100315361920640916154760150748965622108040155249436098062086409705808928670659388033332796297520437626867189501639923884299767604270014556171369758465872065544627710196445756879649531274788638354669707745293467147607378966005747531979809943617498419570356456445173673854833869887846984905599315421735338759228198523911934813150306262331691698888469170710969533219127611377519475177217182766670825916857122905076323946061644180967525139394325162638742671724156920218997384730266803884069523220529815918425718324181722412976513363771251242396979083615290803104197585305244650113501646112694454642422065914842391857258299509289757100156402732951435849053946009953689465485707703147774754499613720607438416048033283550880626620539977274514292842877138571759447185091923511276571039953566651068507394903498900018225958391605218573704919604688362077002235821475337403440543315356914813230711158582675240075714091723723844435010644673966038407330698147930243847101578271909543993386992171797341117775258246827613378661402080804241328257679050168038947195756074720053702219587235077065650491490035471906592404809648154111444319109393745428267659345775073477569741378556782684567758985693590815269901088924219393920781928437962643343251495814022111877938971233013400296186613078543654588376717681308105484645637725187980264285110003906379724885059807625606725946952839536625530191670876109876149897338176919976314454515557204654375901288702795392808317979788487304109090421729756010294588799650543524317648902248671312696434066770438394390996924930193398078662224888048728150134304046769343151377278581698132962234211218630553811885467687839697700039048165426167473688941361307986744068179465613295508290572527318372175974147963712175778425758746811295069952430249219421203170681929067136267764655359262452655626010675892143598296384812679000582275609753479043257820714393633879862133292762740925375752447535083467175073447291072401184830370147309483690835260583894547358376657619610304203541059973115396389903115646372026235875742356709391246258660396907874547862025692143075631647593701445851136777295341778902414798354488751240648848293144377455394630278126344139951372869752647418606627974496462280289252769251624847467187835265446808126041839414058247775889720981726829984902220198080854201804536821660255482632552942403932904744215517892203162501217536273065584250081701593445657073319655638887302522294903902108597484357789011742095269484276151984320539646255209980595138453710111873605309641974197789965380496156636011896314975983207144310150596067613696389891162699642427006097998625133436592368073817719032835282834996386029114167301327581823956343461972938022709157191846146779932984653284441565897787949939465350116537315935742659282029677423424367395897004062833528601129154491401398376426889413365474557582408122447960719273332929739218373261179187159120566398067668565712032469976293042996919462677677815102836923598379059723494991043129237826334603242321980336794814282258886978900650999794403358784873271998355475260940565376481649902882260858441081879219845421966477780560882094960516086999855101142137370949060529984606990274070429566385736220997601028429545435999184087352991893792323908792117773253012244433128280927456675017161158198557021604724880627356910459354197381645616732930030843498453242577662666508939957526738036035213380669854059897830133958598260893651467634016147122565260427497300730173814504283748197983946959223171493348666252465965452872343157355721662976671300737340379055533939705228573751369306494358151567088517034706233828294565779863876930248946916468429685610710594371136127117800722504293575495937076736505541662175986266131298585492802594208277970018458803195062271187392442808384637589787633768032059320206750491748839969400578914207125048003497159450277643221576393604619470079061749716632737462786793779235672750430047177652508595725076209473074848224875509626866873260974375911515157407896391285782965441395985147656585912260558021042448121803760772461867983939484653954301714454657127653504791408129905523272619864950207414827403656748190282346349176577062800726237380262950840140106758455425067748999702009065311253668241972850021188520670078707210455289171793688252646491363059045887292853133397423925828634446968358802934690592412645427765221832453000116586174755037086790572415668529704326654700258874375087037453951604202240791229733576802261103812292090072906753595043790599681669650789403535343263036073993590313217656733511644034418606149639055623973272095288036169837271668106624190560985286118927826351346146389639595505511516538840848929363542986641721488669749216512026569242593465762602210433540730238748773009016522033474511695377258531381316487149875935430620198032352131783143663287374449316414632564877674314266460772265714276559113729267788664534058412705256468231019623340967545169351829650381600918610512518447929754073029066000372397906048918020672411131692792383902056518786340401322399504803899739200990852610682521333650098747426930848490541116200815000797539295038780617768188616105555780197037147157436692796724270707691045678342286542398502417693298036835015812752454733557222572824941615057879941984192456642847131975935873594914235843319936119197795251109743365012711802201042644624100306944730966411428983687736143849887717357415950571479195108392796462859329129083086570177403964655013527001325879804551676878938310796894943297005252574769148886168038450918211093214401907820830208614245569936807830496488156285649527008583194322163247405341814053493379490528965448028199506276301768639780441822350984127773449219222125047807856356653884355045397969494173890197599487408989125869550982115176354998898490360207226918683435217479021296319287972708618373639646508428170885124579777247469709933819275760062384475782491915990875117864031476980633947685713020928624931055535405095747033877898366124830606015145066428048247334222309338928842825739394027038672491747735979920507637979433008646803881941326984961936882684912687655488787739221343526977425630345465302435988056868361751207566335183504458296925790961904781456435126338327035554898428935448983043167248809211963421683968395128977192392230867897914750875175431445194679705905204220314292765907806276555158051450272504045968456042586140640638851619206004146625306422044495704619582553439358079199604992577328340866036420548387961025760464834762927488749560564073299675611667515029566282521296399388389884805796909050152889749476988969005437141653326425279421140142411141313139672702703205987865571050930395713946641392569235645371978639877216346663035441222970546437202084201892927145201475518050043974022331564149291851860724494151950866242328656625272603829370603594243918691175696078723628936980622510738364347056924435554156993423892249909790068830056443869558070473116327255996112659998803276414252547659911636717474487665545638235718732088103585933659722110522368898703276295439812091265753251949867876355529533656899177378913612648326460609534697320431094679422266349788589985551054540419942794040818093629463244751370110802658672897962480636817251197030981675655445998233149071709489018870637639103368768340198695440181328650050607553149757271784502293640389777390711305234396336698375310779855142025255645889317154951922587068586397455730363020974356021961320191381791745160116370327102981776619190399142968734870164041139771597750749966928744430803497549499398210193386921692786975309066726666566578104049856289189843051970695490270735602119787106728707374141632761495880934912371874098734762721168022789977440332505067810232526345760846900681144055427148029393190253930401695902802250871024967295067089673262956438214969942982533252864611492716160136444446614407665892127477100496086652751133169089667432937693617484806088440594855596961033135901676508897537648526137388189370104188773084649675589274296411232487116152348242470909364273445845347880339545596936672378195328553920691237802883053850500764480049831060008345836138858562525818293778597157853680830408468453090303162302107757547792992680890046269767642215945439468769771730413585090321463667636290546909338736572127884637897650901518009814614213709740328474938655237472839402583854653062111516639216867338087600729223213607590366670034762714386798303858817995439607530749291917464047126132854358429832381922307298085474329280503307497474420938261319012461667316121017113396425582015101881050857965082439426670641977754573440948131724882044852789195665117714289450253417110126890496718379706976148960884892885742310099972529035415990690444772035689679185495169923656192724701774128279405484298739845655953214621158846581189167756452560773883561914059268071748090009125352976066190492078704116649590120624244909972653695399388470058570671040577915132547071930333727610593254884620992777688197003734611771014895788785906782461477392613846362196126016239711554263943198921716858892225275433333852932249244959044947172807335935752259835430623714950015737579121944396020773380556985701414475318303986381046368946726027852862190475890284927491377891343914297967848852932973986153380108517096475969198701347354052750442721583694446864468570503899107918142084945826628234501532474490949898705059047372047558051894702850223643374190161802504986051181635643185585942859042700039318467703613797909660136724855867827505295181866570255754068485500459938134178634718500036256415113669571042054710677998425458215695167508796212120844120539776939144616222588458824848206254328058506479116146973027067496257995741947316749687340763335538416562420895540459607935205133758878431099264080146232129499113711467216048503152059291679899918724474613631294835928352597168697088679772098951893730150469551846117097418489527598501882323360662001675072057049884112893026811517222206782887963068150166848387716352241765876048810195533756034930816835811919031889158217741650925163093924051015739165624035738232861502025699565682706086759240379738561790589833602721571315095936012927974303516706863600749544686479014081455757780479158206129164329809739666001035701791778512460257457189387066664420847637433682111559223372068288079013711118245713915572027721996387446158422136677216491749564076945698894199347688499188873060097985599699217393911574015910401542788549285536888132289696389994947606676399693558350131187381513068388661296901139684223098821553629558540698208101071787065309878573682020103985358768765448696438407147764154256561384757448766888791088595823774738228246910198750345572796482645710705988299087886470298120921189885305996691178849437887533657393706761253433670165817770822123963785694035692743915982999445515990412610444343994313482199903335364348464862661956107597297828025190489104076190841383088073030569992002364365554818967588186050668231939835837395929936420527809525839083762645273599425255164462885326506233360117920384966641624757297708499336860167854645320084156125709369563456570493442325459737150413467899325126328678225667389906008056266134393720401623106918755406289215601376343354667712223847077369864954350238955270970087982258089303061097052253220797670868922619913301019170410770994227012492693717320228478706526517813549905143118408562101031097270747991110671832433613384915045187079053481756776676965211277852972319248365776991065754653362035296700289659773154667612549847876655705865316357755495483938025485583153762341103259528799821589033025811920407314552956059354699697059095205490228197848250988597600481159882980307147795972984086159173654654034661942036035997432070978994460592385887613627054846795457545573723719648147696458890962088663546011696993558823329227454233020382199448057105285204597450380828056406721055467483284100438396278744803045093358663443540799319874036642867238347524408460496655937465887025572091733967861284194289258153163176658950560648789375457012721536509547897658736757257836737009945707270444906800925924765457677101022437748807954198291109162452271585401471894901201825844658488669074153300082457091095993458233780434357716883525561249957754104509812586689158920989643907551958719642647514042967161722601019644916462081556933173816630383848953604257192856075123469351978088807791270245235722477647261531924158451361699285331760981567861656134580354141138840817340085575436453253093995008909854115240413812087671273929852881818779331067266223979506723689389781219209622374606362157186182975469543184073515721246577837004768096465838553418640052675766197418031606668978243712237459582172419080645253184184087234142928584460958642279480529466558083562863368284148678779208351837069055678655779075460165127229723646680679016123073297325955185457703517564308244325198071620376605762555820190078567475640849477200181055279887234703816043201224433854163406824207500197349344174485703835540708769319721312460842086983655534755783366422953457609810431430318234684242892168645776698447095096704535407434269483223835371506435046364482300311406115802792394990067560052856747031797324509241953136227744163951448674781341481445595898240922610311771284559796265687386845352591926671725665582509537824929293676890310090559767043282550592636853898531786460846800533690880426032910233235761168250501365676687953925527946568851867227372359426400468684952457802948127608881613969265428745638287528948379973868251288382213411537560368296714409914148474733574075242703544165721268144402948454298470359556887231383255015616674241662080130677065767073591646302637889449634180731655962629707416171261366981821413868833914564746126395726379852801241111234262104829556297594506255919257109791807074486056752811379986849834384713142428725364592164871133384042847810226120305373996752520504914959061644662440031347308845309605822810286751957767913801933911662921569699935045044700992982338363578686822022735172361179139553823508347448888881349039671835779319543174942935031023011961656522057355320448201055336741830885536812817318114350536483894943203028020839658952154494039353885840401645680120830876021911872330014214657593002898217989030804242532957552143566308980220763108301593793168663840902527713804695835248233072883127628023151154976029370059082212269166418552964652069837370068864938857923251649378726975398073839194722019995818391011944332862488938872014952900905006765340509307812040711969461217267200521982939952432232626636811726728348960186472366574273277463347955566906852560169759418096527890707001813751645915623402718522575647116533038147609022904764002121454609696663800800554014653188329905189377179097686475840732153335306570089663067639031917833568276467217721807571196065752067646301302231363443907634698740277010723352019022463211793424083797051074414990362234904875423847013213896914508422186885700012192573888762818823682782706829333120134907085243913642961409410429928935630568338658043583664192101894157912438911035414794815816783696348062899593106094107354423361215079293298471809216807180415114690311166042180193319337616918990631288518290421380706063233782793503555207091458863935367082283540331787960039313723632380246395706311447323084777713260620337326782008134276338529608107131271531188777361598456935931258749330207310541169447708967360125662464574665136915933046328783556868375222652030163349652508570782856217069646151557699397045862264614556669140533682622898858127157265529215184465944470463636695754739482786860893061549557771341518331060032012053297686197631813478162798568946634412692841116732590201537375206598196698745469294101895648824334515590385672649573813808906729048006499405670354485039209253041824686324623557810306158889246892604608638835801277266383785926699744294862331314080902277317213815191349699013780845040400231538732445957742687485804589076836611189052862546946114429879802459045266445523706956299679419754408605029032225894525186928028726303128214973824347437124773870335107780674104981357515178805950816169348966816830122158717244470706219291892937072797261487597861075904088843245935932959695166506378813421108139520953343946136888071375037281496445000579688203635995343531616802318009552315753545398525584245493857215075417683803081136968346912843771136241668682753328283209671979945947427283215566488118768948919590491636331301653224653614481922976418853870017021719818858445607970623049001505295203598274364213912444764614285471622821467796387086050991444462028836077521283065075137162824142729020127232150365421399000836685703451945420844006162019268548725043237956170231502621443215451951592927151390739160738232812695724812905106406161093462419215584689187968560947416764519268190806981223574070415145754830420352759824678502252549815971558768562924382277466315921982035469956276273683788111394072562460551871088507176365756171193886608532619291187221441019530408118848878623354818006503518229445514434681511589890333845609028467308004846396556185684233946775525524169820974084248807820128889724373818011551297566888937538021086779359021576222867100166119087373542138540211176788497592032508933720132965428702603854981894768624238097116757033722100884790001801931133980359179967740697329350910632358751661247115456703348218444735949527863616013761743962367082253108463819330056245283335569280518595813740604215742010582310990933503894610051348745411321295779161281635590389336253651986747894478314820568712120095731339633204051310415251556511463515395257062204772358765428234908451307501192352555566906847249752864908475845958698902453540236454836340798827477447395309197449216719789758608548514412649313311152376767994240351840787568831679420160657143813743654081700946246323439042866555660023315039494623788448673675891051361159729071795461808297204015469503595963772353794070583233079729935834481856673363197396134376114957157852386960374410869194945477924249576228865402071973741933025595168163463622856099851162845906677959841076380649175427448333292731531282178020175573525441630974234190387855574085072034822765101852105772820650184761806317475771208433965315296373605777379455918148414681890333674661130985526445868794249128695503101672103964712417148416931400683361292589076827589527934480386564389850500091914344580211270851887184588246966666878985317386514165112219944998773986355087217366064340502418105543400069825855917170476055959347936149548938196155649072579030695668826571583864024551225833047053803726052347495360462541040457810939502159745080540186141220660703364848161738639333494205357101632780425278216421316367998852242775099830084410892377267144400764662213981731873885993552306118511268437728110414785640101982085432112923985113727196439418848555222408904513035986175336362184899229951562455178550642205351826909836762022114490589497155318495653713393067316738855975437155106241797088970737029671826150257073714849574977736067059444206841514836322663420162225811219198400390624953638947461243155396629774532939950309375834718106020530430405807033343286760167303074136730643360537114205788333775278840439601771270868560071737797559292269430168333168113503031886696452178037916540069627490327046791549380972940880988809115712498774070037850259184476499212072704426736926112481694241449505040803018936816787564355574287597100522663756884238900785606606666522915830175793542780059689413563329569918220354283635505763738128879324673854767337697644979180440823820794059803063839102789378552355116753208739048133148917016842666752973156848133332067072645125111945821755104161487224255392638140003511642196936710615043044241785701573788438974011366274568697553535898218592079441287468081146213373216083753735859854126212915420958834434409962056295103306749521110535242284960641824040997106988759531646552974550062329197726841135929663453890264781190872944300580406320112137941022687613817096765333076923808287988736436609025289195376518786178405630491985334976879315120944292268840694789898568447815106722506636676747774557083616824247193813202519523458448308067991811647665998019720701612932969102900723242659766431096832807178196116994816451110760883876198447817069533328639621381010236296407818444853506026496098511947500164651679066464338059613334634006424256641187110811790225645451988598659519527154369314266029501611732530545120521746544085589323014036120018036782863637730205990330827886240738108185473651843173992761885615281751662801748841210056481523716870364890844944683365924081601360021943889355699150714971932173228811523994829781132333702669750343004300600350299388044033406031933841052489552762181566259089275099402924720695648524663752809083130110889699434273671325054026167542068609436207151174222820916346322969285552924534523331058069222466218136192806525645086182185530348479948075660499545763752464172989772445830892138121815259943506615795243970841909729386860267121215499364710167940474920281758012359844124783096653414393899480007425415138103625167607284108738941460437244990915764975975764512543697398000287763193900378253856039436124203042006460553909485525279246720683089428749066931614357717131566178499603589103055844840952370338392505717264817716080287320504955801383909244936244093312592879377580480713863604301514870839568088625738946313287601127436044752891859943120385623767548779151005675006621277484589620549070780974569895676561210370412754517811456012365355736401926299263305973399268880955460378529664444419045910389663782268966333590317498970687344825971159974976184833619510171013171965801934645227903007713276650769505269480327122171669012841010020121091017936280649862441621262150564133059929816633212159230591918089508117036263977637017413266336669626796351296816705280234122271948994413877552046643116911871746979513836801611564505816062598859534381836853416607092706155167544883171272634118949604075294809636586744256408627253857205958446289305579316724022623925384611755769867282382248985042560142172482568273229491640575379073214973274255910792856673967948697047008517974591337385604694166833933022399472360173575630507739312860804368575408310821075037818557646010996331066272093150629727331829918873640128124514392553361750673788145471469107638199819820174007182284095293907265761920222777186614642890146098734683700162071320364944540129592343545845094617388625420836285187476311538047858680689873895804127314535767832002526740611041468615190800874913248806232673445335771114120982959040660283448129054247752399837113751683010584195513935485435479567367375172395145246973503710335625275664641895898785213782815135069452338809832220691438018558985318394806620443845053949172514734823348105666141189375251585549288637484731782125673027001543191694776307055027891877542972776077168301968499374643767962115319685193240123269768418267813184019576095330703387582469973049039435373868013620056668574120566726060060394931194864354649524429374055622032912132638260538232179843017808694888300015492988145629229915209669666846501386340223260194578537246159654858157848691813674327720674270342044033374312966666268314609997275860503472940619281465502415647187131919907747432455158361743531189765296219553340356998483976033877093667506117092663493255022253539488030303524239637943974577488826280425504881658299776645128631304084557378897711255548634142090253257455358309316907341008760762293348596234191563109003719398633661390787029495558956557814093497831684371265721547907638139368162789303501305086963213378446190079145267374448224772237672852176744488463705464966894577169850467131446938885620723214559762685846680234701301982235317938000454664255013604184308104372510068302032041036863421912566323848465029119953787353553845394776826614539877669779090470412064473161582513042871079949647037250436676381696536482682957384101121901184990274447222100184487110868367340423740534225074030678978287999262020709989302070732723638436708517103331394819735753893017639605135108566252517656322388925925595858777372951882408595088593506497907150936195006624940926860038030097265208108720659337047399113782342134481454251006301764606178800926356665382345889452403137498300280747726715971062907986014059817766410126955036674647312668694649334272807138877328965377262715795684575460631433843897244516746312540800765520384583403095068685609191268562052278946119621396358871530960414785293930035016712442322603012100389840716510943983240396956601491604491557590143553289403378132887383954427987419964427615501175393072174989909512358074386325994601982457690947337552794695953086493059671209271975101817700689574442390257238469879768303011674336024175022761433756740867112312514474068578806118869040412953501285757328459812343910953689424746041077858029145316832939585141921989579428966322170951860981345620539231475367562615656557466006553069022590158440322063653136953557559163204649502423143632378861908510122630398295199853548287852285307436104165605618505924773469611587871246138210824114677083885495438890757617549216585208244524433207486245770910644145615104437997851133770843898299971795842662402480211637722461549016425412295735599384665718664898638469007841319731421935213695593056588615974779547328435254364002767531835662115224084875849477248446242483295668457397841548818870403478183929088427326304047939000568656780064600132840505292568964743538583505403123729284730345859511864460211584076263312104829940995127506135688848236468099512677745210294523351813075398859117606523037330122784691252486945467014564887363595456881717913518506704411440656472964953787136857275512834007991119842720309127058625425525294898223286299679171787494170640996155655930132631862706248512351875259385977856118532112293579528613276770280618557252475587330524426153931521285981116277508816549103444068109562425168581605306587124492757658994560386732018210019026209564305555158956781821205294137024263035288751116872868460742717905268145948159774848573508546600338179470881133351755905902310153946670482667670127058003691192291246815929350947161614172585012062790993885139151070785328781201255542095321082619232479894635029694276412133036711001879587341022586639107312789902015722261761961528783205395539544539887987872921659600351874690118913479213621709612677471460918573479435345064910242775604552407253945293788494703824231546468390627979068589789538752527887735761927192031439376902653962297328948658923278563236664604817504775227362285434437020586562514335783977272674102022153314440863739024337595922289369300228077761680003292655015997462534437157289772084589149942694749237362386903881173848260691756063403578321058817744817788000772150961385503538640712023216718594324431959966435202188412573061109639602075925293621210644189302407314245684623272684337075250834775353348581875766302525720478077173926483336574446776023829777976851645023871906087524314615251012031622490655281117558427101622663680557907999271364780741443529714940504560005554924246181775676455478545364105535565448519242303528334301337141755125730139748989627238586189261857133801408332755068820318695488295163962570487969739281278530862027549874987356649426853819250904029412387701789734666658395252278297888808953317381860516252773470762720182087254262723860027208905420103787387930535132265983283790154391604794823427436220380344042770220878878329034111267122569369364117601229814684543553969196975134672529518583928440166113377610493229123311552015555827020806130070518253773282870553758066126075570203834966826479469651020495112945216552528531098358899185308931333576603358996220095036701141491617303303229929867342720318018845560995484273603854468565023593249038829796225078808062188678246148464026321186227538213558401345864044625741639213218041679686132356709012567714399340077495917286662200963088774574093150664066006271170165481686538033398759914547978925298447703996376919306991856403502241592866683771603896068960129047234412765201979949720728775102227208506830086060389668265041670613339780883584704443669554167568250276090214955403919031440447463480488931110584317889725517228958769498178668180967549130123572448045322667763153147732367160297036998499943124381118657004365184337347729603028425216915550965628619689168672839685315455981726878496228110688937665462917910165697422648193864620409260585008871052483219785647082761095789669989505482446767148998267151077504501314580982646892581133168962327798767978341518040550438786103760523695902752692598712241472673647537867380846428165045638905226552860901454977762295694421390687037076580388379806714844961614337009674763847610627037671822760572856277864004804271621567914052863667410464983257900692016525506147884748295472343063597637790619085704047880482511150334752866660711465285563927638881035441205947090664061836151870773805827023155609533416866852283835946976656073522343624892078536395864619786147852751814263747966671741711189138122404862669966246080825739600436313371952899814939948831544203943948341346850280087420075415903420622320308646532771677040972948090227486829088476381923891166373166794697023230818826484702800180869706243324429752657758603028988740002120163772190560711029651525820357311193336840311497202016866007406316334802592196000834995039277596706946971249402871206339720747681974764478081332326926846961118196408292056925007105769550771128208808930786766336890316609305025843189085347152604515343933746448313397909950958963300762664440128486856942618663695360051241414519654154527495895030001099009328781340485130908192135375597279382832805703541274776424090724811010014092403280759440087588737407653486413859956017914549497337829909286707883557675412521262103544697996090645683068138567157113974045081817574918862203901576882835470884192333076155114228339085911773657292856501313421939585022133447946588434077753093837944970936684459689748782528249645162030678307251784660710693034105835660888884305967427859042810977243796761479609916916217091497985890490017127856986849560595269025898921044274487132575011673546558987627627544822964504042245540911165141790274651945795408703693983385683732207732941080813760060793704104858402054201280984121214370543556659169385642066407048957425247254232635677874178421437557343488364393129642564371637406001015992352975022084705067066365317597862850438096067306221983359491436949302537594417885640069976325505991593308338620391599693722699560835035247028652552980295809186804242231933386362303875709542124580158568141260933518391605182424626870442693036074160878561882991948193956885628389191163192657649966446234998620119143967363683284765670331023152939166147373938628377064592002136642845944904396879298425970261733017684784762435750628357149839357300644374029473205237156362358486081810099160105597426675765746665734076042180970042294299894036671134321871573256477086622573829646856341316149357308105180187144837537911538584553600697095399103048817757707219043117323035066680742991176732748471117463574783366247673147052175125677953415686100721462279320014357740509041561129142285892505628025312080216029162298416135763367147560782424665745060603608528683967112391989253738652364112508475852729213212518267296418922457860769560597291044514360151316190562381627889404114305846010978292860876936346107975251912294965163352913929424103081041918611565780751801842348365306620498783679787401835850601179395935666051549639258112317019783572775890693984434497239271093466672403247266124386649349716955104489986491124653749268029815792768948073338690120021502452801888741796409926672187623963875955860191967208945121078657384194942566374601316897874275769003902767222999373332139099267200653844352873201272956024689231606106515768491080165523367997465205222701037899060883702013015423955247554363349973843635491962522833899545717639885338442572463374463086893574387387619683958903214803637815114169415497075267071554857218882672546770817901444419187002697958768023003736119320720121112540441609409520290134174393062056288914861512420858433518823023035493591617195729026451462886419765125274154152733537265578347530394144145469360317610152345075668219568774359789416322749580267842475023471169929071719694679616762161018966150836355753942527112174639604462304839269951299583545290408308427968675228359433026837199786752549004395677925180252708306865734845807951972669390545731901415960905368043903199228531816697727822291064232971091464891552725745288337037035136366139997070427962485949378522669675933632931415748539052807066974567443511581082582819648714184352947585422190341834331723276097174534814280642861695206380563400714524635575445500159188959729242238523475270581389919984027698767300504903381556958257616044466114596036514259432947385802362704175185579239082186152720309826852376229186812845644772568615699763782446605952047066496067097699429537166280583843116003883568655117253892416549604985143477832395511368839862534991827601816667831339291313497118894227604095133064718808678765576723314267750307084671441943617657763541325848444847186005350524030355492051600051913188137047882124776281836664494045209843588770327173988607096179787024840658147134069970178873248523741785622775542791415257545660129394488440608783156594653499473232378052165987529385977862485218698056924616340037859903952377155559254889521918749554967000119072489936484299372475608191683977124185064439618807026696406350837259392711772031007115059715151973555022877373768820058562786408087677059539585415374504053468848228981777323271335029868498701254040794964871309081248171708394395836084180092551007336729878589229800170949172973859148958988751522769293814095577427213996690849681632493970638028980850168546992854630819133364897829570861814547139134075477821921353484395746127029511344838483678715285144967031769518159556357872113058970556289664452383575766424043888921425884295269141830203711744408064946353788030784541850806735822367114959539195616919397580413474515628518908719504366487724100832159819797416831118997713232224781413593119269931060795851651809729388602747921900114423884864822376212827977208053119779037866496508318720739587180120178347437629838725236240391013074256592405605514062898851765717827774963053734918492324609643113530850734658928925433415891462599173793502017577776275422396435577053212690812149449484113444709883686230101155663315477294469390626902858149294255518491416483969116221009687332326500301478273391830459424669848755075929138899523540036771949633112975148145372299045933165484339353107576154701201954441697903610411504373065385416020092130890869197588496718328759030517499025912963385806844440632160300744152034784877296596604221353001593561896554781546246060954676633321232317814152468478961729364448193293888236117875152619091019926284904468991703143786018259129053358411120302200154019422066665238054732215446767646320873800655762563427242230093112066538852226699410532113889841767796750423023554528099074469068795595459221044897665777354193831047449754108120375138388125002798101219886955514890409405580762861292430844660841214427397132361046919074838469304212615909787643140976399844569760763678714940159379769008274561513001451566435162042036613747211147450964800840688460577102147807188729034784392321877256979596385326178454828165308380182511902782423175258768676522584690525556688553453664209305770818700729149614304004113247546557592997932519023221728839602362582662898307589221150009948942170980105488786267982066965747628264858799234215573827935565158431616270957647440399734974280762596819868442584184599526557162093334404695861449783465289594112653961931056783538018208945875140679160078988044636320585892654912698542511141974724195134150746103356468447713979395907691098903713657684012706521421696919363182919776645776393699322225346859809590401665417045936748717842433631121395991782597759483323055379619818588213294348175360483133136336181387120383372248251694664025033352760209939048228535082618048486757649105200034364512175979265142965960561208979826572507011532194415111587127885160667155919929564506551260298551518401222439389881348450757771672361466578691793289362062401421625692181525904338897623935621265147028477266394850829506170716414854840943320319775548503499689338551723259371941242747110220459437559649241606202535975152151769547020293367344329201166151975181786091508583451796266425977028296736442149765783254783788433402269714233319876734409644846785049346284135706623415433778201304580479204876155347683238102801878185118725752436475923461497847572465836979626684963257932580343708704587125201650987379133708565449339569599193735891386746834071866079529014811831740139879795877952737922725303339681453650893638818409971974062196811570365955514417523980027057869626319852738115375115248373279075329311085740013137105743904051683530418493520041094390724440159839909455357646394917910954831893686223096729441557464204833403426495463435906461857872257158005675876640826349289667696378316736041400662422121603267338494630256791477212953414766140196183484822015651143486112373919139188294798632731079039893870657498846540324464751055795544428992004596688640360616797616671394713171142387518291277215839499178945305416399229408895629556134348441021048585952483321114600732721984099672801749291819685948855299483982849750422487158931046053350181831056488067431703466618505657208332096248511266740234114823206065700044354699216714714248012265850754275095830744947606782425330344002957685988607444002265834884795245733512996974090779543730239950243555081205051948518337829154637429003424493514832345346515812186226652512845166074665633154563480467733792875969645176387637800116031287433208894167928061319260323705018702067861161190582703637800873559402562516200897634822600365294873282733506782711298358280259164666287901191151288592701573969665456470833460741464716575041769538647953380512559295780179794171841142174181475798566691449037631172659487556567451861185420384068301254430718375115109919445635358147296382150201025684961933669877571141938827017202034659980785111385252988906911366640179411839978911650438461486639384162902989088149995405852547162271572028858754986853324551812126109117530992665391557729317557857047806726771456406104406995275314476159654120058212201399005580142600190404949786677215867544549835257821742975246171411982471723609871641716681470517713321698970633570816300091368623995143005666632641020822351632931294451945399418712863421443024238648850303174542596151533140563413359343168009727605022152945206279599955116730936543753283470164422478672634131014986043715074103731787679090475118308256716115259884018216829994917437874680611776378626394948137368721569354462089220813254620688507532344046478957631076675662850149001803051039682530486679939953151168448643508639929142321548817017192736595485889204345626576528348532392689243410791733923020952591942250794622164049820312241069769664584767809943438287694247462770939561312961549615646436699264312888889397655611793181023185515869155496773876239699914578420515714410502356459565574730558815119724042611104522891113107456606559996443112988629916098466525125939058301405966456774662775900329877663064651480791020425151213003340074243332667970762565525406754384743608509567345099576852561870989984391332168255634822761819788925957957731890828943710415824657125484660667668829877612910355540928901132606361283944321038314455104930943241145353671792559396892602939679760834273313440512833187832977926313513094032013667558058946749515401882410795634768379516186786612481457900526439304659180627631942845453418561069287562108760907464736383568819184069676970919889841646708681868173877129951854754072987452801052536769472818738767394832384695075584387656751824361263626870645656283791319055056015354808182737223198672010472922793253223894715268979620972988783992960207795866876222746655091008453439427090221571723404184529039641955185561247504498036723692892379475827717580484047613981153413686844359538060651858040678604003185215564966229151158338712096236210431231558044130555895867673474994566020051031439172946706380705859475450533762714571667395759169513189381812819597054775099197225221386502296983939813389480553401672025737689026234846857568306440205755549503725222105780206975398940216851476065244347839855502676834897643884382798320409181567674004677937575601092263686893682461792975805742090641808012299580424675177450138339651167007129043152975783369547124211979149940303352104184247296116098326612989779415806110799238990304351488020274030595381666874911616941643642909007925683576503564129020325966342305387481884968258627980733091644716744778545399875294692838262313034771788012959646847361581595480203769784081683913406358191695299327614118441180644670861305821935559133780642819116047809202596128416842723283365368107219174738409005602476101788675696690271385071683912501515840504876240003876508719003278690004600044392980002535618986061868140684698061321512315838055221359074714322229026308309679118145983678969563927610821629534665999912101644478979990787246310224991192269467712875709379440811039255629661201618128858251446499807329054194989775806965384900818360388957917381634443455501444390468297387668728222703726984324034959720249585158516577269463230829308948607990103884179821264461797470276130996816869590734458646361145073706268421394681092349734784657161889736514639993919934302110706642710919479129611968295455844356058459473304643767175845507082009509148504615480896143369975465784970061062207524576826041617373732040044531866714511011526705450429344834607690860080637019136478327671012654145734269574722676967261389192408606224710976891263042316116225932261701748908112779140043714958198912394792783776903619765493023528186186668770030708205871743361697418693489724287291181120070127049087038524682723797624256794427635748352217267721758538263761915959226532698928151692791459754225273061364594780562480072385592109592827021281541468986681788261966103673777671645352363349857429054135603192525475177040847326776097898251994973845648186894090289473484723557090199611497302872965988794637511296010588084210934247071012957358869142145823970340413121517284619868787067654210528502132033784984914049088749732719409362246576249559151977870107322529042392009627768257099180064663669383459140958097542652746845174966920181849525255526789272138310338092333372605496148387303973728690283955521453046183284694038916914026030888455167919458662315226675210283166051476860229942317453789255469805111573007709011426248877703667372486571058397375802905587761099041595421940486313816077900166200175606079218673202989810733901467654629404091779085597922050970718812580057503716963821273336406854149467714914552967446413532161813860932969924400288717069910632473701576219106117783729671827299317048855982629793683144034629309784035664484142157258090052540671569568351456638727054256443154958565780765202493382524574373441598266979063381177683161593763561593792365767749507480326098258404876591091692217587097708932911545781018397836665469912700199027569892455230726116771335328431325644543182618884889819525339224783295922706030149991748856021865406154826761227706717594852184070870254506104369724443407949571535297102178874304162571021140502501281151038936470534085135504713907634912539695048910178955040593602604532717070574464935063815763687591870348529423576560729834810852162305006502664216375481048349764615664208443004100895152826096543670040095329771239383385882223984454530650256613549355350749832441011434017370021272925607517792998038691712193640176903444492153724577508212349227311514815686929749381164303388906025984162990135407541018687273299912086860286002777729528801980602490615633569904127222888496113761919110180354619267354631103063554558379244477136850756753915078925942426457923617635412073462447875426929189356327257936404790272763624887105702127599458264572437913104303804312037401918902371647504807427221779584851622039369058234327860648994612535813293431947892206175751719950258330753942261047554324351720143466736331694861283543748497992059534424439733571633112363935735427262769909399305853000488400547848488229437393897866409617090941403736919815673749740921057746410856666856760810791049488126802007908618245949962637310964867206631409912166971133508493992107466319413540742640173371541079021964595913501745550285825299611903283438472089725171618839556760293549205815308143118016082397880965006652484089001004138098988316374212648160901800766880655287834164687923667995290148505669614124930147586112461159441463212990930567907091216224970633628785808967298727607445621620720971573956993855112962693678638683280928262780324894470342116697341009402361702933953044943215854567928555821704947502530628076519133611977495628373133543045677431587729522914888703684502761433513378793170001754117663754891426114095896011864118638030383423722697094883340996077520085479175925172109026595296867731329479203726266002038788868057878431686786051892600285028180939852508646735395468453670738608986517438655013228079477604700315808287814219618841567490353742473660146836823671802986400139323783422217142024991018000784891578759530207926010530188888231732217016904698950174068505561788733268018382576905115946424689766890203954825625169638726049161392718300679488679807574295481531263643872598345079393097816559539364489274587580405749732118568900783152156455589634492592326953636529948164599733711242801999681659614104247347192702335907872110478475814921672905340183196830775206852988690014632037324240003894865780293635841232417700507591222304717117305956492782742389244904383013906097864526083437813242035721208166806168773642018835675976431797494964683588918153093993843530286681369353353073576550006726734029997120969128183207806741017493617693780384401510627639666396188329860453501921241969046420866554570365034847245027386692114271357203765090240970948225814477558691873778258489496162186107803470620686507198154983641810423658318721788429845301729987398064970705779134068138153209937934740780604353752451211621721810478091181778901605968473633004935265560507222118184870743710077464165590510122507871862813033184579252022736295812611062758561296258486109635917357210948545667447912470627283827153723355897442566317110725188926201463532759367119413922108650660514031882379863299237844560620461746465056182090410864948664745979567513657495749107762530394623526946150563557359211679183163526966789318482619391859737970500938932701733405877345473089767932226822644877274455481254041036047087489018126277480756493601706182794204342136731477397862828456089570062890456992833205139026575606883285051083898350946255168371257234661165654798307487871150010762894503196304018161949688700994740885628384084242313309226804744171542910462297018971746869621660971732276585408866095809463427046580518966518778928023546861293303186804906612192755067146726130805231833202407909904050800389486252333710527009628799509058615894241694671143972846858076747236487957442312990889174704805354679433717497841475545760546556932875242620367476343519472491582227047324107383079734218733781259265009113612926793700963465054798617091314586668975496787330622943891335634885475282760889661591283069043114483723971152791762704327307688487952146376490105718262064364220144492452816657287508838670936171214939471408637599304605350251586911342413503388708390741393557448074596473970589491245217714068877647513698852393854146870932734677947925290838865569096573823402440671668522835648999963257783988377639070695600125146229196377713420580478693601598215676696159477309852056135972161034380126820561426236707981807560567737056541425115049812132166745866063226172179491408922173238809111348964119198858704060457682499760322102692959374784450223639148388412968921176593522433786380386526476590920623624046474039453018048052191582300638344344605469695727170841520957592474885488890911821649177502835803677822953863838038843595350035070645026804947236269783136440119668852072963701167456482208719903169128658405434957594169648699000317587940227415446140607315595613473220084982303883663538192932153323261032859206188657258713503175914010588552050876312081422954087131899245010676613853560270146777973194112716027798212019521446123415943744330278851711883665299426210029965881831259700809561896275565772347055897320418884659610631799057384691622201968835577752209398004630326009586366143601855760429876681244705854223818458240009063823888659871297098163324433329535301119429393815079219085035050052164911549168225955280086833881326195942220125241237082861091765478077552698302655410612703398790703285038248345715604715623388431063930293520815232388766396761500756278009183454754474619246762589088844193617761823948575338686064033327077604554003590654842838546489568911661732378306143528749042352532573091908274068111778705979755317008741636962799574853925088105628369970850738356080632411457090418413649832131330122785578726234202222082063640122277324530010856995346477874547841626227178701458609250946756315893849440194842768890996145324393026664117931263505439390093345462388701321297870429867887626123409463214545387511715767298564731093004591103047570460913893147329882429784954185338982396129658920253487823915346256487872194325747749488020950709008073198450180949847772868855637676258451196503678959755513558840475380513565907114156273400948759358439585470940359235792433071383745829180711543680224993710328070937034520333723082985196758942337511823927453601249452059592255104454420378366284765124068967432524263545052083723739167384345952143857992948915280964173678339335898172520437121418017986544677738097567977902322827870252122334353181883036572834825750094561659823293730274605965696977122414181349418539602019462009679688278762465091094632817541998938281127004239146310445269364489331956980828576312979025410606203817671904489376146290997370539338041454868730270067021053002986390701411189951134449663383951923428297273514990844683376293323253819553643112468874267776777340736640434000118700246383900044596979607016661784841487420498439517254222718693670825521047528460550910075409782384536160916122366551421174753968377524833879412724451203678139646984655438860405994412123327789950720587047389319465982851821421021742067898888025062603916609573725795355403728481611316861613969903127786788901150168681584634785535502906701013422624473120219286415380362898798899176057696387927091025888242117721181947102845177569464021601613780366110360148399021734389546692761461030164382676652568303724584478203586826041205408310225361312852242385101501772583019511338841876341346365383530647903158364384826725442678891989956372119139449176290195506270594585773951775700761981941265594055921963840743679965103504611997708946894864023671847269366192513461930533155094212664484476124673145733684437536072327963983145390897205540590579941867351522314010316875248580831677627592338096998910672716604335642752463830667841156933197318653364571938713038484920008035186950004059496897995589117403551923045707528155412895668140559310612530811860778939568131429123528433823758782782085120467954489422918868379688673661399625733219018346969553234281237157862919797323160461352087577779220915051710499646760573758591275523826374084359142297237394569214297869722240310963524588773644407252285352788053185113674735940324752566176224127910971748578200340684529101815056292698206758985212728119623774102048918540442637196445290269674849346440546967642752146149873095661861674181868031951373501197350101378501141487887784622603295234961762205450663944311834094230177841688594326148587975066024094824291386578045853530031450158146523511101536535576883318799400562167785765740349057429710826998392200563827608115871712607195507296143499947082660627086211196738048143176242189500991901489228986174106202914755120265867504310908505695186969895131872263493713744426025507669114473719423339224689824434177056585279431849396996629809650722190846723426656810346667083796808909054958418364663931621978104182984492173750483865056260632141816529179904526165511385632839460681961937510096550637585357566129575429493728597912784409444961947890672893263210716224157467895493470523615896999066292919726731082147492257883556796301025057897701810882939313460280236522481945778376603459867698680818838281333849235372672332699998277056805231314483288822014961358247123416823861991369801410862193476440150132151923595213013307373952205571392602748516945843630635053545511738167415841981634370344886095243863152370301894994861622868717089881623758022271080385000895320738137735253385407339097056359682180599995781436703079451985562688623308951776353439349222491843099080259680628214251466973360349534402318172585961945269785822382839117489440377672433516780583571405254924335080484443982249292945034998055792197182703178557090858389293860176985052267479378328040744114766772580316447559272175846302080099973606666544909080552323765589213591297435974848110816484820891325872178570152433537451626107665399793157012428630035440504331750717043461843008693774702656680596008335893762845890340044330045316284158267313887027321196998665206882148968308958995946160373414150813854103743014979919660026071415492725448953810679744858476542141416930829055416620872325613669577660056148596720481349691511532985773852683258820684082618979519406746393656682694510251629983525340413369610083529184758733278316500064711958673384907581283275979104782718436664581124374747419260463251172154823160988934571801760420786309515548912515996668485460215978162002298543757010813637080360015270001213217463752882343254067945270336398513903133319211090400218730179699046326562188313188985071378089961029693625476584886016489626037001816661300551864514664298221182402586262874561893332518104227562565122175905531017142889172864556096512146009396632070821778115171407311797233920542458911333420112142063578189008040313779040113596663441436265940458589740162421577610986212440053317318744633998141017583110286484321642672101516404593943860049643510106906959895687241311631344808863904798406741147299116612027136642475227140340155707757494251330768013201437940450948903239141375573982521730707981109205875766949285632938014082951511103739125229452504284841856362800602322368741585239244921632805714222940952844417941319642018967799978108634223357959262530860233476116467938849453708500707106117325876530532148428763196843434049746493649677443936221429715760857314971310767266836173736136461482152533395981324520984068862467427790326844530629355626770074340088324698679101410621745743149276508837637996386510463814142905615598451484113572088989833825743988513266665239329986836964543099571843726120078864233182302940354721940566256185250636903484040740296096063577645785528095586212955380498944677112665170327108899880399275974108093175164031429632400279197826885079491279094824300699973529148303594440068603785879038843206873501444494453090620531266212461684062963190765552555618279945354887852167703622408442351990308828335273938709712440576666853492711514566058184732647737867801491995464556253127788558003911749132521293256499979670586880161291944822966051502464069701644268694258523984655814460961905943383514317609942954044165985181810717203740346338179869055242297126036559105497738869905267233817488753325960962053634831434671679016846184384280109048554662415087772588351464809962647787511198464206048337388989495309272820658100335372014916651093490242381669484870962362001420496426124486882296156381415382845851786152747541162253518016951548211650957551181512142323514938850838846990811163270931591794959365885374979064059348739576887285644842986658135516871339784438277074215005464059569775082260558325916531337073645559558440956967031843176715373669091484876564738445030419746940064319533344354927065497879240514094835649829301128658404973639624973827314454581726163646921379549721525882930037965078430921407088886719619801314901558569321195327917753256081086188066041088557771362454221023869429857730834032255762573960010328325854908630975714423992070329608023050552680288264068579882993167621619199831983984347655006499588415058750671888561097338165970568687433426412312963674776474572450958723516803475643647033966047069305033487576678597450063868795646215950892146193275087815262778983385304694706068171361917372049767604366356857034154749502640727162354167052309485795680068241646190648726265146673505783845732067532560961310762164204726098302766540572629305433638055617540030016384700364349869019034853116273158907119356594152361462058897188656651353098214508333565639014926656609010155857223439651609765583213820857521117071930794960901474037085111330877028763324372445910058432185917509550565217770230799529849354760732034377671174606967430663771623790484873084555146609598807342875263826574178321887163351079849211437373283605217882630248798306636879399021103981802746558118419518268617762902388423124859580074686632757655302332703396624778162667640414949826187106451473293620829568998206196130506310576789475559415764058978977535661195557688311087266853998434630890226354989401744392804809043901913893770392850529921480303242088695568337057656330924942958013683514730269638784338950163531911738818782186104043328188908775277299962220424560796191206592659065887761406459095280751368522853394287272407246457329414637183738602882226021769165767390930816020997480346264896780833217028078421628824097201643121013881374918000472848876875464940574792249846187170646562049057164829328260643987951180400627938218521639249168344248533666933165213108663784279978735389463063894063048792569236457785768965179759028320178088639229514005868446428865010634787369352522604267891255423096683082803759702831303857713137544241845490002700424957898775097336677274527722981140986987776958656906121468979827975823267641799621886434328604129778347013149459067796093202922702593829312729138515892575717353677108159883878791772891165128669204399214888448183270049494027122161661453955482691034061251012939885335250398697590071007914619903089279914834570242990382822044887855624582026324476001116415490608180142812709135184285546151572336947290593084768965921199244968494350380382076072780063189536941164432425431553531285313393539995903894768716449938499430408948858984185433431644119599012911253091365246537014205520342822930737593938881327538246411292947089110996336709705625808706891040317755779543643514555926959253133135619279275587723195022670478664392771328374167232535599395927811366566390209722602992572170270029187411108733762664923419830133912573989566693010260357247479098871234752310583306166080245522101359769653144817994083046349054105129596322569481220152852980406436417112497745629438907328854759993242634104753776256152369911383418997447044412722321750957564624341478561653942901930992617883736069019150667684518820514471217120112836450829876721978124658848032054260418671113827329229151960440944413353905850980892164548621913796039419193691240704901742800836915447884012310876496190580556338446257523162439654119217223999428147604507929729880823611852315559849629968437033628349301944381876250876013521771008865200913156977403081041958175044260156017370910160202205636950301112185120640629325090987417817205019671617269514660348551074400056606242719459876172872898919349117252847763116239230519475455248195141730591071258898740987804585489419225760739755071534493990066349822811108344259057460956978471620555974000292500465086688291860390129708573479635489890330145814402424194862999625926135478408211702019916403817928189691160850873711407405439714845426874336773297761119744666407836812614797928488219865262333555999581883711750465487807956002079573956329656957598963399224970827943214852726747725231600061398917396926532420950606399152156726731682096031893315135798351900073165565716129852966330120278307631942103021943455971886949895195661489465745541360422232293865173573041217786799313895598760819408186697502222032788034750313964346193704749903579974227245783629870294093995682056812499080938385731980165887909260393048578928038473823291466473629107834034755668238759987124055505232563980923968419663137997769261203055157568479154779826693075245260315610941364464364178193716593163200724726118230431129397596867147706607280920005618620826159119031238137310076304755219199128833090764235717806962440200650865855405864618082112499041735439072277375725840828454426165571380575524492583078798366861891715852945577845819397093380173408866922162756266209211303613675696060784856387717036760724391899225070641140250840526626749903171712822682521388834397887810924058799167969441884971705051214232360629323171914819014108638928813571947445848595784355403215333416536292758337373077815995191138427702942168976677527841217160736583439008144970388614294476696094038661482689059417328832861196286062440529251412882497857507701402862220360573028706619822847636455740161403607193058806143335185549583731993923907381914743290015493038063231117818834019038286594261219237145644957739842475863267015635615102247546198727075561749689005291138885962683427328709688839551562169856766772202590474527225063504774591686830635731671092813514214386498175284761376441356939871446343425551518394977508108616939514658828950769800005696276576419597749318347516170992574804995862183891702826207966877926018465648303228118512650604562158221052279707230375306908461720451225537606183422879035662285493910371955771561283576909519327805661495951399263280318338773483570354397624964687342749039603965815746601361498629450493580720701421804610019839571594088500475070651190915012481660777643485045447878528002638999391204115154236707327915914921831404221976367466910278442143918595427812235702500540431924642012314938252670084559142858710334524442716719580792570977861133860063777370427982894263111546350766536881308090578304399300832992376285897029894039584175676928967922649719951377788360962732406450842508519205811196473818615366915880728853773397786130477798150157204420143414752898884226544092475107869084322982455547646427043321967053490993360777829303126752197712149342555379643825237206849366458951512914318709710442598597001890007660687764155521711883651753614807760001961031736527478492190566319088595547592973228293300501139937901030409256228218757463831518088201704729513012704912458504464551406640159063568729439403111552785926530561451822640070826165528870357059325714463554890727740082184484025300657215481264623323223097999598193118345293676100320969113399099369278519906199355573873968272861258074373228290905324686490720790265142383611022804252389803751122213444350477753164991477784730516806353421860155738507591271934444124641557033444865265368611168800536114890263290272969384919569008615039956000139185123223033456808945516612074341087976158883495006499648228144013031551526932287493064842306812830967994683587542536263536613453499182042062785714683189194445635657283422548237089123773215076215433819015538225481719310875438918453917436564556196835213328283199223427639992883234540951668334207193030100121466599642561708040865992150917607807409320217007600910284019060838268206510851092399120939547302210252367736623230791929199848684321403063289984403894235215307371126012297608997080154155267981621164697555908665620831777861655048664721794678566712835694750892037887122321121043291000651568312438501995291428014990989179955550245601745991015123615172685419186306085563091314584349599572666829548698969688507272957976055711959317719941512106641157233254843843050451782047625625556829712832685268884531859928663597404475901517321657000631402329416585727242601354086620118652604029929452880410210852437493953283160731912916145711059039184875531301343754444061051860965484132410782257290680544198992800876397849275682495101605015570654248696278836269011548354511457066853219111674597890180736030072556301625584237736413881776380371272940597023551338008404216721399103503971054594155604799260370988945188392191206727104664865090771463174893392781495292037981172647472256033726685003745089837418827400995814675554437567166040409267199876275836540844826430143690609279493433711427739643118782479497687771602627838511554366882539248862694900877611166965037422074140305397813380293166001651593822093363641112644043514508646572870045053040796516254953744127828473663832093397936928605758397467657244957284622673784351310512973575570839860522195409690317882500882662275164686032422658820542707390838189036145790638343088322584143593524678806467715404321855407173949682548319561979689824550101462648193844025416334610826202189581715636254460314682712371713356216856935859672381421265651066214396658884428299862619842745667463105808740839397740232369139199802960556057281035616001739845048846588607671182778252137765328748291536587573177364405394462079830054251457673040077464902211904699065914799394960787162183672611682190606839183534732441499596984678384749559604077233937639387187449427817038080855009805914959915596029413931643034875309609739282954984238194909628098436358308701298251621796103747325253082164644280146952088925961434120391291827816257347734793177404105674983337305946965698638570543711707242576390861185226035776246277706398096262926091511853572968536899448994837832318452347834277581592786685189706732906713005719496122556827562366289312821525894331862524572675799068979320320006525206823561754748628281535612740304968988110455918200838909225403536353653621136541647330479784541188122351290131908473071225944173097071237125992343634250977249472707502995207258979808461848018756543462810730790264955698068030745219933360836149043427670378039129550719075843754168815423113774574991348483484790315875146235488877329503833317265068453003116867902587318717515229852635377393509156576904408413519329006616912290657434088428111209323800698109396617461213771252574937577631768526830020948566028386267480440202631959385483067381319359454255489833666090234610359529249027057513191260272807794422160160492908073940940512616280703768631376432286379134378368244711373499649737405199144983235014032763303390312414182908712178320487311211683311022752371929932002853587782608774230090403444763757129626030202578501927678655416050645829062704003783392728741277734977532254090530020640027358191646420830352862665326006795809559702679039365950937091223833625381354917825158290917979855031842456061642993413667473605953429502708905366018701535872076882731391041504742653514043208459040945181675460827975718124365865722474541012229718703567746670128738767747616431529371953532602905058868216602113071390034660471524233876252297967712897214782900573650845466592268816266922251362836609396619193580014840747954231588013221886163260715132369532081655047547988049013446780971258489243389984661892542944566394299384628521321169435407231890022039301057432303951106093197831244996686931552872037893423221488193986128445707455764981286290295538257047946441528504787354765850710155199192465193276966812976017543638378730031504706659235542410937383236853067880224508291995898531591290922938059403756775848857291541198443835424082928605955823514775564463374652362242120816141208274175828029870707601805218130375772587866565630851487286357173589950954325908848118683483615894633150413920431866666671034565427503711171337638992640128328398074861238741675992278374446688029661381880051261451503888893376018058304580719631852901570688425784047900600997237162167110105807549553978512448613982312952166570940800939970549963795069186702057617227267366292770932803234735159543707294652155657065711301557598185629677838247858207455541064885448563575732510181767202976920687206622544908853104140650506333093089808406410670456135358524995589933529695139485736634128237373852214404160669595156478394801159986951297464852130039060944173085792803769730218109422080671421860466518781080702981616828431779387232856439947832455107466805957559300471414822495825866865203720294054346162527438670844564444377054583119335884998472018273426791668543157687031643466676254904038319442706591952440859487716596049255545274712895972246790319518999912275329084157492212879999760777237287633970203562132686138497193513746382298918375822954116704207369485115664464434480354371956912412158889683037419468283766503789274970080128202657543624998339303238372327708617964494802752181234540729902545638317129298652420454445446801389012654402687858292465385981560012718994812179291788033866422185576070013304593266077723533410074313293493365669972286444543979168790121881965964487596557149158243138717456876223863001408006451522486465442438582240216335909446325950255515341335246658067938114993449956079784812275202899699401881637619994650164459156833926273647709246014589811708034855684948399953378283131468457097400925681826831490260602068971879884089567028948359361610069676691442004299683629369792887098105109356727063897810135727716448420620999832425001085629273114911703404906490184572640447936644020813765827692090008985623194962747519071220679953541117548400387561074729398377058257246979068998819050474355517240297813430350268340519495702189218105607947061999174772230032104385441580914620602937375949284381738174782365826622664367712443159323697924636873352292177978490856836570152825117783058636695289341116165738810493423536013077589977029793030425882949213397711024016280397176267870717113742263125064245051135357877306161149720055848630189172253054888431183159653352367447910716018431226939145626406215214650729475977181403656920137577362481840903887551173667939267714221172378058055740419612971295397236060975093414443969919987644614457323842958892004890865113126294788257943801406482973048412272242377012891352115375285696576331726026746565668161528699099160034052610337960904382959429163178397828479423961584182619371202906088530827129013328195097170309896570995039114279131775005707016481941541111086256879717282714643874325945173417318999917653660474599203509968020460872441641481973429696369110427806049424421889295835797648761978558410933282748339315477751793026945879842930984308128660158818363389125255813688977622372768021035781941374963821107541650616421774673584120023850460214030932820176704192947893598492604901333604158043395374758579938190812338612913783764437220436142958568620596459851678836980914022785332017584698228781722321698409556887876281278678917388058601378591271860890234103731782873492714035755823556617995597529220406343984403271777944700894457497302249665847403355263715958282802229211464307854451471321876576929238763076060044393783506691968994485518119177125840116218544052610081341385216402970133017480049762895505777805395103948444268137352689853441456675109092748967415490421466649711936036060006666818397083297762876014216944877176223522141032457212999462677055517610115954546260121259798964341848348977465125456187396589439197194916412183436409916984016125037123603210735675297285356207662618012217533558004578672525823364186542568371520248849781251586325650055322126568911088804353174601395891869814611978008013614640595061313034079369087411048393319095788533388415244792142532166120001590955735417297337325904805230439705063100671262648332578164895225847447613267682047048126544914580951331876737471953297662366167516254302802284588513078463896075306916328724258888948834257261190444606046486278675521730762568725525457482093729388196420069621492640098297943650719366540011973209700627226200560611772058229422853906036297972255380223338677199578531664488683090945143050278351708654289768032255574947685728042306027661695690048605426569609228298300726670693467329853720117001178820600186737533029118557165818859564921340947112830989048444424432648762722826462417268692612291510811611284753693623118879109617843527398839665098475167111945743347859780819004663006269046743366175563465617855640235705176058841492205820326006528752872227584364732316488523797386433527160111680644734111509525634790636277855632113250923739094274366564876815245776247589377464855648440370049002526024440221525900775198099769904195242630531009185354256809679612197879618360274860521829382665651251147246408529218537085855055590900414129986606243453568501282078009372660677419123484462329653388523696831349194642830800969603522449476116146368063470217036808630779027540450060221428310251839998943351769856000032058063130906525616638189703318518074851382410575624245132576500565244081929944894496276293114548957051880700318797085604137575998715456586827360600917982549857579502261325356236640493455768542820572934928839403922769510011497572303514466320148130415979694095489757769947241099675871008485568135812253024605605319950545335494019820310699509896427337034003735929313558948880430708859755426239351809367406060326430775211681749004230541615579066960013112261244940988093191179981529344273601870808539140596891443929439845006072249389189672351728664690635803153762648151659624169159606705665081089217155172035870062152638729946220561632134631369183913944156996083789521370029338682992836561589230908905062511016360372149444182486940021682518188085202848322102455479659893196057549174496511110737819594624469277591013619787932913333891438804912804017652904060905917359229318040771114672693378749974447916195827021474252760276513751728968335149424452228921022222680559026720165343243903288964234027058314986082056038719988020149786075415823757145560493869614776240817084288494757212683100319336537122286357953582732331027305430613465760430028419709462176045243742722772197054565795988837483323176085503946698693238954046059069957098145715038739836558361627607771762476748565498773696305356253947264458450025971322834609370350695372684151461158948115773378063509483319413770926327746628183714794637892120705909892884846368945721283331272101667668804330911678761171401636090565529115422404317382849453090213469364957814197126536121825398728249376227643340918969467090641342276660659030665241987072152541027889461300822104559708202180677121710075665835323016206787548735131577286861940443134935095160684584267752594699251551696971380420358809249876003687552563443810525767246120889650558014541096476069062819709761753579291407336588317918636838563843594147192459866752413353550646114959001227446732576095319702060593139242230502838036110655767695648199042876621102707868028215163689728597311485880279773307551668236306431652477046385036055753266669974835765545082146909854802801768977029936525746811297426511543946712556276945926540772422717689779797869709804360624752088337677397466319986734037754093626309944606716702717615884780311164629234039788107002040105655801588919740021749159857091794227856785084897186166260402193202388087124966923405087780281390566248640336570059713722879182543386784738684699244826303190374398071025031455596028936447215712906103955630140504747679986073204565711358047654075918629900922699150876111528187458588677713301529074364880154950170178574518336019036540685106157477574584868247372598159944340519881370069941790960641805253497347194669775891796531223482613786504570293641622663467550761721108424288763896604741631399650981613567999082664010656132061375896469690666837761179828413910934243240424605889102961744587363183581237379720567597571114791732619996513388273379615178418316492967894389407482818118154178416749115539245475904798661087842701450421962679120666893814113867104057038716140490370486491292797439353422684510646985340321043833382210360870709697450526619090760520961437274599856744668772360908602887553414692142115099769130448323287343865217837368941856772884998284085153562640902047993957124111518392838658103654758643471517926006844906995663179923898193292221812900303954967678739874842565418476663163818539660146334386152396311462056935491380418992367085716929292504037405338431793013496360864834123455672669260838062884658830282411996153949515592733596219120978293380675002542325756928785814201214689769026215615876534820634348260549712448439362520260443816361244974923249951441599158956399759132593584970184318196746331361115540691033379607801457301291423488466396858902001425202156734775541731664162051355523905808898968183734258192087169807244923743924173825473647343853206738351700884668273947891812772840530954487078133266779988540020760099349765309682310383699765877728091231170324107554689869188620999402873280371738154802153066856237661422660288733432172215662800112579413682588639224547154315585630652132526866220756387588390191717036299031696530810118392665705829951157274778168952013246762155813347546220761218441654067433010558447188266503677291102892905709125675935810316371205292250158721184865562212639473700795803353218813494122774843976355294822610955743357402390663367250697441591089484700983813610874488633514713112552841337620405305190904317589410598989207072812782147046153549575379498100361986310464445885198670574752365667516816101903480789962457242547285796918513722689680188854258601506215024473358553895073059510916326305772557194692725647438878095099355303133407461382169890927802043241284290612186957576325520528056393406297674840963987168751186452525896573247241165169735543690378241444539152835540000020138805494703394605085949177398692268497571851908770061911180191758565323937994882868150191789171139323480536265494187933227307453966815089831709285924362385682826872497632653166768417590414673078013260972454010890790923638828340192303217872403568880853085690306785969090996378036469498478893312597278589328431115201596924669735576428750358372229104568519334689797163609278229286383124596548973740809172756402297361917433971701435393378117033359892011012128892140160807167619832526127716690003519950946805702530964878454308716733520587710532408624797314426971944122245930814837395764189845680614048596112161109876687988207519469650108685645171103074736331699793058759367356667308513266098553346223339403175223075118132629603138952737173355710821056766589149813926390578296278190821060348382361940273760090783115130104643460743582398423672777590977121581814969399592017684677289537514620039638057230242211697460702550755453101178647405382402067040732319552707012815497355335893896492541972537847376656545836032254423004325744470143460507524843173954924248939990623292991960139687398996454221611502072410729990332967610972475091495838191468626963714217201839275448690041457216682893326394101054321987648244459683000790836158836149381739886550668121348621492475224911109428534415231690639907367688393837557788604082947058115911504270620222288212584970765043208543455049751802046287250796202274862588046153659939080158534686715978277396381923810349958641438189073837519223596739817505473241023244407240372345418299796128827392829755604675190175690671466192278231502939073849530797450748046484968040779258103688618423093652967169208338441713011035026784960480198853387345580026307614933612624024837463383110940748584986505501423700593625986828912090027657052466350070919560230322113542562097302639898385924334512699181380449172379041278397057021883282115800159620375451514651933565045996475108445977572461586271225000473007667364018502128791251420755570012937686034000683959497873676595904458936162948645794717149668566072443647735533468630459004815429069660037971786714342305149845833532579946475514017957614770149610287047969133323831064094999633837193777783626162443307611713007475985040732004023866608754800959742580648594496659809868609873945603530007390284002879775517393671530594659870197053357592063306445762533154623963081397007054881791040753638538014195258482785575154318094392064729400570960107260804283653060988574570166804144421467123090851310190616417407459834710375259003229580205230912784485627696104593432883062799865255470289673925477597823848595724935792822291360229857843012807157077628265602975452504196995584107197228256250301355533783812153166211542655991078767231064615028596154549287595574484212604110076161212352827287010142806129963767245297381916076289944436673534793335798565895305277685364259181346204780871280625098800317351261036018941733810268572922444148140379709330149706129002978037979273275516719065787892103500684238742224999130149727485134173824839238373114984128695510774400883947262340476507411772227021278738012727289284888646565941736316623328415263721536392952773364353663933456724927939503675131901193414813369736920062455971309963276974293284555923827986700113052002673808723700160947093084553719090430034840589725333311716632119025032616110429586821146218484601478996589994204482387663364815000384987103373704794249144178700311679066992002338942624477265432908547756375916247854873575808793370319025487401652774920252588728318127843635581685605947516011893676802247306518392258851327610800594664540949381195763991246467467945152614232549949347808734047257199477093814347558920598324052889910677791349969506148640145044749636603825231910301337516356197249850618495620378266649319051633487481189936713779654496312900516504589163638313294408405924809574044849840299651256131612728788853650624187598439224056931748954262643590966308439880120636166171784473021834924248439876741702756993177403094849828579240962119629884604492227364306143879326136307680386732391432633014063247112906089123406802958485811272010721020041522811313474313404478978117292233649066304848969968038340715940835072216880227210889003246025345427967085890607344148344545042706852844462726316617462902586802834186557122550147528939524829495946116370875332179467714455474530399734966983832636569774827532916296770397490542666116548384351887391373706441381189956215027309662520273751534674128884251724632934113183603002068453945724006682979675746145362311423371229438769655161811762956329605975131935773083772716953723408982800713198650740154262634352033349882373989980708676891076186515243370613142758228808758734915734367777930306455146255556971307071678235437079157320744821227734522926368530306013535440145723750818729508371991439156487677311239925669661126102189610962741597110095619733549579119615767871481907313467177406836235200343727734576614248443927747355518771872500937734882501408409138661304896436427109807014006404677271160443188896212121851709519742589710857325743399308346169631350358400666647724841691004272309571521374172625880701728933260077768330150793767316279640571025012237158626881504456603586243179454308527259455417672943980042645235168144313480848873050659189839606194359984676103939370327242374485196561130463841495612804405181356147471804626311800903567215920645159218756698485966666107878198052355852957742160258327414654134241995299462943975379801348844443513707464800024556531479925419551530401266642708141115035092025196971502185187519106280186573020375209242649726588222736919772854184548380401649391733591574028249516906266000469438621259130002709475167008364711440036958299734021378811100214488875028033506815562717419657842754721763055810297845934140235804077736543075005445621893779545520645860396725490618019285306196315105984145825438247727891550596067267318747828938405226100285161334804212508087208441785020385477229830084864369816533099379914464886457542204038105818427080161743898487811707793990295392002407835997811918313849528885177343796767047167584164148595011521291562538007316894942007206365457951982628069189558917832257017516254325616576985142484554543262571210044100633841569454149148318733553343982765097716278046548386415174481074640503075300366304044422219302344791412023001496328893492124465972827816609839008963110617453523251886316390624632919637135685479943342989141998250508099727752512171603890265471485826262853791387230052693490864576952026396580671558416977064073630905505615409904608577822522488491035023442620457039490241995201587988943611464704457176759531675419001509332105950144593361010435495354921740725235663711527043648731673511919861483001082060127587645789013881577256893086765649076175204742455822498695673682598325264871337882737437321461084382334904012293296168086866916296215489611163028037495139524992120721072776033867147423178368082741770586149562671221785949780807300377671821397865464379681392381801550324379197393571141391547862303993547375747410291488444705648617613967778747003768255547975429186806727893037674042323834342797016358522835661081721830902726911247187752775213544160852733391080781417251025924795066869525965245576867376471818119894253918623239212163916034374248451285998452218748700161802747555249855239451064748589919137857148532458939784998771064892426742334797984047402173168754527261375560853022566810762531224343660031015521447891992944509589836034077032284631585664780344963757792017852584946865627288860653724675744964069358353919023131357454632427152898768563923762102517083861992182358406332937179833997461643961899912425919657830678260085264241855817280212107286638293239533972314824484629369874288883160941225687840383730429769845819373155578231275495921711654646463392756601506114777703398377279197939427691354576497052492938804215354470292181746088058058603761724488544483699474155256512247127603581242709316508969836225643194158454287181982148618232217684691649861377731474319187564565204604959978053257276772153408321477684434519278518839852117173622683997388542375430013277213574985432385643821860480049536050415836401244293011142958027721429788709648231650869586089835521183163536444658226176457441952655495204617015496896800469751658122726995377479482822681485401520661351583651832271707825121039909503094393231601494069262423810159020521211000010883639560546619538715813029748492437924743194336925491736310028705467090765127039178662272468321086523736823793988524495355543255826237666311208612535859503095789810174901205437567131973772184377384029974506670314443619964961141981124109272129556382153510974641307528591559066913143939779158316679826709349164525811150866613196146589182528770078588095045530891263973987265557550079573115527827163667502746842719696086010817172368091086172469894971597245808611371538086366442231650137346512201253060666850126335997091878474639173931428717095186871358948425738530588633051230857253159768033774680649120846720750410903395344279112131259588216162851748216375783194594102567873565581676908068124474507999873793760354637188217623214856621744861230712655999838693533809347731880072938187206050482973278995574496283232013243889982768494954974419334494056175086655448958615329361512502805362414998032888393599125897913622347713454683449245310537725152551111748682809273205403595620063268031763822287337264315321336032752259432673666022213259869727434459595617302246219729763887500365187444560521332578403990522362907754775823515268471246330218714717945751778134624889781598134973228504619419059400413960279616286822981115681360131820149922509007739448302823459302087545372174574829521876540276511280545081431410650616493322836747546142266090310528843028891262033479353803218860676007722045878641966465716326816268274101968734140240753113173588141262923971004228332825483417483193940845228796606078136856901993222263514239042366661187055329243882558054750405972372306177483321282862640025391733161804214300534133240000544639007003201579841093362993594255201734481420215204065420176126167992874252599558984254081837713847078321530952566252198108362356843214234737903704552692968223186401527915534443448916848106536075806708455612262958750792661017984075470624460356431257471172656808395320565834463557378904382835679878682139070128363622760884696094860595036889864777604145137903680550368083497711068470874038414102032964074034684876577783839198535290501194030788035081343917908136842590514330605188399770162454983667412487874886518455525526303426298178606355109264705686313634710316910876769245736657861817235313224815090289490148069434766518688741686669400192633749629345639040687127569711356981486764019684494444793139257384448350013300910665842246573936527058584305230578372595476684314195452140389639011509967705202159736205589849131489948421299413284938201122341535872772162844088330495688884158575437867413145704017105860768997934358227893929917922244017832257229237923655954319313725497209419874058327253438542135816450246192954637395398687541921619961647533429961389738893108208136269473318952572128357048223898063334139737345824456696594784832970441980023866166421008336849962462065638373474645102897751608431620190775123207109777738399328049603649422060122309235239761558347633533424644503929099553927743776819635248124964972387479642175796626242829577018387369787993894372668234071713543715761387209612663587304264901312052410011730437516513337950423996420542359444654525822180169245344054164338599248134239064811059409487940520469329413531629490053734876445411115023049635292757287197749400452256858707401573853788351805263481330615816865668813795945923486449696878063163686312642381254049988351700399344644742129773627146990970274023239668165788838631026834005373651568363016235597325224853357026633990044597577271275073787575068659458934527895594987364693294632012183960118758591418832850593555736940172949234284553804129274041206684763598862589790577888964989814615995878330263979900584855029794292700341077564593296475889921083837194477126574858283158768711185283814809405324289108966362023185504590625914808772826124823080504124534882757470115606786103486979935508758715193397299829400261161938581166131765836855725030696904945560722250499547866287647679864621529430805228211298437916090177373559460427628117977083020188135318867250813140796415576804320713323334022751576749559554845515041361072471244629593098197155684169853510405279042187227770441245378806057639812582817552496688519171990459571753029301259898265066707565784196305307216339276806387818055964983531349582514689999304227729653393929705549370416369143319915100472236320555470189603649708602035556954528206617439920375287613037940381661562258502573910768089999871180297179993462053706559191072382793406265372339295824098262347774096408424912802423377569206364330535167786363050584441794917597273131361459668903698659307420819811295032827144785599671840577974350377173285273619327778839358399885937918711872348763273410691428460763321167393749957283205638448321053936166639139451200366088449796111117754450986842771411480721788861800645394527854938698158939162414251479402207606307333175878109404372169393651036240636264442203297212251042080070665982827856830255694850863845101101770182341433078119576884651655330075874062768647191426000261132323309461219199658464415429501804785481987552215097603755196121942625866717116610100241267227910627384253268516954891446738806403639113709943580153918319882664030684912567519382246307399474117534183988920982664821649830076759348307608886926359989091465019030478204585597157004974674857503297623473206698640814252848815056376363252991177953661735427706050414097860059487767200664441477582421429336677623643289086473425123194613774746351218022165698411382824785385291477800290018410277533532966779250115828557459119310874300304463322115615666663890553390498128550309110674881410131938087047378402354692423620004212904830531845621658507689528899802053498641229438353926099814949028566258766657060725262843333033844357373655726440852417025548759587531122926399210184820932110399745868438334250301549073465465194692491841123747913388270450606243425641987815666667338780444244431874037171864929622431730840118115133255579009123825425757304587572509918593246943706097654347952220386765350664225405808958004533069822441116768282705188457149176803688620745629943696287609208186616283464221414709196339985495274477168933324796772229709460295676502492489517630132486505125245473989548047464388391515210361287573771226964946040021958738030246563965251510677864104911279171109921514723728408286650136914890161820385288451841708859227573105948758616064556531506766819171227237996108829362178327792530081062712835991762341335656002979111303817021639269443730829297435807509628515493614703305588627616602565233730500427663135121647929145972446190139268999344078178890940840734140559993558907702671498880197695909575542656555102051274179346301500652409035470170248412712852233763115650496086112334249874332545372718736071416243885159576110168242143941446359411030816703764787760259867308918565626513495124153546341544271973065612728483471788719380158252652710338243981258604520992426626197365094815835475610489253544331987510386819239135989970460204210091626111612125052740394391647687126780461406663401818290927945525352073969939549946095299109934585299671044554264946217167829954591429528851414451609109187996430335445804260944311384169659619697689864437229388722924808005657171458846071662045486643731578549528477364313289386157158864716108815316708590860126772593779624574005916649644426850150649684849408439356140831535578144995954538661043143227342090832404965035326080807796495902530312125719362671806918885034780585282554514099103785219581269263439607087937133822376514179877090279236433437520917805959899579062406478732304632314875599471375218361094114841578966965592344543943801674670771862798170455303669691727652971405216057521912457748764222416356944898097873097874216744016176292787345194264703581798429945648473663351249144967770329235275452891076648885875379240561764099869382990820414042833968438268576882258957747106114875373654925081180408984631109954172831599128527096509841140577965106983833263119814748922876919237593650089457900026619558992664265207405126050634798695270208913628985965718397149257248733149855884509247740213969397520956247108963935064124616603480683913197067313293224680602224010750886815624760113747240804039636290148906973940904835507296995070616848069312740288269832428775534209174890761521402492292937362267812956709495874332214456632218191607419492033311793386381032332858949527966577665653895451992364198573336262392722659821365436713273478771509335700570441688156054325478976488984772547123916318585303741597828233262490830574079953495742785800060134179545694268842751757720808502201639223868829593470046598966470501080674125405638174734130787195029773192456440137411477098188079791165504659058787693714165247436682140471924208567096465233425803059915109007347529172265143410108319277445795430665242671459510386486526122677211350773350784203621890827251973555777798132364964448789055402806295909654956313428119172229004001111542202156183328722914385725386353695555852508376257337492062440104916025474671013536267445255857353282536166582045410326751039520492559710109335720369348403872617625683623808368249650180302814883477360879694861687732927483228144897146392385349356280455053549386724794038171732040944130620302184982176659069612910927273649918610777825875588673270955999451707224182275232921521490890967199547161682390181355823529507402592285404238815155925693279935558609509305586579214343500282814600880424573078397240204672506363034591295795542908672806445340623158002316084561670192063715420580483662134967064190363736479468232213159318581954388172056511662709782733509844264004533950366422104417348446535744717919453606852719902346510735257191943160383724896283248582447178305136047604801068648734291882665740955206080517300239380841838137927389267032191015835449726868068231053883325218464543610922093868070592775231496113994983953081693470656798899110373927611557765987045338133870415722646592742081187259541920604282160510316948665949293121974111276827755543816845619646482258190961126725488142127988797987246625182584690393200204894878088367732595471225202361556284325457343091499769744822324336870614836538254400672668809375265766768938143433648796285556507481349766578011731180507005399287523332912506081834888000520233362921980318550368992178294559002830010819258985831841884763557728773409748524474718886087424482432711391892733815004747917366638356691489980790339281256835022248565631250245613628838353467221086485681431671063596005163175464666827575786505474389464120676839637353232348363868081827323464083216925845236360656556256054783779117631329877010842227260280517604483747882654424361563235670307708852597040447627996685972822302357051760658018663748339040838150119913778988201239268699785636659160726701064506727843762588232525359903173985989470070441019479846075272102650853018099426213255745292098751912316533688646248381559790341071851279739416199392359369941412021950712640021301797413486663197214664282019258603121678035140328048855795623512664326623175026290603700469252358192455016044236974612871058198162625672424565074354540822747852780131861662707134945306956238824664796804777454100617012018481869340089247958061747938476452548409443905112433392442030737802305148956385490107726722757791801920654375054018845206202736404731902195192592461574006821706561845884989128489386701987252473160616708965845764800414461744899819839026557140781205086870270429171585116698229160050993327096844820113870650335135494782791913852088279701783207359008107562646159833427907170704399513668808127285093252750228510041391863592714088055127222971396355900988765469412197227979249396936532934028995943172488966570570042767305053424649347004738380209078176630482995489193499793466408530594784711141589966479030399773506247741660542295639669079096541956033813443325616457154070306020557257567936882681154698388283588347972949983812020203565946929815537575767708194032250116656563815308878397352815271826285388103469920215723748382012366795907032721274248246058207692382583218824022074655057570099128372377386792908400179202922101835398111770606136106703098697811254189085772716084762159816501383319113458186203128238024935166923905962933638218041988353136678612907719154315688391395549077565483292826256056827250736990595825648111775849526920651452054754264017157351142784985472411968725277544552046791104541536865571051513578883767489608690938365439822093969502059759171940288346011215742881619125479773894751118453851175416609223334325951200053187507306117471780180206494489700176508361839609212556153808515128740448377853361666579416354061601065680048913247989072157500631280860077715744798437687220645441901357912784897091225809747999296649553241539964850022391645674233026422566805559737091272852895820608112738654480709203233305553828642922372246325729957307792011251628865909662105400623895222690136892533327365812649139608625762333102545227723047415308913023348137297424202524000584304068347823946811691161737629356221807956623446092134439215013676524575475344945755064565953033381844825373605996637372947462060374470848235732340004044919567886252530092199529029187388915352168818653240507165076654947269939698818757963437124653019658210976773782979351441368389774623320376739946300785370435649447019932632857784872058977150710099168929081083004026828203068626920130864167659153970591149379388632327357819984918906889478229158971900377666134381597799994100453315711345445401502967902644697278041558932183690285485620788089065668223403596798138050000876988537843316237964048084269288023491494713687252604587832986346006527961848198952545916768730500335633671026998696074131724348807776194489263395018474461820699028999674981163401383788775445652373747762905335071645984071074207606620585047105090060979005499887340413355831006503918710042183579091786300828657472459548423123786576688355023518193910519775432611553653910808661667847955404838496887747534588965097410394909409233833798315372477138692471499702684266086011713273187290690240292982534358182695613976863090890114329379828889561967466789267674612800917957296058798639286730219036254337109017333896709755532618895619403367247894292408669824282291941531546012151403206569657257463236766591338278143448122152319915475741920784707074217115753785331222391600321457674349648334959731071673595789188071420790083692566273170016953332823513815482460947873438342668756402779892303545286449881931855254598974596109750840913412511414883423786118393807041568508095866531669599623373716181425433149369782808674394910374965996812718094188986447160928240607569925410772620055275934586490617676246673661981166876573540500467724263948695722499116309369702033521433876971863291596123242146072731067508072857329720587899113380727182338473570726763511149783262541948175966423089281684038531459078881338432853942876599120896896991228829208754091226233896786470810217843566298958123400244471052298847018771890221238020956967668636369853940229449189039535394302810860338098363703460624598268709676695968280133249985018309238921893000130757946202640833213702494029878745246408718239115979426636052632975242215624991668858318420565976636218420739883375798375537692093840297173884021929929605767935940490843652571516105826784746466561990717012723782523522952335871155413214186701787969013758610939082963388699191871126408961244928419906678859908427084964534690947416722789985727871636458309124034112210604805858589484316970830712727391601121913436925628575890748070559258882773746862000317686750622519444358359334621698086016362624651102863888183748059789124755151797986304442045083388979171455494643307519834521052438714200843880294217108437575982677331630862933153308102072641275248110842267312870511648565125450928337322771553840089423572672525591310599655120757085607253891227841248537012993722946765379990869344095474955292667404632734790896803067609991321231777417661636995904724933586072533184507371276765731846106574507010101255835434712204252820985483006602405352348627121638566534152696202847644806171045891992348611912630529257724553106593013564546985902944446869585619319326405173880556971690098673415387724923883567033449427275670351418689337636281996863022853813070021285817915991707771524298953918611701186463693833265312758191902157668521476815254585203660442308469314428253634409928742075767588137123021751768046215089772019706829873716376781732968594682354465551042572068265104858193243500160051195185400043353209145277844029065776390852984495542826145425694552442779237269530512920991783793495796780546091139521965287328640693666414388083634198032952581120513447773532807395733464517153525461506753553094223872275456062206224817143858575250079344486246175728948166415899600720267836271693357993323990349600626021423066656994422320595896044850200984130911691885467664909731163505313492522056115380977867340268415509443978629105057740879496796073315191385853792536999953811610399226023568458801355629599946269013440138461883121811590885283780562007510457101597531839640017716079914092858327726460561340109828201490083580311444992278345467491483545865439033149563509246187930483877182280920221990053020538919497597792450314797600637061270239918525039934891067343258844319954716816899751046158603367163235390543159308633238143032376504124965120539867718553366324551582019090660711318306372498211138035465680037642414417222670589146855423692411878637994041569893886534885448459733830247759522215140252801749109071965414056916190406133748476720523829661497134555176774907252549665950274658324769997640509577850119771569974889006822061890803826338126300731026120934537216428167554626277828261923380332401464115487006937097860381900201575963129316310942640545820657392948024113152139327862857471583430770718523879585405480762825012301439691976675544632450085876565411530520789535586000493748617552901243005370806552828267298047733208946012339016584334758218918498488753153448635887528638420492062605617949742478186040019265905587050826588346157797754461092798257058713015586272236613236469361189380268046772235485575970987740779241128102184910128445074852339359675262416346182031426166015049981629868464871921709934618827142941737258922785491472357652456269318216959268404462824412019366522321619430771022891693128643967952365413291816675711513823046798550501505199307568454998823596928924316642701929297729965162979860929717524893679080147223632840779096855867463071765650616808963005756529022354938174260129988427778791677703912681207333522517496667817070679074196131930140822276082820055637704338982128370480023580236464121118788389293463630800891578244428276688376707495999162417382978071169375952331464906905146409504183261696994609904560218044402496219367367113971860581385048026614097875504571768429986277024746502335494668157968309227254277971806000821598124615933004210777932719248697172992823320806822845760237129323897738073926901767823520268450258187068326071330452895573826713046380901700368120581553665109827367068026318115556640200587900862328067709612649473839452982726124626566865633569737215387744234637640544028782385152527745770189532333781593159320174949386343431282509468599994963068647515386179067258651678722646653394952916283330797206099013272974888123280039486677043814451227503377300019919987161151780943739025202137598611536089080681189165371176776162808463008572963172665145948827260745990719472976111176227470418427360816889355533377478774188526008079067211401983617086587044414379858172022035846759016601356151888619544227762574141476894050277520058968316762820826129999335279549634303558863224368902497692383779842077775064886132573281306083366764121392347238722215993245402089145272745960539644386017189407312580167360181311620670719482739407068273499047179327153744813541466142847852095745531390753759038346653004801626183598904791851817277453238257738422799320464943181613780417795345089067655868632414063252299485761859839122366479260084785746943580655025263824662194616370046278749618687235715593106132972465738303613201362148922347306397904318931097295291385001479559457623576435225544439997706167608256472892054746549331881401610016312544350895835612548255681794914815124280407642163286281216455698878618938788893713832367550669867549602164819964301137468745989837968013823164760052245055189597001692296872877758073328357779141061695882654137969498209866412949904949157860436492504089633445154074826812876142831312712839381110141402073644782176411555769386737398349408923710447978892097970447836965042251551711968999946556114666911370972514604958828090999718313377225028705111223846697728948885072109258564379228380118728424906141561231972941519961111798872785610477375402594616938683200783039958236250891627787344053474997622714054315700099049413193362402694685272454104511546776253038103800001578462177066847614847586841563343941056533846590529687450209737813974312103396262919997315906996329887570766345832885550087705366381462723493775523481758128339116252547815961266389676546585196254026936275144216452259477109815142215591386341702573103297422304993476892707369014053716734112925896632897535123581820253589173260531250127324174474174104178267374081550902187218021277029361946066838588642112456613231017872367515769255353554377064827242328752553784344324648124304058696093293630899268424154705763504945422052112678318984847520557538000356272981630260686781631401233185858605054304112948316299118638671732763406083167153142389295190437022001584585885132366973900710435314567916032997042692596001126173378081892263262964506361739847684170008761800549745949400732652948051383486468043888712395070882724078344234000739454066926299777437096894017177730231707747343136195533487554221486742028892166588589111332750454866753125000748147625011871484786610462760880868657028791531094652719914851507835324939470202244903281366558699319389541929437276940495191683982617051447811854731257560154006655905400881363080429937501596555994092557509304664928938010458808969317113940205991112599619948331044333105680818921058875986614451247727289010611517269534760660351634365747344664315492685987571052129316192235064422691119617971789073469324476972683277508562405448661378162398708626091129077421406811721973777161135727604551555415773752917586507682011239257653494591350553090264961731661146875760328425254333868330454720467980021341548731409471400155044176229688108775139254435165800217205041202922974997431818268431770509838459268166425192441677699483828397621471480242435291236700848947986563687854562685943860203644854931461396990920555295500755346283530703509668339923925725013040150191624065487951825511507475330972400816303687931877594555860784224271410946953184985092849646719002510091941235082423146090620011182769909904586511171599309020425507347571800890932270199998625585181018257208088176013702538835122404323201280272869566036694454444554863285943425046659781925742099400058742875638132482995926778949389165513792443722033052050305718314329200763119874893706138875689660731012605774106194845551057191079657228548510650146638874416308602514911164780592235582448542508826363853528380675032467673030719641074306621593229503412765292234661436022166445440599291671437939215070449301323264752174425023798859753892201160538441720534253609713154624397660608302750323331737664590978670388050695278895866049328662718839178633503822852628778632071222771312413356976539204707403109515223406008644264458109743715742442892644015753860935742604925189045829207390356559542063051857942456981120695016005844940167863007236008131395284937867086740968228413817829229174849845097873077792324102845636906693117702580749806366539310277561748826334793100135555204036055036356005672613453470848730881195919246513626046924766669858675731732672485146587754052553528398158796004022566797987229723594879224150493158388921259975077101734211937613463190060116444717573678627970516788162390051539388732400688095089567615008689127978065675249094223187278368417690650694236069538708862157339539920507011562182796377639007090337945430152846721241098814718351045795746923051188430007323411493005142661639288821569237706852266672920495306781886532493410225378958860038958992468865861522320340463201754932655535901155396831132537425433581582397090509249353734422238529786804396394833997911050223734585169674906738150975496357636677260176376924134436354917369828058054130616357864547471016423580809320277106866575810046541438412431061785296535396340493736264702531136857598996636953473278079692072144310771885165660387934884785243220191212853917644249552019291494578226799160363441494019177005216919516163133175456238653053467092717618298315240950330210188727058941465558139544196097436299277206309767356186858598571938383114143349450351159067522793863725924839961541403906555700497925511356912801867002725019610290060398724351664359300775633148397270204763629174255473004253925895381741664552511458088458437589579690147025341011837923940194488096124519268616143204747490634248319804631403304456098443309496507610994363738508104052545961597810931599758309021500541380441614644325007220794653129310574126168387961305485883457158979799985995531791152959558614006657836965485407959376048922025397792919906855988400775076358402342575670992455348423595145097826244606989038149690632861972284324658383637003387365968319603231832806215433179501592422725118759934448546465993191418904145120231136185474496308236239109229104014971132269976616619200937227775309533528468095276723338653541639878003700349914148396828112664610644928321261642781657699232486705194518658055780625078201514460634773699257538508705321038617541875970463104568921209380138148853411245958500646951307529316948797319775672406875719472641983032166941635665954234445491762166598310617714047716590118894404227434733273113604563446181659396236241713128735150802485240346362149696677482545824786178473583236136208489043663096358619466462086295139449875618675921481363384675584524263796103419639599476106411198994291570028099719020840684168480762554471538727430681225248317062011264337653064012598100870927792180203845818894471573372330726966835303982408978832219149452865503873582643688042709917053242019557756855681777389923690351211386626649632331211615754689792043136008907433467901509605597906322849312189661942456110102555581302123029207821578234768725778171360212491452891316790080262150967670640951654776052066285482500939439136237415088456616312081451126346349828220721855463936478617664994551366244861854337922600355302110424381215032756766776991680140120624270559246718162765230790041778355549210857890844814044336164725953022964333023345205379189847892807162199021095799109272700178775129184114521391201937488422087350528300520697527598332569732521557921099161882334981875155503940750181211454182834759510510481744314976194807659517471158624439759020310767367012709672275285786532611896023018377349628692656676773810868769564608310976930811881831635273074154429279948507296721289225247511449286649591065923540212888109984539661854067256443321335806038618141866998638632598022776201926002803582138211119562313394140542196689883794829385068334197929555044870552799657292545546143802048081958074390707409070255675381468884595546690484315988342064626062528889759380528002209184547368063085313684452339750716523386121743048435660306669650811837527644963201470874551364529485801247748371525473406695643828471741772171761022751607612601397920933092279926806724577007317288160036456528325334534490574910691250590170682532273059653299759318741099370113450577381367137819539489995786562478734824425826016437546153994842657421696122922507080667574932001077000630950462187575527716686614026230575503851496555015399939259118872413269157736869059418648895012477780113595774026133507489471704118962256957336143132005376276341828884508786971084866048064161101029541713896766161162215944774967164281038226590097386165766534760728523998609649726469714753923632320983944974721220022536193581037548941128549847919656869752176080670023117173068219871037737065065711728399135496004728473155681752223197905084143787119061295592250872410527970399508680869920554516427866644818818539125890521861108148101885809929983826049980715390203795048436903703124290454648586773109641822302410792487017508259279394772341622167178124148459979798366185589519683203439188465926524540346659070209045532968987236878762703166517581512361170100488648966885596505604772572103835895775903263459704197264503284980206429334813231903620116380699981580177244298078532894480841407739762969998877000485619841227857244321852174702941593990536437647391381149774441500442330890583255575357953282472950143219994269126906945245274138669334463404691275340621758503337281934285287623953232906621319817197862824346690710606622919553260817302892264621246084522372938562417811997572471702305262470331334821334233435467850524562879002496820603128026002507540806881294892983070059207018952977760723011642535630445362427746965708045959629144870109836311572744498169259089937581778117099665945942567814708603312471507851498923970559598642337509364586685321356129256440480749522540331089282257336125371494432216322126687974066692976700021605057491068580581220301701531974418246402963763179128614456975658721105993125416841046274447911458242273444929450308411717704952888417163905683452786326261557520801609826070657858037001908141201781350682552522941023245353242296619188177182300853322562306322551275938173096931331351104037931843952045111018360386263417808777025335848762845428777952920356685176333717252164457050368567518922293426023758710475843139783479832432844266389532046773417568297459525381041567571429303612394076737954061938458337989341704507808937297604529725067217487981103407061750073951640095509298398297208566354481375040015640118891187316746455792096033216037776433890926129803207714929217253251922618042711985636694369466773047716895699034738428489237833501638428137348912753482444587015317615693128144160586323933561288919547820585484627849628815925104387926611923425874702620591155611764075022707291315367218073085576711839548779584132195584574649291717671107727611029890589793120108843082336634910156676323216506224615643898297668847160886465146564572924978481151989440353237626416417643705166784916235232858604198561317504447253723992394109933653352946054726150208039760406548444861493154618135326204789196165504228189685549082221227266586331855648296356322245641914666505102753571249849722221150537708215207324049278871803594434968027593164270687753259162279244066046387110864142122484554630985803941208215379893645840176445764757763347925125539385291107057449077540153375596516114210481638236865240426989618716397871742883974108022156507087455453375924666434963508596887174981649042076116907182075771478310226169449979105853968841010472821555842610421778522623636176093812344513081419942839687243598919828958531347341998496028628062527968290779161804085107276306133664127111527400400188463911409444658242493631921894533098655029395608518525811877377007784170885899477013019713166538202447888830385529059206709020538683127689793259158664361847821734518315514455781425738818365016386595104705916581087937900663815282809870143061736286423584576898909799529069100393593524633332620867458096795235524920910310012637769545741005299546403672820381838524255303820446064487901233013760952942527880170116834714961118862816656833671172416307180836787415483590373485374637903201250757727886611095606800466354400599088548500569522100971773447292562718842752399395467510053095140823977691160463119097085998408751392284633395554452123685982895928815072955333386039820070678442364718899386833214576701445576476524943139605562637189053378829598529382002260224186004608777712814789057399540816764108521607757478245623051179357866728146541816833845102947872219907812382697882109449782873471670191450423528815477409722399778016003685887575163516254004450303377576895737955100214221877960022826895233007152874364522814058606968533790733672481166372806013417278979763207635671487848432064523769947986848721607034320977251485778641418113672644865377597113275746756558553744356815204128358429991566393660391053525145039056561674568793398081720449289623397517301113022774159386711183484020418720670033751577617159158710684095454048766678306982345288198257183004593027253065842719748710192811070770300568686097758356144036528013043365766130436002036742625958714085758427246585659735534698840139014054096651570985479127635696546013291348977889316559298680537780651096459119383334714838648613619590408832553539822209426046863606068027698687500301025379760188349606377442878883999999873493524361104536175543003313512294376833663453979986209228355730884302423341096534370875890903251342213307861065085422113059859933860203509692119594661935470643010662856673082644558368732356549831974828669225841776530980744237596307733947602531279462401360703845169694475351071229226109793147801170729364811708652102064402083149292164961349260468411163190863762191409116084376435577872611840859898532420303017655029660000838973016653117242683371739607601633901464467122274734907345458069470267437484715348762358943986251339676496594283051896354135639627913799506491965638315519279892701988092940162130709805262364795791563607117229236661583053364072784710015037655760235465015925112610793493847741962279689576486140286290791863592799961251292708382441354172816482026080568105333025105965514155574745538836991884825764231183691768265981507404593818189838398416025233768208220563098541692301102669225569447628618016965347560194414082219218411073213315842945195932692474089595665380772588202701257062495759119121701981797156936788809027548684536833060778676279747560491072557734799747952868914147851751569273141128900224696945730449934234523613350509728000107451463172715366141282918957737872450353418266913062289815032094093100953130509675978536524854540517129447418032746670413230383778750453673412729205422418469663077072420068592118004041496838448556528219210636737475040724344385343343781336776958625728220875491454893246877467233435040134147951105208687379934305400049730517759521448425614450990216225294871624432664539862491341331691277718024826319404003006826793851131715951919946572587264435667609482636018928518337661254792160459290638259164963920355840619003114051715828586557460823391011099814703802943687977000875273887173852233398857203844914651390003013289320667363150546895195077282579363780245483691052578864046528719209914532155336299509347977997083162362032310393918835413515390409597660471476924327091442655017344956212427383526989225491692885845746805127659817750839066363473318034314739056993093825917602449690261124563821977960615133704833877693313302430605027833975934899615604086632756351996465568756640310641768030244764330408990283827378100987716703519989979690789259701090989132619072471703155930330223107375330282320131792192418605152527184254292273420612390751553434598665009401728633451189149470029563242092312637357261940616614218494148123052100745415346881319023022714837477821835682083368261918837245565118766005843875452124718886873489699240498756434160498995546836166204601109009045969055469364359666943389598015691029470403165911514830677576026469544301914115637730974318464097650779035756024070621647889562110359071415646849231694896564576888711904712397079999782026678505208624561500883469395246926009776134326068285178489028125554460357051526614605740336245907859687651398542345146724801153881714606818775223257771675005818063158425731821580660354988259019414774410268646445855899897377329424800162301826485374152601051869370157386012324125199714324705392310504274944780931072015803231917084151052855899022425046780273724939490282769211943299485804038566226129835113734014062611357823885026191790028371359120127249441463550512620108852011922307279411317052866280322655474665278162934386699601243149510803264461094931957082218744101153972962092986454187643244903937614838315095283013464113362787956425154215658539798782172309292483835414590709959006618438287168909270573529650685328874582574167806643438132376829495864082567326331601755154402421477609277824382747762016571586996788631946586443829199908873442216243629204235361832852007894284345253216366934833719105732966084931129742549797896363401374880751847594041607543373975493958771953331684772592140707896283814425239967875603350926442373555822946691115419513599856023835705668904538421707220825519370216601339664863208418120051253129742855447553510803394342426105630828700002836825153314777302411954573974218001327408276592083225439248983431979055666952404582755143139029970699172340773276436511342474537736157875945666591256156694082850602574666316017718207128908580130177435448728035465091822391754388024360351633648304328900324788059128554375313019103581836586138313943262774939665497968717783945273649875027020244318601980098783795724717533409698240230678545539080007318453136016872460909247987055124337360002641975805659026099542306573436496937481696267749882312090679979134118645194610717945056171451372262610902346259003254327867557262025870581332987700706017010091106885509897448877247374666765499299188060309479525232790621911067564148721206110214104499887430529090020585162553253271567422976311722414199400885413498779163270303312125318312453141615846687666237966268387451603020185115589759429964581765551074795776983372335060859114348523687540439776535779377448846491504421756352686317498428435032213925675533789181459767908737484427376784290050316156603672654047765240697618022759551873988427581986805053471215109432293874765469612893641135013476819552745439722491941347704910628665294744643730384887519838938566602785072001954282450719971607898921943017676732649007415613325781246680351727169433102643015519010188302333735859109149096209511433825628799767112856916198608212739923866171036883858084573165440494015414066558139549521869177417258847527956723421019441903856092921924067860206982417591390677789434615754668017779218273569965358377323746300762198930212278501244081658092459366904195438842282060475991412020314161001728080742357898746213992630764569769075854113552760539019336019380351885211604545919165245498330248709143521873514037943444395818250247388823953040216234566581110697817405583185787651303979047192108034368164304390291847487010250948109324343404395133239862403568228861188134406898962857680600182116108946205800868542386189776099337926346236558764455586829073417668011011010215004328684693568730167364238281341462481701101344612034953805023294668280699197248085889222661360481674097813454185315860054384989723628505960144694525442625673552095445383732335403069745997461402963454080128769011165865685741619780951703926988807977326538101212983477823620637707420890651581892939825460477374076987768134056852995874108099341981727156182280201309081648194771138010361620592590854982814529591344580930443307160361463754758963614098654786522796588529208289021911620995360737634585020151167862655702848429265975257008595984328672792020432229811058429605748673892011356316007075543454121742833492791824398784940027096925111928343238170883674005154320070064205015726988368442195181074085386916569770109029309907506902406916824771403125945286306190256478289003569745069756930427071597409681739899417419798504340480352088347455355301685293972484279963474480113832549763716451082209646141425534923528464352062621469719105016758512881852696934321193442665685605496121983982603210950593231206448589792692774438001661240362751081696093718894981485640010095079808362291287945231705615517213632313861152229072389865313076948577399552342025017795155875128388387309650006111140834138341255695891764552287348577559588547971698785001097689276465802126901578070150626347864585077194232007786727804359108395721641579425262033670308560762527630101524544116119028778425627616033508876359032382675160581444120449649700287329128586005410116293450182928464038863225725167091841600991842540461068692228288190619057612903464331681504152774529588110494437638818404174433274558729565297285413180809964049024733118910809454979569948903938191374911020181017469009511464555234032607870671161037844501620934671120368056279626557154511447827779098286195621603099232199505599931844495635133009986049482680500998725059180827785822313224921263335681440942939966444128371762761498652911238200118365781819483144096752017606259393296220731630166570247415897986944854768693250954957542145387935690742734575546913319098399735401021153878891832063120738567543817313887251037679412608879928740926020112751366281655859414941138597973509176556181387374613125910995908250317203348174947797223230636823702407067809910717915244048924022353016032662258968671318133228778709620357813913942499110016113912875848286356236875974058493123810006357681553939747459392793037498372236220727299741599696778079228994738902870867303829320477908982728539332095797769564851006415815921498627154977975440642000908562662781954952226335859251030369385885001645664426167562495745473878373781630217500286586111576916183727647731802589677794887302958900116179846469195730546816369381631364911169123719467779296850808384694652137877898317902196550652427135605420877464322682715294035261495916210920887739356977256887766857660623065240932463771577617789287765798114485590435427789169770072290352055189420766528570134730581404261495114896012155101342993377006053911241437687697547902033153063662601395648505544709286950407407187570561144447407424684287560477146729330679212159000936044983035606992783923502371051968107749405351906526922108961050840625469252206432414176487101280308326479082115696241685009095464797544999265298721541391219868944229714101101498699148999814592790268683320331985990839192943081151509915018474693737146976179481303649296994417827196806552056527714360421189868228811372437623366046256978195704775031233536403816419018746192647367709820331091807495527453561372061505683438295027139182266287502744614560620829870735764586158664738681526234003188388390919480040211279644960116436502260286628017086296563088108606239471625624610297752023375232985215355976903754777357122948753539360208310430952160308831370770512732871354622388546617061896760289072132866779957758846420392256663663598224990985583824044995292222061135819582322538333830110550687932136138264677168992594332913757518753099208129626640107009226357710180054320712799081585145939712989849562862872888163616499204070694767603654116212711309045858301240017845854354749580994529715865725328660290044251089585961291819238552264771042031290092661180055475977396501182479497470164696255064848374815440097417049159885651374138489933399789626137706550784143749605371601587557555703905775489632016388269452864774281298378658066989154222889600496411873307666640130308659992445097043133139957281299783902743297692727284747062586015056058099182119595681439103422059388241251199870758656076862435928457601419253378004376694698342616000038866367397519412837567969182417450839913520405762758978556643593704260065986323418364403879597685845813407919544461376125185871109726485378380352491569955776979414322936807688341730179836972275942109054597070398175254104204452681441595055253424256496555396539823303911225109794422844390559812118212735118586779742770877863943466013352615453956008575005745074065158312254019482250084800600553552965222254679873263902477123542118003973780317292100415408048557920215992282944210479470056794321629489168739850975248644354137670351762758637583097032115976848336645698325654693284838464700297449226495619337928881418108360684416450870464590253283700055829018342784735243356032517672822216452745273922474761451625288870420345431887540665561155548390433725564502444698325188163473186740702117444309732576975380039561922792171474621467248069927651851110909987836470239250648262534419927101157839613264288291593491625503134925351777468115241476721812432774031791493437791953875018398622893919323578744437575204528631173978427111388299514598262802322540172992840543524005847735448267382222791166399331428645414691981073702581395436863063035830730367958356658519916666501051990700477428512020385387995501244380917411502415259172069991644155577225342150750722867165241436351268647630066411046427814207593820003755071738062124836701598447667917347655080438384942973035377028371817540065797842608443461170648376265022529510339436348555185731528245219719190665672431508770644644501262321223480044999445461417496797423990916452600811041793006676202321744561143199948234499471849417928975409605662542937358562474695789773601333487833901500315572463291424968838061969153241901215510766875352725427774465293126756309710271006519076799543204546317817694441104343507689028367610317892114475330142375844312958828628423152285656841845026722030982774194849613757118634454330220976958288901037012834838099400230171329574690896753378654152652651915667432340806080741095033983165967544454599392216875957736030612569954925430014998438066116141621032276461861943638188749557222057189990700568048653841399852032063655126749042277328735214730768111341764480362796419358812018759751332420674286688498965691369820211486772614830526470022419827425096829609129523439477907631854392346008882682934479135983528574564079632180115597435447319601477856782730712794219901983130550427196172314883907760741911868440760433228909795792233823197486764454722081274942983787479181636100439045346591473237347556853768900132753797244738820879909500095019256693600588549331130876893080146199895590735587619736824157526726071543654599819873517352141196860016567160878812080698150593744938508701276297378349583742029044337959409875656267267792942067256797437732324084183098291322026211584633695908685122092383481880355965978075951212845813042941277543660870685223251151370047456028888649928390089907033934776570521470326340005750403344007552200654877030833262876941128349682936931360902521410493746364733152161568644841864320883742382576983835858057060996899881239429402990625444701516849375716744837585307420018241044650844195149979612031270193108360528280343283672954041512136868504798683007365032646217659698118050002413462605983224660434378950701384778431079573048709402302232242793291914558439739154009576835150873662904680875355233591755664091224671617737608438190011037696188671395510032723180227546619165387366841902380773952635973272526006900866895953798216511841334681752882676287982909704530654046424898417031651416300181744690332950522715309367281450442911247617944066800983623015145519258024167195108548387769402810445956110327343372344770420249285608868428020330301170363896894148998197117922039891243078357607246437623218616168071436413167315628769474628001347290140974194303955176973696106151629586778318168543129718081923968151039935022533951622984515817403125512371871533245132932764379243902788837600830161377622006173260357199344126335727168672618310041150600732110710644609343226672568405989730256347818522437970789186874951674961626741953717508405530215902093823816261268877201554124210427531763525327022906973741419056097595260282926327502992535443242475280790634134329214790702140465998664553366479863481326403646672068704874127972138443354250818360799222272547041957201729702670238580056139815859290567551812419337192775902443543892510299920788241655017224844478722014513942938718667039573104115832468924337122947039127542606746162845709671431031900379478358302848352303188799579842554335571888956438894511152316156981674696755713210029229284392204588165527682306694554627387275327032612525224325566769052770569791475119154830426231084264573261828988129183166585615524448074883151772853235539818811545193447302247592821097672288320253867092999900798081061092298046014637061590717057823769091779925413847516196029151850878628672940397844744885545040964353854571790368336043928138941937695140450947197880039869132860659609547232088720612526509803029230848487742219599721969928576557367574734037058207799031496083003527667497827202142859011314165756377131191693598741735539997852474953540332447792065522957526521403923047661932314687096298526945179896524849946256408794463785462404104377024421487878012025270867852698970639154841927151614396034852976802162825073467358102189118895592154047557644355199505421698866995664387351414267618891697396378809068920408443843188557716118477668732911104211406066792848235189953563127499435085792207830011339325350729951010129567977782463048379458602735519916356530162725204505610685552335071970959244223248573909736287348186309338712091167268289117453955408268008728753375564131273147406805800103323462138311335119361066925095718894988783750482213383043659705355635764336593908063200267639390376574190296172762055354473557467382385860335412916418285220465489315842382896715869925855318039224801776373347130491060331742342329383449226770554040293611122083114994161481345767800729009937281567600249444626939440075238195363961834623662346662503423906143292189096750001666290297515192219511776570046109823497119354432653796750542395967977110285039264055051686143368075041598396845030720490644751429464066296425187871193493874529032275642411740473422505103120847444875370966184722479512974440626028822006783176667883937441751621932583278348031349751497033547625181248091371149958568983978778532251433410559306645322933564956959350578000408048078006258821914259265561165874605836415525438914628158678052707219536735127912169652436099212561489930881557181899028097697083558548103695698135930265886147668546060659072892233989550398017470093936361265620298743789057351572382684454217668342174599085587431339927465663000339769262786186312256127562617436354652272535425588965217829604113600928700157756165931014412796048026454932439733216706668838889258777825214365261952307227872771949274178932332587224720545689956430071350774999168366770519533398117405466331274808407320056890702583250715014353573494644483169474622359401390565950225029588153231197651264166377765105168607605435462495470606062328849621609713364098764354950283176768953735216941248697496929233983752915445059750141258347762127648230616429969260775448185157315116268810814188054185542458898637970825500192568037003587966790763334203010353686554576781333195009919314251038894878265761007959413604726324151870735774471392755546581401900831376673053414117269346796844799690842312287898036970937465172374492166634235264858988465556257686109836661654236388941695866827180163931317739901358147292671782684677465031458011954207944246953190437358150340832654932289179384061925877415250517975131621363098336605628192573688941002714764376572107429780878608385920666861204607183180492326485060704402336953845039925297075234825057405607767661264932083272498609014399038853029785927121849246184012389600455322183966540894916453568140414156851741554127421997401245441184360146049749939189511680995905124844155512824633018833777311840029456126802626473510742186696286025769100797874180827897314341825138039093642538601022341640183751028196263330227456941506292908688267356779235126165749133646159195098795903080138212938747704856407295272699318100234351653696200143350452777011698061015108440332791335704159749235794307265215269501253330387901460197458852584851244998825142586470420890268904152385584938267282353334473582936921091921428440871301116289117214219970108515788041863027215868259140597521380435642218417300022123213654532855401533055206526574491823076614668471705579662597325685068598072133588434601188774735679859860463483833348873103047218185379543181466909022414082005240874750707911874921093079859559494523296997483851201885482402305521496825176402687470032422292412557314244663355439684751917967981083205354047371881830593607251991099987951078355609897864896616859699245324313167425025422784227908456062953113673364931728039027908002522137815289091902257536733288112531444454090292893934514899224575893861548958729747546996103994870286534090585765049206794979082759920037077109058779242851679949712399735836446873053875711652071446701709225563151869532048235783960765056998743030340913978285975788463991027476756409865797222937345899175301981695443202796927564733326906540687689883705995461303631244542523305743152426780784664928737124240445740739183950518030017619338849822570344932996712445052942879133254771834129408557801072445587045068326527995560707040058351744993428308408335318116407109395597334603420546145748418424814996059761991163018599209111051593008746978068170211310358795049133289569709822910958210652687373321850488295510215026133228479498640141830061964416225741066033096549190099521149088303061493739859641965652684737954619996056769169251703958806132399090388025730028618689692108860322887564639375100609384304808082446079601730393471550571777655875124379656657348960769227207839128167076592225539325821938498233584463944416769151749224220101710965011885551255838705837251401487880657907476716188667005775364791866738245975601896794154906122873882812083064107896544445234315236738597575890772677728301289055135369225462643267344016369244585062350328268743809759945620711842307061117820639901361224359742843115730454147201997267306082182384004574965882490203733009553943827046460527019480765391949237209206186087023878449090032507910907227788476223364938280390484940956519634497944538912699135138704261422540355713219525075191305010327846962894794299993896868882019101387544076996115126337400017905130206676947209141046033587444819147956257106114604663813106052118067604803597598013918377642503109790502759099257722267855375049448211460874371444585806810593353890610266036258207017340951078317813375732845197052047612782887429621884433519496338944230763713884055653958080780667657160346610001970739844119379918726658001019811715748552097910306914714039152875778334543734665890031051112225649637474372025192742128037925436395428406116162255897888423970738253430312618774757719389152514555628893072446293787442572154050056432607878991321504566258003621154714889574716755742127102625074378178859203200674114206407280265742902087253093921034444149857284245975261036312161569743669490557239587567665028276741694855720673499016219600619765732348281943272240878543300769584035153233255482668422177136293296820024106916329251643399558974475511027479837866386746404063308139191526388070243625514259808907982809084187256186098373310816954059919419587675680471418953722228610252263697711259330530053510840640292429863051557431671401527526240756764333662181654503018822813511803553720294698855635554645410229353749971606022628833982923379257706336232766280521857171959926432588218175618938171671794363968288877291686118947074129797130857895438934280887693443713514019307714858503662371222194198995468489306516481871775146551720678164557041321816265048478629035772812455345278024460567504790530612927672295671937907233258454019792332176345526530506422741948634265364340569314477993782707972666351102912822499557739112187866737160874743782772096260306991272793515076935218046472643545841916092712100699133727050713133667463578285029103102771960380856683532106635269684214474610139088600067737962588761291388019293229414976837455771511432403209469588208630825174923553910970132931788884272765553636376930845326538652517846208072528163626905585717103416275213811148705595024607638397285054105327672653152152446616573011377137898954407284662490167239054021474988406197051481165565830866572866452514052844907799545665487041560272890473151791169730050595996622311531660636649315634630876439827857171674257840797911968899872618456616380660562251689144479093430631775066525873019393507741275226906318788424913876398444690611724455876840600199415276274319857891364730151829821835176492601618034870613851148584065015114814061458281729006277538826161492950271751801472915865080909742956705364955512830638929417051239455537634742594317635596877417805587114000898218751992075184603277724055972375447844820400395439506600852791730353178320621696833534374599201553460336630720007625621305734450216023914804007358003937849329018171229292579568356844996215537190045915371077493133719184247246800095422475567780372738725622807455577606688474437465568169611853558057076696060510664428436621454588383894284292553228496788990983995053386798978635369442625456890994359173750796637979001630408264623309021245611604920501283586986993213387136873249023692625088641141907507882796069734489444344756276436257632401765234290661262110116867699020674466804027178071075190203479434821874210842576686751954264322918954546131435525786639770329978952884154294964099673655548977538965728513722454140652513535434950411308950739797946797955469362428822276227248939916169476362833200367909808577550353452561087740096441464977619548478204026369914468536184485433401199334204644347717776691118085070886308014081203959372187982865872185712513053339591789930671810915867789043196776267193318713132383993933674935889751157254417172400190603035038172848317275550810124282185700852887122929630147628001221901165473683378587168272930583326771091899372948504569046320883248812841901689483301038646829469419498181145198706806774361390101101927895182064088894148131049222403638528850782674596918567253957182528111243722954721102646171704699862233685568849703073816532887255962558834223760161914655670943739144200398716585303983839345320279832836770371051152505549649569665197800082642192826661380913195110212249621893505851016357502789271653027127014435782925886811688026196005946750927447988009981887241340848644711468403471640280487051698735941080211795757257341128773848405949735860560039166951115615867017728044649961308865910690902382483579627804385898020092152644664573370952675761952886768480154350869952748162202672035804158306331822480749162616963881788855357080881192432352590062050116609812727475438306185439167086179082883098562317862940022371692788152406940381146722208133596355409912584726867872942739501106046255024440313297084466672594002208389323383643083300237483385139717271696081791817942362023503821491949658901656833939435240238788882794313876176697850303948754026730744504753245857930458827534337254635067816074760532350056068222156321971335771670592431170634977069965109343277306030646332952742704610857201109242125508873273053575347600025797699547628906378944291249609955228565477955832937118906826540583342762918174118415030478952293845321200248256961095664213038881804013208582560263764887872413948288738756473127777274597899210920861269344314493835344414830239567620086071783252081883050619487444856967170862757691729550619943348884055072342600919838178086863357239247086711130207038245726512441378926362996140418196983964096662665461804981952465451720122515460215927327556851946380373382840865510968402674811800649248131622676633039632661811335764525776864083361435728455701063344823301432067933723180611230398815871632241900666978079104742622198852408470958759736266083870345566870825139472739679548676030093755501629424851162869725980666612659474440269781697924093070804560010275265114012682614602155314991804170226379611981202661817473171545048000167345380456364163526336664616855633443820976843426338628237209199321165517355887628353114760336571133762360143227568178824455147714561518500119545484024314066526589399213135508388192924310113489308505216739327817700340425302390354875970569092948148699174128461905402931337191680520408057200947668820524157321834078871006326869660770981801925965851662724663273970941907640717364933068976290769454261800500701570646695730656197315013154495126572973724157408005501649454631028325068521891111208255721100486454899195669197105920420979151073387954942384735487446448456986672732407273126059051309899348281008101792966389803555874849391538440160609094329358697152699437116404376673685708045931694871612432900309252489236771140314020356700431367783988953296512059287081190488162310190565395475682590371767330295032058711805966005597361583469961818625845310087565856571602040992601235299727860950679880735746096550345825919470272299818432002166441648630654649507325860163606151267851539095579799503024711034063925266641020986435712837413827395878300858350452368090919646773381762949939632446621262029326941413089667056050759591740516660122071079886310187132759814837594942662528957438071408433714061237544890362154321415897824282716297137825658829560429901503874883085021377178567914034100565975142684570825940822050368242978412627342992276641781956534856354092243292010075174318235038184742344550444477433775427659600143271226303542463247142563040518055790212052522486788065198088104765208350389693685380844046111961215121940273851719027512315121351907909116275191343066704335751194401088886414614308026670254307324390766205348519552883861838551927847288497835287692643821902116040453808867474000778558617234618778714749873443395944282228333709905452385836724443409296944289550488354729635189287421315790516775454323191796906712872033702654487542893633355624689908545664668758227736567729795437078851571830422624148775262344618194950564497395153588042573238281770338544111481878912064508175494917129818690781889600642599472570426433893056436071743769336127563682475996121538371176272110073011004544672969377393892381905194052692997915608109387444478616267817228647175491064221296946427816257417440786049597158030348685100562603799852823171458488298256837611037003996778719352530396261356603785731819748245331328148442690761347550145835725748306225421035628066763807929293579302134377850161724452823611623879508447329108740613309566431978259303778572945915218605934555460521889507885471507728157657986025547725934488479288226137010715577104387898511304168792695075075737238480804130152969145639070606303012953207539541218409207129703155810698699005690481709011106094854333386350700583065167800320409169621327678935204324336761304055023623004012201001320031074907302328947426672531281571400385085447459113090846509160222239982367172391000160948513171650562042581806648002645852653869116993544970240903235120866061114144701361044449259604969174097311701239547450338724416318802574326051360543461980407259035228935013272586728288592196830734592882578498779117291308351268291167464867030487434872468682320774969364019695847661961904693571481940506058326642354481196626402783636770572413150808246042632691478166593596272517666555676971452832893929857914653532960049377344636685031621951654682647659637403284127555706684162236890741851308231006152661916456698472030293458415613795031219855846258045963547496929842325616500872639665193154737143448398203652873134959093351423730068919771577472921943962295742295793247777898807908377065899147736026186522878600909318110283252067250828586531430001447614584908416574405967970858648161022342468777769129426037134692847410762107643091518002913899091657335733243499347156727350117441539535932207026692031831732575113465162071826865903867470516173394393932892304742875628656537414390586293562650558409722993587613616026713922476373857877005195395224709893979217500838896521705271702720010122390921878947636763416788436945232182865750020751015178658618272413653492894211667278146808777019866028610619168730487289584711549073208093665735734294513824072640740630928851709337091382358475773725970913055523345949593037789126036490238334720443432495580385583318781431254740298647078893295935852174598819527874951308093490564202588089614703590944151529506880399252742074267958825064651048790812386444749838281190280881156382687714962417193200442528625249888946676626886958109943750517187790041612177623027493066076938424795014787908118568475962361362261286362314062867090171395558319375959527786669980393218891137320135228262661417816803528742611207006988588898231057059817347705748162611016314924459225696159072462465501287459919682371534860477251940091986644016905791282162472601321263036629145729717418107932648573446409815773300031784578748485831715231663638327025020864266090792673403757612709656118903402155028557934508977583007948095796657088176878473067758182124257121453620962566352860393219817165418305325575249947901779265316219178213452948313744730948318256034081689551054636270128781047044043961344567469296763681263954566553157593801029880030894172698059906240953062957960323401252388215559231469293373274625565471138728214980276157029015690683824204423793385084864994647831566112604868359379761063550541601124398968767412526395727139064761394030032877095719350862918963670729016862603453529331662051772925658826081710031967620244361280815509940083936330476134546371053616382369342254194860696751112581552155643019407910453433295414200823948946181539435467502484455005495480699996276454939575732005585858559624789639672520955757324388249990876121877984104542091180518786950847767182694786803932177999623850081405118670240596945260468226965527114667635915686955402296967878527420368310873458575907334887813584742657271031115787133663204772407168177818100930154938601998393722107110056338991760761772329430037286173797976665822941461675147233259617667004363692734621912328268579828933010337537245010472513619530037228199889749806479068346217955067271120736970595851265151062845429048998314987145348477681346445549319354277882255085359335420330168966040887477021734347249847678173493536618497868788971207763134122099318727244751598310827221316527651837408783992230472230558551261998336357926387148405242922503911698784570637408634343215423452805690080969570858345274973445254183480528167705937877780945678753572224084838361742743354435099158658591519746976570750751157893800714701900703207277561261333735061332040689722313829054319244151932568567096392430270976592477353172402531334336831390415374571467747429983631676956123902311790215928709849658447669859501732716078075880630260787912328422586025338135833337385237088793488619749330025605970252846299211410124965070413152346450201225933613951221425609672366467853440723678307163181116545843666930228599594124348113526773359492531490871348309928517061382809235464050161432852493568363758815412438026982961856811439371125985513217070033936402074471720598518175487150542789684962269531609768082447192647758134777688848553804643678521028315655368604863957723120624110268167329547547955296550410533027856894140661378284246416618046256783797889878604229749894458133068807140923245693708533349138266161343466553917452099488197413852120863474818315059417545227638520037261581795174174880078414275228804240821243325176712700915233340901553707658283997015077936680389367134126907277508286799047823085548077833270010413775680853185163104635341944742774256054943697802156582381918328872618639843241260331600710198251787325468533194766820693043446614269508797257748618305372010434916118137482268239033550706941552256312793020102256922151204899194903732421128409812832285199999676268997637187702961861852305563315174927847190606718538955780562985508838025790739166104152696619868902747860148758473288211180099778110315355602958365058228493079367979303631634212018366513580765553268584855711029687409373513665948048448567859734586984214833585811493313732557712002598579680244323899501855624501488558190986961484105609510669094548879612049452028551546906541185713542152698853024600780923117615978607568522428943872702199627364443207442010739194057568226798198623679486104776609623622207733533259810300918157878997497276320356588593032062977136647734910269634387980844265315774498689838555668035674382078744234470283284911111103298391363694252388040730449337625221483336704766751407556179783728897467654299372373069727656104738926410142106466776510190155408803457609788739194218665165290309430003252552921130664687798243161813428954746041899370300070708203372955773675154000758244001448886696876981577487011428605055329979991589659302867413828221573057674697237786615098023895035539783852976520417704980072125744633371459123855896581611872957438156683494456202284251157854949603029729510214076983870191342490049403155702427075525846964650803715275886540328179659795352759237681558829505852221977532729501767036478452223816342833005523745195740974727693325566862237137948182729745166906803317570458871908660027518570333918255721375147956594494403174282681212022278333534562097438560549029149035247865796085739534076710785011304507291698552808467227708305646064617590573219244236806900868932890444776037017901912189280984711307301855667991800122054374877186320684637769509112167744166413763171893724878437196389622035840368805674964950818221237295787522140817424859865454627921698883302095011469547311827848916029734045872279801842821632021361196034836723423220513704806972647899663011481127220542731009436724831020180587125232081162133757981511567433691007187640197925336998274179488281032027128737543464924244135210325078970681534661716176081891270144025083358259972286543870792236138612390605217706830668753871885229557672950283926199850019065332870975527995074054455707826746335491172041144685974132727713990009828762524825740818824521768704197714238978825022511151122033392614564217675792314151285326021078843451864365363670122212209966878802276676917441265867008916251442278176043145304511621506375345733026987256958051466659378075812522410853237829737724778532710573424260385808746710024705579599934587986885281290403992703461592945805417376109452616810867277239579341494084325511676587809024407721015733565210660221208479622909282572675600243638142705001078023409605569529833125329089587656741589079640348171121731267955955637179381824156936251401765879549948609624053629656333215123315645478412125041358316982509171401085101251326895306530504469781164730648559010761478593916087302486790045078809591118869551085179371846387786917759541514456790994032761268521981449979510251779300211010620312450070250610095274397938946632594072525614258957113390690248007127310720589831419793235048378826973952873267200552648405217456085517815857983089253720779581395530587780013986419619221904498251547404774459081271892859003495053206644416839360935839754091552201739104705675424648445714203923762457735589059578163079233336158796671872391334777743826585082012329760810535828838403144418704829147098596515016555061688529497669380071248742537859074416001677783535341015052758963432125129347366555403958545386410650074171964348984808887476985050175970741320748261373284628728289306947729616085321892033781748253242743629123054154086154103964795582674162933346269510231616909165750418550138325072447581965039212755494622935268277786077006357598791863589726926599996963406446571179525080618772411289528464387118945091815938949861411162932587465197686479582792080213396585825393211504850344502974659657000623156642865698040532973214659049115028248072013883827790978520476609391427447254536353021068419168131964687956297155455889833380244277965591517953322247652368327245730943994639836663110770354883067737912772881579125001629246071174363053542923894674840646856115963954775721549232088123616425648295424415612175806056765515063140558917074585744897293061510959246991214022656781494506152713193462561823169722293888840196150837615137486343763657310286221262319948377244602099500390841415943771591792575902008870945340376265300233949834092450087648334155229647220199273572052415711836465355563095968151693526329711772288590345133231750272847027783532226297618994527383708821347489425024260616246878971378674034853853975409287010142351201133277541025179595180575242764048308132810504814130689521542869644548257445288912329187396105048973154266312285522715536001336374217988273235179159813386577683372175397318726612880207985540603572544612385033289302984243051878302129370010899743570562487518652446831717779563675442807413000159027919365544430687022041042197479663284624097253753364289212943010362497325028898553705965036592619847627466853727317722491979441129552855691785714040741965974359857126343709590019354973246173182932462950411878705266570993249169049075433616037322459672696883225554911626376612248367822364771020386929249511784655569817613178597063180730311813138163964068251086715067602980511104504762091937460663661337584986961477175133244447521019906359988878867674752870353961676023349279096232040203864510065575861103394671007622964917886880251400862690207230975455361958015269985639763389749376099772713364765754883644494475486473733361211196464207560696129604519957400563908825151992035264864340539805503161613175314851837959294358497119267287570004146211861737702885867730094847901989680430636947318345996965087134734681672061111508968641560399794989908755954986305830595086701124496258392777733440333137628470046967591494659016297354122363164471312076957119965074696035747360044679998246927465157808397658041951667930957861895357550730415156821640201869164083974527865631807050294028641384105707767325598414433636281599515405135077667040075325565520346851635759857006688153607140542833336216381216216041432871658170520255230492995002106204937925624565152956484784591711547522900612493848441068729607454708853866163623139715118654422045083592437651844015163639221130110031573169286183858862111972183016804324228552879997275166048377849455635644704913279485213411273924741066451910762767522186306643098719051897046450332136775225925051913355384666218044743089982664864774253533997807460326670166333185513731345462339778566212620867393004402878151093527922951185863720745848103773403235954854124349516422911307356167871859872948109410754274456469495019484524942381014137624891659996509039029141103466776385086509938573798869941323362520509161078927866197989722717117215928449279314057985629363929981386373893075290084843354059750826426388663093791510445816950132800216902449585684638603418939507211284667633413169227662486992590635612955617655246077487456437147560797893798306001532252867949073665704521067283028916967938011320989480067743695874799628742357590020841072590979832869396216841552566336802705163366583903062042898213245873183588514829299085312596593012562906891077825773885586917717917978536812342463243300693945281749964449241414794844881627495252464033079831453667663521370836722487090552159689536929481175420638373838299403245726912538341905017482817478577199535052906296232525236176178355298763692277343577367484171131367527751514612554471944559198504482355169772830149723433142125714629991160412314856545939096531584291112860194360302232429445143991267233773836526108837194182525252707281665417763871476451220630970725525638842171115500335385514953952024892869729968660547546545927085387891559225337117959441604853857054307904606274085119951570734241023645174345282048286345035045808969335650463711135866159518221007522860678682335363994157392666039421770604500933905501378894798625013298911475865018543958164716016249808124013006630054027393080402401842945854723109817742778986827349804520532723327322818085777006646384573229592885872332602981636188868656868570547652281890886582802743163888625159027676712923219638364380222298013243259824100256600508528989069994259344756103143651596885265065689400788984689578550966206932801298340636205819648210679333081148214353528369827034240705707642157047436007150659484902742448284807270615796226314202857261730634157477441790867531577361425660580667738473945000334359929086834503848534028465864556156632379770979161527307070083084249586897757489963672035692428112425679406185551386173076118832847163597943512499137622897097816941798058123137010847622225439137787470429584202029840812777547753250207714688070062466013535799327693459781236664510560122397572354687940625615394820176798939512041315188395140480114880793175344393424810342244344290259173408761666551242156464759610740333472238487456765865618226893882200015388437726392504952264817409767231613780258600443467422212377568583722065736699534165115832967991006883022963560198305670709866670046925355253498254952267773267143379948842758927032818808049894601814829585418930059713787260802019002757514871073922842876659564738168139216091470206917944213622209757655379238577967350620106674646382139406656367325792589182869859719212819623269790514908771602200866653137230649436324617877194104557133506588799051548004208887424980789455351699096971446380311139035004702861732886192873842112027583105828046231905555063152337189092122939552236179944167755483531880534078291666668260970865611777266717502038766141325827630416692391550749876867943009259142336049351070372772488593731861294645201947330747002603289343620038454959116121067177070364003803379482105094376090500952336521736310515219582541414064287138289948723088063047566335284273523624966610878235262787708870522877999798809310847029170694522434015034382491693951059642806377405875169448633215197996547451690749461022777653505569689246023933043382395259033199949434772668760496756509750187980332568363301090314630125903768463774653104747647089468794057105837459214118262151764906962747724972957934942230566049752651803015904474056757722585069129329054587826810388941076516346515628781508151932010200975508017836413571613444440662369439410309568681473163639711949053595747931011801735213219807397644253899178167533338511243335403742577784243985472655553954468349283494852366954763738044749376275574386440118034365412175630856942173780791005227848266139628838960473906089693189907280666985922003457185164369728140074750129335030756645768219411433365539007832391362077740900513842728405754130911196621632741780052289012370425190896231691265469914934980475488256788785395162351662679546773528361592539684451934293653751513984796987543684821500574068750990696859444901511710740727937901340245109404848047457148442687488853061999767545600558698777916684592313365540435812958274613002120366585963096970530194177482641607562991169016118498682568850135697376524289408873202015279499287145149426183645795421860759701994395175908021949397730614370005897054371548920767814430851133846370426753089747616934710191312896544616751661003764323128446898417955371957549818736628047973985720873881534990755126940730745932792958310614447153603383835704448784442046055218136433006012373267637657512403081772794726038619961269970315938194726372179265434062228629543039164423846826076299453919817586614538314055488366430340355367896279626712709493993742093926933580835872114459388816007998544870075237753669878559210615424053361498672110555064230824648223595804802385378871293965597167687042450604558617740576177819606360420629057028553569059426551933133986537574267620756746484824115394531920360482143489438436208395918786686448391050117118246156324126447386284013540494631812345014271722285367420780896221375492782576796553588788474743195914453122922163043660429213827896992318636142501688335502053065173243911053921106528349906290690294522262859478924735723290731984679828218851208788602817177647967642009466972595571904716194333891268140873664981052482932750598610424073957792424928350983272470765567999907188839519343705858430992178531577529927108069684594609468276533197497682135812004774251600867728725600115969080285222677822091381934534018835203372717774832873190176489875316886336614889162070795434442461900409032062979516615542712238607791405079594802686149828228353670842449339071507888691616694213961232680649746339323033599709863144279111198604546406147908864022511760345277441439331924246629075907534230494673294309518868123212196005681298357859504896012311654499332042250461667345773964283313639372957713719807820050575508954873342846161828388251244875252819438465645721556964976663841516663255819369519722348343643184637971857625376902836657554813980854270799786417525944754191806541191865300283416001609901795666796879303979760834742397503321297584978402686150222648879304537195560297186353271889579495448812189677778706669057523975260107360409005407484505520355825690541767113607547766929300810739361043926231182510506500555787565360901011036961700824169405084379159057019746846172073171680965349508827146506311966594237231588780982887590625553586564933714082857854626897442627543286330479568118789915838327230432149024552963702869150552559036197676778871640436878404640005389208479721732387668688699774312383507263086178855791172409481268395676490609750298066514422527399526072386588515357044741347807742309303764017564430392296025763287913689666160733656534533528179244186780770878751852695085879871453459492432677204603619188300957528612051210819341638096115101048838033634343070743213429661865984839248636407479366843234134255653036184284362261771289066936748254584874015292101081910345418079069246933487429122190340440473531418097784361201229748711512919468410853904816577976768778262260772588709444673941137607878098549502922672326315109500630212020466068060775815380933024180102272976474067085029183043746322685490038605492692487581275393210841638022044722135584977217096852749853118970131803940059850988388286680466946242937892684908225416939647842986980046218593520369758563768601805774284173060919700716903467433746050070510352780290069680021595187238118202421524414331109677520499634997935852264045227163707954739458894871219275465549893058198388771611153826548646100709842247194539871710762398058559420130039366011893556759621216092349222776615812382006725312526635750976141716704435587098379443689759100152492823919306805899769145794909712057126596086824144572059217494326674137305199115337585039443290016571604261734546555519681230094946682632729783639799036178598455379042657184492508908348504300509121487600459346430805557101753910245064562735036538527118800953907395445581556160088427372666134543205076248448715822212575255058990918856951010309599362128017013851960510471924635847129414978179928026650222507855498006460104799164510781250708696986835764777315551400909868935977112665088129869408813218873159815648418105050982682629772408832561780635785979248278996036585933598600394193913889964276939505473812545991264861991949755297247846028971751160028957092621145321983128709846844858799603792058705935839100876031298605816936505192835074704604039315167343394021664721297038002580596522113256427014691732045066963745371883257435771827983669559986427209161503817968275500407244481545822649682148720479496955279633567653378434571874848495091547008820051764319672820582286155267726445823730669269850155308708373044626107844734194045409338978395178386111524396317206312990766416693840408774461956537896377459409207767150971959273050033336450977608716777241212787120928008103440758522760750017741981571358412124074793859895408765050548318096332891709551426126122441373965215669829139124355263224359512888445637492106264727909994119872640188261858377118267240137240921363671002984304363638588418732323197093443724342367603877971764165510036184939298850072971088703452157048557740969580691690506305694449599714784397241399635030282248242903293645244656952361543385278970493151210459282632370990746747906196290233646265378144980336451022674059216942058491771717204392951902258706072593774446841774211864613612220157354187918365946083835805896567657779207117708006788609186546559286793941957369776940848129398967408725866947341305763935070518940598001652619568278325717847875477090754987668393217099130870628535908069751563580181310734076557021167225265845029575247278218283057671103103135585990140208567277490670934111595626308038435372201900549018328821772338208100623096287430821709566282914909060251889827290653486854148256985794856752563604780346476013146992581897259367885553390394599371407512867892603354323336711576219748391307875930498839138772640423532791064514165232727890131687794714615109521573537621645799014144152423046872896910312630182285139669064044468958797799711487091485928583066535963589112928423066793304239382111555135009064628686135051433054327652806135730144989200109365737513375076583271703632572982059108938543116177149588216832538380980835761053608064210201144848007299385287856111693111366800377976839598083111860045226510873624462844090636297149424932891668594863744568775625450268551324379624708472640516974490020789856208449962528288199509316373893361970670676002816713685465552652442287715576048473434289835725017135516140192424325973280064287169135614494676087278539994984805913674361344653446781332853024500176452152141155879146750984202110106356721870937414522517978820313136292965816672660214977090478060922947405708285440811924041829925496882770042836924442629722795636366342766548784835579512145268338694470795379336676951809804545473478964404024110228829330562547354607229205282507166793405446863623502153776151340466868638351396604474702575503828219862329188653428789406676352938270211307618699184632195372115366353194984941351524664071079872819174973730335524323538896080967568727277707585006506735859991605755283009250823316398477686771509719334986426553928529356777286705250948775529772930928654635985901711874347846864715293933015073018669056984374438457231818528016484348572022953698790781340339557710589184967150609719964161960255398039314484282471344479994833881528118136305141869358727642717795097458345551262953609834588617513527864503937218291863707042752805802736065769985056087689052268802601327757564888865149918259640339323670580472600899331301895721544310650908023298869618792661804222159279123121546822727632814533259285801151520231382041793747517011749127414708355459278403839332849267250280757769965748180338978176266608732933647697047542112334311008645660412884083665529695475408270678051737128761448930154826032351473697881635882547817243516048632536423451393494545800133501621899191273943354740646692687032098079128672858662347439932629135296838004088200469258619212508155582589843239050779297876314983352564275951149110744310771077365193658850477541798413968191924383006641311457206562076647407363597655798292246421903295634279080034734308632166101203087939309893700874494289644200386848509975910731162222040311460699410171610009515968005694144626255281370395781944672892857143661279643537964034227120214780383975492727180359385168099040989635308288968704963615391622851253779907149268914519962133523995382743374774532859591811585915008534981496997685685379464176562069881324474998275932287461203001891012029259354267750549335314697739242113577182570286014502646056321253248362269012498837709796420364551219108568399703702429011391716094463382805676268447890245722826573378022076854138322091415090958138045918207657684210175335168104050234832618029865229386497691132542768548975951740124900703085043628047467831735241886643737864769860344937527265149286758614034532206103567647934887665207234930193442302234839491018184247394569435124227371121126454601288616823132487529124923090089230118456566316572377919579290101882709671498847539819194617599133584105263304071743926048703831429177006493020514193543980026814215647848015718053045807814877237843923628833110357498655353705184420372334860492943954233548929980299710805399583322059838247081048310260048541436353079926867120878374501289846123917719238371144388483614701342075537272914361648924049342480954353242081625382438618445495228150164188899210391096738185193335401648667994277968253457986170473083295167550527407360698731490863985039687649633045177729616188802302274770322007337952012685968728011787237121117877200111655072795577146284206333750065782530532189244482093394535204048661449945431535162908905107809344108507269246060503274640352881826879645749015587017655261861517826184289235754779307436302282393834750816593606881988326283527210120170295609241220077254621138045306340807060515823075443320781833025703927323185362225650998453377842699638959268644242837253783729217444543498045218577046175623557068089810943059670555786082100297086009276650223009879838151737189704904202525041820278872410429063547186115977240159858528138676344394006518387289694034477433015877414522575627842319569144448081749614963378217007153380290169630999620275441345192985767367533867414362026728027290885481028375541557565269871477800034600016280638127119259249186794394259181135864140931516276150518702088129789511704981784917572372213930358226287465258736419101511792274764816150976776343445757559124786094399885775812011149529856167694170864871456016368018350253264070314014535780653670667399196739742773307917028383067062068901085307923669077589326165801069568653720215079880199872671911885697838102583960659876332316235264764025206359144364756585151398285364918209443464883519999990530218514618914704893613846374681773465445331529057046498738429948818728987675473237339404792804425624454166349126427891717079995761629434506883608086793398338632818857894285626711825291515622851901729930353664150562530842045302106253153010370541328552095538821688763198133129614285179564547538059887017109286179666076424238193696691873028096742282564686090285590524962342664370896454311448465827913479911281158744480605868443202023188772176693819505679442346221508894476832618754957364122968238123874882427191584663110090863597220970166087525105455020652923271390187079978856750071868797270914843495363000597302033837324769124944634275487335183804173979376709671650589374859460935828429018633387554938573168954141703468991960546808312839797944874711864380951967798852672808597199621308639479943307428232794805122179306506834404030472403827483829228298587952862084364192809028748815500224380353308315929765343080019550826871928250394794278195830983675660501112770066000864068590631213519515484179663550309618360470713572028199921344457571798893548372954199011734055909863920123492183701394041295817506101340703815890760137572562722282639062421386760775038050931225362920566967073739043772235914567842564156593692149017403423176429189593462460137007924468118634746081752466545468533295964592801427782085020031743275601506068688511937707720390016456391515801213159835703777317784675005100566674798539334428048098496931103842231581211776504789363449769939033632423536346265295958348858881516806323770871320801384941060707976284285136660857746253370526464880328441076077065635843677991970139079206041194071143203204273114812071610444396474709859973870953355185895691858497779213799316640343582593464915506012446330269684004654479090746375331307604931836549985890385831625826041343330960730494513986512288798160369950070351528183578849032504080580435954961772315476140087889715491043367946009182945653692651418744395937003906277299241519979304008976278582629618655034961365930522661766253656780362506649286983341056519245969605097338525141617278184931098339060638078689055315696692514900980844922640125663768440265353845360614094434829079950941176560913820229976346581617031745483191420680433044159601326576298138192719631962086965784315595223606773369132967753163294474566491665068851981783260485443025019667097639646263923438763369952210463602616361807722706858196841245680086545561191876005741723185802277583471992159796781212524634042813053749085694126375394281567053832935704566294216828154447912241353557118918169506807170124769437817050820886664572241356310893301745137346315774316009680912686971851454184304164811471511689614056733936217010561384245126102289261661858108389853523714258778196538894086375750587843446505045553719505281345960397125877454923137101318950429113121495862167983460869320675568987275619263647263615811903896742775011695470881251950204063013462692875162590687254663492049639508591584593163900672178819664544483976423137264372959505403888767814446762375994216867811594268029376048180199850915514005438786568677659496834923090131109846477067852193564916858840553310281020241937700637979398214326505609773580409181916250274317931264358231812581479062329874131758066176905120701945343221685169370920988899861991996300544454696481906037142131401488459939649352543686595549948206821436529457308269218174290276966998111607179571263551783379734490851355771371932282537544879476295547281283235586354231904498155393826687228500910536928662320608456651319331895929275094989592192261478491192190406176433131363201900203217021845367462539965739495179248429990730764026769451509481702844507451643705922299421868211915406543526377928648577711541541746892950816100598274554354436552238660593735077569353323423277988777032357658476351298578068077320554109482508127421230660387596638585105086728365378510233104820393324820610979681687503994442854950476271282706055133455833361982022615921011205586662749972544829077039767757847265486851364992150025244743943844808779432800405613972653330161335768044434015129080123017737917863870092385943290302518320157653656786740263869758002031329219776842457404771467033836130810383410954947427723217376871417454974986702842234202838036430417600463863831846362281389575714791913397401234254614542350872548986448818531519483234588097975800714532708808125430952704613946616711166065087976706976614679539192786547049463142407713409110074670289317197313172775697585949155962642172773168324276009679026407161290638875765030047223962421137988063515032831935995705612767937382878055989976012852401840822408968431266123888807828095975524967976001488960888056557453498804828363175727821334696986108503515547643567410827142099011636335346093509415151583080311227215482186628403964256068258889160633560657722702683073429852656712935592310827720464699839489619301214932350626720044836135939611839263826993546591245891828884944194019152634871581674339221520171752188678277528403314828056096450283934292278834730455323788101168447472557880163654059326794901707065715558063842046415559825218885209716050457322236973054835708896487198943580225177145350743435536360950628372318326795489687095945757532803423687878769252131143809876321031596666632863191875672512616135381538254995746259572256527473920937086825998308107056396638313839296553102394328483780883476864070979066270889273060005941842056927226357183569594452020740472400753314331244091752445931050782433272521084291215156612838430622210342913223581478685963081395340922998494818294879089225152084623594452852752342483061657745021791811488054500271630714246069190941048956622697270073052483114295440688673378382372340500500296196728744149173554896147908479818915374167834381877578984553255571080383643930326892467039293885127370784826816623791910242791092020429505718222118382792272868887215522398386542657528405232233875114642388293974878653731597632088706313294627765403832277213620682786991598385259409200277987767149533506464170580741610575888926681878431167951516583246257419939988746865552840323592011793327865528879938767017416551466656553780131660306010309703493996632099443050187972124758124547794556317227950052392259683633600394678842552447234764412574179552198506477561610073923908245025080517698332028835576751529425113249070216977300773278013805367422111125571478520120744690129549430510345350882919413631739699274945716813121223677345988416185937096558577941073353800287153713828375533703652561422340435358141787574845686978829429141526898116415812333505541270001463434555323949505198917149308360395750860607957018193496854645460185504070453671362616988960442330731441638123979350829177081357145423330162951975096213239173731819460157713237601914299822908500752347965884154093424630915558595040726404021208837543854369408953584988699415106427039724856528533870996663594025834885407588607865848400596283713675486615488408050358101541431851826826282806749464375973080308761619183222388328857302176118050698300801537960430506837609980389695807517578663873895500834581661464960475543451225346881165556009073122279594206003076563926937223620111217962856042470005281610647640322412521751536502307680894277168630992726029870435791647751109452689715812202451536127680640596737295538067397382578721485355508963824649233778509922132821830093806420384989567969942846537122813060345550190250777813028679393350016042745616912747241813197364439710364678312320623342432114882970037023224866888206975589186710189424891776770622843309498230837242832685429929890543890482347951053285883846329335550830623709771282555498077903957427041432311272409064170860489071755859548683555544786545793756731816643588477528475558056523309395694699251768890643957458220354890312744175282736859428850248544499612596524358453398116884021877007167447655100904799899377203329738155261280683763509409397457211846403923521696228447106729972606071319109971668010773708176475209285870249233325880538187058782940566227023110004770207694807315822623714958915437269981713847407891571096462775474947969680245190544972949040367324498175860295738823371989699777107948566313949997596465675531884138773803346102376088502202325182959697871086129743325596416307548289489835211533232816481340792420010206573713475119492795148427356730113728725953619007620770640480493747124408616892638874701218193838875596813464520019206173841054491057755702967044092192130593308100795365706354191715299378937744304044761850341375299126172894067189414702227316733928903875056763026630304137794827669609750950306926002015942989571914512455956092119127765295569416270625130621007090212174485081398505655034811489208121155069041774440163868367330006433102951121009911563846233593288805806143145589148447500533126938403401724833007947087868778337420171436485682366744102198280104464637580624318980564735115098504052809649837239474317968099929229204989685414473690890107093701485017165811174904512048242634636782905770480285431193196930425399018273384480185441650984330813179285020025907068299881215925711905476213188201358912858957324696171829878552352755240960847168600385130287402216785837235858520125476509912858957052696443931580448312835794560334549184559694574800219791220954240544680657875605588142767914378041577069329249841733703808924541981957010530338869236732113693520378306968887239437796040464939452288916641292804620243928015067223639371699516361979299101499014517513180046470107844109442721021455316731703959457677760634560124136440503134146683777331811372110615365348484584104782942019438367234462129250155610763514668520567420125108081279158965952964549821492007452761311659818117679916597202068690372282169082901166856951055074657470567396165587061683344037744112196717151754359791903291814124629913327047191585527805189772833893588361954723593774069199206213502177305486155162607375878147900139172219670387227327442804317289811547024057675135840608364066776870187087174125870482404471009494277046138355083247629519187051987297065994637923330466249047843884986870996914835476007141713721183163475166525663146038848821885190180455589901912422124777353368815879264840745123346322763650417469286245803148652886586359487597991296764665155687047537394060488526196757444618111356479463033142102227900026312907883956026462060302293760367091021976236311482892018645628951936093750498669822745998982910238495787845483690808366037063065474024895725203375930086969254674476028681194084796942212188360538387133203776133789337917540163379657063827316850362268173225293527830176042157473737403250090592264457016745333120561425583676798796707468876670936136945300450022459381259263791270876141972715642387091496607129450625345861726549593852033560860284321490711795556171461017850954467790535160529867126786813676906012192556440136369017557404946600277842640162780234754798694430246707753159874364928511380398193941752396807851233948445578981101972510042446198342610751251130746832697544314876070935485754402580703159677171324705485631951866798948051633879795827521998817434629323281799899682310965520088121449701786435830513739173617392467459972698004286734445080191230108122146154545509489127257534391810109956068985668450301210271509978714682799333960917364618662378953637352954573504960777595655716524683473086412668978254656547362447879465684700468458529157656868262050621101203952143774046691379948471381338075168229730568473199179429610106890146775404809616534987365557968393712795482696298127695621769367997630519882823758627607345212808821391511340625041994361574995913568509860714841659934363664191849263890441234931739754758628369486902931879265898233285953447693705327863901993196620811147677548727204582462022636078112066426816824711228257902305822276823535049624095671598664738808774202535527825860828738521706650995348842804233539000222902043790897669685678403371045963002380055689404127700258197092572489672401038026624995339527008417882436717007375721101243932741611909414242785531509473913889764566594790704420453241753259327604656318169898469524763801414759714005096493466253069754763802552686913392227840689357986845723828839167101843181619859384840249756370383533333240157388662809164225848256546043027379388887927277153798899315804797144323773259401690425202087862005294476931015690584621205975022938275036365560286358787578528707479090037555035707164777209098744222326503526802345683996737140240303952521967113117931580151280267864603487946207533033365501234462860989398282238135510937128076383601107258314960688721365601486497844922741145009571112315486357593094310842401865580930563123583431119444068695860134589777193666567881767709603059501216842922199578534785691818979061834871235164189821460437903567552846547292248785966027355671693256751710440102496133702242613954720068725615949071443835986224664267785751827574325456412019735119573984905399234125177999221001310777325091399650491377996021419267989860455448129811535530285667511091657668708275573109807182039326520768345303530231413596008581496506809061539952955253271173144325224686715299745289926330200860237394135679209717054603328238881186027193854820373790916106929654932694767010235085847682502056198010123490880861491283452006025256398602258303060962142853551388779959616259208337878534262061075107807693674981144389202155759529202346010365335366187386975209351003432074420219291302782449663313745926123950889471305383372555088797766772349468934371796290969593858895598266044892815811081314279227277809010368416245878590102445409224371690530944218242853559398715550227325333216268654242252401696126037901279999693642815486083190760578137329867845460282329741939733463464487797372945344021150700860782848552763188689372224968637431569958288581093743967529908296774924886096647454678852340837816293794820114556898588903731495472292927528155855754409061868548316686654661930116069592607560223666700078831406954494611525483581408838093106639291696767543828493673250957004621698597646228094239701653119398718983891865017801338597439405945044957142169494071528969666000773092119680088738557664858470272512005971168541707112740316449565565655666214387128432590280062978333330148793751625360760175864676035071024637850325910118146497317626574821136231609515576835832317056593953430061787917329810178220328236764481287915524049090428236657950875637687939218905113617703601278432368477354513304066885538501205385188023507843756122671194292710183152474973326805162516654749165832765749545999511835623406997278873199746527160813596720535515140282663984166530059394101008856155176258099216960388305942109518507888074064867052370111854408814744693280350355385060741175305812071613542635613337312431254807617682700954670178626636652333889202292092847337137384132950466429110386544851472516449955547271485479396641733628191415632182402346434173820241411987285408321222284079464963253868056883893143736197930785596272220273117054645245559276672353584941013483294286890316922739183929912845026805695834501945125884004275619022864387415990644738791014320548490856847971697745652778041758486451099452122734308588908332594143555053758718762218392907029059194028199277612960591984641630675500191261362158549503467435944301441004368432490047531788687087282780039212428203381426406053814954437253093485323632548642367537494852695370916355133106631915757503402236963233478371940947854815740461163088550312382490038461947621166257339690128244496232489505467495990142291664811038557766775125254345526324901123254710471166947526030688475229707348868493641644641332380535662486255255389858098729311663450195317086068091430390570767614826493900625623384533425387212094052024227185239847470124108217520556794322534704203028332949414006857857880623854536836200064165087162880690890265878343744959548004158057570503836364457105222658165153992930708492389651368504906341580039642453200222542138553640092452055284659147119123595190688390799279886847873886102980148967821620442701081557810170002375676587710211993330862457695808998842834222038047740209540139273436231103880770838228607285237589999538505851943708504044516501218423663571546650626368745397247620683072336920543869793302642614727172853477842549204959698880625521532726470495136526003088045343947941752150997879295473190745477298726174441028156480235883281597368102413715377012291370482916078833015460634765930390502741438787904525931156762777552551201799810455810270256789819572043244997664556692359883187643178131379800295069958038627249400121524683019127753338629067633543013284860321640917464710781060834319700026647251668874476812822296827697788410866519451210968112651442910203660662124462783608670036869109229634232571689251054564605802094006988712044571646857757033269594825740576070411401820691752489958036861980165428831173263529535781297397814578389207403530190710629657350380488625266691416632880226810130544854152231307826534434175628175755956806081300375467904957643339099568927250638556828739868895752667771682964202220339813688735753578203533481650443690798280015319119780980173072325481861264455534953302504230245029286051057349699910174909084429946810116646314641871397488764493468468504269016903171348904904147612379778834471577516858619527419280121328865564080558040921810415623160323381173698618769552758819716012163287632839853272880161681239910593819766249884694914744711655824826917438729455231357368846548334778520774316260399205627662099189762644117518302188289669933239603435487131195260527822426822034981471714388220980119114742765385663875094370760138864214099779645773894135500630081744751215536852870903039930434390639078617732297045614561844277291869126770869693332562360081881225243161219419064836879052418362071553215376628164689746913588892498690861953690603544018193072957714782708224607207803289703345661824130196448614743449027471018530000133728201729723006439594438010633440714444744221048712668997702330756410145859120893739059409871269212154716125906112553077933157151738203025243201585510819507342022994831808410249920610729374010631570244323957216256347786343153846850455503023059214142894528535775753004119592783805302972054401904924496321454125209836287373391403293161410027523891237728154704480767665612943388220833320303545651586238234054366738728522713376225739846208088714701379478997655850140660500258042499703603546969811298047372014073777624643436030984553496586637092036720280223857694708638616759540899704203966959811970134394829431746712112302537142388436102465805688803240847409554141931627510313251959605231672923722266924931487567411492420857854215186735032770039625283828642557190419894752192862959824519775833987545580030505674037412889315788180489899529229035272679668183003645078833357311206087430390416052639872270063078078109454609505700730824052346007575220236383587610793716216155839031822211570662941765904086699215900358332601239789746289354469093292739661108915805778813335193624397864871235596540461714067179147305913150884210964989432699963602791649990636598071167521719640538274070967341972291688937021245850905940983354765559092271234451183756762761933127282743161700322553276424294204431300611229643406358871889741269286502522509332698488535949252054894799233775243549313537578604701703550388295383864411918787670132732036378984027153887837518835673133613854389537608692898493609440752639530209987487560719549903933950328020829825238193707645297536117924016328242041523698400644243620975387065719665925788363773373399880500121823351578696491090142545176290748442115623971613551002283591138932572090942854446974142004503553538699844566601944014951553885554271774142647744435960990288943503547337429353922136415015598191764006245908581768470127423830509440132742815274933999167489421202096761637082849044077458092784864312809881169307569369156599084626227945884576250935450507428118262938406390184820984679062687666053450144949712404948237713743122389020939354574308412649416492942695462724181519126534377565877747134840035757842826264651638393964876585727729819064812441914359150206440330510833119974456825649800622858138721313007430909554105279302246481267681772415257487516778956963035932629186608972745605704976811836607194187749388116436691761913388964155889049304136233412966831556063523012076477907272551776827031660806696411597952058345103517620052308826276177539270064279605446504732087683807084698312714553721282858318546505468786215558674099017531561691163698281128536473050829157656035638481781537434350527093691211270197863305694037432169667398099423200857501641892705113641845438155449213300193907113430289861592079098511242554425757881017722593646090929593425621998162423054375423137595691489592698360007770859337574327003126383668045530441359277072170944376961091666454349197470421905743625487457920344116289019343356196906870668741911246561927798928149170986603679244387765580449143280770615296378114854661268435417307868323486081345219458482640134378898358091700633170337403333578473714891729544864517131208205525825372873130479140434242849306846651397091113719368279842002348223604326634661089728793772421526751660491169002133353976687671092450015008839601833131322110700536478450735726390678351141193767798964860963923838759921601759647421974275255778755486712910845586545154294179238884768190285649213901841058732164934139423655838554103323590763755549393941233406175913852540127957063960372459102597743264406210817373580498927095879815198635492529074357057960445733411870122099608943765557382667395010050086874218568778341745747403857087549226640633707121626372824038782736404680900377178600649645120157034438666467947046787856852467958249784671449864343237028269696712614933909770865502436076308770292069548893970080427432160630909898450910857198731801490997647531894609710284910833955577389273703554746318695978117024760207906703911464833708377380441891790463444863574778927493143853639550758188513020888344572261601920062297232391192513336038449879628567811560737005781920446945564973786781573290488097667220960407067369479942952746001740121769798645784760755585956723467344484013815375442989224192871925512317681688479737408308594323088161335986008411330950139465013634648225696613088867220270892489001149603329258888954687540863711069943903815427026395637320756351734960052320265912615070229850190960685452774357593270557701374019529606474027565473680091280489016774482245276051328334243016775772110595876305642629468492932574012057038747456796085319827437195077514755463952674567524207050915782145647974236642964701835753174612482098020171580146274843493959023477937017371743607464256275884096003564452784490688159145414122737207422204450929375584586075243197358228706937006880572174287046519519020699897717886972683405501596102389467785605766905434941466268198632970627288591728423947478887792761027936340274919461469274192943829633587727109755547161955116846144691581332745246069058534163990770096142853400789186420853762262310735531261840710477219545167077632755950707049567969553124594674115421181491839660155779707219931529135233435394885822812986258559509063137893050085643029013486880633112651809160619640049683515449330100073497930922113661803512310757972747253543249647651737757146662141540878482145007521394712679157830985382120103867982986206679057802598053736953197857683019471357496758136694746623829394925617426194847544370073756374083069083326579758493833728192501750730008189937372985795625012895962527570841415784164797328548967350724827002129659985936778992920944991488987343530505889429729286196809084071609440721324226989864541672834592888362033914489540238843303980044601017885749837551173056075344627762153813502379268680247616806241641693324895057132534705091845417863933041311489531596838795029906902002980614934399890202339902373389460177605580254781312616102471935503343312909653953127200075308078559726456661384944503484091814544713401355528824004046688625770048851125530163179897990876080532866054759430956330151119163571939833208844106866940590835498200130836337678193584873295454351155314145475655240385588331917906441408212139558378627845842518657460186561240185236988068007245521178317875618224842678794585340903655336290549757893285326195447074873414672495527334607950359999400681368494443906228678101934160346414690548721312446041434862641332870940660783691794254064610307934878270260824232001733127798455058151135894637939540032762182975495222666611161385163172113747386202462314093329954423467454895939834197810798113668383294204118578408911216770817681463124912309388363642200145404119934487925967668721301561580365894504724934246455485287313414182025038022842941230151448723061249633006843536093910927825318466282913279557724539083510492790886192310058715831936670867448460917064669138051628968028622480458243656454306609822035122716442035086011818434338627266703495029646223958436152867539358220911289942016014776631220454738233514985928727513652710473727625147458726995419606485307908020984042024533359603723504369268578448541710506769954611567120130717391015130265825093586488586493664865762200116844295104902878428951497143631347465318727426280202763496710276244400001219306606760853065652590181315539426170413715482038134760989842040470102928052215325404587823146433418927393592112791667914730527236475957278964677423959912328920649963671528584055845882199405742738183536382040069042222753134043927964651775722699663115743951012400904803534934852745890435101823238377773918321734466295476717715443852124570888961198828191295870728298077000623997684724176155235212457385590316381623673485042886532565732120751188197063765652800530150571848596397157342391314018043511947825305204152867534544395944395689904757518907903042109495260963948563545625853540248258548888037619484775798353603525844943786878167680760269193189706308696936348724493387467376634224874851858839308537360278096047902835148173805417025427293143801482500723342188294081365853500739515562921841233532575811483646603753018126992414934127323336446285208791183995123297613698234895800554624955452641471874228440866016633905044933499163353227216581092237198348719057388725347796607143918585763496127543010341854314629964036046580744570942197345559052463022437033079351981708928686476163363853202612105612307172158796488489596861489450645468888470924627386786636300289689452458752448083345893296279506797839501132246269185076317395355814642490478263617606220117428334847916451868868231237545437481450791065468941488258443363323015673079252704800987269060619887984842798298222155635342407934195815527268968149791656934563513030531812070706186419925536094763777618087756422263258026894635820947286700284961815197104862550815741675611511409743226328451694151333905846093140839889541294359812900155697797139131609393619534542032870317011986017557708286400422777887640712714959176318906835180821715592756613338446541312258584270641921352037300234279587076303689973515931239543001160466226740231489099733346605307890496007337139303480176391777567499883901302635823851119184611626236503703632080495697849734412930192642683246913915213947552282172475136892332380409148734844472793508768417351411580503494804919439779582433011019133915601377247437900542241337229917680553339995222556622413572777624406015536479673080871925801287726694120381949203096818459158079238875416437162724988712533775173093763740955678786718541104076581238994961137222316346693524541920158867386462907356978700887517769129776072414468838706826576176176584519851938088257166569153881954321334334528277890957341643854248703315584120742500767529936030163656139972526784906454612528140970261479617033922434344208588898420897599123497594779760879196528245460689993665120052736282273064533990899379435159998607152087182368226686647022517091889018330539130674517460029878990769961569319435380130487546585060353548070507839088845156267677132897830954454336287033671801292829994642879841963430656110345619719420527331774510537641495365966496025028874575185545963409497340953023955078011615808233047648870203293074557102536378573598787618025112411095367424110631144747820797344323770180699153267419655785910009549925467233332956024230805348118291666414971488798031764028021117610541345464672150774489075438742159897250389730697215180986651242439928061516447611324377061929778503278796100940261253778065518215069074209066376716829593963968912716706933914706958190826920289500165884649908851643508672983485197461098015769899823682377315456636832890632553740162677817205945104988654804413410239740175043685258374867660490482592250248678302714431281089101703869226016269862091070589460143733088445430863942567969987893033717949282914647658307385455737498913553276508415312016485470249119273960530444576698510334255012022907192359254201575112813647014630422192570649607402821222432039872135515823533421051630614955021539080470425979217955661252491058154174789799776375810355510340728644275869054759593863578834126572859421358216464030635911260794192606927186912439377970907481754061340767612892293235513811356017234237144065974597570932422320402781217667713479808724270099030271442482355005460016460979260807150327463726547983227050645819110497895516462326623097761081443327927337899995108403374903289927757894124623488223916673183758209757876957942796303118529907685768966786550928507270179237289346491991922264438891328929356190671775681561438194070887212973767694724070077785679459982493100134766730196546186498008846726067863380513287741893701350877163397467866746924606790914481311181827411168096880082997253409972686102391136599548467682707451463430943167522356018184145739765610448420258187970098147274227317983726627856255746412668608716517089525056055766519525428822768273125747094586156775120961910519393166475876387590831312677521750004248964293959440214833599668505117449548903857703455987275395874380685527571300225152203709246131934371915274838933578139758464823064046162422068079502106513096330354845439676906693149452940459302348429799276310749937549496710040317022940118034630881550153288306047321136076321780634739076674841108901226490572967553903314776953215294185981345931398174340632454348993197457931641657841076327300950011057223610800459510955915670945785220057873199525751167006277957853341393314128313244031451427148274875809495515289539756037069720837734750858747203744821498533247982158844486825602886590336408621776702628110303667464223493832429651387033781873372681157452340328410279135015934307777436372511680027717205274045161345654663853707725029747381695608071495980934554027979915118845849148628128726387959300073312927997763398359565960245295388321965848765494956398594441184712110813262949685731100022782733012990173625672563260759457185122433589108393282353298468595648542628381848756517562631012366650700053762447685987909362376981874939343399819987692258257187428540536021771769162029024824439735234457669746535251201753548302323774108184962851089641143707789295556261931916774897752051954059382760619799102646060482413834863368557948802036260389179493494728193136653676615673617604707800836193331989386557673483436487549192456006453340171495294473431599331294335644133776964077521819074324418305193496125307421345318011831111031509511855444421551355207767021510728053835972368683866676443301258548303753562474007705525487554475653587676418590432775775032705905326568447446794707835614329001656090465037899096042278954433048271468148010479712130707336559080899731664915817152796032270869518640364639467673692846271383477179818764059271969003715768925590033720797161913198777829589874087231003754626517929046143513102071529044927789123626286045324227295524995951642629312221782991743539162813809773151388234776487967573153737427553629819876008319821979207374941594569609257943471426053004207884617069748774204613330051873738821865176057948031160301362139672153462407319092061204631942307940072683882180344890386122883914298800212892333987727481353279616600735737694706176530330757179323730477605718291932435790162411590632732568423892737477418803762519814115390857450922902827400726889686281202346028846411806896738167884713166175582485587558192002054707815478957145076137979103950168075459746460149204701834128007805032485879910422893911133008142629002793932241486387342525014455053325028962837403100877981253479129388441439424074578234923921633000831473508106794107008095254779084750783332188124084397003001489843377442541428222187033442546620934276360347874835594737039281059530323386380875798126925378689396558676485505847386821753838162983292110051579293780754510109823438911623767996904643257615906937867588987935613331089616648789345730443576422360266113634051757906245130737562555668820441206530768197422164384075210486383194943893258217037447461877144320702798891315434785671933569751870812337415781121327821564113879206900428927553874067916174486400660353758567032727245398461054241618002940106475773429842604244641292975340283094898357594863482817818252195310294821582801429234418873521677554858459458564109258050383852432738834447552672994807065413983828160529805939696556730832390274810761937479827627545741554373623546760381911780052024921564174691064509113352911827688560525399298411085547516009790872664396747040502668827078199476315974467867457518678987026537644533926341003888920933678445539397610909685650648617944119115821574911259152022364654871112823605544054522816453218407181812840515938570997031907465740557798429015980651582658069879412798293720653467672967668924143137685680115522492137823866821018246999369359911744831111972413748920473046752813166847276578969384108463984807554374229528801699736098663487766883199213399960945549068422074802263763087007464399749691718342149338267120328643644002906140365063155871317527584288480413894197530974118536488797222108580382907511089101643530491657596882087927007417889025611818101181847763786091340364844781706879742239808556397008092615516491190042888915099600157335348415182542434470824699309018933710103387526352449630194015834489698724843829847107909786722837195519321842117554206136431957554826352666684270086846807941233677952429641971792704149915717885550131068256782726073690835681174781301964001604399757301280688280457695739115409986855573983349044346206716272089307667402218395025826129332363103587873131199252002944072525469497354807378880833855773976729670110159332167288067142161373620043557921109956110397656070176856896473849879332852148264367690830811407144620446760836136826939950906405399593003731498083386009375805739121802851918401611970249600631584677653890114274199369643840133315322520570977496723438819730118224278302847581174354864427522599688114043106531720279012976303482398886956667652502008059160421817733778981582694361453836865600463981627065298681658758588153446007458720669783323768919174214412535587234329700769567474157619040665375019257363266632333376814002679786553708727804274154716117375993895708477576327831030571348648904190834089929621153933810581474999584670023594932825661887040511129535374177308336342617441186693749485122621722559672797031489252303934779906368843847103266051818232221378892663742202584668765438807654959019658304517548145483089118790897701979949515933528759028274025876722599927855921810180519384815046438087568894645102493558623435360012302404249406812448705786882975485784994748550069837775781501855037214390182709915514919797137102452008664406854011983439036545648942033210125891966095563955383195991757913359510368663396638794290884227982745241742288999423391005143669246463836382099258709198605124212214053961564914348078610708371857941377152264687427762704385853238560647514063033307755313778608104528554999834292052557024870761539269434219817643392801280050122303620401104519390498343748839526378363168783981821560823038502511539959313375756261305286572617320319532147218944019333678762056635121511745816358664071886042808430637102735966473414705617015843351114474293447753354902877199303315639883620954047700551647095471372289531959992691656611484000453177150682527456610174978261416981247995904723573869495881654843281441576056597130023310005708792052620433730411298292683343881730266980164716918428773360783229735341005110707293672440861909964531705216361353381895735969652941798233894327441762709240726679560323642920296125604470297440920370442688392387478215437635310299134595786616895348025243748271528483335573255999106194218221085711920005722590595954810134059912427000257344178314173783336019353381312640997035518929266052690509083519465765844484718942521849882236833167706920669808196444365893556727506619602768140078676419071063412465119387718729104879932008708795188309882214130333771511926433759718121163317425066220612787433208253008378865980823664291424149941272800908489974886233071478830007571653303826897007923633894171882162067497947232658148406921376636535240522868921551764938077406157970144488127211806317530997262219607643808916510738095590347655889205861920245764970455104634302986958732613248250891051601897883135749236992969412588443163827065767670880990587987149879985643779314850930647823058173683406013740104317991440290071013345270117659545658151016996620055019250947724389887993704317334551836010385918959846482075890501897249771441412077693878731190934749577078243320800021135412740727284305535562747695465413164164488808017714278817531630408727875461208079851734487033059245285137120936870381005169919370871755614639701513620842992929751803607083209933160146013547945917810520809068192712194385157969707915947017896624322735550244022659531638197762209986005512429053992403623848140019568994110225968125774151571712023976352661293114524696607698637381392761683798701021567215716200772530447088540992793106927815494095352007880679617827075439530572821746518255346666335268053993466857636448900269394090975046915349862644503704228741094726484605076860115304499656634734169027089631588077364029828387779936652209925883595926459056198079713696544610987379496028205272761429651445585127467525584492220896077211946648410378651527498886547857100348450706958344424217888728482909733674854066676393575903160358691515989878744849348007161105826173838053933022662743758493590847391658251633258954722041502492209234518090893296933414161675195205544664156243760226541409942379155848422239438603453628694302827866446964740864800724794389611778311149173162741105837421569951947750000880480011497766238060810069539795671779693538915097883959768288154660331787124648331910568846981603245736887575975268498051853360441203756957196404229980186789612201486855831259092104032743685207020158543859284714006503618272863980209089272088774151894699471815029415725072049294749736375613127074919763972422615401352488550675852610843813283116560107399287883988804792912932853915787013291243260690088414712811969157369405136284469310727636239040709578850455311411469487405267028573643614589342497736406784170410526471662584510984864951855870137610293255020335864153518647187288767584672552950404805880766118254719471714167667985170708468117957006852251749094022708805378046190809412857659746957132665716726043370724978993227594598627384381139065134851696629164739270872108415865189026829325605916748146346245146115296634879787277749884461673084145494938208476766335559770570770593250570584727732359150212344314717193501299356556309710349784701617172684302518683864039187706273588451374949100675049213694653917713375243275971493385803222363225412514603120777620425570860869056408047278069037270815062808513120014415537607786451448660692205237772670919205131209807470744860278609082388675563894793132106827192767917436719533105470224693286803799987322440872575484334783025660344100172691508934841848404965465789723614508678403547715037699904961931263100949560997993677475883029353142134524510246869331032311883533300590255047189595021094035294261364940422855389637113320459332748868965991432489779593657359350092826472522962267596088054391778442734614116517564098969095379693628032822465211183042455370289680112487831957602413459122809564663234771906636097871466062471157400866489343826524562544917553716703532247692880885904720522088195535159983409795648491488748888564401210914676156000210715177161742224325637413588714660306886069951167543595427355310267919479348492206187698174995567471472269601438909740565638719698311876976993295041832784804522991250492226405102862690397203482891440182336085392019970131983834186327982867057355534449339732865564915660258688210457300948942952417869511744035215152451686102512189755221878958680497635729960173903994725519251603241749131320917013354727590954907032612835731224205039518632184927489561917156038357432008683069479394123686121664180149750777595043137140874621587036754700429770398383239675656907401750380357894363775157234902196933104586498251213402660483537411435523312227331456597856047166596910996981983491237780672307342395344678974727670346695155340361415631906868531866763999875450333323640648959259933826640490085132536784361981386813537878798918236011278553982529531467577020600659895402756863929201960745060437164950520103427369564593127842142071762569367069621807062310060322951740820263775669847139175900230722107366526268321844674292586092405894457457147806661473337063016351156996545696638945983945030232892499491694116150060232098070262503054125944193431525398396104751448078757810670664654138575901836192676263971214319105392470334333147460710872925194423976598126228212448446940044057355592312573421613236188166476873828477076227374984329715022317248764888524752777813173419261002641522041912732427587062978024567906221357943125147746690861419445352089947189208591224580650176563821046997843323137903125414106454422422264668955900924959644513133978207492781366182519216727864137433014878059397221070806253928095410044284699205872013709796759451171287979742097937407526574448313299646869531823223851574536544984623112595809797664194143353122442207953322805130714562310934575445683749495125653898845999891696253483753417818560875679574033553942394112411585678366689328782750186118316445348821480276860556583202925797802340749400281541336119023702796256580196862175193682313303665249532066510847945288075660327080390080790989935783886343242522511676677466928226344697942100276924259288243755273219359599284001098840479096923533931102767628192025876739790491402397875522222948704672333086248469874939395584443257967484277355554780866399608315365963073113072738264744282671827070339336216820557423559520959945277890020216280413328660502294242788350474507845710032787463595255613565633052982235138437207284301378557920543794823482870318257564142503681424895052688329104881633867630127256626821112743618591183991673049834895747109123919477477876131831919627574359221822371216858474750988616773973204635622996754266750097474151137529913044016734129566673569222941848786997068984021491314494583419096758486154349416807908151636163237898246179101675405486388664987504950219341581141242615792047076890705563694499927911310864464864064417498563815391738000024849602563185726452134006643067098858271503691754377152551607971996863840748366816818833981789232846779114477829319958217216243936877576125621546621712235574599619268675964654172418055126533922645148462441236099413722634432509662233294742406629033309451437099078600492988200905926458596056806807761448245748005007379525603714378716996344710401156059267726926729911088840242756612433709849807136013537251380465713132989040817803558717448938476718337335422628933203520526375043853915112625941627851618162947101409461084610728075610213590373189444034325259838197263356130837502008241005816237440183229472841767881142443861702825505698280631470366205729270328838213612557186428551681436080664898151399252695304356396448152789655998001576397114211381126394194044519931411825389601559330909999895713033113158694074966814426176931843944181948071502125753332369274937591974661920557905043196425223508376306740897768578487956323523546490654599039373373647435009478136658669271420277233174206681577832052903419495606561618562691993953255454153605239991249969122384038639263709738781498478612217471778556240821394088934168645529866080115058665744729938782878308536917458902423141713022018199461516150300597361272011122178707976049427233906542963200980812994007598019114786718069834774983518197398826005493904950730650926820701886383920699475425163324841495417388645374433670743782049437152068563153641380404081534463712088925562058367418144777197585398910806657759272402561606612485358021310642058777533190870559217203239640834028592739612169852713218968076548722366135939748160165080429759244675925006825756963119263640455668830160692319087342813983943556516158944021400936676412812669585749683133600929650251764442284048410897069689888620149165272952128787442792447449017349803431243349729580905146807504400903419878913622411673351487873468487306804742793866825645851833962015624364772243735005994283176273556991813512144668559537922818551112389496855982778281379287409815650316699238707457662988420388705854731537811837596002562665039170580708044375109733750931896374686398491688636412869525634330383192057585627109383872365677652381351407239882301760559762897925064669742704314922649352032802059440683986262570688286253384086254203964488373802367199294744967516821058074394445897600495565159377745803834318595756303348837562036095979303288307579511499995417016026644207219907942452251719268599644083816524277379297931284552705309122068855145834945999373558316226456044458274036567059133647545176993678158281657071205320646185463546612869310099301007637418139503279199486482609782018143688885650665270525206142428664398026545168292177621726789040299931578497252492723205641820990692862872323494833393794048779669978855054282487329757074545182030975356256592009949945350555297446975252629265628546998659022809773039023276105745561818269654545397379628327020821543667723672208349783322279559811429821523185234074509467024537875327807315879903674582262294775819661311204539906323360547893867690968197017739424584641553055288895837366733020414916646290933478586904410820961520703067910909449617887519087559056073763321653022951769825114252736079425587141195030893685588745272643380017559048262179802794742700686650709806112073558790996658107183169014343528474357114198861607618849680341602972393058383820245653154185116173903796991429434401600634147483571403158157790783490172153404783483251299150137499838105393724840068379603497823661557813994627249056024397845981622636568002938354942336198245143580292385919977522867030620629872250248079533240171076837540874463282153536204474474168897848995564086740004929093045505505517611785726385255048258688336437625178598254807085412530477312083050593005737531053202852023798589810945344378988437960891997198742215996556352121852220428216743210518752854190141514829699127857358148281877987230847719972954220076838673404300447364870124666939221929997693812288701955955781676111227796694018698038090420037779810961273485541295190220083733550568083053733155227935555274349921156885329956021825183790952432955996608546957287665526357583314796124741596035535560555733390946303067146611231719563049975484375159080241022990392516636284863325654717689078323006705976260192583973696559939304265281028379587188881242471529679833945022338290450654390793078238064617543429469693957730323911515912026163591238956044704244036037412700529911719867090158952406065773006176203075923099787245877627408192062248879496535044134196722119102649639919609388471177504646243766581574420327838759873310684499097014494707045299860712134096657477291264269173678647355517198047791443325017451935903839998922844946567396132075435890761731916853287261676282771369131271307374628031480690742004246632232328397783095637803348659356877010982496497333843284811017984725407639589009322933431932499575477232152910379992255807386920615243888994083352079119017831603262510116720928475491179263974658342117453783621696636186918805969677677266079053220894324649792550077017549882679363461620107518152197328343458893556047860430713974976147581806484384579163684307297715217491703243706440278505615105349853902884280986212492826268343466119735568465258840164697777890494458430221593606758844875302177614833662296059133468857814158449937754652423604411054326653205899675269831883322471774687743645622603813473467539237182815160495658433313169175347650945817525107484884050121583455550499149059248488332851832695520831028846759720628661567723590134277961296048293387004868280203202395701183932493820627997202651254713316645636796871994577076117182025414845060708350374346467681193420387378284528189430642839466044703385818795478174106429830100766062071758311296472731833477794933271500307114352383600094293210381069566673095747654184401222173479438013046592865572041999543215264298361207182870754047656603141556256587483561961347708584059399919640923428406433856750262740283825505175889888825449479193951100291205397983639236743958854615655447989133238397311596270467970165475061775762076040176966019994681634981252893235244037923195618846678566653379878162738141844229984370895075398970661666137434509347794978487574694338668801867975456967536318748795393623845673982625577797490265040717238240821180426312163440577131541136541885343769589335745335019796877662711005338839470154646821387736803273302485359324267197800222558514893012819823141280371989070009236462570685086937496616718862344486112377209357977196554106641522834681166576872907708765909851700396725988938175123961568841081765339069567684630345444643481377527627892147466864284269155628616775589952113639788886495030282568267641448542170805950209500210141293655319985558827457042707571689187703906531376402291915801834519211932114302847870942810133645938579460236858154928947429548989912756530291363082067852277234987315780366384044102231877207548117579716876088510319578852845620971497179390480342963247721461532043442107636182738689295248271075888170050738024230364716769077595219668199741892551685017501721641411650110774268891974615028576813533231092595833839172952550564094132206879197509053764038007840001342070690352608874102637650198916296331447714482012448294154415826425231395014909773418108991394938253902545902001476878886236149081280440964558459416411490972446982234146953456314713923905784224726342003753454826392193587594838370358504427668883762740906473599643348694620955630786772339581052030001577746640215670615071168819560802062544398342800191036539522780086058878717569145552781582510102244299496617540268266377909354906494107405177707492610268021899591019159117208350870763242710091587157863548003338610793578997908537570845121892714518862658270954962820471050449275525111670404311831432238530395450015467742743580243922941073461748048955336164379925472553724007904083721766907183250540069594376614610678302783447122138596606501348011930815038145548932121112238589898909025764267775564048499175720721804628911592139672078649140630021121960532594428831261984329886348320517751906832187265552788555822502719665691293968976116542144892242847597882716615083579262679949272201923084382846241706586794626556920320157139511737432820281881469784473724717772237049422545952481657478055234283810537159183716778945048270492680694116738811799619903513745840554276371910719280166376376960012943301897108605312078092832206426557922832086760240152236613452158796614939157637869352712149924363134517127783218681970558476177975510936995547564696554333064311725699078557526701947607085989410004770269873662385938755049735808837281206878713352019999130810953877964701229926671763522064960615898512198137395262690389843398835489630161527473657413407519164146150403759710062560966774140976077979798956424913235070903038449703257933587996916231590372261120069147878260370515130827020437716813441220813606278860744341182701493378156566128536630501369274873959836703737452792128032389570239182216807297000836305577162367108705885836413004094811433200244190785426787339058088269458497576816635780441298873252634712440224335361648863507402335921117978799195623190193603676967496198758424461604636167387189185482925447193287149438832873989362820433260456204759850582342997678970808942992775787100864549886622393593198084766845823264806843515029644896269676057634598697616365729480133515985208523705523542162749525096884620152607716049108077549944607813642318452610381161333221417659962126155559209354133313420254336541398045959597348337984054121330970355600588112160098652584379638078118755012135435141149675903536455523901732871312508808058341119972960562643821477230113024778650672552009318972938831076330446630098113697881552238729446065479092113500652400061456814686758496930164860673608117628562781921881560837111694955954363505799961466027661055055174200434150506578085274201347040109781216228578464535153032757715384623147467626582854638431847700286537766158486135078634582313401515810793395137659995256746585941710299119895868058378443284999238340919002516842008950322418074268050040695436360293637669900917644617829849568528384092243310293210954365497833229110656614932117273822732845438697232561324800742500730976156814935319891866339385740822328786063230681452459541592696476380411464195886748181014570527167941763805501656611757158429988310673856829138282358368833872223947211080685184908813205668451491651225225479859410719130488147629035453474656583903890951561394818221094583279123980887676877904109793071497042890657407915641679776819324052041553037217856031040300292053661243017533091877858049170690497371556940637576720958046584607154964439832865550075700611018662452391331970108395517720718758038167941358203514416564574098510275024455754799915901876219992512985315707834324479195696644061298919638451150535129920083502982125844851826239008682481823749882717636963345252390796068070721388179292102158849888297133568456692587315926313763270055901055732028702061115629846952565934428153317760071822131035167938295168758599772457664607472589593663117818976150668831983645584502120341167758796467882256352200304481909148396051631320416193384341635983055077781195989580232971113962738188575796250820512520191073294582625646113528450443542441563925154161569620580170464543733118267508141312292653096120654129770226926544868917924412729129937230311628760260140400499295313772337739020654425102842292664009798811570831305237943342406007213016847847211784584610877207975179144390387823393064922957590743989354033820070807241515338636302716770036263918902020395228361916213830536864502119583308801044026107458657504619989140680462559849224742289151143384968299811293970951913769313168741958798314734085565810846539658375102022784028506333299334058010474380645351734638602242522999733635045440453335122585904115333237770760998384649843082911438927119413395944494861853327057572197434384778873329900067407869997282659923995038989340101683072486082399454298758375555323520841239482368632004010825727486245217258000639770811298981552173714945564143074381040408992156724240905394368530497731848544007855918843443971976384110227834277918072169848287049102084441208098088008129566160317004693271202244836147905970870067571790051982737647381117403649734749740687637269289917453880754588219548001104462585470339349501461566335092245408120079873682659865780513223372090362015232908931696050863535476210613879829194229420165981621156534647914669647250672186744336772934739517849715175937159933206418053582755363844514715568774459972603002190768158178861384462069280862863170809618569213925840364412817858843451454688657000808957000045656441772983179167479731183321097148222333277481294102900310745061360527025326378301647866737305774848608271851843357338496508022311830079233528296858963461332055342959553280911208165612831637110847474010945861276198991230956951931010397810336586757650923168021128664817007056049858179156721934218406256966888441566784526174989795904742278013637511437661413209979888908216139139663964870967623077985448686958311001664256856535842345662531857534916189475885237441690087797782725043625311154777603679599672740260354334288860016965034680250400092298917913371535133810394606559816268343465929373942235153117089064931792425722769225694756685487992407775328345705878955113292051154595684687711443580112753501375834711257647069895090907929343260564451292414830774965426836032722443740192531521794527581845908862021340578719508356290885281011351282956800695034010123293288465591671107551959077905030719533564734149047527156420946568984515378365019412348407233904170240247951051186034789361690435780435250382641345331797412440996641496543588241068268972890887729895556820878111781986570879960275738470165989621060829151054935474999046679299729172125159863323154720935838040241433813598326858324905112752667548783114611177131934446723900359847307280132457704797342760334672847714299199001906745084334722352400886547811008810568354210944381680371426151913555361733152522688194634451909950944442389902941175798446188696559253469872609233469697582244118060648197659330125422967522355575672648057171260346925322970628221541188191165418696905634553693019275949008340704163927013818941805884164725508952640888455737510724091315889075847605988019755723078306196289723168793314158256918851633225848977610015559990167044958825758498070482180466738215521907300201611671691407950269876382274245399165401149809256991075314840901468316090947416339786741743134826723576491252000458904901913104243707843438023882076631079106901562504355261723960140088492075284516467738620309033509418355528468945550782296290364923463663146138651852231267668031267420305315114112235451032398254065142678767504089891920286202037293404046748616689463973229503718500101615467597906290350868232565623145133421814698467620024774305852476710006984100898338966992452065308355812081013980259791163920924496193739932309855045534690952233885987758439234584581902391982416436455324931537692823134865622070024488394632363071283767070516892621023651884829317958048168890331953467169036244428588885582586079930942439075824254183639937460534193234362168959384232975147077150853351307904719180127958488324150541553465239221763665280143070557406392260175617998749048819834193496610218561737746754070240666501180159780160552305834444403802691868908303893157150184906368589629012650333477644100073271899448874700385611282282190848750183010462959634671555859731643482860566315995307156639113455214815349455730140939374857433486518642463600636334705889068349580295375159135665741484402035348575313089973434849075456371884094991156226064985287720969042701055249197712832882181763292586257964690688660485118896257657566585501655162033821940830825298542789575348733296358693043754494374580920972373437215273293883993039337051375671423046216348327990838663061400247495823401704861090689077507554789587830842320936526842175644003791170504098611658175669791971370346808581500736799644115749718847428191678601527344458703332360612021169240536546784160403082340722539146521340591948341208454482346241705852820941027910219694977977107067450511780575748585140813790877704388825904333758672322023399591018711339286972995406881649005435639509661739172271302683693750387661278510293499260088168899159838672023682765821036819601908269745169615980400468555314641326922111815353691835417250377524753415257354740360193774217733386327711382111974062978430755911276327943822765996174932237441808760690685776493584215353371765543557608663146226350336543444669040413296619960515074849204039287741632754950195283081563963151817031418234314036471577074071629944257439747441399473481290619386909444009288678138981509402967157628320017668823880448002463512440531849945990687012604953143477745818816057066825302969547078788099135116850468895688774080212671258930579655681035356712032941982573344586631863910315753977526239758164438700543282572035018810192189033606073858070308386710625773642685015838287960375930322443401791275941629970266423038683868883908349982052915497653940324515829270955976751353729941155696540070481052684543303290113630572954098182789522886507985110839726113659988302832372711609352682859085916621501349996388932304853138091299713581857579533058307542996108195455264893888057276747706421388087300963899199252925156327878068084746994195275599005228953302208177486178256745148135135196447816002999282797296236192413738595085833606531190504663855508843161484943817330566451733280983106881781297374619696430102022966522927541778484580054744399494185535942977733083603986047071220567751225731166621474052387574421498304670114075111091712036942143078711345692483784788958933229347166718039408079077669713213569886021712576451223593817331574779428287912113606971731725990235949620622660698121832126930225361751375113347914729702833353033660208721639897227555804341536518599355094057615087995432862466624066456961358711959504414547731141074822745983086117501527451554110398314611785530920007165482751205124653803405420814807446688092426815964725721989465134796054397725715145045290153704901620470256512493566912366331111895941360701594776424002030508528260860813861831299972843601054971086392249605162688921635541571845290305310156510651740919903641962911886148248326188008672089034193209356724069122309956116866939032672292879949361001025119368120043705803399916199436836232508494440626281359442250042783678826759708080960131680268545426652454869895371724696040073452377481059311908776384213942279047953035355412018950495826209283164101465846063635246366034484729403376408025765388748448741441715389796652544566826480810780289352693211842001844396286708030392811725952508365641908842655466602781555361315062198370338494622406289153940616203959947084418545690292847086006365700973530094252861358070867353579836453809416030660699398005346594926724671545379871282259057744829803398447389899109331247678605586256646684763316300159053605581753231462419447347443978765655806476696058211073105342143566311643877973314979823533357778659305689105894607374622037615242877077812461757102492663549265354556095780210538123271081745693726445523623849038800450208341866126793634894794064176239164414813492816485106367640981688795045318785745696315379960199496323816668937735462233051376405038181926910460702866585903786758483827994383043951244009014206915167857900374319836499148607403414154807627289716278025204222089286424153413960361830171193690319622607848950960577324233973327847521334834620629652111561544056691781645655491782073468284019019597907710512628453541501901626335764211617107244910594857733730592884394567198363395502634753313241567461552737745193924697312866515568324036423538998507389619471668135958408460584798195827683525037742543586986506694847221944107335286713566064424068344185233491995561388898917908060271477043875119455753606787898653314522854446966428685738536113748297337726066667615121879654013139166171948258985916609514066495813805289319245305018712776323074764932401052853963729187046035067725004058592613971255049731700879627905624188374807287582970146162078946977888660778617576331822213053055848013224914061768638056156074732084668028794921507424349538338350742661255678828526894681388926512298441504727466447972072096852986392848692655323415035681682556531922407338429512554231761931479343063638473470703753604695881084227939432334682362925593845663317132041872154499114036427231515698020499606866629561977663358607454377745044984467551759422031162684265636136352374015201961975760806726611216874944389513233078699353305030982837699478999453048840409873426165257808404939711922934478050749690894059370367240925009696796665911489352742749744011724338392118712294441749254248176170938240002424488805462804714801544641219166002612364863683301128057922199718709352195171396448204199908311746386487955254807834065692579563023453384495078850372395913944517821658862891053613316999621589798242015191970935218375416027746815503652520910926603221988075226629276246740113536982105535160302483606521931875079231641657548358935548073011851827317456427438079349916778865028264603140114000538864213259951919405260865931710060100484488618286406522301800849859307889945411657405075734062347505682449296157164581634046321542048062423780423654737245216683003967574379980924652685322497278047997367431301421006982557485276786581837308319271385330686829585607429445636635935887585821719123507948002738042568960691171726774302784061041942127629279148740169270349306329236454963864441042728442934446042556828001855172808014247923344679121826283278916157592901707936458336970767605561765144978585825145540993556394862751982904696115433261329031921669020357509157052608671985362422731399397073768217024790818771113341475025066584629510782490295559599491695978886781023085862493029094629472574072461527892141334797114587143710370781094131041790733682019554754216078058853815577174107178229900845614999266987468177614072266976548229661022468013797825558566672892321936878102061249976766360536358263279151447805682805777693800352876540116578722286348152312949687058554100681142192858714776523665244441041400377274053212865173307473160928782578487828178272036667604922152343909012706850723916380070452450865397625055442626427214487285731786778360209908275797742986091887652005716855521641045174612059954897955630201662553430923144132364778523954942025597502845445267562880437471638300079880516707688460132449055336072714040104081533809220315948022474028048852616900920461852477681254977741534074662575898215510813223445884311132411124475783039389872244363664089746861679580619204147289528211202557345505715638181658489249721385609650869486021020694791530396726395713649059260871643901233323618854930203274769249019933537188449797147270324629255615504227621266429110524560743173177345037284245701954355611252141746334409468021644115628311648095062185513936225266546314749222956918439946514813764146690075606191505833833889453239606120107627130245412165007870159636336866387409000099801473821837451415427580799649793021799492465812545961705998227860915884638367591835316271219961029587453296435620120471869069555442955736687883367450358177888855311648349516380875646677240700387929260349294429527644607547048467627605745483638950818897677727684506924022512905681626725463274016274753058987416500616510176756362268790460075343392836368240188675034440692036352732585997248780289462278068228357827497732556832121582063588959310385966747057823612562505363608959111381424726361122430505351187233602036275153785893240851944964646763789280640389278953479658570934642043609645725338236871549777626295493483417694350247181085844198781253622756559272552946772102668190144312239950330804453618889407822223715769914118137922976047510990902719515722413399948351633105364219054516302357722801499672557894543253271187740648541230586355467099707359952258781133350661796332709139402393272999276220014273833352889401679420599161399108563477847957615547932246492193848958983499034462550526023931544231194115784403811274001698354115567310988709950172973170982409455453053505876034657081867237138494182994802278329746960185977414142664173397050986723635612436124778737548641456252270493858722170608411069568059533333488582970768356583912266334225487971906480384143061768819008062267851403627751036384824007006720365957556570735297978621054697003098978053154604459850285999862466441635190118366243675964406669400951649243414713480245362183463443581516611791007507791437238056813096900525960871333700578776104274465612794236068734892085444866148233393856895831130441254267092014732506986106161414923107617876459601340676267314692966621337963717152608818256829838553245770916099025932517377200069693156448085446963403340180016696964814235324391316790055116986780536913746439521035544677513090113884519153994752389116683787376615813086089662725775933979470464662275593427962960384128508991195287344512584385867931860874407091608855696741652411355176501950076224635456720805083011567324725167659910682153449156078294095824103900780681642311868285158607558278970326689711678202764226425297507700832395171396587781117469868273279723606001087523985567887207858655203584079967540715374138803703471973721249482213626345239011271768628396620081203019456625489926833510719340482146337843215411749180716194689495231977569464315826480607539835566534826443385660163687598678200031989898816494354403060155350684291334279976336440772827166605904006634406292095917221733691358359821928683134015184101155718214108839447884805721161769489002559308043219471482256460202473736977990182737120806891383603313649769011721668298825511787711159574059734334251048071235040290555933204891477512995880988508630968794510067405751691593985042668352966709521212481657347517028354939579317143899426065956280474455790308660482847297941855098184142835297822412910673472281870992379510829173112432561715274481152995288163022584698727328945940017201457120078441851097036504617631108303787453323383507119631322248056713021367562911875446567891928815823697469160918733133932261806991608349250618948295258848969163846895551760243551166709071405461540592786627568440469703825850185069590560444331745815873283061374663492620517513411918483738045962827918063135903257628347945959004404348671935995315379085246692314743416723173266257471974468775159398371169265716091634811758669162093918856806297878350973075020306764187927234981359005966998275902942837881214327976588796574915592101987676341600549123144611866966620052926353736639835145658182803328664618066574469018040326652650784993827546224381135939260788924671600663985556997251324622731262315952331814742565648563840491772976717973814577903661317037738996818069542531851245996130362355615819100349300142137260954889638004827652009687237938153236824038065888435768552000352246249776731999785997706756859177484754703491274733788074221445415296934569224146967550381260799763370370654443082022571377671556574939869046182014476982403783658425859781712242529438459725582978759889348274735573910365360363727699934894026296967324705175382672985333101152605716269583289430957032840473260473814696216057092041713210851830482931001975333949766009370164337774671020777390219356212475296101012543397996158615540241929774482810839374517433218289950328418822463645733131828925397074412300966104208102205796203578228814809130497867169503360790947570503686985400349782895167168876681279008147302357710514970143828435015419822405662007941024104341854942691316993188166911390101141304335369435946410272432867645261835599943170454948968141090141350386493535186087511360622799985040195525139830521935518872894738075503636606986651286951945396323127256453500680753572639719171011249389343394362649988988590672546202598101354653930178957722154171248010527526446828433914204217781732333644219119796485671972003650375517923688741972897080830441865871052865323860655409660415893466395962403427985974525407864264775081091065604801645875689997977335545094297370582883911026725220337949542582003180826618751361101365972339786444986545495672848974121153905741545902799265202933967396528419520022155765979992520216801799694369939654418394429377089731096913459806738458872472009834641205590988045815561107989308989322057832294516122143562738459577998952149062809316925204394378160154378492179434378956060106957897753799425634818126783777893751359242812931697813360180575636219704735925844627112540915367438429306763273318559026237703895277792158314555466113511133455122206056389306355154943380819515163885579210947227806577374033988021964781857184820128216760705188414588915548605404426715187372608653876700186867489534312107720165827423120325280092573659838123537450157501069233065963768412585347157090835857963498989501030583011514713536803984080963475264956569530542411346907019617996524948102846358656549416566835497831130315523750410631921988678687378455895198904476766094189004414219989640961691738880892645768939974060972653082742895788769490302930795293589843096254604890827310363312353507722615980704732304181210492496059424996903930220530793374512217669165214977078375536455329542509375067663555315841630729342051956019428428338682682099955660338451597491154473222045262401028581193987197191556506163124594774642674672537646138492288794374413000125307644208927907627540742021373338662447501183661652173570900162388350203679827219349341758731992397651111688257329667567060735796641206724284751481836626369407708596373286177080843548356649875379180407829245076030035974308164740744976298366387424774176979696128550396925864847666291900742813974233193030015401422621416569477580356175771358799461957630762842887843919245093471549730641649555205216359192181262842122511289450078826229010796240454802774524256701559736382582062715532777742047278366710090977011391706063754223943441693846169055245248405530321342569631867602104582754968741894815241498851564389169954423566409941796877194369066422235381014635254515423222369659735915467073962662556335359805919978193332211228448519120142791988984994319454813652429317507484059993144303821687055884685909740313057880642161384041670218501971704507327379811349225004199958900487686065206529242810630284699980300180352337192709109594973150465304068246770035673451303850742051736760594589186780143558559353712067125872247279052471374603041390401778529515949524699038322460757753372332144337744862249585392198805118059709651485653349231414409932965745176964226736455296914430922413442891846935952237947827918767225724802360037682621178210017955454825437984154047431061630117059163069642344295358413885270423721727453680393397774636265653264628967709067915328324584794464276351141098306910640623094647438357808180925791300571791522103680422158849042982214917030743390160983539116602484138024297005622237684386143342054858035791020073737496675956872185449129742524721136675008220601212448144422250069914530122573306686238495209156781258436682006339668541493514217797243342092632299156505896076022529152637294885446485152212676125369812738063806851610724188787430832892430798274052761757290528189800516782438087867457403168960719356114929767022426711351546984531509367057400514940156879944221445832430405828650786795379131740783943951883524064462859721143384636125945205305510508248142052943927860114758367588853436424117778313929550370278280349987485406763979071501147727409023351141536761607147102365890291909803891570192282287506455304689466834273519612274009619596126750439983986496845626239014020868851364774401050552135157161879136234298338735115853502095855724267031057214106778591395861453615321495505028458359938386063366555532328571757750742899490617634084602450739118732881804776374195411346610331802204905886412962614505248160103172312789666288970151441926066556361441111338049321135417267750517144680624602992654776756079132327625166240270877067973901139640850776506447374598677964177953931928903111738519326158389250067859764031049817628699775886859120511797423236903236368150977763237418027274326635423990933645012120664045629124212012734295491645711786412233110431597291144782348602900989222837466226522682451496375240081648528711745122783537111234085743404986659667604708076161657150094982614812249755302020136354728709980822173942238019414877117859061298375154602714056359742804494395473050972597976988724649507186451470397602833351791442785628103204390378344102739087112135294721428639456834289527744990389245376165640540966872389123481743630579477240107320915870471532003912108038576904630682489356199492030854941919373618091749691455463241634683369899389802458037403181936227814261728115210715791049709900539602650810005226588110831307029749271274058777776587474443755712401557243662135152047326113410145819561833562511762649607032188050766219791684025359713933450039370368862172267502543888863618100555347681182609528150546998525570204343525154569789573675969941414355120502374410635736625011204229250360558283469485105620695208886794869293362770902519881924392289020626995510762985850811181579550785632628022281074006400788275365639083235439932516608720411058889567995686610012104273399635329848287887825254747861868311387344784404058156470967556645621963285871846058124716561071446561335563598886803976099904575899318056713284008073101860273527488107245318363040467525986145697299254894191817135815934996595067965233134010946242844933851619895229945662909742226821281165427793678356895457125119764535764658443297088491956423040991683141277110115092646947497423261460739341810245035527790017606716631629409325213957860784999937139090697368258039781056849059598117267612329021139613010206535441131906359191934488707937712888565482579398875584170570244906943801843048875189056724172080173808046340267529461580948490094810567763244058358576412643549519810455668543943517533103609563020444734795842665228232460802992978064154775641901049183534603651732457807844687973566338878535713910392521423559591075220518195223764763959288729001039374224669627227889310920226947587796650534955127937712969275896227657085212988108964289809449499697416116526427432656120090935381412839190022665401396591462066329969556795125418612332303278004634660030318525667179956614852194017315736498442931580417041963382285941814706715725096723874186236086500260326534632341558955032277292826699054494941910920901335084497920141501647602952584051026752928296017008575717792204433379373266901367354389467125030517992167054429824956866540369859662942770176154104294527217697440172307871492263854063049738564287203538462940819018484678807227840704381904610896631338918999190797606521021826450506667973080426961104484082811238455293906201244520295289579187711279875453927818062120181293563573669649029113591624314645377964977897016279130174860258079275900586198233978422172646984025435665801910668038047591000939696478110610352627279185104027560399964303239061762079378313119814827006437341658438663034971836002474355637999585568041736000441239342841042873899889813988204206156303839812989862351437438134818752479773650218083912872853080535521020712782752933189281974041958440015212591413938104831686782777777767209445122699425363050057392930809945973559731796328669307273878596116951206808245022069225115269848070504745142601794919272809322168857913268044421647475016136077707411020097792972738960865868483993824045536108734540129732470393842126529787629702140415507329456425037864333220516445935692543016912419540527783706270538799329814740203787381581312298883757549676131298086183554440405710278196810471598779131580329600595179776322854662873009797037244929479501693014686161985367585534194391551293165015888106094019896450521204957732775504846333091502499872413939478771113836155333600845783997449510721750622519506443939071738147054729851957407359251125301405415190808375274582487075695086816779532612907464977613670495780945242590001397175742099765858133205840206041201162391854646095489221026120777368018061561719636612275080601591775132317503729920841025975181587835290756561383276248765724550402542462289422651379534300545237233722860498915606236460461178084196362756188003695134298784170782424402026654305782021650242838803967291761018769485201887202821418651117278841009417647069847039592102038234912085530944147819571419797912404969273193976381561833125388168473893006929505547059192485846184070638750576202725685481328837184793586323700046703814951020023305474830819998039726273319448133031430310411038794480631025816727598162001242169087344886841043580416744833579975554068406806912411879197501080008444815327220352013072909966951671618326085474488075235380952084128349931973220827420385400902242954077392239052354656902141627228658347080026687005765269312993866893031909425615585695781538314353756183884854624865597859448771277770427616802228594440398120704419804359470708086776499735408098251357626409480184495035213931954345527889802732963455762057944798281169592859842168887460069455460774545440017806750049495838608274487757912733344382884125067118296079702922285581904394721820346028709893509140489445876712072103020801678206590165030893780062086422863823147474061080273653936804926487100727857250209043088823727695049316244882143254376910676656584046749558030301865147550241573639893725025509588454201135253065512656123324033566247426878437838437904724867940780215355108835843343729764931984423310972594719550903854117610152832874796512448865224294996828400842493213214704084645903176958929300115417215206063154896242907724963874220327573944173242544825301652644766898622199410020783887379522385870341861446807391031267858204503373368129368572027714999191756681797994453849372861309762429565762470586030514299658479509705827421680624146208380135496924566426615305894137190821783781051373202661092242131395830803203196137656400498474012514380374576237716790303595127766008844159194502233343170308524554105953318246746152179663716764703899035029449659830389280080446428885844302310307242534763912400513360404724087813905021610626646489213797871187649954951285791963449096810289605187325457211420675753051265235291461543131437584426197358718847317849117078452634358988029386583720493854801335056723971326473757871389057597726698024461572445511380362695043576034035648496384319391560214066529256555832732628369535971759313301594652391034878676751384151631994652644476882590194426325130470185785897079890201053634813757214783830131310190610766153999860667712453149911153478390658559829606002715005937715180505754398602272490328091896323352359388531009168326752750728587751378837088017067148820685177603828389037433904710732658460865686375825481539194508125148460423300145276564153764951581845062651538331735102842195061468208728517031790675314372458972856876457416389943602930355968260548595038329710197893792523785749046010333144913724150967096448291417242914105768163071377497170485040486787490923125500051947085990826495283583495177343590877639736989286830108312002561658423924205677265392622566733443557819605329520542127071688098237013105827135954087804685165252657844622771784348406998825871363143191045478082161271614400900293460154726644111697071960411411786337521353089413228019719552843590639945977556600012046562313486459015431505417985377550362751175361234806363127214995046973068733470638063426830584855905067946728437767902048331645441477934612656840794004021940407351520145416272382500300853914899998451883906010037277362490254567845212018171010412585804828372141107056248745954840484479130472952476047300728535652870786548491498733777071147024764030198492350643522862915956874515073069543488831060960219189632216328132907151391643646228225199150992440862895081258783147061867691793684344304368219905205909968018026305883628719694459795355416488459981369125821880441524420764221793793501001178431187466171016211084209016783180967563953114179427178780965169553009114960330957785716483722973953450259788164801951940597602215159102576832611906531516095914626682414620357601857727430675637126494036861765330817558417953088166183083482668705642668125412387175745012149435990138063227183918576028456388192325182813092435953323255260810844552028919085387592419899319410458303725497846615002992018834610559078940116364289727879039148359964303066699403115086616712332464866657476964732462219159025863205482869646089062624594139694235081825510228221236492859763791260084886803354249408608033266153214925646480154584225981839035689716669778849957803621236713051913248034212277786504183654051167620688589680660622386687787411018954115286748422391505982786832666974943636312511691859499516355247347357440620167244545552029565556416128435463266077348882163161151863203915673975495844043768983731750948036445344541526230379838043777789804350648223162507998439668310428113182152869373387843275132933239374665365465035340844356295576487053011299503036771393114058038494888948498539760867710711574590441730186641720621753340279760923428573663752910285742131014358267808598350977279317214151966188121158143949129744996920437490854745100036813104646151127254870573536066220717669900894838911322315177386756844693541909440032426220551690650704799710783235040480805597241206849448607691701649087160755020385138292791023013824468197220766642500264697250791189117647124390862460356445180032224959091996868349805348850873706487783439921829177727054737470780883378410310991954352037178178738484279401742703000208498613585551358130266150597860719790818918076475656600795592163226279446710941348107074595604830193241258823969968368007149692576006325750740453585470463977642619153167754296909310617559944463053001612562961212608613707229099074018400313584924326918092083670653308047513005714941633603553270623576680178972739780781550414258165823231589897811615695424841976704824275393358957764232787676238968319777670993537824102728870581846684603823060223777796228566270322488375677604879044577698911336649230457161453749710190608455368853637442868779406582637075416818402551650928855518973238579055330583244604417598950473850484877160057840501370702646831192091485355706213614712383580990800024871366678075371147148799785382148580733464161489082960775657994618316304738503247984722964283297489587874660881775840076124924602640517582370028602268724260513667471082041792498009391628977276963885095996963323896291081668194113703736174074157738959843879417454372058437890151762213292645965246847053371709204688816767098605674809513392239527474225113057107283349174489201752762643210995101508635673953442401826020853295886039639251742826676047631642587779320693220042295488898957926609911239004055458226478569238542212362116393043905836878388158340523766889614326125049336120477294875386054030426667907827968049382191573568290071078285457513032788432165529837068681898897572542072889332356578396271223757237937515959415750260596148617216672355636579092813949760187607988241034388816239435843736917879571178162386732295227052121263698029469505584743806381261653707724859582127928713925640895658229030094156091964970136200092028479758867371684866908807375380619582118111101837490369834821309058423332813076180013077902464961592857650509864507458733488427182368207810332169769838083714703338815560856952374926249991464734248439014457745464598780087107095192701695545685076574670544281831454248868901378323306020557619613782861439073938241252814640672216265215996622737607152088190820404654339834680617634977091296869139406414352392410762201837707861703838291295227379903931016850676293990056311495613684796952091565034185113252748321725725751729313539533282662776012233751276931168233455804878563742898739961510855118035757396162329430696128631213831102747786173780847869425056624057087336161425224283458892125517029263114320891492577886573404255956932398590718816931411421602126970878255208941649216719986169915809996841594895017763357266318169091935727719579983832240987666628230777772920328423302597986793009384915196575131503317767586060525485012230168550710510237960630620721357575417252076532931113700718758227590682463630391989959236560148842359752636758369310627343632899279089630148985409908267226422617184336612081051810010856242678420185604007480944115293699702682094601258889412016841767540164694580053757643828334106485818165565603015526977830551136639412496537440710278187973479308462086145652716961286658600234678771822913808345364960082755538742048142872325126542766718611661063675283808848119409360417466395426657654699421326833947471504324629616891264078262981886362937933675581797495263406167717251767999542940738664053465471694848181262409645362599650898965212397346086124575637164994431345302529888167529423882278188584067893627385753848629639739420687840550373015671046900490587941213297618019343664395801740917040469997064256661021095831646455302017070993002205045495101815967318615646183125013145348691828174679233042191904634275090547864326400899506801371663967390621787999323273052806392721100144089216317076467564369432938090725159510623904465815251419269599980885591369447781866902600198549635876896082033446677757224904565777183705616409898409634490483123912784984937169101687990474995433977864314213398021980209911453133543795866431284440775279775715019199202010709545848078455578149511159693566345649955998668771577245737976795595021535865476253234613895260723248037545812060928419528354309187673431825462848518956905380628642199019778135217564224887586544177168758393629099398170325642036700747884848240291036842147505363208637438818194794716006485346862384364145087246584259670327480239839205010470851184994412106046615750819608721229006740822736108862875430952401589585842041783165838071650992402049063203561668222478651534451279256503074498515980937422389657651064987921389853830555194391800123386245290617963911590709477561105333329885185582749953687194140300861342295727291163434805299623330642603826505105733095932443628059779446385533143905017932032107869696171828852347668622212715524248295834562648012064105053782470033000585531066480463636355621210916733264658805562375290869433782121730553605846869914241772224511949514284043301267981882738305610443173652578235262426686382585542428962353021801558773139295090720792056175061681761825771082513793008553530867441432960239527118845499700162150961518224521918937867414727629251476209496096939705169173427872123208616604967283392887285566224400300185131857251077012898875597885356585503358340488141504336518864114957274893725982469387848165484804945003602023211850824138039950319903073186401133929611655748833727003383490004285407988493621724326315782987939926875315340296328652251316038941460292758894913592143392338243394159333945908308124100616657408119919732785129830262240752110946503312452495610417796634156713942247784291747538739160351292315920680121978241770503780907487768903848171697455358231256899873527831399882174433652023471908608813466511772084728949524137641205603529959447567621646349568318272480821094367566237723389100161837532402204488491541895932938484334566454480128053825557274146433604877315216575681778206168620762519731839220051403298144537907995789375399819917788912089577505642037981493785101369790242863455728322946240711975297800506928577294122100735523617902932548258982044195373019716133731608536081459327680118076353986933475058846974801383192206681110575700399939982825297221104605353581857929499142162873172278997641159019883942450519934323319725139029821554564827221809574977649719200691046160318092584224633420856111946114317770479355022288781528221183289590266423673010135075013149701200049310888111015227173186309412103166946499798887180093604418151802143099400681306477875309518100734330027855156349376244186195285141501194218227310826229601411193045106569009193731424508703189191633897592143362396117639548767593050778848398699985296623921816397986891278277999148716920535062518821501485617158699631669330390653567065845636415525026519306372263533700315445312675627650110886969478286819807862920947422155939929372061543364489025800479078386150241659615054223723785047861717518903743168483280641002338366491494480164675882863419566700070707040571032012349413942227358006918878183289989563712064401291594940705079755413216373799779770027169913840051930891838549520384825593993961612332948197080532238504075053329437781056152369860033910700315392495089440014229040268808577762787341147006742207092950928597936508007298004632191603807735991592397932419357893644399235945180175586554995060241930868619348146529160941702061229299371091963124501108469575084017091972048801177048534943526769135679469522772960388168663194803466455803642858241547649440385466493805064149657826894204390415039992171404806146353195915822677696484117471281063856623479684284527697379448913388134623288740696543510789223101223436766280981556657655108882402349678829808112234990899187566405509098603235645945748573920320434695432906403996257992035087195054993439181301086411517501676801995869204790935572164263857006579216900206913549348567711212635601060923021025879232254019913126847081089995298325358728377214168840326165417448083772542041358493489655320057866748233341960010391956949175419375196612695736318844084698771790138588247171683454481014532741109362295555415823923555766460148495944290700198426998086032199649191760138312240635815208550011585540428901894016416738135410976289407334802245721487256675634306947349341353576919477812533333730212166114127195921729529071478949936763825597686098269604142345603071865127168067206874660557717902495469156930552104582964406912248303091399890891484945459098876184452590055666565141728214861810423886006377622698538200961791752740560369140861937856880775732834050246722972174251408422229175323325501092724283860340290494934571196517106952947727698891782457277749790855640529696080191569438092967952404635696983365066057287115620013736650598690251768824707360888730917150458360636835324300225863217706314590980248037610167544124047137839229872812567196249403004435770791527774104442419321989113584959872551433570245331925362558597530804635928119112002587730306681739068305652121823721789945615649528811545580462926272771782911133816119453886316823078615587256407557732331136425122863056054045681024264339855147387857697045160485034598798439445434122987371047554138735558354186866009651071641470394781447542554543419387827724007101157140213662200868042696410068296474231685889642125899009425057282075215545818265760285392032247512351807846702543293821623153056310119596781443736951984431018967752582703076213572144982444370850783034856135593784169107001855340015075580723939525720866578609051738524198211148538154877432430079518571474895286874643083723573228755591488939889421834578290603034115381263767229140803340486054988531530299978465926167947150101332431058573845515115919298439277374498619243878508974422022737281636261388991436916437652126355959968460958142366214570330495690230751541745123650119015378219281902982014178668574764986315930220527464334824261409576891226595212240799961359974190968891737342195208456160795534593167472900982871419243734890226829142146215823130023886852844800243187212354987758390107404381924570522221137042384909312133617483588081742694485736888275042330796585381236529416509763428994073205331204695592477364550312047339913820790066625560528526394258302949349207083211258717978472753423211702138503518849080693859135327970876605610207121279466693167581670672748399473920929919572882589265365051355109447924513517727502475385450011430566713184170533742492237175160955432583857838005365165311188315736218980499982443084048091696424946289336660291758214074645100425310779087537096901522977264209899362672541184638437833246304967433228036243664167575860915268033559655653721080022267463644142616661935479922764445573603289228055740450993713985814953199417133324158516395234070540767369837805831103774023398736143051874390933500521668827282454113873439734646806191704144906597055918432167069883560559553901995124792532717249354667016317910199162121460234466781661948647692615047949288941191837957225914203080892466170007775757712694682253803277915440915194291322477749906098134749506022726819260491906344118050888508729785093959197398735938293413712170470962187966913364800555763657229307629780658377919693863625115186501142960422457107445444204593311451161533484959177799018839923893326003814484541828403403290840913584954300442270636874770145837847134778750263624478374176724050612633172956171882807747229032594362241082062563926618081095326080186704153159653699569102593662066717726503311786278618665539616567371851010521109913722738813953550619779149003225742631973022043668089356830032076896657107454403609100900303881627079570349000987072971993360053516070232724154585851342635997354761425876876771074095090724037220738882347519652093600015713593757594012663790180565200247370005995231526709093274894394098767660071272865846860823695947039794712441054195564071277275873967709821034787528533233350434957131389069829533575832671166075589746733780568039125954189414272054318493100665758043148766327618682257825856468413551026724984358485982751479390686543196603723671384161147408326797060305609687696517070484361738567061199528968853371535881526387259612791710353913629907357833838344735404362336607319397612747662132529292633761396239784897198534879357585725715367736479892100081089311405537141579340095636075280492139260665376197771715102424912585539337182644759167407881854398968165091362720124041067263870931421840535718493487252036800220208051093676467346003688160749273402458816375282546274670757971314793397478245140286231157688845435185642057681497896279116794836751222013122053141639690908735662416178373220892323057355277833706806343757829636137402318074351151716296456093611054498454521122573521789465030357532677878893326918862205565330511969040361461737205507504882198850230533515776829983405902185687578937021037599542876609849473269733377764670191148008889366646080347587377534064084209687321100573060952602712846082364020598763230453875808963178435958074607911367465944268704872699383842761437286366162268267688560284328163753744206786785985911500722102950802572760771832436489204982802340755414935926677406348776415707434596639749027728023078774869966454196538002401498891033698895448835830703001125223397985370993125400149890372953970238632405743006653425771663868140645043965197885499940342758370700508140415665328409501181411595401488546746374764995248003368470241413648569715768997711489715919399065456694614103657330341856442564447448051867246714287788782043913038359817989323795121924834532245455868081740027914449954293453997931939775818112925924362366617718619685532737025559338484908623148561736514552783187000208328989437460847457488308844148670835341153599911392215003074320927593069355073564898998930519188312003453105404046002899945000541335300579646275037463160868296709802863236941293641130664380646501683806703689660188770301697673398748599238571557130695207432924536129111930679691316602415871733389869932229816466805013594564411307682281434556853398713966856558500924823216257449605972041571801479259288403852673485338218591051291436644026179840434518090968450208852352970678367971919089406294314261504386268472780970553011448788124930691095515086356172403106735222288884076948546710321260695547524136220803162219208612567862100702682647605262788267739828807534227216328541044977614115181488039767300229690476989602997413988578251313663890000447393932166619448757177290248227073952119350103222603020890232124476500023977478088100702571373519698126560770662745913876629601698684706455147176435762803398632774855607371994260783734738959556016299181658340183651820676275995228998495222029248374204335012922028410952794690630954360315130250229217783957657453043768284515726148150571036194385865265021219029082599228559221450572410414615667590386817193318170392937491007787456588933747718382856910437644876799510218839135961335990564659932785971239997066652460784897763409119827155926147720843831873102739596401004055350641102652881351083257804996966144050881538116991511284901772784179864362053659067089907638879968508636720347607991731777141146115851902475944642075735891524720066993540297604741879303670111410687532502442167557001657156599490568748606021891662579710503139535666797200396227248131667661940935656246886629455168535854417430235505545147693050797321875122553200511006401238399860044067255315294981257167179348296530643481375182737616619429069551020221217372176511142785411499754310078641422540035198263867554868621174192486436181546949695177965235303725464581623094031507706111288955142228499104495164393996316557400963975037882077532355007263245729697751530181121015956266447643874539581567150241281921921804219738563197953178967966082694734519185420277728181600953742532109728926403045570967648661882039565706055640770476093862492733697268959629439499475674099675577875159499404977794875712337989509082966772039948352191332424196533379599883025255740964595726727741664057846697723484013502661661674686772627640763449438159638913861520925050457955043380476750439083172915814904772907166072455307170721923781928261419672948453844050118451312412375459017378276756116808659636888059685075877818703049544936569875330713745931331449130926805608329180461836009038531683967134462474272772183511791097324364462634795211829349295722273429334397355152265967041637411135745627859017720292236038158670275335623228223452453217567216388207746358081441297673536375846599682678261346186904040605505119862437451607741840819003651839853144474065052504423431686556241379536142224355457996098448184416277839753884410873901760607309580614157514651931169406591102030372985506682053516843213549438635830250139823727659104610352579295534059904877260904152732300368814995486738603309482651511420420980747777795620206083419922959503963026217824352659787225091775020002201717045712068966973076109726515999724147958105013636911704243930685301637622754803851586117068384335797449629781112245144457183655265640943951217272035824933064089679194569041859966331116302209285423875151016270441893441824847512097848442868586323878995432579191854090643144867358608459782649906366935938952383786727429326755741230776423101837704469353500445423696992698623237363162618424174744793258169313604058070731874940042860282692784454119397782070358859421147547573619450686577998623528429466301216339609186761098568204014287249408483744897974759741029450901920215439610449206330234882739866258372843780988020726694667639870649760357211195637076464590658491996024981694512091219458592835791042858832682999441585750310730285830953097907890417330838285607054818059577902005213155278759566604102577886423056421482466522158500468831942045932203887065882892103639459527883728745550341010263877902753457217453445350744242696378409729199251852007463106598597176887670114795768478319911160354011931594234078385899992590210825314539096885248542434997555217805069731142235343952608688093050981644140637950549619351504928306660821227920214764494538827354765623716612394133287696580171886013645677371733785680246564689575799617879103618853209720422768572367909595803147711834326587748955010359311115338864505391570111856426139957340492410120936638486910975547864068761458714744587069082409362327462358069183422484781967761821959851746781231679260777841669768714769841408815115893465545871928411376192034421399521656944562993111357121426936240859015544980393035236863412164976515298786686774679156067377101297152306551415160865378306100420266870994613413268236973351804625958516260825628575831152684558695688702516370263178104655011975222753043401116468592645093148173336379742739443974071114514925092439685855251193915466438588852089361169664058531085794670276171690730916864756279546472733166870571655743267338772205985546720396836997584012844408284117802276374821870604579496298000025008152181950802800900123394556105944532297569661351590156111568234993500812553917167122483095815791632105426410972536319861642205860245445787660261159570792385326731360778391318613896539668974050702244994135780904659088783250656347981868534860406824350241333786474523196887436980116719058882551985895731880110754856005347446488510203900428567035782992825339405866607250598470341509623123513587846904506467768032453238848068354465588701410940585606529791575628288802127766576718974782239890497903651446949868549764928780950779101026100380799785383897721165215673066287184594202744913640206750909051928480551874138813053048740748355550947028699398109874862710404422643032176313339377647845817259270669231006511133608812771595492171063461174707258877213977242196415926781928102314014035535563040258581986022436545363918285850216616291021145438956708640031858758932881543788876171175156888253570660327744532157986834052631353800694623323343304891109609143732277271634690086632927088782865666373244812068217680578494594022910512071042903166316756142041919218651538457936770258781902842240951184876259701998402143831067774558871994657673503478362477795487780983299895753057079833680326025909990625579233134312047744748863749524219568600863480404202715033039678293190052244121987643853140009073983221823520017873682847781219263973257276940262650688226283966649244004212910780384723979920554887492643319742721225423490146386656448707886977773981620476910583098265996085628076107577518408640488236374410578365405112238903193635643508191703366458329062207587181610158517345058586511259461071618391449580477364050921617616028707684437342880527470271628286438098128945072591755400082173911699133692627060931519653982847791704936293720936965371130342794964645406743399714199902200687064427390891538857511862220571726400125304770235385826729289624439304209576501562337837157021663664345395227557630499655723913280963196844550515985865757378604263414071276271865615200690751196212861621683511443215564987756030053250652906485160650179941986477435212275676233496525591560962115905108281460340750073376510892040494877529473270320454017160574577724513165183240685769213014766632577673758557251616525267041420271444138270196287538578824757174806763448632731900159227855020845182893475097942832362020154954485461667755161735123357250167904778810800318244942096356019637801988280388526274880239289009055694459155372755922463986923674444998901374867705992261644707167715526475841075259749611195933163505737760575666576832123264187307460799510267276244869316536943445957154669159578229117930305905939230244581895650974988219645251924477468399215962561874150856236178822618958771673044883879255763652091714140966209173133034918171846906069830810659284162609774824001420860264547300758286800667170707815004460302226476493998892952283914778757158939628224212503009721400387934044727644616403057536468649328352807101548794943188484868800894628391024533841851196966609409285229920072798359868549101510200667756409811547376379187930976422406844254991269891507326142989260687973187177023959735638318342869384909809358186989085857625993978036283369207252053676139259960670089833931466695627681939581212920001109083673060745662761294981578582827170922913701556239665183463868398450023462246334473741732469252264386221202189848034772372306694205110642337434578516985531152918612515345350497784702408047940208229957859825974335654680715154390140285732559374452966830515975936637953719106750304762297849771591609744331447281391904528226477778036532674036434854830158470028868221675538772544058056918990898208295186288750590746786285293508804443382961537334183494330382753442590115822085921709079089763384098908711520325282761505663312968119210119496223302546240183165424412357887718622131967207267833394954776330362369815998067854342068114560011229074752714279859959582779510540180399406639104570217065838667570483766850600634831481075461719714551259880171637456736128754483234214088523021526213611465915478023565340875197673056800406309516095371625762244671089402356173421336216201622413642866996319239534896144140247833853604427421388151592036275232152953380875330858304299383257028449059010407846758216168065218606268802024341293482100601723248309268368472317100277144439147915079405203448979777817128309849181281301232628508024573030025663835305938829273018070783376715553108970323180085065380386643763312120168164086607367724649818768383195095280574057784494841003189331288090544755232556656965080457001489409803970765853005497537096829079137315223094651112169817509809289855424584501763615456583592076570195831655516472193358660557193503596877188866563988144666647909578275964511551856800826858230544349013994155069538135674612801952694628862788672667699767886646664245474232779062892584180299744372826616313854729319494070047783856983922093836903268958437320662638420170434270581327551141275370775283911326381357599179780965795918935428003690022031280817126907754073354745957579703775366643990107767089916456474230744697826824003153759321033753610933675926857045678446980957384402220427815898565970205079181530004035824361478144349408158629720654725759572429453129501798200301581774579610186170411205848426296303253520519912576674277681526335882594090253786992456555969671137608827473414713059026273964605580568180686772410840739226732293370104841826116787343944838957712090765743788128642871937976259540606378936458618181669783271358423657793045229523729017835354911415594406931839987673296059845449323799889055638509544369135176101680188772728123172098421930595006702799754308690264674504563959552407626145493263842593123426394564683869254403591741309954931157465320166644627874592715153971608420793131325514838483392445419465649450297328677419746730780692303780469172093269728060584466195429045139864702127430643134272456156167203445616076889104466924314930107888791586422727940671432385882479019315481834721735620190404797720852790056454751968727757969681516913385784356860733845179717204158734366955408922703505698187747510889510299202752696277398337790507014757472693249403913792933567307224696781324999027552793205453782591611021510149413104782551098332523197573366985076230439576720717434757354945848696123517285582581378459342070578303007117691584404271317743284214649754297050235803155000485538543749412256226285913573316093166576149942296868247517016411291144538246782842328209229417211422592762016175053413949389162711660342910511748200740253099875091286142684243151357956711854640906582080081510115437404554501538942074864299776263750337039578551034409605020070961068400521716091989291298863316705224055521987842181221174801741870038023153717212078655631995918300378790130525559938838858730209333215511726081839783093449370780128270739440349852181330334074255549925226013116144211423847200658953355331162185853685872753127681776611538143942666324081151486178107994571937237335118798574176943920785816062924654040641847754583968370955443753000540192258029597345236492210589973290467465717523057577339466571131159715893738158851220289279577607632982287330243251258596348906014574643991009899312353294984921761345204747836742492775380440737069656064665334973342943816309716396482689262459578482323762599344381766183063975176554598572252109746391726512022226496327824708480645445276244219083356386155354986311182671778765048085529961068316462325292242219113461196308434465082084462762279015487886181498417376063229429408488993743708944902456578493085976103679346727871910549888739251166160074915476089344924046543300685642983663669425517424098669452125583161242745685647599537785027086084393289952028925764542642815349296711566589197652589389171932428030054614297722999769202331413083626729053297962865102370346523391018832784995183911342662071631677318726234396895917526278437718585244669873233615204145830203614060182050903234741630769393423747040472735655001400423800172994869742553461780895728740651434264013713092083784089643907765682542232112493329164153102209829992606432943903020437574262336024138483047645434089701341285072728063282068962352784577247123210866412190482767904583591730343901609771592774818645302516797293263768590981682655513076277780273109880483526160976929363737922212207423258022599069743957149863148512973168976112867637029684694547306700546283976562023460169911592239303465550907352870601504152202295747155808554730203467876668970969311353600617563157115723103746647297708299568899835151163594889548829239951070578391863194642921213527357071515568259987165148289161655458782208330469753908040638869428336765316683015884750159671496552002887145966950213456457756765248184702886444621545356580336494980525584297144658826523539300713840307203114472289810555780236883005123167600344196515648731261647821966301438261323623103063733728974353787153782492950556531833095014633807246628061755423204504438939942561299627770701062922373357012966811105634100359937868173561492511456622123934736324833576279572066513572775181898234395930763937912224035137707834121817049557600878026644707031068327205354877263603023067762344571943146546043551486214773039082703560358771759482172169307358833283891141508282043504010948368873403865996521446519862565418061028121671975127734363039815508218461098293806608455995846620278030595544790775880878470133123234470460155563004471447767878628964091449453227210672419828090490256521926775291208364362714221354349463691023780087806880365813364889873232583348683378980147578537361074805000903479268035784469906862943772846784544244971467473820565137289815926620189267904959966469620842922528743666089805201301762153321447640596903883096335968151014922736309271886239755753062872506153819929640426417868663790042858060213630560304779556346546532521432870343688042408267836167958931704668652653197441824208228156690127506087582709769933595484646263063205704184550536684731028457069530983440662908759737426379127067680191085593404796309214466268012931170219487141610877667955360803912242589823131186377885204029031360109861185503434856455866176036885224266143273129949139791122553037077826524568383272722621254845980158050285203061421679342701513502537021070569758203004317474149891815588282043206333967407889910522430155940107363344545516817499062186254472676016522018277564117627595432072525369490988947752266693960572118620152476175094201541011109847808712731739702703733846300190921437247177954558164635566835100378893981749949502403135435142574662947343707546249616413137812138951304529185046774539928336032678023178716544614040911490319903130350852136604178372099932278469203653946834674827480522825873760172234465432030822472343262296190958666873984578211394908039587660024429137714799352317786628263535618519929808163737879454853497575208317056297894156349435422728043965860973735762957000192752262283818756881911842236673779458181174919911539710901258413568255825136463273364941308121105917948985758089759570216983032844888269838734069231649141009274262089076864196861600906364785514750566554056483917508253475956740441954389012255126231162036287978048170896367088671049962130127894095534052641148730627753299857998233279308369254238295169803487714263781730125435073238327302905364944864000764547234674447368645185035384739194355239706932899766831154108654222478000815805188337774938179491883575972917007818594152519542196933873487909462128452138874452430770129332142671321236833872326269799071961066678882960939768839714221982591578096071552533913591427768056151707961098920682807094329322920113687194630250803813909068246866910513532346174299918037998467128632771239499135078505394602016483474641604690542673165838210230726229881816223730032461505357117508162016052705032520774717341896613409560270775346491609043891740915388836376492798725791431793272261557502191558972999137504929058085015521326111797104053419417537863861777377136325698748763308688236732298136268348414766290470578697773580696261785640450996880705599274081743924647754502060280945563299016139347847527774263197669663450227633943974199012932229372585958168684340229605131904149803071578370247466924355004009093563058845965662765598676274257513987298548903503782680370748796834290461396377180010553190252862748035962663342243481812706501511712651895434457523060737037839641957658688098510957342662131605603288517771049990738974605378970671426021821765209889410891539228591282713419620824180410932167106735040928369236984197221519643412851954087511045770542521192112213964949172926277168551838217227353596569256398016914988738569918137454866998143273482678835498363524231306716823350468880073416826333185293450286896136647304795238830120048797300365505930935001464379467606873506109881910745160112389734603539159375778970813401126570304598027326618923701031110714005308166250120111815619976669861050344591891419135836372140400232051823236572222278059583974708143633053045463912881253099162952073777355284510608256098847265606362925629149354782389234561870948069088261610303234817581880634296662460053014698704848836606157598903194587213121299055996241276434140747871964454228652250336226141848856888504505862867093243461617987703790657913784216774211499579311814257688607862209960101507789809529073256413948366560755245147907459323236674092697045846333824946587230325955131948827226538048960033750419415033099865074184350885435825313809917249441502569448683738245297556451411644230463589621376944628121137547274978470652819507784806313830448789807648137438910482957671662188886032619267567441264111773889047829886982569046487789235953045698915737776723576472344524093063984932784250379958353956784056253304840121624304457147891103863295839753227282454832333222722282560498728698288385901300707220418038335935163298275847030102750037441893244739820112866538534119092984640260584830166424790464560097481491286225738192988984436247235649021865282614270439003097526846978738950739238481982285956119211340034512085161319227272882555655280488458168854614327998420863657088463629365551011955982251234815141131130151807031460687691231254362873198283296832393944750127557387133251800068830172994366577598895399435597807572300150723029388955668009120135162252738881172116737087018743594751459038079827948293155254643398550483199775727132372652461661021732405606781615812000937222006534948738749589490755444736277907881470005210871431296929736877969939975177462112224918535204033520314958064385744927294214934625789231865888035442130813919724846458792700402575780046390877327407640620341078804529995225240550306526370171928534706491531667711818072778191389669034219758386649612466454971696380120445188787644592344157676542036648387418122987351609197723836072809782518489536055480893704647397981925465785756855605336586653379852368957912017120234909201101093232845674341525418412701122085021497190129801168839090191297869513182865489595922038729303359984179564712473263783848059243384361058200691866581414120540585777933299831902864380655356064469270675898592215664806200391994472455762923050452385324491140232961069670371001360858217942586629994971981047978019322384967340981288740401056283715481030532377193431233120266260244702845797501827073653396134441479816908481972594596219376181174221600600871155501447793175999279709121529845719720552212730897469249643014734542753250737466312835338482502712166403522005582084261878151771178199962120457447224201272639494797468725266259145424004989849979191923172676317815983031474872306900333030028158898700943056271964827703957806666224970460778529556765911628179637225618228183545633346243556002713378626193120337722018002382449332694040714636164353628539501322550089196655010802615164839480710350732953505169485974883337390882425213696242357624389586388267204268439770107793124319885527524983244439664190536006519761768851389760228372156063112100015821183718369290425900726529052729518565959190167372726742339633053883345756213406605000149430127183596272260550009663651137629342856169852305278957102513515810098899454876044820663184561229544547562411551530324133106813686126239161073073339463524946927492957598251625744644006381215431633127135597345025138188787100607786019954172853174377141152055478062236815490292116905872525765706762721133684830507909969113921273545255358575429219703103899892599515044446114906947992854021164930288290893450499002583804840012647561273510033197231373987594842619870387201579684164752783705438112411298694304264980078825301831277001627040161518672665562209541989901341149705379421179185187149593044579556888752704491464616549874546757936224548554655169578016773341686613660884334209301438871680475963321403801511461562162785574503187698207878257546844966924744756740028681217563816581927951070025023556335655839269570695643993912875332084888572294889024537904363927562883331164359397670730737962087707432553097682447283262473093868040697386149999019974955653204903704795262204822191339827851201877867066853630622913920382869243351129940742880447372592283413483599136862634547089344539787675444293869847783331847490488741255400313044166961681198761734889889981100037678739268028674956997189194781545132364204977120534491036207784224141235971432027414001054303835696855283494480712492215026223426661365458037374600491306722079630005001535198587216932172951098698688205662757144781769088359386823034729319222761444997348780283592839379304111143132005514084458633610243625022637353051403362170800544552950808029638885235580194638047693133429276755142065203676574280572434323292707077730868207139653035937654157201907184952238935801168717001950292423335418615255632306288281477378973317040921154249053771917971853360735430488945498927552189447985044771801907607976751378028387663347511974445722133152509306682074257015201704138629472193486991911310002483267857586678614054016867959482329173296774112669098187296312036140973668621133664673216710222590034626165029012430688401483110342277698630868102862575602610345012528931964380948464567069350795508225711943183752300918784543831780303188711514271539281812649856214109418060639575710514335400413303039123846004386877064752860603607913378643335600589148693205583992403960148275515816087647739335772914306075704818501025514668635066092773929526353676424788129233847596988625529171906107707667752842190351491669650516195288241683303959393976331066128096117988085978687012808246404087221412590275526881056339948444750954515422455318677668918680469636938333617364418470017062359580138516866602536438473260142051993977994545198432993388876144801301604413583799729264383871092578065148415480689142314420603656040904699734690576520957076595200141784877034391404481210835575636886775663665854757243161348131294968481601909995098840906066000408283466092203408267377523115565382406122364213959246819692256761707249459897320898161921319676315007508538077827285604412649724987659154528097935179958965716147641245654711315860630948477743223255793379129460323008675368325384927575979826550869169985120098122136931560844997232816810838963724321769285320736072154397715664071260221001999061476439540771666945563141496298251334214780144070496249676150054383031878516214462000496667409805779749664652831320973075146516654659643683771669460777042645714726500828193483014964707612799579273780296804853837304489752667766645390549413708857690509403073971316457099592497536401848372101929410932926887819082457623855119283542017625218220025759841901304239744468901282803690866902055699588761948376173728572863284622687800675168256103788278261915061839689809703869140423051332731116160126606972186001215673503019225479959466763242815148894597049194147023914803169525447237340807747457913667873416319974311782547408990697110552543761204644795998996579514421267446923690143308347119405190831470483794099745318325398646984322630918157958837093079717113884963622209940301986561081163321886344387256745427248035276623649630783344778210173971250077881616150413441387871447928553527231370790247502040573051852443405110155698453320539348688399132450217232726491759066302985122991394722924638609941641550280466207432133773096469205400042109571944397614613666961709715050067596318175195745385688441714516693641189512352141630056235041596494489715683545929521169546530875536804988375315060179248412998972679084225726670375821811597446619456671959676693826593144246460523954402807641770216280124154477747576390372839747270631072654961936639614182302838854524921432265253619341181780385896043986277384401985790853135392411068331766207224579282409067651815907825357505061748863088511919881727083380966726537950512984711529365276148947179605070227389925908525685131978450147076830136991730342741192121761561425110568245902730369809922416002587358464405852275195305750662995447745496731216920858352380207532817347730479589323306221538557460792074558715550674476318137424215459957006361715463072541771109120395790147143359415209659140260221467616779785810863338351313936355914165988535679794270158868287052590014515842513721366359608625477849807918721386762159945341294122426844675167769423603547676308013031587939105479492527187745216139106238958357489867914615925761381688315140535636282285969554334100790404124815046840214339722338090298806927857525752461646586613785943220764400206140305997232308685917947592609534332348475515662225963276789669504215027557342640930653981871188426656085985617436480299974792102954724596240827805609026396835028138622318003747288281693190820468426365756861515196521689631610693480975589865228151688962239340943850970868944502848421889227084489742750427084902168676333917608795625534382404681050141413183005139889518318404954132873764506125686099942447409681244799189202852965663807426302223969521022149188960927215807322349698850352068975256970667194946352780543375444902145780619469131701828925337232954785056122478423386691793922017330538254427280185055274160789978253913215938229599647995971587958233514641847128504092865094812735895429424243138014878374355530392733951399591818370230076064495422231969495935226528527920137747423228098168823773349903498981638181063155844699471048009409764550348588631805991061266978875834055508824689023939884473452411717252695852349830004473218235532226852299124149382399965607905403743680279526700066975615299842574978406058139191048608590892154287993782326194678505230399072304241620780050145103401976352076846339734464464010182277121098491255836473479111236091641883353049807290713713211891671389461762542251079279133196497697881242700537521556852950383104570997985840814836509502766322400927977043234144912092569615610490138578846151011561913964956689215378585628136360139571436031935931628497527915588154523682424752852557971515287114857472805293620477940412756073757197764813255552099330117056712973361613234480581447038276504305039547091782507601367601200382162154939598125248289441462986404216599490080062283152004452071724847900073236208373670198505633176673990130209096442818751670217370361546308979190881264325267840887107774908962802180859801240321229173161952547440017691351295672476712087103442994085625071104603377849453851927896071996776389650192537438719887190959374984101783947643719033733036943333790399845145011011051249693042058031261637213812365828985802326504426054402420662689767909755004542393228261884672878408730868573097316756416727849941608725882391073620881622927001310755649534193539165252068865895831832311044890044695828011107151800984092709214058750951996516406136239323705356175378902854214617721273820255099297143933917335946319202460643144076894761358593067840204052216225353083448710617317651071272581756339911464689532222127843744274406863956042321441473717821244771846743394156308000637832737047590961871982061215466091757192618992530210908733641713249023963317586223634956795056299859956393029284787759304144365921192950503282322257728683225632173762197841644008571373649697716123558555670429618792636009718563994869238098841488988407507325452157356154176984883204135923441924193179078809112049908983497285954508197269642999019050131521915473163276082539510597727517380861772662864341033313443479461660230835535098832189114506390346197558155941304219438353274102902813892633297402304575714140577638704733263471983516292076532224203142537082094952811433708804904608790101531670429378844067967967241515574117659195157281939053616560367009259658557381068173755636085646701540790674222277332138234779779944078987089986486530938207317140807575727856516755831878309911876578547544870068596620387491250795736172704593317166115014816027449098290365081541025279536986899652074485665012640426324449930390296433608282900224789849600968811353830577579854750536752301711469964567082360170357254898775939480178449555182216920195805530495725759173152488670578787310437410014734791963701100677583704259639811928477298503160011354236011987101573420080595729747584054528662866096220035792126206227274314556547172359511504230101718067067941362787516066634428926726407623498229512350918005686121516222819570370021245021909170128982579362657328984376935242353470878436107589115813181761757376857116579016071847416732909377559553987589840513117291388210763287729240011781319568695995249110380438956516407540544454141193039775341997032568591295764325930601062363357187120472709241655993164939396575989858032114718498177436172126753082713216880320523884387869037982166292869528241521953471553043975962820370135760497981858536894946527546460735098404495745219454046018698502520748658150942564787867304621772668470063416501665453130285168353656809052259697673404551256377403684385463295694315566236471535878186787164067467071235367248255822817454368977330164763725218745529461884000059608133495691093511532356809641133307110288743874998002762521346408951903294917300991545578978620107298701001935401550386300849096446300179797922728159691453758802564954689054891500803171038134068937296593943493435696902665861093528936343264335427764265675517411904518838650976796012234306732429064195301122322336662288633441805670087918648543414936015218956280852965456635292413547805310604456049668360922481098398295913202947575198738896241800699286091387385293320585784850344828113815652294841726391387695781632585887355065643083830202417578895494226652945681646878105323333099843741772173330301171409207754650173031082396990232584780228954947094178345484133020269050908019752616795681099919991228916898066044870178863063911168934430532181831233384914272508724293810301584768139607629762791968255026558682098965662386023232792903082384157889269364974426232508257528331919667100775874813698436535775659044634337963009037917968354903699658876980229713911517152406319995659832673171561329349242383526579948988774255636686183543493800834983808141565798262307669077297424480892943617629660785491627988005461134407360101480832155050091360607499082654524114026436430286878181505475445260986601580358334307850517800245348805374961434717671466669185716347280230892679161950536198238439873172624326598493425483920541396903216110854164737738036124905340055843937217725924168183491868558871586180439588092781137741162815363332071212946691710312665872972765755434566164784735550800465054638988912785950010167515344436615088153965161524497416290835639267345590599344744946449510270275045126282961329030754742862808612623261134611720295185214141586718404371692096495614185691121098819302869524296783183249149817361968302964711126519909269743841486540980859116987365398954500388439280297276186985013083431158661672073935393375923410819995276729748335595464826493898029696726706430782412185167515385648647325157592056978117471706611077232590538347572171754184451622387183501010684724199579848188838778322211984782751926672010111296637668108201389587078186021292201388463021437826628439619882452152527848089734824411203418278728996047041503765134865595759667860182091100487757522927965172733028471560427951509370318870526883373650756775262417822111405363108877562673471685684205105097222205358380946517233926991531564466143274938823206032819952978086528449352673306850188315652088564589005120437492945031714326049699711724992998131903079550772728859654556092302750438176580621337522430290763990979205154998219819178204550308793331463509260355254133555385542420393993875009221900428259681721689066044384832981812468521963777658246705597846172001253564552586983916778446334935218915442214727247822025718182818557902707229460462687458827391611354896543049790107972130417491271084762658811868032917110902958986950281235767015851549948600564494825933456435845297816764199398066694473663986661216316584866373987272148864651109123701368777822964192198419720473604352487183420777498382249526672037868399637906995028338234830146989740448750514944005962649206319922455937881184119667425268112813554492179531703336826656988921288637705504398322598341270088338349508305570657097105682914748172671504340947894611380719674854790174129003222732859800933664658125102494891870837878091894160702233269422188446236932013347623228289697747822857430498753319429422840548695913083979767670521744703277308312872923415275369180325227322785991551772727476249992817657592897185195249156354999795367545029937365832953825500080841250834869418391240058825505515478874408533584002831928418494432397948462635236839918474964892799546252590137066103753094631710017704560070724859970492912672169197432624238344665607305830970160458613981192025433084594138254582501670561040131205589540393231964941644814831653917291854238432048377795609220790868402075638557647644439530940841507727968764263170845651600442519393486774696560556245434182728900590181105422764042630863285288885707583429733365675190780732871630826462505243067068350975923716100708949275512606236906013310415679270156414269729146572102020834911367731936574227668792793860708375056627978410572133204888856557721688413603023653446579140245437063745481316582397566266402107008912450932540530159485281751937864721394537551649119041844290149424496973922851812676183188211976858342209580096084836126324646181782417823267450024864619878244270460037851325669588242464444773710604196181378945174200160296946093830157796161642269867833301606699401647146611565184522923770225024478330522905115644352068295928029217269620576616945326587492851396830191839745084156458835055326697497935503602926000408344389622930789930809655805090439697705509548241862711365366698208920533580885442948736499285139682684961843888016694418761083975679807453102697723619782891790488147407151555557705886035488034835838214088061189701398550816319629677664170095930217247625571696772019122469680934141277694090747368186984845147700189963308614099662408265265545370813883803822115888078029448635784254329775461167536039338948346036917663534988103362246898360271792020924349954424952582404625364576757020397356910769279717245711556526564640571442135917391798919331925840475049108877632793176378893797128650243813907140756637173035447251376064666330529796079181237733888441034300924648842199030345628955122279170570110561331093533807383800864060841901179771363402813429540319695749173292534921360849362758101978412531690633094306035579853323591213252336778001498578249938318481550490027210340134157366942703785382978204076700320159716975280025097509094601586077777207867698834563469184620825895853539770567924708439882802871484550890153703629611502219701848169640237030326542298635401416977754116654300766099716846761929314892633654364098202516878142874115091905241214458013279735077944407436573442244383192123847655958017220632896277340467154025792794058197879091957440618079183857442318412578538171328776153299307255413448362615999536005738150617230053941700788861484408829452149753186161981117689226517574605948855954638673689923141422904342365562745567402416890013848124470090084993235203501635830041917753863723838687008750009235110437512937837101144430052335068314017616443254510091795707269954388393404810221289909238947041471877281385897330383500021623013685198013248951824763685029584955634943031888275666042737641216895484416329671224627827318533212892535679604169328488668467042615678080746881139658242626071816508808006917825956750322697845064022862357597492960998272173201598784396117328101222646059734310129237736908257799616282029828863858855468556345742966870370074851191709218736850580582442446261027862106678164744309419744811986593530189816722746597474856666076753269848017839841433511561928548310419296942313352815694545627303795756097813211618802382776043332084332239397733286282173459302655044624099524306270025022401791364539515283769423801827058506856257858480903769205582085596834485365734351691035972643471980394116133429900726485288314316153299963126430237526263977140134055246295511280125804306459237161186780750818314253697370273915826898202012811996534666709607246280642256097263855282766437888278516347160214809186977929190668932753034367231367827537500971049608434492151413847784775228291443203847724878725709913186309849175473826056727601828379392072401575923686994824492591128730599556371506018577870500333763002094852456474925230138194121393174352823511565198838512727887015467179157340834391282016812864528912461527940299636865838309063785519180798338943349368411678526155664602604267443464059085753980764854596839783533975808841502247744753060053268930810187575960680611744303769445225803711935062033271168402679199596576507475503619569142245764487945404731777279418863279401140396593585059287822343993901499067673204555235048393371588857913005908184399680142373747430153274149252243353386738316299495852825142600778065329185498744512562423690936653352393385880971776124030044845178332581648830267456737057557324210343693171587723443699167819584439968905164080709161943069977732833709432532919886050243488526329707814706290626344569993327180688634582741314491943150361126439653386954831288202905256743301562837660386036194381825921405363196548138678366362748715475672310154534844765483785931291961705245422709765746585587397465669875685673301205904968276061842541729374924288373018035893471013071849179906471751057543354612020963106765418008338975012997584514446496906513721843960954350584627764033005990300025640108289231679456103079873376749929855998550288409253363834517788784286307157516978399771094681432732422522544328059661550246164817775944964776257855668031983975847840144960145458024988527927278419380324273809849715924146311318567174027210680633756484455204939334322286976761866913804246799297100894205054981898043044219513800439104114409046825539609980194339656797684645207553502472867172880958595715635397708962319306218551590389622805716023147426658280057965094366463554548371943932105472714637984315548284708044849747542544099989546273885122502580094305483243249521669840109409081288333193578925556108251169162290978111005125985238488231034670041746493711223793773296778270458145631328598482010700675535956290483392756957037293201738685484188886260210994990082061762643395603248425282202872604280360010942140490281505526776042396335387980427606398488811326670235085599954347290151112538319309836520808739503175572238852260041456863558645195280660346416982494905075002941070938574435835221667308961698076067578509097055664874539881200617718082305586241990521137444028198935270110091728500290090021647145200358660086281426329810638112659660395987576893481340045267696960660905353646397114027998614606722333339958701810605654818334302224375784932914453992276680307515591401876750783794323676107447260179596946435642376329627743755577663913702476633054071835222087698503246211909803566793739123612117776699362372299466311512961205115799138499386060183966788163090062240824824431742011397665428215683533920423272014261281996200501677252355910231064886569882855381691990622084161752279215431546386289093648805374013249339718843551816122653506129963538685257200626718962233131619188545867584567930715686323027113876538421598452180734427935718555506739031080420771129310186789002115493877724200984044633268052288249417272760184641888109294507771557459107937534515142426450724650415798382406169537434846279397129633673736103722066581411768162955727581931346944040486881750932706074450669611189750028296503816524479379140339206900505935906330440278428697422994498621684817715058626437429887548099833152870105102360744484071427434304322891672244930392325850640542527190422750648664299428168829795439291846577397391423615065246294349086711163252299859085278325562225844973078334101848958956183001211061347730421672016430855399336818648032592057363923951515049528742610178874835102265473251359347894317042175766985918706809882402997679975601688793821747240785913095205786160603039956532725548368929165810533056191418261948678735201244491454559688887080259176494857701440203843526596218634018545534975066737242250946011666118908833187734927320415706455618607129393615800147006567556234518739197913690068536357067153138481522067343765224785275425311872561019358808738426394883774670912099307374134643593609063210287445684214122987931303241162123660492115329564001439484201031621837360809256677942053817535487799133748299122818156586874960813163719402902256740551065916926915176319362398196332086027937106558401257730178992852631119132252883760930431841722698711939481573695147018924075098267317770153600967342030592001322734143456133528137277540211811919542246334623617434588373124685095697655768040084794121574105174702796643672452392397121158649616998613396315876112041152050619236036275456291931159794185476324737028112320522501900392168720897549646810705970054576596292990634707766735183285282993232228986420343726468572136208626335773305350529953060711247513517216248791573824742516854979057964686727951381398460961195761157974078032882727437957816676030792048924456269312256870990753781433279858099211742858829308910982615099988986782331711199976132219920575940988671183342257825937190166806687001072563845958757634839678310061985345954798262787892047045405302993484145210348268326533044084344793575344884423509307703223472441743057750281149542657792165136893193969014396467449788189891484349468970472543417526694947889415659679435196492744243549581632537432735556022462938561250533591121660293051982525855018784944490636785253117527725587627983809715220354120396975117549604047976325395432947924902369192515325954151464081439035471432271546892757768624031128162178622792492654735551926958429074933500886069703311987831823358376923854302314749938051207879965626944213905119870733561783256806769391483922978480801774635738214880524614425927573714815023524946335458196764503131918612022650339377763886940869225026295333694689939829154651683968688154865649297862668344020159394234734763210710822510317193205005307305657304834433891509690991765809864578412586506107460889070101188549020661051355271389180117890554117798655403064613584150900825298551090966661421376141599192456987841592286586649885566529013962282430354429707622599366639002399034004243298025227643405957799522448089979944334611537111599993837389402086210070019729972011314527179952572637151651750312944055425533851608999550429833621464018380627660052060375992624146452226286930446771264341707092792885086253913860819512620103350410652942360033579723039505705417963919646742058140539291827386687023546696448823794529429183128738376100073267503411702682034459026632773248934164778512742138889077199663272710357382105025165582072157307636190193691574572869474260995572031552076314590280232017281763479774130066980550773899343433799441836694320904767268450822707233803170279875992763325709889581943096201938860541428371840738667221033239475484116221221923968300123463517136783758216589972891844989914717382237801857910197288695922784967384118266719455260853125792507389567939997433638484306302409482990285906327671444932086575535176020169170977870333043227348283578593847216893943063056945937442387752825982861875035162861287552638034983332015428267782842998550951651601485690584921956466124290973807175301123725124020813607020441675736785391945362699554779547237423366867401004280355117874325975521783214819209592364545539887508307429408385393558537414830129670846790974821163753807448453112421285400127175534101598429307459911313308690684416990257216966531478308878868407622656254812770076963931435984384390029949710051198394944537941511936183496034410599411758836244163010292589197350082229485668031708236656358703972024967864032253341114445397707795691658201381118435908996229154998056319403516744378188271264507649423308465752420158614188451055804229511049906671260605762688894777693835854630868412847365148224442951552011843748742711109951954874611388451602924383084876292861418666536828892791187699803545973231909156345690469476754322241547111201152954329545792617910156328259839491582538054546266811768092296332754010319188168916211131835992565698537347660776454968484063512531206601683876648065903668626760775725402138276158536942921978702533023935753159718358576120846837569299131815110174022224012404805449864614519691959615995607864398627444833265717647620602938381497528116588459244280144528636787716263661326942466733854332552614657505766753645540559216660229417742180900767498768122921400767791567101544163617769467725810243449163028906599328295386523790990180203250425662504645762880123788802072643682505606519390661822337188943309970225943923209326357302060140718880304256025015161382817064255692585777272875588960922137330960344008738407869722790193758876598520889354155454977546676586284805877774051758192525446551143560615876015360150150934280352684848924605869896979313088480511495486461315541417986848264712102222053496990305575090380423279340182843997197827548824050065762743802707160560089639311057089447053669141586441142821939814166806930231828194607527173586759758619638043753303783479730795993259194447117532771385906111301598130667570772012325778277423460760497989016511663232403836896101509992482296928288788561994431142747664150030649410215252433664878660701908931869565687756411054704304118155318893443745358927964635978021581528230663088409496859950541508912179731707029129591552202823257931929816495365438700270151721069913867696262170457898741555174390467213498335159090836196538146988914552213153369626432625074322638736465413470247171253107863909749723907392570910435812066531690533711362591348336222496795284367082576454434456952557784900443504782453117886866431405514955226871371839713503312278998108131564818454992173150693284561613421081708197529599994680773659256451911032556995651700399152935270972224600460972578901141621328442329298184189251340737614145681529748224993089013530729340539948930498321667859795051717413580052585375417567916181199992310382884729877342042702397394055163899185049075403833835505321335952617360376863990397760121155379359077071684928499295361743956904131620209999290846510547924606572643029224088422813832176852402484055294035477509084795546781592319924022756573572280855920439623816248610139845855839718558959162934273275034800966143736194316306710366760921511547997058378372778325695013774475352266578847201597345997304283951710215363019958979213929035341664228384128709263879856766918872187175248098268401802425419394801753027682888155661732856007992298636896062266768671996952862471847787714167299542196043930672287986675833480410294366917994775206690358252349917569868600005035908773852726426503172141270740954005575910850833844720680408245527656940324569321628882115103044697279950929593012334478059891765496808068159211097941063696900985764141716023065205857664152570439302802753071787880469819259403144419315073190259155747035448832705137012308943828524962001957636512877186434668948244330272984976411383664539459253011675900640404764065362719279511441169556587032843535826113021019682570149969409733045191261145548440354102074572439142834529633465459754921562493669763901535139574216406048525024656665117395505602137886461874987942162043529517945744996044029385600710800955569817318182240521223790582897674304440845090677871396325381859877832517306989651923908358856853745338710264180482895701340007190832625052706473105324061911740262084961359508387136000898292529180250415833551948176711204486360028108859653122414390221300721669652038731550090431812326168556621478662467557177135542066312009862217083240205231474368594021809347056582588574033669053407258538525345930471827704820519233163840055364951425186489262978450246686402975736798575596384628703245152584488829730023846899035274805326541798386549870033761216925100797303714747510468120035397478343579370133486884066325507987188911082593727411625796437100338658220201116382467681902201120728856009636445876188552838230975747385002736869157924112105279178311979667648628308417692996887375081210573192006878589226367523513757223503601172751063862157202997777034711871100923905104793453812389465964773106304468480461878916053073713049103259099594430033878058405221410151449623435059060501089338200409258939384511811569947433190132379627353321064218527287580966250825315909982356047637736409043250293821257465349835507476270487015891241660762749724946178778006922764374205933464659829584401424697072374071812903818127164769759729266798927437495157208235686338790897121390578277715027627374062237040483993275482837256110122740427969478023315807275135634499313501668708580088489808447744240234338318586120916200090167438281591040429114714824451589432337720466189639931745513377361900663092092350153264210215435568814165270007661986625729230297665183697290049698547244530613017564140019811053560545808720940231867373004816298481898047138191366840359764158718487845774071397311967409806941059492445513470575294721303579779412750315352438732533442353557080166886113501173551762238402424169036600301406040534901377552484693809245607237285236168683257093161308088641768527633972639939512922468079592419489279744459198875844615662948018420333082597092540645840553669079567318107130501417455747954918212483823445190723020428752081640878196651269903834351521797078924259507673093119937906872484271803523180005547483743370181600167711347855267453903683480136312612696748881599292333508154797492997624331071283806949248425937370111220770308185797130706185041173293106094751594294031184210452177394048159203045420812476667480952712401414028656966256571806112230662276021061733490289386762672208730519936328625456574803173894293568408783447899158758539445948489558788961221118797139518551650696138350666655236875831275898058792740328605460464138556436057176565005137189427746475120251176027599631591493321761428957447084196649722447170055953164984063216668782165977679696148124199777501435299085828279814896374640675302327027683789629539464543752682067422691429044746432342780630121297741030422704540772649150182554210237227068085379467870725993560647959132892336206740934453664600599140559115368114658864631245080712904437915020040212088686063570600778675413254055218186027111220710584404040456455891278365266392644532033260548032098875268486209108314136907626224138022921393745430239637201161966921007254179341653400527389231200087520595646045114586685251717106095479981689172923118118620696839315622385784283985185520804775499967226890757285064909297619479528337109776667514180735795438989277293570575008537646862192333021937482849408279264109059640300786275328680967953810422861427116128411495796134518122411642365249056417645778636207832444524782382934377393132765891561569124910731082262000073175231808806108459943014575882344917275409439291871997674188689545655396572830611089722827324841549005763093295155430076244810877995234872020278294774614626937706343963844719123018588116336170879069113214932097954145126095955298190226776216374578471036136599987676157116096030893903863064925198215500204944538764873464531832557261082503625956386472380237315991700111381207208967137744332116182532428473640627706259313527001455509522812523485389730687725980832366217407844757952455932787481006581439579290623108227444181855532215948220070010481467343416654919395593542609081271660782466075897799221953253220179141648260045817029484340129687843052188731973198256842720502923236638326501321833340033348609795841585170035773067719691348589519811367727457404337959911342831770913617709837213121858039906500730564326418543360026027853037408500476676621542779123488957585031511208786761414843444894519860408876436236319080195227751685616168712078015179171222314243275810330101087576966461828162384851241905078349712397643083193136263609608702948537066028086831849359897539086399056469924409559783725790387857801424463054998723887182499686134620764430136918155375386622558320503311320508164985760195972112165193731269474151833470294977669131329739555505929960920659531965023969794012332371319444981340292234522559164349836986466604288753152984501892184976876573222338936086485626247517166872763573680334668384490145387982280845060683124993166841083820220093198030281061582648764716624105606689351442645458626847032428193415149994634089841687682861218022646745258059302988258612369037682678151538944797915491472160271237232544482662662315672073329287565568583993543367273173504638024987372753372710897764986964392044766760170317801520833410425180974864526167201377252301714975566462601021111610278055014566114620650272498760077959599246939675188634282223296977430478298677462829203673305311254041719304399277544229170631220808031444412312787129567033575037393859847311622371799612691119791844450289446514265294211816176408304936640274587020556936511934957953892264894587097427997527534523293734430893875788049063415062773419079957571169559221203471669679463321324316598672496552663846767745005643087525452202215037390808712142554642092907176886486058663838989184478457309484269330847300979375421352535961422889145643560606030810635791794939305373125535994666346991702348387928273972021822351700114875049792449483860394764567364134709755751607547627805672960346639433236346072606409715737656894921859215891722432796563536679768099074154950822278954490094238441981821860882615251315207364625410448754712426671558557949990770762007506422090725741080910606131996115959255231093744966264301307348956272300712551616815106753047260766573875665873398312317250866523591756745101049084177173854790659300856969893524088161985779291729167335818815544697528328564157120236542209845360486345961913231016103822361105172384586697426049403800628005588844109794964012316153272000825008320852092745215554550470917778199654858536040323340479499092439001367890089985394415837256596635354227792158293170142173411933085009536240481880033889284026921012861677009080162033164975200031305406862073391687722686944877944054236913601092893278702849537318124750418807758725496149292628487957456453912606749204517567497005539695369424755130155822369149231052386922711084816488409104108954399897147187968411776829261543141916693108499735789543476378555373652207818960733296091077536916998569583327249847422655468368487145793894399244473422839827534885482543207214386260417417235543810982377282451795436809765500655418895957045408720997280361986350731679818231952261313334279805726905671827776636874359239552065356943797717117636490432639431445802912230986151526356094892543756161124720873544855038659673084115748450387726152642355714587834389424330071454402714783344729693347386443857094304057786497593769945138465222526273122348414945890226368089404707309014171454529134662055370658410454671217359681131403339014666398413245432832871679049132134795219645509023497282285194375276915023582863843497511292451501256550782221267446503083160534656989719209518986341946423902316778136929258925951969716913434724291143262287146044959378851598954832194448362969295949104280983760701740464851263874772203811130923709339796250564694554008502634502441056854733437579896752925665131715173573054455811509550991063518415898147421437612159869058474343226869848171793452595665916102748813035106095026342496787827263488048137024828509090951402397813356631859958534489084135305801774761017152115480084209980246717091853244260710958162007365187102325897082518823962750812301034023549054708692331262841085817759680954629408953550338847835757604577262230980811097932531053666934523923715189445241249023916870225488865599689174722330344865883989102856876283907553957832019121139794329407500161966925005516325887172547405923798329571310018108479572293071684878446671268855195140846306635903281455181958755480164414179106162708491219874946739595344061033652749977431876826160613204897688041389854822023191488204787713960241520995990385571164430083193650713329969756316673625819369526241359414186890117842296066698100239828089625360782361419249361216086540115328991485774743786702855603013963386486031759439553366098228241657916236783525166001545989864990628575612151099616003184474236365480168183368875715823095035894302436180783587340975288516797913542028870574652394002482029593609105738746097030047990138195779456170760776736194022776071332043470720893317252651208822280991829806578537373355504806971292758480078903997622966488391323408866953614225824932999375933565279031740312807011397974706419045917260039856567785069426784502170682999680423670046410726764892617482010908739113459883509491033668606027415559295039851967433123029864062379519014358691171935052262571670770544678212675321122720859171499220818401254302411867861116577300403211223593871166074211641379502489115520551906193167091235134612879543688187953786910706964275977542235571484449243801024713268652719072775049976935676031883728879285569091523260146293890031937070670232813472670555878671730886435792222032184414088823568380059756047545419981314403668110466124145259877152094405543744851480285273256645071319517076998806007603834963559543503687385686090089538538513547710011036454068295607369484184318296948560443491043808388817333555584358543299245774286987227288454412718038946834490018437136552553892664480719364353485465827611741077002718251769488167480296910440108689998913761712970876412199193849343193938770472049740027476140179590335199908146105424994668829160202632692922017347556426229143537763764135680322297232772168141967089747682148356469115713433703111019745781424026572052163888181453265508579698563239262327511011850991031707120836660000836259980196383041610400583579052222498457954108138239006212874367544013578056292023929736915379049608924353727777095796309513815578200226329664888998237708402773979376926062317527513891318657692268863012686967933731053830242550739776898156859266036135865080181691018770126816607187353293715777325058916213248636008651299450507847305121979935828921231079187968975623061286500057409494405538278229790837628619364034438278689525845296456255933708838431022692789713117249246393037231954735354957566378194261201025514786869834908001088992297497807398558886386740810404130408755571632305439472976134077113729769770955948184689771186060350172227059645592024577625928065421078297173003293929239411007841353210191556627653893482276639135213385951411255221199237869204082082934408709223984809609862740288312644322163557750829582734360027244371004092120835076278594765101988598788307523028569852650837716100924518094631692213650369127825151566119595611015662915601992416810377121087156285594100957197764461040775647565107801049401697590628531756453150988247912764286431555505199531767011441818597799655981405276098981181698295762175886986694235035262057941331086821959037482059090658221429203986802515883776195355246343649474987604393449731484408522706612572045679669488261377854750937364841665584610316714888782672072387001807280927954219995912124766929247451643421329308347599897220295538296487029890220158033969707818582071941204689031858196328443064581587851916662163036050501382959272991024260280336647117512573167624258843663540452783467264412100937570323257260962654416753700776686011901288072421437232230286056003285668779972781474003815124648019177336177946159636347224972385823272596999787761497903929266303465510417396145763338200428138001871701015823403425449432096219162533155757319244799908581064714720277844465753175448551317414358386522718730641755397511016416022035242474802293647342557258793767486419734172550406676490502063648272885834226977826618152255651511798050112169057890286504636596047460478232602603344148313378297446088100559734050220660642242083006966203754331337964386751823704095355614664088645751501523578067145345143072490770263486674837042243358447960367786089706516606854458785575399693959475255532176756562284173590136827525403604637488872781650125839083335809495365134439525542740492431561293041572720672838701578158533770357542270703668411031927560950627305327013866046950449620939185337890849287680873194135935183793225070463169581399741552781268346710060650567070664180513251114733159928608404241370240038092279151595771625681682734094157679996417605524626430972370421942987363302627725288976473485552238909780394265840287845043079543357761306955385531006368039110262988547730311877175895124092336635607493537894013408776785821418929484099542526180567568199101661042176991145290900942587384267649285265367316875713728908778362140399540022733313355833540298502281210018000134533486364514567773819906307118959364122271061045225663391117922106117664490691519936757394187479841555924670797320311310294683328504583220885347910840209219573316071222912281555663593598349819051603576286961820310869964386876875536219894995195449714000299307840735609198677513270910860408802074767246858571561203903983754301964493299761812978169042539702726069561034274919008110429267139157346819189472466690541468263490110857945268609665507425643781939726489433062911761782404821902142348857793333958674791238559379784482749487696739554242498820953098536655165034077082553414927338183998263929735804065835402267305139458966169076193727253653181414812762855746487271804997682263619015444498460200702115486179757375829558553588795219674735481859169926586473019370146961054336326954388373052340617080146458710507524523256222621052960141644660358706445493459853150413459015479117631548435009289425919224342639456657965433944026852769965505957322976581842672151043385057419069745747397570987803661540690236324655754808350636350530912236412308196556825156305603942778124372666284151054253192240406753565001950101278490885323556051117431535219440293667965395062728010604206012230424800611380247187460136759601753628477253385418644154433187934084985566287197551554446252762872745384932389416600445638720519191565734847197537768245579123947163457237493978508856924365460783182364548946345069532904404990855242935144822948432862325071706480526635619153179532656772702097275741865799786602117109032912366228959041387377206677503827096204077318719465100425105397988092408022305057287147193809375085690784202227439823737439299810827906310164373862441918768046413871286716446709815303468754297949254147508569416004381204552792199941529692034148125079963372663817427238499847648036737737941876759027319228162500360084539853539695963623097268166631124660105277024901413229323576201133633454733945459503824925993540102530849249546166270121625440133969636161719530356258885595008452364300032093693413184082540108920008109219299969845136214948955114030378403263655031357214830012194436057711534004357908010469178072926578568283002264785212941187194866049573604449294622109086293122127684829905407209574230542517232689953607417601378895491491394246530570995383761555864514170303588229298784686220408824410019055060320435183410506014989590422537373222446307773356675132392482318342696901739164741504154482606607913038393522417852733894119538528276621189608344999036403242025421770037443851544145941280009660288416555965529444796591558645480639284449370969562982833817983781890094787301372613224210722457531789214853758196726608671372016888492155995402673591570868660713152756308422306595899332843027471182882726059869122732323986428561886692853873101488011313557644586138380486356613182751223193219146130367488690212528700314550531402625529355506801459935640867984732764888108985573103597393590741678428531249984883509279472196292661455198982045729381256941537080832475707177745377182160221864251240098590125453807756119415627233568780048292150002171698661447662899610360776170852666985731805074522848971886446946243978701067684461816657644288363267580311095323854716951667233160870279465375215075673969776153094068785297468822567456506041524866933502479213896024874694851287540621088539050695655855394558280798307423648482478538671786134673108899855580825173542526690408810336555279464681065039752922257951491719526829002924482659771089388293719266082407587888899369838355363014643611419305015369799888700138946706186585829068652210269060534080848897207998665235551274409569143295794595577834896876306650451602348787838719181833981868127671597513553253218635622174435941557066034476213348533589594074622466527111561557587590160480783030532482227926814155401754866212884235310897555093744188427119541738124954764647612018296721299890674131576364718827946754470872954864417095200793316474911405660596684835967366746572609374357626105561786462396578182992614662700111588895858906443044675129942662594079618392171803121550853861954842905610445119073698438889636810908454353146951784411231019407859852735563878700194759744286446789004214460820293185046233455686976341526911928123208977630237080210689451909784021872631818096379135382599636913580230239002653450687117167891151826834692218351886764911373803677508473173360275827616089858527252934600370174883405472356714584204209408256010502854282680363795586365877497408467805093919362688163622055310093516171058117783298172482254022270839723898447569252801024742060705232590617213224979710920791106249180719137474528467511272180862739840931783461929696257557773840317323668681354637445227875701906565086760534297059774963310051310030631691945478399791669575916886206330327200136143967709846919876370442588488818630945408959534967829944151016339923577025327653903437846077442155639171210966330781042603443789363221511539575060346723006107559380124840207274375047002234477816085184554871032721115341043182986129696064053177088570396636774265843043385916040853968376534937954394357410193439251903319867164495840952661861675512835130837402974324002074811883621364596535749200833431900195884941154465880742825330365534691862030941696690562503878894519807415993012258345772939120909554597242095276203124741383472434279957030046902073326607669117302199316754973048486386136518181330618409336117437126293641791899669767911327068619546843011256295586311049931588112707517946784358127663381687638545188918020521493668439196852060586212090395527634308551384023253063390414535770398335774333982675560955450715062220856024637569389874572496668933067078231339743964112453079431441474761387437815222193973501803293112080006848688781789664095503952624468685725090372698471870128206012746556230151142089227331585767383465833277743537207568685981676640503707684899789412190206758096086782124174843143537566571990621111671574378209123833697711940833170541799013565452330259624589379377524051335967603910727678126324708830865005679679591941267846167523396649658229558436441492935436394693190893951940367268790641423975376481041864026879903968674430949079630484364949072989134059219001620093764164159149205110578288767515549848590620657662183711947279793698008407691589535389464039356331677069468461703396841394682537726137690648152437267857428539344728900438377499787286921480094727303363003331428228527580211695291798244403156829171502772239044755647084408810085633490845627532367897436391525859526956156736692055851606762069625787082805917396747318462652883430319705922311136049749844723166698035213789517458261602990728405281106995352676947386658457813622909203045785825031580940569950153839077818014898800905463035577983767633647121939395421829278184080458482865097021735881293153119534730990845097949996353789906288845535617123725113118571983751420003463437089968270544946565249675888459842582457893272228069795065755033709111099990340617574262206395282731409991501031115120972293623164790085643244291154795783883156447946558847618511371673527741488199508207360676406949206985892085757860168091187962733567649343266141699767367005549146089216979747255366267423536439752264074476389234092344927143093624634012875931406695560536147280614651243208106217197983667719607298632718555347906886220680028491153524072576489303582497380902794104911186606030089313014215613335454726883572120855900669442890708152710283889470920620240461527890235132377369852489495756956059827758589652580214739358571623569836074957022073979649375461666165364753499003790389641905719358524722886160292711418197444429612355133890328513415876031726880077477921221988182320445812936610160659437185592590288169894488524715008237830935993593195163821910761663843624697131084188017698680952176000091216961977201047280774297748878844360374624606305110029675739548306660328267822752545141967886528806771148416025105267908454251202787851625326814639633666119348806009227842005802231083465657568429168655379515649221934887214868361677297206714461449471372260589457209691784255582313877946242118279441158632777870007622894605729912349479296229540846522182237577048664369545939144857612261423044947354809145491526312440627831255773061012746638415400687593891492854495370581922124124698487430382879007192781556443212109152668555796307993958182683719502634151408062563383147657431479761138942120182762377875291507683561456834970249556740902130365374165875319665815691773662628171935152184448725345559895478872528720823108087160136826727823123118217920205493607212552382016805797581282280062174552343404171182408612322594712287948995535069103295027756934675937276581283930033207186511719419154731285185823741184328595127827392561981272000597071873598237410772664029558843814329698963418273343662250268360946598388336587190071368090806627867994898549597638575288820489840959098006173784120271899388155067995662625138325383447466773979721247332953560059095721730989457329043280739885708786480152999022789102720543346525434431405468181463199682539677928708320487852628510897162016551310102261452124020093124364450635870256771985941347381004816914026792826255304739747589385048780650930731035799222972149094870674850902496601884608610008935566253179687540010278406843438919464017311931323383911437797135690118720806861422599496537295660554731058327935926171835944246498071235201388948428445780942330091479330677938604856840122829831367813625260806017840415226101210354556939853034795383693305346813810759027989357938923618011036956659483079412567219412150829519313796998061666085883928856689695087173916106813991702861889010590533515426178011508982255261005836825061760096238820932673515926712225829791016195216979539285402262222759387832323956177867656923372446651530195207464102004908392448550810616882786332023828364539979702292812063885415990672230122710363487761790573019137426512627297776911243979109596974277204704786075993807862476981186263893737631287781680747283877729474966951144831575204652334588820796343393317712759663899142271884922973853526648964225485329569596388622101902457101577686359843353406055171572042258404305778209611852228804430382602388059877717784775652090906491064337797288448263042506011398598767325318982174732449940145876170180326581199657975106838682742937875881870995229490920083150797588311141676013859366842868606018124995227422958662099426983994188801226246021460574937426448432438970381219096599425649837233415128729632993102284964336230162700250236740688230731319779226267656642050102570042179446205877515316642641133474432529378772078024815868414382846871568793109545715490122906650755039290640261954207094535293341609375675903220104595916430927171136003935542814803320629748080542793870843136097769669763257895115973891654341880986031258811806627615637880947953184443194796895460945835305195880505873731768863953856046224717159919567172944246198852394349919735194772739282827477816503119830546311607722327771708601141940553210936225514395616612588444312744432465588166730958743806242145371914630590167163672056210538370968493549426843302361575093731831041025258463261154975890324660087047339768468463203707702322768802454344198670818795374113934307781208617890409678329957124822942884320396638752215817515386952866359245904676186418065102948760995692576388978887829968868595298777105107698112421989752341961124271230261668886510701650448937799516076588546028801619197648777511676825899500437268356472268393708643254820163622613492896129422131797831663059903254885636221290581330762560872431220187544853396922976593149838130449860090415896415377684728871369739920595998269323816768731703926410967276182758741717701575777789241907852917734217664709913698788386232983983673151624400152361126953260966950767467564014647860923399511025857201884879655571744118599743519549868128540335066560571415988006239438601349749700172678353024053684989365509471415262723521851988652702964047775488846952208448639069246968747233935885716193100789579324152229158270976217846465841937968469034204382114897125861255103954205227920019807877876465781055405473096833239008661266540307743844701437369495199792066806344004212727355491072658699709035748084547963576959963422150426150842139713260699115330878079808881277621343307023564301282844343615678722901917601973391620139364868161058433421903586833937612614557415725145885978118194824029796971707953450940910197994136521507464436438880490499200680695688291467943565428984586236494310583857527603572368857693513090717427259844288792269437835184013029675391138016408964385533411741399026065112404780479714922004090478356380374096061589815442321128482009649045571350348905713988721427347226996366344846466552181088924449671325580171466887613876115245603069287237942116757061530003966754438645966788643576795885364572148508293630276334256091483513933828957972016310115628890075728106556490831791014234048899118801930463998630657604955321793574673623052771819045238861629489043481232205935120891747199294753376334752520512017160852922829354765933879903330616093107235578525931970472932778207950521925764588598252126535006990120350810335199912231321204558573032339983566420746508527886097103101190070274766272115537742756674256112895977876401732031751069456459596775117866086292462946767449316313093241412696558923540423173793504756789059103881163112898626982865326961504262034913755399863159351354329158849281959926535603367994969218125917011861896551621784621143432753190526057876500524654862681885464354766404992574750867544402866474521262435089988300503580641151137659744404698549393159992529850552322337193442240643461086591797601029696703866185037209585224011977756135103844424773928407108427464979839360651493460745631990569077226499208387376607177586813240689397023597443493121295495263177648182371956712892201580239837810883043932483825127473430607909219800348888106453825572581111321730461955913089236318676029398552000602285446663538444222913512414730744919454918869785737133368795024897435307260532992551472650769181165040001445854974356532532070377577070985864041511144950829682410383644268832655497572874204014068207139685553925260584184358469101004427740358939924714095542164935082588904341872760816652393881835520733054551821647875001299633017526030518146955577108345869929913809062616846809494763081376607467529103583358430023987865667385871022142092567095538565103227466990235468930684910403971970637208688599097097874130919823976210447335586640309645863398822800627715636455334997897913418764715798466327990613735092765028141535197695321418766684915154977845445896448940717681131541168239057023317127420876543765819549184680065013145208198938612697888233164487668297068697466351021403362535883430229131218741901278320883241782739045947399333224129153667983910421787387600768592446642581987892191111687148021949947321835878077017026794142740420784679729041086279622476979504895288482720769225566328996431026985951593492825157533001102156863374359062041726817552193964951199171131468514395800912409311113913185918261237544520865076337485371810509489316818817043756544054656000535509819372848617937923947717546158258952174271110254895076078607367518004257014047716811610914472509979229678688283045612132026305965028261408426697076564349856278054554766366511573257941696757998819459663535692872378789723278956291566089978528382238060899176029945069507815045989373134166871287920032327698511588883794312010593496160723147117628529292327989848960538616650940927774780185184366961598662777443158230574558193944566057114045102303628517852223030071255941179631658572932685687226509366241270348719069016792776191743585252825852999207192031110734436325247333163899049457706365678885066718789640729669216728165823590548038785961500888024703931343800986190520803399796835765439808069324744360961127654678703120970139137853316675044135637648377929333853584216147271825565808284731918121772398040241712340658089386341927425057966202099564638381894332292790749584583200403496170638674550677075370181298107989592429104736938330579448092094835728029065411741750413454681442864855329101850720749506096442441591092465767016276672597249321891031434424223832051186080733199236391391478741220555483152389930990633265307942833428216511443754254254740112076614390579051420854758448375728158460580360787879533056872448590760110295710279598862229556840685718602435299168598569935564684390654987026011019449057274890864741427881742324327798909885095155782690747348775438352732355317599149636168152938302807238904961601326413368457141820232945257548624911632312445230959877105516179840243679435615034074294533194085793128047835735751156910866533584135320368912723806622383010284670548582052644959950743604153447583563946163810164095526940917308062744031310623401754816438979092881281625891844585498981758644380344940685050639221256634549632185314674596186661484221552434902255094501131513256464570888889038685231408756794335330536621472318158481799729544575740025580685811284692814435103975531835627965153145082328068854190945797558395587665801151920070055841044388128022516163291543916740807931431314084152909070425079754212411194149365481689446740206182494573983716590189754086995154132275399592979313988351205513278951976591199303066879116456044539467705128755678571498271734212086095661293824236699849432270753823082267838533746893052619120307456189566279437472547466215968859782699274407521413817686455135584482618661724947939711157953299264558923550631088194738812048522778484697646119132586690373560385911155115028301185921438424250753849246775644310641236996382601398712424020574248067249802828218926689226601340783583929958904698293593746520696077881792816498848629343472375991019175430751879309548141095110019904276629472612613459260536444430255385278086730393010383314099115871910211743294193337750511762921681388958448972806813613519810193336511056956328085697901120486945243793079139406388251089964609786831026839365448472390719574227257134034898735876997277895795333913926062306139501383063754777865608813345630927145949158283426859754106393352798075900785231261406864069462386745558819728311027091514218462076142466267682974987737448093105702332167697463219598629991846276280542779287507387673299297315577060387680477760260627488864670705197243996274988123199776525507872059603300998114238222611044432928278981514315244592497959775482507903106178436164211835523471933350260450618298835912397667678857869029502223150571095017489492941941653161428713268874921927782317445560094093245305467008692498084210754923107361398651297854421901426185451234336677396031296810559466119420823258463782764564018151618753315313249715475093543098207508827737287666358914702081661849924596173552640596077218603237134488111138748573928924536635358893556347181858748357966526652449248387216614992328122745767402700289249865536130334481443849447861767640864135239753830617187841651784647168951329870803415083650813726970747967238951499122259083392964049822647725851655742607962020229446420261271433365351385876240214392722380228660762361608474977873865786931013175580964260992436816974362213666494650630609938794464986796932265515801268467084877666841002231062915427617122197534529616015683315134941841659464518684688238937459988867067825789464889827647737849875367558128903803292198005094216665826799180037804572212309874720689840486605990873427891999626569699697000632702295749810067566234130626921825214244516272110609447384729306054967231882856933298438682865591372423167296799134741947775089843482967176740387680754132097424476216207143188339592955472061761291040917909890806156607113211509871779654764470408291109607007236430690853550793358019919371509378976468859821603313270095924577406497881272197189388971760124705575237934914869859828500669326691475259918010592364049015704845132693493152928817193880336319088461252418492391744938368705421769421995377268991092167143983539794201140866901418866576190007265424905006104510246210966743547953989987552974863612616729260998370115823758002819507903363212727938091764156285469923938155160947254291786674818500552508791711227005479027014825977744225898636952083296208994440088669750901143540728982869277447871689290776791949949430538653187596336642206297395966497169926956993206099745953423478410514391144228716427023720838563604721334381791262326269366695473724858013306376788434625555446536445259366366523739453832213690742410449739980968470869412355242270789238128122043198208149670265693788729046727775944058139686633469649669250769572046136608816084998515598388472372997061700781881567610350155809375825851769080782142169123722229384639449931783748705478379012221140181458609929244882400503455190167350438994831663943547980015954524538740605051439767253826011136109203341956311567281678761628942340430824002087247122989307887870461258902217074041886997632497982245028633308203553825937971353648438530952779043179483883156063087042427735270637211727845238230319598951893156919912425885470397940401137210573569341574527996053960349351958818602299623351226942080359069426469107965516312714251482619276502732815689226041732676117832748567243092193487656764904258768462950221376199204204143533467035490204759121165987679526596048319525784296918750892040233336473510537551809658219600554247094075896678278515292969822288454103206500994706157755370183473468934988811824125643432963317112688248320809215501678842107765243613594900198584640391518753295729551419467675188474873337686140629269379772523408811902246107134422036060612867631388567329517279205480490332973434206845383219754041637094784927404398815986434232857707708193573873921235285593298964893052172770864229759215522781079456330478985046752605026625741709215740099943879827775361096097703043213127803202410232738241443499437384682852236851180184056294508243044654819504024695953616648888731127566194422272344204732590881954617951837907100969034110951287980839982980226945577110209345424346735529280717308785532361692395537204386672438583548161983532634183291291001209460112679337442790386706167428914539396452960951142466618018561637794966209398428556032562290379138466139157556694777353978219390899434276341241381940920796639422224874358558591333470903280970508137720441351605322191010309421426182453854725303576837356485338344994383371200795353632580235588876648234178007454144634021113554442197196638540055122570451602651876509061087361270150408951428575668340547897806294756699486401557839850525117152000823352951332324000510621008225920045221412871300219504222278684066142297273640565008467110164056675318059701760923310845829677499597937692080356049210445247690325792456853536520551588937596239469511706900580277584802007754799104201583100296633062837657225329319994046956206784293776893920870040785772950270809206453182971497783845940625497407031543260659393889250412214585508420160082214146208090092948165019927822674800891449508721854606127201496399546018699736712747936076846586624539379964881767273645568212104950246331457031250828737903031214671658905057747051758993972350232390035085318943256607318909999285143151847709034089437622478958805017384477530795149876458466494884887578128569891408269898129925884019125536680003135322084355142225258018728395511943317174729351692596212858078671041429514286176402226024507907134785018489052409149516016536627392159342798446467287060476910985696701022917822325329508963093210237694721416475174752945891218361353965926759849653671405928564879332320184481848550775815423820023068741209806155410931489799134784684053986007841604906035162591152451510743872664260001613481154843762425102611538915205093686629460101153367545156718150629758784673082456052896979522809348841887854920847782466930570789064520783315832866268161224533482554835632955557044859627923051153027076548259962386090760585451741703665993123598524912857234142384236872073207062601261266126017387388674923202343776815926929054158448003103595833830892014770172646928380150574624988935570769337248987652904169823754012851314384989577111212369443996066727915707220495567903442916565076456136976198580387916594470941345749428002849824050057943740596125745611849380384244071198097094443048464676666562818375604853271968912709315350075222865854764417789729708016439210916918499858428101006569659039683834271701061116178890628154224721161992406490150376791618016779190626776334165800619039681574748059144334338075885612022075759986758369385758360954720480962372678306645431164020116528388001259150876127937444104573979847798492918121567135363239174090448949816982599292609372401789876615016451293595531727239603590159489493355177102243313025585829509388219122154604908412986332658815861494820618259664306616661598799486754358998960543240737563934614665362293730137666278360331471855159504510718934595871461543230464533607099764456272663221118579154339038931860350299121670467985470120056958114176147824032175543820706184294027517347615909923690579537436744897736990605037035786081964862824583029230229740176144094925835608541179779614002821853363976946640692347069100530981149553285852292636918722086439579097874887117253187780132029056513801783080865538739624731347765629079343347370657890329594025914561073573499264666637890028661195899818107960925463819066051876785901601668147753043749340888108889513021194547910946984640403169092243541213691281635413396486167075766431976113703371394029461104763518512411867768298969215522179380324380699452623075351293731630083351474230342099261105486847136407005312920122835073209887913321805896738031006195167418998126598220698712551421649927708470515694532811459380353686999397330253205400082608564327553429692499356828661754145257074871732935790743537904197129246224112895844817398318794026989419468048411044107434087225464140530274690041291031938325231239828217637726391397025650727078103702186609968894388673865642848113141115189217274222780133851864717107630245784708982174278817382095887067092390989726145633784707618446236640582122745009587094281062923018214264147829209596002910257460146459156682498448708639003112623982658365274924183254653620732211027492571035878876783303250243422659206529045324415812742071268184653150343378267453259512611342663768685812272236950727436437778802060482812799060114338083624789102976499645895270286369090506394314952123569006358504670442530341860071786748638963841640508549987867638941093433881912498225525335423818332613446361812811242480371183575052630604884384662926092487652192432609440945150835424900950509798189873898853310880230442287714608580733964585010347497683457038896691785884420896492294032521707396800520984106868390273459186278211368675086303012825301269837958074941634720395194460060913660581383927137219798326125277523948799318593519557503194065164220557594739101360396678559872167757401535125691599119534198861656971772650961530716467531081486340074167420528020550792942279252544752862760090585371742430891290116827086965640129557100184674715382707515963361659968275904011182211112253172165636932994365606332167342380424955106494926243236758304594747984235441612148848525337769239821622208996348383167637540581998229821236675674803783470629422811250335517556534119477372205013381136873002440775244633232190868214960668770974581987095599171062550388567530569715275325857793731850653129440742916421604560624752450091837870763197583400585189934967206212256198200228543925074687088476207905999711088544724983677254881140668775270402595234943194327446801182344603560791073735478840728653828063992286866310850009411388026905479761948828441002705502071790083192127818056019585746862729493423643614687318654516052093589318555362766455305171282329298991506600887193712026793507843693206530981617467436668930575763955536669894645062081739143305461042831775883008273975833562964922271980285920431884356980291669745684004279690820467093040434028683393504473664370124533398893069525720591640253244651483230268941237861659388287193732477388877320756085595041315960136395780088201175318048321992295379622148312663767470952710199324806232889466414153202510233677081647124938170949462799877569107030557227360642881688253331825246603330689897356841435868054926424837055422065400150141889129411378435573493621408578704659282612451603831932159355295195090784146560510698037879970561456570594740940647221600854229556370611155863148161998156897941075531228850564661147090067941915526306696096069533471311501372727426257214206981217268597372697362485350729299166881230021994220689420824949002862343740251230553720587336815768940249849088157246457561626048223133763521783351093227003268219060170146053436915183109656633121254897861050363358311491613736963521708946401998091871225996369610508348806405590577993488325910847931293336386666494844243423684019347243497525885331619980855662003614232494306883588386812444111104784076471285482241523014874196723789529924421873910276410651538382136271342481040352242036188134831510670648439211211865766407157963650985234833638494119821388892172553820460468306827921978239211239083783856755135009526571908065383485540704766009151564113149547683358659125227306971591361956469403184760157587140985252898052316447020866228245857431514160152637766532346303261879460570883857245734531038377595264415358216780276414730648268967294510022042270438521627630966070986017558711949712850999857452171046696060335454540698026400712404787448399345850424757272222240683515261852663383680458303360652698498970597295404509028474206253616178545704339111903726218761453075460993381893194029553406224952823887646987218736948814237951018984370964692761446297295922306694886105063301887791182937372280419923513461568036345469831721582463152001682267599211855743105718924569013442900211855584929899591583028953731153156066129773409968054365449676550012549260275162500260074479290579556121799637429355103702299622999372188902123540603644498293801577229069637619191946117943020243436733586714360205423968705397917026760337332647197833684371275560972119125244663603316459877880369027950156556485626647712271195405667867597292985025206485883008537188954129467922681385603305563699005511913201976332234750707833828827697149666750885874061628925444724988008836775234221764981310609085338169120856776412424353670921489698070297300427190093811245340992205623445781440436358133847128659514117659695017938111282435582009597013790818187508019477867498766879073679586068391678431243616294917602160770592671002718539440234150839386329275228661988437691584272384208537345518354640393924430750385159401667139029814740654540500906131442102644855631015089930927060869744449811420354724284590034995909753402173554922236956253142615655126108853808046060874922832306754156658415428685664954938947208503777800473886896735773126251028526635554324667332520286791276024076136500055080642895394040330273701945209665596019312552454717015904733487189887336237110094998259522459264803199077005940203305731211922284798070826185963253046564337747485073041575926700761422824799507581232674886908703330898888077812271593148110668008487016154980880572521997745902604254211926553748366099711261922840888149514001957218083422337100527113065408054277015054737465741697309785679019311027111040650517151534134336068452332658858761816619821896894259702025777019949406532714181169663501219310249911310897957673899931701758325279861210481062935495900393928732354998596189554554710957218378674421527803223907245915519012458800350445321755931322881274544817583751047789225033281255059506309853813061164245669502321379705801402090978875872844869463558850512184382913617704290359624154996369428927250184612704815257472672379708357093352731015759343766795187453831043010050203953632781995903215566950867220758389510373624852555153113736537664973166958493099606039561839046724459008580337295031056130144524412081002227918457352798405328182756097899086797099990531977218061197650110693044677767423754800877692251672221484667215878073999766059133174465587346546032787389632406978728586197521209675794198560070537142467650169075244717683369955686748190947793136933482897139661554352693908588935364506267422493505492202043370201384458169286495152388677772151801212340683760509677532754321537683149855337649841995025973040579152037671174404300549638249149504217235723915644008570767513014742289660287173609606207142644295858505013135259745932467415980753560682420866931242611838361342883588194016751499179929972355500132545979905186410059513297597963781933156677455331538506883097741293462555594444974780305731580192123337379237551782424730666631563876781681177215101596689500647944674440274272224407361902405681570936758918203394650465412635000261559116944254111457133467182460384488571722627204197411971778387175262450366217293702111149047850185704446750993792272814005530876952742039417853505476286153671057416564943134159523158386809553534314651288070651302106543766560975598936605585080839432001598154817326222685537961243866298181279561971587192721416419868410050630699261252779764905418576310373278829242247558897254213908367761787492250381027159486962035583783913868612072141541845878602003957008358356169239491711917365944495132765606982260321465489131118232231521597624992820603255076541792596834343209235510508235558515242622996826326932529607976461596693697927846686750689639674077599062187093216341313029694216042325100786378023028119345245339598546053943911005681709331388246140641443690430261045798261505731663665092626897121946516345876103268327440870303330908500836560254483192462666790175581789012737473412381716684873096893386607869915874841823297135046347532636895264900594723362905345133363739101061558924602545383424998465693431108771277971516061920386410710417618237225201319686090562109029310438317701361421189621074742100079509227198076329682429594861487963710866978490565467861535573237940130207214559656304381919661942345349647773999140407939698796320363638698838577249449885313942033086562809518153759351310767561142736503545185851513743893074805283161205739112332546083587490656316104081376756576655521885654514200031604457735656600396844177330942353020205092651541075686179958235885000577081200367687534604917132129307231123479273912535207923632277214055600724526632877941969735929828919677550222594689824417886231432682821378782887931103085672180873652239904292586732432777762293539335348177598403674188276340686102541511569130377771440596508846686786295079630587773567795805496861644733373793412520653402897406392052697001241584071094626748183026291830416888592685410346861690985688460575157262549943099220019552106968101350884660933568975707887410412355894240569480479375591573012179322127555911976832395884537976069968170236594840892463401261798302279275885872813818588584081384597974122891362523228816782342158591325296257833768208680281188752167109958169040900712010948414712386893055198163806326848393682279424989378936403170866187658566096519106159805536410811766110143450082922355521071253992317509482294783105317914382242701802146553508631548907603862242981128745868823755876031525158585562073398401682547970759330764467933655522519597109979219114318943923492517015101370088675594195168027508999311319828176593044067259406002144125452772133665815825007852359749315991603019270800831627253955454340724791104511198604225885339120465939018259075554233451326733723006528445233916851514328870347512799919883816825943753166298560714037207173707913321677082740835048897021519194541214097825975804785336104419149021436173820099433566973456003976739069948304182318260655858979321663152128465349071894135233863802148711481777011569123646834558001531148226258099314035716510514180781755591834094216486381315801754716048077137710466595779208952228423695881341762768908810900281282405659984694143684231512924898725260729874414582924537459320939301378491126096423988732177102036550331441072726666464427761514003108759206633235370349785391960691466598622666316730299510625889874685036054245068649389097372827683486656702931316318765456177343613719774236159901107019810967457506703596949353449385410657825282845230139381254877938484388980278266838785971040636441938681895686993181927769988332451686418374854001179562858942123637546895089015550505400982789939605077526165668550919349889213989886964016920614699662519058526192208556159733326562314597231448784981720004183623026591890787733015245129848182159377194940882942368716896075790358481350552331169790283814884348683815335046774208084125929604298119632106377830060708474183239358686087842651565480525076460426712409887843864087378141427942417499461949784115022171693723081717042805878523679511235126889255821160039862997289024876898905274733993322496873173659269088678970605208577074221712623948170632723194442694308784490463983984212709954599353424065049095207138992309730239584012423423593767961325992429640014532117858928986852054782751246105898633287988803460129474736614505419674248446483627924809310254212536427355405170841933716483070941898242955798836525671344227751534525238214746254304471889758801292276947901330717639648485799497903693328471966960096819691874133576981493076352303928108492739700848917526648148361933983422592666126932999317680890372806162112304366502610656737292141037278081414613412414390175950653846629747040931591201052058395192269535743687857505721522153328875411952389125742544876207494851318029052900467615145430319195140859336848804668478756938599222478542417775435277462916254993413462353729641355216901933229723842441650845551950727295834439223150077324990303505074184574249073181141687559365379096044123654615929139100941752128211490066061538524425966952491080085915196467179151104491116024446575812176481595354309027889273925611695891339979403760207123781928610146658089481707190168995305172847553935767351250549140803311870621516522237691373905373144268429404911616641016562247166337663972488200812066626631791317830635706912251169593412063386821242990640033032537601511784790168261984026919881780674300799635102746972772533567108622667025957130202247635383824465920473979241050875132470511511282227341365661063834486690803604522730349457605779251619329760392857686999067432950339925246341002674047222144062910007142004576839345665471972359518550421824636860215296543534938621102098378797294197644389777238006176761663833499642554917111186728908514622212855572014085364730183971246735008204827676743657152342093726856320728785437795183310422994810977742213934476308722873989901021484857258962843086866849215030278572831985040738558621797707764173669959170609374662640884695999722332894380163753728985690222762391214577709276321351357619754990124496892198122369206061353569719665682190940608104806842505690006518793464203426076125312664351779460264384523217361397644746700081166449335678518436609246062460803801379037543009136576236919284918086965673612662501653598253293081365686874184869541555683225359547192589994414920544511583022204563757637008088803235601526746177529489295694264873399965587132005259860910744907387195904589306981828910335405267078060673021350644272420518613283521924774882044159309584266291166352270157447324028146708633218869331667312485969351923349690719848031844852680854173878566900098413338538275257439003322011714633328446319854692237566449980036041099804653180752033919243717024974835836926973314712118456790353765822806336981829036572560705823507548014283528871926704922225961927207852240744850304913805993665688248854402483397394501930073214948608731443771409010156816055341297880426690551286904093313596269608956141647456151970066889470782010487783689188350218784588119926110647089276387694250376010529853280298058827709374087929922183225950734294403272092252580166104978495708374528420485884981071540965810940399345634520525526808855599138038995106049162223724700067265373846517816000349706124695237727030327809731394044770347518082606219138907301655183063370827228542216343616922070438992593121933188929550971122262612259438763532788980278197020656855642508796515747143431144722271514343390261616294955830891780805711147218952580011268946753963363767523495602800639588717470113913375249214456118537734430325001021523818942204971382643885644427698248001685457817324383325811519257666027938072947201806312320611418554631301315473672724482062129851456304150508324877513260530169397152115009074827312159240106154024767546872542116065976306216789639501398377108795533002723275760329063843003097751183376022845510979061997411764717562179791037205221354765082897690944894811335764353394177573398996312238620566706798451316574786148638471905914530980113845706811635060227596359682428525164793899138956332653256829206239398858369441908419257946395632018497445020444552047390299655918208983380876587099993848414381198332511275616208806305542347388626420882114065112902129265903665905561776957130929452046197387975904201213944903066782449792451576442453622351276895493246451097163523024452769710281448475492047774445242741693115818852863569651000523162397183045253331770986861801291636119858669098000969739813899968865595697846503237838734853150693077265171362607466745932956943449624875052245668335054043020350846705708802334421990132228319638128981677714613709714226508901683416261048049323614644682728261469884162307905024324267480337133104869387471347363184084580542495554385101008412994310313528464072347141335412434866286039401374829561505618426333065945384903459723621161804556917928221866549576569819977088159339639450216097173468948441530304621876320759490204180033363633324089462246134229432809571447086540641520497407824070941096157074209746391194726703625481886114073366237164412257956472108412726047300364447186005195061434734044851151580225059835443089678295232289711568525228788583187752840039237423161226450098651756164863751163343552544123046642452836185147000194662792929743076587550964334339529745004276044193003997626316318032822969636265829226254200056559860446072272367873506624501127199215007782943436066940851419098824585551454581085171888828340135562933573453983941172674072984619889452646280459155460139387284736505507931578863455262958342715610198140978589564980803860634749478096450396837795561423517106295483230036202962500212107213472524086135295579999032452513288350379186211774576821004866316666350289381497822523421578997388042664152880262971394336067642761715761657971276365251269195068190064519690349887177154427150661766804000186880541756593418415670491068367010175798912325797022574640312697863730958015665838176067230553585898900278021754878908039183006552922694398824967904448509140958363874034858854741217290258566488784683232182779739182348429463146648140323352451496648530781873607758313242905760412775172980142629761241780340547268607684216964407247033944126693120165905223305365146373851337463521017596351416519497345029838636275714833479953458994263011123519686978351638998151342804599650752583232257574562069157372929818668340691919909962644229359925745416644131699602982643648840758242986968861342845437710731162745007677376286993716855652334790639270025554481443322199970732372023146055587303240310429274342771165607283021081304340373105038054944963837947128640712263537078422916418550638056205543915957640562514415456533817238757998768233875952524218756677927401431983252728888102155187695105285661452734815483421222718168554513307747335294908491890573087027822136750661519858044887348095674087187537874686961231044863610202486585446921491213695143354402931554815010811004561112624002512598927276928633835777324687026140294109173608873043428590003007751968640608626432602620673973850376376871937066741293189815427704266739037228501354312598447327530513579258781035842517796108625563446604600178469396753465177026774718068620884785107258750347454373973287034252233895443630974216699803050999300451428151397342523142124255954436367287547379899794173134895070517126942234951954518911977549731841945455608586675394770822967461029831241385150778609448298939534958165787432040328866648300906834737415393478999778506613463136154026475426911063793677723632339895665623640705374737959781969861626446291669913811924221227313303795401561015228283573276536273641569312256670896247799192100607483782953663585428977272570260312215361289473043768176799155576232925674996582771693770869282581269644421776068200612016233904425490533106742866352437627452096586260536144814245444537714401510859182856581600922219770585527942656340594826737946031938487495463487027597501075655275396381666817684335125188681856353655334216935674872535205652912529255133867989742085188101252288842160541572402796535823210154030708775206365824428584654607354786778937137477134142487298826568605376308907705333284402950186149894555420675965190602329479139172867766671728696335557263906551792256726572159233273570502448108220860112971771902343635108171413467648478603035088586773607341043758707278860072399657101845817626929581089742130599054298639831923051733525191491296411902881781700194130139522520808391525676026740732207401799761382820563729619724875311465713574163274042180012755452364620176641026458494968530524889059626932232953915349128802322280915922174510112095766482854469195166660180549295486922596678980337993980232973535090723593926901477013769873353236791669827911690782242587051640581246426048579742707235078024987778577819828710627355236708506593991157664770621901613450520311021352164578264261751360964353346079747652192988674819202644051142498255849486172344985699331646082649530563365521744586622567432502609584279018972687910108677427141124631236140244722426869057183412792980601771439975759833135552033348017542360820808711518818231736571947740094509687134526140465451848912753227797872660231597973121821993280878724824478010764483522651774136583556394438594697810004748092706231321445128067367553487521727743587686000796433779027256379861748697097798452667767227499340382666465746069986883673036083336261294621187985941686919175643151023915142735624709941858494670358348535482407107233012196123991139247581713489148963448890251575334895560741795383812527164459753724182444257358581045546006872103392472033060856120041593595035371624157230554524387528367109056558269822783427157167252561722399308548706390539783387112350455182998184074110307243527676384302565428630332389597994326548688746898178611672790671710022742178550881806363404141163795639750439445539552977589879442735461580875343549553758372837223195583891725703555347125218645887524627497278780537056661519113984944230990000787830674209867135501557207422489109370077697600527732845650372360281252972455118464086616709519725298966833114435238557620721810951975345944928079151851062778102481876513396389242732168536797136561290315644738957181072844967515636981757659364928330869645014628843851237676830173128989739983057190226319359070864594392756954617569690543130519558281257155659427085113149195871825181958031463476877371755257605678435325457343705217540141751937691752129489603498146191225363022854432814949418270861671171235651075030152590834823181055598687414753607455345580399432424598358279593709996546383394520555389030980413144142183951153401720406876369037927895602368888189990992740281462245224473956778853467761306665953618665103491354605018047596175946945667341401457843407611229084666634662758091144006139444487006871271650683146537914758906264365364790194520241948334431346374858544108771916546454880333722061033941915567914572674855070073297041456798299446284832603777790329031966609876982487225155521917936192667929851639238875377043679603904176869633291369247093272247986879056210674096538390223293817164492825176028051004724517021593735372609285061608647934665486863262478044940280947660108982435942990199349335393386959252392971231336145242176179157870678700447632417238825095283983366057051513073989014336432381850898489914759757548359078175105532346601611073395034387950796088172949542370838060854753317322098082441818101593668669239194461630861589878998063023373595208054704553440737625871190154343018555865062073602481639573169528078630560622982695378967449963289017638705534102143162298593383152809895828463205363839030529245063115416030875408060480494957782148252216564751064738435708010854838525551843014443219150543846638588557356215856976904112986965146378244659291929195994670047131160985935762340755194805144451186852893474647173192827204298791613624953985348954000662041381243327065959684103562062964989915687841979208108273692746004145261531911822161123066489830658146842650411822636941861551983017838659505249689433318117905877931077668248376706997576588650445845681507982961483192307049948916057239662620051857717897897317604486631504467285553435393362554154844263473512866493996531149694506503022076079261728326342068555621942805269355960296492494946707004244599036443146396802930100483152590073427620806496350266921748101720529442081997201474394820802702554524443112331336900493570176978974320834776629273085337931635039911900334408985187504246339555770499351703417660045346866151086857875003154166215969485240243803408612038121059550818009204117534508061138993327592248173399860264936333861135338217365423037178581413855510787944712885214601777339329278396738553999843655469674369698538254851515957833322610287383130426377018041276000652611565705140542776327244060856397342689530191121819319754896528202068050750952879620694915649582464269260424695740428608861247013765704654025798059365845973244696164488590350525248617246574186176907784005140987638556537113553055026436770478809678953321057905729981975812494410811407902799637909143245634900069500696647575398075506080223689167993889161534463756053379611020853166300165615316517486609175529731061534077326541870665316648853203308000445062707204829317653658941592940490924968064499875427783119949890840789871612941741182466983286098692128123570406064074941964535423344232269634295957853751494794902754640826588732996247428610840103104261251482463836148602128009330882726989831880407366649906427897876322320456759591255944097501322256576953526883731216914380666168546285825358694903767745528790669013672741480713737222719556358001885449820840759170958212795050391870004872406284401240838388008105150883247245795455679562596951618877506615857076532398065903387073220759319321047275426178719380601281510315352293859719994836553711951251145773074832556174259846294037298719102925818828925355110384906927900816728810634757608110236656117799703493564595258589516996958159800396543931032999748843164100216919342477363291401444529916555035571007288793797293287844958317169472125383946910382006341942349346886534585436122601212776944552542078804411763499325193249409501725878867757320917091481251422263237700462458248662069189403328760626717814654108417992428455066143467139717930429217183005001847655539654240771170304184804412590720914328954908492692615606048724851833612720917606423099460336216459878476814189230553426529181248278361564227473785966078385386112070735213664712396162442842890654783827795465576176324141751253633498415097717921352348794662784391514625826815902257686508981467864623023198058189717997804488153013035562101814078327197114069396026403874435530192174420990798604905181542594340473148545930699725533410439573532041196394530054874308112600271578414808421561513877385742871317142160596851306107628896407551821084064676433324671747067866722411156687243742510790076580880137020467695479869413089683416252408090097562343338966696468315841690722494456563244454821451856989309475150531826113697957209006257409855894036912080384340019963122827131623776030629651196669658848864608504997834167885142016379738480070204250496452093270437660758759040361690129453546060002565411973361098382490686863590302230688939211446509997946265782036624008969178951142936394122177819897815924011493294251751442262523175701595683183734693323906194187587524306672019455893669544583276850901390598125613507005327097294995976884387013727999455561573391636239925732617036127977442307128335783001319708615258664880877587929836830118118231612907997629507806930261287598995233204737362750363695380944469995767504479916517336471523734943316075730999386649298350742917316831969295635110006364474331485881852742873463407642063522742706502270513906695953500359083416104486331426845984483723617255735053576289087847068754248759498270611047204708294215918553632787323016018026731814168839344712965485915908176863182382907531084726701325788975500685012854925578551916173203009076565796350800283224629678123715308029243025893397767538071705458776753837812752772402542826998663494031573922181589958199658663126422778056925707089879884607714621481222505054471640555142248694003948259336076678045716825567595686249047162636984891547063726118009634486548989151933687657719176349528481488796719002159125633440165772018698597219933226629507638717472951992825969696578683005183125136696622570045651643474780175349374009221113447695859335231596915883324203142688244456554628099872972057325255329264401677989964806616013935909562933858248338941185533509423220779638698066498314259488202335628232152526747685387078105288699227562963283915595747625144334766148483821336724084158060302510244479676657967383042541078593454058523895805307727301864164607374339704428717510362871484268099722225216247651788145494810951546908904081435778587802953928125691360071352742944594149806102482352196486309444532956227453491858268979138063500601834846983503421424591191038914673638836755236197565194769110554357575741699288833001489084822102843478626049381798874773081424109116891450163700344366510937677436346738962827119109234110695814716464698678937555790364756851811462858605210844184755736839470099887752761559296510757271064670244975462746951175763324349910024215703613525233915083155043115207933767907824089217323873497422374865965421824988520140917715362337441776613518310421604024390664596699978885412814617336763415375588649030397721285660977317298105542542739593131349659555412437412886712572308016358146577699068618867365967545963492603846394703809283533653571796709069128274394271788663573975828978503108030898104330999277225584536599969855137615505291922601761778994276230110343510130390911101017958607617313018523655018940299304115742986631671672978533826433161292552119322749363090921996885695296355464810773492777840573843955100034576139269888273196539627128880153865565257368340095848431949496766089370354444015157820185056057749523532767610022176163931321524778142665856511895687241925967254136928387821355710503448955261565011858742217758644655642865506379680103458010098675568854265853429223970618665640091777706238109720233875314626820358120713940904237194218057793622951142847998015798185105751562482747082056420891170239821432374660307680978868021912440583469639567417188223901060265519043395821415874532178100192415881134237762002467789635908332028101346671635174156984759627141972424433706526080816984713420951425139054487011101462003764665416899151824221516712345019784933003882287525233766263068150664996047137397737454251115904100124497796240523769241639679927318054352015943086876493717823447335967203457366151858588212532506817154114960016763418302971047905020496240050401495443648421514429404527209146208671101562169454524170927274473779587482108061794769735922407550191058936501614201993553187820495662433919763507631924605068701825281556704395179941755929247270131817622654853387708852177495147425906909977682620475753717658216195337580968669010744275995071010837065464363047826146307872181309185070049345656869384106790170918246985378305318530156594133323641245839988940421691295397638972934933630601307178143963630993334477825375482414490782249776157464394609858661941736132247243367068274898711774009745088322235090111913268483609217986631453596192423563561219621488000064277095609689906582040681170661947037320969664069707035406069750623751915579276325116647671961988740950155491150847970105036615447303477993286891322226713405901122976286480996912209900738943881975224560516060876740788969636460727167899719801304397911218577982367921486359537209108761523912327103267538418045301008678477911132118661754509194007196586096758040375604507281911657866829806764999757735759939637595974268690079240071993412624636555953413074930047388596436013456952700047473564898989493668337927817455268253492953931381906617546992620010188796201979569506319264415608802760242426673131845961977757534591120622746372989641944570264760246495043273640243694320581977722061277041166884232487889200590646619093212698166301854804947574846576676157066003514133964736483220447627471977910980129566389231628230608144098899371047551148902482400505691464365786556391970267643461431133403761618005562532219328653612004590946773569438059424074118019867755681517434246725827732277970169257740204119721822305956889277703943153031346906479712797001429828462209683291745665247213412694972590586023526526476265398304434340756649773567182441492337987683787562687201615450235657615389752723589070641965059619364864631759227879018982416340576709142839482237216406589956728847168345552348179842205010736549138101704631373989829181696030038903144142203417681472639975497801935347064378692141868864455759226306919382281687877871924407620631937332632458995346628755998257977460300157404021762899389012070975795316476116578677932099469816973719359126056937228477378318918286938681282961990126455653908026392584815163177851970835314307735079817799223538678209632912912882866093052738552420593748549101685683311445741019334981849882173676215357525711662647005703845213352953410225557154263850458074824611769379579554779780208596996305124754282257322268795301922550213372186261650195572848471317990111691766375587180113499097344062159954792414948516880838087507928193270264232226601338786950734635580846473705521467825034027982770392771396375264648778958388429794343903791396564513946675154859795661927906157277458421480134172983436791590909226792420375296965341659181073927942062696516162348051019997871455996610587578304762759788028034807000904251935498685895320051124343694882604407291189330778459878363309285628507932672946439993363214051213386579446554072493783055372510839896042760785650267207890559769656824326442704999470124723747623997116797255109323287365191680950644942313662895254435218005014760770882689960016221357508470051132192019606916390761205257318173904186770871663237455545494800074469353080584741852613012233233069540023719953854611118285573357516910369469526421657474860290403076476694740193628926742040578357963150221493530915903821025378396300320559974670710703159697989765835979869976186485176785342644800259221409371937494002689440907114387824062252908975026207101553661686791921915290487654816031112478803408994062751579713974625192908258810331733250321081211019502040049871994122268360399680900742002248963405767297716069638591571880531003706423265854278442659513637367245204642761108723614898278520096476519548003254548317376652753962846211819586961037569169291605601515142871956165034809761126970037439038081553777016548162627414084156245506398710431127014837542336610980418374855292013670705988465823565718920599190999743785280505715898677473210113407270892288772668520931638784060196489547161283970160629115719213696047920071551163207052224702790047953190934760280567857780399858021789711832496245741331351995720903977500927567379660827323489279428886654390003031727501415426215639552570147866842852157614316967237704163563146087634842817493410779048486526447929851693817609028473050456913618930109241416081222278935195849336037226737294526498832453906197684408040695596654259269574358543870350749395689494201536190040222189492380472386294220283679220977955420000157827223094831858109238786362383664167749395058562770665778636260643450067804455893850257605384243558922822882632777328205283661549495712869236997857482887152825450073187842265109055681429410753429546681099866302151897838291187051079480550530988359271168893936290918659331698717853091944840655042854035199613815675180419619271540385835061011280148278565506764580695798619881904235404782517861265358952273517167505738372713971359242037013374663950680410793197762646266124253596185715259153104147919218234875473647782968386649088380108483454308545300523060561399525781084955766078783130831519600512942512203126991783231563084424046057490750890155184457733398713671221650963173097852931476345729267169141405850734729188449594265367457766913810594759427956215227746528513736896187254642800630327232924445167795444015572137077711942567927259907961233976034439354858820621339862051669490681547623325039177574106797377524431360099125688485997406427162098428565710260594830062285571343723451700943879220816121251915534924137503200254837906985489708087646652069227617787534497090229197382197168053596248981698187038148441028564022849368870175931104903110235727406694810093316204607508380007653254113947610399598738356316847011408512185235477137233157893754427003992680897847760483834783959424035839185318583961478342587933476711028528285853520838327170915173933263032430122592203450124602456059791107476381722723792462497208456561840456745225653913493804951711922382012937895972451922772496027204715364511818725278908647301940994313952760169228518097757323422186595515556155242671126121147906833842284902015040519715416671269771095814738998701327247618129300887210010190644744951390704068145027535794161171697847289215414302053066183569774266158017020001083700652430276231978708882671135438690748134207149963657031095855042383293134505724312506840048288330207449078187497938276872514489277799828695412982126299734796672551593506910853079819883962511237521476861911186590433517069605457700576729747922653142845605402554789674966061628851607563689049770995826559186371182614234117630304963606885499011899957304032505323014499053740825919346942246388674426013847785547049838542739660947860727094836415013840478584346123744726100613450526012596080971577734838065167668983006825335688280933606090479174186341273957125279520839341654028572452342060676142201352260484766145988003591493394764309199496189080685044322070124916246248950071710769972771327836184442697399207794373933098380865875738688134368811888743890368523700906819551517081286740018261993604882317648065451515921150722706173934953770572253254937268624745482601653711940627811216608749447056196032931162707835481614899504721143777565421248374816353612843703646980435995749641102165287767945645395054333507218239113961467814175105370336250634667440110210158709240786188700068905370723139820403133795415619554320183006554190877492840446193274936574800504097117487325450295745020917119705270247995267657154940658843091976584718868516418210400212313119120980078012006866654610215237977165080955620812368550975473639820029495699927780616393424091485450818236625538276312607790149663253337672301098462597171588859253851825377855126249238852970918823391009346243345310374161618675480594302072703627203005419860215667085628828374638090727671229186406350993987077131946870824191491843508576318682349908091281491161362905978093351406393307863865147018663397709901174757278722897180323498640409395704180486696719752697179446239543073078968018327905683649252341502296214706310454916623794894734758172228965318676093416836493125638964757141684951386273604546724059580596210863161582232619623946803602465161380177184024559102837593471033479610400431591137126209244369790340114427398182046505967363275036416326947594758196261818825751879725775713287100461063228288038992865920264629206818577221636872052568676017367376753673823486417694404932268600771681186840497198908456669057286191859031385106387697335410702125892831346400571066168842332477655946802625718652503701203899813978562381296392547445910911172138270854412521652140951343329163887485558882658789163740519140491510028095181054189094569394420505298408667174786370723293936966061090925236264939321916975147318713142412996319067081500016860158212490485365104225414039188610337065039445681953539603830095520126325355227770659377565143924485370713411608316439938894143845586749902941309297990209183401115801145787080852499815925966180408216977093390060912695623188992649021627603499226044877070104742591579578723365877876201225271528254918113963763722992692103330961356839553071314303250615880983317569788564084173077597692802352735157774561908093585667798181134238795384057621457490584229580451256139148016023618307504100217611522745331260231314034728195540779412364426882242895027024432541468584652310586164136328776667496168264316449649621677060534031939373590205951030281825591884886023751028642954928377179637286350943506625866866401391750641134366336011056045193660187863575256225001221544134196102157244010353334709508237771103063551987639092144647743540040784745158156991383733337712229404630788350019017680025632340779371062064918108245063347921083009586324687199724416452170241989485080194000719782470046829010480413691293876540351083275993754755530321823009177767944429685303183672684963801432573060192773659615092992807290013433847595739312933469002817832857704696316529251370760661230941333642261020978128660308697977228835792354652584572714991763365328063223925154461144063658221998526813158299543419682513285449299589141547624359901846635005230899059505110836799680841178989876798399214394128084448170113041627905300941328821818633065215477821755496927976562504655116023748934161932820260951883357394492233237780048707008033895930932009049494567676324420720634512078497434673147444025987243476883853041990846111678634951932381047493843351876867038426800939218093101522109400064109994139657186704660837290590640818122694071901643648004004610892309336735186744572560678555623835290273110317290372412170049183144588932767297467790800493543071880034510801698694464724407096678532717152275776038275035613158846310239423471565997500022959982636574874919428577991665499507171616265533216443861849641223592246015975529759944961957141863725357885361558365126611261072820373187672905471108948280072703771833332315949854911851984004635526007348944518744104447834996624547801256465871924634217249721334117775482344076140922057117466009637895255356246296056919768633641827642912313846525854235488633595056291475858795332601204112870115576238158546988075373963317059204240878056897180715087642148683850340068064664391717593298939906989589421005027376979767986487312682474354469593989572149648670803444347471439587868816759366255350118801946052648544824945003794771372995516193461044696929020101147184146999919867201444553713842160395995411060816756245144894118286770724274869678893568137128743916786762068571192738597596774252182144757925447933501274706754353857123366971860899471120068731787401899004241729637027616941218272264557698375302508372942616102642846649443143380650816793053222214232692696626633540462450181477197939218125805202338449333818048406767659346720651677601071846620574597272150961208502438541931883471490450923272938651000048740794719976655759070551574329290311890617904845569293076826128575940430519205314488251184021118758802620317744542605231692467502043440377423875460034438984461228556375569183757422960606549485325642026880728807089885965984184716707752726983632212699203934742424412110793405851422083999645109572229120571799521355748217159422479710896554143034046501468638532511568178019184329448872013635847911040153374413248701971664195353868844031855041153881445408758512066729721252742161937450073436511791049481949299998803907446138446260946278315489795399882531985697075017993344403872398438990863929182976127917531946101373016723291074376896496981166790596903419665183828548572576110503785510262065760602048585668660030292032548256039565196194470396928801409853874763104064886605373134791833820189110747059372979515878712257159385943016294956159320233782450962518516850460535688991703855925396447701496287386557362422713112592690478089250793276755758752044107761902048439645023565996020849005487793197039354104716984722267478521796962174009658669443842254034922402441133503179805326947784023761138945996939688001751778317661565018200625735310313489510502764966251511109610873705993368932624831687141839811694677986831895956040208695282029799778307845095009088571483591847092177648093005001225141209254127078078147533421087039739974119842643610836676430251298867562225408134521183421660383831976296887259927199257197480245379480520513446658031310588317795076074344338174079175487508549939425483298290564572498350808818298285215930279956505816277547705511851824511479919877979314747408068261608414960901475292381562829502433068204504714172142843452434404914420403397749536174710430195749057528478863781044517960257694150926152543722079429169294528380800922401972633277013984230085742261145997504309598950978184122732012773302377332611167006324749896287471258756134949283715358759680107903769999061383966344114087753121864572945190478699101261606378342232244843659421084908505731376427900179270039278692075266722472828637539357371907151515133286283724912797263616695517169165051500758640350052176819736947173546167934887392467682260096994421444399766419450326950537693555099215651094563006874306110923343127884163727464824224852734115128586320104277426729272041753726622779826473191365101945885726744153449181110359642291788648747881074101851482671077163075630160913910976877338346166932698652036922617256377490537224668859770451700729448471784880497823669264154523867233978906620100611845273297738042805996999395354242005530095815049005659786394959588707834062883858101459900195337862611806820431892829729770502346090802785896591220780715057558553047830897055540309366458249595404801026375811233752173435906767079266838612184366558058781055728125699343029206837379229222846910590310934039667044047287961144928411751065069634609351779022781017141356485545105530535592781928507830566344615798924007093872452423459399286963283210768140397074536870285219321859486392531484172164253511672597279230148794685514072629092357414213720777231884796694661569858476021032578402962389919195702469037153110048173962100702018058439825296391068072969482356089229940443748467957825800166912246106555713703263906861088437583135750028612422485747003164944208497232063604691388766201887568924945973628549572718883358147561933712363906055584512061299619968213716703336983232471499261269480946635250534639933740942445966737957276247928906705200586919058869735586205816180302252977697817151532395379057966043277884716998243065486010408586858695526504999334413033802395961272367582099247917865646685302627827735086514165455131462892952696342835783769082532003568903780853601783861539944516426851250154306374077361513735234727698352931219559624139149870370471988424129906542332685817961868745678656603760245873779143382580977532789711503167911545018870825341922243675522077795151466432315157340768728100721107177492019973161849694423326864772582034821541155349259376016319565924807461925854978434702804154960228445235912519542847968482395676678104477121592640989750570454589870672756526916196316642991093017981860436526257033272862605239085687308679938750733403615992568679100551486294598547540686259852617015676462787095336451094437333513164234306133139004877495292203620274856159744397315497815728039536173693333505914705562485033254493571763420322606769112247898245077730117189705732140458426823921507923654279856758225848937770631583015182574503783732312523564323236622631996968327545037512900040664880622395191341339990333426407993620669469928330901487611563655745882720212135592438590652562992286708353683943235631631576920305276568393064522145763814945178325037876289586401248205107425005144058517833599159530467432656720236673981395028220601104269705545994683773855868826250805972589411746687672109380900860627598553367319049482134773661655935557399043994910102564095424314242069624747451122932604348953913255920954226081876141393192982852652821771892593564061195482437687366082772140944153015401142890584036308147014989292835323698703001611133677501244345774165091677307662460363309541990764548140758714366146055713044951961277815432291668001220134931314157344709012159728429518068116152926654299062200447801840077785673392942225584959419612013618428238832135398630122382340274426995676970891138012219161677552806354331224420211019446446771221963834157012092952198881975615589523285905333743892930881959226130443716311627769813646928111284031256265060091784095235273590739021779425332399235578834345959369360458095260546305511485868871234079419262752129325095739284785719678736417266145608678700818981903417142958320131034316784051354590721167042382059860178149251103697839096413783048840727956504139023235258126468666611517027046141724159680220513780521823540776264277404235775976413580476483353280070942621425435320552723161127773742174770484409391377977742925276691163212143432926382461757827177119898558543223686918659308728575567363200113481385449032128405637520127380010662555105502319498668339015816618699444309407352004019425645788929854302959900800794854657492363230275248749933124165715999277258787055640303129740881556439110135283982825411826338592120248815392568231223972613760446451004968083380546477801168315240159012285371356169295195795686867537716683703226542714182881488033264250659006374525634200420860597716850856727226273646502762551660846816269636355795139640737167842704556331000173033953817976776770772896453842850634651335138170770678310759898934387390833841798093389873210064472087940950091524722025264751553892188165066421954412615326830320048605096049461420724822090123875120073886396482030673585389408252923627807437628804308982179315975959813382849241918714026298100724279181027822468221395420524047102105857135131364653589472234992282145944353303504491882241465901630461978179519131563954057362700039417889919728455774955287796000852330145974617446483028818164731551700586602185956690395199106525912100668794687748904448276090721302131651812458227397608363909143462321273728569683965395947095344037190953894033301939552989005623936667767895582007456685839956418002738709747582980835973422917674101996081580893251649044510418035866899117960516185589555871991363592391608762573516861748595834163111499517635294931482285036181276476215674601336180071821120255941091737591707389558769930017169756048015811417938286689720841353122735407584858795520502206826002872182031693157530760094970454474001578325790435708938111746246934906282728197101889609357080491294505017157091987445395779274384167731184182614052704482507938597152484263528375059985235722572736345566243897294313621486464567428960126105570522320820033757770838865104375054082557529172967748930570275158585710346299942515232707937804865599287158612380164674710405486206680313753800059017008769536611147153920364928975561111005227314830592465284015009916169436237240811047701323343175321210698631427630787383657527737890286824198308293264825279123996827028217796267270481019272697257761136298168124050510426640459239988042846675288580639287926025646649141925011122360314555107841887568310445525103327477746010688788583629708420725220674145395085849895343823222646548603356086543243145012817765281642000044117112037274576442590780182269878342061659471487862163514860964566788090117054000476350183626272478337109145833952003046465735385417639339900174753185127336466999959127592208611145686615610652478295137220107925812335414611855063018681563955551253413530676127384177167604132775764672225957729823906986999891054915405479395172094429190191753683799387462483190680308858167671239440263194361230197393635411269626363595497369891089513837842200487484816496285221926930081921038377324709718341846859087071183136434588933848643159590718590706092441357750172480679444062222606619835752744044646090017411719304021600494186193394699580536021929397612486643346910249110949866346631526521099763166243438348792248774844262564640240033637342079425914041772658004250223582213288655646326400857304237664442163541247239071968907249291908617923146549707405888147902929656501894601879019989591498073721794285882399637095707647910369709423419119916411523610388996808956086336114307703384706203881405826894008601063527691782200180727958902712501270075011847448441185558197226252803072958821581917374713476832522917076258405923965196689512449701617775179876789243376854852543703926384116796925706134855674288331976587800218478478508862485427206508218580595831962318672599865130213754897793885720098461026577565345648951180456208140892243026780079519473154793545195332394430983247688278189148854997833222584485203901745344117271961846295954667748947157297319032967808350194058461717017616807545003700668601908019690444310241626676330543775604399305566975770813855877867267160619273158435187264334157699514832110060798678116789671968480871703718882496005869158531492422644010543324966985804366312358123746987408296472667321365826477249699675165868912463746979354380310006479437847918303246155834685946069972393535681836502087687718411773736583149945371974538966843289367032439898379104823661070726674486383533862323463176257222934771810596871748505480493668402475935272857791904804912168570316687239679710330713434555253008787435507264891048801889088665130770236188884741041897310039068217908184478125253812142413180739752014019745741644140286458497772665889437705177685451596992005920930345383831772787669506585343680982824268201495904708695793648861109821817730566881433975719823228019387135033719013940801309701301792737134686305781556606062989696428294474264640449663723420328689461289352029864694730263705804684973268570867323160635090352466226372995881816643091754969314487667349309542461537223302082698741897604238216527876078857616543184253016446562394010240008546152614259807627821077359131632420125996658195333124055550834692905529044783918896421145763562032561744138108492061506142313845181477212180938459670680590252384541031884799511758179214041676657192213416198528363913394737030258130530748683766778050526151768688712245223279340560114578831665633834555194555001736371011254521298636868190869166916177980529743129114980084628610418876294488852767882959442204785869617404539418267699602209888666133681377993583294883042765072847136822117496115151041102173059001912860167041468525445988602679433744068447185364055113270600849885308305067981303582989262601057660346702191026768035841225184371421504039606551536577615346392062624195146510982355038590480347523324618430621727642333482208714170313887199901226898874779351584347771710639980317206802668767241661600498289545359334744689119610711114702294543782340713207456223365876259203186953223307720970022063662956377920647358393465643728859641783833819058759670086617243308624626004311990103836594454832893352939366506940831785178355612376140341635061306645827371852012901244643341455454917293171778854360472560203597035284172982672975938080772139450456590937408715113396893424132742760204990178374777599835455255943836608568367925369825776022077212382338353569297494106919104506443940484164631103905015973626541980994142147306770303021687676195652925671093484778531571331160260380034774057137149476138787654014992844445286699695256199891109317084421259245472954630010828658614494112498967228710558484577103703969249659893081872127770247599317071991946578948046791660955920023347743964125328259631947990851821600975905809030218212850282340032748574039081859402351943778044188803527160220928249910095567253152236140960885994931401302210868978097923314435797175705800193970388609277847377144999151013904444642676773774951309006170962541565728375950277825256704685400014394132456101014864116769611075821988270562958222757449803563769091228033395468296894286283212591974194288931071055822126239315650069260122278182036354743931247791141216633937651960432283525794724261041636407438616847127341699869727948914173481270650437616402777610707245458413345852812049816297791162682337497508471938214866496359316388606256005054136393476752952069842879358411930895985278757794064959855076660965323481658136392033198380669112950678651074967941032075831573365816022531174783555111894799201069983495724878137200573131297740109471074592870522759587922221084147977623354914287291595040092462562579405863748864402476974131766007699265657439457685715600659483037775018101400836909687130612148283586713052038652964231745891383093289821451581379107101556728506967349380656152497641396891175772475188615104681926604027011852776854032775071167776253002176391675850190302900183412771967443314559889584629988671892603096100273903302496337128766007493635628721835247760940758730941140281669196708730088605364470816141265392764458767064628471028379900339887750516774325172286546575935169331118251566452350086297875059516356996438188840217988833859484604551820414279803168487730371500846580079638459720503926858108661041596357254794694153498116904508735593424123205815807603854669998437065708758304308830326134732574895173860027232176291814344572558344975444487866067037599106373735254214654993261432893007189574341542692652934402913711702735411792080181965948728059396470915181721216564136214866107281135764942832535220160677416912273340060801235281343522877429378509870892931047445412740941684727844229603418275218483206396543089084651990418849272052997745650570278181053072863367337577577359280992304712372861231808338295052397630164225488195256359811003101147158693279201166835352719452007961115470853590562029553728559755407849926700257485650246964058565206246568793488540564420446819035781536522165243564363805209622751478413665879085297186165594714026882550552973499827648812339421292790129475799766277358293016634618096776552439052036196007310853721007374027195257945592058475819369235704459952788600806067941665717849367221400362674574857147817360156605414403669149841675949897791857406347187412058664202313966820704882074012877785905495547904312186466213601503668856471715494848597611661226565992434906948815530475229143046280877490622396035849499062618992746020671200833015721118519179956205672080618691909599265714051186745292618193053554502583016708881289711665787208126731672655684989717118911691222904886455960233579346628436564725899567901234996267904736391101261480263054199046997688905159695459798961613889357554348413028718663034631894961192109769410329171989397231948877832418317084603440498076591701672272928962878423681065222948982038307869902626600003716292705029487232941697675786794039962809193270918797412772441439041621590772713072517194917342455872979663380586881767158480021558502277357030022472606022411527259308021247480308395279937868353371354442872109728576301424851917113934110828401455679575825977425320954550916728792361275397721477454131741069431987215407142092300275027941939699430090906977337353555977463367348134779369129058442823736064001928296862788082564277906024194162166826739654661146015173326694872316136908881815246156514852892106897930564882746302322207782996265705015029809721708722733076828421873977023042266737189207056011415049748181033447411813818212198342780510945394362421396470192256321390765543255604546284416280583216270943831628701786604264965871255999050468054951671457437449242926082668452550804244944203178696155884776118476185604992326914187017380379738645071018592818430153708115205367988313609513571158437397710762262649913185129118184926820975742618490940923767621340504139010661932493381885308629724768540633866410151100822389553227205073374467539904446625947476790135856152672142909571505030083940168749303951329361894805251995240963315683352423136511543638287342101205765728143676176172326021387374010658228154866780173581846901382438846026302224683169614834745196136329230581598816994762393753828858496024870221717306003752471987307365558288392324467132016057556109286157244374646690396941619700862137452794772908826638499720263975698544616439110243328152948941425096036182585544414475114571265041223436627539922775960182102552346794806853554704403320443488409132421630856652411370846397009195236688640634918944126276425979537747126149016465229245675049203228102944456982430558676689470996941862056223477572856314900447843184646538258288900161368962094495924150570813907758384282358249710699957847312056273057802348046519990232564360270067745646965071738902818142901547339923676934940863483989222136867616716920948522022792311510547300639459325957349443035886072006178358389431910896775097544105973423392565275087896856926309979532638277178202259290295221359295570794652638751440823732048567704250953025441143145468486309998010983557109652150686503030520671627708223354847904426620801606292867183207784375762951265607490051281780083165506497318194737810751670182154374946784234534929680109072566127324439751594661408527798040724652028194132143899059469113528554317245027334488238733003983967509423104998691666903976499442846287004050382413063271907635700960619055991359268119974340907568541576316247676472699098734583905038040186406854301826398843993295360810468254203914560895242552157843849303914008864052254797299229266656730326390780313293031894615077610205396334719547349844849524551198350306912738461553396045529639153346110596092117673203909884003534323031739232897712925394103152813774254218467605869410549552684257119896445401869860563990858650631694514750292931964752958650106374188169867749716337515049004702601469168832774837843352109052605125736027920730789351905137194169807776825385836646870034214165647332067708826159212240233804312740839074648848971260627823294082282400651897834527815592050703622317456290016187916801461622693284778330066064074283563507254452299575982448055243426687559931578262872475581967284219551576943180420542257929443945840012096776535839254230652555253250034479774771979442228269437201940558151923788464105342749917863784749989871268915878595615141964934882207267064038068859017464313608699390474647045498683256033879078753608130893825507751781229976233838059415910811132211214752408416219880995382062115224339063343687251871190467862830699268728801450132633428251034896481184759131114826985186608586076165160889518985935085412553194269889277398153247176829339368669437507296532563647152886635214145283332613179467728084402579251218148191025918099997813025305494278295754606416091994571248219089533662571071601331016575430075801159490236674107065628716587655188254335201673269750258148148700297345429039221588953980928161824754938753096495390285791974734802856788558623060970476207500250781567191475444637718071683524439449128293837713282680270707420873108754712530085167939632499058245968041565556656466881813273478193439767459045557235710870568480278235877319824784809474652891622673372270483803501732916044125729284312374599270110698674357952302141799520685471313028882048537644108441204936181871407348170499850286206300378457769156235652326984553338345215380494055311676222249562886103373388856264480083013962875099107138846492012552425792313304574249300696789874546639151558435201298043163001399528522201182418895788262239752986949779972994990056209558924666286030828636464458085997227248776269313002480733476374960756952231787051694747079117652900741290656751821488410439285757710517715058520188232513865468883025420889930898788576833051116240381329291218367763795382264396505928967644894833373763408421642592264214365210461940459671908322937337344507721600781726627755279127213774041325074132660780496087116282922036685038886934842132974401048102931124318328810660847478359409155082603080682257322403044402588225359475776538403164282387713967902162136367958484521690386935373678912559813717197766968168725579835337237167064590889689610824034962250194903635908539843431308940033639750798661562841086781077021401808263320000752066706087837646644513943315310649925439562500593671976645281055184844826051418296685530585548941910299531698781341717347340303337407163861119205291151845290551258306099358836558507825701948802015857692546933510460430042268706680908543519663470090641120671927850411043813451278180103640033859329510033836783988952927864035295090969725705520207258027287498283339337238149426791755435377929929409051976153458651164904471463248971682563971861036359258366248647117349676035394833694986991445502368980483785356947282939192741217387681757183320982252855614676383117830687187048809847390437323110530154022756732347003960059507555579682876023688705461261792624108615247955653207288819234872537187471701854758811702320596313087657162523965076189505991042603010465446180778268238491094912041485513548873583829719437873629279526659946667650412943508351780158106084298336331183547717774237076395840200171458467066323157056846656502192605608256839803764257418665059983946976098714002126561422128041555102100129937997197811920239573087392965091742188366283548238961651830202729719371550436216099842637351117655541220959500929981875603450609300093763733376514937670021203567443511418761720263486496125502228918937181397546496490657164417870770313872123447880967567069170919883520636384805504237982151529264689557280086264924502643501382050786402362002937433122429522659253217495468249724880823096467127433954531649779077098087649980994925415969895436851922481736921930135444826275604347258975343311732300019547918141843575012776546792937509732650609927669604601376690298704793788842343849298069009030330590649138541256771724394241510483005460509671205954814216097526804477274284849137751240938858376835999267745930920687449272401428046956757842338224423769171517737460889651326374831720080160918270051256121562640598209602819586949767792893622595530350404702972429557927801778967246148904120610332920805972751104652880988497171305520233322511170479849231046473570399352584915544998315317153813812409576700568423890476513563842680198726128068407799034131025484889646611587698836703335978891047946081386325698635148575799412676238800456681753506543776747210944431706811162731070147456001618958978115933112330425937506719426510691840208409641593672977950239111187677490118474938156630561606545832991785758323185332387564771782575486562474985068756712239506854429055785542541883429470235488019770408416892370897353866816283788863285835813447768188359036842809795601622558025420252519564021934705933856724092751687340711763863294101545082875703277601426532056884947330668205364358623655373064125515329689445667505004029517693025330411102789859702155681205980942744361607242531514506720977404643075595420947179473745211383613285179309301576202300463735932206263759602779018644152336586388288153133894511028194696608249939548669322193132472863651026714868551170042048052442599303560195008185041595028848071097059894857999495639708478388585729804836739025821431579470800013415160476541858966972909487791434725819894447620166527294411233554887842038833533728517699930390522645294419358827122870820334632683827565622158240115677075299733326628586966107294128627184712140082196454355391838917768865128654222361737056637707159737068318768746165305006547407118747982612578183339613503375471264413828751072716508487045927659085874859443168599692824619138843754741051313754016046479312295382510932926924821692594489720547318608360163834192839673754914875420198215126579954666321849266758880878074866183738235512945587250666289886388663352607494016931723322302670096555399361202882464779013827675070008952462788018103393179178895180477827871483192184561163375673926513944971532068261600222447471116275355144723592260860124851063116423464167232035809271864544046014537009732927116144630660590350307661266586935498711479930165542138216786844066649380378896857627361466826316223705579995768336395774356964733782046795870739779623234436803383961837562299118784058096322084800472749898926261847193598566631207347948985927281038773440071510357728539391054251530012035794002823303836319178417641964782576915453634693893757094141576347757278529201252786986909912806773840602337418439227410917433137507948570673966223387591934194876998808927247082177544485679054875133304940542481360636024676560984190194581836433192075171720364827522779448869866537113975310212396130846086499640107357406990998654424475391712398865020759232671879906586106099266958564136007525480932242519615864320145809258248029514296229107871110884373551101063580872579482861576866442543063367922891986309553197266766519172196666138076910543104860828175023226719752478803993183745521740006859669372824373060332619937722960614801873103145940276988882722652895237541499522790694670751029295130890435683309441677844381804056199142645733622436639747002920305728622326382602145082999363069102242210597255002845043525395498339121773105878239478003126400720308483396966253859763346738317385592320102086138127953326422259341176833748617102431617415123114082582146129637171083619437897977123205191756188277025034571932322294826903522954854110425341662654387223766539011822427280507849071768907055815193078490970860423656659766147989910006565195725691913223722492169954241977818546465096408367806948273851440175368091483804357565123687818472492501392368616191231422166594254389024239733069934680245005025693432059053164371159984694265460860374788496713821209905225003993208111487990357484061455239908261632986574958142352771136575987264863086977662335401218043275269577186316986353108904020900315584214533951041111569193211894987889977861313008616371022182200331973031378006693273009241425617421123905932950328757130165011977955118839793840348062060261474253251065268441455088829650688164972794261094007026409002639519435103905763682968894333810815406424313564683603197390198194879575420361245135923062185602603280926647570556206653193035403482669994268972980921773545053076265929684337578081378826092931806483281267152639666164412499998792947994948720011003851458510194943101821403163277923343780404931540598667396608883008763302666236903658999802549437907200806283495816161464483594892003820376491712156721317506779848913457249083679546397254841228616966202908235457902115261582424339853093730113034033835426401169041435484463583705341626487772474321885663594235278312871641356419572374261907725867523029126455483995820920404971718324779752658847985724535644771095441184388082373485636932919220260915531304814833109266630701481639681748898934869071678004798203276075962832781515387721253984833064634928792110941410340142622284607248152341606543296990333939046881658756371968150343493924527110907328368136568131787445747819137614865013891328921087294158947448906197969450989896202819268349123935301955546556136182066215452691916038264976314232561350184613923764887859757942816939065169047232585643535442973521331881241164654960396778265200062267820122302414594383585391000340220549693437807073468928145813479234244644364093166594120136892979979084308272380565137195068284598343914308056271904079558130928920474500154142472064443726852951924044384904466750995640594287553604429137722566070276936880132410312904894259183553215462939909927734525817274822764982858012685821812564071644244644390645659562798803025142804669756358384338797504921358263950604068186446307932504546041237879361884300861478867885676357937944049396908831689624663604234869401294410276152183086526579296671620876216866460068389406506099103616601270875087944049144281530039902908670309291095653255813811221923052480402076543339934337720079566887482026610961562876404478361742051577462116121462599852221654596818650861899139400594609015838833511356528150059295781298164438504754509646270997953722694936524088090895078720884278500822999179098894173471785584515562117731511041950123907880569533340781066429627711450070398543443872920753509253385425345844449913755853909921493552950816171530996909426361997795350411224365616109535632251054342078644561265003604515271158388696079431915252539840636506624934612156644616495825706134582636847727779010897291475355440675112890470942745177431761307480569852484374966802001247076696285669161700545179550980385406206911979624151507432752014260452547726985720500050002895481181782850950860433150938176296731879949336961108726149268372199016548242749348096649610034109504303270550217291753767843775309340050070267522089745651798059696624987563049088334232426943672189442073687966829910168452859663398551942214884296173375738676882074526652931471530639671911847976877621050645749355287626525620971237260363033804230948143081078423230793893244524893781730197672087026762104377755964457375466227357335460909185288631018745852379128304725409324499058051973154639645211673236599926622418897129068900225926059659312510278006183235775083420954756969570050262716506984070999071822234675435992687596795733467037797212219984153744910140490826806790426937314891020708777076725626559353800454725261600544918982035637567104081473428336373514065465662165109736857823546543971637489960849693796915502788851766960911739316844864204804574877298093574135310267654116035137677380294086877891694628299673085031864778904515459161254776839175238821575474626889976151695928878332959344761795756266994699032496466745383932367610137046427852257859571712139097470530844573262346294335073737115093647796875392675934318548619006510900189133760182423764902233144798145305597277249651653063928890502978522407578329169118085488407325730871236782166400787195272691641815395022179530880032852712585557069267032422641342324481371479988471355886108984671293962080644923388069496232407715955993141923507046708217191129686373402995135782285755343791436711169538148836466744215695238742636443201820825478170387654610193865735000380832308409651604163784928765730995930443438997732043357974732927864492539047186426572482002458209975848145271085395309576156741255946023824671520179354270163097165697201934721567707298947543950108961582392733533674557133531473508509435047051625320598672136514562522251659557870573145259960329823891380254311841077063116781428479337750448814494615281787094966384942421099709867168549384858032695315950067818762611398432722362180680019726477673180571105261786230550177518730761221869139501246216785635254757624064191154677068690965777548431613515962850625277462110807364366232676215044891363547679827204647991166001286227174682096022619657752221012644925635473439234070646119747681097544411178457767062284868522310638756944431364979372873969515674664484827119763233028152051063827230334263394496630078007120886681312316730128458711710924424257228494273182331388951403577222805959644452854305929434809513727068427677369417535266291291441818544755458458128436697373420637702722739583769381084602242501124857694925289379063769843292506022945363700480899457139007451370968051605307731700806568307730848343082298506796767078588921034513164424494541307382748298297435633277982672891642427171023624078326912541988693227141656855203371609680486989993368468618604931387870149824788158382547148960136975332878968134313325696747110148314397793385937910024277059139593781524554491257451723005424757560835352778271893802856696582719067643737131361664739053234216508741397537557129120047333123886210242840280124147458308461099803653404940628929706176191092092985065948901443159821925392055532526360815143162762160227503008329568841059336306374799123553689904586609694636920626071670754253949098276046617792173148155683484154841615877600771532522074209945108649896642744134333796996609298418535938815574899275790449264449380046620332455933654806078992172053585024060310312673392574367578252008628608370621265465646849082266834781923037455119766733896009494684496160549179425864223720006818504996402209922177319386340073759052483236460815228451494581943260148623824561258111569560143859694475110119919817677634594638302146808842613933181327918025360392589092656591544926914757529764437461403033734032054873636189048445480737765536542530478763946657234216279503833765305083002862363254207855738996419521696241107204289193489328898365318625104232207529073835702463265358493562800553513226869341155900955974388041470894447161535787989897053468430584981790658868081917680188313735257166498471019699237052447623272872859600551517147734913082729817779870409318984628733411365227455450548808983434189456197443491902715151998146120206248590695143657436246629678523337280131519540759741490082590080700079872653818594766514008318829632845146804614833777793699647073712870147037948807418205883004092114499421825479106610714392462388252216937907112317822911613902983118069696014274805787624295832648581076417546748096616957240994336439944946123099697524795039859065258632107032420071287559040157016949304900895360109003152117529115586274763145773987853730788538075323659292785469008478589680787779007944587134357954205146241453217948220859857681787079126893797015841454054503193988912083330785774260562677278423405001904180947482999052223961908409366085969980060797915800238192972063234169185220240139874224112722318423894708100359830121990004580233762206316815196058482423072870948335227425297560480821239187614394180778078570100073138577180716392888191464992256411698276323021778725685558009835751801087003312598312788272706312818598137636173647709436911057855092793840394411715801471412201879247909179117531124574442013136781985059495723465671760852006382303614349072708646255852501110996484404032869985282286071882879433484047037191422558068876755594970393751041103807309059939409775236609777516368951441123987858350212628514719820335638708977868844875134691977863501438628494233489643999379165876645809771087732046577538139160691939156454285908219267377914314945018742075271421228478583605862388157800397679439292611871427985250591766433396992764358144448125542786986064583428294331429274868667848863815342533079826603616976754905512899569999021346455690580097672079757293873558587261060505524625531292027322532894620026519346990170547974714455641270405048640683787638469263067841916745394373274314958921951433684786406430132926812173213210647999506962047571532056891697192529942106579596247859295890923017709867039496112712168893375608324235195019540196776667125265367892937630403852126220229681537232454531948684018203424402491549377763203269036936046857285998566554077699706680642384667260018888246407677674951159357784289560121397912896801193656009059313253544538530805081863432026165900430851559084126673952650247952008804976367186593723716752945417969302431215575326916207693072553264541093624160695102830858963489381467428017334627821496638945270196836302491765649170803529337002106468948431125267946823663428474113128383414987831189918970022321223611980350476862326306353196108044886880490263584952838261202333133182110472355714402259233516152938184965944002264835258177612856454199427319724400625046301570602323271266424333533594810067710899248184325275609203220711602676956800622641900905829559938026564700842029704302268096316901118370601239065850118205066914454024790349189260346902982696061630905115140621107543755210110500462859551688257057781011289301036167685485312723919035381647689899275460774833204545388699755990436516798415558567115366113671867894363191677934211630420547151558056981879031804276844789030929562865447518092470471353340848101805552472471492874575776880470924878510946871724514299782977040717765401756551254648898849786223034255221402552382153909271885724248492023535433137402041840723042752076732780644042655132774238213189180501048123586587986330686412240414142581436632680646662999609218332220128421221172536879308492906736808852330962601241398019022721117820286295838323166581181873700507383995258959240244153814484649994276845328711832822483786603880244720686612041860058148364556952662709794689440192095312231806301016958942769795167617826031740161987865219750124080736348537817739812924935985859611353031559901426640259657064085436971774541512673770089429098847312572402959445710969540504532254102466690002731573230365173657306246282544470180026308906219077353561660870073268339653666128558642121985395656202636459581249768308450578272102486475836008854630023930245823861463605867651948709387178619303663639810114344997345393027732208277737484014283957395095820923901221295727443945504359950108405990377193754104455790783703638017722318102195472441067455573616184270088569951679015825054819109484188160741070607291844629474771482910398986864275698995372958437187104276019061846244456894051934302294325335527575093152866785859182178910419963720947470961930268752067628900059673663964020558197296145223234478449993287992436749581206054154454691362540952714652977634699414198708656347334782424270274479513899777606987749360456324874945876356206845914481893780597464034756019589530660372187531257967764975423085347192273722398183039533990461240589630996273336341434681118526921238997979635095319537183331545935843790212890177798401217769493604280807424264174995046156007816962672539608788501576790087105953104074967794298477089963941106900894842341115440761767515152468036586033657908422744860867442149237898255977039875032022000466058810649889535404698893372820935126981408612672471906627235784599643620127223144838952704157917851174299300791576250402890907180799227608651901639378209511039877960582651040002674359146896000869699205864803309454568072798476147282299352706599275286332304602196985232130945856201355948833199268414560352580182065709610109645227697669724761795513351186948192761068125584834016907370370018704681124640643547804826209840118011947857326379433411245922164961578315050795767676242455347090395326821440427927193424278309566975472606554335974595650422277441939335599051749758655670980809236762716929998209968064682789454223353763057748661807670270611671856304111097477309028956737195027678427744047086997048229909661443137873931996846648802175889961013490557217541806922243105211895306625406923499714813070852023628702814785869552385337104796225393532254989018637035988682636752675181336027277308285687923161324829240759476853282524061888238063160119620622319031906297126202043494666817152233974740197324038116226269912279195514990343454334510801224248001851287892613372656378099833022516253635025646372346784776290446391034677111227743704867167554190290474612541996767143739771015222648743258115008803368656917987861348545676482150374117472652364430211877802074429717890762432741399720090357700267122925387667390201141617884599307970634611469285821790886697930317931531345417814988381570181918100819972592071062219839243998974434377507975794806104478581756584985852402438174337307828406548512948099974426328710213542195054473725376106452492877641844750145380449398282707756097873608549444464500322236808236787549815200524995769526394168014266402972416082298082965085738148868740286171268008044567364127173946616017686286552589243358459023318428162655252276928052436553391332729574964112370177493400763337642082101338484016737227615826647685922605468764047298402009555039823530439046443110075405568436391423562635537746983290350123282194713344837085053285382632311193952057040430959335046982532835764981486502686458549264188607038272053067789884900301270728790233215056723039474608091564974742202102411965939075448338344981518558143642929595340642185353601976961290343934019040493169794995412638019171660158478204463737049146380601895077975203193635365537726925389171919277332279062976821993171367728996570165695904879054452778048583362207135354482062622069612617166660397649064406242954146175154993822694674546746651043180731948008565576120157679054991811625936181831271597647230369135706098802943586570628964095978459685156248854708354875572624312085904222134705187301467340816367615373354724505161675032334164210803638296230140978009925294004441183090161867979882927495820136312970613030699110605310678680151970348211847756451349395806746584520374158480271370341482178867517739485561553135794297372960459919842848512920158359356094119286837930207586461571697070863001097427996024030318446490481371985150621066587837515669356944855627448790751804466393848432146211820085929005170911818837594395377076824689088259306363556015040693239148822368795693123929472660313251469091696215185521714197005274098579097303832275943887543238520716831379789887575289416584211077613797539722836414907919036103859335894837134266225289765528042019263155793711819169955961285151085886816773672630391245697976909947530093995916894991387556867783896234448794439048987529297846136645865372305467678473518208907451085274593303921860248890482940287888237389960005576959138371925024073554229448991651994263154339250916477496771911197895783062809801405684839627757256556091519206455779134036159686606930981930207395286749596289059625372379958632143415946247313753490009733127339267528158546740966552687744189184591635946781012430059577473956920015244842691453412919264022738800923464133584869534598800136631454502332259387499986278689387707687684223287915058337246834079478488414016704465927078114928651769611615988219062517889281311437150992001875927710159293638533571111781778755462548866696394141269934895361677796518018674684177736565050773031811865859313998100665201137693915169045623814146292753611396973964008135554994496104172146350843975289519981225054420103204802624736158458848366692435701102106520464543451372939037652769562430292183739080885691201860377921971902769037098260190618432586189919948973001137278489910065572384504094213911592029527506853483512841303250249079448049612549234494190566526013429665771930632212862610534340619739541940113728476967334239131425631333170202245180767746229675455790901801517850838260749422601111917023954447613887483405149883495049013332261250950077356264533927747659827301114387053810698293311626672653562400907118311032348973459293877513435611832694679032013970430504366555156516829366346944035415153400833452915573452189978462791985905720783511298354109720165787637962220529396871614290898463846057584263029126116829118055423117234215314683565058685980051661816637674725087468278080857319935230208887929976394366781376247823926513804862324068072596960202760983530721260321720016934653633465087291246548844561313254788549086533810514088952244738156113469761386411831973174002359816979187236526471642405916231479464383447521101084290950721820589346355903607680045112562675563607341184833724960206491029728793923534933414518842710255126328289306067153765152212789340518344947520487305904370409051387596725304181864835684292263604548110192222408736142299941760736018759570338753236779299980623627139213646594525844636139319238449364510197062900928025554410033642796313845222772548587094903738458563013390664816179620863004390194209808768697095415495382075547276042477774457034227161115549820475484377189453100528289635569354771126679643494160489150113057607791377840210241797481809470823380102230863459829936033956387145030988334081786978852677529642798862352556134118465844334821708398084179727115585375514557213803388182722189030373882863433599240595714189537452270403814513979159360170351200364298690254747434728811866512429776716432589280896961463567474981711281257377468760616091887960417438815525777981321199144325620678542560340431466131081574823818067129460308269113952223253254028832851303565539888366665398375561581693154351867167893228273378165339732032399480777722119073408335575751007564856896457147694332977139119014887314623807802197379503996049950965247305784232315860456494589670605458912293809081519481476217665133426370262291932370223204592258560185184219590748801118370490245659221001110114860493647004192491462615387390841060550230542374486936623644464908440558555804633567243300846592072685143002170475047952185526905393335049058210464854864420154314249819918867203591659689482657016086217917663454848442654329230567264719773997382087810516438191056893040308024250651898867376559897166146012158361370457580832295958747851575244847968862296242021323616040350823513379894119646036271528103001634627585433322693344257436149587986454940942384522668889680190810199784030510115823454797808392462141175108326893642452898414303802614616750889937174389865757227465424938575010026814740868991193576233301783735870253072235349455280285503302308121676692548839191168496035027000591243733540176392030035909843693155067993146481139852571053942373703486549317946788783330247263830819577598819239988333627621726943317025102766669085977902169261314308289527986375311723793193921943678034504672607880775111161058576582131344999792203156389062623885466438231602066070481879723215120153543801142879753778188288058553038475657114145594549940736980084908988366395711203502020161094835856087689968036031818166826886799410710320347829437320045512488405516192773903959131469583653096974999031184063092394495691568657501254826862262326110083115431928175462223799985311114904625255203510892515875184511304680559530010049773346308616776431401196734747693856947501646185360654514901761951525242599551625538373990804553324666033919954483154353645417873462570579477790463715077555148635545649510407222624813047619728149967909305078207705949226296503388961224788531178948425209818934881133122721184286879823644878443127030254266638334002917197675096170663910284856138511414843686139032834576489674506531498824707121123589662085764702653639981353375380490897429324954927198024013115984218005722236108367489686609807546375419061178065507895047565863507510797573144575585313646632078748150947992354916231523244157073799488419256179717497507504209192755426520723587190922240217294835591380613059663238991352270352391097683309095891858079142375870324847615362408826072859852098774112278636867767845758826969578092158747842887007851361114479333327129722151660666922873723031862298403944066919183643161065565485740182960591797717459177701518612021811159314189529361964617666028291431836825560776459713585367591822925579513327083455483132624951628821363327774614211734676911769038732599368926040725152786298501303971527510839251365658830860418155606962428973862286743859948840668421077318669200103890101321920627466285174861315985458716199880700185724737101682907287721147958757837309042124884329019516139712409295082716199367038074391842698538504761364812314547759639854797181416539448054191254203412276353827703328293737507615355570093837337963767288075896423842095725317593048516732804616772976137501829133093986575987039698313657112252397686458414546084972808347285246968891609392680773128758354571939278362027840709500955849596041940918509084483845774242590039232344032447502873876460552850684574708750233062474081836397355538588862535663509416726574406727627567335921162444573919871753264313809346499992835845802337584312872004693018200320485701756801192916048085752946300152467865884385304069089458295683323109960880958582458853360203244809705570075881960756121094005289119848805572783103621022534636369092306189748088240999345662060370477312901542373749323273651706951946146362142433916430448992241819911231668587397622288748803490373648680510034437101451187836617345818315479171413490910690902543194510861130673461114125077268584914924127133313027920859150752398653664455712489431576801959804304016011846648112348577077830317544531123778625617760474033753527458577409536482166156958445094575268352944287792059592513067987328612848780872764576759552598150104616624879729812551324978960249383811747928053050260543621056460088291471648489005623549969699253955597628252292116658234497554073232807084257459660951715101445896635710704034689253769132970313475080739350499631057193158113356260071937342904965591952473390998038725410181630507903857372960541405733507700512727231877289482240605994958406854060489792673156200082312553949713873492665954150540731345637582321738354079305561891783542205473143342866814601866857099899162507850099409712723095582351675773716394464393097438794085727276666533585031156301671008906963384192023218330311177272569496753633042415736458248257871108755281828649097769663668090793389362386664392405117158078693961174052028523515608271125065207677877189897672259948755671109772244119439791738217966394753883718966210103658909019983424843925155501826972544464168597450639264415341897306049408343716777912385181920874273640477993311875950939349386893349879025367604423271685120565857798943579954998238885536587112615060792056239030115429569898019859421460983960253922922849939475542947035050185228983089740175930347396351279724082318034262815499175200648706584568783895934662148720678216503328581249304376674195117941072182135230977904368888134383709645560020406156693720822035980989106105497261434321653765474441199262066455840775742248856871193098444840062324560761855484557923689857955755130062055180657206257680606701804182311216801895183899324588567182420440425102092577753992555758777557146882116000191906032291860475806466366736873088549693634156381693539939965685813217147603605353503882541542206748997167172734211388305236703423072676678991139594593231256971656518555750610953846679718228936222000268001277632040959415715313812878992208737851664714386378949983071835340457021331105136281317030310789894310916128065715179824000054669352878258535464220353830060396531183172487040331262490746628961899632065197016512663189156496662786229652662323220480392967810326034318095125147523690802052990401663942320231070875759094278909881689533694295344114211619257094815277117493935915335679255256581455892905861099259703399109176935308226633782118998211153177854248414470371399738239825416198308952802681091488615457164503258436714284206633871265228998173707374695601179604195239191729202571254502143663537565418911977229933314393855477449139421675866245187332842421825807875595128290572196630661599756709419129114639869690782076205880367848778384772940114725908960676423484740436328072269972148816030757366884212577884958140535356070627459184539877913912973557404555799089329140289693352052303524945298884531423812723432977193881046486428789761201575758113284755960706219700361981134031695007378457379849119613371059879025272133182571458375251452705288541765160768079431784435220978780593079242061239126534626397476589118060335576522201597681434045976470768466082989625045295415818113491924061277046717083162584372911398068313673258308586995567603533682229151507337135854102921432542039037524410382127725340092655815600032072474312708438680793275495193595727447808611584931211068633301238456147232256697898786189373677977586882121455965369090072696942550242423957929578592671313137019844227204004188354201519014532967016728654985588954812511414071790528850940015192653461515736955261409889523138728827701931392935359899920678750414805014663984383208429397493093298454400231546847261223956667217210981684739816784346094007273049898578812030522941434401536715399665895199221854722871552960904653765327024963598602270710128268520520997538897092492589790431944241906811767844776618685037210188460354436342333271627616155118363223757239246900853888079296289398188586224479419018467186489721472693836306687625033820544658155442794196170570626104911012201425274384634925169867154589216941943758638367179085871211000002287864484679761510073131094082771582695823859020450832484528271313203368835613900228866672295570723883477872452200390352006005954135501907271368353965551269348107282975030835922864127440348589923057930959082949975843473799529594801841488150599262254984556636813847285517094487752828981779387795486183033339011529947942475979933440759355945764944188865753120239977268654264094100213107709245573313930046419071057011715181229927979691572354036214009999037317519732370072181183874222858120040405266946479641992349914744258234912553783562037784131766099143419392783666377785023872673631802761050129176835277224906235966024151456280263630513304322677448639216609375553391792811133685817255580539993625110097074290467446215145589702999282711074831076957261992452734241487473374871361639633364208770757140434355241848106139817407856841822014485820646238501748717051813655517449010805809525941593840797698446992604547788559541326483945037660506580364385851311306310621524914180681891528108955287047785498469748500292685069929975636144258435502083903208587116818196158185603855240767088129311290254440868175388989976807248343342395636793029259873324106112388399301167919337461934862167162967403226186842078303786921815616229043932239593017305313263609753209927510434700934663788435957845628300627799009854816559923730612480401486611609278410928505396234237698409794344565118408448347159528215482293377932695037199283614797308210534006051437495792290563255859031672645984381968845960255796483175981053095136077277764006451097244778186337999924334188603633036721672240307748728125831260486328319775526414396537421544209326998345787080615081544433538043052033542946155983137642123889226476345401690203283666008702946516842281264524999203378422380725827615278215000808267430620793928827340717374251926412241549630404961765753678419458231775879570183534085583528363237521838697986443406426173845392892874598868996540270394527603061598934953366509901035249341921948571917123012533420221243365409110164562495761127190167716314588740733021731588588800174417189530914073891716405580024777027978836080384820445153366906533666824165514558545214654597696770156963932033897129979091793082126009760082723128202425362300201621304438587245564953553019627568383117487698653506203631659441430476690604422353295269305503078611637546268665688666180369976604118138405896719535484460409592762932836862906371055039872650559572325157198389872272109889778507327885785638793404248658411344858345027835202520077035080274163988627025304899890652047428666965408668172146711342496050308771466976553541923154685639284853270150298519480861737449732355722740814764218077452347775628623057348927417431765839869709638912593256464285487926399603128005819264778993779710885192695383507671120395619142308102264605336021481114548619776661572929849832351690431450290116323064918116637656459707960342839560371727977215111756000127108874914416393087199262758205497414393675861971159027331603504008539512221701352347281964767353207672333196242462848235528013668761454500747857128010139058029781056629710742614032149979708363202200313097013266236283208337458165687571574387615846141437444678633439764231204765802251191276844848397050147255393282542934202297969644952607314450022604095302841324980835453450290810017836534154730675406781089809158687846828536990376993509100750888357965800739001879509239067603108824894130039583805644132325054411103263464616602069157557414273592989785043130665609288949635800637671850542896596331412156468355070128694265706666305343290109039597269943060083446343867806475054728640474699461831788419655187236355510821446674969514672488285398282298939526950262956126402844215581006219738044340713376300947231631433795803503845136287968760437752903952538468558279553259184022356786150024937257326252153178233787984567095983584108915249976988854366324505093106809749246647386019102899127041720976160685668293804238061716788554305324668128340509723400709864802142905359012953992687414806512153461748369267686850557920257265170764853053347511837216704082204094937233072905667607515690620463731528466222657522161746806404748496532933190916752051434700326141398797623535338582682438319848814608062203907159445608125552731274236463699383228797995115712019819851948134404224278164107930775596748886750553857593892111124711895891121945591283771052422196610418278899432988752761868915969994119511733830336626132281025730928980581334798584195532694327279418900821309393581232833832720294579103220050575471007056797991408778574876122540972099640184936055386446232170534960321901302878528781495624732015496651071485377762943416113109680038538696991475715952066816388206149604767117423158949106739627908098619242842378839499518769992383778337972533742522506632912866930463413147456867104516379535315375117671534336496288521743549762673433467836081671479713107039270783539979032712752790076178312043901006311603807111642250201264089360928725914491502395739264454589696904407636205361196383667929385486475793362194815686533478643738464932467168535774377721897940508755156929381381289412793782984310787564469982490896005445053985250127434834820249234283001018938613506000371444150699428815801316470949829492150130115263438470581855209863045704641867128118463998169049729221037191050076874225019974655740347017256777355945779653128715776394970754740556537752810211924232206930516513145808214927617308535613683958599798568366213769345533618766877546144837834105034991129467016045079695435196361184659848840904845181786554203063655210245052220062275396681924888786466515232859400464085216188146698228015100602239719655548108267943926298627963231071578841987030387230505147117007477824554565192208626438472299283137823016356877406037759398459484152658903410709586964926909846392879297492277419255244480331926736677481770769620519787230678557500040609176854515768446226745192637630523461798534974921894768440315326374005542491772376310720459681040691150788929713163067168616271263140744418032150370504087887204587525419801800625691897807306056582449220037989427408894171325992809459640631029837409253760324513103783031214969116128370979893457350395852687305923542443667629356444963839054959822096138535655549845017835744352798619800158554806883711163434739305398554479600559911784651175259841122779243787429136354740270621969536978804331627527435669023981614160093826141671243050223634415141477637511432049406268724375339096806492354683502675177200657397166167590188091152899358939464212367588313754524735219372077698077811289643672091423766612346010155540168298120855331091667410907739977963847878649572924063818621298087419031966754741465474691136971113646781581871418771847983799105311555237940239048618337089793239383262418177899844097776724669645272897272113799187742890055582809301342436344416895795456225915055581575804515582025212846610545894308510579310533814194147227797947782295869433506936611479101844565334866962655368441412241014134158904837628638971258794904484837814398709590549508592150559039573586708773160062207695536937598942474238647959982069032280251973874988495323531890514426605911638842172026263889893554525143867710385523975630062699428639790559528476079631965894651129218510406703266981560803703312847510214393261228705937789789561156409263633796674542774549282331357349365957063717947144348579040082879429968832412916030472746343192410168617851964813958048081407605693395053381670530194614127659735292729257695436968898084082738811064959413397035745514675947733390272207253104093645150301343539039403439802759916033460271859309733267943853946750116866689862540089036622394282598529923284432249055748283017655581332151283120512254191409196245176470582787417903907315077135213985105340205565044588301920601209309240362879053027676134815399607972994700262733773077073023824344180255873275865381189159521459497707696885124647915654135822467025642265281976383629176148316037827617966572042517365224526621111195468620092770211197048387877574913534656316512051648947708715407196989203271366444204419496325224946387614477779786018110095471056438342865541416254172750811508243373466491576632153859250996028355993284490071006914601617967173349688288608421529065602220699773797167454583898288566537587663300693954163665025118880348935428221812050602566919936008960190225765911012944438799913889690034138177201889002499105591367925639259617126065476611384163914424827365071125746333724161661349047078344417982623471581878491689957807955578136876805801749016204751675508159587115113801217863293009715894408779057057660215218144546351396089250033916170128469782496457839817000519673584838585322694470553338828191265538283678829898367606838688534447559037475152425798143134249681847212961697643525687727049889276765563416582893188547826882522851078312867150924458420834519787129306817126921253698438592830549933319031049959551531128593586156696878760255227434917800830934077780785172180017151820460202027362598961109297576832816266598633520453131010939184580677636138819168495003778311101218861729086003158575936322192648050503377105187369615326121979129607353256728348588002547493833434383882117008180642595468710576787826619592380549021840400925188745673766984660877574532353076735758090465840824973523649847630457183081373709578287961277393725186516530570812327407233685163511076137838074208326796348212357397675793726831661224144534168286997094788622990044259564451998187773580820882538489586516483511880082887031735435401342696253317067249507228398446342015027593736519878676153396099994871770038973604955960807261568585002533041069135367053577334205780872309187560883382285637320187095111826305769328025213760386088863066077162501429676531050278107314101348378740653320007184794386432207723423002182414265682677271174226006288292584622421567144740491915421073721333681054717635668185444651643900795019935107616575421696875400594753891338377524756582698348077677909558474921538947824295872805889886392439188045072323352584718747480041191337728871893980698480395321767165778994374092768118581480027237641715037812699796367851319059149058406092080403204207539573587619272287376115287796369256999534778513518167178740617138626705764642483848522080452983403285372133031403375177261830004600593682998471803703360370128782616559102764068239601181055195282290814912828133669832407109286878823063975075052291487895133209256643005216493704551409882778284337977341181321400997918487597388529376045509543659881478502366213309324482715881794453059463255363477425786012579364169712740238871612728080081451507576692150038576295381777394856854474652077681215500756141296452766517460999480891224996505409580723291185302434072834431129814429993422659252771187448122208089059754678915255672770366749901617430203521359831711969559555662489036687893930500356725294240921270834520555787319020351907795895354688168036514795211918102658595879081875042841190898075475030748282213157339882858247204907234422936704935815321135875911624798089374718488154814584775302737795407539823458890063155835276186450487489562525202111695885218097430971123780282542672933167443152724825233591155017890554287634489062414630958154245203392119949551522915416977716887942512123707827128736845335741082285180088407260854642361976435292914952151595996459793217664512269640722329420953716767796513489496742113812283866146181813644281366806276129126491176298898953019303736729614270420314520617141473110281207535492412157186022643780565150182250957961223770761174811403631155072139424984914934827737499697517657067638031930364415029373762418202694427170152366137602006493076561746187402430827452931709657023262351274555350537357785071637929960418323305686216244057222787687106780626238273540476228878158593982753077371944764903940474761529853125978281556618529223754905668013485516714986879459870625180818997769052606733372366336561366548708491601065972974521937384983767298167585174609160677837370421879934852796348775498894678669003900209431725849810380551910413657041158411477168095308818614400800837030239717756271226627549397949039583006904459899110797228342910079483942647394925435770232423154545759742334418087354835718922956355469279039450776126822316251390900137186892803525858483327991655957843207661242405720865624658018013523037883644201059851152670270506089452171782290459865796447670289678541360176096346446234436612088410498516064905639988302735770440486634538755410268744983022990031364284122147190253270539246498725561417796753567520354556506785026639016083027795624746384454355784172003514646086418368246031161710091136419857636089343121493954058413023756612046262614261099045438595256139750276048188235870763239311826665374751999844395642120328241920414509047964118028414691260009752632707035686541464010340161306598261772170539455552347920854275035467179264090592982994255745265382609151826792290744742827156547189534592258549629102950473723865727378356325924940562904547856230352632715584795520128935934724787410714371391618847031758086716389867118757901617369902133920848128206036792139120161396571399126891033214788956589470503674648860508097208741102146371401472101205785046039016148264570172933881109722723290853134141448859807168966518788577991246702941930160365352926282233964584073135476830371736044603208664645500556843256588244065752782541247364468573113446118082640455397991375153894038191079473443080072285422825573283723814834421085570374582346297201533209244697810457556853250858013212411348340180099210517580576199233166827679045204754427141746837680561123384128881348733992056588833893510265630717574671730487600141476712707979446756646845125891428264947722527648875329091704019638264723852447332090555183090866714418582375439122498719020187124187487484406967875910007770089435477857528538071936704567352442845434161161286253167870233332834682800160882239452204316471382728892049903344755180702939041767076702593762525671899218014851755386530164744813597904672837573109138279956999791354763279856218130099658389150923399381865940977314208847689258654417827090899257375565743321690608697027046239371616033535754790052926578164731420217475867312903949006235328493206586618387930450130437661203595728227768831366444999934980443030557860672142134632161845720135897503615018824201703842871045716294531860785128631173420494079912074920661452594216108056182689106160115896861790198403787148245420158837203877853707030407729947250337700453251409901910363580333957655132988974730599376537718191869326455496523706544347914142803355194358872212553188696683724467338001367988141578945736111124746815703751951478106979557633914806871624485473000444962034016944452052001512049166748928778789888805031792301397950224117855270982234600692678734512757196225214501569127977410798697134075898133820017791418690272074294215363746909204207525895620904492923986617713046897388814205337941465483575498807354917776279231693057748379952204036460876371290486022102738696692966828573792179203324867661571725474717005400996894394590155218502136750594187432561369197601247120445017632431393610512092420825581950855089689724042311987495396597801318611910423684546971646272298346399963511917059736864004337123931001813121339587832392994558785109166494702310109037223333304691775574230278992365669680766642339416148142343609336356085744929082138687932086637281559909534777942760966155904641660299535063621895732263503723451971416210605861060373882869290046293091675254701696448124934715691881839368776140534299770126655802697429975280634375014479467997199136171169202128636626733048822509369649187996744421180378604651864956166735960063047347710379659674871253814299714395464427560809755530036098033194478666529474286102344763719103882335807157276883821245569228529357093443230082896979577036227268935741748159668536492060296120463760809326811064871662133374843031619019128414725852360250710084535309604687136998516162907921415646829365860032887412046073022296940536565198109666886333346091266942696858706202806392327336784990978094243062517045033290718478703144156639126873466170417902086420817723004473950579038311342267388073188167249048584636427331031068775887949925457366256151111766007165256583092702126370325790673178677918474754073219215825003310861144254163430999097816796936720478299674812696426277901184368578807932590570757287648892551831111357716677214033929186503502857302843274085568767431485996504556533188826150419747903313033442488628824647977089037345546586159116519015946975986824449612100402209196294536075602755419374978704616472845848689969670707400969575599106238201526424643640599868038991129837845070687729277226025389481787343800398349910376396600134452450168819264254230886083925947756770527866533311841259059106607640262481375967519053665921316946656061411434974866244543019243631018868472505403825809325008073094223553541547584925738132050718465399151186919994637142694699925546950686370177910096307481907963721626046963495278295537593200165425913869819731889376079540781442617110014155584452572678924930445083460848727664148198169366418073145087940406211141994454039745684667306597310743087331473261378350213525179759571438509630228794281908883008822048999664723392736662509422100729515074448784690405318944105390475054242526837109532356613563559722929688561043799780274677846389894639478692567255496003244755332248140566533123317473901870434131177770688989764120886681533180697389906959957339268140945915752503928575682698540391760010587376892061106227399849924735507108783195705066179884663323554225404233480181906713081493554999318280583425999631581917285674442899714691542033590719572447649882441955094730730577477753773969564630278191544380259047963736307643149812241389958278635938703322926141279004803436504718220630898709180135378865246024131043645430581301271451945011219367775104045738381777186925229669674011493789060130651753659813510531140041776340047659590275525775048904206129229898647623848429596006579209642955398824689403000909983062066311005863134579220559048179844738770269252308087852832103736857154226951797736015314123635156811190895917145889758196151488277697071980863971301372570030466935010858508736610158889472230911102399218281979333835005393196414557596880705990338261106756059159518539748829190608532180103602592156036534455192692246627921970030241845651881838066693162622523818369894282549755592918173521467839447967364623218380595887605103784865641486505184681172793626859359169644311288638868015648582402014459843156192612508877823517819848215372697878513090032592908255175821451651449173067847074513815189301011747049771211595339318174292685693923915461010722553075029583785121524943753647791236419285535645395063108714666453284181017746031940807530074946165847807428871764497819690488013273063663834502558467297006758852116937531484384373426176683356414685674411203395690842253760272293255103109769654388384704712498958487135964121061042178511464669806305189408070216149992477046785711915560580852407800867817520703984547263412413586380671388967541056961419139868867101635213461862928896519272582705813972750568697629192801734973445975527533694351175403542082818971556671321294853072433983157093501900744981670172929598083221404194735620786844428835688521685721787264446209586805310319410979827958802926099173743348335661873636508483534727420454403502304736215808526897334877235693676372007484122064960589863340115551657722153726892490468745569270041770295020037792454326237381000390030992159181014341192383731598397015122760238417772425624849829890744871957070888093690387293767911886688321642073610114837488245090942757264321849726847488098726103434919510231718434929088341158860610925015661440878350379324373724692314684859131935636735816328774162043454438497935207484547994026772744741868893380914291962131834460501455895062483334911171858306051931309128009728420303964858903687861328871463415973988050694950974897696083481722942315968605758990373541967443139796017493508529834691036806540481756495161560974475334622842293367594046425410604052480703378519815151066955563119791840891298137545115816032460215571118097533116028032557413094433934185343761584081031763905911137946132733692553549407097338245644938787280620420366543697713524110722356586463779556685922766864366184317521241136849049088396365394959601211251125410532230389708111139318760851637811321536870840743777152833083202806677041824698150203094138124636281747379411327013340392322764624783277740096327496193250232556248037100626881457868065822233162530354893293684166903173235064720054187662408604070202904290076688724957429277794961528567053341581545177182273996865366984161937596908522770308194300079244111678604102707861142766346202640100500310256160143616110948173787713582376063847778765560346250710715105766733299915129781319118585698036107134444336460096310737677502758562578870704071511543399211030521432573434216624484348813522389056403027736687697367616875077149641113825026120244554174397405794274449000667278309287588680433648819881733849557095913179632296399668726307266947732856787948809636322786223935714392203621459837499896248670010605422364421517680410110734398598649920287312938408703250740024360798150731901276890045649899896104082228024892805121356366934875616759727884699000531613308993057520524088290615266374921544002220796008618628057335127667505960425369505085507350183495009491100717681312152378205050378517304146980492811540386834563740098999025950831811315730413045064372969125212335277548368907146080737533915992400431576467469141593727736011900353231831534105234535540265752069056360602399765583738238283740057920949380606085708164598667828404751847300448211178591337947142060253770565076797989461463191264509155997202217338031898531891964118046606081032740267068652753327144356261999119005993989937916931739102583543228894608202047866572805033803807398389178187289067417684206669441164027771097164965894004502352448727301898757078073343806474822421054467242786066997568723822601383591485838685370654435055332442631008878202398814132106497426214105430890614374479521161231509183384779340103117259384795270598638221183283547860862856938645327194625885041914495739958007051180268031615427118769633279308686217861052859604314554724831029735351180737352925542911641526601270065705303012443143025465814870792202971537467485138758216528653171248326170484965613542182456095620038645887572265721734538086647970682817338411459603483749236972934993516874462562782742880849461613122693467043985613538640092756437563562321520714776751329646625491884035378540602715089636071536268882528763642148903178777397400425003725620920184592809275013406482935975906620140554448737977980937229197833942352212930757250841490790909551911699273540402932895753928780416920771169410218357757071591852593195964326323933216156932614572475872167305848495282136548184310647241780768701520486917872597387804350237724013241930166823320762333546021923067134571697392459114337649725434852674329274009517062824776019210300908333119644331883307542067810493188438827824929586533224635334599388392332416986438527434140129986845325069262528690048181200675998252458324899575887854601871537515607842187313794396699223713018079262712057949162219907224861482327953325426723080535421104571067351166586670328398160047844092898436386792827782361327067055172358649129657458620430989928889274398719034736527162648200764616253391582935273872459346510076682259396643814350341271738077161854105724107502035248742501155485057326447147684402260750080939810899284547941786188695942520746613250398197280368347129112148491741680014113291619202732988883178011259696816759073223450902231054505786849049837791236161185132889457106770572108689690323701546637517690998266284591819752620112855924563458439101369662134020005617386574531663897603736164259355589324571100267403515780834247490100991547064020403727845044984158549547476737837449743165851725819216635004370907683050722356972214733326905897519061116304549576034404559795284514902077944359604188322925531250831099454365133596421395000224235843260335927820747731819047618663792179449800210521352785346084799548175656327213114542779377795789244558539065585836529715606566515991382761600784485890053683916907141508908538049152602965908542285676782340544084787344715653774421921893295519809528074430553096600871657822116909774796543075125235908017315594806089966929158247614187306213121515456939834053542064523472332082105717029424477753139837250273757900986182798754731191848872482703357995631649982280420809657225030474023581222432460442861128531354802568607355782003149103529123170121501782951451566734074698888906586588527425922413276228835838491565179286908038597317962030617880104338653148518831763617464323491383387773809431035054027860565443674465826973207344263414389548686728084969446596930635093333162077403037654299912193756512407406210781920132966904549245533255372794539715874828682906331816502040973308990197026469041245601164100889517126392895350115370323760667320803803183542195417232357451764758996072290128696476526149872826491029494165134164134531556333834699167276067338215586330814151126151767602701025967775561234486803475626074901731197380928204850625387733217001835380305820844495586647662581619102577098263208668886626335248589241910348936511338123619062611377339170631164408990385495967142942554873040689544136108191183634326914196116578348000494697724241712836804028482406385901827511696100299284748375975606910497822785983944670380059440913390227788007603799382981570622213710724806092839202563556994463344174309872523141877187897008125498825210353446455080304865036654361414153140349472337564050909846857062249902935416821815545076275109786702537891061894865042243885648781461533945133622400813314489120802245311766232847579948941687991167946858826231004218801020380416648703288660032343950177594083503036859282416903276187559474499382662531331525599354911732931569102243315422042079285161450510514299225560268489737555314210703262337544474726685919211236457163567922138638185265500273888944017474440596859603509463220986738742709308075033177541767266058122347522666368350450412291449721605719515750354504831679657923514372639129912076350497978266824996037559808164435959703587006887158136040052926254026178676411888328440586288926380833031019638911440485220604188904266144454866919731201486425374760826623449062932945800683841205155656006287494951250479891943353888004074441668208439374456292001947538677128980436320909465134107626324833842809675828105386918309540082317044744469454349935046799707469646685365468156100264249227039845412576656318252011304385936075371784513358165958579728856099623727853983655279039289667478231278244825471564511877619777676745192386136248976270024039902444468871779173072395462353770661189717467108446202917941848027264379497665284733816368306512980466828997915600909771767405456239896128340458746818382882109977798175506329581374572646025312966944448856872357421654884084324024445779984020510155608161640622087075105679832698659553771483913883034172555819753851191610814375991617360174800728244174228516429664996564595536346247964112138733695515109939919112046553127132181877195138474859037399380301813466014177245752573392792820676771894960791860709671640119588427750322072392429731732400314857410996734763968778078455531128649366694311448087182044365607091414078487110746413101523002998998823838775984027585940583538426456399871820960415761459698622268902934103795541092809745135654364127300560832477998150607064688464950066234177316578099484137658153608378462190153015554401526502411350867758033651581818182460839082975518475482176881694499538455237085366327695352631115326378286868337167747828011027843239856254137336039509931438577288932167278360427873749456487386278517384378593577459641059855037927386406431115534328893400699999942068570546017148932357200883655929177602367708345977792816140521134348165501231270053675682641731865929462118382266357417269338130063925972372449491028494478457437750390655091850679715362442710531773922483094309637761923845479844435623035195896835719784134033620106231420689456551089741605976581437276976479562082054481906234430138742258901899823515060525504934569594844950704557613206886465450385521041106037846233529039355108915007821167867610785979046257814416454531288881827407753779055566904588564886295899036380572917935369640133357489333888089813623026883650593790175554633686389243406100983979309988970998108914888591787741818327027965212336952046067706631764880444172853966870257254392676662915496068508594721564712909124863013271851196952732369844663618180982877961710544413337548390644512749996597858556626466842063891394846659587655866278717705924310297461332596808148561449798889641839124846821348771499400331935451645885606616888670587928791082211404641911296386463723898588696903456350958131646724719660855962467651839642868284341742052104356679455944832747467001315984067402765993397212127153955029709812244495101126102878499087599187790855308358907895848912526680304050840843909183754323329999195987710606900137284434381868203424580817285672016103163053291132282102859806257637199123535947299254045858240014063822369917739291145232104821923473453682681541639963284419964848943825651823622684366739475885098506233223183708462636589777370196842917389374225327135252099191977202382945838325362593498214331533043088778090744977646996240437540629823293780241186988878930916462471083264779140335731719817794131384506228178995174404642500982817918714532910558805741278342233993995176159697238976438343733370858270291346085137313500145456389486702747265979483982278324227396312966025814976512076963637668168204931186167105539963393241720330935989391302756340213699461415016878805014147522539498999977790294849175548503983575504627790149401405598218850235753978751997017527017857456214628816763742134132456463106135836262264013517031570932117241985083061630327838388199167206754410769779129317790858059012524975741481762561403571167675798161476307903697656836522009035279210877260909668510282958312670865209821639433619628640100322492887797028450638210914451006610321669589048450074883403712520482801670406760289838053413931569627942495160675975504040834795756918997664000271677455218989547035029028006508602650100132645843891187589037744968633495351718738026461067597601911918178870613419664124052375922596571186704838056121215325494899379326278682195500174116173989552688019148348937611998793291751329824056291220130253707133898995840602721820392473575445151372068602570624329451355865430341810019467373073676760349924814479799455853196085327478088171310224574742970670424376891522985570028045302833254375831860791587631173421055398065757093173878741573241758516152004767417832786457175311117944333058611035757619090271291334965073337770441861123406159073365301529765568891744502434321433334189919474033044125073020668389642964689367407195760137126059698109597809633919060612545002374624623228517695602150867686070234451065821240991196369380289615957835251901667847295768772616751248494910761763404112191048068349869587570033386311582658705116944835944818329599035280442407091782768030911035010218243384944896754443262685990698439008479990324575423983422535180063061162071247358367887035213415724362774810927970757982219799924914620694012096087339821351542425800837877613038289692145847133967211006337851727855026447224252219450400140909347073601632384191242731930437120858470158763881307204249392386490112868270689700455156830706117681027166226369246454319134608829211772972345503957769280393202330734923471463764368400664662240047441017790543838403828720012829971667044135992082924493988113857870738818123298746626792807121720338791828436607043471208106770583494948988660312587291509178341834901857975194057881398990129325973409773918912138112066901906824490284895769463993875697713099580450832522256651847695648888169545063878208106549794359362217582865909273998192895555362730941965277058060632391437643457789168858041621979634015053976224781182319656240498975866818115548589232286594799178444971186405744225876143513225816028612746901204320806482857740380349464367811737991908650022791088571288059066085843611428081139528158936892266044053208772919440194192517240991654102646943216164675412809103795284178351327844135856873377976954526332864571707375650869339294193073828606730668612072957528106237005559989472172979790623145963964736613230751508280591603759065550154445403101147470697304458557607341989838590698856766315083016781383607603425801513215537360318008017002620983705538160269008975944011635442347139567640622064448666512995717118225730485086019892310784974592004808782272618091161038147081832123142220798663237714783324678676146086710446927242642624929929573380058627636406603793871807627162824655230862841164843129173201229823197049830371110523311376774705376768483478756625341261337432170148555035602998809668103317795265749660856086843774871222954700551787671421369130715081767384452259805776718805581633012174137748565964933864927717834131999055530266062358077191578469071698207306584607395445418551488431685116459196590474112322487017221547473461829133817240963638471166398692781826475698273657856261772635115056672623029117940631054558400658037014539344094119956201369010733067637728141178431829521817682656625922802784102233538352503182348249136433018437433361361271078942631348817077805598083215691934786173999385020573959743824210800304824905469512833782906148811175893751774401211758714764939310160595803020607046792400214918074325578353436825961975720678572128304003106678549390279142032034427377217469597694054415390952566587960056885644431412908031818208721971980805844871980774076474524557801114528114017489683309523773035480319414233052041007556204015419840115350221587964971636074383482043098217293803367255662508001151258597089909514986169314875020475489392970077273929588603302814026072163429702215280062969487969300459033653718982845832939676623659777538946300495084073101988423505518088658883862567273944426302896988476166889800400518787475269764455918235462818647077838687357234051989894711650033557992660765605877415610005247869523081570007315701134245808257983653372700432913630302160377440830609354835252860850871181143783539701371430059662381776982432698591993135045088139649220683010806665639563400040551060400022875060162298286089651346326501703745692503767710811505696995642416850364941918709954014037398531392566440469976227833575732940278683043350785895042808634071819898025719228624464258597051997386824930068468945214306565888735300277897023230734882883899436009734942125194954576221065726206501990764385113141760795246285756541004286625874891715102016472903351142301690128760166539701459340878660444366378513243112113565943573546738086533821304911951333508706388111662383809127529012934520227457056745356489177097438017730068365204274185606224517747270016881589925773681074865640028226098876056514271224657865146619448547080568547434407689003923782888853010285041886409051401081281712654606417392293167916517360854067230733416112797552608782165458564309916789081885372801664257333052975306394956507004752519904024960922525095471601893747873780176282988285072987423507421872223470027704194729701780417461674083447607903139376301035202187202733322189524991215821226069075083953703847414437519068657596736242471078845873408191403944991850370954082641437402414203782538974214275570792366176779900330486115974471003005077152710112076714154641895977463599372181986447545973830505811816597349065522834287366901294971365403627118302512948279391936384236755330900853357822001749585858219201176077107282688155072659315677796625135964559773770315201111839500449168754935964462592226213611057682285283974871636361756628161792267839343998663979518719520490582387366999085708479538251854103925304873440657447416157519255242625184321275731914493526591248216866220270674636638717979419512886053915782153754272548487218320255844131678730442608849874808838197733814732538614554184640423672356680829071820935195681386687877303335412661229360761353248252515491963292835452078071294143704629324761146030304982755439964580599171093186766084965572123900583821239756788978280977421839776472330369147821663612338412804776308655992582139151592935771797926290508398746250985809947115769963374051927788470374253449542934805330001346773791043217440372860536278088264922262137894103985807028073659393417613248923103480676109861404310285837715347089561488039680699954966175908415523029678185415906819205183224911866466280277126320382262838404202443169918268243955500504555669406954231264219267457588815331488991288705757400251603435229442037028344476204651053624043074094643739983481891892309855001200486058030670879844533807967610677601400230279840335755584397782495112957546178027287461595138614135529591242134189290631205262327955725059546712493649078665003393186936983662936210732459202468813880254889015161936520828285277432362412761559650078964438106679083610062390021093549474879418181163872272200301718294489559493929396250786034901954408436475910271219929351690015475069370627624030829709892931618568340365830018974675139312640437424453121229758085979358655425568171280589043083148301590812685134280967904527899219480189994166001600029729475920344317560165603589008442894705650579578517215409946966617405265635466577466640287356422126865694399921345776066993493488129602769767615407532106572716195942054442637562531271478911459099135325402941523400797664433331801124252129110710606588702709015042212183505401193755373077345348714780928740826440096808979082770133433891879518254267745285726326215978987303270098483269068266263521286568460133780833972381907474656377510527553816252681678865141691080232945179820350749787465236098737076615323035016791690883446620254455575651620907146838628924688811155803670573375274516239689060127865690387547487173507635707213754478270312483464638713808202890482055529278599062147683834246724459024025698152293405752895762469207141593980222119171455138927186568726074143534099100658099802558055909878177477651239855104407269272089426773065284237027958842007223246275559464894154041898371026944819584872987218573059162987101720282653299146544479708655746942143687477007677261509185133673460849025411950441175990073333100204889947822985173168576389877163706554464922952454456784369737949825321009687620333380762427806760069842038043311219310839456283483274112028678442792623669411722534021926815246599877837224464556261209810528799567167102158531520128103247638581256122162820980485373547316944652075060620257857899662741126453054633851241613636158670132342272769418322371275896666488032315019918381495435820933401712477460420895733121265419577333081554980349750948074319964331780508863575420683836811462985765602087490284717108032568730618798474678432833313355179256661103984931793821124490944155858299581962491992730318299292571111533895197093750903958583767115235258663191426849665682281482473584370876301000155329532598342303865228417268763004224124625145828342740924033035437036745965469163313095389449631102425225599324195851854306387406415736230602994184127894260495548259356066528116818997985450507478123444377043447435620269407086353325328680622124121394542940949950742484043126677268033444618374397696907150536314534908901247283638669990719518530172666532522970077208142720285471044607343006486628244863610401636572384056861661525541312126931075282658592310387206129960087264553880541688479435440694187357497586809931663914825921048224419475902722184557152797028779949684166818821916635587002277306022435769351913104757119257073248143208607903830890621477746628526423284751902469285157712862430005138059990624705586039102124887333594324951372594136699485465768201478593207597189966806578708546261364680496546415267508222186622758051252200597671961721885607502113755341755423511571478563618160713247750327391446686455094623952032095616697346573860002653300964789569726765159417091323863865402203842383800921575046450913364923637017740523948774030085231817080588022642056080137299174020246826510944456214730759459300944577853698682870594352161880182282011150367886213265971321089080070087439947226042654333331844151596129103003316490289547009037056359882037745434296485042674568441106475833408951220802164455488588590945286445179711980600880086237695863571556090446120510119661173942562182740750489841823194911652671951865281359347385335616176125121034885386054565230344908513749077631874307540081725480742835354317780267889453357548104716148531424848102789777184307037410300542141048918776533873553899108530509392624361583257401431864352419193377328721429069232302209526811593087163920270028753013930089548928367382624267969688936982052677855516936434583900172583560993393527763152426363326327998269869204597158101341783088205763171530793876161284510329941811869346077171846086889097531488028340734032883665281382222070965672738759202117197672862508237395771926304152020375877899597295862733149156616785188575851309914231550345226001347204866173064641627393793801352919099877565603475147123352653853043865299099385964994370865008000713134204368463677540352669728868939167955961831085702553843401003906970212997096813954115725392233550498836832431721912506705792283713953393562014082501784827483519599233818776224736340272149471093580794499032479361186368138972470244170515443008463097256933914812026882089366406813007406113724396571935203887204551581917356572532959496567017824361542780609077813619163237095261159453332346829657768243263787830714327608544892649952629964951451389878354775394694861972107625305406071585315202536367577139153100139973426133471744979978268293611884181773453166944311501342987916128138695118717425230297056503131846829320239148541919349737044181343488616559971061223992015096877180538984544059806304622341775380497767354381442389732367095153392725611332527302555249037918008152755126496124848194126741435306053994614666368591745230680750900307851520691188302172174478515966192976294809814268717108090207215221567242272869779525844592393186707326236586551277842863375819497080668096244871149922177364759314641321139591269854319229685359925849006409807900488045790631111627249748094486565361687200728831266126538651803777736019231513065476326453201281762046096293769161578084398000865919929230701867630374671977070856581301801876717289316917358293141029681735644537348068690979732096899683826726258428549625297388310855558280888474305985848648774418624450029371209332100308092579288070080337256695862692507536023576393240857619930038975397332586534011429966245838251087798535853090190006679603261556377749184426564166889537722222718197595945165072353170978044871371133382791850113155742124758989433620373824768354201043017241146959246282186822389007759656999213830334368737323608561921760391040625845487481719861409772032299009836922825862778374129040062689045623700949280334206083309406747705948154406215692948292763877304341289303019885047279455713160343504354710840769096436845124887783787831672404997463075776154136117933082860546998881095409416826219247566552669683301688517697738699164827278725696176692539984100066644976612451350692665524564808464589018791538239069885703402720547844047849104776286550805720283319446217224043049299980627765702513642580434472203537324757422155671989485812280973352238433840536216726811818638486270791123661639487370975697054369942441965528016609055634072824302117416098809631258011170583096490031739429394817422146443794629614160982541956746995194783605082802324426393585952201215089398024809933183543554416875488200809594250919212114423416895842877243800071322449931651013080917395549473854323780131802381977136397738873567527651011177454295130975078149125155739668739955924988034675108273643913367729012388507803909320723649787782902096269066425173635669955095365280809788992570540331019888239522731394384796366047585819368551535609588409055608374168013360648974859103620066537397148109786107317929031518558499130353949753446922507280761710864899363239869447661826846289022370498710183623564536692997330967142306663206839312943949286276227500002560641052512854201859189108895137306224672402399697447065037326152284382422925737726535352486408151007814387656929503487623846327250278771833537450871395513196794774410278445870493426641873679832629719344353090153609558756782186554646456974027040794431387402030001644733102337167663678735529739651227925459301111341991609673205967815714468802054177459694915814185039642049934689733186925108448353598523851507137496393436544704988617751216361152119788327204253787719007994587286974479655388103527868208717647391407697333783296817612442813116734109668735653985966049003068884104633444404034401716048246086790366818522565088276347169199316450464638897167541122230890504094239768141226221156033862991406020935780177406811681410168025843877176092043172614168530801634167129113493683953967421011718101218067887006595025072176977516404825723370016308462155813976142378640935740634940572181961279209397788642249288880826532407167443648143998766710840230423133111319521558090435999517560215455060605941297366130677011957688498497848421983281083964825289393475258313558103444624839010276153613194883827553566022814477700099187233972941210186511456694200435240695996790063687612435378111837349246847512729541461584418220857548835424416977082427541029503379662084253220746854047120546423729373313878217476919298625565154741331733934360313657554584917422167711575061289024153839244986582517878556933618132809218366026118973081909856541148032743495315312665190650333362440021867363878957405357838753076613488735763030637131614095843621369547840955905702793626023491115255884080583830745088735277437122785331637088676062465812588807086661694866453421872405505349678986676105646294763807299306256741184546420819497323926744175341068946433727852316024002110755742588190106204161323409503709610485713052962232066915867036673742121772714757272131927479690944039935061102609158264680017067030202154403930194114608072459329538520902140683554620346737508978955351061273008883754949214359395047811783623205578650960076704124899621134403265026776829474442390638442251709575347832875535058518125912634780311142486502543963193982644994309724783253049234867054916199025090758175257085855370792281050157807643469847165381950406554831799537734123384220233756124478570663711565549848359566748821541043883620791997277711071601620239662944796566934068235371303242963677656644132787352339692464529240365588499250616282363881163953479049965102170130075646498095040795311121252099057521270584942791043707950687918268738152914609734111490308117307672844000969299620329025781441938923316527351955917096276051951409153084655110385631070837687411074114009640788241608679661339567423284789297560009084409581970949578092170036715694534428808874384577315189501873139006793257373994773739615824535267326068092524957448665423946343865590826669458722901644660019543572948246176234878973208091725897633185451958849403149974804239893539356598689440790996824616010874937998954919747042674569747725821580590106592857701538844012171557138317766837562145623241394496810084766505074477831637895765802852017666598057662296113435568866051137348033412609732862819357691312023451078919369503508021878932375149494071027237649673784358959359498719517530676606250575911508626293567793305833293083690028283584690484344578032162911437806769546017357099263273071190224052065036932511454522034947840252502508871056871890912666016977003706708949704613096837333685390583293826858565227130525756542848613867284543732498426386032314247330500986682593090023106740907692226380428614731003050696155580896149784710746910941508743586673662350758290461507574084191333890569550199003462028404714829106267044740837345668487111851743049823227684799868818883836865279315208898194972857263798577509843898828239204851632582787633215503723181410020513501125425032342701530897134563960822436832895045693474102276456431841100285357354333198793346272682680631828632807949282824824929537864032119309937598137015404230566810086327943852813438933917267633563669343228823042309197671830403433685868259742242717800771289081566924502938389480340735787007497484420207142247724571022146181021135272185653945303307161162544766004440578271755671485098600400688682748620781631170828926110631698192883963783722776079557444175245483191135169698523896383780130895244187021076798788534359168480247653163224251596498941603688380489362947743769370830570724196975266810142938861878639175091629560664132781838005315935665646299665861933175217473828712300412847932882246531354798510907282125085631541770952427450898764044106571866180424539663039124162674349213119255663201215152152092610346164941289168229328608653798350077433668891777262200775485194802616340383596861760848443596679797437381157028391858474547915761322376202144626704545387159339141763955069875216190729573440814094729612565683092090411947812951324486149988450426063451944835385836534417708457374519626936775855470319085278448403596708635344849321625809210278715172643261663882521274278036906443005952790299731984904541304762176967258984988760697373282832109032880803078547998464663536221583198339757177115174550394944628424068442629374947387512423026954789805639688253801431302087646924563119518155192195879013304010585644980869962463453149108299557756722051979124812758191852762079430312992357055228826753452320544570626610029353192120799288710153225996600708332661901673382921044118637493529357706961556438228036898382542452104907900727041037055872258976121780957291472007741995588428239281326329985389868125685635330341765554993508937033945505482305977646923475099731063697413391864051716003264190030050714872156726619899320941003963107570167704024432073075842949748625842152316604032907892696997501576398353978301346760414916036032073454435606277361973740824480578402118684882773747279972336426164034570778790715133329842941424688428755811789641559998474433689785720200799327713377955852959450315969354995244202424028573721031489531760050075949536572076920867577652444507839309129271149180994684792482487784762197516501056705094544256988315319136926810876254776667396633737827573434972064975700716334793245185247837861956161250316638208543598741304101964730358805621301243227340381137217743215092474764778832777299036198767945886377710360710930217718077225061065209244068212867671751263995832076890699713951447095248477995151142343322916281744791188465344718911379054617039456784548390296397127761570245574172912560630203231693618353060161229370007059698958549766563644826996161776266419243180682656629615394292249022523365833582798440258185495508461767656883905145029621721174591017158980918250985194575346144088130270237897553512811287008281994733429705738047813294785089622222644995569617483731847703644649495841839030568095046864163496257152714422416097629726566240061883513303769511333938894727372039950370573509054022753067153760375519475280116392262953155907215479628110524278282037625805526441558324301305398418128662031173348795215613071357579579872349611230054702556209141582004025157601081115795367806954532080619916310274085773903681247979681116274436022305789786409406222265995109486908944230351008282622160931625234521933779899502684117075847600360993767138977355340615675080203435278996062619221707675735337989980824228477720855652927283207396913592741527990895675731439368625347866463802478803778535291369041877598696924752892137016538333365438791069612921323423975065330604068498175890717432781063309640762263679984200700650150889623304121058981950144653853467667230129446654847052354732820400019565961258131628654575171946780951833325523599476026901264124091374635158921589294661368812110969099021788926957757082361551855203584124731252031435623478935507993824809249448181458114258764037705060756474120664752169501526111346052543896272850626423712406846197932739013878529701661634627726942354963527836851358080464885612306817470229619669375917522228424825324100721454860272536044888173629316295229794601399485794637368779016963396306817546426943608423503442138645384162726554618603966396463628612038481508164348442122479995809465079536147168521133149491013026184163507894430561961656830195931951685068298823374088288956116017071995971363869403885621940539918592121637755714979148268159813791644972597617463506017237706481596487359987514871449731190699919856228122044005899723179632739151719011379154783195128504541421565980662569769136017605187254770366596936855856817626092860838713102066230753590049676984255397526432877118724551586726528547594991371784431596516976371093758089376593717343335865624438152478011253241835788495765424263221107697903203901615797873171061108791397122239905019928087055369367712274055574960888994764664984603961631082944283919121484150949299796311785205452366980474932777079879066432814075174457762057509088614875064655997781652850486320888145024465963356898485183729754855349668195527852917754149233736292171144760017701958584293864852191965366324733567635844967095493918173576830359288667479912624265630325743482541110573203904074921484091177883744417998569216767274022579285840056173880536720002654252417040626439993357454983987196769956428611927509077334367171584292738810361492644409971599703627261956953152716898074303153954801144887603159308267164151145851375342061239776963014997615931800956818240040973485865036315257471456336083980648382125370132774966510974785100645825899962241803558912421956334798855409162424667288779967311695853820303307279999986641036535316266462034387306528765762022837365243036862379009704058841716833653163210433421021200896826689096775934830762746388827547639079463771483390465648252155296064925951732841586744890443471183099269740002315684862795044869133217082163674607693938168236742077780963437801244515921247785994277236631073232944701094499404923800145975704057528828375300151541347444773048657989982664031638062158593025952100879443200165627347036699415094684932969435753419549822601961993409049384566338677403792891018551888295999632361720267706621310186089536880242998915858277092709751784884772390775207799607481719363975333800250842014181505680526733478725124907617688776721813706604535442795905548518888484863228100770404228391226672350099534763495751290468345535734830403153872891305616105717866440859161937789729578817593831095357484820941901151971668948150864514733016634968269985987142222470005153927016402781059044261244119846516593400819664422663923765539147742708012974262117012172633226970676650795426970467779446085448742298025395052475375111851906360446076298685093364371891686814845514398723751932025002881338597389720773442820371583608397202768321478412069904350143192454675241857928783310895638982037777818550868008797758894581879386095057279256276899994774705262801957080850466811079062875841667905836461601878874673095921708833979352261929991436362164031740526729216806194501625779518425299113335621145628138681360814048428858547154933780778900993458966409465704504465038457898662030792996771675858593485114226309526606205918352667802580842095419920384028776185245821807690505694378934964255662710591143734440998026421750702741763149538364997657278931097562079771862741842943570732277742534209425324819435971342149939620429864487178346622669792029309608941732683373288468081572223617545692288884160833637091861844640937852682977104149815879729154692198815218802286044873382108380532266350376394867931239714009211530754428905836099078009030281618331898785119258454148353088295473553838033300242176417522252544272817743778869769489773713264323312223461821334631247790903912197691026320675587402991161121283019605147263890201401791347786270732077009581135270649465523229559964585986004787499890888676313817721505240403978537527995955311339490399926363737658023206149444859320452024850430783491544688407745723850226306745105864020190851485327953195525087127380829057442515953500138367563952877197122321649737609366402068023056502444246648913245728715377713648009360314033766645014226079412774487482107643036415692060223432813937045591723750343264976395222671802524863381811482724185532679894532135668668483929557139833633452895299496085546410300742450360674851123758562986865861027567888388672634601535393627096167237865549509206295033375544011256948874898279869646704624472633251752578730173395601363131863075775944248217339246916164562764780981571978151216467666089666755298281114806114898197808318991468725032845202994859150777049420997565318024556589858745858549029486226510187725755851769655697519665293507337758637038386550438295832378846412573158004965564173037356034227855068946061050359204225046796871174597184694057617779827874702574377442150279038003566039137903731163534252987699179509477365008914344592033106770312109389327126045313452525387825376947548720476153166839295336223295067908621870172762010668737220392799300259283264002315097388378145569474744046318097439910191284200522937775382809162603270454852558652784056096565374428471037749606457142220260637361402047913661964309994563830499018610150947432630494488501534589505959760768690188651372577152340536744996854278132794695044415152355163952088952276151808372047553936329778609790877164077122314805768591690885580285442094715293571625154612464569251321621864490618822801068339888917901853288780745802459073240919975258209429104377575665747800660510360667106175278202446389477535370415420882548940395774098721171434908693874928445607668913184330768571418387298373541562867014655362270832825930967026178728872977301983594034304951776060155365006860063453959877328870414864020907641850261913049348658996693635982113164852122096804880707666772527627806998582744952764718622416330448444646795927585432653221713735008880236690017043743912250607388921000403272252919942659336333090117476247328879191243381401486711377296705983088597854868859126882883497835814823286685835847396080017778084601620120077241672265419139251881713315173184371192100826433712054544701746052220755017880972628836298394797584479247057905412839910964898605674441514001774376869541332257477575028117247260519598969042582803229299681204950282755787513816152198209127329859727379114373439089073786812036548995858817790367237084529831244415554913513953559485155711045370576736203670984280884536913425654703326497314286468112658402472883762104525850439169704902491908123554324342256255909011338269827244473285140338963824797095254681859568583783586606501395214060062298700944091802849372459520433265900917792335946564401537100834977869649859722378720190066645518289639871785310325317101971166999555017819619401870472312472941119973568245475941659554145900928235276448052891335168910236089366699735869695383057564673229987575918154035850144632386979709264931181225154033245300102875022286623463507328239883681725763168136582924873607317081358947105463777057121651794986374359143323501748321009231315104581927312445207644551041213437193659937572128548327968119028455133892867400275226597783542039040848879268197562685765369316452110276002402911199285242877417844984273058582913451256351616704865666890173350215673877794549153016053496752068642407347276844977820068728308562619791991448698003665074324120195140308646896420083916374609362289070380368773316065370942520696726647745251701390886323380126616117290816101827601050016596574506896931927719486461820913950915399769663120820147685049844463863511883957227911846865506824245719207379255415148390341848544593602337340654827788749225259429178381240799719736542841063006588487166835087331886311091766365975983087273982891990289456960027920072102844845886649454450111558159953700799317321782545987991035189180043946114435465642087250682644267408149219735449154539061408951350388270160297933578267626702383974159251147704144223517988498792747842756734585548218563072256355108438467249063232950741108208788626318656328011036306399904186324216303855204238541597827188601966169213407215074163157353235950521834025665056041527416492127073461769557008187567977119738831793492298202515433941324495052577922878508173432968319724991136066506043845491585023684077570898188686610042472738410127746583585103157586877216049066786799728421494638224056131774916588946068606038620302561491457678960061192660914221389152628058975669831985831591190502236283733398010886728340069957356851644449729602504990061410332012758460887466552341879078094156497176719412917610721644079199934627045922399748646541650306118470430612872782463702559702594625213041681483013801354179931455371506235694498745897726690596340040529199600782795180788829784217507966786322905666256166721339866034979236237012671198078988728171851370438644832757327484641476308543102972192732686079224914691213482704468435396664401331752942673115969790595790086569417238838381382345983649455723693347418998487950197287998227040364830783521580136076245299685994506419411527597992143848413279352698540584238664818405640525932895913521252312504364514560117346597821020714452766009139695577543133632081165156141405643064070558871400337886662723318374188707143784484767848105735374439479317356115777135770128216785113749215209284487249215721357461381458421823131106447257188007256025659532433530862360408480059883301628801548953157522259207941178414207041382909015214505490338864141884312631365310225547105225806250337593347010845596363455188964266144164952224088908090612473057201950171954531063486088747597859701987461930837093656078586693306101707993418359482117238641949641538178383189808375622823714151944165691160508023064725176564356565037053023934404007422886126232184102431592078319906518681921705601070595497309932929456285990968052057478610991226375245077629949277907748474119659883273170691989718249334686452022650294284637927307545831396197732953953379929324453863382546458873567550990320462629424128714308488920574595394730525610768631269744713866437156422680713899613788076792575253055000239827002622822598090541553748905715330225345130991381666010513754648404569313829339917656209534996339747998988829213798209737650674810456291811079632920194903500136805198309390599733887939703032845971059264221627388987038790914077883215797537644639335457015764147354691539283462028462006489886420789442580930921149295606383353250998126410016741933638884565321272207000790498138723775912959873539143575513478636710084327058005306423171120933210213538225748866925821486610319729911335775327141109448087246368933496295766450643798189319664030457673512090442689324030740541938121664152567870980703561903743657933410994769000225941225172524688725500125324047035475646004093778558640461951393393724764699083728676258165688992182955224699620271399180450885517690072600692990316003272835702899686943578646984056220048122807179501947776222803348921265828502208143681893129833256711141689534224934551312119510536567960720344513854723036978100693350601290545313529499830677167487865268202643965753627703033634693240859685425936139085945432179823700318669946023958069517031293074220550124445931672128156758119896610333361509779682717707489190492261478073534613793177663659374317157026143552964737788142591330765003623925010813099123349700076635948745559908307492726788325240056592006862167122129424585221819743534485171936576222683075030978279873809282828325892200069045541116876941029033409983762670350549758944042396140636338402450230672905494295734769334899443437165361179846842728050989244847426642387473395320610253262679843652633552424759663923039472959831532640781069505668638452180074351981687965967404376366115932010830145081919744458551010552427841958080708692288540152253098232288540287664999153679610178697595480409317048635104067165897483660061902564717765183802503076823435342533761907536056674198328391739102460137497657351416505046652344373188652459600982200448804537073524066385769005640129786478259770278606892495936010794056515769235865280232861364246001771465825002912240744025061886522576485630366823415718810920547147092052413745391848603874323160251346068191330380618614912455797395476941566488800583795893131078649421324932682655901195809452813115905582627440274188457625731003536739713182332103720528955054021732814095768145000912966739900268652996677513162858233905304334412832006919025210979160678198713308018583116777371378592777919470592147347467486987815301283136258815077434494732349159641242320411489007323433892082177560283444604159308236788111465491004342742243608661911170748345883118517797259549297205916916815941669506457868589195857764393023110722544697406227566102473321458518389753255471550905163482559686167862072635969229893565684967745243511052639156490178820745876245650171531625222895804742180556062809735627058977788867967163351748274625259064212335668270547723877023923488078392826133012944656394089399461142664393331186905402377797410334278766920859603225879065366017669854863603020765532817268796864229207832869565206731317432356275413991424251423055609794889079637193465753201714156470026775787273165080407871259538492090269173962174834215036315503676504600271496721213777313406725831697419754237664640524064690482516858137967698225063998483009533020753854755606626915010838793363927328161994636758036632710037768464057731084558595917296964129872533205781260186753147135545453855194212227432119064406399933681384706626117120685906139097867557551212422324968548136223506544616967946623222600782060497223552095517523438002654561550113493358963376613622910247876997322621118067377060178893093706230086390931896491799435858371002864211333974473847055877211790977083618049220867258093069402136996521920116785185821243403238851816546218465534684026127274293686279804799110180093254517542279044563555348725619181865602721376906682286061712263716471285314781809173252658461436392142078703337898585891173632894508778428088984108795448922358921453239377891105539011698549825164401697580700768602754137675995403081467424080591205493218327942219084785227527958978305083529511352802587962495130926930976195003068434531921088180583596605734315842301933040928790863530076718652732844124557489094871054421568573021320358082040035567687033740789205249753616177153379109945279541179787412494532532762522872144151280037132126970386076534729586026595863674260185155293292591534986436980830746220125464454321240825596267858255057274683744024013277697988200098243120416856948636619826518603051389883246864111223804620736149496837263095925416262391164017987310339544502563627876454420254871004113490481784157231183584916032075167104536227715984119846157923564038152871339899543620746271564364632488657062264339450802491748460162096219272463001550998384973415587848609667260508724853383496567240479591502367586123899466301524380667828090194954335434061248318374426004383334992664316876262721993585246541395654888610621352810157585798344699559906011229078282894053375964943954003508585360756151729279706992874064197449150815077471618303761496682222442477293858771948775554444292118378753381494276734395331221036507112724851619556957976836061004686762547396504318511247732383280259633329126450084253787939581607909156296423759842117211838004301389567031495512878483765438826114977436892246850109703204577817118188694113398018057261320822383399894669399847063870042456860424104246603895256140279572671009345004815082046808986962456387793055422238087537945102577782010336936965191971601010411452030954397893035201755257559991211723762093162067682321384416062092130584482176884626758078142966679828560561435810545239110115141942771047197391567984303164061096021889064222164891409316950356373397765984684249755253319500805095348442598899072428539332720661711914020625722139649781272989120905104274512170950314844878059425856924869314652053384308201570134545757942971827007796701595033969762399781834903146869552262677328586681869026384904677708190920188556245575003670876105206418308507361422791491213359783837554869795869409906489968152879237388472983464160851238386889245743203794845590540572010390527330173115567561387194930484645407132791174420737500617667015460186550181370241427008415123901110043720709091907674509140312336183311065487715788762585839987360903118330925603001690548881769919481588778708234507114193730123406287728017655066544974675917043737498383089123509744886078903372451202985446592891694471446314358543687080583609266161717785696848741959167652663072027495987750474853769908522530345768111025321712827247503793955536746728709946757204916207881365717024112354128709495271455857857106985587700386031176073123012572966829741924934843188853715866084391404236279125270574435145347269044919435680983010324686730405567037027153996217206144077516365796672939178079421248805566168010008806593644646510940178784624707539930051376164294208258257169449618857742688159211601378811662961265928970989713756419448904065670385331656075361552665761206028919800718620543487410200164965032411216932691729349225053525917076732496998480181653471072006494222133383399891914955859802593543792982133192975525287109219390727975567727814550990072345564702143126943029078898216481857945964243878583280382025435646110947855103363226100386310958336184570055375214678106739071098704074206888669992105572628074396000422008695826928528525274870123061082820479918829789866237908335177946271982727267640252668047860046268520507158473116356492426436053137697511885922850526953121832034047560518830079602532911286783226151271611131900834910213237432485519018349899336560971022999005396468083682974611613872786952302399711763072565167276831795240697680906592051003412761732467650186885328221950511240321682376346603197158494877869078146774297059964231834390831310869471413554985352723019815661921792482408419243051759844987800463215549884423520379007127628431461030284054187840230093626824562144078445487289269141922196759575318238148951422920063053690658073879917184515846197928016009343717337859520795126852689653764533591145376180398350702397694430628335769314092332176042217127031115166236646109737248588564583971161118289009101322155236056843100785282157795795142870329466323007489533813612857653297952998670586823595902111471864886448208671855475896641181210262767694312910152883813589924767101041649811047617224694901330172878426069712858843103753639468273286811873232164715933690950145118445413820714911181138365656260765529013974756105825279518838576970048132213072714007294109711180757268972636713324479009894230370194495044206046832374890648820018616306068113380313869815042463245528306433610216540772271190099367859278255539242004243565101529486159431832002149723060940770803239714665902432936261004049785350858879043748235388081024215985959394209987707423979576593961331001713767785562066011543001193120779143669375480918798010551338498008598290168864592739536901316366205045335213806210690643775774261267831731647358291184389692178344534891464258198960403108037116678046702055101221582997503118983498247930151653126598923949351371259768171229974249323315074101549756133603134229388779163113027683803053864563960831169153652044691743441534978107874851356488709779408735045364996410301787229965139177831013000431506117404535394612143713660376752297724240762687314291381856745419426368058887855914523468579367968236756209356578630910368795285131311923872512996034566195452830784757708991055593275037931184169046501919814268307978579525699922151943982401164404089049074425340913762582608851291790871128041406872098023551584684554072287203872602966809239010203961810626542742809935462396178062608164489238742152568331424559331932327856272418973169597901808235778450943405672552712376721102748719249699846941996942092249071909906533143511530274871205338429267846264587523446651016001528184812239107712914986066191484793107440688974225883328223982397185286658361436609809382094109163883247042678041387506763827412865050748427022182699073892280203075751989439260210153633401275468341412051148736363108066724253122941432937722730635387774806976039132207879109028543810879976692889298449210864007219841543687949385465586728669911479785084251226194034731274300836318759204101844074626713979432146142365724693947265547941803252348697796935053289077079203372553629859107049159769484839101479784292810275845313105272117071038787646244988244230326757912063757872331331630399070815696559112585118304057692055633330410979785271322240107096431624986290257856859725839662370815357741434533690315608893893599305283652527193466244378695801148371748209236329871078689092606749125953936119428556595294566403158829177807619462327934739956978267044530250765596473673639782369226009872592410828031911025860437117936857646890642461895479198358850615446793836569040893790640246918442327771975634476039387735113802136067948266485882862811493185474540202850430184720688244998239848050928504742121558234112467167689303917110347085396429529767965112829241061159972193996841891762027946388769462095127739783961003790223467366120826475940627525903973337101402139621580704087054429337565095984105719585341801652742322778083202091959814619245108222043329736066011313141182489016459167632456972227890982831888592320011878951068696461526430635638788504965042879666585657060147292104073190830650105537625867644787923839447240468616627464805530150505535678297048134150181824945587358700875895628050282217906234955941082984152765553035750066233733837111644386061809461828785678555759788029813661627048179740038095777110641912881886958448131028258434905386439920931957774625166318873695699115483397585433748964916247253013660638175205755329230721933564897217923102004675035719926369402174108343492708942686516153348259396928627821458530917749151707228168481945979073990843901460092420561520905920838813765787012046251080855839810853594078916314506566345022079289035541539389411938801171550671010010070258759926093768112094444461837442073625809862164060663570490703657867426270719792273273428658421606783500797540149493347141479307685520422455280068217973808684196543444105937414175270044732327972884682042172363132509764151188799237523365871460461186024793254055116053906283702055153139294519922176183118513231013762811830629813733226166284835929237002397052689060383686879410483177680115002080890356972682732532971513440401904154919506117951444228720123040252521140470702054409771796518686994978268262805233374972146075137356659408193107943935307109952403482998850430591672065307242416550453135943604526828336502320394658731916537027047792224726126047974980182102767373413534562123008687434858192493420037477952515170085600261522444439874136010296379291973254544109420317205290005059104494867396056652712900936953332380439114428394109621336436316639914421974911143178676257923923861437646553737788686354659941719838214709483890133316838714469654985865034536852828095171455035832100785119273880024340632361938687022972742641011269239872748517632063275055354857012833703681743442118260318720955947201534012945375192393773050942843770343418817919439235298561251586660169535769253663784843350662860299234481528635741943818511515550582724502244787905532386358086065920836271638649272143628857402114133144254120302967221116996788772286454383163545079240687090035326071340509785174139940170089369433759373976957214294496706809935636351128106828284080280496932212614777195876246494517537240754570931609699974921588562228863368706233186353620622247861546103447300758065097693387795715304373725972761484678318600073618487482979107087452750191957762878008663646244120226695638587599481028001910206448223058162896930907148509471060485067584980299614040969204371045363955905270177545506638211201976466628652388895662400755906736415407008490794895154900221968668909717596496666529157409048745319878335654531012646661672697444151521208108173936711529278155649269133209742525467015749441713757585292809951335474013887064246614976800989131247538990534080932651197660087521295809492495665859111515059489814056485912238356587598999262566415323780150980888850392610368833739851957922126201044400697914579584116341113188808210277369013560867306938630288740684215355671006814181977734346723189451800144945241800911691808354322302321536108277312046050872688565009873759893973603010569158838569057650806165072321524799171669860371155761469835583755988356113556523950906007279639777068998671814814042050789331256062212048005819753121806970682777428432317997905511966628820960919531022086303777882131954574975783657744285719807969712606662511163533698574004795842140630870884519823310426239584859322444252606302920912333869756627461925294486726503087010155199518126716828096367844120901532817242729725947312921353413320099636047565164850463255683895825115209488512539449620570902426990679632411527484801445771619521185049357159354565317205793801364374173362876495757872116199586607390356591431991856980917207321211802298472204698197559651450817698964390860960763207114460942921401343716807392266744116730876390872502846068077870696189723939281432593244331251785045869117962746729264245266000319979748355676459676605806809171930779805633726275958274270658468578335947942966589856570199150521497178261830626157576418322946101899972896831078660794814731872365922474082565578825714876602047986031004050405464426890880358683231517145446716161931805442035974132437166339562958746159797749444428427431937329089656636147566620033078740157747631828562110074081267829898346120495412310644726395744544821766135814222752624863775685806244707009420209272166838108586368579879421376086317208882796810733628601645105461018042614207327210705549778867078555453344449172280297083627309045828057851612837528868249812045450639397465428328810774868684717216129504370836733339930301320954716927175724561667408419134530985736669562866303317353519470452976297737366617570114780798770151229352321176461786102144765697701140001756324383149641642270286601718796161808604538315804567839213850137226179292664036737977261434312821240799325962784855577716105460898989914119671921051841328752108236024767650999623737623838455168463293321435803450696756864628282764171078085822737747662050487173604181630742828089114235729488311824900069142856825973031916468450793412229111331733516555623792849333086486029904253115824970677353200327723073899509015752749675456330108699293682832792094949913349581796916277294804764827691162752083113589802820176873849980713834505302754204342828049119970535316635186690981464992919906481511729680292882523856039445247096721153290946797131487886407737302101504527539794133067283464658075937892345170595940449390513349389528304314634940189417564828030155811505564678628593841289146393824770766735376171175205420775739491443126941973729273810234598664390695076836245394177990953332489695148660426858560876589611224974074839545845037765499770848586252843819779770467527717853815033314501903701597290433853197987377994102462319635281132554041309495743567437526728431816192855116477962234290828571562913391737000276100158531364012931652087000752349127158662195711335757319422141558881058935035718502096215507396418027262525175777658539531788652351872515788737780745188064667130468122662473399401117607870509732176208033491664153550436675344075405811586894101185020672379313341384615176138704555938332559997589260263474109473745498211661924493816305372629442628064034173459755987590929772241062236984405625466782709146827518530557385575732809533129974524272705733063031301127487939036191184541689383225316176890534070507342626614249454235798888205568275338940177604804107491333339794493578710185273941277573270399561105094469155085333549609926792887901022518840138835416413585599575546601033897048161727036932856771836276626086087425518089694437363590749161899007165642083024168966710422409043083711913170967284609456853834497821152851876897670513016351127256577195526121923932737539311942035720262611485787345984887650101424315364621915745789627822560587122864972432302261557364070522807543416057429615055413561654196583466653078204080409631547298828767449373855413223791103351479117882222223530538174614482039817699295709919935041825393770238753696881971691931351584540544695560490935515555771668941487350631742737990018313532823701937082085732498600302449801815216985526885293866217205944372609626269854158332527287109343656178644433606549989398598109826697632109825692324465758088710645099491138569413971541245851747822488076304511878241726375273783506083355954356086838041178967428554372080103592597939347127315418377892073024487886280828984078895894199943101871082876500462953693253601511887934020358866044739193744040595062128045878972091877081264706392277580216442753347810317141728052000940546566766745318903202465101560159581638401309145976919945121859635345097055225337813200295059108907113275032124345537812721254505269010201878502107163650243467262304749522187382361349298234711176686374095858181861383687584822345757986569656129113346524001350726312729039315498988993617989650311468745676278142362569210209574915866835190135942910645692137071471051425780223657206821567913347174168130067203622564628610571622089761692766884945231491595540826345359424529213687977207771816144032491413965724119696485472885742364882906801304919810599602669043784065539392205920327727146366181525082475938903087618142481944728357210057343613475895446471411825698121171846218770268151047792059553881350120828218451965578475187609543557710815949222635313600281938627410806548558388336032261745187038944139879663987808106655863376735817372666170896543536570820613941800049977655563291811470328229240386055112133371209987233891915539489774116689320091847586402241158642155590773345194924181528652113758241504533911759146795777826998406539061507257334425292407301347006912372190607930716349805422994438225970455276720944456177286155043549418043179539218047037265302367360424732686806784655768152491362460760593149884927046945174864982222824179756833006407866890871419197480055910587109435716052291061370934577333345143349550284415001789027552040688106206452845009697428896319089455421021573051607125410081841131467020755182487702400390597461735308419838232111589456465292386322754811518908216553333151247651283204977332166218075191085690886321265256316618908840867175833642362939654979839107995168239241106390145140537872594995451493244966560433234463580883871031220573844760450554014715365197911305411579950995972177714701856116322960208935881425932366043070105100590065010213567255652085514550173103801428178100959770225555005894974562242468659965481228801762508623873584159076335508152238187734172467099384352593526174343530054184948231930811146937192764637357801572527156708543405268911057895017445256676309104725988759057794786574410906077565890908203046995799050214329824131221778218783656875151149571250837263177353628985398976496739120999653823903208089632523238010014073977689194056029960751133145020002660002144662589632083481062170382633555667977270491378564206228487178070297257013091713872383655278945631570727789628160913171766093906661035151188680748571422778857070360559372157577661520895972408170322160364442559058280426304335415949945621059988856848753106339270165294293532511853160037805174297004148371575800090505823825550164655922472485190304125069542052424593105219313096680200028109847859139511021184621965938927788820084469830034765880677617336038172218933089764537095995906876829292008344809847159262591407582833459024620574096866302767152141521770552320317888947732501943239525141568398430885265090749666089185037231083554603061375090917987112218776416056691599566509187177218869861556740068431007909340723932334237974526072288664625777139157626995718408500476492214909705826250441386765769241714676529043196560972344776147455939455925258942946223155542090217138206758126044412694916708016086376860190466082029588171256072801760366759504705682077607522395663939507053128879073345664237576435388581774141676111748946813055361557938986254097657095830941690822310237862552329373813105230350884895499934341834220922238403110946610248513894753272984922876851399664518514064051438049611459762841270876112611590066143122582903595538133932680747075553098525681695477954989227215562814451983617629589258303414080234641251588382907188354675992257650535103342994808002208292430174327976255915542024411106530397189515478626066956010903473302730976270348601020243547006721926068836863587569652111558866310410326262048317838635999018662011361433773515968258438379201840668586438067941352030970198391547699057478607091216290905269875525428326182456220067229873377589418014862326423790513536691704484777805204785512346639032106070904234924793169352713883127640152388698913288906002597396759688949571241310200554394687900777987689354494814818693498055301848816515218482444354449772376449115976115533542640417788372214287107078630181011485188367672048732909281067747292985662214913803201373260025388452908183042246101908676517742713461567237189077090777973794534017154197949401185160095429044104754675576540469105834005088970140719726033307474632361574348423159177038750250319220244751799709306422045677266250168820244045286241645688312822656412529653154048444255959963412630141062525758605713075433260379474015841880775699501526174947647308988486629749223700732765243018873621752649423893653168921192503401513940801253767818362680395001620399701756207887120408994449212377169466421041116561417861352214002845304216610966454279247094532235979071736439500637822667720726866635176910697255724944129971636661113452764273740221073566064717538516193596584020194269746003117493866578399110209667563863271445647004627014176974984097838937077758968877868976338667144238982087658533393516333059171910734931651839976252810116852655435137426457501597935424692812201642266290649441709234512147657246376694570278057439608017299255708241177299267326415396389247667665852244713917166462346676846446629431992990827304921169967596174502332393219769114020417543420244275071336959736598682617792001237778369128813901003908947019572231537775775622420816300862403279750178998517662061265348147064616678513659920190734974158564663041887986865917847837429750195535802122054029197891280299469667689444939168408437387180899184404307834513529769377571429767126376728688345037007110565603938223699945329545741780816647218152402868167761015013094851820390092961821018511882677065599554601772233531829619754014375552806272610689983115985146102241074924813667069647019678613528720942447090270998507515420861495259248163536133109844881347174705701448353596132893000980791111825325364228896070520859559476106096707365077733963101977863615769747355104576141165522126346691658925461748088694971010957704482539050142111163185475828727594527527685275160463513808612645292160184159264413753150680145650205495531125242097122908890275735286282352362265955649511043232348940741441618629310560412248413633343085165688160392716317576741920909272211833546683260071350412636641949868363417537695474227185816792261341454144933497680988248426012948577038330252923249349000296001793360230791372981753058738756962510096777532145622272293572146801132497270139842234606141462197530591758054258523366000142403890335251030830642735091090709900345081238768167472139862592505860899679173123282742422350103052609188293603647333908511938791537658026781758607245202400057915356224043215314599821092106827261323069273298671733931621853343375820147254711576081699705343220689579559068037479908460059508343337910033004981750465947045825962575248714421988813986428330991416545774443612021724436604257753927149183303436318259617081339463292872830758838150171293461878446447804710900929313154464282496375754458617976776222191635937608854158375309887992333745763575760357729148429388748917006906346576642738326184124803467668350309289723589570696692524645898870701874636503393085989164170769983969950168232788066530574436732982857078999886204315389498244582752652308404668298100417735929335403207253181063720768360812806216971444169649046138124310063725804850940919588151671408502207670292978157703080036638941070224617928583248753413689587989155034932546190367276140157553710435891908832095984289647615832569659733676890281845514075281751984611273268141195180633878670471148258621096445888226848605975215461915470883423022932346558093546353619004337073763808050344658485072940798013593340242764925970434231659508654194832239727408344924296638808407514539901659171769105787733880953770107843542619467136732844553057140059722900655100358028744895483455403657007492878498999916275892324734261782277842705785789922423686116649843440893756073023442927281825613997324986984792866878117333817368924399442620175183951660801237123325767867839855920271878165107007853628693770605328356827341800943432753119127617319895245229017608185984984894333346041089774888629384943957782068570360521727637841660691914801951512872233628776029811071037348200795398818718850177605187730266468617471310185355441468728851552910693977557563041278836731246561118672083998767978313957143108146941784628619384167332617798267755347345509419995515590193718401268288462630032304166213719922469058852069786041586425763531426626281474213387425104878321143644841860134786451942801645019508729677461033915459622734492170640079513172772008169852828065835718904584435850397362001076033592574942512793552821471575301372622427954525618614780725763079405751573953129628181217643133237749530265089489476724744179289424009177031816914933983179672651650758050722070174809549499286268991144692021620790324411034969832703512075614548680991466447957000698061038552299572990450521374466467104007761958565152304230812078745933621930173709328595031886989545175392267495784940549868294632970879751346518029532959045508969683359388839301032142722655509361553567734595043078642048798388385160330755017551399716740659804448831126573008257101306180160864283116171228181646149005077266830391981730341004455967543044419842240442051395845517864323723228549504482372665979274361846369489844330463115418608817344834575381298636484777540769131417462193579421864426789631780903378472984681519221750410178828953593429709529398248323988915396686910953701473012226039516401378805615261158629095332850021054546764198816450346464321294958301878195842890466301143782935684876323458074177501561590984316588158995512405902454146655889818270175619596044008720395379815985699086585853019593208149961951156900571583212305101983992966826910828142763919430054878550821784670877542001054274748805663835573734079791839428687988868618489139857968197792823196637555562704852493716564663530718259336583286190900256213147122058715587905520266529243089629474447756902461643680512318088106399471364619546503036505402302201119930775533518387716615315048466250713975580333826952304941831268573074792862848344425175080983567841919409817791036987300367475343707054473654898199268975199457944302239948680107160594388598852243258189435298207485959066327974812210155293831388063793544123590857638981703120367257787572841876812010701288981457081730598868117534211648922947099783856197960179439504120603376546738746737119302256799934674929683551867585195510537107075898991860677350449659643734522654783602750366646169803401850786678395498044804357769787084632487918269430529850543925346043166019131584218640604596549482030038716776289563042870263055252230999043110829097826799439379119214799659914426805831262403554519793963963498135302460557391054643625360052068379390989316619489770366495587833011497694818323295597601339874068104479357544045943058643099879005252299423638733699272862688696821082737224195527605478446313558646834404668522517277419849591536463827781548895297536983976944631194862033195741823402442404712362978813563128129923850279729075368224830245668657700206718591263588432788882616986269990659609916255926939106905948648158496811742780728272598391315245709139529012242853927486827445985299727493472890321311735439344999587707746896780176502321320263179433375758863192148080653478835068072456191741534093121573483921588028089020885329652420421353062467441761811200859949947753003632519718245242930565189629169641787270501558003548623451568168719869822387511344814513502357194342169945198952730485247732019240258321165669605546672677672211783315269591618659167707659539666187319041205359856682374463882631559290923661118979258621202393924873213084151307538920916805528149247315428830398765009205580264417079213531087987851152232575672187317789189405663386535044152168130572438448332831944715509768840340053459315382812052894448882010153757103790029198390619479393520740809591643053586534512491895678288991427641290892811025923283967437627337214273815303163028913441882733071164486218832174076397310221559070767022854502590923058949822587122549202197918610515524975189640352917362350012041730596643046867533824936537430930720959926511768656009070866401021887110470274042183480706730855548647134452667974554764511076646113386896519287976578777628853353579454375128135089759562309224947503953711325063249616413498647795565552401139156094542668357790328574633624295783231251405036271329089312701845080532583693835707106320554537620556875975193917143315167919326608746492372015733401823519026854700240692624475584393006572477632499178392809434075395327225242116028901271695275793221486644434061472802479019886126542735158045269918583067507350062345649217333172624618333329775485743390040241160082414388709774591692424441111388010298232429921672620143090664460030093756248217786425205945297019769051697545151300423926459991575435951229407776872252976769231078697820930240600432803757676774615458052772717514862643726957554397478353738031514188633192756782147313515735292084567873944589767328185368014942968462531284298283319326018128641986408342456219709634311761204929149743392635898089165101181101120404921896147025745911628793099227262489838010661101257357847357503306438345169868412388232779139819160142642345109928119039261257784835776249002196066709657706327743247355709430362860919651453967610217156914288873273492532444299668024082877005651918406621805919301463927877256309338616102402410664527702165384632799958303265827144360498553455158664302699911857900635884674848521188531296841470127722036910652330989453623311701906555255710931713738171392679439177251644025924995271956603334722750275793603070676457454280009360559406224681702615314402628477540137869471535588757017515820285550166344936070132641296510974559262627084696697356059899007733885401927507367821803701643153643108822781933679619842062431118181287064425700921223465807592634324714409560060958629925522240490240556314832886627306339550604072339654397502113816332172972629556415051221186697661223115319127803430703789179994982665269802951777336708571857000933525715272196624118148118206434779928828931913517672052501972616448867617526023223981586389168951931350298043394515275820417089914596341661590093390125464852271742879007264566486239964738801262830017256567120114063944124200586526507229040034700156693909153692959311376724849525019454811501814006167298982978695149376499075914381338722885886654617708986294301377741611716283986438844066069522653848868794890136290134654880944180319078696392057082657335788948869426790729098057694308857200452478616433461698761069490379314188827199382320041694269431323035659089000637540348025379251309895934114431092164546054069179372086840365891966203958583607754597328733147958063099460928235133434007854433187040667597055974725543562577127151987074402006328082080656648694486470099445557279641112893701526440502018435527939168003165791834413295464296246782265129742899670835662246783343165820913713339080537300499375078440265649884166905948550964484073614442777524596029714593849738465247567615877029470276336176075550524782529897965882971116290796687616873705135641279709106845611967040085420681802396236542924801708903986656111141902723349348745586249243288034931096223461668545102768040470529931143661027647689796561120672555201766085548795633947509237213444421197114621143069771400279490547068687459547528687167586264852882973701377368455053680082402606380643550648808099377226249856067669619491977533253297923247707194689181048156661785219797391479362762809743114336403081278870193252469999072666995383055526111795236502714339041958316376874344975380737676610040732396196650653809432450305353914696470713814454258704312899703568223734651636444903019203754936110964372101542788267923820858349153907279893777274835875058469756344750748608831415738440664251644546026022969202352445474952484228086314417816511797749069932826382403050456790003032224414660638707962667830413385548728553709722602581681208534572923307689212471333709417033575081696850156933526201531755184982837905485123810586828700522071008536683736044661661029229495761849942073151931252427682514925310479605877956802171207651525488153380576749250331250355033662128835388209996616131986718919447170996931399157334567878569156599375151230807404317451268696559251043947408939220926595831318989815465771839417245423939896081291249435123551591131520586964291260958050750229821274053009202339477231307358222833223113054936013326892350579795397793233418372279489449688682468381649962291720215126501295036340154317962563756487160530059011814717886832189390830174669740751729746113882131289807619467631309793382164690377130023003317542752596665749059499505204439196656770201632686259882891676259382104435227979389312044868299693197761233436610188296724138782876936749281755891900411525086514767425708080792697912574198817338679556594221370528740111204497430002477743690610612049478100508039488616319759420759184798074088239370417376838819296089000269923318881449663605690250157840135725807199789318103814918559692756030274571818329980644298731997652865493811207772637173872400876818835396185332439433551391597979822113087101926186699690006677140691543800983798524951894116175570549640222235638252382714031927254404167505403030445559058372797350377054363109669875052286639042489210198250279231218759478379530846641153656326514118601646926626036612505499389885016604290958344298208325551398809211873697706052390277610670864377033531753964292607304624132338282033519905444336697016850482041217674331709735654079970802400946453081602000416206630706669365508708535934656589797838134187505771183054650999399466245770176865618381401721619775024949159190510494073092858113798235376278539289195987727613953869077055773005608512648456153903812720184382294306721592235087566153854477760005462845134585409775016447853774309759705552834016214174176261960739837858799735290462798346931903283785751811860919016022397540259423129473026149391452879166511631267956131651836959152413629032225707862589382833440530538313024581533497971372933280137137111178904550647649479428185829831815855250045402380894784488731641016037921955154359412922589385969742909883899455639963086473997505624192351041166478236060949986843702749015555654349641562299639322103965910021929411674088066474242086538196111414889402648438013880265738750493039973611581556948401597144358886144005254243563603053461073799767738791006908702052029171221720606328212811093917338147766478190804392714826058266438450107290390452847995146421340006731887935310894399865891528024969918084316404469340820708797324690506620984309793052208777782823369735853346624364028174441669779600246437380943084308111766237500098979570946270091462154285879069908520793008001596072708368999527869701766687121839559981477313578315484277394859933281911806232484529067584391502735235149532128425650792410504070240107296562323220041582795021333491883485046866911543919230652319579209370813634567196240538021565076081867739581371889228632875300336118828299618186381216887457178897952814225154539708025275379843723636486673434313058648588262347179892796397920054747695776015442097073553618186311665470236660240150920748429179234893452493996911527378458403666984067480321622924100542895157825011215114470402054246180251855074060595532701733620838611674555682365038925481881460222228429919293171485056979046787009515484588303505615075357422370749092756583474878064155699702862627997412375147909143130519176509165366440016099612410038666727881233664719463407121393973711252171864812499768504228169483504033593841926811130615460258163352287576914191123543628925949089201932815747349946820858431383309194924136137365433464213584709332115169978371959203104356724543840493025493577686769587771053501693224849627395228543042646096808007541133925134981330500213561035971048884932071905680849753208774684991004061015973716194700677950387933584581628280406414513958368046034448405102949834835193726251469451994698227397257716863135290155823674347816512623803312990066831343106677230167966219365187378999543705529802151454815374203386732413261936727810600783817075419850463261622308876051748952153893832479518089458474931302900416227596593913904343125196602379352881926026819546059374732830454997831207343174040878120180282346020376759895595017720797944677057506810867040952459456527610187331564925993686871366181768530983129032377700501910231215246189533328052893739445581496455575699048704917326096985799389448072759697254651758367893734076808582536871525682929989500837374809486390960437996946310578504351115368339960221481437603726973930369442156838745980274817842258589458961189985344561673050061382017746444565923532097154566962096348231762478449915332676395333804827324422449895967539636490288309440620186111150725609088133161268701268538409381624388410406342824124299943555486068148181574125273386274924004158988088686667021299946975074368802472784451835944186461748259811180870200532563419086715231819974936427195168133913673126907404431855732525865158522939224024449050080054175631813326454401602558309848335648600174105542605645664001491605223136659529897651935637827664993156697011051253024388137196705517241913795635062043968498904656225243309529428342975395675250579578587874460775660722777089727715409259892032813935045206854575666608550442500715027160335210755586861168928405399301109178249137604087893483080584415626897980148162301392167989356935694344564322767414660505510029183994591900880431450570963416214565688972522497006363528761175584878543985166612035870292750696734496185822586962746860718708562324392030198219901143947761920279333417214888186748234951900166378101753920845972592012245154173323125519136203849870222384007659198010345165423752744219335276363411586649227952411887656211920357480625227567470183503286024916704314513221602276422488400231478059078640083529354715096629216249807611181530547397562274007353665517851062875282594836921433362514844752077801043200382500191998460562444370640174550704687804627572923339991824436133893871426845135717027857160634717411096933901378385107450965278594192031168783710316351592212589553068330533388874087874051663150650946190186800494777357291403643288523484329981697845800024088421616992009478278955626698586207434947214167888078611786814950770646977661499243121275380805188564751156407334510767313641687625275673623605746014229401045038982739842891271922511720574883822843999497590327374781746835558749209362232624225653757038273576173855646554810423282976212492779683678970234293806392618820219007630777314604588153326796797186925435696774741810555499776608689403199488259056949098809545654651309395617232810902932749862582385626390151659297908732331108124354880296005580545090936810341727565265348806864647307690032430112695332440721801683804175793239023489076148100638718204786419717782363801234023938945206604587554807369200852933894077795677638295074250443269836996849470467584700584788118409580419795641833239286786705501608540642333522313601083344192693722872649028427254754634420410550420294648537160175562981149124016073837735661974390011385763846919170139863958703555420439541577019150722106278574556810227402303103205667877419905916018332702684938278974616636466610063416989191983678761455110074648014161048288775155968833038971924116114994819121525375104225267739452605730360246504974566984907269415517971151325973759839658300033898755109872876621799427967900301021561893747148672464145601188346223950679646686394172715584680312908343586600607410410103686666574105187661014927944452532547275691306477165771722201732450445298561858424525088509372737021344169787045918571231231199417137036244714276685921297163135372415288297655141562720915928656819592688101883535481557593746933411565230666950887214050135990730508459457267590034832433264542851800646986612338376595417935184492284853534656821544627009951417331258035928677939300789304701750538365860088638808295597554575721294235809717783701618415402808872816144856867018446502346822474780201106908564563393442262393855644071582067112921131740143994294479084977245594040209407744506198959231101418709528849367500659905597643000321237729383835934588084445701051479280104197949927534110838005495413016971735077872151420182600997736709273918863836354820935479111056217495888937126254138345277052086615702551308454844850784394850186017046848703614749273195047382105035905707634088714831176917643958671759694369519241216545900990243751139089866270139522102092651457459844795784031204435036418048824319849675309885566001483599756482678291653014764867927623296913277007179933309819196909661737715894617042085380452240668369251250145601982513532092500196523322210646307401101490830537226258319890149083029432470895659416020537993301528330035444462093427895107667010725669258817570201627427117463584024019460191510610132994125131109001458021674979694918884774831439404242878604609893334998375644277830629737564334964651074689245540780199645282062891411944407834629542802515208682967999039400965342211895676947959755751791103724491911050909891672086926820359453472387198723741532813274378876695947721839328196954571741597335486034040517685390832065842709368701958978960168721915822376092141303357905926106728935925675646702054041643951352002176635606983291876351496434144496652690744122502009661420712341412505897977032324829501711453423663502663392906087517938868412037387017623844387533920824769384530777132365969113785751826476588155498960009965611506581907745580357816333090996765452769825379016590093754089485360969288565813144555939925530375115770195752858698921173454296507012772293925770917611007824741789688116852874996783080443064125994318763239631892566087515797992968258090045167697542267109810283727544765919301153001591036001709994037252889552036727120981130339724707384088816711173375197673182173207992181968491781450928429218590483846688838631970171058976142274263332428325183591706818228617191515758524641547901284857488031815124163728651050647346173227906624818744511456818574119323612707132582464700564958586510930815962964829352720707142115164825338897779625273341924581013220509788726012588890498697377014503278976300560274147125071268608511087700427091738290103790831569073534456504963419556795574046196182138080756318321110049617713825634659464743006311088423370200871911147122948347246387119509137322812851546417148877107292886583800112565127785617364208352148294870388982491146908668793258912517102008987122881087225824233338093433175610852753776431675866449582550845428474196911226828355651837118496720553742025635218969233395176666987051939350700720267698614519524852216880539357470321372561022039441228775574549196013840714986650623084116175511809564773675449860601583547687455148418583512075218404807663474534111585040690574790542011195697495307523592974410423821986153631873262674148366223593488124955733937854625742594445388979678078942763985727594993843791837786401104973194226656808089363855377992597465253477876611095895834278736920178789765716754991819221857585634228153116262651829401341421910222604095013045727570125547436148934990830613549074334602535615189459086219279664122231918508111316585728834038679564580157087648888009277528050347004504285844340152198371398955499973313665468914418243050443007840848012868083217542236257658259941742132814522804255491077016088204057951828526824774872398436991720725163638236449439096900539509581883897148148881555844411589859210886245573069607473572573045354716417492365743061389574693270573660700198729427382461668839600401286724823914700523890959094637047413617685947926866933308221022926714951829442709453421713586750957217822823435487007775115861345589658602187444374478187516228654826028994308770661314129587342456049069182958660359917376618501266468087291898734163009686871250344511859491197450302759289457410832446537614635327779007053449480477283005350504542580986779251891667231156117450690429645538163064946801894288647645926337143530073026846023965577893870062087327102657303518231516890987146502376580653077673252514683983414372837171071802235088764642518574333855050275595101211196791014918110888758718039460791091680020613452592505516720977101421025881001248789755066181968045292264433888241384512381346621563404130274760128211163692855405599384616070113789156825929824636032508252193466876449108244320072979501292060336367726796664947140619842463860179943584023454336247864762657505745704493480640626658173618021585471493972817804251001827177841015575720234391329671962424280698951398580648385944606117445428032285019040279556022868955874828756045436928177173775139108905900646817259593349094984488263613328724675242348584763950298068453000192416753798251812349179294698136207324865017962865591335426228097298044096567035357057727909305225031533510511173637784165192735715425252719083791596637441082723381850090535703766453381947872855179276667019029287472120565272448224593839826333783134255488726917089880565026383733886488484975318966533155485647058413561903663554531718791301400899434074605731751762785322473045476202188810315498467925244160430439626611845593839556809663667811320501260340983026071535330529521798301857756635832223168886876071218192362970287936025194997175174307572203232979240264032206770409450866472506878544946622591014894535665359249004432392457676599566717292712551910452768045841644271520471498280502773260329855619052973119953622795724726393870198999929739629418774152192437633116481545697657013327980175260121138107319976298599227305478154060344604982351056105795028714989969935931842225217103018374705209940261178942021690658220029615623984610788411122902432388357091854263787458655187952257347151417502838454320006150000485929696508783339448387577401990146619811701626407389096653435224912105996291448277198096630661059702144410076160176040837645870542110132439220080833502494289518122316323647201327848234707031994865822383327785428245997419581802873904480130497208403902706069821281505351346077379380716722639273799136702330561180075035938908670600306580227470606379669227359420475833343631684483424416405193004870208968698775620626474455550322519538219939913852082591956358284121943317711166815454428400541040130907112396228340776917394336035419923998963362357347615390990919839859530359112082442221137265576376079696328519377167325740849140868293722871452900082445486169904049119425401463104855107180461345613315357238015381476441904521434358256124942217703725149550627756390069256335347081114287420721838642756241039733419208542162436357102941014601341844417329952232559524091028499964530729613819699572354103011999340622319615313633836281229527390688637771924838726302191906399868662420101873548106562148001543091520673190101670409583199669420127235616496247731890747293337516427395747381577627036096418590615727685447500198129861546598449436039807505233705159549416237657858984411626389275935856294542101405487163433192083279742195267647135024189693411892433757940114697732896123531912334181242252025413459238560984895878156997583945810663089045592758417284295138779843834004643627648796425752060699635246386961278217581241577176788414553932955940845714804150553251755071572502486233572643208611802877059240560866304517454788985852414664733148392565307826674533892931544398008920503980410799129961362169414514561726714328775726119785848840189659669485645962357557902524710426419006156057969565101735122526833864428113206036880805352704627939039360631172209718149227325085339575605358926299972700623729872756614476299614209792354427141050863127357768704806426281951165126731572833122987042332500049260111721598094259319230683679921619171547509770209348862449318791521870388982599384115627872401690146764628383244566548050592640354549999887384586787473525265648769472707165089063440675546275548221079853447528948444019491562720838900327516582741127582267930652563722650487425077075550184110437208120707702578371199196974851698345423500208638343919643030050778395943911340927371196078339989692844030165292496448364754891506737224871340394305935650226218507453415898070156785477090177079017316207055759490685224491438408568685240100413837113703019369779491664660668515400869730543974793162110716882562445274116615378296079489710913724096394809392132889016855357901079685711626343151260696026031956565725781954995912459389226049338944220776003147033960486378559049863470261565301165084643684588687869395602083076934570924080459492593806553855015934046672622933676274046701675322108216070477117756399011269433392074200095504251522070445442094781774998937354492559655331863956501298456407455137923234215182675137558875223940854319604697304813456688143755351659883707360904815101106701917662220739093120774173836017475363231852289490502536096366006896803111238172154236104312129189866497951413488299213857908581069903420002210879598664447846292305853360213529709875914022651632088856635041196420876694241553715991528560629273441499126669553591692080058626916578980461043953650679703027191236220609980156892738488175559690442524598491830901176536058371135225198182703277161079503288437046316281080423330892865963033282312206914800664475940753683434622378359838118556610861940136643492689093097064981156587723981062538069836198165822195464259775384617716657453024835247726115985093918279457690552545129928893408093339998278810959369714926649274957797694265914637226824752651052904365915812077529677001499707334421662882621392565138801610131983368890653550496152297770029144550944229107488468631070939861793926822010685947758026839811199418719845149809463814927331724805064424053467578232282891762623980025489655573629982398655014202991289121626267745883268902975901531238355149864635060342151439327476067632459615818119522228795172048012307276456667464029249176870845440308224072697221196451692315258891762301747641505322280183413726669469224806019211732041089499347888907086371847718556624179959535312422464173922050782262742978799211091093895638076761226317432176981078808468738979368885279296540463081399924314577039961600883774132022077740112686862415401045635277994404221668064001749909204383246378523512043774012972967527408494642786042558865819336376412492083533497702656427880223067613377105727954691649663760523585683933934477008639131319313570130858765901758540803833492831859606421041655809240048042435021879272056423866073819941847850633823122867236032520233916455108133883487356116836255047231952953366980863449533413436755745285435693565479741004862276047020996813544756891660520214333566822070096352138100613816694151541548708055122255286264676509183804770563897791013044988913611979292660051631718959178943197793112228977121551247822619017131150450977775930467058212703223166369440285298073062121077167731237680813124164518045338664937159719503793368346946725960834154666036566030334483272187489934589248765803919923872191681130116369609608941540952551735593405865585333885198919222099875121626822630524474756402723975768698480766092364734676757690731086321877114228447977697820188592275689708000241869155021538056783351888981667406163615024774039344979276985174504822900387193930460811163752222620180210311276513212162351734342404964739038788353899618737212128403289862797896168083055325575428271710602160041212932066901338311948526790145580112148516086220848649847821688217489020168587464258647011370483949711409845786975535109363299343497695911271548552595522932060963474455425873521278786428357662755644425450104479181971721552755414541317991853417990929964708578505350970708673181260513161116554265146688533654632432631646582963068881203018713662983137171078853491084749918932745630799931657525052677121800644897641908676100930524387573125857630531503778033732683932165646343124259503693787216214820828463097728811232508647619658176554907496136827561396369398903039802551900159204958003231126513760314755839773651485804616201663008310820668701982070035746807131592676764928808238699459884843799694033729252721978358282604380044113565195407007779531524220031642414143690831489467545182351218017800977264309265977513583854347524952324612596424650888200737266763954995746771198223865879541484512804339615608616272024624253630576488423336151244775649549980998678944975701476685804290755649690737924533639444491705666743643374511433738514617412645194828222977957145071002127964911540324420680086072895230353347523098761369608329922631395512138108986432168437498341886375581163677111806018110972220170541014965910778145083895648267616463408242245872129912430183859062819713656955640969706899229810707157540344038923428135855440458273805362824926905378956237259602174010747541223968427642633789990082441769145986262071374381485290571678251168003995843569981803047095417921107861584674488960290230329641900877852027362933906245630523575641911399732924162738100838672586372927351252718505075958370939744032596748792791325424943457832484483335268299417684241487656672477338452386967405201193604116545647644497318229362228412953982873313359889625214389261355423579339236188302112354886054082713476141426849130634121032571375872745217710609212194724854569843634392585097861662784150822489505340825202562144592426952797510818992967179985825828708210733542755943540528529885452568581588613630088887448101432153970194810878188124779000987446774054674575278947001294646034105543762451968581281601087748261140605769871244825065024913509746706020896593936242388651098599164159817823815193441112408601631608068521316687233604558837967772909994419070257360385859740948975853251745361033976220378518057474495711221600796001031691554825570003167040409960995421940221155159108994876771188633467624278455144658782738214414791143344526685517283661370183895141054520973147524176355034346619290605856850391805642574080891394285658760876975967349368790708662001916910619855282238288853819684947698040435598401209852391886110738751714161387774195857327164446086161270028734333728702580473928863459993822499168342875677359665659185475478550130004043218080919362758802019130768407885128463209031234787250666242543597638243758933971185039404501659509147885144727389695516722403133645600946451613403957134596662299049997445218204542016528771682614266406442140029512784120371960591968066695839670297301793388980707074617980529965376176531985317790106695640222512047211142498759922130895725756859896884510816805352355817985527942094956538858929911665624118519447296518478984052576739967796525171729098543900777750412975561614206045112737899597415578686873941720294599723318262370947391878039878598758288253810683670637870799704151409478343413550264647628188787501469535727745778606464356792038026156575958451207297711771985364886342633124897346086663757981639652780711339606115330812180571077875332249584548425849139758649159478656556394077109340866369240902033843701031334484735845105307606769801587457598655080083293254056779193315346562084380509710396086656883142760588625258432001561254775107702667038850993090304183548745652285135941781238651132415788963758538208725763184293388965594466241593294817987812314998299127960430000341028417910404734143001809304966686145928169374777493140432464417562398848751999781118198553503132516269778834202619223278065729387196606243398447915896228879147641628246827968253359506301103225529343375327688762789349780464802434982039718165865856974621676333164830370664497731483737135770632228173873277505971612803478306627808665598537072100274629589640276081665143446116208349077244681081846735779600037097749975045450508786787759448872523123760503525743979050939820848484822558093351207237280533198359120543946469990386554953629155025253152907867447749231616314077880954640432797072831298379723253303698462257354270002531193647966400364744336527852157726294664822059726723261429090782515116203598895641812564016857991583511868340456769955670935663936324345737343176588716906101416484800163624566264813714766688040891765921581233665964171637833203904454941388344294099009913196050784891109816168099528474186705962900593615269719743427407168576608196879073873914870614357941575246165568058125111195152100941868877599283956527964579202342605839139091924800250969296831943645396866781235651022571663029112581577796406992821542887738565933375107415308957964078954317640173331162642940747105392588760228115433497080513937235923141469651006408262412751268721413229979674596689346648888281299654623508633397184578802386741826788078034500082516703127768679874149990269595063576050434632969840827299425221392012361248507484297457270055310245769066975638814698559498216495246245674704039265748575946355760403481807177701291189465361500470206050117337775736907409240651859945043709301895932555372216021790932422579287173237894687435962705921997845670560135023111510769329322778534706324807423949644468121819502984736691452013766718441389462872827538225983250968132336667972427401525748628051472121964756052835423395826007342969582468999017404712636537940863107737403923426538153067324633133946289640146489063792910654452553494942473852390823243916958486914455462012272793192572060863066060393765027309839236939770487601466457183732043980478188780318443422734321217652843404763100567297595991248566040619296315243141379033426483512235268299046694862444797548128442871093951987768173194862647121812705595653287206940405248910319995473949688207465668108186202776367834048376562541817005853793318199889928774830971643682490311509914904836094450208969179693530452848020323581734960932800891494408505074070369314849289263762929725698513693112010472848776517962588267720092010568739784334561513447305188382177015475318630953305080528607121630646039339189773205084846123797423482765040360606006660569042794355919112965212488077302745689415900690353115685534567219326888179725801702818244245530313953863908430230327081970040475020010108925756973750393484939872629460110458438827758118998751559439588720879011785623070476978312402543816269784203990537117452764164406337769192641468244484225614208990714158056694971876260447053548926462369349888642207772756951141886802311626450602915182286028246345720204763178336457722863635669775536573334805001403866125144486118551280718678881019046457732489896060250701217702424912252161564003934968264427708196427631383703088299695100196550064957625004811986863421154863766328688498507151177551767024842726426245159358678616255601528393643986940164417727065378256341114404850466023862009185261747955306919839146355430804919143082798628389520125807377789639233517796472880039012754702562677602032162835451836996164508659940401882648694642510313789929278539699849139768896894907686503089037157327605984392276078122687376786250240350484145609087292718345095607793233259662636660743742872602815077015365149805901415258971596223976313870909429865107109173886671461588364119389381071045297446336911964573157487083850863573802895327049244867305997878126717860600713588933034653629370419690762981536392713586389323214196698799178213384304290284025768555839475569595541696563894641632596547911724911842368079361042373362069588106163295209383844380904714951555323242861723103237604785734187013573188858586650042935100538002541777032111400567948866189687680899169980689430824568676660745658067755466441659709721605799434092275262068595465722983427828090250563156031274831858373642726625300286202628722436465394166139964928343795017376915989121165428997571033321528342659489124657536825522290126717195240915556907340062362489056178874982315417813045051619662366551883852018982752902385591184548203876776284065389822943526449080169061506081843759368689017560287447102779977267237350259483748292897764715908561188450031401954913107101162905399589529250335398088212547363983562545819803503218623464864107044902521050434763876544322511387247527625044928162047815419847197141249494385666760444670348358404690859895782512146591311321160850796350335438788144081525252447590706136167200995610910084224449830400494296650578007156740889209069120582109848518587781269712145066867680767009740917330664134237586994768589179473618211162814064537809427581554745332072417842537546241886694805025065678540517479452384500841536100511580185767196713802815008673992542855828943731781824650148173888543376045742946134248798234431510538272988945230499941266345508858504225448861031878695591435748893394588482062220654505700779589056519469088251008503855952611235628434151026004636441154189344589513361494365579191348447138724987380349631463968274055619375499251398925769354420317310005620507716190394063997431684982689737777699341618547448008398774014721095454730404841182987064944429560326096503693828222491430064965346108487467442323789660398606287673793569785969857632713437841877421451032541909067329346693591081704505152701388976343288453263424175819306300314352592470044507528982381272846121286748811440012697828776659906489017603029504734868415236105177708050837552451773598469935041081018835099367439460186723299106488247453382003424677838355649053877701377470073037571427356102926055690088811701853708297981348830235322176460029249739092038101183834770936450110532516142289626422248255968537999184920496996801423749656481719133267540007386656426799673728321491744750324355072633802494015268666374575546573506244145220005080768007902459723023679682013907351742507757481240892134833372608082004149079104347611476899361166449364494936139763396119892817628360160073862359308155503226546078613054691436939869505582869148470214543279441252109500460665643075511521980062671092524178316174363985147076031553263699574742167885835850862936526197342073922826502610014397808463290703245880223626673477827097943346573341948271773080787022362890483143187692985206712271405433927283535696572194478195618719008662041382704864411804275688971466234394250501252567564917679047348888086372112714250662166591325205958310960801079638207755343215286144248074844813202188176878129780225543892434687555336158502059203918793887215295117766239890335776345422433517871872000165611237049984645505545770953680190867330228645074257421882043609434388293573365108573626791036496074705457608675075544635481257846310356798127184935835733162479222332272292242141491416458769155053392411826682787917574255556527325124570220384119519460022218450664453483837233560788703830310099919194846206310476509090736376336122322342290512303764414158913610629801453141804036276471386047889471605280182665716952587839671354109497755499286348056945444429570036923018055353018443965129100921217693785774306153931641509023940831513671751866829027891218758484939353981645510727966132000428192760679849576052153888353168015231244543299401301761126053631953927652219590059487961390101635931837574108185619693103957416863340109014196699554863734693884592693509252548880732521751362673315711561513998246194521948065856309955858075601713582093680809989434842854948261825091364443346790294697213680839481766177654180097756277219976360906863355023048194910471233443819749061567153445005326955983071972881266622107076219997287269783763231074667773715567415627862183820009337569374005067384951363473418164287346188660049768440427224185264819537022614803029685377274393614467197532571538977907237512251298668566144716967516555716197809247006666749430673028150375793933528702600368472422962777058668185282724962166435956301642496808863321765613512898036749750436574701462379527825624933778131219669732181719705737774247570875080795611512498760332446341283681747220406832628123182449740374886552291983658350794527222872095140499503136413648038768305859140817151036805589908618139851786640147823415825728941792738330537034075877352141663248342176837560577087030265644436677799428591667999645368220646833293746327940142386968026784493964456196473598180492695134833901692777746833189114027383308992219705322182269965495072681299338217281694792953506375011350245835379842636953696388961282402424412992439113350806578121730057696266799943641208528385845628672377090601649767654636156880050393285625447811569124171434309873754255053903343797097176785890587709644990170034848576744837036044412739840493041093506474447515480774463715737892224432063430083139662690680575640934226952266119977049653825565455614932965630657266045716385259054590980949700329244037155308694947818377367555604569448739528661289429613958138555122917019439409269617517770355892700435797467051109424338259678854665670172890904141611520675658706104368247483207953621680229247300477997967192681271785462932714756668491230113716148265361912854705273009504620108901158031839863651052117768030664875760876374236129689405899608282159721127420104189263102968556312058697222747509698176523775664042659587828498183359807550373895389022312439352746858114271519519839469309920776436745814570879313764844523862999215046098795295707325695552452607493552248477369612246612240213176456303316211055926224498755066610836852816974765369097120803715679797117126944392784081579366710693597008284035902213843444773892417835245747453518270105161768693124886563174335475932175383642530577683361133424937889727594286348228190503742112155332050028637746832321896609611624937279066829570786442319446815793513830889561867564231268464998476527475809580840005611520685158269903318729875738920005686267434395289003472055134768426917330257927745401828124920069773106336091301111391028565109485645000711194977697059316283428969425848456115325705527507871484194459436982201587043373975217248730196389779011943507594920898260368078711919390329388187187917043186674720134730174452710132655147997282000342456402586605509037652114614291738279394364242539760355062827220942862860087212349216182291315814033700881817887341786521423577336120714825799046239710353233345076281989002746708441088134177748203145331752805789051708495110320211807701287277212746397240541875129701914201194022447802296893935898403339482548339345252818890783434462297103585840038134074113628801174147389230778808271841780153816982545028681970059313980443480676428027271176096142014974672580591416325414693480180123033273927003609122343072607566579994719431078225071366023625803589026038069198919651088972442573513926052169407058859534344921969534463353564889097468657020303257963663241561084875958728231509119637228094172096406241515014245321451140910003215999218129345792174871042655532644053279427204518863101477166547887601002806373337157342820249818559847905939346346744510123148802934399677088347465345959633394600375970330730704660062310614438026112170008236228776782972146603473950942418280096640290019736012964459787302833215757678851069168382826203295266830465947321775833767841758710565485360673729552185662193103488946821549419253427538058937677338215992312943191433190630303496484385611299611390028180782456406756388284556285075623813977027875604664451884949022244789051197655243951027639238259411403847637497953626941131256331311984703616352291578251382571422250271431969476135339840362505441979673660344443681491059853790902203037857592759227320166412278144083932772459215599261556804692217443919675687406798959091262424517549948201419147550600350514514505737119311368716442105332917483598523223084733613360860388721831127868303841994971104673269870028158121538316011868761268250944439996325203756513924758948022960516454084704456428331575645506346404282316508313471501301260717061081720098339324257624290885395739034716084460762035961279421432323186916995739795220417276968742111388544946603315672607947285232982265391967897989424424142347190835801107096995900666337988997402018949695830166916400565954397258959151712595285989464892869227521121604061978467739626349986391355718306302798084980515845722082544553236013426284595481922524750611752547630767300197172574032460492278811617639794533199048987916817896172748501202019608417853160037198465530090496227455642060126475885915776595259922933648952523144905646887413588545790870282975890132634746271829005634067748428154742060592734308386173178786646711768450329144189354159143302813299797839903591755060360264060919201493193899610617317417691661486364599642111216115914364077161104358751466157199837419125317600557889820149412057220454365365248458551337523897610408979345147763139101209576396080091927020251920292326197103470814337099251451899961033500400896708038182822136555758721177796666170229265085472648107152221120581301394185193608647990781370308148268375401382281353989166948230153246835563317705193899207986694228438049295720213017330180408249664988900427813446258864737117728341889613359634825713940792560364929864911290588186768301069869477106147831410327375538542535575085569405787656368498793665592636612973594465907717008418451903337120988001946965421980821147434902688848977535411926224291776717560658621964574669711542773929040467826059334078162024343239582602435705932153048077887243938913162319650792256786350867608103340377497468422531102256035494187738304589249162655640129936095911047795872101555959428492764366188951412076389388849316355145643974907954150701490960218587697657203548244668449117722557576836921921142644203830015536455255858640723309099192962294522915770030499179886484928964053337925595191601647328521834098813957819892735338213368600407148327422994609861321299852016550462111932200870679771357642244087512748486695978942870081794001181253337132721029988732140411646143128128265215070542593639107106517606826502522859862403047045309029258924002855863139780746180217785139087228593133025991761496486012252087664204042164998363642814427790413924013214874769851850663440167043366030192847739371663504122639357154503432391683386845005081459878714705300422481191351270997905620612718087847230026756310951420041897750330173189598564152314868737400669584340344030526348588494158624062850480787976666463840722199169355572441585351679750079919579139971552411635899817728221892205910318546864961430283042330657907154307050725465924832908480468598930799631843207715099700283732956201640593261300522862660491794899453764999768125364755429383451746718866879483327107339083299808273772763981282893585717046512324015356367482160451829589996059562193836976993212738920022107634970403540443900056265463283195803183576021975570329910625282228366630067151697939532845057792374210523418506109427051508963507883509895918716369892908771592853568505331578388407425048175551355084154345011331403505040617572476976781712321495522873437427647972752123110355864038320247766236969771658249197747515100260062864212585478179056082222570108305126128608819909350307678768229408419760429724411479364210016395883038296003754620656638932340063601230538796890475425607199012254546240458100653727044276765145940457963307040434763503427653279183979969567949824413460290021007630428008579836941011061146811683510397916523732163869777794835046133941369380130767022010404468315770303841327058129295052547745916600804639470943024421007951038785908693471196429695309586716962889947224618581971392661827458029660141439770744978054710008211205257230844726732193590736652961391024773566966994604845784722252665955873753378499657164287889589403325334289894209906354149578151297849734091269120222799048279074073896098284146437064325931648986205367448141738318923751823385202112380117260759526323498469925498396113463386237197313237274144305961596303292800750908784960896647045789324862575594134922376624907626971828009200467195535443545126635457219006088931849177219197206093884714241440963329666797725475761290891999740482019467863958538083777221754895546816309587023692887110603512462731762821446779755308813295214108662712202807875603137498734634246923482188386177045129944554626617850865948129336462480636576382273448703042667142124987917313031034664301374159674928157017348823165178866170862275354929029730899058330921656933425488688799068704035203219686957268970852351253948947651296884548556161226528833538500656364356090732168040266399845801896202248925496306105518975990822371504639986268433852946923275484974759428294923133975251527385328797155688298974109089053378435647025442780640263752336729145591072035892364933581721957667257195605322670114761639510674087374104561438337117869428854580448772599690898098448818531407996471679460485447539140319400341541835611763287397830671421732224452312817548851779876538649208150225049975980430934066362196201350093186699134148982828976844735879339107780555884518054998390205141586812031154217986569379621660201861066424652607411183228979190817318274409881824274263177595426079745692787900024862979296894449976203393993033293917553260209970508371841748048199385579702588932626057130142410282464730528840959894769668566491574150326682711855583363803858050644088054722314133148114139223118280577196409568807618556697211004021222419756075026170323900582696739234443125919444573577462790567679605506654980274534665835292403129882565749580219039043800743942098838784696756604809312266045662131042992517422683512894983712706762281435143220635480557738035573496724189087543132621321869854448478934255983835214946249932279471544781029723430794719588691415896866720218954572219865869078909292236932740549665202917674494338147303030071786624271488043425478457381930790251620341703756140151105202133632463389655784331181355033678392868031694338065828229042707426081220007370786463647392778556294724273773667516211780572147884026084915164041336845101181300136860492702907308764994754023261479139596975933686269425596264437626313551519926537358139055829339156627006176254436421551913736783876245373384416154621158956135384349866866886467874341538529180525746564075266279502618287897685668536072847560284946481087598079912204238244075187360287406775329359682514453424156570962773240628769766562480543176869579223313882212970564697990055260996878943656229847525250540381427554927540069906396846660534368004717391905392136279524014741257766799400823902109789959554017991891553275686627006533475874516242339058147787513218732847232702467914483292743080058650434036815535319653498211192696774697290668859817599191835616984710668717073808403889132917941541151765049845520055549886922444356372001018800560438231785706101410979277313633903858695250504426127002275107699128108061972399399791237724058717149139509252689198037301363218879279292017871924167126546380698462932864146791979180891928120309114623197028784660578441782585259719843843250100367614286752508620154362096077465167774125698736056589205300585218878582481911277421655813399777000728214012327039323086190552377494963953955871690567073788209557674069920531038837467589988940261108972747176552906681489763465907255693272472503726245891487609463732982217254744624233455473640994165922888803164404026301781264998890838013388430190111892464487351689926817876862760859238633484166447750030343061682643151012486824115714322710408029345552811188039451707876712167396376381947584524426179827847617332466955793613970437730115037522159320223451416388275458275002351197538129554634755758470628712098572055180543006393315456319205243179064897052620885063224242839325626363134114615037897806113065993915041371368745738348334594698946833312525994617061709616639281895297747868397979191481812423547570128039564089294883923262106373051008052867246528983635822512602674472653399659216260510788011811514230865358088391455779426286452591539728979202349159489197998988540022172586754205092729290181830559889799259327385671566619521802821558837783353701046252264503882201872646997016362909202609584902771891856463047639229012058519269909300322008556775771680885195500553064871468286912331911877046080569929107766679762391285118532032658501324473814731345838614909732009788061749206400062978202135502002451831931576484604982054367060901445814430071926013412521170055211817655809794278332904268533373569698691840428513132831594392967592884597587857236545326707237001096433845308068927298043870669067510835525538471771493863408381686790024574369125016727015528675891987724343806250905541230758498484264040608532992554686159202380729166162715730726288895732789749919604984687670856421966056864179874128660354042099929338661754038365227873612453823268297289521538792566992810177707216202041545418753387602879861237545839509383359253508805643755449009940315922763980128807198416126621253631120655577281994558326716269722840735869361468156389225993709931802091717695212381222390694550419594826901212963487380092904958087651512989484343554681339064417799681678974408546780802196506517934149829296965221118225251029899189395110798117066952710021025837891740468325667397481817126682283402377814192747924540990308322306204270025290514543643901169173679538925981959756458600270165397987993343079472085363100887206497124782108392353691148835965051466691978446480512719495690447759228829180205839913077778429608313470325256675536044039810475034576531878968607182334670866632398193172521102714967262477111164853323281274448831160801339161016020831439848585666989700421586201723621234417763317770608913136838777217723968569774834892083231788674539171335516112478383353994952771471099728723249634330433706002517006235685179011080649438489833380455399540811917004286637156343938800968413415491540225253872372977968411037047066520288994105598021960908755142646047647798667409233603451177166494520068416136043858339626319472923371601705948570960595540048702149156727453933989708437594024647134840342868654709058996782275043274020844881644516688725373336406447057231390078164888259415104885204232414725144325233592048264044013848368962264712106200378676412448242057799044991860136324932667601634876942837651770350666910057383612271415404970306589812366135604055148856783716682105963415286364964384358461198402706209075999753254169941278443254189425804999685690197166273912718614212265827444903109160060946568101329790926122770668578832509684622496996173002335385885763586050927234816264569019411400253604490503025111535388141014107354131652020885496509142996017097101264514102554379963791242122335805536525559784779514137136808200185726200351906603446864446343725394868465430340725740536646812462395566074634260241790140235350168432906457724379909303419185467138621367304362454252547211894088882282278808787655801441033368384525526624389626624153992101774503023791157071880697818390509038755268535421083321389606843787952653467429356457293055441148166343705723523708364977329109375589970835234742561293656495377911596317276606727592444710289205501428866382201577673606972451586171317670666831981594076313333892349529529138319134117219690980276555899216083827141076021970444923290759768526911214128552463510681797975993362494143181114543044543669487959779002792498678293905644484955177347738979383958441080333280038191264380970800975433566895656721023137155215627630136643251944071767256862078082916609527265067985391833854197945654419378337687206057126320574927380295936036768631009642512682133146054747853031459244961434014211037441919602299865615271505041504643472113086622666406606621538118200994900909112446345903979556443210087499028440364742147121227293814241018259241698187577934402367343048187391265683666387836583142705508809558241329331728257494998650214354841996531282129242833505190703320194762586136512230341551209392733725282441076680188875253911112008666640451364504345201438364919287189551072694197023817586876356935474577653081767041630138808914352133502547725335701210217927137354052388250846668020248243199383966157548509982397848709908642385718229766552221841016569325540993270298020590758351801316347655600314264158471554792935450372802609518658366307056213752248507740015526791607336001816420327160146817549656096671207423652475684211727597501917654905775015007359715490650140425403808307420908234830205138955131163417689042753148256959927481342597955795287932203212894053907968761341839182702081824646967685167764717211875383233870817624480836120970879815816781867617538995905244630140367895208173157566112868031253259586912563067535398436104556429315929892066972364117406610215686226067608780056686706338930121801025940799481462950100984735255788860838490402620996395729263889852351393218235553386781837599743099675888754962151711519245765178775073131135898528549098405984372162313301983414823018357091395932799403633746480301395262259860286746326365675009050346456191220755023983917780983982685076833873430233195965412591778509830846898286883500079649595275094333305718858463160485741846583196608983373612341981544259810722524201432766208600823209918708485592857696154735668149685056621773010227180811209083527695844379073803895715688438761341372225675425308506579267798838720192997388143692429058106431325436969556752051797507460587081992369423588623694782231413963278472064291348627276157072874067006365203107721596122933436055393156264327335692156136194644309293221000091774724796482370226760817624675481164681608074984837460077663955149953152123795524602856492176765436362121975173870309498816657445092631098806457390529467383946852879499384441813271692074738091484316105246216707584844841399612584298858858977339504392200365399427551236716130756876345448887940887549393474547434389547460947987990710579689678104585851976632298418445660861986213261168368061931375866840392824497023326188040277521879215778735949454882125205353539948343216750288534109994845561894343429717789183347907248306397605955835887904316835593832212753145619288330293679365372578912307836924401560353933031250810232488058725452324826885831999965574254410878912334491265349498975800791944847674514001308707052744377294507040302973485029583664301656596668443649621382127888194335063144505515734775387505707855731000987170407992132133926032354319150763389539895005157127680851306932958189009453822159329987431002426972546535393046876240991327172091110789404383835919944187219806562864927273241081567162787063997074731293996142489661486562468102815357835196520339375994127211808442688227497671179917183431673075978151766615696593712583020117789813998772002753119760458222135522638248702426651516189050300271712439753313966620878398065838605356630565400967006728388542865935930786467969768024825002296924357440629922746459518029698355851821210881425189065104568832007531070864388092777346918160705729083743699822904025093950690761012118874480478316428447006354993382630879226126038660538896803434182701786475808478689954464833689474361341506752314381366422573177434776953722663380653927011141662062194674454750252360326103686059241070781237305496864034116321942527585386717799102138832726121026952387291625244560413849068557232377602803311058199021367533223327575856156880651095941105601449624863519725865538481346238221475651579929651770396014356248658199134547053068968636076617866529315033701039068376944467571242268040345290465955533612904340644939656731511921586128374628383402313919953886371563281367128265652024125071199233358142534689664776972671910964277458909866353060804970010321475127897992522172896933683791444145733848320640307891348435441158262003505089815279389231724647851494839998296431164996137057837130173571039803642831697789022927000563836370723358110069760122358359370451990425617699389211268513782290801093175946972444689531026817252497821560621245154568552719042006278158810470500665887321259689197510545289550031363566013819893287483797488137571222644230056103450812401848578679730935032460413998669995006330192978788117217393277990273907851724726243496365700906650284464968363864138109926977968218537356463842256487583992572547995619898149788663661475064336359928229690902237091100899169825481931145378928157232434788705947281299146644058310489582086676033215419594183421081792922702430584033371537122648139274316999958595461874833956055501842790752712680664044301013782567143470178138327571631232227039574133229185990050921836665220066284452322960841392806011946275012006714807139381753281374718118786670307932643102391153975756561407008810050576456433395379921360063299605749226050691491584811900306328622183720210909955991614793170384332486000523801894790489984290310573303326026295624848369868678030294219435612770542252206609213644590984354204430838045932631891085047144730143612409885422170881378661778518095029921496383964304887349757968271298718241152102456940195952305694908286343001792436439894900175451748474880986880035510293153191943117157178333795461790868912137217120809171278875307965170699538532266359411708350720674528811904950137287448111234352370351988874557162225212514247176401156415381153854024921660970408781234121692064867197262069513144685604075200001018133201463374266137777839121932447159714859847765319807143687296324392735099543160584989218783641528157315820272519838287844990320804316402266698863720607500835982194981164789666540500414258979596586130270134732603004349581823227647308087296251934162961110494854018375750597887484745175424167070666131692711035564061847697325264628652328774711359842347007094604216668161597994896004308283712856195498739801282690455611513511068177740744660638899606693109818473579302515837345804310799000126841682107940149014885948862492034484836314433379250690258424390687271167857733332836581189100973413356811983414566989604410966136207280667539463246535199223036782996646626920043436441597504467294363522914439933343320904303176077055540241404735394897191547845334130133505182473770273956834289435691844099596581439683191375557667082362076977837206935747693510865336531644013797677975057965344643052979062506419836693680809892748102284824626121039631728029998938285601964591334308177396885642887937645425824479428623382002293141129991339487157499390512513499338379860177406626307026434053494698375449754332147563554807422100537209277728095056902441552630039830871415129107389934906840085326732480688613076168275303323056607291483355861590981408234078226231891569453131340844132263824603995809207047360502744773633319800683514049526383039933521299537065700596811360017944356327960889234749160851661708792641799053394064392219648130262892487904296756753647249010112770540723983324660851903840755722212284267453453150666906819806175668722940984219773920711022210099500162339321311964064549224464088903518625621333127558894726000098191687648630871818898359670247588589639102008479359957201895290936114601379554320467771460595726314857983967591114777925503254500529087375492848440616092698137554891061016654912255503814223028677954136802267867648423189796826049717561518084081124577069823773545827738069851247610377990665764714261882388677990651656396748211944410805557202854440939097143553797552065423248089955960148036168622719064430744197126734260710374631806514519035468797640663974634043479876504936102908351762284157414037112004660589628026998789764931205763105586902223344966920262694811391976984852308377842447094971718999545062921310617520281945829072976611841040593680131767125825233530257498339275585906014144616176743683828611479418500010732615200155961302282160449595818213520788610255710733053132067140934895007075662249610369514895956624323658580812738762302119001842609740820614504746215293246816711161981438713238117566627586819298875731345472455424179980196473419455680496637728548397643562685957282874036857957070033632128738097201988509584630658469932406126900347982840258520375241974139251928252542092923504931049418651359232752955693840605410570240854735600402456731428843936911999912859091465328602856802916739797164418023367716178010695534567854952645974399991988811912745611358262310781120997244805265565393214392801436913620000681869807901037499378501173834471872727105990728965728058602198297490128633868437006815509974257148275245499966565509834974589217775955353594416055029970031050190579062235261613888119936981137035307099008699446033740054677609884404941857965156271182849296002338113976036486571177906424348160059916477169952867747562114751752481101022757334683432646964645566414027527634778104360658241893115495412495892353706669409411509994868594155305071290808542226443224119269367459169291434464096222853492566590013225481659712911111533667182140182720490994973769198413065268138748180124498767292193266867498087661341732725319901932034997762803616071222308599267911459306272602789704297372393273024155900260018970407086229368451261132967522755925328942694498518323655061049842452024770578921969144571894598410261546006796643710088209428771029496106460714147221948838616251634674509981577351161721128280706192203997001407242893333611173668287580753603293104407674634824702344533825907115672019965967770749711710909670851770128466184519384228658108012271069142526840475038547437499503964793203204011548008563385523966343149314547488514421251532386882583008712318601485674589346025815917870829241100199233898294728885236381800919341545219922366534217021856594809694408431860224651132740473569873161436035430480482834224692860206547276327613880260688460790327756843051790308872868693435300573871971287848777226582703217206217569143427928419213535837123764339659860936200601381307055826382369239339855093803734187345599873589282889120218091009195211055845675884967216074834651654617190264626429299007060784099473187414712210034676267798576259282139306200976137814350229482426111537209215932104264147546417861806352540106190434559837724724246155885356677532616554365000843090917296375261554615298679549131820925985700107589924125209338347659370666598909132945260909052486825995142137582793402176465746856230917263063376618366140887574405922751142311605422561456566196322510973835817174132595029150895589108207377924207689179230625757534830896557072768249964263860319856278893448782792603479479760544698706439225367015179384559106310428865992360804641807648382202124973530935159040095971870467367786938235602842659411908272988787482810040026306888455448845269622093077368093051225854947934422714294594152056742930089837574292088866008076219792741995337403473407292295713432196509637544436732311785161330489323610400152094866665966449309917167844039849656535505949291812522040194664331613134864260735088651560122733667513930500600814554225366967321287630878880358876520898316348949796810931664954582625841610063886446595492937153965677810082782312692814712999024441913939906495063743503878857980246317044049584415163049021906506043587425721113179642608848816768857285162695065362135816164511726225395984335384721067064049817394947311493532678762184879194284004725579357385106621206357185870242098594160573138325957014851500518443909479498461577729079612138664020431059705386416998096972058791145940491346994968956353537023974210621518588154772278517696789698617143490560163670873175309929407654438966285993447725014447109923433428761063496805249450308006617006902366090514114197017070739807033243502639247094706079701737157349375417421732053426746213383765621370893418773922073025436915182763657512832306424512374841001602239519053159800297738145810740966756643310169595666725931589164986942785944701958596405045131491260019435859159019086625800997369148117118470681574949876687435872210576204796105895700857540728994704565187863964416618427142331912709613837757560052505776936142209103970664222047447349276949772887308891507227737843316194549620172754965001952270182118842178557447612994046032418430227281797351702061427560156432762693236833930500881116904970800854838929664550968299763768490919954339512446869232818112618258062793452497934777168835096638362084634077153143198334040162255695269090748731626288922775159554442726012834158818744335617470541904361444159261350866772005129336851857977873563597770123696893097876560728525543060207150266439337613253351175090040810506033122876450062859774751036453073305741546391801893587292021309005577053069715255429806072943636838509091780857788028448402183759465657402206195286545069775657546932755888544390764869777426271641316927370370722685375310223325561136543805337819228088570782230389846623876652055236813201678829209936645082279811608243205445102545523652586559742554679162574770349685963470497415841378075570595828936712277549124949236415971231362555913916362507391228651345479706274007585210910772131889052517782368749463868457599025672263822069844474435335534457793209426784389670719037147934749736406382411323420833439022707042334044805457838422063966806266192116598151790553225887824298374909537620342569567211597076296347063592014014750817837722966636633658642825297211127321065627351430380169505571803884173922341123126516784325640627980087031598141325961896440682241776205795883138220072883840488608744519430511223751731587932823294940951274481070886665641835655616082026433699621571397802455997261211172770962996035724700492031016887883287153542249511701006494787052803674972019861435120828613906698065269036108687244239742271392091226032798644261133571252439350378430709212902274718598569392343386927941877248514026268463449763532302765293054842736571522124162383587526080598521139907940123355324783092148520209252944024514987378384301952384971575472104693580793628631541001223188510857284109806499083061697367389758235720268832329959752730113279708477454953920573405848806016002547376443326407362325403678428948907797073370896390773965249489610534480494044459175095156989758235864195317061248627329871514519919137774701463260997117010914878591396607820897638931393526699722635860423408703164721750353248453929855360148617697676491744636300731195617041169485944043134571090380660468099545243948458215402835139835929256287159648771596524798950753724213279006641377759616683824030601704750847576251102870423122994671948666199418465831664646515843939204823210220431444780818178518107765539388597633213698872078013444959730514419214178054391411816611302020778213546331234646181271379492238337201884825542504394814320141391572841915524877309702540459418236142252160231093288930740305396343593305617162491238356667529589035387479654339923846815320972408414132332088670038075418294210905062967008189791943648014216990002073044806516983567845697185165025225155946559374871106870300345701931213611825553996053483977268951768421789385067589551888807619799273957774329400520116946128065013794243087348377015771499735753454258921420187417192315290288987936332901314659723162776047139517605339401662528453888764054776929077271058846848134657037984402313284667096886371705679241245514205661444331509738782171125032803628807411104299518970793458606339511667103328598410712319574188964019232642396982263502619917465389889723796770885670094443969088145942661808954046685433534400454407077096829844637808295333989922279660991630389933961006351089270408213960164251661430398838084602211067086305410140057738752319781089277761812275479753263669325878626307752660990371628828821635599065369556630547336324407958479869173749816293106749415678714218506448442082275243616479604249460187697589813148344182828733003474376518660445840503267765305650996250291683342304623701537256834547614204832825846829632634763254957811100893636973325920872710264434157432577472465392702007832282926672717235598339673165914545812820532950924364694868116835792411706994472152207388658516385706517045843787899395094945039877752268770157227872653340414708621644371545995966022469979581641331618023888550536641104437158649971470065172627798865358542405939579139801248791462580003062389704490032401346946730373237507693298576413368199695315775242892681615777910710611939359504487663893497212680773286567189672610728503321501692789122752301169480695223321236290347714031785218743196971291160733296373228226293288844677171259404829757406962351348833644624148972274873832292903746847738272046452250366330160199351853004333154952659293355364307500694495609618422098059862939898378108759420746495011230369726474577292920009985424632342359112265755225320852383084274233202381317576646726827560124834135811124540821023622512726791319953626986446872700247661804038869110746933191093665456835782890286659493828347597531705764302899172372310352769372028764282033308779915872449157872268068215136525895243567765180114421795913252783391751058449417777791879873788113305543945567142520226852780954456754469552515619556559653740997989709712798721361503441453870014264973979101214303815737025330310482522870813477748878374335696662233640660580702713068470986670025715716030200134217111311357021799277044690969731522830746316180123870805278739182740049504988116988653427238582624678008812694417710521143746111491383528428201112423123102563092838815409365469355049879633181653715493386186146638741740979222713819812313004915252733311399259686961324903602921055745398873140557281332669660009137577963800258311449206601903983068481075267958085924100641096489352199686434809159979962400028796435425968205273037296750167529028665594631147953068897995456024799596127085739153647305207310933745546129431784569661558431360462190229330873604222382959167727718989679196326039524477912591930669179862199773827880587320911719960663413346534825490245414084751701089001421099122875626319945523189174033733385742989654974592337621926523605068968452576993668656650772824113407046768237597947416514107018675815930725360217751593547537371673214774507775646054419107668995371025375410308252221575521936770780207451518182999248276252298752281107481896422408228056502252939442205695340057364269656260889058476294407486605885325270138904241498870117560447289809258524838944594828936633048454490574507464412468061393491069565617652953196639505692118711324751953333743976865000527813141962816963056023881611414234754163641556062181050878471171147410597989214539691058168137771745193090796348379761713317268649106282057523264761457824880450176676463914888684198399651342959686461853097103719493429018401782128524523260198018903957323706126944580648712148259975412460474793498179467569614172449735629554191145187448577512066176658263604842144629470043745623382928254763969687687473910535212552590301638454588700574740236112158010119325222478045543915145494284244270722141489509705555467520654192398372375299262566788405724584321044568438953095641963545576653921745441158940072173903816870816445538600573739607440513100310688916960169412077405108376679560843682757217604231955711817956835341256490725815849862133276741931039134319179246671505398637691375808515352820767927569115603131616548765889179677273211510939311243679786128468391549070258917797861081027427626057135751272292351534922540814159583929944675602678221504339177354587467347350162521193564357496156389385052699620545942019029883921552127338575166937019934313941736817958396599462670065118768585981563038352509914779265191077908934209564963694746947317592101124927524327618913021813267724398819597761255156017889184952171614443295286515202727225290550343027942640617522052528791214355572899590657703229355762718794385548878412487296105438251308367257242141123816397167253580226064224857373516012469909099684629818424110686010394420275220329058879168345589641831531786964352122283877734414837364518926795638909094639453171483867844525528712692916791006538547530125021344716448818602284700599009985233664349540931755592962468037309715072764354179888714578648661987171013249201474116851080940147313186683972416502587018809342570527094933897144468114478894076616114419576358117471285950107905726515900709574683156322402086203450128554361991692470613907570883637122607480176178151479785246920798745512274781575988703743018951478385422258416206631721524290062504805478502787529997233908880017277377838613830252959889232517653918134748887371932534576266392661089146005786209528864166417442677244164571833968764704799039040005805568693677762491132529289824130680447731664361471594752737424484469582581170256109838942269117999592774651420761599849893303774745212013115011574227838885096768343623792043163650088598704770617406735915999573728909899672352095225167417902531292192653061976863887291556691115087610612343301565910765464139713440528920375245297971569225422410966882128622288683325037876434776427942009513284890853793860642066954455482974942979088356131504041285264432523196106532353856751749303826653285815086787096588436401215415748224752553745939999243610441419051732995413845136538026811913911732227948345786310922490722539419026777455736077268350746808661066416243001625733095254868892629785315990460545055326701033533995865974424604983736456321043648947913119619962006225275418478977071652237192387903202073362061250101739058038242995588454677064239942140022447774557755044211465720930973600881541955855631004669278729245315345302942113300390444732775836548505562619242662651642020582904260793992540239409814309513755103947405890621072828803059154603135236080041660900790961998786066202621624032436405882767284202151604394272376235659108689295446479286602450031021950298307274303065031234894676055200082088661628030819928485546525295609386120364129526636356653083653042456204924165275083680629294703542893532335636170999560830163648808148530916623212957907741218385042823274708468532351431358883043359838991686067538152462327041005904520198490160961889134944323466978407528626401417700156528687068866398259888770259296260037700566880331932960376049693683367931533370313392532640219462289215746093987645669423002550531672647329220350485177909287533015613720275511470914274205930175439373669675442014647243850686924847014216054937658670942958211467213425800484600435249061046599801705115543781516394996288509536448638017890771806771875019871625473424591508947691101746364730520281880627598135751513760821939919042967178389907200254953668490919259573464101583732164052786043211779193852987915868834253972720983486408363993339759835126970612421824599497150080503200125959282537247023113971503520826037475099277738818808148538553275310631828791191007555614407666233242110297790304199717689619132179793273828472190836036573796842813284013185690551798470498004444615966663627124257847898455543930546555358540422386273524034725225544396233269708046068885874134522417178915138836859250188493752444510481454466578378473089243798081872835773766190733992471274327566484166369191741629876996367653033268845220635881704574156265207084818629836991754732664017957950476310021844355159592985797305225977807050178840664753027958339334250457195587623370446671195120783348585741545001425477203876173718415467948935245150825670728272015957601736210929921179849705797505645226115610069511768227650363902225682863022930920386438384387066635471443616323117666328611464591725075918847118231643600983248774054142969161344811967108046381846175083981954362282813998353246344817351321384412183297006509036869835023721229440266745569638768950069089986222195974178996884825621078333000917351409283797876210229175677104559018339525462518783922559232788846381253399681849425965218107183992991998225564176114057678399202686702279508799513774345373311807576813059815308498792057275518291168070339997665004389894932049645206358362281097435607934352694704754338750504082606791182441462314751564019553848762919851383298896106555691906522486105987680797054840931712039153504445712722519258840289926594341434339345494691716335529619048596332266043540921202582205852380856494934354436748868457788362391568017802012203399074750314020241404390481659795894130040782305914166696039170973559739135740526577497116829384709412712804993244975921170293596864435670451614701698962290037936696979976236978524110503178783133747945411369884274540364707250821108191993301533191173942414790506312291036741174877633291189618915076808535655818238136369792305390501942792124983021017348062460137202925503483439745175740145227233971079014399359097469157673398143401147572953787261677981498299047625042902807693003410571760062578301673666603661002667289627946724717247185764574264515610272325391779185653877309102031471232398998508120554611331453687774174653095396210163249845423799010490377447079695033368185279613962518942181041573732140333296881284565288116604718442268043298683923523390630031398345020360336005999850076112977350498914533764411180702217188206955679986317023115596057877812667062677133184989735639901888662005368990323526049901193196585297868136285040871242467516327318435197094148701832644403570577249088576262173685068917818218269150051038274728308734345342453075166587153433604245385207696148284767305668122076487953457686772473325389345895160646261079340369585290236733705652565781013203058672798059843576496166040125008408836867774735124259658736444281323595536204471357039747379901480914465122072119451619749149611773150194477038134985877748931671372732620550038752839741431308566062646475708550124653855662468945695182098556611597488167583210964001230687014252119653512353723728729771538711355182664285972125055633647694631622413653061745378835389698200407867816386689604006388216328681242048393288323318346036284518229484489697238178542325913758998217554323580130735435357632968371090100128086363541800993383070358193017578808914547665301454956012716667753396243879399162860758293976892110107189016824668398224174380605860713830196255489237152161813521317834530825170402710227509422287987194027853341287851880301776597099356692905149567879219593707390615142094087425445202250091323197469024702734507337998715570970444359477987938499504017591982252581752064099743568147762352276535406559861900833792545885116687736280437302071064955537286613111700755037768652626290099385837918210772559910947955106053000281487358739645836636471712607449935935350551739486857561592738829592075380226900483055213445739873582908249926267356993289639206628173464244396607881360163777291626575431432331738111635637467414851518562962290506391271065321556354395142967273715462486342437997611492792225760350715652367979109981665354016140315488343506168526145547839083535214597460263256099049735789774189909332222775328508466451065621824934220654783630130959302562814788448472807850424871439126685567609017922081531120033582360213758957922257193968481435254987240264891584415676836198442065530693050232428436840339343210751845526653661546937956585225029545295434720759247873402314476476789260870495979800085808503368920106426273712590030693771071068273119464878532290183607629417780467235967566759123767797161352255973069922732961242329876243715231694528616823978741728895227180627189091030751225219639832781079797203525721462247792606857209656602937694331314216617015843419240713054657351675419043477532403423598296204774999538565108569743910781659751510153775868345321227024397604816350867254877482722415316326355545798695297344785684941635142832424385390247326195731426958620180623967655440954293284023501774196105393551302716961591768345516077803280955598624949733227617919093940396286044053530103687963673476905660997514730840096205062806272436053565652562214470974037711287231774209707186709233277877831459163578369794166484153806167851707056928887786176882107870825827762002985129372951057013453592180156146774723126030782792189130497406710951229393084194262061648665743717403132407650911310437525805350650585913068853534212456640354919727357491953740954979134278875969859039416625761592150259654169713058018075045334709814997883480337341215854932997356837019445434718970539931202411070962557005509065990158579120517643890096539031760847341333164735622727555325727595635882699249514498100993957673727172687604528292991953910163100793221163774082553812387816384011987340785273183946631771636205075939036092149452093375768537918660311710101705608243028550250293514551322209968861880949972249524614039404825817816145128776038502429500593533956039444015763860728391108836314184397921769262734456887391235598898885859834807919943333765572114770820141264692154923102889677488004309510640741831355947459614054069640281534314043077235781850789602507455355988249741369916327278727859549039038419818020463553960983978666269829937082987216455922741549662924396292651911718410954042122784929170854035565839535538567485308098239461589332307807879368761128137605478812724748320081789008094916001436992352637894610031007515546072578372338160169487097131111768839760387905059555983584244860194684501446033819554892909793127111564577528356459897922296416151975482665989874471445335674396103817196265833173252359136414675150620380459583245427167185705688616659042776187334389945302460369279811245981928934172288811620929503016550958163167200580921614045009520791055433259414247505715727442567518226937627877868706515657876595654895732086370127446452598196692140596959514746955895828366981350105324320942688188279805807313898858565365866330249953979951757746168656715966637456767396589730267763595002126193134288682259319531439166514604217648031028191994740692557561034946468790828926466043943592025570443551522758626873770034178671367698057685294155715751534432356433666844669692464763387741579243871780867876005351512643734569822530707063983171331693647591689690295043759691099649482015133400301322794364836049649595593190805308572740920373707327811560677116035169651564676707498069319739821401014379426111578021431069820841759803056630093544527547390162044468180077943037253804983739236656942759736269801324033758753441162669945373127193141618073047894861597328246156609929736375748121938236169373571556590783921789758789331098182969847951013255357569692220711391363746915291638986280755313350714363621468259701247356658668473572596450574674113251991286780828476795377756914937955554393021019630174738799378611005671981346714588200654982588074362845031594248507916355748047780814400416952846999759690480999253929991757871547795248920533648177678353906431927763863304454842574030132344354645102798211728886804582605095808914661277279927115575286723930311163396789018918658520063381878907569080866866916185362005534352004420624348014998052054685423505305195156610983971621038286853823126142712709798496826719353708781105734941271786921232003363012928524455598153059616101128328409391458240577154948587638000619116343877956463043564177257813582452479780557160618464698105121553620709586374226393609396171708988971110309384610677380936782643117509143763950691027602395952423015368143965863067124787674148859324621239555962107696521035245124038328431273310134271068098526393361565694556069063466089273747565715711049104517610966086425314097271321518993457430410839986842228640401069844254393931723333277915536985772793403728211291027713115927237513775416906759385124973210121156136148830223294125917281761050651334442480995970354072646376414802463250382545279614222924970402538615667834458482018161038529253070023775955987088517347870509645419628773975292879085993692813365713239478222394362361424865015168846764631436485357805258133825711767017717320615160241864139448412328033502481965357507972004472753965182152115445096700519268332764323326159124399591024185164840419877815978639065118543510908735247424322398040687189080886763042906682521468260555805290615060475128544099351355462849297323999219538972303215010201461547296764369728750735265949478255868303517001712700437528636449480610817766912989618895394066791604805121502892527006888582098809179166975568704471444299386863146184686101758367477665509310720957767141133110469377243645905447956778207503331311340874749553925780513169032241721539097560000119980461889916164615021749217959424870203945413986707252190540706686925321917097817614886985480051106229294705859740197755695993490031199621621269568202622881830800323895644289273062230525514538373498207289222935693331438994931440442162088161066599763959392362519580332061049603138204882775393726778463641482279020566493177608981759849514191040964612068459387129803246108593769250055718190310446190080761594502721063783684222495990971105459543342374541710284330503753859830402170077770332573864859560726789968337168934698905512163123827384226735435885143443150184527202173837212448731672982952100589708596034163190831732014040695957528553395600871178067751109379111770178992896921086168115188923756681850017473614889515283398085683495454387292293628255195236173288962946802431062752495734257999534856877067767340469064322432557696829705083429875682502111200141366158290604842706815652020110670088712964377813595848307061730308538549412561997839218049997466284545398991280270136736479339845871380627765305544434512562075090733052654162772892085790838698929671727273457620740950317368335846454339171936139652662603659217308771054359026929508500315312941297834618852164265313555570391091752157037084470142365716341638341074666519534829039894554871290919418339093953732714111248982577320343107795644041081269695261182760545531922191528034952464773225350059394765014435149399555319175390756261679478654974790388288360013074500339920836104161666066941458342460070100157479062896701003658638988258242976636840197404563804741866594133976384378746090514738416586007279195253753427408336323228728127858770805371585640214730641776636492706717007641345013819224505402558622377383106913975890941845557298695653847347935716400512692170739704188586576639199244422926439511340178810684829683778920237844160259380133934027842112865114557222850676913708642509140588334187198554178490127194404431318854463696907747715363719333299357015273662387160225766385959685624842599955392352289574658412601605327350159243771656602278437801179918110900613789108096624106806546282285339594830085486261381455498248748970130714630088309179962201817001433359448135339347784381882230629605284861367545436939475973163452846984318247176782771848204979781345148162336034980253231125451270358021124211711108064584496732234099512021415198770944833164334616505243837414995669429762203353841035344690195777288415144553753422813937706552984646998675797443133126029510981226282919833312662215048448242258029626884766845800434553990855887946942267347970391773594200770700576120910708153292840841133946060404645528611134554448036314663996196371048161199476779157999440905519171891573842853477182856733559493810807594153710469769828012051183363768247466470420868992998517453630980632563185352707806217971346941725524962454900028297002959734122943983692449625696820637859168170503727494113494327347595423504080986946363749679981592229242687239860812176903503212014485650670720659142627792126266786907670560030135514672072675162590130902740762392485450276494323035030294702764262458992434481983635531652912769138570701314918819024106717888778795988510631234270192068716324244290466687589495977976898447028190583250000529777112830482988516073039872478248898692645816467187636127977380494121323011261662487907452347629559842494886164503663339004706979431493253615125436089881764302530283850750378648507433222714618615090083573882849182834888005985668020591709789539098473213244306453521900420190514027765559653355563428081588660251311258196923353059577560674710169927177956048273716911811468348527726336347525690461192295519020887782179735592863781040518095914131100280611758322754901250544347440916721017663248082248859350073691677666841058097061344409686141990575293945212238947556051077007739232105029695846208414203675291980856158042458901594470502282151503858957444567648306292320889614446158125485119104266826054500942297543525212809923831486913214457241456527714286984703457124088374615574641732135749177358759494567531890718680567933437457276786866465173342504257421352173756768958584866823355037523902311028218596253072535556229332274118830524714619159155184138900601395299681874655466926225048589733839286773271355925349620361790312117336271127550555402690869659789069552258463604999604385675083591446043197145647251132922134562933837717979531319805014662689183262371954470352699245947059027237313056661178920007630647833193507235908030456559656915855170385865164337233167745010327150406315389069912007807871799785314894652684081655240019750707495714426514026469753281131265715844888229917259942511239645271951718206680582597762587505079322167629321756066243931587274206845561443243902831605523325374347122668065864100174740791576958654633248410153875776761072402340831186679836172254430483487415260232353373442928868044349604275636947112521858434021871617210402124422582114511773859580144884025124262934113048745643690613732691545892636523241009514815736574723011539609778413641697670903597067439800254225436552215607443317968561254701665223852629398387961979511332299314498680622061860725192120801039472955350387127195177403716375008689585108552204166348696698271594493343699062538439649487586161975829124335850661882213092842838334416291742030850331229398408464879983386253186703182130165347328067029370260363067628790425565209196906531858354813304373920590305942973839635002944853196129218153039459030651907814194164992189536336657759822305862849460735824490900476812259305512040440408669695553816422786274839937247105348601191064169882590317474673746670525143640941854262741985727194728229338121038193010235131421121373143603190381465626543003047596373774846179836110169557049113412803454296552998452139978706768251242170927994783818639077368623120363772867302100770328233833328714750920412729364426575186817613189280623409767695403122554908289760173300356446253552644020976736601053762984181780657661543570051249746212320513326919853066219747790665172324029242606298637716476229459212423924093645195210525046089515239993436962244589110378633623112941174909431430353209633000672789994326317227752893219774538434954357862249500354900170763129967644658521270870108493997675983297430576813726674550014038909350321125022599735036341073994032154184470814788159962457871041078531897410471646255776508013078537988724074563265501808571761580068364185301150652748501377123955648522188537832918109720312996037883947034761226882945639178209909988826142103261515117127597032231806516606394150204197422827471590050974503250787037802589762256639264602965917697615873953581996084254200042093297210326070212406991492104939730085818307893307313967924234577744244316003403472860095435624399315101020608748507431608442742570580998996386236491329028363829764610131079051217744649681172466228998178900022633698750522577324884311997440849483636609696307812606347935087294278300572347956270369415154953750660875069827600450920847795311082326405882861915655127926301729157774971309551300999254061530492652122082258067129886047114873834617136733766040141582792599174323549768302504897108186261481309254483010711826064663752204945096428865123414850501094265470283947913671385840824811649236772149376170379408746422024141083298880827268250680331476784927797574478083280346886224525369458384604208727403732375409726547951984488970534561439927154489848499606847272338232056942560028857652182198569781512793742246523355980897231694656306593404571305141515102478356161707532869874829760017011983158141005606844865784940166677872153692455797412522625344186723071293214319721381470201533957258276056526798982943239925985787654965086685810355593169689401177814330144143530630182837370251119269223222679057545233112650079111486030543237199523436556771944880092069758421847478340286064184745691439280746238184979226986613116266267820079444453112285425354361089253251746690922395304659198573957203184107945665830915570938163643392721276324602847313824025277051105459086907876562026662443251043223469407454440399117985847732102418622966463271409155889532562678195953322053090714423459289138522157134297606381619970595250755747344134574300300919327131056233838464902394926889088293443110543178985298245111973718420428995603809272845578428200772851017636011957402917153411651557278554546849677527928314725400375065739420346957815481415916049022600287157037517129099827271381446889764819968975306484386368107549508656077629319544849797618217291596471217319596808636466138406074218477110385659175509667126806682575478558242024982728936282601171336277616194977864395450554354007654725351667358652033941361755297379174173214292310918542819364073051532578304762475353517632582607765034951507723809246756706131551019741604537342725658847425890102212138609066922133542220754106037784919114878002441117220910081884944437222182637373558530683824342815606934421675354886412918407562311492756677159251619595095154354224782611991766676618191658643498212630333770190785074227827156625326674625531240421560085778068353610844524439000507210620935836947485530438852502279566685540205927071121943680857132787922671660702191787199134475238602020545511200025368086002752524642168815913555439392757887810292775079633234739744696793352265795389729031782948013718546788243663580627995753769028247070039934386207132525154217074461662091700495164184626520910299137482283259369599408825873659599459956348816517467117540166197216704633152001174314031985422433842401629389717674136133007563124502585692213904414907143223026730982016786452773043925391168848275484844085411701053339710839119065716939020539274339022277212233510561305730869361007898992728250409818395092571311617613917847721145026533905909852029785542764476776772496306551520104805402595071103414058923528943496183141452539924578886691014551644757829952170603239339203652240181304066509981108469698779301415457328640949050561839533228033967172319209157280219059346196638984255600688107163828040693536819493359550665384646848035754957714145727370190932087949952555188130271475532630374343193524204011958061361549938624369413061346703551515788909541370063054543032839085395871707766403484588433120164717369868185080272544937999819385667793614767308600270831142101859319226229680444728414427422745103623819026784264793367853077008776754861199458992372422806868263295220554873522900550501457375131261080862617395149728059157657782294971933692802797980969752553388508206417796300519600529668103271063941400977475035555196791114754807803678019452448950323781547349909450762939792152323703564449728520407607176892617142691742571910241786217588884226633849713647146258544990266362879939842198058946888326858018143621009501696261534680512982410548826676137602683429061056810774823983383582790300435586377119764787095328093709005508792795344953465701558907563791136597417315294137962020820326459769162962928170518617554742632939419303660093038601793798489015493055820568704713781674462529658886656027335503048693403265171621556641584262026091624175332223202377100204381303547634104158041309486797619204391548926976972174954318014384780522296480541140444310103865027410226626650734605899795970782518349148014261037839721123729649471554353543099316119470332568219795627965952416349034499326920996504135713494262137221306236823691923571954956234356888657458818799785858454085215150815519042389985189858105438230343567140393185618474820554882448149744391805160974358482384490940226169563227898466310962841259937019686893150349302973201724510218598624450689195700671906689949559907503680782814474957881598082649699585764806096668468384528484427639729290991031526269324147400526266161482367624276061197145853945707683253066051942560055474959248349260515598457692841624040503651995538347798451042639107437539142942406016297753767703096887554380753677196601689567934094753517532395468907159396530716511230640283675765087389847248176018731220644034690479518251486306146390643346485474005430711309705973954243167871666592169755395692227497451303735560514804019546251555837154995480150367763576133945919322858819433684680965770289085503529988044315753588239431476771437221780481155102110524241572428690600591907159594377441611357230864993404874307774686840328091814166386168040631739047206019789823964598995075680343182853720839213304063568168147165322381691918797763988665707806012507461287451899877485612299283088518790963420899880012537745540671463076254549644841308280033355322360118118630588778054695447988944348368172329115304065114527497278922961180444957529619625027381242746871761563054995658638764289721415428180964580663911745096786234409421301789232582393003492769098502665519482785266010632002236475080989682565187252882568375123307225849963731689780832740507603407195997474813416981005172992017892560321565492287407560998954016026795088623108356502474085479617388688618170921526098745626072930689461638853658733998201973654148706206601242004327947627543841265482928630959179675828504750182276187767736761566319490764149269926164952836069085557374735164737945117808184567414726804947105751971366060092958127338642777476227846739324990286349170772003609442502130150347961814715507872345521992266057906219108854627202743048241423331703126857731927223376246927621395351917522299663620504337396176225994835478793907390026135664833416289525470074495156250798971667460778085337593870951151403531151418503761317208822264001797442718056321419837153141041422704271497408296967938240003478873089873812830715451069060733328814081575554227668156491930241251093709393949873064279077236098697100635004129979541213971541814405269258929512712743767981586449726019133827048174728523882301778075734646059612690349724746325454358046203041615872479006539144034138721364930295225121336797340415972031621820925892209322619875000450634002150290773181592727739806776268891909661282464857583183643602574867855552702922231448586835538240046180234807870943680918177946447816637465574168613284450412601617396030823213114494364307274740538763262131988709135274466701261502721278206594922033877859859947748760697761317947472408737831384631971755519876971071354490912430326117111996961954306249452375846654270007104526426785494448547623611970427652487022166775377956378377676626037277934818019240013825517852931877568366854453595801231609099393026921552582915104226787230468238749781955159008665064822459161584686003663216482736928048920940416384325756112391193406737361503598311405239093571660219286117473331857299540359189399406204107116583633679933815881541683090437163863202194053573493908657447627197352786580624582072575236138546095828093857348807380546836759352068145810277297093648233325662121512449281509345851322505489049641035517542935187649917477552777582827439049680987174116345346742915868221472085105424156225954666513016362489910807989934191265356897112142501974511882386777718312928756035238519902165345820271035890877850141792051956635249482648929100535133165998848620109877630262279614849126824968236702886087649278112212507080690941937133987052914114082566357658461858877267632742532227408496740765681764807345796603379201536769057212360169812731229703913870636925011874868584155822816125222745702513338593535226241094133427316656960030244465413257826269109629725683063002116602316801048534880085572568775068082508046963554601693278751655958566306519840989201677493987033441553568499929871172098486093353477774638718498099976860954741820120545616697666341333740422732062051470503604014146886953958191600418655950536387624417713772273117307089760204023881355759582777484861864574594213443379852711684108530894779784531633324572705004218720987147728999968160854308251198411122616777748697823897213226577224699561897597322797237737533257571501823733811989231301890345639985734238759731741264357043998671384517728460524154722522796844759090966284560975894243636813753316102595258296538184993086788875160999529463255365480931698017843332702287227437194350504894124298643154747051322369719066391899061502802088409210847699863550701977099876394799082309949720212333574084496000168530309846573137518577586408883390845937708042495320778121400196393703534025027481216401405374160669834063903999343591247468998732438233985569402699049001511695134318014663626640070646593396952576477101288957822874849507688315631031961282150435460252763158994864062706004377187789159974716281001220621265062737153131006828608757833676682450833308007622704039845922109356092835345583053429132408978863967410209303828643128837218897020694408527864369741121327759089508341141847157488702866446309889421967978464946086633582459298914624246452246058170794650907850272804457056658934586309984137243859643316213617092226494003178924723074957346377903460515040033555085519881911228521491623317565924143330725686400672439776220436232300158526916216369903851792026202034611228994930773711871454018929209032265451573808198389317607571827200507162035761093249568815380031027275152916297066446848007477053918289647334246547367564846022840467017956877270315250156843232944814590579724370106315473630903328181942493746833349008864942272047310213496067463854981812526816710590969378832548290496201599219614719843228362537935841428649872546098663774126344830703957325944522667524978609190534781618467882250440635395208296598460411046159849426776785865958646163458867350542654891641627966642538845343146962411132432219524914208132901474543232392848845993448245214818637910652946487969217892144863242497513727277455218616470574630987260948428326722623170287195411733838167622347111081644058207637049023355509262486283112514413920429968449316042540201965595572090228944479515925614927050954593954842029980807531370159911413083339403002151981463705290268816832626818350372081236418173505149944243315900906803706649783204675900621806578636738138648840001472853908242395922864210674391095667009100653076247014433759123905261415585665989374398937174476031927832436879105761240436848445640273807573169150680679501070672625846270981345507917685000439172379164880446427342453624681166222931172029806014735149581839802083656160213743895586823716236770371414208317415600325992885111319837920322454234935592777398106834648614859752955152965325780623915160379369900013384852610024101153586986914982321369809171776653039781728036568991861562869819687623665439999481965436420520867613175778335864305369480429026396868612348343723092445673113478574665431532686156825502802388316740170534604519477598355582193352336577174200335540184541112046406689519419942353827278342569779113946006022710361514296714615846080589599065075816109861509670969457657018208813550414650878732019284538588294702754971455216798911869188061273620247140428773163712842637562930169920677725888671678607656998240881003162232052823353222799662989249783920157580081291906202786366436109415412281062316560076460568951710986009210955540925151630331079139834827028011738578961017317019470754120848284011766146584305921651684317346005333435711543937919438768957527444610032110986670480040908523629951646295316583957794732913220279683483596232334273892077923104553213235600129850736558296271255576773269210872239007795917798368812244121143964597312128345842379844914828946364334585540602841861662835206282194618395043776795363756721661872482954280849675347595791166371315235115668197763611373594476292551642048195898838274848760489596815032429583851734983739500870324142136794352221749075176352478169693556991190484503107521624208343147570311577026826322234081488982995920177063497274446081377986382518302596560345078338329742857734888428340904056332203959389331629675598400469459338490897543992045370318717943499695730940727697129111025792867803349385340340876430755276894245430368071696405832169387999722316154324247306818221179651917507679251046646267901930168259791476334152723902131699070143724293948392020870048039190764339637056636774326019360326230867635484254280725375307229153027426548669703364208523965433620005708988328852208596833739259412365930532231729225100673043755374562284100809146425402143669704946358340097258407073218134354679096886727685969525586934621877121664413272153324160227286656350686530602435380666362481976598869671444313342829263909006838599433446703311757215469372312998991824147466581086276660231988106002810004421526296432867655466338188353599772685420844838520143714096565959049755256021568698216808199769134727285625949449388951347174141050817614561386470527799828049349708636012775736025267007330653294273757622790824317916007610038890422128589008262016779085599268495502565144022272401620581255839322282849703452272857147378966554114570847436319885366077932697508280103402192513466752024934471151806345197408270152603752074825496623048098012912922713134429860165176813503693298221616037864208264450338714761492809369100391744932831298160743108593162510334333784248422658250916437929535853692836982953536578974275315619542099430148362441635985545577231411451036833636006386175034495176811265407832675743437376503490826218353060457901453877506863081838274649962506358845807794866616422735634948425557232761008864142048270168886754914763341593871248427683208254250953835602970684448250242909382979001230267632217186272355538426789755235625651550252687023040558398946868940507035141199959052073605945295755200505521568858073780895661581717864582486598457327885425368958532395926003525005846208939429636214662493582691671771863117658767750703367541038825272642538313228029041493086072158501754169696337204100394827093492607938306370736773049034623948930451677383766377592096746346649778159196106977653654207516046636516170663534000474488302926730499782319526494445349703321329748967543999083769739844208618001315486462968020671117338094399118837270365960521629703773926358657320734125889226115482993046191665656309582754955654745923654846539883380008798847963664970639511551421075926975676202211011223967509608202574645216330239083615683191828268530568945875994839731950134414041632475900381806803028061528116839642826830638029259594402756847398668174938332339090573117176207129807670120031818856644020134304801954993790521582799017593522747389244984991659831547633191369082376400489514989880184826612649648737445063453530143168853358744372835808825597956795077352568719222329847640646732978609758700862821760557640214191516569276051697332844683304151439728310327547191587119645272215145031213764590184458641671926768327193046125837905550719885576683047296110733158652992953917260417899758963151645662207032766501651369251875890520358127886536369554142149469110975133123652266240101603551463323467553566135789695540377929941271891007859845002665756307409660868702965510520668855253419623361358664518881145027830953937135568364364836865985998030123758109753300004316200950626120559208741530909586691751016272318521737556385683634660979680095922229648988170777774366839962446644620120156830964942843186610530444079560547602058602872959293482659512179566829325094979317334342338393603397101188637695807937484503783169233220350792667981075893326905121877213237892845866565664600361988275090009323054166918705081788228461533458947895234167390850989575215587960960188880190242451098435082534494610673537575435138546318815978881622756298028617777759190693147375075144447293794987972255757222377112621716760703466661963424341080976079090361871759457944371761877828143879323519817514107446268594783498372866786534679812472395574284831101452619897955457793345994783797911075397624689545021954934612993520489108298748352652318391986611514206014135365487349538922551702945270660243934090002309758777580995121324872927875119817968463934885372764083941294148050375202760557533928123746626354193800218001377315456419979535076633300929463321615727680757668688731541536574242668247045052428738560122659071451634569597481675233257159204770433299858775244414747149447948322775471614203827176578210028485665986828536098549913302373954839550071363075927804689435341557035005363033051077470433567731525480143704894861603866805872149409781840855033459316542992159085926882196378254518923995625757390335855018148624738318054770188863196140168778601486941706622401972714476821303006400532053024708199516170127792979216712196753438424487150793719636881403087654595943861287690914165403396331715868958021017892783573327556050012201829353294854781585346178668301530093396605596565723775378176637344326435396397589561548489830637131863863890718830546422844117420263812593973498139244951860473208489833171364005382355390551380824328875656763659939240581362416286429094910907667059366229915371085151421232622943928156359972749399889715427180653432858177010709154671070180072749805242138600532685704957271577505932946759469230709351717020233756084263000008711518134470633718465978590804709246284908666323358682363269827144221874837166780953209283730696528887508780718136663738529465477601339538903062323475944420816819425587533988910484397319977991630258984356732639867288532661697618934955649718697266801280919440675167198553350320443641223841886151249885995325499657420587775817188179554452469973601847974036652917162392736574516484281173918059416631948919401817537488293479426817108207740638645437400315075083639401251014312850139768796931310947774650424161917832732107539652435445341533737301176109666166291423670318975987126195202513130333257748026729653170018861415865501124723411506984952181817448680967156721791919892373499741498765053884790698484762022918595198342079318297305116270751785980532893842946664504940495440941972864365870913000774874973244205779137272817029580524398466239304584088883213937238201084867768956281822411591627179576701963371909101849131970672951297295237037915368465958637385650101585050285461328085168110933391940270726668276977181964126312935198561894081927161982273165905590423522449459853129180883206614832372038761592752563810793115578230556628340079814196273084127092904273946460922915830791594902999243124966871860750473811429996011720987175753527704499569942782661205786357860391422409693487038055698379699456068390874726342258558851844241902018936993723540771141844568537448945247815345734545018755001752373215905997503493934287417673800109897125682418387800941588875190033616260142857845639588764971216114789524487789767181171039334404905966540512826459108831932191360691276572516186454681043602368641879316037909031608299360327361388368405618476450202983806812358122535908805733726549806850050437866848825294048869048552349246559909195301750735966186515026997692707362823555347369605654735379933491601164381164847627406582633547773582303649533787956450478263015535831036458189386301041665572843692260516499261574558889129895436912825742456261985936155104429856992713991015367830362642947125619492457337732107131649990069532679791138071387856783065747000298929047580271912394732893826947059522291794986882031154061191303392010240732866423168419866055737381761783345802398127119119750410220134509202916768827085722605343180277650380813166145552882464271723530775166990914619168829530794639667567405109625782243810961826024737253540370176409803703896031029321139175857123607521546991222308937026418319002920099533297720749622704663056300848099550165889479578177688581967687110341142197155723493825983548264027382860603471365497544883663973214331777401197921220392878788764374854504033214041030729461944976733148133474929744315378964871568356656630026240293857442369660068783129020925586291963641477340145080984207605669757135435456851910373153190566567206511279772763730332747124438398995270105968035357222568750774679391140913995491255669415350966108393658014219882307493099350083336752317065454210324836024308989444159099818391544935135578540863770345282027428244475033766710728224241753917961645099439297794579217401247255467681739734780873813991162911657217287782763088910449928600279829023001126674314319978503112556538249667596689812548316396071018190549367985175266791760668494410616828921465160339713115287238523877152838801896610900727043525310729854557281996713827824446857996228586244808586851431791161005420383202724624220894975158904984110011494214845792389667586148016804832314873822976365932340287952445279579324887443538913322987232125858385385288161022755874776224632062486563799744523962503672521517682377859181858363008918903090035391877472699981142132679379958888936250067484339258534831387135046008332543004247884496112661680570181475401119656753986645998197252927691576204880990703261351780297415780527087711108022611147647428579532381427610919968532626624242661159039731087914112717740566602970926185647093903260094333471710940193966074166996484372937758867139643296894410010765179423543863282270021201072546875115043709635328987303088820931463240190133689070078863858829252779461586518623734323926789909303287720832308979226177754030776595921196744474693238592755866204183756945021648233905830726114305595840014158516422485412486697344969904299570621920385789341024882962768760179417492600991174078013885384061980460876593518075168298534658452213934030963634818058935962306956936083978133040011219502620356079812012710904858326476674084149353905218003562573126003892193528271416071064948431604606659238705697827395807610306519581932004193865639718210963370683280153933137761179362248826319627226200545639883854660256783461037438325592955931339059833349559963998860790343861675025472643298267104017046729511886228726680389353803992368843906440791592707933706704583046338030283270202512474883272271800185898937605938046046061545167208490038463144816652549230022819698463505175028431685127236446535960361784129071569444223239341776611604148388395473216751513076648623732475373372361389646137902349826340354325603893053465935785918172161147321200581957694578531330785499634756665542647906240199665456256973608341440264185378098014529393130060151515295111555586996387820007135268556873073081283817257975142156608740969546281078116962809577237588252531002303543371024436282065517552920743015602212520507674113548483565888522375874948635294425162559855971601363363942917356006875321745012047310033050765624342653369150817331222172732097117147674291312809784377579310504008390477998893781549505128687242190297460589524834366133567025848840732715766782887007062487631287995285383743823598877306306910081364989340269023208357288644655656404867115443143256265050178029734048933113777235847015041295045094466075060607697991307724404753065332262224696435316193481644739973883169348196133501525507713459549932565863022278346165156499639363667463343507497095666973195277587191866948309178500096166705456107085516944121869643695264975544553138119101626706817519133035170230022513420956405553237271350932889714917310899033009161785500813231592334746574731117314015884952206774956340658809750910950299761441737827199193977360959742930658386546737235244257955140098546140598288945470713805451317206688066857971923604133300241073998762162363268167144481109311332556593715056159246832750619121961688626464361895150844835203894436844379216947595528773012295096999549923777892906556781704405996336701388130269065668450634069950858001980249633489444626784803302149024928589259624276676904209815533798852080855143010136974347110534982580620541369036783609762855005287843424849414988096568310972341793576995289562788875579688218734506439947180137143575463983913281334012220033513093397427408109455219146294606105058997081390711184704538843846906554981148041140237276207745994764301948312501352043779248287912434480963494340174630458322149457411786788165418988422233099299972093853690517422582059652116521001933438882987693534637412664302344184469727745010416543450708018073197172520421805382800420014819105433539869882476639814696649880490596889346438348299255321693908210273605539750874256095942729866768671083933472925981752328000306226112950825171990545155474717536906794703380368234544549012075546399171821403327928652221680208258076306687145610344207343319829351617243885673400858701269334400453341860344232108476975330790632633619540673349548939315892314813600209710653848170594006134996470170069517976125559423473956791371692103871392442447130016807255478553842231953599880871075046890729349277835802336642045662953369534737534059585853028551063773209391251145914950431710753559791493087151851924647334497327065123789015690415674141577968527135712813288583496381945587003848785946312815332007162109378119674330001223077234090598528349692357912113444755046324244194490902888959849806891131098166725791454645273642713990648478987027610080392046863375195655881982533165910868919710120619767279003323254058041540542001716704850326794107502997932633776744273358923785727510599552698901420781604676325129454389478545593019201331560764715333269369840602221446606292286158604839634756970523874565789704827813546635176011468517432758708286000807831819669648682155957734827413931653133144725619112243753259999574593336134388448175792694607338024424161122687386045834220858221434607034931959519515924798657034776482359086095551059861971456247557574670325549334332412827708991871210999817382418213911380067397516433475856596320777738851257347573154393424112304479656257804520608849990243386282276627346128001620047373149779022079371107238216532392062531592388550556937249619940199468975913187062839564768590712492359061687337524014134056696015433657801498555226666559004187484968891529952922632936551237555957424295065077687423614377661194082004923893669831978415086721703539166929156947794672010256617833421801515345956146983559404699096647413239012503904858291594684028796873169422946976266666076135785967953827373705254235540685794933897459571782804066963917450962038304244468651434300294013721474419790594854276063922000778537775303129697342613286605413065655133695854618543049942710702599701351414544477653197169922358723009599284070798445388835810769454079037797891281908365933491357670365627779073749196294461947955042560542756404161381415212750311284644867455232714913914491996206008341945228182870593383546064187358812824363188976201988793371729904236557516120063533302671988301999985330759250065762960374020057966479817275476574224181741174826283077858269575496601086512163831502821079794894321563571406178334597662899059547664078843592769221316836925193488631368752984495183322191093921659328785407608578116140487086819409050038502100876370274222312318765852909589494295519344705091290872476579095234323435986605566653028673296226527818320667895969080274064880765766572526357360688591911680830609864140410132084549056906014362059870067893997268019170550162914959656651722098421208222053901416271363589265435510558180304326936960478787259291721204991237586005426446073248868662712659513207841061934945025769174426743680293593633018262098055039525509297974677107369041934229947800949652476710174473174959005723796728669059843939037647779591544815201634490916929787155639910477116975345908905349420869549099512254763620243903163070204221313607325259408411076304191035201023389372609750393085269728617357647139576893274170973238716058884661850829160027947273883969841784361011181217867263100583697653026513319825912561405519189433522518061278109223401096729990926361583373164502049121824408945263772939990587329209995681773798865201321208404946806505900048184195595428633836731673381916605025224692245923187029676186954695578888053996397910764407875820414441938542754755088775335287462030139646199088581150589172178466639894897032751221541291175456408518785293508613776474290725554614095710777996918570875698757171101727116132008191489715555835361862706129589948706794536675578859460161798765095927934149351412547283620755016649068600765933850378044046472877364322264830658869574380095034484996054102574975103296316696615458525103921144279675466746023242083399741530095724805236865186103959468655254445937390666356532310573793516093171769677214529652007989782149602284819184229598301555084435268464706238201680772099712838978992653997342130793583512543279030850531883589066852854782966323543342592284236814783599752144555249517532152797587577506188520104646635414969606791705567798128111247768843084434049999074726640651412798097037654004903643627479953253191974763374408853389352712451303657995646967003629799948255576986122449049181842666265687396009862080515425581694579961487995523661833928677220525407475852897759941247951042698865754797876380471679418008262492646472306073526863387945644068684572500483492898803447726653290834743975846550117448177331272153612749296264661127396735894200872903956636536834346085217693579096381678677910773895255795932587187523246172313877240752142203822154923142145936403344142376089813134530815089987875747535505083222375064681507998049177438912952907234395424821807057225484918512270873698599785670869023364903257911651556040640760033508444880901523341383811166352008749182265430578120037986181634351867034977071455350976777461955084635920442069698091619853789069697798981411335787758321552626848397788011376332417717955116738630559345356115709946154087143099626000412582223269072175243264030769328679211675799944218481048721753083987034839019916505510566640448484441714938470266127473167774472149300586966424094901376828703471648106574136744477872439168367250326632398675671039969558733767030510598064460018226842524073129267730717987717143958596138156899031853644909444581290223897375302278080419926439167506735797292316096390052437474090673985446562535997898225106868418748135285990081901143183746477748964408972165484468253365665658287357882257122338552365236296852469080852727970528122342221701827640241152579433108957269391123850960988064012935385265698441002824004171199287856042435785075061512462089979483452042880073071701388073130131598192676895314887192453324590544566686716710232119735489949025477127844598259251699987892173761260576604534262164750523035190817984558487018032362764089418797462544100537433040996929688459834822858073739177325969238583997474478048756538380607091377066520500768515374601486339204746036787467252550543941017376604429222667412873444886789919558583793147507570648870210284545586335384316023190614739591353663583932942835023950363036521976472575277165430793159301271962012872036542494566466293868218167925083271696504564649194994820149128638095564541516269151119813652073384107857739039012875707116315342322541645720302519882458751777620697573700351464343123053920836845821719208564919874979648605916851395812457654086100546234764001000031304364136444171653426105986559714811780652059822184529849935674447713399989740453870535422621201286926659118555865463857910269405137460373255761763064792655784858601522364596008655992112617273135461702591245289310000763291873904645599770526938299787776016883777428137897526597156158679148079660590600118828760925335742830353606081045942034171066044706612860490316893891455821871389524623723529632802518497450742016481801747561301900605105632115932986722736563104780762486259987454480058176445810037095428333926015763062288175411696372724395788890629075832756163461789238017177142158903347485956003257294386173252334705479477790110008179996316709190977982985516474957695188475612512791344921194451074720888772211745604347583767318472599325630368155166464707048980510032789299722886298164466623646085213682026877865335625483866426986186479638066838353829603994352840957959434109462749651037219156657200066382552357873532719913169754257883089221881778713078827687581045606864391331367789917118522148245232231648056687625335110786724013640300092559575233700142674245259319651248755721065036635499508810793583487713653320837069017142325770188589340678172801497475848346662263210311228328670624434089374079640829403276832787757408218656205447016988779532126395509975501053702440270371444988376130822402383104943045890714800074190571075538279318899643038114095350034592129697060702781950797667113256112069736265536492143628236994619830591429618187892045311943482370087741262706246065304017082946093903143781457247331307677645302470616760453682676977058957289626909566248624899819248566875552184129728215118310876343716028476416942716483132308139643764646746395230419425991478923002479321953923154767055234222733218418796294736659962958958624102156682364774984744561146895961648627022934446661894883104302551510250610879941072683865367204087401479555770527774973225868598411902475108061585123240800270410219501523336949849841466820801764406556165654709377556971263592738715104621094715865720541966254165102209618012959007155438665596523333720320999559605604985729758688123950822280512954548110805316837457437090209926727185866033827711265518943189766678823834391820182347956924943764116753555338234395433694305162778981494642570470440687810262775783100219075789835593094972436837955611496388795996507692681971084687851295357787944102337870110837573121423550829664562117265667498871521102414306556114178541890452325278221381870789141247960486847154319530743523358257334097950193024703503959214049660549237212271190932527170360385310011302738946056268877657054752771828583231735595793178208302126234767484770156368058391622861736506848461801031510132418590562666043975604288247447073312276650296988800054768469196797993669679621253528500638348171968270918741985812827265708804104587303909415758393799034495819972485593312666842280190612772965698428514573763059126465949972310432941161744738624797924429961681594172057942257320909651868421884975943139907310830159993601354450765324651802316832424536648515860933299950746217810065711328978336396630915545223203017400437849781126664782805378099725098049733631755795432640647068267738952816626359512950603858169758608290772544651976635181595281744377831713129476560744838141585137358012098807604420102024233904902716506020398704682596908969787002866392173794949632440697053587535700775944583911552591484393419929988434482773000799291009443054652588702874462384208241418824089269812742201424074052198831490100935712617024779229153595847225730124300819192950149048984724040127303826829398369746824186320517604293203448297462163334902084862894149408322695185308954770054884123142448125364814867986239073326112755555204596719114796400236009086073307014897634798213265412599921907755046073483414938905194433802826890469221797752305186089462210064430516631624778401691981342033229064803751031121764634681200219316644113438518448059427611688952133455627356017376488704828113768353073578069416660995663553982300152060490999905475677080278433179213899588569079676420984604159546072587886537043258143153931355479809841025372620676561642402329020074513885132660880717039610763018159118094196202547645640442466632411044876817130249941209190891897930465780458163384295647454678614762920096704537661369939992052257445858004857841910591652694689968656217769730197990454862102007135308119096911331757255447319722302442069074061102862251028068691390046137719054672668393060370464222206773710511637649043287260898140887542005544133351173286820850290348783279740911685767639984256371063380807498143012397862179833731061575908875226273333159334289685685161976263438448293477994769828869371709749226245637765500122571423865982361021468186122065900784249541830219070842802996381291138978902647444117535463445112252653455898036623487123526827162626033021257872253709201380549673355515810585584555287954795429787895074077381992947833454963679288014690772900165359437855044897597094089047683478873277854643912327887037350480138354317827973403331125597598105389908551869667385329188298465336238146771401326271039365063703836773734517536779766450912630192326517441319815099586047462103086336303884751028405743579386562579561630506167191169165455208291673798659024091617385647793745338971494533683619443988251599608124380869185264005813090512729178102361359818095289201503813437458188995980214890395113294689034809967486591017783634356724803981476591858913660190482214922960869189504993656897508284641019817944770688673986417721134525243937549558447007694364029358917457447797677540375200933112069363422767835918340775045374881339346937724194487750862017658472285074081911530690873385492187433933423596016873478752939094889635675342895787892704108370485366831203223363682269493666265468171903992330880772541315269102994867937099823704796652171576713923943786314841401203534553512474478709600084937179615639029044455447263613024832272111711360333295764354330193600795307903939331368748695289538220130856569584374764628543905412177254792278993406049257352828683452341429794262802448409012456132165391065743258167580657015503487889140712013740444937972186160058839207778419826831585691148939387112833777564681197170369252535719089116720562421220875975302332005767869852805103019988161244669361670353156503676649008041098074905058179007490904536319721068516229587613747210902544751988409302001373034032098331565628774554893611628394151414975975963922322094629600141519708489202096055168210762342619053225268861436499010423888654345754317922274040766502985468044715341907430207627491998724035325880773565686596757300083366754131775291435072679694212813278177475337377043119554153243767363445949045197855814522171424796596584277443347323592898569692663928578752703885828801668890516464585837602740490342447560677989807798516612455524930181169990399384628388335910485278057845217563993033121755657730111233878626985709468624459488874476499593233845637252615494954898090759090090895177241658264350516281418737499611853677969843341119563410902075741415430570106800723208417096481910916321560667863886788468455544145013588444283956826797099011177833610582176812138178981571816605838426805416601745589356063524494145587323848114992904614960536837823482651195410227985082481372671718641028889574444948246737455384544828667820701738424978668185997940671946449610869343618204286470559643284440001288715391406664576087903781105942774676746860323799082868691635019504222673213697153740575238872330814665723389898143287825661699546534970131121130997985334421557101697974364651880833408740957437071400594154607321773363070061354889517174025998334518589913439366804689078640997591984327987259273287242864508611071440018322664200503206680520122277061378004345581774908659560300223760891197439575981502846399916288162843204589371219310550358088421067464361767557545144646104148037694355575751255302683539323027000145030453228818857988404773193520408006030344221740174037869020299506451597296055746493018875667907813777457646385586609066662781415444410259460363623481093599001582318272747554878161384768021324948899092102915947899249071165677469842268212379843477833470318663210466614276219585768489811904848661109147937878925709348048162977304298142487879195592481017196383759776418739040267358104081156671830768410073873183092790827856910820632328029189560761857192956302499680638783840867136205403464813418029364680015046616257982301371319070249196034304642999217752135602713870717033069415540709336654691844171694882375087363714894668971755202299463644002784474453003295179879859920936486484910591200265461558850486129136037954530074718978902910306017256832302824045391287425407732751490603158468184309198622679402205218792591452640145205450540192662961485708223295643843288098060907785767893251400169888331874272293494886099462935725793758069461344711302467747637143907606022339116646405089393645129432134769894927994729660657678285648933428908896350607413986962843699733003543148395941407503997008915644557360089642438748806330521047833082920960563405403528036046874286311624632221291759673274794481270192222135496720942685446776197428648977770035684624804873234497699240836530971884480055157343036494348331005352375457528253706928393390941150744908767025198207688610348283437148080838897620810835874220120450184410579645269133720040530489163518689613160968178084210629156087651021012643547517567852873626576965195923674945647779683306211319171750261024774273832437314970460491822439602718297205126173035446859326386868290762736376562476934534429699837585626960746526672595107387206407752606949205763114820794546024426972879655981513302557084244802671180568142551350085167561128748283595225935874730940182232356656233185169234796484900211784402984091589965196275591362092637493255306234077275073575099129936564709938569104434412996553098667700358196951645689953475598071047778625334685517520299251774096944123524584515557650745152594625575945821418082120740696205904691153274797196830083613824197611469366319229709969163696391529200472837268731801320569063030159121032867089258809219548223578987709119724130452150977143575504009770689818533109427439958645010120982620322658262977591259086787027850178089159327034090639087420401111350636720963543398590036646505941257886978612378557154207652238980971429359882241090386412048447959406192641707794287700871474429098812149266792965119130303119462603088150821136711457915535983724750949696326141066486818126157395818933376172755762639167235120083509130489775725217948935248684710323321082150398170746158179937507629006686955169952266941549365294843915978590533834016699218049235909446262188619471570123541878682163903947224739454597932343304308006405913810102715022758873471814457305498261171278341615417999332146232584480043418223333611131818768895079721608041222855167053411728890553068418886925138499881776760327521166808028688903910784550348414488880190320387346208102749829364308374254403871150191471409074109254403046610244715947911762399665370042992127406055728198719227808266838473421726936953975891718799761172116966904492319990239564175115137349332382925615780561550891481953975386479252145709873820699251895582476846693918420962340942892169215341994018322714195691001646756893434501024796716578764796574874249495170959265693601120482216030518233161503486328509366717717622449377866367483254259518639452436311642124679798942446181430627005900226621018412871089637898893153090468406730767433344385971997468331361876554567381430198612208526378008608391561672416031280483979522707720752090105960275418917980559553937898234478188510207663011782624383181733654151757782250215049012574860474415333006144563287616076542525324105762511739882800199004976749380264990876595997687466355190547387158661036615360311558340453551262941555619635434719662013127245598920435478427231634031037014982993108512810761844692142349854442037099491303035045816101660160756899799155330176639306822854481686375974383748220419556436827853262701941832797195530607851316717520087850964271353569718613680198978171058365540094326921806263993121766610469790089648983425545475059594024301866150048920315515153503484769709749800680612206816508985518574720987383366106865538757934644322879640598929122106830661987609083847804374198156489983469875109142831671319326353800006970384805068979634109730994877361794627096460768287247764797889171656584918835579602340693502464593118775036109465535861026792426846807849196015801964878399502556747959846950538769451156026331060965823359588859038846332493197531423697148700824917802247103534144097241522328371110652892879297631262577047035532693587816528407601262764282642831229304783242232322824543142677845878209654798436972054371752816189101039855013829600599740287741749715269443691125452484253848073429820743986398462328510853943897622225984893238288555181063832908081254618194262263417097973921531642012080559015315727106340331301457814586529518180045781275143217858873935184046051369903794769895043538814409327555121689600237635593029354995013041628728405828714153024484907424128699884856441632924386334738596847532202491365942290760746263649502000507273883565307942730101858050578636824162738947575003958145124203896646377011038919762000654954848671774101658615945882689778725044594533448040344736205141527044798203487136787043902185014044611167105539130491415758211533510346841826380534643514422804159350875559408782791430984606025107009473006129058254769342791574713742300453253514055499313628761177083021455876526690855387817140904366535590641638186130402143270904478807175092270767209625476631023286646646210066668003174612238702036225313424713322792431643756724488313718302742123552251573259976059858521976695453502437135374531809178586855529892602023597943028475867361786240959169660967927636276672502852560667609283263052327940688033206802614867007695011711359769741363533712635729024573103567855668509007287005567686312827956062534004591166991814098199597527164350718724535840440389398813118474203518396107436248091006215757487066477296051047891459804038190733626403850401220165972919172544758993083886934666095515139186111325996163245964617817206774298820339428215650884133044215689622471161858695945740559257557598175608263836956374183174368157381151449265018581194409240011166179852230670448258658719471532821463285872855856382612349114620062517801934992641388675133369631385854617040630909940591356305067507965223789811055624280611371901608554188271902627111690848551375195777576074799582783295909494828413770926711843904699199166536048365329031965283197557586043771095501685031590320181955069963262589179067090922004232239474007703488057295215667045481444253451599398390956559418105957049094014168811242038340891816865638023539217608003236609541904570654238190976530828104744190027856465371150772065134364913796404737831410753089474577887608540120156335087205626577774128482511246451668994678357732850015531503594920490261035187427035227862858089772510058387345484681037307383492911361670087305917071099704372224420122588027693273442133847250635768286285113021082266976919354294270498318322668704191856515098768032351022053209873972085991142631966044089243312701927890965290821540905045164770823231808897542392493837203090573819546677438352394628530505513590549147700505289726986523099097253063400814960922885227455335451291273499784800725542275415235962822416562369432700004857865887133636168465144355677807427216047432861583834451589593761950998505871353601841163187999287999137077609026672827452686991065844176978764656154475892076557995531032301834560615057433216444308707508882239618399076502395005086771289486616662408784669356550326723981409255663580210952864385135570977667691292225997516290701237423329950937610110699139614673372243746297916405186549225213001992145850074788412855989431158810142512526354668740159048820604969227424412374500431546448853255116679727812367141796222248236878597175213944840423021639723084696864626840665559004418394281982939225579487742715523425970270439442832720757250004547112793981346778288568444547811478299341975739572364776778852659205245531000905993109662205530221611286321547362734973653087321101461469556673790336246881456319274959134304891558725487418979472136729773375712873335777592651185868245059938335040269654044861243005472847676735445135990033407635298558838857543592677013195946041370098369417466371245001295242438526164665584212757782747646078399029995035185758984609054847343275683744543378991089198213566871394009474853387678690528345810190124918026705496829335817159515428342773173007623983296077106899168127677559787142790038434105842770369904912956783453484884849639928772199595364323458941681020421439930996441890749863545493257015604334190182293083810754644366607671600916612947190163744096811196848135802041144772723108165009207442727000196240634469298823148032184811586884027927325363601077219133658198236467275614605229105998247057690183135915732989974200669611819187241378306583133469994019733244481274305283632149211775471372057508670453119018465436885023657728118226020409780732370098094119378569915610455867337796318472068835758974970665135148473065567773881639649396815066926171508794070210057079842996017255216942291516647511739185911780904490814719183063324047006363353964302949099713043212264306332497348145744457453658292576974759397573873534086352783858558573360653195970048856023311134691954194653773893789200071175944580418362326258423381868891715540205419465656874517115463224412280612138507223528193746306069665844663891198416462007309129545575422066304637044172134651275078239162880576740610675302579980437058920171161941407960203571000347245541871575869803670246616953261366937355308660308638894020498299877305824786509122027876420575823918053777559936021402373001381046939312424185191295468222731331425871615724973041796501332948552280147549007574515402286615028400577429798499151005350205486984787564941069648844449355118236383430399759260084333736008222229607634306471154954524056342994980436990286357424486688488939742990471217319038123383364426109427835014858210259556312016443489269647834573977210035297142285189348905469948384483979247312923586548426067397410179020245812347855324097065576334975655689172033149038257910468099743364775416680470430499417666828485397538843762823896879259283966300056274196761400408448597744529871865958949191023337459103937607991477482877743154290459385161684256031520778182143656252085293049246048003853306452088535712191055167202211187812668955376900461240494297021913373888956322964637191989712910659824975131655195098445460592229753533151004341865103526414168213907277379579898762198867981603389540477144919860489482733760784844657732113420432052383144106246096584654064483971838812932009083240584945989697687786651621419533181847682933442428029611927861402686296987132916123017301452696770069659007010685695052874896579336794031275724481555545679885233458226040410470938076483784084059119159837006451619415833310974514878193424062767482744255674206435372011412304081008194766733818473644863304154768136379019882457932136944075877410542788379124953430544009937101766930749560244612523545029071524278816047556655989467392256939662091499303464428175921369247498020659479514969251203236155670122536011890828057448048162620990089746712764302703593498951763462097331947550639887057264488539698944226210815781517293900767662270194827815060222209342331744517739913037303734870350328658177509768516658492937172689939946587471920078876631087092526399055978922729751954590561381386244080862733186135540601440998176336836834509609423486036426233488454126192730914289437017525614338177420436418718508201346833105381799094093247274506082067719994057797187743787686525794573590278342386055631402064497511918204389486648825376872624903040157430736510444967832881482785471892141040786885447497607092549135329879302070689406150702769470271497919070968971582092567317927754963454553220642951525362569410744314471878555502844985153976395963308923749076843020164457376612070665218665384213317054887316644495768847166714271088514977231473972909755087718227178411304755387725766908146228960519455724765439851377895836653020592948505898905415470707854943591739524313712079916309804049812938935585895872918153576904525135085962020755887006824685121063852302017795569768165211393240315763291763155978955836898707341262367203004252390296484478879513404655284449438997723785395007038047253281634689099171191347586733391081766470928068192587580014488579096542613594353313102126946719757767994831517992644511458831948127441210712148116329510762898605685856702470075139918926711458955232321215517368460713612891878503609072059805394963382884651106577077742878924674716627915916935823722429173342345688979198849019998353598861087846051041752852473983443069141515169408632987496630217256744327330237142345504424333275726111370447613123897146568885989449611272928752544064914168426874238150545866973657889465982164423060423264122788194287565305492450310626377168953122204104601658070546084569566073050519071989265702099719798488949392056969123954166149435002140389745171375029745533874269750354334262516580054284297857829382819698030077043386383433374690508575454176068183306909508922129878313111952487750400593277643624182829197580476675697531948914229024455973528847903173213108882736977366665231176753445128865951174363889436136221389464373804366578946695009716738873161156093357272120494853203773815390750013991433998594524903084051404398611861371116177801895147238271662171626193826297616961786953571389852374105973733936621326988737642502922649605599625239894883070874995616071671195348415897465517277376048565598803353557316855515016874758502611192849193942316948668308957744345655684175035153935552438065483128079665777855773515884816084549356074072359236484035167455071960252593857613822010567591628880771520112553720509601068084355522508835595091958243961888408717112698481791755992916545741272515280553648292681710226905576281769353038754710793303056546996251106077112449600613352130923249190308716561397940333228068876427259634702203803317502027972667606651468462093544046802220176201222943946013763830630548324888789696507648358681625757349539509049609196692818858426545107015710962887516760316963107707250120275853343356196536589344579536329536509132859596948148661890248160109093873380143418541332783164607837362027691753042363878245045322593717753619131999732468948596504672226406263858493357999893729486399592896566234862935325915645912001834886017681037490118028329800989707025970436669302223455186419709972557759923777859676265049359220238473361205774220435714646161722846596974573896890779394376074214255786204735285464194588341782344758634100978730974008715449285283394217789785495309916340679550448688591431642054217810337103974266946723167091267822093632097833765562221258665232014887481751277480639965503698487789234532409838733444664056823095239324189483105058965693900333561608079948831057314354962397284239044583877904892631180407212992786932561560061470662733880949319039839646269230005735171630910183443072705468893755915895113863959158311276084605392263692434083591385941896350702496670222246946517636404513683177522309808968653829339563773455555388924382176117612119479945510831167300554236823356404580611764278748674450545265983140066091988898646706750484619202012272974482172052647805893194620604056876655795404151632471945272421138250082384655025283550269181411197956483009192972399524548242054915115402248517079133430132675663535415102766509972088655009426901760932315266542290360528045659568324651753675677192375783726228666863929173621169844235718997468917448084405503163463729466760327423092857148019717340959253523149390008783615307440566656159658034794785568234715486295914573142502336028468257228854582279959408658963822014456335177362876876235673143668355124813958768963178194223476678181216171385648893838607026293203224132963868685274113351999026173149645600797344636137930546015374137717301710461184300578680645203985305330618123274779611904208015100640163342468857721910997254684929363769459172108059002610793282295368818009444695605897095819493898941201460049615734947859205046670910494305834498019966619385489803507925915630392118071601907854517600581040748648727945344522952931504556845324628601608801355946628476344318709698012508440258928760451831918552733224971612987214269601687322162505645496670572957566407327219771302363312981635603535844437732653698652826435185710384109566343159226691775558478365639653841838777322881928942908205980501456769259162061143463686410730924147285180639466381162333989642579867434989583572605932009485260401159545762910407919567812776618234377209730016037319084710742958442493435713134966587640689383536080335580269342660546662716689231738811940834014929299382804855327330296703015213496723930312820523422464907580467684765941154464709632252338665211038213262649203380957933809408752374994262784559651339728339366719226976729594285816725191544468208468502666547639371248090648984129716979507207591344082158818249133070666046871442131368896669017272635014126546318291943586870252818349400922070327895162764878727509545693891887117101112695733063956121254345519537832752242512534265126361926214607063542749558534965246490706988717255204675595109328061093265778100948660870363069307767051962145170299090784610419266556644534252945980567144099313304418204773229093663955496059775001293155565098607029807952967547266915594522751714569425409345919798209699033279530887570722337300365141195714820095778412783703654021340162206101139851617335275597679619729246870005890587240111984303613331961996479482825555790870270750414964725587179208924509342927671231157272624480954314980084811311267071986885414295322918015689437354669620314991803521149940320048787641713856361632760380499318532485403872461529273421990477465722829997657096814235174687788318382007071748640072133992649998065599207175121416513434252138166355652081315551726261118835157454949164600971542078483525028995683999946023881193359612230457164579810401458417488705192345233347476657324938142067921549810798862284459857150782462316447737941582533481044620748191744270798216304594033055376365885784710381445982833054430076091692528913768709583890611842281721472756804457685746133305933496261819172769075932008234257079949551645759685902133732760477521975614826223491517585875066675727535587268487885180679197043219249550506332377138695897191609273019316827691675382114598481392597265382278298646488845796334320932733122300408543861190588094702762430935379787610520005128784484204981735961913382581501943668319338093491856418549507953196834008513385346539343157856935257249009315746922238394140581246817852476303022200865378900309618797322573909156024556732366925313236766746064462218405614496097278856019254496584923299813989560402565855215974583082497543463545946820469478383002474627096619041700863570497471434492210221528295103634547521532258160262984948914561861454251883199797642089709294261561467219117540022939061072187108018250113254368012680619423243177432421173562701965864155620780517800564328950833174913881042361701421847000911029628063730170595010160933881400674069760233408547948630575360551126547305570080410749425250275617413808840164255783163826079463027912617967498425339539410103371146213573385490822468223518595013229360959451157221934382228977680006819138917491830621687197658222040410413618140053572649045218532933550610315540125807217859578341818682210758940041482589413366908234573243951219198050447706401320945410330271215813656083470361561900994010428980315526589697247697989414149957121181592219005979227145701413497306688391614405196996951120278991653561791092485553832890834645157155290045776333246466354181989040913639176472905242495216644140880728888626054982881802507786899392607172444108918512378353359096970929998010057984437112316169293058544289042760896097736668569724439090736932385394373112396389399306459951159744811240582081987759285454063284013745293957205102618878949398133054323073412036873054625758384234269377230106149004896990569896777236328235558309517119788500096947177843291135785891914354571711675804201183425436970294142867437010657359001471441031436334346674208803006889216227680715298741639103825912094505246351706100983979322182150607905457229323417761647380716973835350492365426178926268733936338770136061701354582936078029625029586300681147047250678491791848547551776229715648990568055425953520675212351647243663258523346908888911576849158792153536860836318600160298723776558377398755561135404874279114257967255806662077474552963570998557585392812167780297207782139831410350128296612920581496432033230617858597347263519419190489928671545825445531137660127363818076820635872688581796162547898352851708416585598991031664084871132886464705581219302147595350615276025809721350173227823218724902558762556547353274122444682035037002614170297935956598894733169437651694221891640341603369282826815407954188729086472322221411546097318322710510637409407716299280877409809579828239023785695447254041275415269713377161843513996389577117738658680861730844546245298130775064194475514761623149068961099735036669515003825106264362701494307455278426717412778341898531877782722598909328465092363623634137643124268048547742951497504071149616593512470909551435741884764754261766587341084882961578592236466025988285879463100003589611660192017937621384665497356706799039044380010044344222122129549220252545903322688325979677992624769380251776477915312530624007632752465019195205408217952327188658665937655722826698290898023159020783586573750093727814105478611236131039910124493058849843379741206455546518408019364167618834597874278477328426291755264774522632344552200624433100471493323950352951364546495997012795043975855138095132813389416763063916021310644842015702811942177824568670914293755993499546412860238104653307534756394438149349441524772090559584664698054838180864910806860865039423308852015361742449116785821369575006160046736621547919645628535024723805661372849904158682870753713291134977005854001948569203466127298527644220345962427795763859454082922141114050071577630841220041508195088060877419753255021227630143051719140217710104450592059698143282718961947168459665067264068820972284507215994711554711129702186011234013187599980309863426988670273984538943114809833525433074790153164315625227613279311688793517473144526174491478374064660002965428918994739287996682139402424523931638911883570579722036523198941225951241635697184231135819322103018967925574223331695455846765734376170734248398691987413047916813746844652525412865415370314439442163936429078119269128871900399840279007548410714875642089841334196134944029457349180557025700303171938768310324518215783718572305789705227590494941023984548745002916333975033198932987277730333115281929033375435644542472641907661062689142571354365511365779541008537700758966934996740596056937337488452340379081131939112101083098902931643972639704038665237635355612717631390470169260715192426458740171576403217364288963554645676637778992984471758166723289567805822109055975979454108105367628317649322861027834636701362751576871377064609879994242008238994587987966411238751003397939752656373734061240991652970428652394588124755001976281675452011245114153728331923587585941470652396030886523796263266856758769355628864579674772856576770334524235044057887803598323235318358212468061119795948977960851545214103334385918744887825613214536468695062704486620529254912967920461808543375910222996631207100570237161621341909818386599777554778840388619912483010268411356025418718733391362560991666864607976259261514074131173476022544440998651063750064703430988066212724083418457259507253882520923295159730647510497802814381491269182565925136492879008591300473139588145391248939170378885468433105456825392207042637868424609203512416194144916105180206835906975951994606990643143924158553247355943955155200154615628274987415751492961395224202564192842384850805905572590389510222429352557490675794726738022269314924658034754521787282189723653396184047628527993259664856013718741880880470683352183696921115566107948614564976821490618829065771447860667777340660932366193131888263076117764337240438979892050440158366563127257376299235182293694373442534153027004032602914148743313516011751262848030805087081691373459292491289094052461132765838907933098212888169567276087729678449678833349052220519462477370606659835230547375363085798595529987523893302394640009530774524728075257019137142275423939895736600341115525638182501849595254220633548502096699673210092074122774465840834215578276193032048345921554653676498822054670235189715619456887994868465549665664174028668765425813394236208862601903087907648908727246926622232627553067157852924838181347698370976342042668330447955778282948992169102410477841527493427535790564262945363055055399193612011466105971293556095253988393584199035984568121019334679275551923188931075619979299276946659534645917311178157213764404712908629140292197378852067409058976373195698378231861751733818610201665493733397931636490857355536284824554132895041154357018390396396288865289116157292046804762931002867479546622154189717266757955769833992206253208007804165714517672615538369300317403307852741850378701578367347968483899508303220526121138252726744433869574095584131888188809394783825097617509959254039240117692827549150061404572368480577046905242121957305878587512966263788506540059195472652617121440491684129868536755673984289804260711877175162059975202159014570019305274035269097367901586385080280052661597352638666385626612308640901595681041046250120200896707935708480425540784157310895358014815190761589865223756178289649912703728490258164197990991568320393423221944982643852992066962518390549587725431064878729554014703053530951787994385517111109711620613688770806048461527182651981735274913869885855112854213040798428553502178494222661277364113049165378684102813360605649220966678443558629594803877676177264434537400246345375707552835246559175834428266353322556717926191767206200666959761481274394224542148604017063057802687615822029516727395410104032002767254076483381587579925249325874614446774874542910759612767646163793376530663001300905677980826337693454817142092171434344783145838528030644730516130295438489423811997499183992187687410715419771564160513609945145894294484257499191118673649412915896570764308300435926468310444552282138930283250399269109793778869822086338211558071390898080222668357129042997336065313198311174809794410706306320143319718604498943127454433680992572655617457496272557542174188724504421025435114393003750881351651085276725733735703161271739019558809195119440655489627275029084087651694025582215952902193912075553063942095038722816954445230878332635464842963198243378328079180990951618035408588838734107748215934785702825236041882861394653609175588795417741853973364352238420455312415608106339660216151290586518083095019776475501362692226607179644891635054532033733124098876087582349021142034674496740548433986655810757165515329851235117711207877027207841224258104503379681466499144309557221560100512514851278981731300610235124557615800228751040163465711620024770509655144397721876235719422702828825362325892502552504691618564183254524336165566168280216042569953843568627090614774605332088842181295377778222462060494850061467801607316904930763921747802595472411357597022310784614427619619146887092399630360043051267309184636009754621700119972601687000753200467189269034663786675874419301893077128389750662755425487890741691554668471236659092095128685491312871926701085808574031857253755909980418723070140028610934429734448315493836760300819998624100793122619005936214856251573428800022247534917277155989479286820437258933764146870245576923600839751578480050434368518111497562351072529603612359168062871921116207994521270754578171801186228904988384132200234720723510427577739069765902447990768016816145897506426511119508517285569574152893467475512652860826804063896027102159553236803670910027238342518654383604619208009261793629241229519126244149082010949396002955791434872657215860791438356245321612502272105526975671786043429821498087889992101700254278953701162166794347636720359831888406806247115381072022061240364169788468831308384869152563266578089620224945922588476676852709427319294707785515492478338332266270436992701669579500003630986090146668059801980544905323398032625449973231804472723934087748504313137243181464964821694940500540848635681201565338560963870970644308138971773986770103940801568776944114453814539248281834286309743209728554298384005728692966513003918239564795613634135857579926451101142964229961916311831797655257887410325524844748336925744267878933364605695156119298817627169576145157942078618067750289595624874540877826251880385943522913764164110396935945091824393116645794276675337053486327080669141165687380055686600166576093809776782843576023272233523152513702239021338838432824303271647757586844055964219840870896725052846662738006610348031790848580572114838747170210080941853686141858915639918212554718248918098505515200368630493121507121956717491301521719688648813926181712210786949803716837307688738611623903750250106327473725001448080160262276700688434728060583070926498210898448144523985521194928892197931939230663816708920850534055905714654268770601496367500508529636393134469142510340607053905046987492244918363951008766227793633678804488874313740200894864539002994268540835600024915868070137147963312959343328855935414937626876148547113132680303276373140896532682015126770122641879297579399453335996334463297638919002353229015436264198356606640678131244598557751559921270851639299195207159487465851966902477564120440889356816950142582480739265104206293430920867554081948980684065546613029061846799005737967242609901691864938409173823238149974632687528847285834731435297684199606139783918609745656464615278226337167567249547099832363367436349372901052518557608242151930947730016584128291435518055067379219971771706151647154861784070444078937831207397652907885648488704511883458223883904671212199971848965216415715372520787241611176356591095099769940068116699054356313360896470206837815405307469886009267894496258243581542715490606898556921548085306191626243934322507556116497069732034212630905209521074925891685009540294574662615548392053182393050056029425445449897441874966636692133996845910528721321758701301990597025131544800593930662788461044928493806674792387410755775902171801218019295492250817214677129985928105057607327578417352422641938032901348356209141923561724901677348451107643971895737313615743671155320927825823307264591196689028300403786149335607622614363114501950299614262006086232117562499016517028413754373101169499759013070132483664572504194255191308909986955196732791696017230950962953993168263232537128364298776749088014349207314766092173659679993232306604971997488968138035992938540645258520370323754837155387355532870524851391896240012612831241874476672263688761453811336932158825330763106514308188784146045921901159449860403078958726531130917303377870614443426818907931085207944472189324315450721954171578336379257671746131916853757974775158298448267332903467355362177596873315421817050971611028284228270651242848345452122582793241185680960743318294708761280374423463968640482699529361404515957265311595633077722068406624686436437747385851898521256017312426028313919558885765856104404185774678425698851800332151837880496812187039167879903044708623033511686178616498139786539888519691873834390244707378918084358680792984940015234556352711980818864219668889374332292356698081955891445234752027812261692055426977011907563189573170777822313258422411405921778560553553549418092859801261462684531894185504377501040659059259618880951774640090888838344825722055778165058402305346496523468047514934227568546850722487381800199741501047688688952570839288648716260222800813220352823891622871708880467546789739569441825003928276613478280175833442014534399749895792317871110034182175564102910120105093854606370217819070998914250083437644122417243110877701032050508946266987983498265325827723855929472677483665687621041537425872393578427539111025592644400137002107806449680000675175492637415113564568164174340377768102763899122004504345604148769969250171987577689967608129285097148667458770059313225836075766699070553231089239185889545545584333245543479952430312194985456523647777971263519942296442968022642438927952221729815141414811925823338306587613479969700192599128644277020517166924200147529682427945757147111253308113936687151954135056017078070052316593682148962696834996321561753904607084150321513069706001451097261315468890443191917011607676895740584238601536958775631540394154309986983306313869858999962655805709581878511713742405739053390351091616571101465275187847595629183429749055440954369147192639090621055499896633196504205874788514195113175623155902994490929438715676436950393425041676125798187309635484046386686349746470283409546461348413568604963061432702052224143769278003619418435697938052435067943918489491301469872121667876767992327363297339347551570603743289896722335885818259874126872029555260297240698843192037389917186683770519163431638175758820421969650343234786565093166813610344643183117292158523438726048459693069961550764086120210590628069634371462844382948585437881931513648351052806074935440644542857250091846123714265228052690607714297659740592587186704200067224867361833387785912786332112034901509338229749998660056174018739695145356833551390439241755464512473890584161264040873811712166385547935283560797685680148371780564444990177368513637627078247644793942559330247041243156929415750043208175109142211695749503993357724600609166465097668283470358634416381800245957090071610499381363989928347955153699539143968944164032308550831544665118473526808432229906101568042143794714858960863707720413654427469530240473684642466602110503582022533671210101431238914679752989036226365537290632686030928925397136078113544712196630206472029046901254359190277667401325366557714153208151756552259846317014939323461486023944639015817908302277200705878775052222080046400164766117790666338791385157971601254768405230523646821251037082632313445183236833547419701469115881151832093524726302119052444320592514835328266531315498041457261444811299212444484534680403457156699081007640865656070279023167763575488016282721269992960424232878065299905132030556226438479996393850138091212123742295534438134560005972672224653783537857180671132240457087798032230448208432564821473343967782254688006608134035759043542161896389681221793877855859946931551699038941929875148209450564721975466958597258786795037415789989801724989255284346780084424817421242130084162674738095539072556179898539288426613943150614364732043952271496707111413419200678008136072251142971206032226891335506485983829335889243246439808364577869602125528765034934808445558772486185617091121258900473502818228345246792535318723829188878380110895909245372715643164067973276751505761342304951780074978381165956323908558155203435344937435784543153906581720577982829279350770376415229540103420249716358541891010456578077036061907419514629576084371294656895396316580039077654490149252172567909307605354248212305472618147370503928569308720904371845052863524977299091581937898552459748860108846834697982628044301466195850454439162084689548900764985941912578433284614854603731011100694422130016341040382272736987879038694446784589361189544029993241146109423500446449493926320713589951391899010588325312673299018110197076488413790784464652579705907237624384323527566157822163116271371153815976772040941339330051365764794315003512451324948035092823697871865424736629353100861263092249963989399388907642987765732063525500826292049127159559064589924784586180836754816321760551768339743931073548525760405953884166635810401102567673297685701057375702713962814013309742212750852445975210164771045715644881204598788272551249149243115631743436120093890051378417423394369243077891748988550181471614571252523184082715947515837246840691599631346273123312550814077239762034887586222064008632988382943793976909532481279389900503551932784248449932035864865662206092880647505956681104014627738466863304923170490913166314288823361992809003218161230031791187934185328348540323542474270654959853860980727155286690369031925183169513473053238710979809097859682408943787848382181467268774511785890692674061961460118124298894622734682721118436650792115473944199855369536066883927801515934964242343015549918215669557001210993858363690567684219827888212964780278259520789733687110327118285786926942153630468191556979354022795739902985916068109329845225969562710416752901086965085075150020292289483237601660744071509659694874152424027327579571584020565404844857653674826960364824834216827813633983152393697201803461680418222047443359553281515703403457728828597407328174592419422532408533506376714764929139711071518225435895715496265088511471762309970289866053628019225322837789960835790986831865997110456110789392814898258646340991154400249861976859791794684574507512861337178767652846315813913746247071497992325870312943910519218859987816420311971863000449570923951594458476698104992302551839916930676954709181812750530525724476352126015838453320276979432800349501583091829831590024356997332694759278071724132614022187859856519119426779233103708515759870071523424011221231923128650269412613843161473547852168698094555797183728386664078031092284730871327434852454975512236115846598055509476724263103325515359670702943909653417301185814912614496538690931381013135587248418460666085502449445616302132678808781375264096066172861335542057105064648416233095672397339090498657955104475285982618633139852722700829015145186320111278769570651427298156481179555878379342561978626021469608044783270551335926869882067964227157389904045345034046086236809557769462801734331316899133163488752920039131594914876881739924893191840535959225318495070607466436004477079065992729375105671576889948366637339768546637987411962694241148390973612479150712824282588771190838869495913363614105784415925961355088435315224787788995842697045935798627721776367209755353750189525462872178210764861844786683270237385303865799193191876804183437347448319072092538245725402291579661540065598254027121091043823396728925150951299080187841790807502181889215071128833306150482915331735993563677068085875076558483431954449291363015047427529359530637401148459620794593982642536863631708177039200847382960909817653735687531372428516597321577581693242715618416884824537208770215794807327607325945188171188953232424502877267891520985563791536004033271157731356843960857853505443013877469714066585685626978976116117647997481467273095306790848078725691977449032290893196254376368350062291910438898365983860307021767558136392309058829761578806510539629764815432584120680115175426823830292263375439625500718502671526289568034316011897694285636833071728092820958840561248393763823342931963145429752197926442975597082735193981505031532696714367474447431185237130185549864213591200451424491948685727729006792615756403914251125632139332564931934395338067874786613689502828530428086073602456726302823104625740740810169343094822305002439622607680501065853115675946883551204727158704817034027827181536392646141499318413537978452032648281014579757819697679662429812678300547008191833992563358151138057517064037460178692019993267620016504362588543213740541061665601251691117293496568520316180044253483069738668207077175685329359493597313937760188685542080743309028454781133317909672578072003266714923170660005407600349123891867854258519544486817596012511630245663597199513199849133313786435546114035243156900296885566565049580677870647728947074472491995592380284447261801208701092123564275992110223968023886184810470027800440890267274494304340001870331093576451369269259008752351805174934640491810816927702402641484476173951441669141462453798273409738435910698651670172770950336449736858228787879808655099544485527466617746286210961469674524339214532345128616740664018801118274440100263715492009007954781804887946504062169822412852157392527387023302606430072950757919076469520254943877155472654824058124395963560493354074442107965495553725230218568388008312294539351535528248079888740147149003138615276689311821901884254255268832736382348913644116632880775815475940848742552947092445692443605727524794598931003069672206426477286798523640309787778719898767671178430308314850391393788754126637559947725670967067906014469435435452603416200793373259807708418418486528163596564696050847287216314361780756265726154436720488177864037951010748425934613034712123350560105412524789249991260580171768158639519993624932956359824876759269474044624152488876916771190571925580605911919346730197761529392147257862507111761062671818350353216957748266463446161461107651437773384389259286547657579149415452906147446937761382490695572515027940483294080171904553658964383083596491687633688348288234166042124650845761582500071155485491590295667953828524382322242624302121889038655302669808431723420436135535231609573933673255305926002231683565333059494761021371004665328533930138220247240219240149403115155249699119187403721847875215949405574867193312367828133736649342548664732250425994790579363081389637200284282981554536781703414510302215902405501075604354561714352847323091943105963223743208863498318333509370593858848439101589486595978159297086256899080719395441756514254395727819058602158806322166424603741325409338677527388734338627024984395490880440212788448229150788144471528871798725380154435472548076548076962109362594562610432261811399686509411083689166428232493574489530397416953115322157141787551845609394414373456744084715444738689322780631481515166854197525615726778734299580182472982280304946875476338720604646295769581596965729573949145351360029746330772996347143165140486682880181788771429252056532461458996820720358609220846316715513579778387364427043878769046988155556970595709281236942622603614457494933117020302118219957442023221045096051190828834069905552039992069587703479768884220892991247920877750212361658999369158270970534986227804813995008938853370303685614915516171792980406072349328078362249617694701792509797130730385286859087753841707360834914649168961389829024689786034283288190390706171336176513252703522812921329623727892233663605289588344623671162452474567985180892048641206979352431294514809944154446449783350902131023101811538382272696320302618048106405243552811406897377415004178871000328699991680116160165881397168259935610512647301461389363740227558644718939888761928056921515831472207495734555364776086286345171422544188344565905755970413666278039535735640025069735871329406193163085816302502824232256298777641196155255870407094577976141000434100231102133449612415883895424977665495779360767266748197471587706964656389131658563975852631610559745987832726144487870220022798926070775112061714071873710557986611530121169798789530802992279204287416952739939890243981480729742417456123777233579301906475248287660016164327197237239499931556561865757427722934226361268281282438713357948932139072201567157418095688990022192432089772326117719862509121988836579017663924039465755826992232255167540821621885137265552355277293934828571212790357881870222694174635199788591048892321203995168931304153371624884331759439137893493129696315516953323121772248841862764731179135125996556114922383870346724084434771232155767854022217994213404095400476304945564088615573824155821565479312571174975405611028756137171948863696567635974524274692612844948448209657874138789449458262112418655469413223846931787568953451055582187605635720185054891249228933236963891282485411325344976421002400914128607609896597710092764009284666439240262841474269979800775382785908982815551498827762127076344888913400968613863334775072884699765616522017266302457481483513073523215148976686228580632906758832234211857836556328360611780600088798004299068081647316627388609589800021973793424157695151702610550015988210895188385551393952131187089995495764971096081317073799619741645083742072088851314901843256616292318702083170949282351766169467782600489369615527408189445428660808686293561556743952464373422262193663552429140472029412502662203707306431933107558607137539760140573042042600713558949176332697834143755957846174974244487661082557704791866326300134651185923969420020626398433044688365671599248058062374065099226581690711864105116543822122120788125952150303446781740753695880604397542323554724940359656239993952119414290645510108015399296850880925041825010700216648974531406605368529205324730670577678118107426417877822179475817830958285272307281250103683130407726234761460224163119504961136003584230777808384344676735687021885726102824219439148803427769143956398539371985484005455281876264810168409960913382309149254763290994258266484735202118108625475610094129541062251811962778888713044118848038693776188539019010436318938238329138123895886944399813046522990399756573777344235704018900511860272121261946106697548315140941723624100196259631426256264815186026232571944429844377652469830360976063459423450545580462762402791440309202625583106267614294299755002890100880585663737574108326922428639444542159908116611520485989120383642374701727655917315627563628572636719697838841805190483179016678744008347864733559637247886833455437281993576449287449830849427614157061173653143889993417680148207295143460183787732542546323881426251956250155373243732852875877622212758299671455106648945216760429521720498702599995849588777205738813557138066963979063283672590455967823359088485779910058393901218446988286898953025876073435124110651470931386046493149607376691710643175550264626976398466217559641024144322938177748450021958661624175130655013414957900073122516325080129696652809634226508785282544684872153217043530537619582469176669554842872499053550492809873597160563911891322323149752364614609630596488451992638999713643191226210607558199990115499774817990024275352649133056994861932877948243951154627001166953173549930453719541625918984937183234174977481514468196620841970069446875871350531023627091721175588878840917341538828068071313664409480785615041315267873554428801877922455480825388887384210061741045301642362466716688399060191138030492114585011201075502111412513641737448474273267196079573063137437545976576604053509585660824192062138626746715394564820854972137037553672008079161448324395367425448317631341707730135044341467376734201540250294781814599109497012976601034193844551106724579028160596571041706469674319891646602555098778393387977074500174042166466800603046367699617542703005867844835875599633772673992441243830955049184846048450991400700678889394531060864426040150810052940769669264351905471449215288951213468301100280944265057932139725014334278049058013265846185172600768578202069638941483460646953144413219191604824467140076907415732829500506084912797325456577902148068000048312554469906965182032700266582344248184390570230627552852786133822982012583714964198858206609864649720631889134760852936420167901721473108332128029976207705354581013078281392465196555407547583555087629104719348934521920997920235938688462218071215791189052790892040820864482910526895192321026679459783326249437096162808252820517663873133406822628064716782148639926770199654933894272806886460350718582897618363919104172467047986049424569262397592052495082756149652686843068738451790031248121552421845474116397214912220588660181424675705611380749865626783027232169408032921620029629319804967653678071320392042752410891157004596292357843852056657494864768575395470049510863316528618173545134507020267166013194228318768596643962301847575483736488883877505823792210924379358588345467615864563391804339921887104451624608330571173006637621505484930951898982653289793009491634242192621394982292393354332288171237757392605963314931145205228729126632240165502297346875589068615619483147053797321648396953271652768627275035164043239008300691011460501597618693365505950286830703756118175119047866661463847621418134670411463807588481196105634586021552790053348096654938682504562358468879245436020382851614139218596527051222689815438585762002432282442466292923439945353126349435531884583926872679980469224033076100996609212670462430451526653066606784289361601894514003617090460222488843357340083783888375416240259102352346446741548106205633221662761494262255111813432998088451896328881618285439811108844010749193474170916977215971442341599000419973402307894313165331120146820911092729392096861958646231106716113938865277344729692951879921184084124830993170792928572707449785461937690921577489173461560393589431602333823501664683116645765842595901575470142646936810765879393282166750199299598623203066900184515036658741145575969739746867388426449576963391091392857351331205458167295812627058961080143534055389547815323523697928268614471723780089785887264751435152231132033681762542728336800144466143297605552181626459856305453375991247590336155972101025989799836732815925267598450451395331383934432794043345695917194447817121690670036776989613361695516624013491249553743410537708375185477936110234280074083211311667350879972902098713188508554199351416899391843697970754703823267653133194828227489502797146724511540605696326964249960570828215203523369146667233299606125385064006887832218825814483010878198073754886188872085425622019580137526520046194636485495066729841942995631186199431155107079966566578106778129635653273023440032380523081572048229507440771560698980126770546197350068400338055205149546121264293069221266948024368510241170420464445598230234469631320608133258951824664921192985935926712386660122206758305657685205267151878318843453011620512257176780473934952636682621724696850174834498211427484901248022065684377744753665678526085123652620237415868539388514658568823463446933800046335291351073542365824107613156859216397294424920834980306600113392094903457547165593475088148866821022586816519280926728391696049907971383175099022262974115901482058312303872688292284015353251748617586323650591827185285093942741444659274585655075585342731973956399518292946379602611567323919869969246228998174992844847161693423543869725089323730375931544922577907536173044258937403941806926828491125953638186667070205772013237467801255534858700392277298776737005328164918297803340056004481711513622162921948517888643802820300727071816760015090744563712479240257772377316712582032102748864582015902128688979508585213332124911845789855116198227567938356440610345182722602189659816998238668334085513693300011713063307035135323789916581194350865980949056869350369922969868629415073880520846838303976317818998799599271420621617090589691955890203987618079452979567277464376002399122675625561792162253499739590108701286850604146490938902352448713148217758530681865834176769375167712221934429013916637452546349758441811246123971238053118037914151501381209549017977694008517340601837541786957763700047337305254342025234002275258544438072852256059531117246850888339360279465837999252095806426768377205786742815336374920422413211887908050765301208018045574904563896355188574570395277020416059187902603758638049227602788208390414923808236576439881311504672917206536154661067465846980113398628313527583492449782388147951082907154326500603554775619874957130311772632547315083614175883365252084398600845961858273721908916063107240343793237227373532295305472630107392892249755017120089787127502852376001203723949084342290235036394267738213792667290175456651325822057108927300547056359114895204487595314579752692967822692470171670083619113108740822877650526345382536289213037751657998733106033559242996417038841499991392786455427274090759344835199027645173758206647586303802881762215057460982623285539045351893169714695351260850465881265440947300699492687820944061789022975049338933995992584145745667127495691432251527357581577665422412324177078169984327580896895410758856112566494431847038020262069806278424334286933273985049378632986678230783956147204274052895651640050283199690142984709063318528714001141979041810804113889200500627116156410464757497005735965624640515076007949936367478555264810988474643556347372886669832742760206159715983939516720811837333495133428058191243796700855679625887203072655206405072892010958447622706623995235149464178886936191264306665318764923685236799268443258570820108586076662125939601440342025382602772911238973284162298011737358451767972247973135452988323471976519737666102295784648689645763167455545259667814165239485365133979630059328519559369943137676660447694198099821074791863607169556922729974475323427140902971855398312047710043217565037186823513779834622289881844169461436964107962320478846478435394099312865051170463426200997971276712787071595570226028849382504870483668330680294934935705564876842547385215968367002722566421631657169038721164510110751803031622250182786539224359086690898940003960111566963399854818408325229824256650225823371643129757859144669395059820103210978419202747947698473272666806169391737601380821707853415777223540285512154841933119056640689562399371368521570393275200774052380276060928043964478495388994794395010160897304496261752570345089780358482461604937589349758424731328122002470288380286898510641965796551978018324756493144329491907363528107648580000970533331818735544249742577248702098890909624897269981089137868063176420889243955557123241698047607440421524858803757051896749574881766665235555756508315291452296175215162054115732464252653984991130890160623561714090274826686068695843517445337985529060952007196488473241833938786433406196928979447675028861612731215889360807214393364477332778295735421704716462564995077669035900227164381449603580777814763980505980870043662820699252310408810784179291164528333668695646191911336179036780965643346557057265145932253278204414717129605067093486981509745598130650391445173929316820942691154013471412922522726000371828918341413634237436242531014274209742410011183370702464548417677251773155381076763789856499995986163628304505034002931622757165525204369531626032913453158011656110290933995272422306027866320008806906819199749804757704382680701770215292706936449395529577657710060195599984881851045975806208595676034884847832638333040107045707702552804148617142161098991083018654002884612806308709963791668079697513951443628520639222424943038017163673186362458241025449887168548851383533929863803619457885305315907249482350511814366818693341492300678845108271401924871505099737968737431913647039606408168735770740467782858716847719513611571957814861063005026133096523559063354400893695899182192203337426116695590458663497790919837671509067424055803886092506024129195330779240330330643499319972203246772494756179707059197019332263946245272428549633022355408290381547836830068864526874726780574647908263200279873053367899557016718269169698204113862767617935040854305129983559041213518902055519950980216079997229780120964773085552898745544503281669742938428017396969557580319814476180743556970675297234558841508681585207406815720540294694908463702486182335021681401872487606028934271475903379569700296057933436356067158433078548358647144445937305981520160804262837886255059425536319091728440502343046919614130996411256876179829904289175828799134780459084364869489505401237550611235811713207354219660574726705467934266244999323123263954636825186105316622357483568390679622770345353120433409333560372477259943136456709616558768364263380263782422944766952247523647860335960925695423399419682484111971513641431333761505880850682757069024276498295559864267178831174161448698893378010429948466556858415711598453447098743555023391135874999503574873262503470181967031598112466089150675319209238164718858832892169087984133175400436308346294557551710323277800917632599274785045838060079210330966009558927880952730003033949703326588760439992174776477567015394807957496145775422205646200724497662710100213101966725499019668947625486437875799929800418937764970228188591132162114036209441783544061358302589826202553228573586826534591679849417095289199995126682585287829012240307049698618930015233293256258562084183597196008253925139172166396961045815162766949693224915817128428072433788334814415315934872817328783467447109691318924188975514460155341870193102175080747983039010716491309429243619141777399991035286283431052330865105440376963160483223283139902997273978755214167356538732842297239935711301291317845940651736718693443206295658359018833814713683479786325206709481998302748041658428206213484595149511013361547100462492599447047135367900193698673652630447826105080367889752028852828215454031137274938080938116908216535330862616554339602707651697678217233295515502276006437471305397433041109480256757426250197788804703375115738923127423902747436797413695761534507774417873045474221557149839330711023870152151259993115204110569312880294463380297405674554679889856358694331649537722764229354539875985045907480937259958488855348447160249560816770569325616144803399220136406132951033728509641010994790479762908307411078663983485084802932486175087562348314265586107797513269334935563436737144443658925875665714057639891560446261005276796798371841886066685542090528022614507356672714144237097766130283725429158691879898315644944592526673561740398096317839573439339996156372862755764424838364190002940862237014518605081321400691359814390339714207608851588678446934092191159018956996143897049872248472781883229952912133206420652952775429023040364928365817382943359712471395539631586120265613040314459889366354948212956805901061458286690050609329308984293659025397938824060686878305488060631319183284694207751255949211383981165194407505724881664720310712216132645533961109415819499492705469347477310631153904061264333109437122601115575218585405911270902424274512455237556483047232778591080352648350745105826477960015104963148853575774570635106225220677175925093356393856083863426210962259487933699664921900588873135686155640300730457502285370336975198480358863638768647588402489378356245169784248181748676070069022410931764140893951362274914468132101117554599431042214224499575190484064814333276355865421927066670799249142088956260929440656914085955048845183905333021902847609107303670776929344102133873006782859278952416780527950976689832110804380689241318112239872712356560366144657749464075714686422501855361488077440893136629092437770750102334649835993712695944035055305271910067540976997515899064730706797163902984063456196982001243445714077515636862429957625709826989760317086671141128473536955073476808078631534471422516337629321129494508762726425486411354388886576179780524988913616148310787232928664283484186953642609141933122984325157373366738484913571418587158546001594381062215830042203478671042786643523596450539964771363479235822138315365117317620294879120786960689309238062587218217204258893883114096585465504304488268950774767456544343392499346909252628237695313662361858812975889808258009533204725617395892443027424766100366758830799858267974242859591435957896049648871730064169581977080712169344580566804053288865317628405650209192381079549052217855642118659970609999499844357556865359408232712188970428088901751340895022508290651994925733649909674991033102955858896696312181231994899733432432872254924487745051247282115801452611281819278912187327944223236058878632545563086741631913241564410298557645226077078797314536166434517731251341287182607170514637710342249958777209193032974876172675148549740769704025084282371959363616142504304727180100903520693196795482954436268390861930237987871655725927153149221998656250626575132001535314165875443826070622646883674406598550505947321366723016251184144673416010774466420710254654541860666770993539132708735874177004426064906697956018880940320133182000723529885138267526581774021846686743704208478568608850816394326134949161897006762382151840788328578990799196461588338254399622448011856718560884577129967943551441691691898668148998126818937407993105713449021659694098804370140760077990777277651768293154267860633459971746334094646444462353327430334974620801444566613091724754372750715507972508385667413910066751180047549244568245787433577987506560330014824071176393649366196014312221900595186214784708799128190840805825335113010073669824101879496062883289885049486004089424244329780703308971114529559571605455366799860831304637172162303554024642944039918028552828150061226636736947782021672520062652270644538411945220035628426431363876183856919608775911428840620127771790938354127772015683899736995079703087771550829887473606675848585847426628977515879371687907233922883117989732684412655833701180163932943304783136499972500793201090105268472860991701465487044105120350568608163821890597265439943745853160173319661881357939748345972586093298479909617975297711323063661819564502506329031428709944670853250507734012241242031435189276217568876625413750811323946036612443967392645042357341530878187578820743759948952659301198065376154030187413100292199268680642509878642926371944655467832442637571850425039174303705926321846747217938370463379447152576109638167623218887026933869351546636464613307533376216405884942881308627343113732551448383169698583500550769480254451758261457655556502180203428272974412390022381213095229245485340875963641412426278584941980063327838912687723364098017719578538276026384681352178974505726097971281344217929857521350940183530729126952881173054447899331359945791392294927662973873995529741989597644459070203484804688324246205211803854955226323319451478686155142445095170455717674551791910728436475522985118323803863254812909729323128116088826874906145245182987064280734269662826142890598485295407324774469608889985360769790049318650070448932551005281295522690835115995797147131756369676171999793633496288725756425242946752867659714915146336244657045437265756728974280990193739840413316793499131517405505685372912093747527709418880653154743887987232624750532649264598675184070400138494633819989035077851330118276081196623594460424901437362698701238295920066189198073883654089768024587350030233265300368880835871470743960313216218591768869537958526878346935316749379878881243718164990720812596714250513260885284039829076766540796684316683249669328159816561714484608794379611634817289362302112468066363876315882368404044691538313840905991458333801456237571134753004016798223392019546823492481753399231728202978040853676277212128920084397880893356069201557541935684112321451995007671092682030400853141556573040428119363458547645935005301987124031334258197825523957385565684205146676210367720879462528918821297856849425841585883639641330405454675038593974867849355561626990476717773925777349172239433748762035780602364669501823989612120918475262906279001266187230293844753429544936593249856866052931824996646643892636491352569362445359157858959480659610884456203590308205607864046312587402581975120991446933118188714676396325103944572584438507115336892366950356175728140849794747963819722270744213307884035243896514808198851244001706681338454888052383876418735634499077726865079896213648296277601637303921793772562346461255204900640641241839046936612818943623215596916172962700459321511045625289659952412200543479570973385872646850379457948060484397569937671356867246558670990297763648822791119655146473930052616829522145225042943209162266579374866989564711541944815037499660996027611543342778318828951361202946585509480450347345235484930595870914660088738612570738913234339449374177314096946759873645848630352462246337665363722975606787037727310240945898214749744040416203769320025841082552855796228392914563048705226832053198367714611709761884919970304193309500995752835968221772038639198665631976292417655988342730422942800177788086201788878282768973698397007713278298440968763471233330830886754776294363089150836850061324459541744518259064928027674407178124755906395201284538583473600315732664983107485504668253673743910977118281382603945233602889387723021164632761163315536831053753332969162313631584559137692697675285222804762078710714537194890850096058998356074284122015067251863564837339719280215496795284033531181968147195962560284982756323318293424583127427641030730655443454921778659523008059975383884715099461150345871577960072557955413101466835945569069226261891987159065317082418170563313338459175780974660966849062024097232392101558475207722527534837304327963458684327326055797572354247090793879225969980293115745578349378501763275394136314847269424527003792745486093578851610770882717657438476753767970259694548428441910482885562850001036964853150639747141598407914376063701248835302442743240567958125266232386613699728303825151328958690773716840476327751280999399297223852306683613217058377780327328671992892572832250088292585170737931700327733222946236400756000240092277775008623773142748037513315457592016003509385513676452114869584585909171692297094424815612746091478728277931502187227675559289797619111417164618417419807673076964003488898123899854387232098107693417875595044448120918034209866378247471722511898367503567635329057190792516530636128029478557709535180568780341492797265530929368660592628321086647953085388923456101310235330810465426398944460285571721448004898334264316237077292322530378228934323557629559797300692446244553534805238192076855618071082432762495660727151380142154443702097446594015091956725217447888676587597425122023504171049201383948779002822901615298515905021413322456120791257349608195812524085439571433036967974606913531194090381975500895876908474396004195667814100331014864335848960145985846719984595257015776306549860550275244679187569919424495165449742974108004855954485008338889960155597363666637058608348200074135371832547169268887420893668293689329938741448366707042777511690100181003515082481311465967735937840614103804520811900172080915267471889938918797892934282521901040978316862757272116398722496265942081275644822998089773755747056779858331151965992443071491194002915942299411403615102302753683863155408848000060365716605819731355001215864601848876444540829282017455761951669339729808187899508345578162317007959699082218100069188458944026217832100722862919755174702834247623092525376088711932446995422960231197118920591158769156305990227829230048193372772452211831382875976484392401256756681532397411628889087407875227920868439584670410246502678668782177179785616004866600185627483376019995033372853525530744620817277510174871414922578383260665629715823575273159203146907716428712249519792185534392907414544650896433982707287308292968665554029293622344257231792565059794092234729500801875785446323863983493795747149854516157397889393649087204802872028383485707048945333348365143465555859406480746144208547144507418575452650729277566626795135888078963518075269856549702619929242189129730832242144938374369433275703134982134524868870139407445581387147150752149463748334211510952732029270783608385615846939374164730976145179467511515585499019833459876345453163320690864686228077511623349351631791319425455329831711963272074322092006913441952516042653977819689080060641914450324759434883394920071140937049481578095086055729897920844748890967049204819526648274567713826731501091073785737436559293057729171474550602534686401270491421762492031541821525223028472304706660494298141963982825384976900454639973374365158511825827900977843831849021168496719351617545928028318168303140659571845297463070270245044909777844606007679369075259590853894158639680678488287725635446522035162972573133549001177759319701208366563726844298228945822407503814979395683454502485167856482627277610551479797507857561962059547066087638956582036499245560713899151839941733466134745711251721487073211461302888457098838180065292620767785202904970924097898761338749148293821682435639464512795769827362382268817853758650767238094140727145551091186074451011358911512860045104291526094257901605626096407620891322096089620067144706008490244068035665086706094772423113920535623911846740432534709086652911673130825075212659863955370968184821476526326903246259732172907998907050922659215660704211775616011194859861846028962910625966818833115361566773165977976742985342026023718737154531950038074447597108307538008557297413164335706619200021006563158924193593338457951062877585431056539027291283708891284284314640178739275824903090037176593224878062833099817649301746739746301337207465272088549327753218848376947694448085220567087175819356881110519577876868273496396869864267844510454573208940014877966593452033196523416551784941551185029217604597988782289516386500741281861534712566242848169400648135864473954781307192050668479436514213736501982332848172927180810636006949135857033903249226610257820684769018311500018473983302329211367172162679185425497675351132923698004778472097394755912469618370663140529017403436708315082216972219469269473951102757129942664262119294156365599367791566353078783208317408013511979402956399830002456634068903664003846245827475646842120234005453777298368066644157916797238151971956242242242796061372976435793442317471230011638019673697557592138792125966211197354071971056204664431088116445811594896077215271537450208463953735425109751629202813821489064877532246267588487054649474492885248925539999753654249750967868646537459012087320560788416705174194713510738514791658872767957852397784925116816566032782617674250294944530325401652162258471934196468799088825776959562691184038815251261584358345074047420975303410405247332488402778638864000026755217137630396551043293468850124840249127348566903139112333454835993340673035574352341690985239597837469956928825489731664740049377958936979515564908549877511264766610714317650701375759874618487914148506062770306045593699527291597531322345259525242294286516042441410412039702451140757224120404824674090523274512615522529890924671850942212378980553766045366221362522535682627746213342064934745619657996431489785410846803438694263006352405048511221277372897192692621938215659429433465549883475920664062764885148309166886645580595316797779764260399948884782518481595592582782693436294091762058646974985014005056153198053394769268640435562697967715753584483453424031807796288321073838866026839351293493063691550205339204956424827015017243792919365513347412000095955918487140699318931598088328604679589442042558073096146508663422762641564719465686364398982351522817564595294883006443151970558305399211556249778606560961080656498918764280916648215260505159398938141453931851779857817659983932210111717448034578600572802757662381171272428899890049555389667772142721168336870329716176978124931674737082968478679974228413163665474882869586039861903750157715915108469391125659757412351484360546784477414690931544517527938179752974692401258378944830756603079353771446757869955016446277442280891835464376535621839016277480474407774117290974718763047767387327605538751930399337439265180403071573754706397538945312572216038447150578645242234795446215843269158257848500467628476464279857538176382037957151396573945736083247087049321485256613249458909056867290847914138335342413695583820953092205006347387526689231505460743259471091219097150489958338523134526092441381869304666512442523613392309088963462704575283165199267475548373480381863628574061841367965180660444674427729351845986571778290506110307948657640038068062444359814773912339030863653727171632287354375118643672486034798250834344293812869477806001311447150830880474109044593411626570582535260904624879081118804151569890343491727873885308454301643502254212794242598680351213801843043128240065701755593659418414951379664096380510674225660861354554928070649791383946967597396043207483087805893083018950784552999939405360006892995640534096738654486510105308598467360265820379919053752635356370207847522557333153269031558078262302302135672368669036750656210213782562899574061192148067387005015272927224821147080575438235814866576229529726803258059316869186120575608968924437421146540589542009345218036455159110978620317532423349247366263897996847984835403292299965594307790258026579446989819152955839709700085039208843215897307626836045760371091269520827524609779342139101907029019857950136760562648960987554763167007308134291561579931492495379374560142221017210698680443968059913407998869154943409220079819031842635264992417483926989554498645813728390691047811801945708196487668653130724928036309038471470769010881036039857075288568442843980693786675128759290776848066713518061648697332880870819764915464872812711619199104555913449904624722726808197774126092180497366193816631893838398014610319444097746921177853822077679253979647305343122016312239322153123868823400056940832528619899135149496901959530183040264809508061154790918909144345404835027253388567761299655011855731032747877117693558075748350228478899113977126221785326597512100349631045382363489408341530043179867586262315470847594997469813775723164507054283516884978233195826365933594146579333264157721542822512411192938625857972049283082017261437763573636427475136620406090072736882737197774725434491402818780858257060305338096395119599702635864503636899762486567538897092731180256341253239658842658501779789624318593187601629568974057285746712313451020466612262355271349435319724381716354243717753954124366923741354287574073191180141332710294139191152181398123107396317205535659167163936148499321387263859661515982640155901583788224939052034534365885982932664957683681706075210538554436110954028866441197678072061127990675180344833699768611755281239604294646026351904348703972231399855723399676465175547324977173304564063238907398379580286601796117882920751562328866884069760803480633784355003452591248531685779727653419399058905072203256705518352161138779802622371339368201277694412106732445816258801935384608193518413511240807531117233447726549903941363558437534198562173303478791327076264878148178578535690454335935982258364172098785224586609147550931209165181240372515388821663534565019938504014202085448132017340076253706827229548300545824541104404835440198844447891940336125939687832273190909740610672714343612048090943200055236633304172348524637876200923568632440407791049275202435839109063990713197716491926664883201463565138069284725796869983524707116263839321569114519432715177141572958880270704574650719584692854384444552066897786865250188550327863489575233227161517893768055345441494012848681709106086125005360284326120065101513122034832812175118451175443808052984615388057432513317335297302156837171423978416879551979738934805397922632931654356874157370445811230611182444547558403997097727238742403332470257833723512609955215726680826451236471189570662246562678914965813388957051157485266986604595563579186037774365266962873798838293185715296356359673703494803467797612370766058342797815478337778301893416618066153309197823214920722940738679985582104288636087790989886414600957126323961100242364888683623357438174400817717007375125887703557454219052060107770332598693990993569460994745654755233156008090350669287470555438450825208870267288960735152586950133075209732672419324115488333327731404639005005603905472504220561236221402253663679373494409774050061036317610080745886538630566941673268955212690432378283643981394059378857431617676322448677990958302727947181682337802495666023647679234592099358342456824796571203583975920932732143203848095613023221828624558649360238442624773503923983579240884354502773788241538805270237769450966803580980189679079082293470248176782491644188504039113241623795853694642267743060489456393107096655091545627671607628907927066187012767699730342507793092058977422861026651422617532364010827174649755805336920439452665007551461903610240983708568421564425337834205435039219363273875283094185797777370969663340275844248631769943821809809307674122581689942792092125881451123872234943156849697009095176624208054061950442721843826769360952459642606516041531065201200466187690411988037051654280534820874301458833713775858204716033787218737543625222905330676613613986015300614429364600231177283218303597209235609601464372458482545546233983176312852028032572361809845516748800598608239560819596692985664295018083079317022109142290648527498063260102397769117702754194396752401091653930817737060426790391903956297943008856930776372278959842670336672319280512472935666411124763666770337787758311211008771681591152681641558038270708707273314168377799386156605476472486955228632804073483796522322351222620496050473769124660822495059511546429710633960715321238507330543598237556192243185593209110218004288698712045748962848184764663731715204427044997546781179149437744916208202559411825332151449044997521991578064889792667700758224808525879333386458212131704685793855102717120358996977733793460195580896840951726621080400725988215734102642963529448283563763622504092516133733874405579472477424539936749011740440514825517895914155782572564543811403805289433496573601948407487627706755371199789813715784191866435409448672761139291326984635626551002278488523319386783051659094584712691912564982980601609670399827538006193847708888977579397539423584925100239507499285964531245599324792154303592743333301296716479835322937579772429696257997180141137641076783250434674451343471898341065882527835860279651494401865810764077343818518444632926505555214623271832317970649801023792405830701214601251973327264854986143468001996494299923414613802922990829389397886166583212481091733626873210855229045542775419250824641181368739114094546344065559992105067415846164378652333650500127855544954453775389151386019100037003732184108344427396679169025496963509905712186484954488982168544205313970931843661930648555223311674619832900824410818378713384589840924806438305168441906391292761494760772219289002950055126440518565818525583195886562961067634609438510898075774683155650958208728250197073689165544972629310320080998900816034169129696160335060117553420128159386693721073289216623095144671326779731122255844305428829287705357103517273885267520441765241830705353756465295960559506355714051794743203579691313606909330374366361738329781079708306557478339363954993983146423870293654623339871023553200646963617443740047183720888017092641477010926299398197023277885487925550033311378272563045538895078124957159589927913191264862214418461162649342860853621569493175953964020565515448014867869767818403981072982490885345617527970791119372506301888424761244217621952068798951232461967867126496775173708464710565962867955410869979225402687385018488378996269334371038710309467082620615660550819677182646894181126102502952020026969723094234108155586307470510878207305298550583833165145680801928831417490965718150916271788915537756615142752922016573913728952052279522447213029649029783553265910674582814035477330022096186222222183518144845941172845134096233603554738475663888218767874526858190274917042601233733065870163640456428130054866041317133522572972896039595084365301323777093439693343415536662774526544737062872781399803608075680315278000376712920611494693698963914202574056164478924088877542602320099438349952408065576687907819970554748798479055385231761492379204421116319257631709804484751649061394096534909761620564121063371477235064354645162993681252017517692266667568054203808153869971636891941406513328183150123570057388839152850823613155844691941219435840226622479925532416101155881941887916537154010929653007121477597804703046925822494860963228293535211570145374858782387533424603014459386501108336437829368643850655545540113344217393386230255965314868340312356538965611963983333500727313358187326496530730933146208543475102574865310779179280132796112755829642471952571246908894413509186133503870012445642296383063570020389192452970587487539047060979551578223454257870683320790428441989391928744633534650442071192262769315852754234675750629481339137793300150974892596927817484737905347937597260786148530800604279021071899923884610720190597004036422062383219351142365378602270814507601427829874947488385997375881695223853909320174634832088522025663274180378916994494050713286706475448283441941577171449797180509373837560102607457454377645340550100327500439582930022408506423597394611311585786408448434460405487295710328575567951708259155111233469358381509641838675967582828526222606034781803798981943163792366934283621159576139491694518632339170396545308837611893186255199082521412868137834751109210786975487265678030390746218576473557958103754709953958751227819267156468420989697377716734825760619726611779150908829169054161728223402214158107177581041180562890676932412249131864161614784092117902286079582362898488414259426213933764020430273628506999501820611395936493991123853424969739930477302747994085256459593146599530374747678878535126620876389014388853757815580544235455930618389015399032078470143564770149563481328855054482233216672772565390150184777691313384094331950053969688998105972529838062137639061182352429137726867872387301784022084523819807485718240219027169119611441161871508611449180802673627185892064575947235580818499032227921783505525582414891286402897020799500242729962338996368178189511739466374055653860611655740261941583286419354288638680746143933768448167053587841768888527546625483662503695251152521818280300784021134705902084552398177198424011202585743911704686699133083659781626782141278098704650207197684883545825694304547370002521371622546016366304501648418812961627919065773349623796052071657852985297020234121183916354787425219925539295763745587500786816625990446002306048144260054864827098101943447512540023072542385000372268139043956420097094827393863970725816660612611504136115385389695443719146653674511490575183660206364719481021879463191038746318867012297023270238069326996452981219399125000103036463517415599139079255132365347443067595294413864465810571992283285350889469266636968880232999848706366853289670442172390132859434816908622405827687136247242436083584513863022559638743294779220909081572580683051364602103411800599569663950203582495698967061556157372324481035615047800634043622638190248144327801260853429875176805237198739018814831222725555196456144625924940943887063732616854625821677215336148531228666328831031829542923267068125750830774012305684913508609200205619401695879863826278073415089998005736721952612380689844784920137315547903260722721753724480612024318703997625781325973041244568569258090092353544822090480909962584945749765575266010169866560562747150135851989019630557382658800299479412050942500990279317219415910055183392182483123352626463586336494525073435763562340004396895273128281633137537144575700993430998186600155069369357872595896070932595067295283155072877761318038757173139728744257367510354617009611440219345564158835758717979811158888548335326784734124136726002348114768255809876550627381086312598892541542781925500111818037297530988991710111338174092577941647924743502719469042804269427414710061907775731493604440757712467233896323480311246477758390915418300481330286812595486685505497028762699997964376895548115899597434969204709856405527042831263584497832101668740102613296188260275622367612824971574850346134085271687705047785745861910093831676315355424360082150230888975814229825361570571583654420075900538188075134026004967113007525518456112375900932674109520449063570046081946669305165341015077895165254742472978391544268936432714135466803765293631850144155567723259896232367167028821383334198927221211287802755644025983968522531299540454344057107891285121102361930587021683848862708686670150483981149056824103299574320342718873651524544097241792606723731514991753264151030170873478898904798160498324493742675968662454637893265650561972731320575445813984358361798555850107282496942418835703122188440866542209508829410007569361606162303621675778909862059782286856106441738730445516295155552782864354963847490151528702141134392739828714080576499250545307661309120433397975834202492181744806155895686814456215965691974479654303018744692631128277325039288676158629382409095456708302534423817168458477901707199155924603162215932845603352322727268681352926364124558807554955344402357585101710014336355945100944780322778436862578952900613079848469373369511542803047646108152426884351224969017029899363938148214187956706084044895644504784333132415738814781532173931212387574468630735338662688019913820310208180336648806979208220757375543933924219251652718886436885038707554706786760920884815317959016864292401675579171242372531551263421994938342803086179991052431164492409121660982008460869641344710766837560513119935986319997037290821463926425509835366564517946948998206056419175998400273040521471114187407170458212431158982408928061938891232067325135286101547829860729836806355955144444149726323850551032039046483272871538352325192633284544364486064769982799734155192010887797792889825594940085710361950860820572237698691372258098885053615562409334328665371644266795938231601558794521118650244929218823156845427893237147119900372994096472376860723032010540900427781581441403713302977728372889607673076576668759232171681711443020090624307223867182976152437924070835787777626365191259739597394112635811284049176055307358103912315715736415064938247081826710159048495910552784087690010171215602850106087281847798030000418519789132581809519891926668003964019281893242398084548299210384010310306656556693866600902348212182917986599844338964465994820620311963538332138398250644518056753146528855299799329318805931217191379241432519342670435952016783495991371356459911758109798858547456009861633867283716794072409003805265530823779636878721655187976618913485030476167258734221881704020998184866307965157627107077287790308105696373958299419273622741466482695977191666611945138226159788680252185229050292178085873907349907013195035302688285595321070477617151602553805771156400332334158065231052592409775865260844820221129252870729142629637977587627780181341513128795689064846427913906734523474551032854234265888247873007531331482670775884299363788203749608875034029773344962610829122405305029815106430856747230217782385240080007869636364454414929832480575623102423996376163616151947316256353412983822906996647650638399258315852720171923539850534580070559234725619253740892323726553898912778172782864843866610253489674555012194104669833466401034290257039482922744180872557515535679522855044695938226827611938011241461125864567537098040077606916000573573347946445970113626526987970768098389553559207515131062412184566827827965114754997136789791961201732601659398838945201007147875707483951647058816523598703244722691421776859003082010810161046089407971698534127436276827778870214532752754279148771445335587209185834418382284551908691402850743143660648938329078720603306559290845113600129845154097469277125620497123663407151326876140308122953923594137039983533048760260484533673690904246632217717794298976886310980583014767738228007887335385113632593842488322046336241144976560235001966721349857154931485011756067581725741007490909867023586038270068944233099908315174141354893281634351432370105611672197332300875910469199080003950257720156476378996815512335095150690249267017926882035645338219900683220644945174261428998812354215543362560527571605821043545136860001660538882674439467428872110665519222195959920853784126284581747437918672384385195924589296052243680703745246485993930318352006901520417238073387829013134228411785392041421571776813728479910948222954466379667181760152482599438271639119683793223584239849807203248870241341940770001664832800432030700626549311808476096916911629480249827455284813216573568042456093750602331391763026684852455148585935256094760909940880440213030951699402023822205678113743158240879188841257916335873353575998891293938349018844979579303693897314299714357746819784698295013079161048262374026326172027227197783482160519632220869845701067795290137785055478963107468339940205209365177851101849912575080698533477413487356300389702387412653022103348561357723915245110092630554199191781981902628690927287658568222013391976848003778679314356940305566862809767947717719470831270311012155458697379242144687503544581292787337250730787900228830757156141577858446795250101681399180145664094375027763801198388194448835368539785363898853339445110541166122541646529105443440030236183230707421914176799856652856926722727709952138853433381216702448442237757445837331732882332165412346456725313324209255704625705332894352923060429591538004527666323193815272052411087153193960737548490305009324239762138626093364023794916040604641683560850308999585928700692610751756715799831619531973514468246277687336749560711992144821588358238508890836034627256936088136158879086872886101176514135744432275846859352710215250596945046307683598088127790014533457786400378177610008383271826149865438196087177706283462283087593532162773318920372205121084800482051364140232788090375984614131704590886478721656733741352034225988624304097151431324257869872506546286610964308568551868126735745554718473021508237229351838840161835585892447064846179871941001136284617201312653819938418186607492818918715185625132064195013282424119848285729765827094198075652729844133170796234974148818253957773367025356935404908883138422059742407234276488847544141585201929671812018384137309309822662492798861805201245059583467563550088695887029455341220209221934980786231272661993819534590226577770074624473688126816214217803007670580991604861146419873175792292378053787101541200635172686879046449391767314416286144320123810080051936763636582684643230345881638748432297760684619867926690448809155155723026515877788887666901534410629920406384961130606960612067413360685597439058586409101611418227375116116389416211072106696566338322984055766550214628045468707559932340236268150292518008281349576505546377356586568512694712350928261898700998672734848341125536398310374300815070568306366456494718009436068422382527645306416838178527517924024052184777151902155659085340507301511822988603420933908906025680311647581866494025824644672028312485547413856197795761148848623226116765733834575107178492702595322358629093814026519136144901756926115167987660693642064908546411637516846467034276950686190604322640208105206715778639698950860752089304527129810077452473405704024936004145828538004775412608273301475743147215291031931986597028936733624615036721794138369108463759917180882775922036488428691842454544400525428623940166757828587920410177591907098142665096781274443090141008051339474684598434152003141128352700008375161259637748352724626797741315359266390142775682768496726409747580401847050456908242238338973571755748202825047123897373741244483603603359402282603754818311156879465517843295870614510645760838798806089063049295106339369634977283145292691218249937239658703829509324398053299758824337664181293738456824445020679615403993663071817988762620508181862233845675315061316492797244934914196197082519237381959692838363954898511821174044817026110239849894381380675222227410892564060666355210861854169617525342501904634900049168750600921884783637158588382155311312399011693530473732871752596110793768802137643335194539401942437686329624416931295197078415915780832238529232402443629272140694305210536777020820326898191400820220212267650529635137229221204358744037712906493540307451616723889380417328643444296180365202081784748868286230762436234225404962183569881315713399077111878664206471382508470880897338063138225121933987723440891576852693112294220860889638281964759966492773685666591296968407121741965897076184616015150843470681674522588724582222404018623112857944345029490188209387947092188952461575553328288735486819716897304970641645903029020853226094486586615886933484258969443481721809158842715107198867170329689885821586751522016131056991271668830725685499819429738763817745851385529629079509771667457906903952525489040817576587206588251664984814933634030604682494336376845259009705313353241942558418982580152443528658690776352122468860076694222142450478460647326658882731626896484116677800225131367353106921202613141058270921108493869268100438488669080079202427836690330575165023945587689306163100216850588656014841557580813497993402817179853961327706192809006189973785119570633917452385749374804151009029157439407461066698807319932039175390470739811720456442952602625541120959224382014860775137090133909282604342256588126783468743431507452659453084158365751981729427933515257311097103936573768714449771611791678005110438298505415086813020346370934898379530264549029026886684097630949459876456573009506588293758779601418589157123310676770703715512270018709369298957439345477861812011423156137575988696940815747660058933210282724980493050383149037350877624396524874610831925169986443929452052531946071361359662421347585405345589857186964494565219831723085537598879461793204165049602028774504391815062929747517174708768706040086318523113745371999818720959469750669103755104974254344633251964898378963425955307573219086816223954386374165640963693033241916106381758830992658104093260364584411733895983116141493091695488158298971044125903391169602641444126798418383335076233515108147078177520098877987591166455367594956752073495422164862173449452963847429875650845006708716652522229519195820808456698961116323113644882449622864121105843070965011326341045253475607393188797721171065359210293172158952893886713220218881612524961683591000017648419200203532770000889445294652251955434531946520716101819969763854900508467508435253440232645540067238967210029390836446173128989642565845935785444577789510017968675472701247727697578054637919892126748391059145985364810404319555330927065650382716081779727379641255713546298824193025986863232443102460496439080964467643498065883312412682315977257187269839202498749240633111314844492870704142710044699839748447733979836727417646299190124427489404919480734917357697208286625897303669628042510166758360025672622731405171314721615806440954726614731201975046137146224641462047590008125541189638801647549275150078217012602803419748276683864401639062360692868811084750558626851870670262131283281291481005067552170274556708399742701642152887568357412941641416320636112475518060705852584095065619144926865609383681660624499394740013058878346464205128223077402939898341915618049240222160805270943585650855112979889942579995809223135471916096297427823230163682853270515106866758287361927554967904968080439762895029526363662274465997539090105447475479366928333748285402789179928241389776269763255229140783273656367775400105098906094799704802706924087932187769421183725721314871704536468548169786639506837515400687616830735099023113118330335562928713774229234132582064077258806709069472548164479603497778177280826539020741907655762271150033064362510765859332818962226246467343973503414813353302441075451444791620227454870573482588950548289762977739086107528011771843995194363582600495546079272347390142820891027174310651556257671772754897020850662636683079835379352101942542768637217161593366951925755387874114884072986842883873498159447359784025932525134322710073936632857760507510652925150796118798008613721506662017721162912860078174072755950724117628756259575103749874504948902529814158447146872277445070017396645872144569240193280605552468366329916726283958739471067793416576108903484692350855001015589891664939798382578771960630293472251412554127535638664306838423372433610235937583052423054860973419472405321963771304850074829055006607947787005646305618171378919281651315483934742349829617732970295313770989724130378294972271719676221961327091423780798916025719741806850492497357290621031506582915570613542013277910927607371307984855461208867892541879937284091747612228452643703882892114127757211725170394317471964362867202323828639601520733405401595892034827429196119664578263026056893356465853733569251506939132994538133357043015843961896055684624504792132455486194717890792678237810847819501674404244019835685277892848983759583950368788923971266601814435018661586645349043124629733353346196823061508856146278643518468814363215273354996087628474694329069371774622205521278833712244798018417065999309679192556885253610443156854296377190028747825899304498512018441736003300673788551530744986943739466449285984357413896929285899725612732392065014500961029403031175126318302397199676571861521619704602748638020714629462346815101943060911915997814070542650164005701985906055857591708645889796285665902177394888555064807074806539282240710565847313950454276637255886249473110336933417072798911093000374810586235760130002544090734797902080444480181027807721696777495447755063998616463746827683341180626513480024143870874150289718148596524859355919945543764246550607868484263956401070128134138976873945525230959252378410698196423426258023906816047585840256733059023190351234185816890873774668806628677908243623853069691943988482122891543439824783473030291210918330890245068046115972859509757099904252614066495394241868220229299683539679107616584064729005488612931307889005115570258837291115768074149676279554957578380110917684873585308861841227907036014412781517989501036225510560973454968608614848866685298342403202512258842834866441784180072993965226032297540097574822098979487493299655468883233058254706279657113901369116116653366615045559812208352163315845964777435813674012890524728184777293847183483045105564934352263761773278881812630232651990504907800877952360711661717446794993870542367145085748507886041933908604607791528361868853993440028034757729165416591915886009978621483467497648825117754474964428099211878071046871977852377511803970833231860221022209947069992624610275321054312396660724227556731887120379280255754929518190743891255047976677537999104243133719782484722053477326614175558244399727813294229319254550068956284112724765902967196559853029140444812762358654343013122930790364071190865069960435247030378861117003834348711924291984886419827415654318717792624051587143228595770548462621954543183724484414392677879655414375887929780624634896225961192721333658822983789466601617820313945750742526602790369920020995681071452001695998051395146328439768858689161408607574315541507960035611178881112076050784340359936614346740436944615820543468794963158288109708406368639325273638418069768295675713030092627429253042779275699710206474098058113648446977288658673440366689750794313703996285393540069676480886491942037010412610619908314510393474213434383409715886024777009599209468899375648747699303410198586847910510636882313690310199661992973037333815250729407196843480151798304439490932298978210294201128244435786840471569011256510273224012729003261500425436455491609815172625974189007492746238763666058708951188294208020513535147683697215594321213731859866439575958474177238496516964747069012611544580997666674358141876281269381896064874217775747330035755551196077445626908150326481753995036091546121824228578236539085989343574899206230632626470501281376713130565013568410459398613621916327194078640921564190989926615360517501588302689062023970243349828472313692227556930019238745820427237701750934977772799990980533866932985536243950163549577547834432302435589162300064494791436262167513268626234735704847444044374760389250105972272954813104991702535652728186245010947121773210250105406629234862974141508391960890026513074973729927638463538452766298225979849627008831423233551323680788234145790733889377776127078785385333232705835471909860147186781720104831544355586399697314153486051691753876133874665265318860416688590775806905168303328339793414343439262175410867491775752372122473956048098094641229502457617518068035935533912976944220001797753382731577870619792720803147970300484582906244459601821081102644537843306085610914053226041110879759215643735001401001961089118395018369929396360031807578834857936471463125878343896284974319062842833769082202878571724565247507217634793080023738719459962113431603355456785269440767315972385472014511555280791896009373911102307172009954970395280649272576080539890302801801091764231097709559234533614270715614397192636951168270058670178745625591347837147081149185938389225099894052400136961254306566938861409860888564743797494286642789466977355259422584474044021510459817250504123113990742357414458520133181779119170018509419675878025043534542115494027961681461700291608342145036543469423573824531263445437760488558614387168334258948045841134721852176697129555637021125036816447707051024045011512358054751910314677652665794864442021326797803616398827892324464917301514537472593289794019195519441114939126992416296450768938226393279154300859597200663351352431050616261048245822087226924392931364981841162123929977341253220595885143960411889498836798992810653704180681508800914848096556928763784946229385768227345592178216507086269755965996213755137090208977453755539732444846688319316753675235229069772330531591444728006643046181071962963155925698998994507960659726404455848244654484528763414778819804800453585351802347095754119905553485224808598878323140680404729008914578361382040344014704279670390422194133341168861135205120170393988424466474675487320277787340756510117048271782652481772007554042820323816624193370291897878209938516349742578339588639680051029901484051790806270060897935907879079868173366489337526092920457568959387223560511704311205869988839352539218044476648853919923602782457068557215505648846131233355233020926062974899503813477985266448142408141643348494043954351991133980229811005255933023878710999275450098525409216378881730569722028093893928312016996793646867589974355172626530801898626450123781450689951665476482667976697854179579274745157040992414187633036276285421646667785035017864747054109046019114485251126921907247341363737219345478702207298192723000132614980331841892788797923533601748876587477583604053886027913141021453733730067583781960243434159509384393436273419710300759670292170086739980605041297061658217681091856254931177794244524421363766200948327881516402545324009405598470882221725317240829262750423307567604168487597177620265103533744144023595688833381655080780709975812385555107067229224369957274972144565091772081614488493830476334970339984823189256359871588116711217399314293506356887245238288679156200690159221116809144408811377458233403993346603915837388058165658979957854028395005331421344237253316652770533500160363610098727038502273577447473352593655895067039807356420700831019484597080849349520365260677031213609967949098058035648845979315957858796405120499498821646180936574494745311862486990706125426273519997841564216053685165785018618724479544762854319633085543068244594367722070255931170619259124647289448152252822226744761971323099283781834540675759557745134479509141789996014382232261750584204651319993490259876698710680028091576676920763913713091311666429508615745260557014294726149403156114399326277671710812526566929816543630043031154870191772323854691182166256142833036862829394351834298941705829999230039421104528388034042082854682899255569259471413620364579846554266977924400698831159651792417262133365114289305088923171021044822259405236243587373032675366748201205773345934023283233289917562935949579532084349433243078608755642811017045289552935363663788100063922953136623840726524883072125193561085061858183553547347782810867619546889155280745341759109817325357448866317869357783690956108479423170496850120192093560561711808070703208009590867967995603911348987383809447067740970925553745959518586961208157018870592803273169080443867133385440620043010629992920667766087311127221337125646685395895051713462439189586111064873532601217154226119779682153234534225721622939916871320181675510250953562082563318348956917579942233386001070609327767845262036559481304399861787664666032648722476649236330985349937422510023704048035262761532442265446408138579413880769067250256169074675096129093555331728992412094878269515817379622034971631954315174589469791204687268626293141617221685398848867937695338854772423202891338805956454784107606229738070667559043980343321778696062052365433407339146777757772771350837040014432758424875960280354687967215344601564346559091484704157205606179677063738130333123883815182101954187215538571390188561533932654177954860636721841454023635847464067379206428778244215770755601364453618461158720005267947352247849231486382409051286975782395040196664892031852370642776667858294256203013951569672318408527779328740567276507710880010379815172693701114624849028872479482456087727477817610547339611381564664743288779817688897346079228789130542593421302183552566126123093366759058556876699917923210904709832868048942038208609308226036169591376513147576869193576862140511183452483273374981732376078839523939585260548434671437779774567515529425439288256840755837846582680097152920598471571122358223565669135842760653838543164716194099112703706648469669103149033198801566363825396769682199335699490562471859437417002006287311142474245007136988425559431954283967024014486336560108554885188585181497792109947908064957624000379218327249336580809370704207099848046071649156100524352755809047018380554086498805078432417807848548301335703921646251221241227749643749987276776480433816314226322461212284258465184348735097998193455945494034364308040157728509877121916141790410138123299293482835027523209736520820280747896090332510018619201573838603739245287537418029644339723991064911214168408587803061812532150786237837580876777099208755661961878764490503614234147180446767448114767206976030164216432723025599471124175984729823017858561693475279124902381114245662897077635609867138450389039040714547641890431177145892168509025702668846352440276675428807744650842999230503067149138057111766322003671656144519707009635011571216116813977639740775074553721866190421933119627421473835355548732826391059065996111600938209674228668863427293656810366778548481524169984054557444896681307808835570941225421354649538307125874418162419512117530093254391230581282695284765087883226604484445879631471557101144642309244851419417650371679219135783474991013203582452211105885046054994916497969676293107102891059735731816604003157090509102992782608712977221203315257196940713233700756008891915116930036732441665097003799106035996430593677403578413726649186555251812581659921795502115891096981172328625787540442127005616313533043555695917221701033466367945198425465857990165798437629668292606661365922430241880479256847879078930587433246705962567559215810439823438814754779089015316752808129710392320573382023234103509418884536847427172902605057009870256339850317473704781672129581079416502473634399537549969321341315394404578968283979392012633538065558890933289619699933190835048114671409167505132724012365234571245484256427436752474384495946153232714214176708369612159206919234048498733284967036744671299302926384837359092357486612631366731781726714083782567753298174152721576656046069999153136871929538173161580209710258610940763063517927334073068106059837809869333967000003762294770972490484317388763899454759267141582105989894239095979906740447859225016631255790895123476915728713281388401496443061999355859880179002280529318946264661869403359533945039212709837611230110268910303155417248724019919387503784066525443741211396762029623082717077078831281451294399766736628499972236090030435310169311509833809322876311912339604380769672564176777416873368386170539188846064679710561791104517968160399627452862568343770833642692829996463175569269466054747798032977967568717854067525101382112602962277039739084057322624809939315126271406920386975513827322978532753300454375272316104654080724129736131965091986338272279525968597947953480693803325238856255706654189827209713134112062185519004569856371417473367943636266533306732847237077052568071186864013602603496748998612273851084493867745893178761313976128495146338778432772254859821154405515516567075106865245821306808966240065470423910567442498532028417888450374767154108283950030915938868851364024569710314660862571844861897184471086852458842767184379735558658958464218560973229550129270343806598012508419168501365974989789189351469793752192375219102688962969258520448548418473373442096403337428686306028844216353117971479286784937360134082135388188727149400591737690220485889249970302951589237134143372288434822761270057645589922880143625194766061798774101847876446574383440759977890909337272438463262942313663696499439151250745417942670233091650227358574178727758970223966874313716476781968147535552252236219198550239526362485087040884074901214766555329743698277989474950669236973870021780492882199357935106781155564278142687273449564909416254584175760635032049485264648654604444078370996644205036874107320882853088233852121474766944329185942736314680056452127444975948410503099427183100694906779816986975897594320309299952644859920305604550278543645788375233115048571604678780442397973835162369835352929312341437283047477822615730015409495988314401338745449842778826483225687094075564843617216808738730913447212707869404281050175189101291458593045675214759755621591145435445482432082444588596580720391816516384346104202635300413519611585021008551278178409887196491934696196383404612773714459687186965690285423396820848922470322671237494075657937220003210574400263330394044377023168129933451125238219970194060631224197465009146717539590035578204309169006877426394706158058587831230616584493393125547957731765112965053275053768590525319578327383629481436229968905395960597299738145438276545061760203713597146641591775642954056704402301610229159545253869172799055369841464564234630503545235208726698590786070566225126465888931329162783406032104162697624558313115283740614545785191594169636124086700171892364969268450075891792786231363520653736727012010125249509353311335804147027734292286423754842200958271411035628515000236856268798145558531456218131892572110240283193472134738343929978762301221103280240241468761830603031461364947530808686783713232771712749921351384672842902675088280801156944635592019244010336770257576564897899036171780379077934565637234920914037470196024573478656039885512369564562286591765951652412771964050149205910127692543856530721266931146435517771104451548314957733521911447642578341079013170336743004175637413405450157944625847751089160814197560624401882638569352463657932881996678819486471480984302336709434377622146784959892600001121285003316153531250545983186376115286160288012341966440419825636494945859398004499947592222089475475972197902643127181782233037841248269691647290518528462566458248305150132526030187575887629405861176867269397576505730845012373665995005629851509762347046585112732793104351112356569305225003041189352068159496422016111480291609420740693827772823474176924275485968113657040527496372803028663977238529356994143179647713033115012150271861907211499342995326272018074612540418935178013859988264628630148280665967150048113737357804249360989503074263229348994796968948311773365003143725389771847141345922733910703566189516872051062125395275388053627239266516323432739557704298041668295548256541405085351047217977846121852157518194030344991098016210227815064423592045240204167493153526643479443849182952963056064799060882748402233827153409931120663126122910895896941708255592427854513536990612753311934994912851924902332297471267103990212644615276665436441452803119010575831993656114980652422958752574310812263096818579976847707568203538499788439173028436308846115817356165004456289812471115464556342781763620933651950245101437480400327996636323546055380234451500438919036192169486149848177752461203914568798497720002445331164083607913384483100785541529633197926450996017765551009445295775512544168221573414263549315142269698884926379751450027536215179941575865371038315152663276817615902777105630888655836620268383491429876800776284611788473357297378512995409112182877225669202777323891716057486207400703640501656704326570641329629572541693566037426562245116660090459479808509873034048464844436515463885680875039349734126875652193720462127525110956322169476205612769581741002088383615574427327983020032983685673905976502147924928818693542766585643428224269715207820433424635350879267355189258056463228126735817636801518016870300942571563421373026096499672271483960351368795919849615966747552693865550501346594894846165407234811716918516575622563088382797206380128718261935032167416603128627469810809185509020006841209641806271017686074317875421104318097162704761176218072119014200630525183201400558424521531200627794153443530066601527290299019502688442866551047557117616735572378904571673351884268617873500767314181691579886352252761266355341494058204289620255547317694866250129749450542255097649501642366826716462191626393689301929969799344569629109039875469328200563314603996805182805732984408911696427991518624568406223074023985281240138886266378771079467028221229533125391505856278840306997025755964376418556810168501645780061202572992918158720139201909367804138834494835128681946985760237690009308307379839670414548471723582619341403789150310776340642042141276881552820064517139470008846605927744512461311653184327714335564463448097492088927839575349989115022345842330871568026511019320535377600079337636594334045674869735311513390819206109104654320937249009492056429967207321930588465346816241523238924206679766199930762201662174018490067256879327778069117490594111425554974256004427326569306639237921681923927263627512468954128047762827486702049336280611799211598195874073931389213307026487942347597599410371185198851340754821370596752678947687319248839142958282515968854336566953150358010704129256740531834000046661085002858140549332746970854373680135112385881362586132504265526930143617435087646266169006654797449744386996970027410608614955621160578754761338196959111182281798384069012262498625549866399553150374075880676762049854296999060242983081895085308933226759553527844030591923000935975363431816399921875605052885720062266972111819911637466910625936673179784434726799948089574711643186576595907996806017273202010674424139919887400111765996569899442358276979548554851357086832869782183229254554119643166579683023628924270818152428032942616277223508803429516405092498529144875859405884940839078852400705618695675316394566859017947480474709405065445819131598442653721163328847128523169373977601881650234691275259547922146550165623651253026793275645942344379396840442333847424036139574066083868233981924096865687186775153516229345385983965481346028548981821995776260788813225546464672859868593710540908971515998822570951965296322235813645447990888259266083888439223167795370387461844582024672364313523065058664764569809720257121250680771662076653859505507245928324489516891432152724376684047892693161750283318250437454186375579368409338417922242172807190419355249522657073498169453414793320032927093016248970198463663384203676356865793210168055496300434980183828951600683458579834866671733462442355797696318738439946608680825899378953126558544608416195859484247795859406472092310900774095131920186017371846529198211925492479198862430565578303389573317444887406967489156174484759799077536072266240019605502738068183711534760714494881794022998501445694682623241559181461024272406470181930190158256686846053212436168655338498101021800032690631688153025856952021008327657674327099820706750450211752075499106763393112050356144070028077295744686573708200977057058033164631511622626222201341069803874143499747077707659096961090792223435429287431342944248874472507499418848709751159786648412100665670170865868821419785050447514230733977188165048524582691593497109854571006596429804996935989726833346129457774620634956972816751635973177922438981722828444920197689259907187467835825336703119726617625481461830876983272238034964670138099225203933661283713090318166747561917821361573138974189772701643083914963791286003385926601127201875326723368778724233678653074065975394879544977026281912936617143684603089989936277060692098167007995312507596717402883369013758715629210641504304285450041684625141165596970927900741465879792440497444163486483503715384817251518456277321326749199507849256234810396079332364192461808335739657895063951517945813460644979029643098953774894262908907159025207795498854686990324337344957070768864580095735015485854149036853442990516200012099762008260062251112027620911984382187432379248023069656034143213271299881049041680909088549537141606725231592363188492144955111558709883428044441011801576501265678778334027802339381308732766963543122761572538851382142417189519199410198658186533796634399855765586033856257807428641777728715199232122544331894368908280561884669277815473924340671035690265834841414670892737908110867968356777105493479111783307473436401563485579982430196418679412225172681586154548594242981277272231610978675820360732251460827735921868406870616187596502699371922443732597325368253020172040227098512669987693777313634126369012801447482081545534407029433969632951463973434169832358303217192734270907669057759555054320577448718017094102033490308056825885942875649331952556019041818160059254509705104388275796669047137052910218828218984871264022250135673648473685185412796020701010497830972925874806384133360467214061674492749347100252493571970580431605044134045213016556116255243919643226365213757345519605276620952325932610143564672427296524764553099743632057782796574872520036151182856963237618252432999235555455947376275702028106040159249766559654722527344485352048274277958091011167960193833149353217257889129522943057398423693413517332113273206541005538509035518542838476011677532012479254738908853750440431777107304898899889734744614002507328506599589273719199269932614130554485323595685370827699213942435576938263582651742244287284268117839960896070095356997487425206010317026733796518626496466167654054464112081966569206520208624806328273398306207966006552673699001539962611243905513215835706424283378214483831041997591338381162468340193537122068746415901092208053399855582261898300759383668852794281056881798040901134157859834680748868160377927058098796430260458142842840269506095920637754647538023595648888141735894622623605257760743746971780507653361316187648624565579732978898510341450505222225771856429791980019295096701547904476204956652703152382509282287184972112926817748097429937437624411898069827753152644467144882280678449335824585213833478468493121683799977629363275592872319898701952359543325321231279070738528692946842352153485042112574564477983372144986902162746912697171477115700765273389943180111142606348661699796186847763204341652428630434665139966712823771379432397362304065879748759296565797462144981367321739695411267500701665729051983437111147771686213049059860492109227616806822135016913270712427333608256549117225966968339575748943874141870443267015123635769356893553038341523090403244483006739965363470851881787020999729886511028937703350201757906349789426103327531377055592291307665723526490729562884650642813455993052798623023208738531079859314950424480941569208823327621576633210572607726792214425495259667380410174307619336575676192548448397402055513967989150617777077579221603637066191679769178382048024224772313167128903395123666087794881367732382694320245812642754083756038941348038651247382214436370430417541022731717741114651346580406916180833338502405216671058993068005697898623927912808360392909188574728516735491045073457481244353121593946842594242674201493607194589859879289514336194442439238760606645748764119373139953989574071302815416010444623900459853761216701466799694524938787278781805217416230117943354016744280554913865628844719220098703289359635068386951002016760413616646533925566828005523751851505535505218506493461034360787782111251617182009782022663092024476398344717955669145970439578104001816481542921281518414516225180320256072662840008671184955992218908409504188526842620266011873081353213620405129851280688476307589284113271501190146946706178139765014785875732265416704609724717240083139138928327505437163678966752860802303611526222561822696647119136617742295268581541418623503536721021410389042205258682928339600467870937295828838276766269822856881674655020371424806854710867028401070578965761002812297874943463874715055999212677645565555168397389939325913603325985822484750830894425236134632640240739466963650062020149315844199598416268352040173092264911583104735203831858395703479798720011735002219629979003686093074782439341592854414506123551904814826584983503707435358359960707500809377884983259684060980212881842351200047949599507160991406974892582412807331440400350607196940251252112713240391199303546236201417242167585892992292228439738179963205890861647983833862259601977019375543516385399353710878100904737497246514717053521959151589176006378966892818795182519015965028376172528945012298733623697663634864004856865521707487216592064348854886949951114698086676508933755166527964136653636229638871662395952322527783358755210232004652828403831196193287473795583072208255225303518941329119149781168302330946430150665719065342856170430195792195133179200539351135134252031395100944390862561808480622147624035363119698110874279266102395673781803593929540858931337622181473846160118195608959549527772366043738343431403794857214090911689644157290287286122364325932488952786278819170160562269248123809850292931743907789234233138233117689524181021574775023365690722287389971088725728537741155272268212824043998778529477021677070959114355131880148394999732645864883150085156460046926883039218446009618574111947335622682692131401644693319191499646466288594750877981992320920539899029551042212594990451078428038346480049624101468916845713582542473245907749425972775726423723003838076732293730778243906804992949215087338080893606526609742740126712058755161069672108384249160357009416180369738609140265021512718724628293708455863451283629729238162702075146170448422315525905489001128043101291152677890939665410176483043762815642051815207792752182574800508048826545285659990929632526922169368871921229905778629256367490467253523264125760435471522537171502909972835259304144623844515951349566727890748325023774067981505055551345410637528795394709217817463309710555739423747034490957998612045928177336431834117638791760238642695383202575366654962821539605976607953832565038340656777711981730248781372754464971977754649102714660920315063893675609171941595713816983863299922924678588982867704542587216259178125881453694857363757542677005004255022613543172632440153862274823019785599319989536531984156392421528650960732459997063196883949159055425877689458789936115318664189431211052832243840449117533785416642250998170621410884384072002354047728676609651833568796870951605235914115686421066096683856139586414156404386704361202771420751816636600901125849688186137241549675885426885362714605087417529861261678622116862742163528959550990582535173906996045111516573732568814723295152490392291862902837023660676370883205682310037370435018230188313598926069232528641432923063415709294526211127422826946183351583997585123299207474571454143065101125601835119786015462256798920339516764254071589012929104239220470853029591302271652307355538422511538292245229545499609587151649043308174728887854237429886712228055587259873491700554981743118295073725920347643569933488695229299431005516011255057034762487961673630324062883044958045196195041379245553456322089955547957450437627543605126092900465068040061299881792002474316101456974213674765448560922311427410623488164227896844246558158873047530708432985547898872961504036597968866524210236176886164923789959627756709340667546651581459976607817372240913656225218559145669402856412376317798310939175934174817382694222661386807417257101817963164927129711691459745199836957276578490506167614092061019515473612119843003856663946335632266421892759018680244775057461080257339632703242411685839686931430946958516878486672125024786048458683943098821948428902686683112031354116044194173663737694015462886029120065649324214890924191352723188391911405016011849538734539087891324880992062514851444172662016903066544054207284898890081893594221289721257168746648859241501683004708381126809223781331422104991722795911522280565817309407358432137269728080983458243109389687818990430898376470972194756738904685562907025846249031964359000350710367067183132412670544707745723521488585594886442200398478488871936947975023951948809798307713533583726689064234205461970315168373996246133740488278181595833921035749825560823892829881041898796325750403374850912360963440126314071022546268608428188635327803206293658993364786326853234414773392627997474723462644392836505676482338334633123111933086410060118932024749491574547204412886771739468145347804224293874820056013355681427944743736635347812554324551684918505109686081648360547085943522232448744715492361215613061939039720706580936392416432751802294447063423545874316700878780075004265743086358910581967320179140471242122809505281899152055083117761023273544921446726213134482379003789467672355390357309684159579507488683477139017681465924737190776079155842393978473834280601055198073177399227478487437902954465360534861017991712436630083004769645210163155162579997927660410560417566423937404519151412225079397205690578977709322134457880253859493586859460282568097328947443122723046585845884940977189537177224110029958882000839338263277814026388149224535603022236304655600637945014384978781012787243416310144172710776500478261880781425071539203112432044497944145102330925988181258067217324709687671457289920851816860267290355697853731050032414274476720545700758834499183232093804454926158121127773527044084802796363296548189026306840716810071821435059998672214429380870027613553669826840654585872609150621733175236410688317432606804652516132346164015453014650045059730973903366725315854516302898760571668624974785321237118087828614875478670045619972066663142224290593792109694161282527722763789426956902349647894077496823132136367808597752835902954745307360469105077648964300080793747966376114940481726522387483300044756295784268549796356474277013730839722001723381799668985856487235461027979525821485323420441048358695652522601653871507741899045688720602708134904515445633345057169710911056513225246998833296794753877385789259653689513802745968814161908377464588941247619836221933565257801303468307824298645064954765799430777704791289612867126011628163004814169209454126500737515844164000924307436505596808697747307083420150777225348920064734592951538101062158737968538973357552375728975752899669761201050447316542051404472296891945388634116746434204717616993171709948520704078426934617033905746929565325038939225306527143624012125146617894268644134291729956421758614410587385225408221901131305231499889140744440146596000939277929874423278800908913766069936861743053880678607895278567095325186019464234520026800604299844569230486048986184822789302131373529010835159494538604863907399369390563933815733367737794894854972798728358880600055412744296385764311266758265769845795839509645533937092591849992676580635134221519189751674133306127674173842513233732083676868091709476588297705172214057520832252816850048615215220357960274247624584141274591681628911120717308898925013288234752746509010043678005115857631292967701262031020562566391603811594637630553091645533088561918605014853561454021056612970625474221615191170915836243561685419454451976736507672921785998558597032089776891441873429776261856714784259141388977051974537398254854022409308834793974856742898596226504606145512673961651294864611354981653912588342212019513262191075961197387465018196003479228043184939074173972141128999523540394024395160899086754715742057309337084203225736203670403239808536135379387345790579557210117228093318207947508684036759325394146517670301619434824686400964266497013808190910698755987304232332976482682398012445360014009479846382192879419325515059362034457218468768670831509181003536777706820788115249034968491878181855873787741592995101243402104219886617620508331342247154976163216305472025631095640574354614567543572326736851178551466402902821327444488087289395201205195963463136649157385923741945169970398061889594944719065645066567392284642064914204491388882248037181396533241783084107677383291266898396467852231924925473367137769959235322126664434182687856251968612115097863616635172026577163345852306717512751496684185493796196002950402647475344464457765845260612950867759157084222075542372377574605337969164937180922680597492483116825687860054477575001903000641060957200672294864269522952224322711920574731833324254936034473461079051299132658111601996837501229010722639693662596069355395335729834742288554796393401740039292658399818777037334756691972357750685393537471977176034289008756971795151037520195349132340906255695900277901560162417993832003072452505651275841753917741251960792168696379532089575157411181438644125119574890276739483527422938377783162563635105206824480468450454877559059153471039435542691006462576391790520244567579614899278061778105516898801992722357284826566355565630763505665774068345169883602394799814614727588206043543137962287902555825022735241728062443462053328382402331166408630284442109616662670135991814041782538588377377988421224617421118676292599234978039952717238983340331476770052097226949205007639796873568039999084926343292984435139593835978974556811360523105374684310492743901684678761608471428655483281289528457775891939293334071267524462757660625720231854454591351079404990286295390393693890931597241124206017639387563436264524164876917797029004930328079763918065755928012719352587433101503746998983662179329018932380963402931188357023577153161247466799989834231386494029961243574192611293665525836016853435697160557866114670439646405631827858045052753312671414038498329615329620364504056178760695691759787123441072622731445404372687080354276648478240499931825996773251098826231137110704432949330880228039509099274653327525613719095691608905853651827347341635936345059964663090016307184118754212101448573924038911892501917714343965225659647972599058334637421037764392292291157988500607313218046976596302346881136335298339360012540180564776234085273917943126535369963480846215399006582364908096108187753862596123592761417338526383609964156376161184649134978262823705391303317363149153004132567983518913265831599266974935675451235729989377842382621743236334478661182771955128023302665030555118562199503593146058387283938821521429209414596859179220571335316208248565528333192306414545957027491276130899840223160707951804886943300633741188411094106758896684090569916306419379311707882796886095330797189373142322821234621305980159572592155960392931180585996682701303669100843828599922059290961154794514641800758274345431939141394404256315855061388333639540104207144636175262786971472781259164483281464425541152087694552072605308969806169274110848967426634276580971945360836873882271492495722224159887253497450626263662210728063751513504867252122795164488557034561105586523880513186123057922266095595804010480096749765291014335285183937349604887976895835928027649585855942169873641769547385271347384852502589322535451725019310421679991866320884142686638750174195038495829205991232682176820940809295380274343622391983317095891007245542177367015062871660068575648731194620808829723874022332097440056528959866092442121475959820410233567040336418370819596525132813831319565653167405118161060702199237598507495723186988002999681910069149963349865730730605546044118032491968101564940302137867659042059646636421803580262245004764631426162798555025809282046250458326582662210437885776310649364360458463592611276068555218308072121467915571317544092662273707149710061175262435536473021676360365172982888019506019714288548281733229617741946919511113403301477683498992403412427627929344074829935904244940929141474822652565601560640645370278929693730156321998183333493641849496759439983462738257266170364192659978955684168988266823399414014736119951076380950505983383126238483729531133075985372029758395918034813123899132127865475556582036344511429297430446003258532731793126092975501003653150831491211729094990099213551231387208562493151017629847877025212248847317480445901373586607427452052785684721232649204477873864215012857544831689700411910507667438625730273031674872710259495884407779547673269063074534702013112700343474764152170791761804761468533534464140761386580376541213746739504715751446149741511262444477571792310969427487793685976237397986295749305558816968099225386962996989328432891372380643353563478885666432590459905057794161906576715551909883407450998201621840622967663201984220676923740546973167676162927624004616825306717001084833282151406663162013522003536279621091215087251151930447389585135851941840099927939419415177013406849266910976979137417407051283527668376262648896476286498775532016567045226264445783875030034817944352464520162766109722903532002785688468043217074915974970976132749897546645324329452129373217506072593655028897824688778625518068935202423241188562577286006948186081284649372363128180196059405399119482125855853649762816705551912848484982975799372317278583758025280994101356861044326730291843653052159642388911370594033350893722364275736694255488960423620347449456536292639410704021359523071149442144543090569316717563762554444317430882572278895332787114612391322104683461303002278547120319070315529650486008937706485368593213519248522515843780187221259666924471595544156713591253729732552037706541182555041667981318983849909744624853468448401455802929558538146433028752566913925719957974186499169696931851945291149167860439046071689092507294940727781142496533556236653188495035705776350017680476598871251363243771734866618079516869924695282697482160507830825497563978929929222753138591282637323207900984522060756795956120208848363410848874191218532477990663752698910915931805146795026019830257475281175256964904416127149518379663840637066699084234974072573070541303184969975444386128550661426564587493523368414813874945320374686236341636747437481065093398709871029220762258065206014356300667789072040565894119345290942072536452710458065240518162914020764231276907049546815317714890124581119560353327500673896091423070445196561890164920795681205903573915390774440155828325046982757529886537863267017348282203200448359211464259969324891878356958487774391523019259270150332390240587296889312676955349323597380261449252654285465765939552363560387656919026341545075451788390245727767407969435072833507750359098084498970495187184986304478309883565058398327134184754024582789808182895746683469328200553905726547303015777065071306011164940484748868573728951124802178484819651242223466769103156993139973106922007493669996215937470908812433892559143642425084455764118536058299015396699763041778982883943363800306045801458437434681946780283481962201926479990272770502417567391188599948447159079887238890166962457350211855209728702458451781152162576701934998900626103150794923776553585467000935432625215417055141079341828956882217595797709778172523015261675090833650635178310777262502382854515976997527932813659580767479610857481343548489097492161064702768672026076623027447210768095469746385803683788157237656536795328538488928935910650909018714260696317258891444869981694835042813893930007717347343148054088226251323754003048829603982627879184450239469128217289682458996852201728349791143160476056768877866102991016104202565533113197468144117076821105055235512620146784059399013671961379539603785327625822469364398272477099421939761528523488431665986602476440450279002333879746945321128439320669212707731504842640910026848513198713373442185230079741018768126740133364802760707743317702252306653342333973927609085110665029047227260635323776398610162222139163233617576001733578734447119640656893434080935622587004078853748746012032025921253221349506994570600096397888441797273717434156844872932687113868207246046516792871975333359277658275002427302168426084918217175231458875384582954598364192422121241991434362991730893117607098719751998078042084237160925639255914007762949857720168000790241944873364856779075940522345385591522470512419970373792364946428691593815423686283502685712836161157652420303080048910020095012632627459875354445689693205707040247216407437130773785330764248612671256616277386602700199385955667576798237441994225225937947727637305535513121096194938544170795443191930888339226861395985657145844553219117133310851929466950683633135374195645717500959186130712164176912167772776222999702562346755239009171283101108929033863365443457563940359583953010733866728660783917170307280466214913100050972468195040173011519588812650337261099176091029379365856821676981938388443326267073060081816596125581062143730756229187559564944700123354067346550317751393412900440145917298258890324983449993790588444141527043864513815391713880320649238655946403947995806834610347355327164255445302885670565816010478597213333952313570459807695756238850698708130485296507564103290499057739421386838024275457832454071941823429314004608412239179252073588621945164916623149768809226350308300325048805379703463319583015804958672166552595994909566018383967794309763835016203907687735250620228761599550773602573031673940312746521346427991486174571096448438419586703991209373565985504859292287980407771836645679689318009774510574615602211288926111313011212020932299659883873852770045112805381814398822974424880642867483850362482558038011793984014804928026271133876809400341459236639248747858832617370989807653792503135988449284049468163748465582898820179286601936691216460352329241603043475500825988061814355743999458221165754003048446807099150998290810347994006869890509829170525044365183757790975592889499323480863501270436177302665593698447804024011492930430849620121782741407473272494580202341647095697293542012754705850594373640436063147192661908854897696678805770236158337007869351142136432927959425566733768888115177042810186678667753432779273601534897979968373031874562526159583172292507367902930241205134380061312274488024222954089710214530583261298660014350326421173724438848397568628508041610145514730221379594927220416353840044347485664455366635264559972436938975955482379448931657421725699312615616361586056331607698071211714289043627931757786773830241519946429555656640180927380056379007977039902075738987750350583534661026245030280134477078761034151401164188702840231685944132373409493865204890436818327968917768024435790184518047952962846191062039655913726834431644839847129026964201616627259619253937459217201393325631952841582380696079176865283001039078113167221013524840665101004509093442245713867796501237132221895513890282971325321268131952498633297902236264441679398151715418518179195512173588002303905373218237180148500134591831598339632912187016381499909824888132065756938213149147105709829401208833052476654991877084484061171221200466999318389642785699780725399917923544332858124768204440143967552828118544317338468518016364304309895227638529468442798167655105973831691708292060451651971630861889063592955336527356550937589575100735133775934086228035150009277989236431183370694145464929631456784308109143746952698601660792506011463090076027958068826444280774828153302415254706251710685282439966032547036938629724376578740784377019036015178793512537651858204301570014392074903843193584874941821374302940549828610846444197014869549481618596959098670521762615599577489947084510971077238823611611272016333960816544911023183856740524385161159166875787763654546305280767827350102687390053053466077828699586343781740473292545650431211570497727530839645434578523274079865432350073609252025452724341769030081770294015994037828661951552686672317215636468385234861786707801233506558587895272372347267336172701961779493899442670725914750354067690243834273017548227111123724903160773410551880747860396023310725971168946483972339488060775265482354692054681557368675734375815151868563726020999203909958899305490421852406750032270633299051825831399158283906159526715716210188263544865454742196067643633945362907733086906822403841366185714517506738599685800422116057719745565495463501572589031522676943953104547172157886867012764342682598734386042845839339780940470766320734569489723665268856657789768668468932614363548561716211264364511286178918358125367009134355553724477156296729957160622393870075157729174983677032588334161270454136327741567934984990123718032913887152152033360636272368061543185349409057954045692648340742451929405382999012372134490078776679094807836633357611950315355437078097726526801750466608768777920822894137080671152563035242507052436088482334610641522668149855413685113139378750310227444935426578864709144181528037010429131074361025866464752793583862667021257713237732436517754312163950612231863375063954931693050439734983250923468758669827873113127544663481311910954198957776648984122668625774730612411898771416671697566861655492595132833273250961160429649646769829105816483252942924465431999582194881231172913443829200251407031492190492741031708545083434967738572007079736692615746456456495265515908792750141241180795890401572897763092137010858100296867311446709185351210891291098824373285459576236568607719495034147445391165887728069913068109168339086846736880269318603049798654351114144102290863205156589659241568348534020478223172659952852182418497777781458615790475045040301743029536208782454192783976912056886081008633623486975233840424258648579553682119914623313990298016610677204435411683796086579963752077430784026596527757331893553872878227576259934737702276301274416884715399437316983084480093101529520746754531990966131822873655774270203241155327400734745384000774800083321865299409499634850777864606403612469447463568763383087353982401931136427014608505505219641945983084296430593848741346235044781005246142341075428397692948971251038441011085514149734435667553870976178061582716699749233513140542858515068094750349399501687478579056349965497696937968008559119022272671290348946073810822374438707033818552151296476214066877686501452422589296937112776251301734039440690297660522568250455486896235730876739566131769647719901681105313919591437691409736414278669573995219025202706691737163765971935702365853778200498141118397422560661293735279943257840505515693143231217860107409152050395225025119609968718803633828518204077231133940990723319544425007029635616233076293809105091799749285314373866042950827171074420490804739585652678424311562081175556825761709283131717096299152801768733177135464947284033784026206504206157343253930685205131877064003256035179605777280202013438610446496165556661580940647863524816334382307923746062906986790974828431266771684435635543486674082788742229930550722515421654412060447104489234915024087217350738632323846255870417691573803503222409455409046523415704003177429280523331993672664158205682495442877080603295346422970976283089564923259961562145834198190013242919345361899045008573120556146797659447839932766551644335152904648676743133862931530613891847665632778805472752174469170474167726998791093199341768102327097179999738205031694666652727018036121278104801498436981103899358597596602340545130431818036254620901076655504055661338943446578058024578284142697642815239416669912870553355655381656626121481472189524087677238495722874860332902918146984017096279787738474413128779499376284182712177516164076831964283768070789491267213569238194965728267626455332553412489732208726756807772794791232688899146812282548945729367493636706921008099921523437649520502824471340565361494895349105783187435339742324735426649330086660926574890277075669232537718152927435154436473153643886591964697416732472151170660322242403789832284739503734698593550193211129297752021205724302063040350139249642111917261550127451339459253307966062047304628551937740743331197109857222218024915132880022367577666361422930142882093165441632569641086998752575187384696895025519299821476584985850007605387406759584313212630561071419082282465132485753788752984613264452342258695781007086575321264269395244680128417122158534062543208687351304956870320901261825061174124863679461014365993032359337323819411283740420996160224264983319446297336311387213945335166141916809297485518233834255011179509918525912175788646983135504401378038442361410378157452729201705380551683080244569047462514825043417401898145374066197466139721940781210297429826872455368664923857850481613330528507068935266974898768927692727852241237461380216950735986611024524654495482407637258049473302371835253350264325783605081241859047082608490371001171265299401592291025822266912120085295909773344540831528734438214481931649016638281778210822261853383778325950518581012324311424981492089192398852964637532961800103135922557034691764878430449479042934894143622000522293154496213014351759232268530766783781036150592446152100580188691131567506652558359871348900628328162593331530200964505705717723722498647680487436944429877786799144188658745213251131635585371610556360868102671129559439123864839967695967792178966294404129808646040428622629206655838508713405877438543971003909380491398754371695237022470516472660174747213611398566065799094358013505741166300701491663261913756570801129011715054360297052098217676848833951383961616979379954540621110701202714600411673033013081239991129751421277772567761398378144854043040546803991457112357488809413021529561069243822882247032241722344847705613888994576761430759073961893179821269952113724320505374626250612955396325388527788686131066417057673684033162222058263117747686029460844631246098348915536078303362844688157856706054061349779803860070112585192662833354783098483518868086858192764465254116877207824497849569633873408876312630392154731211080251252403041343194561277451033852544929650769982544809574213930713995433941342355144918046467359018185602683213416687172800778375649977048883305394750096855318970503350540650835005189460409495707626492479705985243356274153942054748128067067479420429288422891561202643633517037371234033333467884168183524904174783607214440011881822703171570933427106116025793041667388759967817856643164767480884889863484940589171234736439745972719168319537961171286430072000852222226161321373107310424862113405511800060469403529265730350948278925561390563177218731598010051032145720104127616635723760238560322051639711403632789739353591865814937364616619644534091069856339017415124428908882000948281437695740482224492026630850231987221621486294795830399989875297000540907716947641879446861641194075080955879969568546357943169664564533721246986428322826350951801774780933172255265262987896865735387098646038212878418600810831577147848295603129976720621169441740649358407786887153066108181374091367683827582419991761581411961235251685299633078417892213274317118151672368798915674970363195050900735506961887351219418564682565595666772726305724380262848345973880613600048587257226705473007638090392827715920563917535379742163008888464782070405958232194262654980025536404550272765000663359328091730179613110846726072538843162520673196582963410797288426562907515814131096220451292737582246030407397401587781212826378185467749407353890267594141409951379045893430182796456055415056690912022547922394683461799642400428559465893621697865700213504700463940094578065617810551063751377948889193531312333825745122492636516117496086038604432576732610016636575044546985450333859930466840516134696397685706355054845937351081419388451196645651002248142459815595871981496515342361372526354817428659613422928461556889831657918270649925002377041883389387205597018744692645006461953716974848795483145691894143214570688085720531768884233894865242566379410145837688342471024238313658103532483058349318605596091199199150234834535939734423035154288731961290587373826303944267948771644475976030538119381936113175110760390950195576171835488406541954667539545808322617883768450200882617204015154047900406064089485829482741369218955046111052539007005234533277398351160495019895290515650416341198387682348912571302292527554692299545825763052511054363529205755299104845659808520819954281084280178306632368525727355321228241639691969775866685881607589858780558812475678210993127923467119895568545968920710214364561330369775402029781269238833159224789176597600964340137512327162094600313359773451200906020686869957922820201744334331072520651956045924157028122490040209773060212048753904947960234985176660775048697509694605633082794586559547370904940843002000517200028798682101825381804307640518768504187006480953061253117488054429275257917818232559525865354080386347111884964934326333986650856335074530781845875331321708013529571893467009383957351987554771621832085222444875893307641022881495283527773764233862178905617258824907784815379606002687704007501885363011618417208973600321671325825842847846137639808747118643008430041255620972561327487536400604211474731005032217898912779703982344859098505477698805863376157697157363310465098985581545413467261733876171261250957617173424161237512377748593512613070992262002143429160048950529252156258290707015314555928788636465627253839170260407793256426739091543590617874701858161314477308963919852116293752012499868708606896233935732515840884984781975942624608098378634106191022120851258883541898919781972678041569295483988959665114788629686641189578400494967511985938303695201550938235278126895566552698528169804157034605140426819413334559124594611273323276561484451859416678818254504612353862089809230318564285522517912769707146224469652013501939806067234839006303602021232429834880811012811281567970400025503048285730979151660929260580287761313387865306458892264382936864772942328363215074372128618522722103652755132588029081887298547152084636335821627112338210982357210968970071383039225720149428370229847588552406726981826704203243331410549023207362617089610707331574577218928599235509738665370692181539247756384988028616891132867076971292604947121488791639328475565762630169669834761046204364335567959948850482187602246128466294019893707509844464647777722859814987573016499301483982612732272532686168864733435604361342610584473416467533909641745552293283037105963835743428013340913189659752072414950970291237252770471625130150769739162410050183585317867336392528119570225620047869972016169724467922603306403561306524652649787707074405334582937337162341121188684555669254354333937791924767359380160862830801672304233204843930957573082515373243052917610388443191927731444948196199305178195500948009574024683584768890088936927357989648902650511718188406065525413162070011484712616414759608362023112742754035429217584784171377887133284202868291245738981133952993766761697015411350246685151246468527564651069744686171978539615635858116152543185349769103794153368936429644480352247131563839632771780584129610499293919104976279525494231109563730197779167751585341105124818644057171508643128849652576734189557238163398207853838476501630272891405973917815180593334346637199855012877944944377098626834740089256413952657498764449814247734574622348787671862796032880581249076806999180342830898852125120450967982676990203237737961832783211192719403706034861842037690485750541579774217204701774839403633719439199843151049531880837947117414058008051139275862994093918078301200006331224481568936939720029981643058948846318555708814278552134032377292126759923327728460319648268635277554452178630382314666654675768207518977045523702314908656017019901635555156666164633958397356050600624234105782085642451707113252865470421238993530328095598113812386837814774966936515179802249875066787636147952218923996072373297888751079627339524660246010054427956612547211790924090123487193426561219639131559733015389966763839985553842068058352124669682556778073371106691917952242383504972493813287377054805784790654394764697845434282971955563512139333085195508174500882061225556091989454804216848646505059529666085351384492203026183294917114455686431174587954321830666421936773744864123915556189357411325548694866221720459528927270123292732210387331636447752384193749274444784746144414387371967556640913197528768706757821769264039951236299887349539119836239402655610534920242069297711385752420834890090292830203682233636565091126208524844913617518236773728629498350115204029130825476241906272486546620359085414253509670634629389511683417022554186664691041491977221305027327423258765150838068841541913345663707586924265692615363713703543288152910821723902992501214084422912864463446563703510831582580618530758313035799854219951332959331690583511100670668283814699224412483545561795938207670485114681258753543333747593062778026287413962652374826578622572147885213043953489125768336353176622835357890615725287502690335506562556822308360536795739895435641627454511559479612987637235710746934015836915786146194140505997259699609432170471289098224515680766992772460674016618973514206561160067204895470755179650222978384843010248171178385524630152449233302074586706717075748947518947905833135459159979201633249051067378836851720545215160079496536408025112143930858335553501476720223556202384969668272355141478379234111300966499478583012408489300356752910754246398260641868800190472153501656001139136087425281504805754875506869528496779002860381380273984587999197357862559106049363809999498484320582679883960873290832928785594346797011524892244220383058471305911987435021096895487435372402245837025999266003604608270195824682779483136258579641476233723441937470813014618651272359747890040884948235287823815783694099756155617705841744961913064601937337186785581658181888983537995050864157140353645779908765657280122578071355307150848004765635346064735498224318680053749640170513364941460181589833088589173713964151477179124398632569922428448027346213089228459323418649569669990857345468719002080384868486558241693058062011202414052733288483322059753718166927733184859523514537575728487616519723643769861704490825089191296579563313658540357878497083856971651175927584989586533591579277886289501871071166995070203833668492949858726883229666417422597523988776239966798331233224103642167867799057006190979413303117433505976995102660019116432538825727328064456377655967715572958873688048743857295047094336902063398415650938085656896068867269721763097546652767446922351061621005313034388590769459343168126643167544185045038151231774167901259642376488530458936764830277590463572587254119555982193028569936970846823714126246308944311738251743139509336798989652114053518105898341810662182411524569426634830995023802358102059349684907629878569783150884164485416399349001181857264020225182341669427705057254797922497029788710017380651053883445881702886415869928778223108152848768208256396113307414930686349558023374798760168341611138823371813831312689940920025637236568353356082868459226163139578630116164474942617052240580841164297074621195039959753356814835200069251722731084681697167784040566832242373110164675326350789530765982124309508222318371332795339005096985889494583344722370277824822000422413802065250121814784829025195648129675561299447578886048301408105085587389503631487835950283000160574548476905317599786584392244910689420439336048275057562938903896224512660195793173395203473645951409770611342039660354352060456518129608635602680183100179516022651614685994397037628852999380576004598890389136664107455443699458660682306330722342669664175946946685683908048491244671600348372970261854472486679564587596690486861500414245291353439863954502545232096831043926977957828980623547288662004666109755067534749735935450044024905191575779637147978691595463171753192501183003349598023438768750489404274247111006861028662291261562592069124592495937119655255702783217503489764896500893172144258408137175580328318354922024864654504914728535837718839982964445466753726061654900686190102821756628145959804929746195277262465563463189949448245923705827473874264504802835741337967095431419250986512975981897775261495309588201879418491314032332422764009703537958383064455324000060446616767395075323344312077609706937203444433618438768226697978252873528674004028447826085351832890521222484685702006467304904961720899185900762943782207303276615669272053661980059016279689684812827225103976699761078012465715485904153096374587789307521504783290580658690369048815740534795089038888452142313087925634552172798002473198884434792015514414208595549037423062900816499384736684894945280577536316699083678949822834681808879335956108461779149468721465317396100310300761059571329557154238844600870680728176417022796579324400323173703115595075567373065169916771013764807022901911077854742744046847923420907632317142081282740458135355757388484859076449540457125279713295880608585770345443283341025864750206249853740009100463722897855958784665028906489058181768884304387420256895626789624782301249561732573516446430359368214623266716002802237339588045579611815262525148066388816230393630628319310967869503072488604792670518261031980583512446211462493573723156389143209634690817258632418030696900199602538458099358697484975813710019312224637599735558296560422086311223951344025104235711082439121728940162134014117587638841716147398399375154658083807598184867263983924278207280919686719996412569959341191550088165816835982593156343498287997747423293087855225487844631039887642040800510965725329301621631679109299557743841010968898260000542702928502310474717433951759258655515889672528448799867908367620236233518309020339997416604767528665119204162803609645122826689357497437163831878805493337610149132532718664759207061300628136540652466567431963956668535196125521564256167961314674827833196194230112527284280045651727241839274803596118148566215428107453020213881782076166702728784527650934337072360280431024458539591528220158017004122912914245699068197165401960310302536692184897317073301797695905632908098055420464564605808400754288522146344815224307159438538661554390642278818720142070997254835382572133725720066885681363193610315187230948274971399984353191320001804436410268394141462576291139856467968281277432737192576808756683552239977058995416344621303411895371992401023286233092559443111076007989393231386454202823068223080251706633070264610044685613172530882546428708067879584326751033643000980649596874702173953526318429132398821691395253935084456394884834333371119282709920701260161959328506625068286863572152394191865493160519321003346988476675683615202129952637217305894174218240804135464151696848967452536396282144274593413801030842627590315345089922260161042118205336783821411411823842334377456956245301025824690332040481921588055968556072211201752863255613178980742233680478929365113532814357031513872414679063748652221473927859653677106294777809493056875264433225964083967325203327802189097035340987029413083575312799933263919937947979140309205411246075110940534530559860635459686262481939153195931255313532294286382488611818241826791552411763577194460623914109747405752447012997739429817208375983933224735915373220921705824169316367210431070908325282447018955046534572461158175229901865190082916417710183080150462842432091339323026872583202461905478627027377316925767845979254750831198833569557348984330369214054435449599401780933759353203756964521659241559923679305564601483768062223595762327906056274903712096137069202355839920956425691691586215147032035362760075823988979788264827554209299758116408489835834452145067880974476371768150791015860732129934092930619038686454161141095067587509653399453532638159780567837940972145528604696080443542291768082483229235013540672280701904221845979684470817899747893227683764652751320580147433240707708778131795407431171846487413759286005604945973450650212001875300228186370769959880020557686788067036307750917656162706328806426591052812596477952678884840754909181590522758841218936118932987442489632583697177246018095035252931276296379148516254570748012525125048455949533877323879605021564904770030696706937239109615107071590783161366136356956963425405851910775345858110844365082794642397900831088934213620706371702616987206874143173230020702858207064731248637050190387996594660992185775649420518604147110548889638585908947359540095806916093060830386891834757778899221844743542846413971374029645873905803550661856383197989797203436857068592164325928440690134758752559437497569237595951273057080152303077259230075449385327067146680132278255214736226289436515617331810745387179397272321163052808024875559402711279964558801290325656425960434391579909600654892377188354423828823714806382130272053710641526043208497995103678680309250485602468249140547355834391527040082514051581331671567449357758438538349844830239196221783868623839674942331842871624368650732600103095021926674620217588842563634505912309685050813661829930665126249257680270276168794967140003508318280942021939626144590154030285582341605119788617766944346764017554170301718901873695343898845335072895683435375113506053761477894202296211505367300686504309842519118108422086451657585070789284954056575001184802640426313901679065495018282054518409673916347463934574550229743673609516770911002770288005745484580659359850785745544792139368277971582816079454844002437126566785559912755446646627010751041699835515370791170823028454022940170606971034464453716272532132938084621578204159623490758228976576379865336525204447584852975534790596074099389243423641868028676226989248066956493007308964541901530572815200959414637020672757536405141869676878550784056536447671217151595589751538093497757626876437363919650790427183951267361494782268345952474914543885047356532605893414137887724356575742295878937024584948853757356474876143644707645194524772964556303254534926611158774801158982238690434958850719287539364758829729314624555905400614063082107011490215329426810405732521074914504074565687233428499989619520542866020043616534625508778841761467019631009938017386830289371207675000607049320612645882685011797410947751776304787569479826383185308202535813460752933395294531291057080087505859072061157295003157826540234920807574335101108567893437104962234465660410987437354679374866185656306065343532989551602769173673243512328743922066168834762057364831016914861780838919478186474725775828752046244254555748049463994850966269457014109993903112531368362108000028912508911309352693314214128302226455082949310558298067679053390414725796763546773832357987330014814420294416023989249082603641908480387332026942971053222262270980523067026407127830334747587372410817370677890010558618681667558221040268444022658147010563951451560983151763467900849609374982844775800320053371554153383482065176254043983568435165353480380222150473015250748996531293325327338248892011040122829737216527820521207979372942266625639311578896118153892819715246498507867502266581823564814350001399259591667575781103047752880686179658438870742535801696306330573867874787767946383330619961472688487739419523661655962016959269264908751197486280365912369489720670167145301933738186643609165483967607146749277992781953720914483880103037939294232231814497993333147857326600896141150685809352956488977371116511891267748332550229309913258169133700541172209481994732289033248839968671191348425397883304007145512747728698143940613969723288676291024100673668481671654613734969568910358347538014570330770356630319029209742212552410568122997083249618123927095061610881727168523573446100256446439809972913925579266273248754626839355033656081867162342064458309609094708111859093578327397656538073614417746316929150963908879131819474502677606529026476873955232008951430128577438373526183452590963025105861158706313153388332810091061489564251391472911484493661139836751049478492139344104191786741574197313236439547787857787219995168579219956353293056830733578367436825741840651067384436939230455282129339509062195590286226073046552727639869607832766869085502614825270265174547358185669125787477596660151759243691272509928923813060067680072277758235167974166639969526528104037762334483337166718717845902626240612866476204416860451275577216135666053141181941086657184248487570880515548400988073366229461845291771918167844340685214773027440928201598589542312001831539541498805761913479799223777799190985956538888863083573432621586540491815133528027787639861768953242070571933647548493631107175233528606322757619400344124273309893576386078015117241940085495056716315654625304071659872052340847020406250097369326536757885741891115084617178052634200574644198107213633702214076592126661244375021602856998454308228931911709346921731220259298113537107974360774479051631591942069184030278449991492586245343183013837120732210942151450941327883324368394567941144842707783166336926221851884151136494604700494193311046793993973934731251699014509001910507633325252378002468808385486461932756753824247747209886375791927125883457685500623192195117973000186750864686754529932778765190931994867673490413299612741143940720423296581638917314401419423147893095013999351595292361711851875606056536986503987041358274383841404908768056334199232899461276450377800631446025418792287254304893517144990611853374873779910579817319624910818177262755850438984260566128556957644160563070043238852279270085916301716016257573406707785199234325547991575681543538865902339303901520677138042728527559193964221621316130255216030623724774381504632701091786471878103012472532876442067042360551679439820996071015422942712691024811502671565710487606567450191580518653751153439696086607318630204710411655477275346546125671323228993304220166992453929294555248339084905855255461080856854584124448366631096984670534007610116673222178241082493290096400219650470173956232351945204624997107610984583371153951839373220372198317274360409040294587171773807973977002889405431100029525300282758225885493816058207133496256006918712041304723516449444021126720857189645008949946733351938350202412692270645455998849478200936999938335085317585382456730450791439953978110731827634245055243527491644489446465267357751227067030774278765985575807688642832574536064344365386431065508044992936145659033948475003776270693894876839747294933279583255749984320496278768682943970783126572899272580759890303582843179430704288615471216842420142570056805176397246382521930770309986245323843140962957246820568478901137450367464469510141788335438075187904642246789441553004963828651490586283597978740343537128733216149832646472695042842838456549276534724248254862046250437133202041877104446193976184488026864793438172643522091175751705274309595643467503830045912155436990969531144408799525870171253850739058714153695402953870027767865406112614123526056263391342328355008562085183363382214126485516769832414015432808243036382768361345553524731008592770573305277636434780611985130997891672774214280983237869253998024981354569674081859875229244291096252374990522237946389836878541669691385457044211491892656257490255731225397068285082616529266923048793027645065982789794090409534761981201210332663046034785445537280138957302458633870309275534227586539089216354427724416791965550712503571280696850288167898355870683700067124307996504127845418833735812174543176440431200568565599474297646573385879897402271327072935738896116086583636878810852683107106809156875495167667724304363080774848531760768633026680331885022727853539735353665378460894628417649956272835140315781155208887872728306095120849793190406493054484999298491253329920706376455457184942585657260481583821282389009952213605650789117912070111874160282731087220573577018233779230663209603793602762980231742722719593069953373660403601277537756059311554092616100727735401206133321887461635566863954556045615638800808866946655355938305653067902283058003693315878249200132796404926153706258139471205171865598255981243884157088681030424468371607634903547930751320355145967489918293659885779634385145205340640115476977239396688209080713025899404439500622883483488160228258155080032667274103573658025291061363693050387079087200810663811677486707869211216687378850991674603463727546729411667775430655263072773664071115598495280325543860426562037888058670330177288812281932517673939102784156701197085879160489622749557192964143658655430606883496879399161860620516364537350006049804821442642138192807258096167936040423680307990596264695169658215841382705402125831453254397582225159072712904539354822004606700567857112627866894071103580253262910348253562810169729344486497783012567960057093767249269819259399750016826852833010458355289258742382680043292385259893747452810268318341264102880584372975602660077736468634424957144749153067010340710236565676098530052474144096586932119016226871793089815910044900067057996512387933063475631760903200872896029876494756831303684373992299042824568821804092648548919185543816133742804650017701000468292302985993624349139528372591966911509263077218978123542450792842265284461698115904944181611488042828443251509571988118671336855426147597521358281309137462022495997448115015825041680892031795104007885440262400207313991320070654901362098842573101579345378043313893622612923511027172869158389460842388316569855639968791944092103042354647184333463546204219415440817212188152715209951313408299797767619883464437876211914867673532046847670942625814804144410918487703104773452119087447222091796353215081403781415670095552966825013204579080382490705059435520086465609564768757422816184148688543392615812945127686629419091677203607954405641068361933757552869294084852109954281027410804841130287398422449443254725080017061652075082293800417329089635713406414526678220645341378080518263455428147564654915366600319489778328082143898389406527602283405915357572404822578829015004720072783437654162791138452442385080401131877623052077278056482491643225829394297767512566077943353523160153561344246500884362841520594395744145587928811529910905238988561278491505638194313697289750252400112870767668243396413876670814306706211815852071229450643950424907528429579043661116620033805378002159721422063230231137591447397777041775276163387712817523121076800072147382438016557219459784061393368620023987951890993169761197994146581929164707410631513286803732041046724440267255977548416721035460496645498774388566821542062777321584566037482715628456218795847475053596175526961490009574144323089668609783239249496741949721778567962336280152019641208070822493965786755999728084107955071951602321152236538475994272019999923358789664490474317662447974657951420935431463209540159005362181607751384159789024854477973396526418997988947908689957040532761483211716311706575877096475400968454209754549464154379746595139458732412532237919799762591422768106237079892437031148794285073756977502340719026711072331829942022865974445809023244509405900578902789353223467356319154942245569579122816874940372039903999541344769405839555222240346193591841091956695945414610093141898922940022437187131598997853051753862225504638284779179696301303590166529026539428014796933693795239620400958596129443509119495182450001815658714752151432593980576982649584452813346487118215736601795015975024853105099614985370922013559847348921779256893812681242369826413822060485614501437100893554591709148309605766983558213152334848006911468376459024778527579320921685873211345969716836788439589234855432482182582348339929534856178418891808772621629663842913116576079185843882269197087015555670537307264869033516107556714612377396246510716718699506534819202826574415969490014014453602533816991248405363849071088368761406479792434112515356152102739702659215355655116518351127971291518170822833387931084124933012069824109447255668714601585307730370133504020332748429321287716598292325362715579557955478007459710332787141178567270194665398668554131743640557403207543850301718177100490646063330128903652834893839741062668700756468268535612094274235304850706631381435243044030863491455730208086341625815076521641353959924792119745810338315954665308513355778882389705944946053254366990305162935812124506222723344342920911840976337001017030938930499060545460425099263907294171400860170206199377911314640472363123226371299546239051623257377008672634485870705439904489433133433609805916974946635785639901553302681997078278388361456232289603890976315158464106945033141549583065808124263481148889799867180637326636009774035545121978601746185935024847557139033291066430592172833184571394011826063917113088805797999251611854402359534061564747676313364267312475209741077788925152914748059087662389111413357427955439911409982001833469895628793131241550457303981378075432208808641460055454508577233193283874691321432294449440016810404600306341620716703872845611020503068279948866598779052816695125613693061068594872374068200207077339366752339083992983050325517727094966424895743811291721080770249264908175683617516534280761100242932719334630883699465624629892193945482260722236479594280828666702185987250435737100162722339817213815847058814858007117462210538077390115822586742647211321647596845156881306316413118662544378063939425394436414654690480967365146790270781823595224308136682133307455980309908091030417944289775757413804850735299509785425105717001909508352606290953070105362033043849460941123393979802577590443632715845555566010528788507834866558206725106187104956638730203431422666419522984915117932227961979333542265180335680563991432340252216708779672841072424372144720462731640614700406864618279390867788190688134000916254098772967033486999543881889860031449286493899810535399942044712916676861144678895196805158724357014269747393214721670724623376016224403356603250309690189599469784276901409228315080765433540032779483296123099030112230617000565924114514498802321435655304259623586407227977023874131101893051354256963209916091599918931790836844660977366316688715711475185283515252139893049330061899821663345390120524131022206680559305785757990985666881110262258110686318602094878144322095327833555657413020255661748782704204598854750936211442393386328894209034197248063917913899550799185195381863888802710287648513723613698472280270571558663601633453170268803905588305461373576307511315796892584837785162787052547743827212513863046584346608947157094651264456185508006693039434973676993016015846796660221539195336722742702195399043747940566777551449172758762922215239340768565249978567562486335428397080047268868851918495650219359720052390310777072529862332748209771934748447684183046098357211547549828484782874911193109278000409028217749685691860319945952847181151341911467958866450469002776033401287248122274127966448659654731211516946885059647449284665979071335994784040059914201354310348097342753594624125912352883275291942133463342479114008163079636184087780995276528268307029420366045187114932218771806746882990147693117176336530712415108525651579464427695563026894779051253779645371282062386994697358178569186425606649507558429278284241467408631179683806618244438619166264554415346176147643477502021094257354877526241230985334462232634061515592329875308460456582915730333291301889777575237630995533159304005291190635393326204099621020693677619731178012941477054214122253003302341916105544590591070911659049782740594142083273264131495522842745396005316650999268650921179387891211259280468841813843299614013720318399339279013271543984697779504569052089675303345643766452656037958408314310287447862374433128666815442035570544551961728917615001655749069564373017686470142898849198905240609472648115653229740739463526406179635205625621736584678587264176941251790199524974608448830458250088960722431511843260013177419364629334998007241808800905193425076367212489941566424453794265144276508461873076885792506297681416878269123578508355941560255581679435233280735505510959363056715647916481142412847097792539586515455067172651698521925138423278140503481227853855874143554071114517440108732026674821045279141759531449162454553074238242740289169898370910925374572987404489933611502695008590102125789010640642751188330556735618714705348981506636624806286234205818912384205409027164360560075566214296174590014716761072164381350922529249785827806251293456581395072481839331020749105625507933281722030317981727220356693517716406608545942016292463032737465650251632942644201301854083217372359104483592004865657305702228948342832953071487682371475232398215485028362558925936692577800421555378148068856570858515435140276406353950903655353269318354437218416057436608541263776991417608961818916431176835821177560318073141257750914089144854791314822571796521861422218339863287905080192262381181388131057856431766758311127684528361121897959122264411282804266345531663637592350085569969029249734706016077368197193585883621681007396600441611000434767353985276911285990072552836118408159362783361149296267625400539119426699966110810517884564210908523027884528794536322949695942239198886731778826261409766919706414043541864777195539738670129249590208302064141295820709247218377952407571929312283506405850241030513831163483640680341554257572917520042201528104737338565217275164872208367228609931453718605752553942651815359850665833695291119554642494466366586259148555191076174778986635590639587792406581046414161173211327522660013370955280654041333907688130135575494190140073716809471084618999654867007922629193969050603575179428580159563548346425985766616703108676712803947916115558621575165669743597543105036022536335932930587432928744089751199662606176544578485156503748447036736435049477651776653195942446337786256098290925405373571785795711127323712221045226527912765257197901607484118894781597750961856308833558096119367368274503527157627011128718131079125761648494973074396106906816679798682280856533134335074967041910175972669373662112096439624300816965649901011428979105714607585998116572668056058110981471221972844090647914657199750116727382496508009180996139693325672433135125651108866591395301663055644484438599337193732167779787135808726938940648989754585386960171038745676660886942940486661750003085829738243239944759099622483262782848570567552917285320584256690252842835465174604595229152355711090387351246340864077549483376397359981366292822091971089513935007850725577764464735872936383136956722269095138173088089573364030249158972609516772700059948780636849540001212255874785102723284516982651612825139175658112647287803389323327486063240021817176963832906811291930502897715445907647387034747161685294218600198078967910031904605353390997746914134460437350041099856649475915360213137074619254055667480599124777773560398481571139337258563082957272457172845940600527480990718940230899387511486627087361962907636018447471869098615775819680062956248857495800149963382151179852134365124609656913130715283391695956306993744200205666022176050428541189515314844213559691793404683101582593343497232107936608229220253938995733206884838667612828917780945572996131960548696423618737552684788489307140766293134605703151724802845002112373073196834594980748838277916061732099303197805005243914060577894054500793483290465132841133722979434298139497123349205689536309732694936641779392495491950668585351638504770800989285576487223482545164697063388612808376318840562013450066871927808577345679716740307560627414557525331392997261162017382686062600926504869873181404328955899086175612406313920247870985762707865378022058095423549784400587956517635256528348589205063821107482102614694344314461441293004118649427533405720198637827662435315952319738020799407980336892732484998352287919536450590018784879271174812769583454143351726335239469373737778949177451469362728116640855578850108152959711585349988681348120820587993322224001449422861260375478653318552855919782802181156487770851548736978260355702978105075373825756812483200055182132914388895934693661168522732768167417211475416720268961016361105192303729389262958203998550061281614477316660426357292217002541319275468585287150585540995269489320497296602210962650361778383215868865442821463785946763585320711431948388246268880627190268402010289503335391224055988591508531133316787657875766793141344253877542095348998976753515733596084609303077886874358839753948517175773108214858022009042148141884601786981492299538927658848266761784674814079844983088997892100217848810794779540387224792641497431913316407821110234397656679807563780454708609566678820709515843575749064225336807451173391179728387832300308427816282970050384628112839740374766923957167331518587279316737725108334612232747575791785320624080245068366203610439185935192178677304097947297518022969079061071899366217934108884949008793121540488115322891696184234735859297685948441631430244280807119777125972731325910043380550970230037035050361438249066706541024000579164194676399963337342645518780645548410961691647575797676467938376635148661320319821881369978023630477904516618491888085540780413739957962864183872174854192323841225797917013529597244301600177507433952903528821885169775861245296117683605267754004427526861043661936163770414905211384850881635617922140452230119756974506942084322903367317749469512071467109196021072021553364682086501746150565880636072470925056332871668947258488790868729055896201714651120709825387329234896706911098014888269889939210893064979702379722385637920805738146047347574244877837456524230164456131959026803350968360764529232370950269398312812831180096510955811775870419168102421911267749704841899143405625509678008887688920925874108081001751140413119765986003571019394011334984546945236860105568355379796405637413878593111006549369977222297790291615981178784434750506622999266208108183401744045655774186820184578268871907083139024066009481559428082880764789224870303158236188838179062061337838609474112853841806205893485527240399302417855389857221692926831552185362284617484838072374815348043088317159389643950387335295274094266216888158433853060635791457221694862481278410792926875070410058189941012096716121089384945611199510915441660497604805525010722186637382877539658647633259483694564857370332960834189729379831894134509972400817640358171844430845363789168543132216822928958879279571722569340729563293151259934238988620435174842787822215145869269049415759226137095603018788837212871390406577512721102379597187698552303626380647474534570771086758509325665084834618128028616149273307804191119387646256798483484211410497917736153559243841094814569373918603466327977972560234190938008246012774854481601804877680114180822698700113399128816586387974009574428398458128917442658609883944985470182215124983548818424144727098678979238377780822728455871748796692254710950798875457073990870808167757755685175722982220699024983015475932348056306168626323788988104964818374638285585920602937647752833783131435839313840933589251313546774897198502131199315185565177755605013829109992738227582464556469627241252335313637075434123083676263286441187207204341802816363739542167075488057323293355692250907813739768477352423808074674785925388477755405835268903363543414954625178227609779991351187579415982414604643915576101848846214359359321379810918952899077604255713936879393709710892330261558927747241385870383385118377465202481002632906500638826856116828570212511732063327819605137440151444310935935104861267675519282894200160909491884681976396615419704425419495015745087085316914401271648084453073348761550430329567747530821892614632808039448543897745980829324550258205138381257763270007642817363623483239165226404947132594903774155225336281255518175325634306209506110665881804903277928710610440263103252576341511413418100989312476638028885978936028918150077403135416856005514782728055837230808171819539759139107097658152293637221340575395291099940076150944932870909272252709640179837036065632173395368556020710851139118801255276019320642978056143154113190311450016828377783872593511049544322063872251353712892699422371808582719827820379176070966805740731206224016780270196346612398854778321951650872303024428199875974430580330435169539081015294500385680478753540889211396724817803095278492478446754046941184807042998581921270990395130049529356309446728204291631072999799221651276124012694960878645459645855535956371755684488316181543723671534936574665852205196398171643626856502082483700598347000845426930144704757514818872034513502950284062275342864739616645951259476131076487265612351397417521204166209486468314654854185093913980738795040101713528315296275004808855341049488529779066963394452927800784409335523754996019418707580763162274107895166923142417601337758814009038800634515620386704871815157225388713562418511885932080614586249501297833044498218292432943748189910698068228187520543201439691954294286332603880752987789594584047274945913509513222604064582322425276152235706833620549914720458725210477478911831577354701317969874505592448372709064305414141365650935824950431926092455379985922012968884855789625897552634546119769071459687791765030359895082618053082561559133507994307532216657277197830218091319211583140042126221801872441923650227909844877462169260715508115465703990114326995233781262315684736892151540070045374159740690503324698074682766965907806652094037593176653967880295909521767598613554675538482343632009874888641966868273861351761709533997102990862719941442756939432777189710403997726094106533983303080114082624871527774878444924595219627901596751978773725315571141633156575473391051001701716281854135499971232733782384953904350762873345834368224016558950404352599627954446668461553249616850649285526777873602784145380486679429532356803919753854751463166081386971981295508886763415966542172957827199444762445213881460331573936927742776154304006902112647997882456093282220671642827179453558941691230979259956230050707472812000782794771421396151539126146637076286881944796799278769064780844422902821688369539040281287772706891729006455400377015743453354674119750872288115154967883473080003356021443809596818860197972199616426646010894010027751627699552106410762843033436311977690382806185511396651150508961016247049455742182259326090815133537864054503780369443043760098107676778692708267332398883600754466899377856233807006658415389283677501838967668007962655483573124856319818107286825457070862825683969893226476358957789111582198682377399694214599071067410968783615954337718244727844816937846170378141563834455698683737727862374357113059551143578405709683567303783057650250676446587949215067033674522649578529968181885578697742256400392702152926406298726689925583354113411062014239812558993035082373200788648459755831899916731657879775977134597579473687574856858520837450172843792902668045310038000124864353978367867625827747329827652350822106050221078055258145319655033404889106610151701036073019981192785164384370952631856549068515582844759157665476066012372021690470986163499163045272399941742779843959727373752889669581635288076546866593482055221184290739031337941709452509084185426361832448320540928579825614081270702907336342153445000189748222264950812417203301341086004672825665302441414462434251670361192537627517990986330262488740492160136445677680083616967654739031786089140310159096013340769207989234277557663384793216040490288222184580735140134956876668904333811591167542534797133888295513184061114114593952126064483461109343173686814865870204476643708788432875682647542177764576254192126670945889823252046890394272289672500867747852577410602236916466262600543843032642126545922578579442212520416473600480803762065450186390322652399448171859657179708296580822434046371913543973765798596060003361002965491663101367786657314292838356938344679996213433516187408443344080028438367927100309817300958341738602680029293696831472143841304494634639907664109166295881495453504537467615870357642535830694222564331924017305503968581586253514624878479559532802866016216742918050636566863946621066337746595863491141604450120297839016953692039623096547021005900173742545438622834853207481078369433735404886037027085240422777073461038981196787193978403420540565079332022378530268127343606563206570746702606512916842624322963605067392794431226143991760360003700550922082107140659625796461650116160233369636040801368925603909728151467791928474254824524412955726751931695993868645559182918875631043276881981402001639937521129218096260500221370747118277349347662241741532208564639901767771442624911673550026061641681694534886419712911868858773826934953280809201454788152461943713408029090998962198560518255997955618741447077354775621026982022571625391457634585051597048468336197440791156655290173976241683566205792058892263324947369805311833227684877869041262150411037693916029239057223597877845351461288935802243629369664435512690119039304020078615009993154684086407172113392612031705267391330082433569606581651015178633684287631695561294060379984469159683389727189780109740073615685029437894982384624611613380253021945501681386990069092414973125222480549531927647972204915430145431164386199220048411099400184912194174045350511567223507613544368961139205135327497752363184841262622841222996244225170687724810063609519299198809984970314528545701656092382665625225214908841717346142354854679167220195094859574309398507692532012728040680564757521498708495030315889033394581851188283101093309879617487638527527808137207609072902722900965630381567201398458220602090959845513738513665240365859248100714820145779086174476100353558136064789783567621713937881300002898222151535246288986726806692713984153093393600832360857237692250221755304277770938533947404490663256492454481087312320883179148346443825600904872286286774089159700634919129074391120405328081150345648690681072965659635697947926745154619929441652486980454812111369973779950063179921849743653455030392822484752103733897436546441614688330507255439643932658505125134150760661498263138347642247476152336870035955888835252751857573446938992458255314104938104451099792246885830256365489656330509642223049403241010833388583920716448003215977131048082371139659206104890292222926933133419530022670503075573114256630912562863376800299046272720783967819049630732836323077706115905295430062116603284748384712307144941039655722755297959596437994999859285479101017660591720174742527831277784756031779152074873253559984841914290275160108739097928136320371893497261792587303457923348588413354974933883221503123326947236363788152965877962190462483755969455638595744830951284990722107907775148698096555284874863227769768414654588245338111396570796718016490134099713851750722831971810702277731439616969220529000861141317164883624269710457742220982982422069631496444474799310900612436931377015282844397978341133207235206471709915915073000827754450267816207912474013028563213949429869653821392746566304378605764941474760571813601142782880317726412056021353458902052580019875079736390797514430953171024180955957933665562232171905278648880254220590099607405226811025541322494278069109771040577119814981017094150222394800846593767600208434687166051148308094114386094984347291882612323067285127500390172404296529100021193756345858746099017317418685498667426353801509558271636311745175084890543225802059990705605348705156998057876344563793889046017403649331437810690653140408002262303274703654537560716444091957701897058472772633501294457457588590938014863739078130909930467511212219976392377535370443989194756934339767444987481948625599821241632583500611466271909482533543537579267515064044147662726270672875304243605046197892272747128697618161037669839084713379352363743542617868046941737005074460223605568999626506352304650993842369129062158143028762825783556352196893490382009610817288837459917650305541697519421155302970395814168810725903670065244349973590367721355921820696119900118197929587769370932395792052707221754455669018099934022219897193862978043088851626013364641632592630595561129317216367320370951371560080163767011256853540070831294215799893213699299097406715395294924300004129655099218114538071507215782427657896026075949976279977013821357755403167819840758888900499122766345990724770262824701141886514445834361193960153668959592984422878437402330827772009788056857691781088757786176164796631610783495952001838714625035847208459507624297300429547722527695008348667460749775165051075247617937600311582080437434181424959037040230200588670551934662032637188062423022978781726803182811536218190413490057749247506564122102467888228628845997442457272846655925513503752378961166521834708289162899645551932599581963991400455744554839948666691591648771706860270205091106909126482191803705588763096249618293491068443819107701632495771944226963247639579121045503238063451377352084723382141296265617372630122941934744909527515721674980350744911643257423983506414972502539031721056209506292778608883639849400789363290966980860899866687358178044792151568463862154864770803708184155895765617585807730888891869263114407794724829536663149503279510245469898500675428557783054779946472893154654386464277960267664857592144225439253708548747448453359665336545354551980023771149146321291178716920903574298717988375713713797440354457466071536013810451673872768219368486774212576477369139560706417612587724046023154427664484994662806917141855482245337686473161002793436579227810448595648595041667057561514016197403401219775814305048453674845148823320559829295765727854986719672436808546972339014267004648845569285825843845670210160157644019273599173266986911225808242334920839042297105940334426508622473970204087077393039545643272482408684528665460529568855447597146870011794528974337164464456597456784836012851361528758647345710322261820691241965518607882615288940495521525808630415132875577658705278112538394399440890428706629750901888725588613057940052158212032017240970275970346283161387508611674075518826793894439537482587539428405828629918641617017170405135806450264694668238645723365983720614995875104134912485602785516317192542602317838694127181744323883742448180898929137058654484402258873889683170402472427256918271833293516365035197124419937291759435601101630925682543201206671611041763261298068700893894800914945367903680133095707698885931084443511336429189134676362242683820088578753736366263748763858328799412522348357741546887062867557103501221699420946874801438569374487451630107730362942840917187695107454071191365133103917133701123928801685484980240636248090744664139530867628157561930518091138434014713386296629738308488963658592851847548243432367062962888913687577771377708102913778804714889513141661595872870425009466895019414361407019136938640841715198326703814960577713078155772833973717509670970874181324324960926615211820961115836583389763769196187075497198810253493769158963061166718723873966013350125068313059024929967982918899429271621876523636817818887990833523782794122843504850868049791836669662029093764767543048384017411613937884712196859590601439527362221480029556966945186683022369634842906361289222007452692102203450273399322058684413664410886606261544154646699719945453653610587075329995747756152592299999429198629150626996542300568756243493743206025851995087577458889625766410599389223822093277259369542386972341551508069949207702507521369735897772808418925015148651648428692251687461284116609670426481240826162759400826515149366738613539836157234468627347194405342694366482974635302011733830597658642752018371271168379885377082357590659763233021394506195746607894784362182262268961492353714823783798586329827989490401239785805309661748541465663195540617258128944759967524900812407553503144458082615011232611416687603220508920271622583080566388229886662043716871867061834263309924658707062764837180398241240560540912685072726540102261994067286818689194938019900160045473436670180731164904294572480261351079685906739270680777554932222937721278604951580344196465653404780259247305677279885176267371048511361387424883330255646545930167655013759995927921667404443655022353200242855672101719650798993023877358058639790817504318378749366624754670970658782690353727092288364535302678248222711819635771828252343301300970588559363908825694908865463803808723210535839786586775224198883536959732197190246484798774191333986781733382977091968349130211049167540010253457540947629077254527898664823707228545636001294352757989219537276489997196565870672377688979919083539614483356503565253367756705120443187842412308879889829668892259955119318957351953821063800960650069931504787661589911517526282147015032589877654016888258238199402674269282240935382820432892663731359472557358771352598096162855601467453905962575460885982790793546761456635179021967332804514220849372932589552573309425298243765891805742641917125403320324369507209623926945390839521633335434435894328576065658994248751959033350825821215011341849775916002735179451749510897998776846825354812895860105992713453044199379751159060719695461920852624956001900306751840770133269884786051651753297611273336054500012918269078627519237395799091133477639537863301757790774766963876249935545976400385901113650121475725959184009374093948453166751706378696386060442514008601537765061741843026948469884487188082872950807919808749258998099823440558241194852663940972725780938954000200627717816746383417904202848931757601723327347899366637427275513238477114299258154571855805391004161032456455368893481289972597358660035488636151183237575666839892263475273129174467670497665569283741665596530222732036237568462561479624794680646925450071020078037567852782864071866880399848225926403557059007663283989814846311756254936427153197178697730441077765189971991497569353334426008992361679810692334526293205906886030718331669083727400516246634053540101462397963942933325011055942730890870042408854816379988321145364372879547059358833821463073074580876943647581325751786067741423049848314912530076299135154227666010263852243967612454521303577416029595612656560382545351477246049239581582790433618075703379795933305889511868295209075265228246820877468197155583626033943913922594781020222322880173054505080670208561070311385757268225473405442095385581451884719853697767710002004474883601273316378958753807920957043538050694115880048871488264487323858916143344304156173857041426365776768330643577848936182643599550332728411976636258479496747668720463503756689343018025519149708894951446539050888560609704295221591861622832600716884271040112530982968767144196407871126234860580805413516937985303069800110600688087904619823330474474532510478611065884958752521772507402658459620146841992584870594873560633182126537381428600918990867494443079400917335347045447098577935629812250214626511474959787492808527549704981503808290745311255937445145217385704258473371951024852938850640427928623235758160387738118701826573038491425341988799559113643086483966512181652038163266415620026009831855995710924219900888816936813694743623928622198458405466306446189027967894931169916408072237827327250981530120745131874084207909553828871477509965191410896265514119999454429851838948963429362143027368314005125580497422872721535488013259589519525254127690517378512230069580620749094651682476857643900927735589404296052008349442228323208452378476881637500927012854535308371440603832121860135224267842651108597434772718347343751664213346601165552540362763657614215922317901859226229942242429440971268228411749109921683116432729929744620231659830045366844527452510211792907345818487372792880878285468666064786560944826781507699886459952112338237184636404675582699327468415492564817261935554302705160858286999167217514759077961097209757974391971339393975114703026928681395848728826714295759860807354442725768308264243785177188888874252552922251425265627852086968712170107094724199095600549817550417130334293616572231424534491942567020427969622199521580789981321508248627867279219795112690605184716052675605473284179533954741536698772350782541793092320931662271528133653055477930420662295606001781614817998082564359057074767260979194253059710788908191573086269665593764333120816908331997639355735460349346795135549585698037053269694601127947546502571123320430555668015125243440127508789856252652760961783056080805957439244174016671132894581305894133796293899283871348217997217251227552704411778342966203014773839730613286009777446387006239814590557445008209266449696645988124122927893471785029615356138651673087340931460232436484120705395854086461286246588905259098908802487990768674489189811287640479930160484541084867621876252073470386294869894967511275575339124364153552424483949929695956937196559436589934031318228606746176970392158311944688470024327040404454528254472677173060967869303349038286723052855418598976943513770431674411290923645432440173257427122574210699879046050537066792985693790999958452986787788352165407958414139219289477797862808225297915534657808224549887434000174200936858571063136386275532017948732842393055004997209770938035631470476049270348007309435007879459492125968374775267380563211570643014167768029837742267769164759611728060152261287367008683174197407997710010469657539315030651487106680534188831185949188657234972440625856344517812023159178804872158147198955164472880695771103724208575052065382241648450372066933723929799785673828955430470902957655487434125628503442802557459214945970310866915800557690284198759598909868959595220760733751234081248903529907934011754436288476281999886148598635832839966890769211988961115019559223152951148166956904941006774596446184272312786840452710383351824826446419418205207239911247333425663637058014433554989629129954537808812141484365842360537767386353575570109691935942767154942517543129169625348215871837116625203959349162674172746974053799897861165332861179948645513524313544304704988916976355912701777660242668087385251034568613627008855810636767961566685944021027350526293741615334246610444589113690129542962851129701971584814933120625646894869578318503895902524814441969679879696827066564690996431335642502391148668313994028895449281766510198380492604956710355508723695618245443584047848569920679712526397323779111406392650506176543856724059203311645698283002088033523468017776044028293360742698628095585821622341173450748900579827460395903227977111775053033716214113992561927551234650519798081851198729557779573092644667587155747813351479291755575454209070696246669516981163099567462001229969128704621100577041431115203676816415836857050644177935529863359055554672101923101637312695101507485717898513674024304827322459858060283576124883577771810008641551584812052405446381424484204247629551101739026642716428719312527845392290484376656042164641292717358814902493539246711725617379449652891728138661304907443255322653626329657344612789556154937247462264470221996447575612089726818714039763650810784196317269657294705991577522170206677322994482566628773248162171443436885171794855263712574061926615766209047240602874234694112458302316012488878678687334259257261195030126840229351295430593801005010824496924326229697471098770719120866802001611133317090333029378830680620148812822098848035138306560132775917255154133344482651741009598761028571773574724538873196030181038611519204089907708722171293914594900952739450328261602309861529679514651932997686915373899369266935914848940087691686509740641602017018298846197022537736853361757011402853888075347641225009465208700115143672995834295232380776220688345901554492524333936803184861668382324767555661820933343934874687080368677603938174956359052039801576540685666994963764351635900957973055296755547661510071443036788734823153852447911867674714661532763912347608938543146741998394450447575985398947376533755186703711333934257753810140700497076259858944404087596076869133831202547363696544390695703991601849061295355856188336750584396662237108351241171982222481944955964621422038402018648550607284708311607784769436427469188367565751548503664319761565909164494489789320964202225944024700356712780492692446209121444549340158398489356607434442389227517212303493501306079698554967074016970306445326194475279284520312271036701857698050795317787727595750727643703511123068565381869382178965634540965226096627258039739458245401681440414595293516844264415070074449957113239078652105333769299182268784228601490917552211223672871373031350809352560016968446617928859956969755255777336470337697478177598322849094669568241957658448662930258345422844592148336805875676045727688466152460908644839353093211480468138521210198296360616583174376517208931370803221983373079310602251901175989209821182072381914739886160486476032460550871396723412445177654997627232377402721375246970943569666769808314065794713739183517310226438646055171231429385716684981372491563744017027613230987274558441691633851920527744927281676532501200623577069066538154094883550708413176991352390545611727278270792961632040165981173743042952986317162659000445231058744532640112076170220654693954758069866052825081376660145368272600880295394602947540848048969204672735516385485579974107607225240233570670582164866623190328273870185063037276740990614208825383095937654596151346267139386398584479830018853346848004932664910899093907053556651521347523088297112265034346293892273779620669011985201509810384414324174108774898922933665861096283303331044035049095668657147334023204668768219175784470869638550066036244877303466355851882622867426771585332396680881715567310238886295412088694140062860447420256855172235268864091516419506675149409983368049917865940088838440458460885839476169431578631826242758084224282269646375274433075921380485702324618377152876313005272516007573552050353169964547488686022693010980260568831764671434239313182666622790006347882502958994893023980591350048258357424425866666207673885502458777802569992558906252896525887765452168193425299171697024959929938704651540646727674247738380661543939899883911518069678855731066404158735142218707089574496391544343434832913319795822552624078430177507402327066459415548394693953565491701370002604958958123939976895644338607334561821907917192910670549775712813294986145432883256121501021943153386570504424721502173494724860189588009036483353687369797553453304618536931006689349506673737116282899023232929959028370783472501493270687146764469513348906644219999537867469320913634377580532707048312564157549435551576247170094861564626460626449752627392873531104679820177786966826005136705654457695763822138986598109557860724235943006440588371611629352244456824284979713177729087545499791213609823075873016602153893612689487818879261081350582370796447891003468944745030196796624398734822125904550179843170325441793805496346549855938149614818442346369088775633369755415057114995767555461545724064219323350443972561135591205265538337676232146097974266024644632206621996506314952217399056650972168561126990347497424066279503947304638806341469352869753419217600522552203537095792223951005104815006296440948942120040367253660397686760787393804889633119945599969202360506999685369941262222659200451118684110139183451052279790730319327135619066312762621570814063381595078100829704881149136280236531491027260107528278701641343166562352952846686109471073861157647421540156099200351968265522538219503732696650302727405158671381404125136692380575623665369875730043929276048872178629335355433475516769981712418168334940403240099107139380869470825748765294005681678573818396742008446105491649567098891916249797652683148737830011580056382371665955452009886778104913588778569490824292004545679649870398912216307491501430369944449556109568445662845250141007460726602968446550037542669582222705454613931969159265507626680706002362673600712866600665439368592214675183159870291116136408999249490033202628125822169331094604867191533003656496774117091397594369051531558135825890754366529512145909032028125796822547313895591047217292539286458109231343357403376802093058274620110615915100503047709835987249050289637392677345348173980185589022297199636496968592530113289363266728957337570855487268257583979626680484622476800488949696672208043679864840179669898331599542570394476195264803268899678333978854185555648439884871289495770874998482560717685361979358266811676222290623778606760232471181403838681080702131598936716591456647112271558752833079447670856544553002397094429786412039903886211390090803428965507496407829010252354122589768405910052082544662284320752958984321928746059346403749791123390855432177859488629524694892169408116354575404197782984441931233405833800120110731054186435791322397803782780821473782697240684920854472992793719238864501196264805130580034872877861236701136566163226089059485069010042039038374838108593526042569909250449058022662760928191740634745170065600658310763161211690186873707056855204657963513064660393804021977313918959929835025566518891470213838702700984288845059311890340722423371726977115233996645005176816619229654391313532467063632965054628680668211044004597381056104968086545807838122118232628632286387216507495907004742127879250260927919097563398340957105540354687744380829091682714118365577968813574319111040581296863141956337140471529923976035344540860627059794613752643258505282835157725168106476225802918929652224521732133578930708737310887568831555356651557553723804378374451626237461084222316098191768849649247578163153518090547541590758259512103965762183494268657730085426810531075174585348572584461144244781069993521985210506063437021021904077880057027460303999112717458305159785922949280797724913993219765099697908218544620386116907766127784591125056579080762121049385390197239135166934402158050939557760390464793006816568625595933203649579114214593926997066249559626458557668117798901739241069406979476876121292259486405244668608362807347952636952735782995194380534713259432352857189987058957762365993176708017355076671106218611991300434541643981138193901279482325513529077482541055706413991743987268590388804905833082303102788547958016657640585087587620901625539452009920012094089751863724910045109037927137722268217756561354872522914694092027657973047412524963351026198393682793060989543707223579050511360855624779672995531852672504963982725231407062568715992294380366993314545031478844796976068733150783332346271243514104561141040876277720464950799457147907571198437657004291681234076132756059818120730040664051962583827512752353148572129134584591165596467351780292914412550497078499933275472283697806602593154395606843278540757230074940382863060208705527988261519542732004716397447053368214592946610911112482760930718253784832085422653822688374771493269407078688018077229746103546018833640240133772407666522481432615304972633701548356565163689182327329185939893464188343681128838930696119133224060297779489902891346431846776379139704820722058666879823826117136232846980353295210073221689475411971512606870339885986177984914945404617760907869612983200548364691821188736438193510496982875384389825145686446318524818778052594211238113585432421228996113782052471228660114610184354142875535236000664216661973520690424515817959710530356893310553301358842822296235204633895382600967406177992230386043996020057289260877765039571556868535238502052569437757216069344049201269548915034148076405466512447764612686471833370356016022843711784742267130387682510471122645619023917697117879593026630554145616638091627490499157194267110698412836135391178275906496271108677526363775777054467014020384144298546233554534381771100196285702905325532559336758416041315822315728534438084893617637048268424038547978446072678196352980229699664308079756252815284203761879475461200707878843999833817808363708289538060924664306403480542712104447931244990355098186052421003611234147829531046118943936574186865597562942593843202901374805298164176727572698431033970362065471256429026254403277279861015671997041526200391216485394409997195894232290872299411539646773643167979714575013411099692684681813438405762299906001796957327907332193899898335840493704534999232503575553152701670035064855951127474704852144443263143087822289579465915390756552340619069700756150146938600515966432539048867797865031969651639319387500064320243496015843826094949928867098942169118054085278541585777276235881557917392493561875671599235447346083975254346077912203249151005815788252993587475719111780803993838276316629848049046805422000188191631173221493136602122684068660093621419237605903705213179238406248882369956103599903050074805907747165938740201581585365874003565717945228559443500053823124953446556019605573443502337700896232662624390740833191162345134306971010110833193031176875816078261822951115856298819652805169103790784147492842571371629343746074186786658672315255886973550308355236649536008640155448857518163210368739507682033434970930602856516595878951118017559613064205034960040425881621647989051369638805527882668625802105674849631569617644929990655295552751147581664515269949572465052555514225029066222917699216672325404379651019560622534141605620303052268560177174047388432491126199560763227265038024441137088087243977290875280976088401171477047022574460945107231398253682658039631535752379366863490343902005335775200625353524498500997894535405561998244225058539548518745822498368987613970608861398639894563250572761810089571009824792832488166002279021665258224541409102385152405650604340325433699818356189555386092127057507218618535123657888771380636833512820097390551779776992425893780631976357972487268832812082806073726211736165687385731462479253532902077467290014949309303716586339715527822084431765595388794772005496005093314331770970035113592158081403350637102573382855227405608007796325490674894379897809321701252050792551363627757251937986115939485260516297756444742843520344747627681874603147170909374640259970829458752616891239025541998212222459294480879022244075468504953358119707713707513694045215635178912647170214909255102615622424379901395281248925610642331632401316415182986973921265951913773743328286040429425760175204912449283017561497726657488395285037591122710646377030884867808986876591468742952417003063010418219502094265224763387380201532434371954537418140176144616778205886312835707930489747166273051372733929201218024807928740260652003055532773612291970488557583450063347449704126120977891307533983473490801968881582380336361073812238508767413549421722824418856466690868599490405517983387979535889698891773727662010453450554738799171428847914161581368837145271397246722888462775137463336445843059169957204248430552543604966022016006302870656660849127957345474938252885183932655350632193452843236782054266459231295789389938718253798822968908553934959954609846825614130340851364994525342165389848290887788214290820981282099634222936139955989654603916275232401991926470519625978461950862242547070420663854285113979312462228659546400755571349051423859504549640764178361535659890075372456591097860172516399051873495696061355235188327890705069628822229865685621064123631316048202502109707447345247724649218126211823899604467555690276329111831293265571518827667957681935488620019025977335338607619419376765926888440884890616055072874516486624600972347941277347387376420919270400577845059623431339210435719944970304437815363509823290403058288950206389742635285949871258203055210602183035060354163104757069154499922088078611606946311501493333843523356037579527450653097876406184636353447687222120636683096091865834836294497183423426704176539396144348923165084005060734552353507660165862772141177916456382385596592093314880716742209478772612657305485424184997785613058591456949432895354479917280356838494410457969897727181561851381352891608728086411179809270274729476660290423849779610576465961643389729305766726413102325011056422525772691481758563325783053023312288268275604785693192581626338461649076998473581776048083004398722719064317140869992743978667936286461067633759170738427144489368152894361783359838233206566370526525651595987758440960459131445628401284389711662995756786778013675156314771227955036825390955398312679698445443597760663475777797012873640263575312897405815432501813968154003650525593475213723879484348859307633411275047408961078045302041717095308683330129199779384590041292991088683089951893106172072073269317825163712297341120092640225785451637670626628193562039023694927409295709588755293092208543314589320200259444467634633124699550374057547377018357614265913057489852214012110586268642178881374843585222445213219040241568814744972769768980538260076134146651737085241201582328938621596987366945080027730694321117196387101219980978857880537358121441853599856353607655855110337576908728177772016147623799904039852817910693955380617257147684565029760713399644369400429749839942544910861471475526942417614333724468600295785919207370669013598447535857088035625354014331086410901712954650607126827120852512219945836410777167271763627890002662482493143309677181878757256506052054776289771929760434015944959228056357465196365412451778040313787279400561111527152243223736951960836005783534392489667134693591286988561268446795255392100740556621987133924081372809922654709179296943228368128334838676594100625237055199549715360568545511660262266610127365619826565926851978831120240757580188112935901568699642353296963569189385913004658437681646418798183706992418257160016198681498656232570916289349049539145294619826124309255537006936071982579061253161297794986580009415376781324888842811927033168080949660674273224643996270536142122649155679051341271325496583944097720810146172484637754439849074552323993770187330480814738788496711985061302843921358916668710013819898389991413237391075658361943864928838746282246458806644764406091643021480513303067445275278217292055301953278228398960114355003998221242281585826242480012066942097034118871551828307593640258600364756874472797201163515001319748785310118985787855508758669837963496476985138928414098307189211882253039805348497547386895438941536052957128462601313539394896846888266517987688275441748460931508914468962806181868864704940291928110251363841855288673547564938878635889114278540059587061976540761265629803271459277016909882774069212151097815586722375113017525631335089747411036708017043694776391846997726811624928504480164793535877549299169974629840613596671605378032655633716722189975133919165442616722135600226712815951729902542588875862165076869378925589739059568576968486426279995455044968828099651362817897868102804206534626753731494539941753331275296927055144149365073620041231911303378285907300833841782037672791141964345837680449991981896711241906301119849850158504181788976922361361569339624636244051933292717013106174951447570410982528061851709499680890455628526026156456229827685883543941524343626343621201874788626448481673535572622771241294714079258421592755333242842860668674741612169969261292667385534261280267883578846787802375689379477874410683844206198803433635910365610404438952589562027497119601422327148249743622620955242098085514687592448834970774280377813671053585005236916069735109561357872812302647558531243320254431752728003361778663100197056855149939163957287080458999199545681861976519059826328325370437721136811176045787957756717820038491485437121222884561905292043389338778991336465924094454541253816836755995297841797303327691345203247400454585909988884958805340126472025415256727129557924883985373206857067570339480851508928074707550172254942103107707079116598104362343258343747966390160802499786890981780955286537869418090349268451594617237865691643366522950569108964379333202367968558245745707772990619301969148241727837621176633503595320557197226943002588849294952907701590493299258433398743188741260504980068795057490371197565885531774334527587672177896331273257014013658974579607680785142017139487950565812330663154986830461763330600030333894190462012332472174355325525340787802844610605461272998040141316083171369495810664996233126873319069466990871517737279778700352864579847604857588662724613039672966217673177217421263099605172107672931912119654993954835666225197332537947277020625006291948611836913555924253753034513785705581798759876675251900424529061051454744262784261369705088861052825366587942505858723295146263704996436900189213327959512480446181378351490401379167131112768943359627838658351642567300242850643861815117458730147141659075530309167805703513861773586998133918777372645838264245721008972860323331733893943484602420936363543851043542349023626778701257986513599810824611222939910718137315141713749987521477522543376289553745873831260226467628117163827311211279838400253061481300050155339128728238610016656445496389059529060551801400157035717239723057328482566359274825409470015061274907004123414106798654159457195432757770167854484238107530528521152295889395578186468538262730459285449605568734369970975792279979576459796175712289045666722662886468685092043756029418839453669465159610839144918076105962667693765857763894805943672499301284035576254517862891467993115564566453449964176492968583641636339380687603555459542280007575305237780360645756535773035816507671795791466547470206331158823202783239733266730492159640791125055926490431776214636090602892644715984622072048689412325716327968741452169507013156210291850482843820466386356922012481443764761480354813867177411346475763917839818518847070408157262167911458852012983705382942534946449702335102613380135623066172899195315336034034719495728358442897039946091381072382936420815718782227290323780851404143850958159322392118775363750703461825219064429647316304808240535854403772490672428407094251109115212646521123120867325994052989124287616701360708202692325857432722398500350971428966385503208209104143318819878884179607481001147615231191915042928247195694388149706230158847922333258892916334298262504992776920463191965916780152650804899403309866277271501356725811581684169520470799022551312024352139380636423104352045044229771191723701741022152798241127234781541126957597328789376193691281430999960402468441554016286167039032052081933312194274780685014002543910761525224855395364889431756528198196267986384987757047363287341344751352869571574221588445764596552504680802615151468156617298467489315288290820609669881318843463531955642446213496241274828295659838146713194431197036685083663340533845294453364672481396068485377195431807641029621156008159187933431366587782250110842111978218611171729303646450201193356969173350357042283868831217769974515749728706908551336050197664525983657423429232637609385962411794585954859772185886429568567375924067533740666612970649922003179067271499821793175585592830010422722916592110866245978222634698603157345093189882571094455273843048466760222458668949690729562746006204843697385069656597888371486345287211391393380041948096693648244380559810598783519813201935183677412694138492045894286379197809037877806611831151609613284950067556006454142745381931024003614190914635354568906839617628149245136593838942735180208972771008790691741713575151141949874780974260498197952024841805234763284707154180857138561517189217298748912824837380714502086472927497015624431085944148261783686733420066488949408516568756933385793041048009312028764702333900524325684478722831415147509602021534026481219317025711868791470969051896617964655834818833908413136654984401440786178972335770002929796119544231197257921106139968816921370569096820936394149747791460713329872306865902954706344766683283161082341850018880586917168926242694299065064574837486771942650493348634598812499332022626783026475243620330333982486361028700445080425062473571221359555096139626253356795474425924895500671919556251835004084535793048176897497277566661141058020321568430328154825824721131246948691791774077894633727146192155043782389169008156240190132147234607448874186488820373463678020737444785790943943010925492959744658884170536265814636277334083088709981752650817210095373363378271113469282643056283675545424560919479753845564700975275166661131349466407410538946019519316029912484434611231081300483462200016003750954839265456077662116868584507608790150995259245476304192010592016789451975023167137713723034068447344118980020804729797426908967136230204234249839903711068371784561782205597437664105355919427152413991975648039522275740350876943374595872116119933358585807258207641303884066357462597776727820936538347964594329951333171237989028618513363028808219588400498012476434664128328498605579762274171012113271418267949447036496931110430373852279886056270284185804194736598862927280400233283375597750990287990158146514249726384869957818038018882021444469599108676345831861192298261520375262834798421323634977337351551432828027563370186707867129652492472902505794968416473992830946027927643244755999693015473745369917383486123158487864315685960846766984162557065954299079472741981776765535427296491869062690451841385389967044264814676888658001282517893714848637097755319337566966345474642752008036351831020019694332075125081856673258026717509147930079298050538517450735480445177311248308850699038906249408645823605218759876150733724772201501845797682239604144313753999231644311637987399877560855198117765106131770406048609285552376629850212535163883403712015186019506916907533249490217334292241661460154248411406236644327129545162126914725266786924750203835293862261169297011459781581498819097521334592854163934644792319691989383949228695165488895885787921866004445521360338787391897644664134725711963544970875515836383538446168626081097112709666474628392072807128632428204801876804102883946760569121420372081569446355236575494871208140059390794417922356545108289520516026557036928396446970892923458252138933678728011347308238444061390829648651566650375159738745541741246530110338726804818707896140430712456124279556664626046489876474416186614419234573852968826085901610165087023305709401455508630905475257852852951161580380880551388591260792072000476188405083482973494934881075310624875571391242927446061341057991960149421347857652538320524773093268937609974038135697691477099473525403118456923171987925305276269744954687315463975707082533247068503937684951776695487917461156509131533873287190069226793471126149431496022408801936683867905001008232826459588566200685666170273435878166928170462606368557307371422262756045078386766165991386037299305591598088690651237794845847901586654819872812755657200236960382611506864583750781313256099348342892485178087552003940202795370444670317083296024273555752706909214442011960698069441821893680125710277161221991857949852907633075001188290986894339887137877973785791782409799346304989947448672590346882209532597431650496050524123026907917226162084166883538445126165136508181206897153446897276724981127513004762834121832741811428380018352945909146131193297920083626940671771761955492952395453012666501069875266742170316384532837938420581864666863207935387021583037104762423356109835980997951345317475524218582164610216195961398700917765250519029869472222925148395501122261358789892193629341913730516842782767378174426726540150421072858951007354755143858761166804833999095949265884167368344519874145131424281882150518595839097343573058381375786708371726582693337080557762172756640985234590107640610123544344277891986863311218090066251139235170769212670500095446797694726268308432620770046825429981068280929128180355893225983523689870298039442022661278894336446082685375438870824236497856348397828533864367479394456681532305058783381803783602792679015719997104968980468202800058243712073179827568631253157769187279943440840772299476230600493238565724856205673872318816370127209253874046222558265401467397991988016434162437945779099156687418730396150476372629497790304520597344124280345118477052381555680193528086468338828921755136132145594653399721666048270037322734358939250600025133289774709674682426853252784850742602339321208197949967490395698142850279297507030615937961533618737871957877340630337679398319710533953823830495461882924954547695920244847304448138591887893788660750348635954538085197296059148400459179129398085947581750238992877702070088855769523375878636445256005273630680261697845652255373012921793152964418125766606852957433889427096254454675601513712071110920099733700346134184843412252936944333329511477597917855475316697844452261818204004051638800077871827946592963323452540617868210538557109369890088897538600763615841009048462251066417086154647279995013674265760914098863542276711406103725325145052128342894342607542021590495039909160050664076316181375831298084265704551822876741177885901064645638915402969507682039693739992382339452939059952601277314981163654972701137046906943733849330534074167404001730259981603914478273531280440662738106829802042367778814305029660063196143201073074746215145126760895693874407725646758375585475673729382334092520444675252269730645009102688668668412176912933861775379908174054620892778573362768017223050874290931823001699016497118679163090056502130048067037801080210565349462559074769039762938475485626889356516404159473602333275148710776642721957005446965768317940915358390585660636698081678348990948097641889694140110576271656033635911718436846342575129374221457843645763702784236719138269437041099038212672157095194248068451116068217545814572340258581557265097459187043549681684252276215726130527301959104773564039856471485173943629755932144936777945935572876748035886929999425764993475294046173837821245810028261148119497383421698175219196290609101839544261573842265039823984236529505071588968800522917272997083672245571435126377014306973698962916230289603398496042385978923218596519993187767768651298190528793236829715967898213984770550284502942771771939662884232490838040661225515983812597889625925018789533333687588758618507940668840754694597073898074606073949910207012452701784736525301218436244279555065229497178111116483765360311899325514866652395663310078906290589565860078039988332303607345401505465914750122887577548424957364211926512597334801188380241115432088176451468310217491113854224515453072308841529613750477840665954822302519737671344586898024569997793631499963793896197547534079380119237555230912949054448408880995474163073701288498366795251791218903389183098627917504832610991114317500677011984681006548576039360206695863998960297440871108292101003944576238635064371899432863017170841483449891444594068826992091395863180526805369511215624119013719203573818973700575106092148741661396615171854113252106925133518903832483394900512305615894734291980590708546533970240683092522966368318058147623740527025230329570717700812737734555375265534774836534749571437885338310017217000382960738527316910780404464317743116914470943990955337168648236677297963144108670323594913267436543251295219650331300170403539776955579322245624470903561279695243068313203036723591280491595719199402743891138734323320318580592257972739288498909043531083378897766469006458160178999690529410616244156713366866226579912305673332469823485847368182370050722277940594359547910314144971970077584674041801139589116093106223720120369972170586459245403247907797586292275098934157522473850359249629302376406929572753550043732562007549249068553448761697214661282524881775389180361891271604941886278311176218416606929320851167380982321033564129074798872407676859251215380316874712633506060781207216936441715412491060634229161685341471389745142737650145454105950345012924604302922879608433782206290835861449351485819288656007889967766515293499899202954338191994839922867648225906631724087824333569232062486077115265173514664651145594245442569346431017365564500799578023447943820623819947416267995967070029839164331922669653948466921934181534189394486906304772921917912618085950793937203660760766030647918990190463087571372127398760562961918405717406967887583973668165626730447962802432803639995540878081278548101398090086551954443046813046919953005326233611219030589579783912836656258479423436729689941189760848260751738774975405687791997066607203066887844746004298942051248500920130924773567794374420565469056383622964811774561830037164503599792214431886712207780356603150416317104119748368434706784132261845037548140045235009485682687894286576685790976150992374197216337288668311946923624325270223750420159870139518143816126823792713987889268568626263206410495179747540577440655549376850305787667676448630686441470785762500428968689719919987083764135962676736001948235030867517041247827447031136036860268114115075695817698618020472918345234868908840263482530136494784836218229294057955770686553027472442785645060046604543923081862735225637819805866587722730251100169847344587772921969147030615956562497076196543980108297512927019110163234111643529542708349584132011016752757205570090681557768678393715253393552779819523950134640706832809935513947549152908812814031260753070615705432632339075935690199398370200169071537575261448615120013390534077245516523187418265850380140676651671343523931866742893504819228592079637052561001755796582809563510529835880264715854566012267329507324627901098447204746268526501863216010472429986262098749408861294424106862192711579074571772058363945380180365830771654039592868340373440660631341113847031724187451670555467403930311325870853521950341423399420911529798194439244304646140666129235519615959415728219829590028994952696001549360005475284035328267257396680358309317309687740586470908851388685669064231062422154091654644362482466582174900475997602193835185266518330253304113634580935518579208688768119874300679455541496530257940490595631307241628667320159657063362055530814119945042123734772640274817977892305631108667139862066058988531111941167928128835398860356250252739523150155028623204756973400803621940324386913178906057093117597680107614125425661759921476034305428293612484032586045191895410771747839816113624895387092898103656173279005580292918185505304053921648724165907551778754759414121313835676005414838522507659581281703006126384785564026408044880541481445193240885271118690469540506615471037593752866237108372745845799879231292615921752864984628426412443273203496973583072032338632724596659552941108881229329275304537915613965580352609513330803661442717575625634790718963776369993471926335433945673727442462427632289638755661702871042799960719907821795501429924100916859399277206202764195633482913066946446350227149709366616628895651382446665486750706799224523874430511582176967493146765114250592428697171497561996962886917099070996499270068555998783665176193512692744364183307047219460996967910427213022101659282689405410648087350633889488776250530921950923684061555467271327490630575518186721235394622729628528800238529715077772558755282173425503919177562279870330616120303806153076607826253768719474958934796005941540149425236120134188699275600903950441796890962088210387617095029772823193598731457187693087144596397397244424463887346525387246246323883959071547451416103116886571802477925772373365922739426486422276902782187195477886520267137656506606137563924458930193151266754884718095227027549743620106972800314190692776230488243630211873637990804548647997351536786665446702827453253001271865318931634550505528302101426663757714094958704821291721682819578945791847541154158129377689354357897988790124057583849397545272478310003283925195853016373223145008686117494536138025698584044805632042407332950386825846856880085995106249719649027382939931064746100793940076643132400589360566868405097281499718671351944294890721077834371387063948220110930692197632156192425367133330984538881300518016388797230355705850712538976937490194443700111537619680595600410556862539589239272259599255227147691757121098699598162163126545915565138788566083199828200340803381212239709288751648168778583856247323909998754991357558482104051054377579608008213527691533328555095221768691397631834954904885390291332608730693798763878855602458515505979256058551173818366940394162783843099984288514564221864957022959703158207791606603747527731168109452337230711576705533418629993311907852114629959743076902715727705758661867182582983760434236596326641821955041897137749982514810202725230567670847958797611370658778233923555647387487871868670527622310283394091707741000915099379205202389525235761075553647397062254852089953831280330461582063216052400913143424771603210348296446106327616188951688202940829648132201961328021468751466246147168487792638854817405163211839405748847196458031297040536842309763359525664340509381947594396384396309037245663956798016257518701048496827518790168232919922859363657892465496952588601763207603686498072233566122508415427441357774904350817198035905334492896325405287842733706989844144446451388327619889202758778289452589857964412871930451639056987167884112157030039263436693890989056970823803715579462461776347060454512731661029713714799997007215988011645269067906627508115802281424580532761211762593559906593004279695123475048922272566794799032479364295619078529474709179093367745226635465102053410446725801492084962004713692326553846900158119341432208694288110426875267088150325829845054491770128655162459792314190963630304439352594185880867402682260090192714417249268680556648836321920456716455137953196639354399101388663947433483480236208692339780040680427738315576741446502363243441255868223895749050407961768396559497255916198105232914120381735946970166492991798225738991943941227828497347654919981442184813886229261325569392744953923682030055152552441443537298079608905276261570039033185013401495273290452224356825440341926641958593949248449336527970863972618854148594671416845838469751175933253181919330328955176252194330227597716875405554121525342163370972471136872592509499414598669634758262488659679393851820133759215465033512658797117000816766257590945295619796211972028329489292172109501578725858699553033972623533467603020979565756328783342395370272471785350643093266751096742929059426814698474126945996255155023855739016944740523070164149056619898586085256513333519914859146485910196996194259047677743095811705307204307386423445780220168194466563339082853838808183586102336190840527495212820396971418091184228288997870485612225375517150141840259517512573261261209320079614016910891131141645742812397215413112472477520530566101282133439466195142690533078432320825965260457519867901832991891568980632854908735174705593389489352865652825661148182486683490594178305650110473455729471397985204005637609463247191231343035324413474499555847744296977073606401538144918855228101770431717796875664617590723400128830616704831707804527326603068531138986922593703875344423562491579205713522608761052889173128796641645445037712077428930274237820293055913229737232600167588693784321358312651783929265464048089374135883603813744545332827918919642214466371941321165965352913003892582442299638590491616523504470661243404514365170145019554631052586663673364570588727050942643755398153085563849340330776382881059115968664987496670519459710732990214233068694625926152039482220762591868740137498569987131658550959603137545890842902208144010825087623634239095162715398694656256819194738012796443277104221914804022850118648505262056294233007946915436807803691359750319609395754019733886953246894616170876635711046904807866107667706761929212954644679518410006293000298048833719307042625496406271250806859040194945442272632564984707570024311157135080015035845181690315742505733232815599677028061877408148992002495046138274420509549275781880624040705516742052987966124414552183438578241373600585453900956314476436147384098420631486773968809185725509019960322809099690796283754669271414454390430470843108860842308309694164503698853376698297937237358852845750045323750831897832026612277620142373900322160615181741726139153949378725553139774942476142251299917042405904621305709543696058152106413649861424739800965941158696951174350178986980834715077214155113462666904807953133650649589973785307107079013218059060559430053762652722355278267647260889736720644660113146897555778058648797844441926256324732020303249360773163877469156136344666462621766201709000732738943149622063672565092369774311032888042897331761961989908042944543591931457482062990225232687693022823358592768454002947301062640946416597494284679414839926298618934871698933859245477418662699216743487829886634991185962058622605536245920882152132811561338976185172202717265257470701788508936999827305661289618530835962587945306503701223626546010520929873374606311442835861686150294709019730774748312096685191403818155547924934479261013298680738399720080709288493874510949756182967076387477290753914847354354802230565000926033039159697005604768957363376580727326546781664733327659989946011320255930163898747386040845398192557939846096687380154221196345818089015824219276731461378300488978045428235590047499022639937248470060631820225030607045242988795372924164405891088411870689907775879923215125577332672467363129434206037511105331133898774237297769417955331720568752622244407431299021943328297376078370656865094294638375464509151198197519634798515631605958386490218604004447156889561343286568187234743021116266218582502640833664411568842333926430869135162417746228870450996285910839827756530431097133618314331869532022853715735987769096732518070332310687524963161748520954578530937812270986598383440496792840299319940937183109964543274895534740348045211083192785549254909546965452080935346976817494994436705477119260810961041182168258858794922634025477129660080728944167185194030305950671606485698035906249685320993388995299169008876688719065571763283735323855316905199816496289462760716898980462122352576564420666714847087995467039386709426990371330581396802812664392950156994992681446307670032515703630227421179016320238897478947898292780250428400829178302304002485737326767353913598603763768054370797665383037276857372857988124360896494696663797391825090061954214918926966893610379673731643001579795193166209953746787035528718702542396510543204436910550834691295330440149596214698141619287546256503872888596505740470474855231717203590071220297852233343622119676500122732916458160855354217354660253280962298029113271769818861157545606916813013142149386436404257272317199398478659071163125651056831316269975361155320646635853250019759844077781744100259037319620556598641607347310526459332698342581503720684104337267037791857046353103646092401800702603183448270562411271019373881643563612537853207663649027228654164349051653441561756263275568753328620501344859037684412836967759271722433370029758224464203713623265061507743028004268605321465721757443042082474515648863982854159561999405974018626946115235609357656346307823139622981225213642809337379862714439551937711963761104205063096734587272566260178047745238298719271807875836440894595517178648298981180863408429246767957897091953582338712619905470985338784582377490185807533173442025116219550578059845206412996675023493301048548352377313850752617053179579310232964388545776902794353144932366531810851196113065878648661980115861975175160195971097159342433810776873356237486850625993245357869311465168004593136800457829612583490402076381624325417560676955482431450873376467698660877522531421876221169102342708211816961352040156546567037289794759520956332965339221395053197793138259097676379561973805052893006334577757134126113590272166165914047341774813899114292088046230008016481086937192222981190669130791534301961569857527771552674553047289821919662881601246682098603992928592576468120966366502303979780381583412251732599795868427027120156980326439538753260992776333663121099324255029913728296136001485419361606068853667122597914429527837229448064975572175821420606556921887732248332507093556545708951908630261690242746391475735133715873422385621164452511573914975010955643203853102134341192133630771297952780501404766667054727678505917396694170876041901350533279347541771597460346841816688568326073995469330143189006069334411608690426090866845714174275457870358528411917682365396666810073235096016620329532416196942530345304614901672052314141044360841309891490961901080009156751250312291863038819767981209687869348507319583833383269230121709544075372206634308119288318370258592555309788796352656383497817734821260501327742051277986133216364162619374978169031240812008517159116618659731571203542162335887022647412634469718617677515091190132375580830910159461315872468863763182926825914589261761877496707681691371061587359916677544733727790005235040902190699073480347113840296288455813825736888335141662160895074271917667565266343999388499283416226124903974250136492299884858264242375993062342396696690443182726193993053550183097498936988968871993932218900418862993712723826358575186524792838608561731588492214893410182179634670555307653610811910588775096428935551806981845602667446280645361098937435941273919015029332008842735587994353801804844021569434064862943926980089979338538085196310969904274298625129681689339638394327578722093249990746882257354857297255845935966995717212965123631885549948328271657230384347404978635469106752255783610719754333351460245287582619499132025310564214759672072878904047381456780193528085403927508782071204922742735682378624346680691217351237347330549033791846428624445770737281759331241457321136166336988130731884355907613291376574056689189315531336659212588095966154802366260906422881710659222029936168600719434968283900754928033646829592736156058578826717752631616547410637593767689257593614743047945861158394471547848630759035965778186482664714425116773798221650799776334513117954406677908592273486594508856388328340146739479088106279699755190202960933285630618057225852195059379355720720750884737533045779694170351503162762490402146945847256512716538869616819992979561242813543518280119206190108074870527433427528007160928543924727383874009331700643928274727775205965144595072360917579846211696813631943534643937410948380356741173514266496072891396061583428475851601684636601359541261388290834760982016952308984106957249267933053632236093218355969970991456756169854844839026170514479913427050074835665756433817818170637492221251113707755535729128714209745053275477672101172982476081964339878005183512183150427244076413161130829005859963204923342498241811969455002064828887525885642156720477571837223318687692826584750545888943942514679287521830369440648980020021375368598816037018890146252543078159190573990410269436381912990732165203763117761697624840648183266045252070547587270266215417674014481710918455640800519833389106531043674747529024230122796794001301974320240611501665646585849723297583462782802781001089000670751526870190369799776546067360416819368845710712295488487518150330666596319827224545788233529308001569013768930831303575681021695278668927036241758618279836779542854918692037622508757350041280388595741294899335028629159161895230225997308358442671458298334408151104205821092848790748491619024382508252045995800367140671684887062510910367757620219117150375733917856011753485380925939248908059723172898761383547237204647793855252557920497258100831669573777816025776376033189215535919624239588215738499934863683590301400548112714517063139648763521468966234845651156726100666979903398451484127933831102589119206834497824416217420764636337935718544152303066935535074444339701537957988715011327657331420781268677704694125966802234659096443265085026256935700800520581825344410725211446740250605174382350225483905508228646928954512891424687577604561164172981514376524030073395948145687007857869613278731984744577221736557562501956320937951456660915020667869887471407295741285687830634662769058545771477657105931171935794493630326121447527076776128745277978041124677878908814718539038757707789714212628338823482773037137270777065052580135226613813467967840637406811152438257126967014900318563192255512665808295081960903560454140166123995324900190108674813143960333411807524641411492403582886654844084403373518565631212399979525021738640411817762470626246332451734581981704764114718550449098357483641209919037635057484633056880722676449193366346046407826816600966832005303370842413917720177811162466264703633202396853624290739902156933876535644482438774454907835866864539463296789966398788683388575256824937507070059486963572876824891148197026993983125259177606113071178765142967675474341118115116284999525854175918440059479669296210296903621367636406158609512829101939009056235765923754853703593620111551700137988991866409582642390605707003436404903079292163114592884503695402886068621773184549915231240825534721764476930456886309639446055827128840171855139910397538973569346285646234466663013047152446399252505999490008025634395166760887539489585948660061665057315598755180339033554780285192328463095106138394714659111780409095604076325818245743601667672598086488873139718574644575101391299594612045638330527237590827186184058356929899408798098431400367715729376508984723094082376719215080956475986547467343091251554824249067842626218868112412128519556585245756189073602886983165081622107865082280131154797872211058911839827886130292468321558974334018870123175313823632649139933795226738768479355528377857666072089471154963316871684155210567879297921445255488761687754053650104172479553167777979097099428184152137798854551172854115993242152574327598695397294160321895404280846582119126077255121924001693489069141491747670844638683723805327435253144997203049078150632438137904171036143926897896624444562422075122543019026992688794055747790350295727488623126878007469321089998473890797293489129008885548784729645624920233497077816763881660603123762313004222154312929158254446937251562755971447514679997709135781479295178537133815896346503689749931535616827172021832858569362306863210138611450408574206861438881403729272014247186337985590957359788107052355984590120079186208988197998597372833554849370721325485955627365094966296965735362973509803687966484099419322513261669038413939548016180294665849478451038408446674707340078638781927415560075719473630221828746482900205789686452451408125331707788519594248450491589809484211942764062381443728355279341192715098477607864094495723585578162992745981814547397575213295198737203100837631429314612302125088832409296471832675524241556338469438379499028468938932571482801619021379759297886869100529611403573880034845265850849044685432834265183832729472493968936181403527163734603126969106836987168051559521837418358700599002444083405501036430348564709704841232672488550171008531551489166827314685080054016089343493686916531702831852124900929170914259382803257006173745559754137093550339720579797988147096117831808729376124391975243299909620705049500115534931696692899187365619193781703648680682787825241851725286399672772258190463409414403022163514262621252751993198021171350792196193008981944050948305307229233268311105831708366398245972311467683831901386029481218206857183877152210903265359896351105150741892251941752423013206215523796967386846687966208843082910077544454674955874299947427029863614539392735689021981503226642884065537668723243995220767175945754187252789514496911849112700076509168219561125970471286775077172927395274983935274439906845329125992779094426943303977390432044055370783725446795175651522404798772267883712445029409022541449195914378857062572264836039066292145456410298996161411588748003825689151919280162008139618713740623799922583602206981982569223158024192328313923418958868174743157181822031759633976910099889341654392644695900646587565614859022534426383391679631108838136339322083328329757797958692303769620517374349158032251718907408589887763375663748714567859889815067710705897029247057497865644300415881907634577439315547592665138892986266470424064241626725634644747034104638507316096630514222888341460084080827641029582757267812008147663871835687240198924494187405862774542136954371533183964036088305624235217828196825943569800146547874436563463111726319177942854683180081500265067762103116755675533798857556959346438931188419085697100770615700478161883761822462962087238164801137673887142052245964156338469381773389959995422919365714866371014062768996589761279959772660352342910321000533880393987291328834352129870119911359833471728150249961892399023465675960212707123913857946628533661507212430111693352783654884798422859427608811570024664649451585854841993178206816968979698231420572352901082416279951052312090823820983464069840459497255514582060059538145656446145423225449825278784735264253184410550991683491553740766304252629262343204675418645815621039014683990806813130474426749132814907106690318919267402686489339839481018044275909157249468231828017891444317128332186982087826019401092004480595486254025323268671209959108492947566411799254569518702930666371257547700329290902525007494637728296606732709925052443501594836968137023689164276427768504091065681889859945152758842294951878830824806861448112666575711038584255078287909722740278699802854673747563719588439950080551841460291359080321291356205296934621261329805740570320505026754359228498078937557505770057523901787518508460889204791209867640601347531776071826232650473621239471385335258720941870889960660811461597805304975366048916482830489948831709464440169322702897036642251212484383996172369863815454215252627857654776002261375972024257436602223549907296357332432636992214816354683174031032006873666694988494116348180761208705655955352619712513509007948710966080641985902895851870041781917578884925746125915161157417859714193468491437362711905376898215561100613699310964430138020035544437104841459684402314559766273835609241638359296923848723736153739245546388377276870488894792919548053427458286347881358971870054776782174263201422757132029204707242694754896165472782479788434576906321404753768629781475071079234451580977873607567602903531133113817291684393832778164618455463366391059242178306793829243537669580098588130443344264092289403613863923308850209059844624585780929839140819014722169394574417196169973111451961434563214674995209724205883600291907069824000496961583049497729289080553028252830763974569572960170306384032811673618062671182077830870465995005640440603118140903623437765934105351644556382102752847638106793035414084127564996262304283670643211113150050082389028093316774559328053541577588677155246602049836387878949817008255941645091179222494975696438550561296124189419876227964211658770122790982994076356929020746303739986887220774063589078069099893631603981464353204427854696910830508780632187573004912396332196267146597241637291277999529627434080359998630820203256624203131214952052231887126034716115918543001900171507620532274132003819439265044406701351468031619688972463021933840061642772274095067198180548542174098328803048359892510148516468005870684514885095641620981741220760687351026870574632285594945741634271396533380920843304761418737913819509495154315033140509352105658901286213285779196829585399349406436525926924140911373632542894521110981216492673055361725813293516309413681447386911944338709301305515010663786535425886983957962843080885240458561997272893700598379294264828343666845007035358350681028366883394194098722118786756036178638790634980388085390068575345681455467827587330609860742808068603400785956934448796793541644812680013293667954943066667432370532911038731686065782673096762767632693302649716896416425370957945042485285709208238138865525822615170304568987980569151137447812174917603354489014336350675789326135626602566188575084970763356500572567353682798433306342444098506583839508899465946714222958996180588751315230220053104489129590865801767724291462027898058091123379928897305135575421226139922921413604131240730790924122943745868036285119982084954032533594764254719020486029347919559533294713342094107585710622117152626365376289778674833574532964123431957179608980651924420934990223567216986150615418708323852227793364935902847766340183339693889208371579136769617800933012411075942624382446388591364528053607305337303052670130057920112451851265663664213688530205691199236972872504910681216422727507800982185281847565659185702004691125093735484874387609305871441687402114205599140575567231433368711752745033844864508304416382251558097762510537027695088936761946815405445563795982410643738796893408042930620591285365674423329004971028462163996649512127472639326893051169579460187907191341236820559035844748158004997395773340714083003287895936007997940314287892275137803705126410188506841895058946277392297175527773393863344040275794031911373613918329071528397758075251256100633388537966287938514346064996135783765904495690210075245656326461844833908091861784193969548594438916958272228762636275281084372951603784279859817106761171492194084552628412652207620844558866026500809862540775174764215171165583117501554044043055936911902602254227205430779594990145162303646506719152510249836063520364225279076070591469399886131244530345481980833574924257057206155545474149373525337240382702611055965469696906294437910456241831794456309958302899895649450353254435552122245187048943858109570081123292886062767740839326235600332376837650460914131435412810340039704102367138823496363689311053290824983307203433091123252975916894340299557137085320039423504317203135361858092241440294636025809448645697429439838462907021228550153821047770236396111539474939449486245902462512285347380011264038301522359579659572421834060354501455516087561776913074294815048383052590285483538025212020220069846439381409126200130946988687794967920858415231398461688935601424052482907816926580183475563547256637153353212112302557423857049259464012436526964938978589520409445913183862339682571680212740099710251345590752630404156708065257504031120152441345020346010162639191076524463709995308771478712694932387737262679143120389910204567761599459005674780002501061606755300139977028656566036673807818518554566048167401043512674937912568972342476646634461918562616621883303950009237614706904871275338131886373888822473607447839509228702642444323846179934468337928280310549224219483563859366228959479577912530195556851346768748185336178544346622646793891347337213233395711775276756986254687482210581252011914466418846539364592865898722135987363154972549901107851135257341514976421120219371909165895258125322283712862984529697881106901360247116875761054700049059354277085106901121759738364262499603223255286952701603715406651462539867522511769490350258283739629864697426928767643092428552426544322609490463454326073305751221584801695930709378125317493723286149856100812295829761214883195013910816059938390061478649976183776995110278936160784927983236913206673141558350313076463732240222066749501645458455215952735116780317748912358265033465514446928602687868850895804435461172575285049789441409457832728987659000927123817296466558154384040396695238126520540818767811785410685601838392652514014234453315658830807639285893984437373082507843951054965054304768388778332064232511850773378968972808338960899928230852545112584342109614643487005295241468954273447890858056003122510619909109046710864345141333119645217846498728100002119457388902564932777599244460524160724937151555308696012881961306828001325962070464836403823731787360010331649976793052678168490899738585155834270444382844863037495440710764681800518858873673700219964554277820379594614293471914163941206761125467044266272477035575375120067137483450007191032821782823345993395995504564979857031531246479048289860930380900081280939278713613995885095976752912260073279608413673513549049285795688066364967727914815119489888646221102920108892723177179520830705219796746759640986040514020922869188421633168829135888496516943824799614989222497885387908139021171421167486466271869834932627608270220830784238331585992932702124748067367077426521880082924423914816930617183349151620298934642866175986071310933190810665849927629307940597012521482720825495811310235579160534111587932033490982389916603881601386426756403443226283540909309686032552164661382307504336268113399677033106929331458400627260583191490278802577914938331807126593520981662083996716557253221686935792888362733729053224000547257153385663917446339533563385220433842837683177778250765985951705714004195093249227925796031970900886197830647810015254024177696377344212455434251635638322536348760140797674349190775906559354836876236711536379360753517477174126546200460692765650961959180546669542106358820094795498827182868779356908628389502340920431077809230640260708886219256288303419150691905047516982620674497256847014053996972773282410252608683873191079781524408469252448856751426045092483269807138419783163392815484890830890500443665399373613255897426880541916745856412899967499844317896421990304587962948023453404589023911003726697471757164745375029013212326000180647373305529867402419634555652426751217867711236611662459622325439773181434498626890274466673990569890876360103067347955709589763245552172515025569634625045945254195414145146964641526744605676792593237472951714749418054536854822323280415773282746445789529865534166384728622562527102274262682271170826415913467280268130997763691978179181984980402222975414108916521729915838443807975564574501111896839505071309209392864998984279483468417747311366327676751814351792214013111052857261727528196388775402196613010559704513248751676913675881214291136205944225353858828675899771971267040249567401250352080947358581840098611473677817782938533232377766608918603686718040862143944405910448635914498738311205343942280621975797510730115676259868567750898109723284211353696082152157476131460947883790687127431604284636865168444147136676073511738676811775871438861910885154074620307178204858808116731440613847796879379352658338079181305169224724994879821224767532300731434978955847801866372623958242019207062550198884783803508712146057483221552475639734201166980955217918033674143041335670071416688014733633412196207465912432614872946274866538125129162009709818018782318977363064717992294117491906558597680314592134220298310900904667614422410130152786716469454711169513218447228939745730675340298466000343023059200742501176051029322618353429280428809623835984854476845444822735136716068497521751548280446814009655306090119530112692859469966201150275239920743606470007491233379664174560127503981100517720224135759405579409549158634898539495102703817087877246829218878353613054394363985580208483567992422893387593092220470696903473572160939659428472897290843960054282831028458197156132197941152072840458217989503810438674553695026155294330080255622166428383006774208223392337028080627821260974919624285147240710089309339978575692029535909471585767271930482860401698041607887487240470368141576291382615658386047087417673808902340803699391036650225852630834117826819866325966101577399004454901499184836228849650387631228119640542097518508945175100131563563146493572310801560159754375779093360754279863367277251389953602281336939543677229029630579990082320726003874690474279776554330716160123188021774563534340212978898513828925095248163252605573313672259710412222578813920318750203749097025775031827797544648542172043181565626573692505382608559189003374154171313903674694431382655837669262995990470398489719520979589799477945226136757538692730867104626298555020274334388692154998071572714948932537402563459773174296140310660770309042517957561898483861463952270960415970671562596207145561683917084164141121347350645585366993176573813987240919250387837158670415303892453166525660444163604393225087054131916690788630435271351752687872220229756011218465764483267156778152932860373713153634155308811235121698383026549958906349973177389766887713471215207257243102944727068399138700335354282210733873209429264945401444749592586667717354380068142490611358889341177259433375348900220321439088282299147781826635946766128276393344850243592016191731505749985218682617844869634803521130581056027668758161177055077725303016841541407953466608635727630736934466965221821623735975015529505398255275120657254308791930385785367630319529749648272569144676004165736360645054988799662244081204783250968938019415218318435689091442649192705524077460433712143748440416539581516637859108529144440555748454448626547783316229067968735283024222090847548454680982660935036608626121333985601692161539456478087613694760365831221654358649570417300023303350865241212040135577488320629001496354546102461889613892801719647067358834387439264117466630390370126421948770789180268862654007666317997730373677641470763775918990588856378535303567983159599067718948518962395905346899256637445407340340493349565101768822919557538597091672969662826644127722715285820145486077124024706370891038862958517668311367628788546584819381374313792290004880437634116299143998691994683715120305687860436484357157088070299945700295635116683474773516359142854429344132645486953554669985199053405861291285359400629688253821364108982445445500233356450679072221988029618357534454790430946433287403823872095910207805771632528409938208311003757456683977655661819014747838428739803910820010799898810482097498235414518764695774709959890614183964766373745541710633841438327482502444425733690284636972333632509941589087325275187853451068448196079331859479813722682975245909768980926296518228460214751947317326735131948320692594088870992519487139323251550253824620664273299270029845920915473884628307640940110626645767973407263853450569970501548370214833242475715129469318619845297388937479170404094931759314762460693338290443435124892978051905827659383413124980133481939746502327705123196619702861520433850465637362032164129703487026887884725206213608542480651683130708862081229694977169629259615619956513459455044555395296452691157447316454792360581244578454713431217648753419154684867718238420767571091187483459818197396488542474505494615012896447873062645036467186615132950082010155214766583616793723887866919241737659717512999819536951121600003513630987291056949132032970984423690983273990596938947905080468615878049339582740712253199616172461263794759623797396246710399243223989829679082346207958911184053227453172826486316785632459805261891916163235164651133122745024357051298044947876272224288795470293360615664645669250073531987039149421645335369803003227743667479017387899282925352252708573557210349221173799255084782387182662533798324374772581672115912714689809864857142300137062954252429144881247670831495284883672585250065681925660799331144708279043818016225362827911575759860193236714618259396672090656377365365030094906298620667569615972937007441829824875120239772308467334066887809099468202732909072581770321517256640520944666188893627434238386436462029331457422893027796615756547758187460439168446712413197189608596680666154444476693803663961712698273918918692188047409636624444749080479826036562923429032583351941780341645856184261615783479643518244117325228198452341393735819731276348928832944608779452908564103267044837330584700012981786777388463723898631829686786646905186151702809104780762360266229259122182179598887714555983543370789360952415805276080616958518242843497517540853144079311979089413188773472613679196154012737163880886274243645848981976417164258634527161343728727435969294900100743332682849709724531523793819517621454693348194509725845798091595588331453025148630382808997477471153336231524994711284939355273954186529942485752531665246197270277955416703302631639921477868933360575844756518885561819861988242683941388070655382358288738543137505947469157863461408645146246671687678391847635060829743881660539780913529685019884701769919827481313631521152516088829641672652246326766288057212202887924838913737498718122920269072662415683380492189571409176900894335812056227088398178346419210289824836333567500996777020714590917553460368859099149304021641731332203536458375975696806426375734249103116458490116591398553711068078917543031234154307743151299630826151287565231436111661675826029763378738963885827577598232156865258570655479880066738355256663848195794125054471819720121047607618696032871621186944142538117045508857246063958273003888698193833454342651451636893049196959633942934069157187426273942934814738055536760317345486167505518938582089210529313940785164496038731939091559126621643308257295204909191921505074757061885992211836066608557117664825628377359864318647953087406546521480340672798198247517841897766694130382358579656404470030520490830866238906423536811452188688627173891113225456096807171712452836314112430563554788499927987065538974521794722490883923227329756436706286409650267296644873563966926836788429063455754986306036961527265859136905772763170152482130922094396222834535738382027022995703764261492703875025434557295445670944423824949688648119519178355015211220565130537505533373564057582793225685327398554588658722385274446058760539522287376447820187806463933670187303476313884694641318645537876078878446494365729820649417198289556243820454663208735290009830588229185692210976460874727965475047903146094067000744255728861046942602465372678304194688526575477676321505688453159908539394253919749890531089216089300477703172145500451583495931916091077433986247243387488289422953644550432277542417872302430726667389535833255466501440698729747597522769472728194722456204286735892719367231134777546238442555973442742319090011144976374789528624643967736679122952786108815883565396889356108770559221499507625167383562408044796463324363834257558383737467117961242148955948267470415533829460765398756400880975985871847173878697438303348726150222561020763050661496009209332416331576363360668042429808615311389336109452179035235927804737790002740490078811067079587133841585710795791474911165023026583812420742616248626642800510181144418484612436417449978565045292851367720037060436205658008280292855535797968768117624450835595105904630045915691417406583492958753840324108628351752082071799102838120470616635132556114670299903672197089948823299240934335202422201648773792683355550344390598761939555985022619205136275673676096419594977654051765366260436991714697968589178427511585602959793220795820927459447934302795673703994969304126661361829297771258736983579835349574412006209035232908453671713523677394853411422850061667159297336633903779671756199645502277418469231319297261795249808687318554948366731017919441458137228775206853025985631859360747759972527268551314670926490689475338610988209784137428986310157586621979418367290215948836388654233946850874537698028383594281746881005114892130257730755187747146998354942608246159527482271452740890038197373504964785247707672086035862198258379086088997631383287991614369102006365768314352657036999208911233145007983094227029193968665128343629546475241383617165120759214040080152785625947336131366421974139581103962208606714566116346392411210371417327197132715266292742528945818056419766383108684443960573123871985141920264627319931284186177099348183873624918770732541650834047491385279280637406380052130585425308541380253839890430084380991842908220098779978648195313843883865252538226769109785449631225288917007875004270384905146940490489739194628073659969675172694728766126938560030420182663966877837878262086599594048480540339161001612444735556723042316182795435712608445468323569823310813051804795579060777717866487893604494035516196930184517601728098174993287371403010678399352283113440520714568826764316526602800783875816197340782451585951370845956746007328760179904977758979490529519581987801659988050737117542164165002165784079647399621957529701421689948412165977185854185386303887763764584468871651824214483660599740702837132400348592713626521979734289456582473134464241176325525647309748779176994054091750348367940615027363080368457628742140583980600896589375571703106233854132775453957759794183718244765836454547310339074326890961819470047843071943285523944477659195692491184422748164619649257558689236831057479901230429732663469532470430311132347122579850144669749466596086415014126690779625141003726068958409047281951382289877746162603393010272973654859735739466830529843067008515131824615794059642615619306960712704978595365021600302350990474967058105898505322680473937328565604373352750589629404544332337988442388324608807207678758862526301037692667605687281419250135567168218140661980837443711375176696374026468675681739765800707156601648896231618807211174516444415683625418233838688891166483478704155300416200715077646758963036599517638404121746194081005222508432665978654445453932839707125231470270339273768284104408954473303043056750451529113186274562525372323643147905262674746661728378270601141277178650953052201678789453240209892184840274436112445713652259623271201754883575177370883251569434901545331728764206927931056835638167990356516046589667393516714174912847901024545509740441782781703345685135220985373804061090675445370164286621008666035435483537996887616481517734194055644789627160005998084106536903325234754387655861048418623988070178080922617575301860951266225742868556066257109384238444656336443185704229704594064522650757285817556959367797170097470009762468091669592968498481647617899076136682802926583262643153672974917122309815683195241723461220026437025415674914631159963687229334007991553688471094230476399111388355679889866866574566785626523691976243692973723165590173429270398146535624049250625959678360252548081660875578969811717910197331536461455889771183767568935466108497699033793998802615975483975791139666721546372245838238737968637545892687318201596441163563483876551456973913256393202935749401839041159690766428785000165171756508695226150222202489022116889933007700577690453332743313852816898296408494595682555595646969450308342061194213594656765012393433765930243851714208169327127095550480642078105699423072542854554594666589556613137766427600920129031189291144685198792291013683731687415871152602500935979879711845171703609207429284594261688029741960968788445471348131079779180956952531376085381867953018302147458441341657008853497668223034337721380778930695712994569111882903438580924210718348496910568340581175082196893153927068356099410462495151210808028140658538428748179453664551935253556468594728913366330631570197483358997279075578135049174039151031871219444257977981750242609945845396835096007917284840410639292816546545644696593331628569169663287488781129117008263064500892066362977207752384467895089069623748388795030902382760888674219533154727479921498109361959041119590864152784635072419689583286838819880883060242806509384727196775141289023033960624692491902332131994047614705862649384351767840967411246367615030154440516445332104074096020783495258318086701649918918013182816224361024449889101417285664072853139376185185373889106217867129514110335944902904073528923235011572827744846822055785560638299199687929775882206145307976915954114584654151010126157332704622377450843120301693156948056695459111886504507735337142215481458148265638473547405913410576148722935685560193845793995312316987373184368069503656950447347062104610954330693220515812943624307884842446668382543387372886991603502685697034902060422977231950453936973571053976192334831645862314240924577341865406751156281481532085199789171208002436567615096931517859635699069551639826463394637555684771276138212650646736164917158254999642092650382666139744248617051335497972209881304057170114790506858608951694597378924509875206924422700236990097512249692073743593981415636985120066850745279124691653878118248166760037803693200446746177823808872944659397096435319250156363504560726965061605669275709620853276149576915851553486594237774621502895244941128779415682573508098312249272124630997772386033760338260049390430233671758868028320799186266781299937056078010989842541527512693380844225781714177656730773590704424076708627370080881664169594925144021019748711834259593623797046147684244431273114578431125086122772263373881935995600848797003688046212360060312915749221941149294594501908496454226244318652294076887048802803257031559475639279508617530282267776916101832000607283191329087461034923906932493333993968929667369486659996422112133122441859741054537777044411085485481182860315863272395823888510395088286846117424426965657327435304301429147217215876042511505005960783099201669064446158809321533880097527667662857024196683047323636882054460942661554676573940625553927415709895620336491543995100446775046806761217005531301105837898091093828331334574176992343867337335243762292204540253922459138015717016747249843957640274027255147816579468169937859465841238505488348568641318640536278033452200511972842279530673571708096817919303975971661698865778692126313357822674597281090508697039764969653778675504652376762063754183970112694166729572759898257590630482662478162459809619988395137673401808427475865199372449498643412794615419960827488252084805562337722763329391677086437865857929640413198649528218100995075260858356325422634461062415843924719089754618729042753176917623091059118046909029388089976672355914817009671839000898349133528588485220479552899965160034898840368660816098737871207343195584015925994968789542796354197282856819188013091051935944758498331313338893158368140926583966189969842565554752628190161457341803500624216188053417128328075518662638934236858472994809722714367964259802407368811357108113044717739599509947488575068810428426625820662016051316889011032148825864421758604741175479852188674867673946790147518413507290854754472003138223962493960961501030304581998798941832145634538566346362184459612557873854841337550075522956823166039483364471037450024721694457731077756823920115360590881750466700483104607923438171962290477194401403738774856694313376041363156984025713773232086188467432786792715926669118438092165511713940832144189247689780315160548405092589466382055928206022284852693973570368129330874406229501727496179879591547863414810465090581273813954255961906563926680326525658210302157506714201938181400308953606401070004914930069486541072703535665960514837642347011357028573597717374045760172600093665972185253585916995922670942982583478698169189010411662567039631512963413520772481848893759180401354386073044900417360245251291713689809451859535703266673374177539049194215237344675985315834668274236820822085668928730542187804143948732757849378284164455282876058751291364161798926043077983245725135729434449091763843869359652667228559868963010088533249981025716541077455885757957363614947382500669015377238070636871942103067980816994991343436695418497480763239962975568733320496467499309894849078913857438380780944442385053791150990863993056666755448519284605494138807116850907692275776434827781529621756898585706330581372599279451715369580540335742370349156778227082486815664317212219482156422916734069963705160661568449812349794357567307998262263905340154610080026223190777269533111205800544733680548539107426501543780637074484332345009190784968528317552392646255526329033355382212871143812590936019591978539772400034104017447404303475268325332375144980614015828892312073050639487146084098764320614404926583389002250481804030218545867031777106531554430275743563727242568083205991313375487455943784878392416307412544516693258994653317427237023668018285573564530669711292148351535852234977430295929851957755126126333745488061269556518062737792901519923730685947800953914534703424175179840855133784694752372599690155705122037564284070367060396570320788503634723250570940091915448081315686787760160978055536995851329684523821558936875523965549963947610211581920261881527659315227811213554658378313387547841462452652296017718023075664920833360087576850265985603466661906479133777896999092853376510784814684343645806580327512801010150407247139004924066100692612708607656797600741519269911261840011127019664881963044727871548557124408676010350722436220265197264915057993464255474146473208668416506729982768774437848804188569345668368925697376916492236861263631152874539214858470218841607690857360406716508569744068373238931339146702010703841915566375653860167809827718822297342274270144869128061022599220080726781118633502633916355176902941459031125692152100726124252613117747439217369093196094456173922585018160209026147429552030511987523679887131148655715714106171601431300152823742476443289712628502664379766409283221932983916760020364378390061269802285659865512014498866761016573551921832862691605595514268172809516392033835534633537085451935114861800238946208232037850096986046568614894164979157632773430684725921913986564266172966612957387728518848937579327734369287315652970063120346661916270537841354072060756847836273710664094170552574733251993753566133600842250036198089738571047706238938634188870653936196918172873443274232854831040317723542724907880445074453623902383980132352831462342574714456390076854992226348188746706077581280869552006645419941271633948985760193283294109593412718672748500123635091993021451102510571894854690860649340615288983803348411453894505506868121950368826897082452829624283746146208038683708621383388128864781912877727599858277908788549591184376071385440785894789850661588167270217949298388031889067097296824539326906127469521172544229689188492934773665366110742166180986347561375236137869702043963617231381398407484205953502013721084837660873202525565022366571309933653607864576063399837149860518968829366013978741255838939917853950633499510577306452765958619064849961332314657714484459424915721412158054928873886406069579173280781691976378771657511039077432146953542727017539041723654960621786889103750180200831700880221018938022433780393805023203791624238357829709124299192116384645042084732691148104889430703144981564516944505842797287078794651779301528223112955859530909722907262938871693153168019954569137188816681251068320557291687305134479652313832510009325951717956299943695124820573534295929050498950327740328118892601211723146944356514648967406898921007715919850869251118452136845215778318100635372103159175690713021736808835143462062768080277823493046209214417984592024585588442163831858803851643031725009961909144710706788199720125050286589113710130632475144317087969021830640239288109252252076580762265927838191843623417641066058386773426978867248354360011542875197212485237175688219174753528808006512867287810989452282388679702307317955024131831532137077793990408662274808369300658500219796092207756308626647734431004043368386209628724892148180282057346337677745621445419228713101698650021789253508300283106643916300228325402709024459443183626940556279533800623325976495145685969022489467233482295011551151115421872589699251967932029771358204312986145945078771828384279952527433786989979756950118810981490359099588528124234986464617097659914394672781751937258910477241943999230234389872482677217152343771381501584745488722208797302127452283612992963970849802461469549232104611128924709219386147012781778631400475484582542906527453867571506258998974436274498152454386770635643447786185172802484978503504947858624343936099859910548014270099625789973020520559631801232089192373564238316313233453240764950031127955699211845251886574787756037911304848941969727139227667103730520173495541505128223154677962295804496584609856826588519678483797576724675101939977992553119466299241888998087064472412052451363790824351901540744677498702501547916633533502490537914309825822196070422557060044919123903024628506548619372519777980866021474444844539319464148294427523871143550638742349506420062664683628173710820956855837255156187548030303491558004520868409354745241006927630594937314333088391575511113540046514859451782209854523988695466864668096109674589239393389061668956002606074661292274533723575375593659748744802374627913098059580697148579152310151129473064028626124428102293482509009318564381841376799657539995346302247005353008820774281282733150978479266047349164772839889096833306324798367262296703005635761991655255719333416495946001124787170878555798911697294584535825697997478497471167810420546199087152240546782317564117482256403978142818283349101718147458377765248848361879107915263224158302570180132823840790406960664856173916472475137214384367445099936480844994648758807351953844291766662878716686569111882461068200500711462710283480899504387418632793790709875055225886224782176832012860397611710504867077940440358224169453225696554518057744806524117052699209789752501296655666663114118902670481929556609323208733518144772969257595147271190662128254119267333545726279195588811987663789509911374756176529117571393242531722140975196498844667728360879441872422428511005690789040824479355444012461620658170569888709624033585149495420553337489608590519593982441735984422839688876688559847234347775412360374170191021358332231538464986595843879802861971648276829791258239612732259340601824953979534042881033992909951667181265608974443064767083361396102305029786385879451195050400603585740247393309464181586236087208002449653006917546119533783647842974890698343233003413935857998908657825027481888622513246029537082570737067825424393367582572918357460450856243248821445893044255849734536921375212484835223239533651642851037460734859915870288687410857578233173341346746109229972765053889231527990169512262240442144099013274015149389699063798173420919684623849854731219029014917336966937156597690995620238957967296072053623649253327465609270255913737186829790455187073858901899102762398033165491616431503050801728102990825526348864165767837662194961051978056585752193932468629892794400219466318589343175893927946886050733091486155021661174236226576914477679764708732003287468322167003876302173345365888323711245097560496976190942730678280365003282584119695027207567293542638053747023295168889753998232836222802623871246160502851481841128316737374954163573109932391705291158364027525406158422728637759327697660768559616880206142929279810505723518354458458910466359221863050490455879717173785618756135927331069463652579584634305417931164785376555262341988920322793549504985909012533858877267942672057571940343366122145970265995911475247416922886791188347137156609404769358765401238278340120055928278419805812363519849428788740579446345715151482280003302729867328248965160610336191602025236858384854679259304079978195852573623235783605931439311718991720578476309966981477922801889731142737081854360587629069943321271971698570894575057164556050044635098385555613198927382237198203027158303963461653632626456770877991710487454958069510494861719654492555787338174445300023807032047699001196814909268907019295771151885484328867632663968626409395517581874069459852502384208320314337182551467619172586706819380477956276762600256746524692542989343153387394125394272357785479143963148217381859633472911428979508526767102849161558765953018847905941693375078882296708194544028036762203724708496860766686454253829483339937726809538531572927356480433111139647832635311295098964052234355352631147765592501149622932350178787961274989816801458719015856249744633096109936760452474775126807485242337713981101072844573889331476016963210889567898612448625387669187703819732100722027575031509413786023018723884087007781718369203402382471911688747046394968202876765906206484793209996502380590322646184362054498808101465980572540526838574759144631569512072199597201200869991134671886267444056833143620000681454731228161996186216753408676549489317381107495470146197456837049609102854655053335783922958705670427499389962975482789694376631704097352537956043858496118275329114285058729959308682426953277936982855389860433239986133519732745036840009774467367103945840603901876727944945328049516462684834816776426183822217272782806423210169510551581874799654703415965845436471430097351559178481794945834640177233054610844347701112140006171139258001419773500867331234225105550001604666038184421622920541562386406374648969589563593517302144837021357374714631387504038788059407586522329210684674031158231550708541915421013243046863166864051593308863339579264299101087789995881179277585309429865008964479847540805278361104671681237217212091552297168980571326449147613245073795386941410590570972104160140050636236100931563183058492186664963238016486287677419471811998843908924316526075044858469800256279186908810293979301378953421131275093985078514317156243556809372310359015823823186710963626411233458232616364429621567892170873358907378507795875719134529893255820378731218337415758984223620852252454296008713231841762554257386602980760376791476590086674167172603888679721653524708865881157033059173231620333553908055355953251536922803250109166069165880329561878532711041436895964208183965055179708510686389956337791820002138580128079360690357598852421475116168992829489354706326007854031441427839915359421904983029580154456021615532409834440354328658516701773601130526108475283302015136681677824756711916764545622170002803948470085847430066112481008840575491691378469871779842183868479191466920648528908751700747744089319459971177618579543633977385723905623408459144494105889398656629365209224001460536478056550571013676842433614467809409391368667841456182233000459177700465462256526067839370374497489262713717983624902866428551274127142670206322537406831249461819510653589965139773145419981394908161514238274938628334760776446520735088303565007936113304772530945574703808169546338764172592416500099128419676010149157009997110068034152222756087482240561048350358594863712594503133999173605286328943565106079826530115644258540843597189962161910426813275793320391651171277358366023088420151960028057566861155326584236831741666728928124016862613345469168002425949349890162803333114822072145500171746171524840633861751255419310238190701396957181332221096931122936692093297106266994792926888357209913465817525559285926142411443396996409256293552274213104525890080870756703952564022968496736878294371874366921862616532300267652592306179786435657713807113002758617788859543054845914823288798272099980298895345166514139671516914242265335889269965438503840906912332374240208040921055680787043647993810086911848384953681059754906332731218052404920900320992400491759528871843181911160786875791973695273529876807376429076769295988618566160647949500004193225118499097258295059916057563794306089226689921674842108735463907493767697840328620370001473994435560490590708222948746825466372050110540165634657121966565182362105141780332184800717779746468729853764780243202437848149813326366557933228661619044313470862248676043177196068003450506095588262098498280307999795041381017565228470779047137076586172698518349472237753100135527457045550802737298100513593575179037767753487322548702364876410179771554080690044600570424376335587634142133517196250070721175410731433572726562746708006403068000287859624986566901158575777355000070599720341870309521890800002230464492795426354121798703270381737666343842929405390020425757849324450980491308637854340570624653810247080262060964282974061238833217437636051843331679377277620963309833224936802587288079938739930746005412120823947936429754126575744341925170730938448508460922618328136813509381363790714036524985039125456063765808513520114225282857384444531608029280713316188581255977909265309235094226419657957478345486184380884996624292908559764177193163910183002293797172856725543023060547420039827621891573609609554135715631987673659642518706624581798310531688777150052771733408727134559503321689844719261522334550404224073068067342493907515044712968090022463127381721114124213781374038107767685288786514011211060694824140186971061945531616811511133463549008041476713170829215166845257548628139595954947045456201186207324145066296782291719524239371239252043444430477903937767690926643119205077266939769025044750069092949951964512756311804245468444902771218408411888402565463586885844507511475618257715945013811782873008412329981463925995962200190050059089708470633096776631590962670507034555000159684064142203487673608072841598306707391784727366056364241034100655428335174568713343562644873675469372925485366128410394664165907453581744528685665127923321502250177653489878100334508285977261448905805286070591064130829503592982716333876911043156222172589001219555553027512148554953690986470515033848382178640684654334450018946033680155752530268260491704983537864881758133543955837692037880642454597355924392900593238354999871261040480442378898164860197131087304845954139465285913927777458052267916776795105893824014684233258802498546591270675975213701135432738543417088942894434776555347460499057424852549506179457303739280893698466201771227922554472934151202618136772469372626858158514038744112797288010939934417362821871819689061776129294506612015171730781647656417223151282052282796745867122281537867027537324533313755123325781774680263597270193716239798501369313868001450878053715591966162657059764105222181125598883812715742331544541362832607775473604404736747809919150614057185425859832814907345715037242875198254612879689799182538988143168848192351999855075078194461801368114577196439390886875475990697713238114585491051907816936671594752272602045536587599125862760469047732648641812147478216709894001172200316006966772717958739128638039300868921612354392784075747643835862714472152394836856853724331723832535822877304260273317602692647633772857346330533389152186638367854802132352251748199568164681395456473027633286201773952945776689727662697343021241308345678481842806186027741316007237691480709100311024354475916781222514370095749272338431913698979331383133112143005614440743762339121430593215831584355541624551269946212076396965282836834927913338195032438199661658352837823233889519001540912263770254207454650779547118070036324525964765702121468592318098050528031757656394463796382592444670990244566776722250697683761159434377698535527625614954893782016542494928876006254527136715479139755652112287648420793729567058880734609698265147547121822759033714704997541721578367925533873907503296652297467097418625766987648939529336857172755231599399468657494251865716553010365755374750632073615543396628001758884908127381404262065389800358716645595390344317542931297132320626115194010973022447267421133939395893585422277462019818508833935166586544731536058412580361950884550064091842000872910160965896699677357957804688345105195161625964515686121820823961476853317370964220357462468797370477033677981272439651387601067267910264169287531021184476549727537257820510671502432556186401722573093949427117038556232256985241469120935567165367798945081901021185769025128982774010601861128316647349948599565517214677353774437234040033711140685404321995098337551551139516732813907968416435197921956002661121451060598416899598264894631683356393416381524582455830569690396057605484020197814421415698561076481776340820273158356089447363343561717693411513370318635325266986252861302464676863215730390033540753694645822157654854136837655431329526277635026026808103397455710271153402011138983348786301050670711398039151464033626382816736138442345729988175397260065304718879364441820285135528914477923979429490500427696474848468124093883254587543879566586279276618140552541002223856939642576116109891986269863233115697282933071172915040818695971166432415539998973613085412656946419589511500636438656127094414560543644705183661890347232581169332857013940873880020679845551080957781916275854055308571255264530784811299729983498953848893038420317537778642807921442307489417026197355051516225853964725168406982626655531574675555462235605508192421431782020253414094338666010066626430061913283605022048704747118976525047516620745092200697588511331243378402194019559812238785115385648874653877123241925082066199039342108674856241291088488850011819998652946016693788731381420736164504389977106633869289941161663714290875749522139511582213545560729252773442052023216953150190530895765821789538916437870783619022602769597563716744825126404344093087668595514504485414472028935164358844488591727409901077135070723080126527693480321908434845426102997252282440122127962161484323474295291205269363515216125843260607421533339156752233803084737945055575222853378618950471264038166461289386732665882380549892073466433939970365608222587866519859840774981085499083688936319456438162048463780944126492170778861677260544387402813221185499269727605853664157876669650064971053918093764436566321328985262327674426855853670968770689361472946482725700220998472252399687776572889534226703052516288373931857361718392824076734621124110082934817683914295667992824913411217460498344713148588154076454740029249002990030040412488900382624480648677578790229657528969905154083168098671542731807429342629612618044806773564141250006129370681932189317743478298350569018708548752903163936995112574996275299968828940814229696229180881407416378141954815885186058168068311735555144821072546490903669055757188285724209108838370887859944347418017426117568252180721052833217897545564583305098462033290599239748001629547578138957338671354420688347821405443152587326049032817225983025886681137168101814345970606170462693379601076988194374408506709787807964293250004900273140684296498602437137585257862463630745163873570414786343354887191215337283758635833671423360230999803964317221235179771048390658268047470044165409234419001607795202930507954019119193383433751608654151821668721769671885969092686006485132629425454993140836478315317668290184832329281862847322560408632633387807960585009310289662479822096183934850863636062679003228202555406444302699499629865292260245995375000848846250330993132548702191274578986181621663534556355144603942693241533190615330737259198686758226154453933254638786388044930196624047929457492062010215375518315039747841951420701783945700770512517689459996964131281054677342291171848530691251541261348186506935630918521032068017445092614174981190630416358289045946418922702549944838756522574656846166807499063429843503763293531757799363893701257977818427188446304471823057469737402378024690549466985169444358601355094354658998962078949530207382040539856180624690383221487043780107160281844796984269802687501728777531104680364448466781552529125595582416218871207693038174553766932449800736224016638989299298171157380302187908506731074700403000659451045239944611603422113516276703574489125296758897946855245263825410625969479654810560955985509211373204976273259713037076100308628815354475489736157585511140260655825892193330890201965844521118307279648376020753686332827725577409849985549194272035685180533990969358467007546196566069953984812230361151628778866655820655323041009204147588325920345364156219444759091832011401106753307499190900238230981360207130503537321191322664672829307715531712078403437185804557734634819066874496179743225466162127489902650277063521129957084752586541735733294718760411272377326618844223676319390228311675613949667086116171915178507545926328524282794392222468226882078369511889723571500779130763016748802715725596520753871563904608077664997794067414395904429241918996543225982197079528507531222892620544346092033695550205330258441867641397666659593982752168430053103245028755923639662682782150933359153746780172930738480207130051806041964582857689344850032094642864202732621803789213783935085400548473850688213170174565320657037793262016882815035199549772885241113454079991238464468541724240754556658758526930078496856164380040537495792589920526939311712191488179908524566355104583085562759556889421857976493648690246721632119869200204599424517970789100484057709206592586043239750621785864217300393305904489558670373337987751352353956344313585770224387456229898231177744576640222652220251863911665464767294942911152322414434548057526294492326898079469361974850260440574537273189236251103509889363476141726326473274247938955611866185846953269886026044829179769557098437916283703129101691967347290969580357878533962262861543759181456581029893633417292509264649452148364748021378358236787228528897942115301274330928290576583448692828837834104798570481037856429173765955308613864347827527897068394080447075862464631604866267026559362955172531983327471259472593090778275596119025689237569182258507787196022939470371739851707552343706184980702359269871893172945649295729094214003093595144768201277680551968854561306831339746143521302934258792893664612797139700290362683776932591916442518153771138034133720727938493314869383766149985644047707765820073374088119660365295024230308854521555183799551032547595736611727181318471618096518246265769626847134870550444826078652369725274824861327245269617870413028283410063759905221763890066288258759872431328166759690866001934711181670389119052203501092933702114624345385692763633755842309119253870678333382223855709550310440895793255557217577434622854610268116013779595227811069831389985865168413563544075534017246251538164188625405834298547363060686128057489822329314034941545477881166746821646192427088163914654389434580077984885526149454011811687111528507658186992238428144677548766790560018849485031413409315378563315178353956525316412513640466174558634663101988073546771162576231477918813670649762108194229357128408676020886784679175303013204246520153232858741588937414876642356234829173916219215673979123299195984679630329691520413164911890828937630197636739773020611892187516040018882808394407093235525540172402459710884003279918417537466270071044138997983720654976204863228197501843943757725848440578905936825833936622912349224428222115499560755870277818914535065042013949015959618602983424904806280049568786036145649552929572961175627041707684927499962681071141192354938923504883648803878604991768241249118841292765637849258029598721891168616261673088651771658372339998372365918227670087476377617821513626168858074181315339699510142802888636899500296047559929616102040402835658087073508036100343472648601769219799549781699109479285545454592241281285108861562331497925909689199460446948431699366690184076907655572080136710225527085061562530546295226238253607903744795209500721885703551161182281189225048973559848967141403722794273358176973385068535903478222301399784754375229403281724316418194677246013434506525615061700424169657213207462867257095909700356663770433341325477676224412216606179802305557273542154137436193414671958456495696892431796367909469009307997273295841191975262831872652079313314062603371106824467392411171403380674465531711848773592079988424459155796285499968318694013756200729603129010625871766927148078090460671522564356735046847768291260603851133098859280993074165605775483978687564007825251403883257587459914846304417358664669252115873521361839496847536933018056848364496107644170773499279636195694523308957279640884314926457297840416383895664946935762433687300633825203946772414616998236523042333286278772688466389572763832297709961752859259784964526425396597883640009595042497187091818908089211113931058058623989539751412712731091485276251895654717360289710840474975843344016363629291732127815309294251983784906729476861318590987468348740572358598356867135198693555292059080169028691224703466168605682026010765944585991122505648802838013289404369010589095749796744429831277116497044355951164669620591587651971239222179530828844677446851103571101185824352974177393893737752070674686631052834622292570481622836223316815061645236823604908156071940763239033565086614816445690577548408850542971191132681661876253258328155621771499175433859197939199701014045906428315842985810217759584639853821197462908548360652304605775438401671180022727057697095102627015391626134463912705551522556765228570965866093262420445984873947320579659775829905536044280317014460157430414006112059804123936126478120536118318885003246789999017642026809921956609257503825644287396950737402125542599810850243146586230183297115025635872218758785228860943750540770040749465974493558375454126051383225228020640913121619276979128164012983309899641979968902843071267192162180113347200465976761282463735512972077912508383422996438778924434130954972163711088082666270144762618145700732904754774568250220450328212631624676266640952105491250442402130422301940204812113003634149480466684153060837465176166669605775185192325321514080604072111468068092292148818058166400645663600681430315784979005263589457613777656709209471472474504710093535295685275021267356461434631185003504601848484491082451983023679517548702422418607965810038084035980372417108494672127942577566735355228789897466457871453261582540710458239059229990905062323933416939060900482757430355650835151406466917625636420174161786638153548486368874266093958316985777994135038494852643240853320603614241549908173638477290201846133570570226110688238450295019650926467166730115581902350635979284232882996883648267494903776871299826578774790964459625125133258785066096311539955766817879622757500977126215760876810283700732857372372025644318415650984112694079659412634842648326121706232248459634778692865214181392406511910776529779065515917062011109435553389398502215609858758820189479262048739845020199173332205818209278800972110688801408233812371669346392265888596852288172834245604952968551962977079943080322238253983714602489264661902728150627754477522716485517606073147898002546374583854297205951965800855571772974980185144480444726626194028642518081887175916456600831065544991967284393474759286705958069729275625461010591216172440638434830694624074990349221637061821445253419839962296412598620143712116759276706347301658995029142530643977143267475002820073430693206388978912748504549858520740570165354021307471736447123003742303482259402028063135670704289764440650041472522842185497464387263092772700055217712010946420839304156412816500397821971630960645626486143175568887688906817252166398245222406639456171431492781494134286743410402373394744071731245716779759714426717791491488743729209497455330352123651026280725512699936729341966169560621321940309074641846738440784219815647522976608114130161448093464227135839198347808776901756700182040158496364557245864206747563635279582621565675859784229386235122245971543619445418677811225165233228877260360646004526510567465755129912771821258286043782925583130928064598252779319863515834787823748385134422860225117486088361925465184263762142711532648821954306524924596664928709343120741793576305680702220144861594102923728795715246746111136631952018496851965242245878306625661829137128586411896542924291830289889322996800338652103325327052251306987762195040090292477736964992809586388301112850506875927345705006330597300094079115399850238678471920642320731103483960574005583072457199739203000756613141370516964746016248037195040127773927985261854883900702063366089695424699975388314257483861763064442767677412166879547878153611240784246431747618252740889812840965802160729096325823414037983408765670472369596310025446479893067227441962906798987734646502478751935362106606869967294562982031819407566974265607964135143278069043128388388099010336541605278569650174159437636479548784898517900812254865968402654356408076713033284276243407873620207073854763555295406539947727812341595277048336558043437815420949274260662001889507338994394126357243044484034906839944913257227783965073629303389088097561709520473380190875313476284900140742505991732038348770254598583712291770234298414329367882140935197002259245346478267200211388149155448654789475854174039240558134403485098581466978266876736037451450464642428757319941709067593806665096102978672001949971733854830566948896399267611487308143142616689620036904585680400627903602845661357802684052217363714706349774118657015657276965873434240462709399128192749442365732353011408896173954579758689824528692986345250200969996139884847711568172088543825651285185510784399252293203593755430038503871264094942927264360675049692040018865015444551817882567673363121136536425570446063050649333131403108051614667715448535143506580695414307475603263169119222836785088824940424645289381692858100512147480149597776843006687365427959700996161830692893719759756312710723450062359557455796077327788418854423673825390639685776321159252403678357710932384466333884681913657487125360917672344418529140957052362226498530770315861841907676416896706461792707926133049830322649695353730043177852884596862752574720150652390734401110604593432573935030413486896550571274111193778278937226450453536335603803815033788765691961166819937943736555162083035667869566878811395765390934660430708458311682147985981644410546960149403104377667596440394912389231616444021534886936405537989078731684349449284660765685830595103331580398341461176487142251763744612544283715964017578530782514887209509452740244504327001854295905016368416283416686239962890081716773110550446075899351855449477459844416031037562988383780006403876883200402370124536862139956423447311500331629453625769209222085253910510796407746512875568928643389826445653985524901878453496352241787990881184062986634876795489044286592791970616833298055834258710428021885523331844597433000539281527308573341084989931208943538221162411762840873872897922578525563444238886659910684963218115729765657895308021758299999179811260253551470243344167474400520068624065144375891107771163429300583876208943541545749646726826903413283182878257218934783861604705123363128348257650256390294415118669291137219657619841880233030554961488442519138898407772290162569805178319489162120899202392392562757326960513189414376535758270026450875251340996006097459517419986793695892066943984086212024854532681416365860971184723213642181779441418861697908401771099012418462448917886462287794983432865301999961597232434822928135107192652346078571576454824921063003563124996925818502278779770336417380939854261650463642903228542548077354339560865767925702232993904469883376935799148868668150561256612626384278951560300157448681452147937058038428503982633102154752170240956324939083903867851978054600158382931544065705356653892208667909745531705274923633119260748614077729621247336495366392163624506355424937994919616978994584263326844507727535387207363538414048684365812248856834329386109332635419674058775136980874211438000611524734971482882600154981510473388277942553829616217434832305303373548146933114016660212946477386124574461606855500957386665549870486511686414063269361861006599084962695586664512495723806398473486338368007718571815210945100540327286974430089825237032358126155357037094746687140150840384475263786964009239923160697247960171404095687150248398844036487700362408286244018620058447661075517462649395820888165904816836507480500064700058987044676825478501061780876621138041440452423188600799560868252130056236163370600542352627942049674959267452979274647784678226390129625992775799371073719690305927909543852146580172803149704917307355761664171372840151430698718187856559805570920997209183416421632258015993694708647123699663391708834370685260861884415960540624643586542961058808537081574994216731259901933590898835808631120163865467558760533720608470005015151995204739248091292013926690745778834583314006234758518332342878117936980611969428168393941150752644194170721905584871087794062201231416130993686333390427289607555704349686406396549729583891233741970633176257510708385703613862153278746525113751998009548800458604250977813324153670786813714545473469387963570551656046225217917974161297145319322793302842172056335020780231157551730468897999419512330413154828398446375576538325566116814394770696066639319990638949481193058103191764633939394414606655511916542808612192527356263664326379862631434000770032267134200569078252401142486502100231865864572106548707659125290983874745675741014274604646709393804448248032444090109944346670796416150863598710876676787217009268001074608883981140914180653734482194351619173134594880982557739906609002561422504516549307065529961183982233120556449242591213342719483110859649220744562239750896051647218571846577919701703727135256635679836024758526067335984781956373724110423173518306737832710147917839724242322302839734725618176708314576489209720902701268761514804307558757993894848484094757477920578978779511793339063007967896013983535320871561050041584672087751069871470712890109252067384133500378952903866398234711128644702567252782576845645674811241823808179357058941595211400925876658835717843090473031575962091450007690574213277619162098151046166281634269728598410109653757701247275921654599183407218172585006534383142931077990539760204419676986549719447335504282709450180574951175120716358212486104682068085045209352795242934624535542033716987486545553519481747532914005432780023690249052064480826314554763059636833536306106307328085924153676810016447620182860046518879979037046287784788653421800343672871321324850894825773450633030974325345845435378951944015336428037572418493833765094617891298181770923175034963243698990001057625559683617147307502582240219769007674408554675551794540182165051551945392915499585293463944153564210309422401603839978714022906006023049207251941285339130320708770492696002956699620902798282940544954244630297634921792569647673788780732537459448262560037258753983462383380676020653556605801887242739002793451829228705580908141174074948992628832494396016208304001169271646073119203327321224559409376265724045497726199210012982946322297152118598778241967473005230609545860816814788913503243167698041918794038013279904209942796926345856921689246167154398261928771711642064031864928686736665580415627166406771154424007880908551265267944532126414655334279899860839992463721284231628570340036803269162387180703367551701798141927074913807609489207487273756338739569900464904049147254624469896118878920172937383526856216233188746223187322787728442735292224254921414693031703054220021846388566805303598888852544360401105949532154810404130423723127828103146028613692526678249885265825973132900183769255009484543919751202651790315365071734958454958480974057739291553994173166361086583416336611170850678386487132629990336935429833286739651524729568854007059710475900120449680837463213522891392756571928508373720435759541513433829585689111087877922007234347512161309759666683664372359306480930903183884046031463339332616985778555774062274014237498672280827023807069465509613933777160185289232774085138136581522603182723232333680470930138617811499551258811096619921182770290610130715745239987938383116550612005438749364183904302079933250216364057306787252565900621070812881992300449853289457264658058646464386939484920638331072682621216178195425296400965183391997866010145877089615517498974176623589325414682575449305358595277242186891555663162465059879339627479644940685887797274046451093661145875898423228891692410519856954445198466869904931542707964099030745229788830423253772531691447342317323590475146542988826486768977951220340283585447473164633853027279886528333542971127720924264261304693416780377904006824193825376581224124253067680724360365832701791062061869296574409034620916976333648777194224026407125806507840220163089938506339496768150281244875569373828378807705385590979195026886649931955380435809573020236080222528609104597816321647523756597295252678333864872206345515591063971527319160809954530552055441055380265953729344079113510699279452396625825608836524545510674396281009066197570953518956035880480871509355572898048587825809130775989719173733842685555464093918132162351377140017621841206985013377604430347707346720224526030966832480871370883046497187635179881973652801015981972707266595489914243014209525101545171799218365628640097362554476619367956034582743816397999708726589671242216587408867291149432220496394600056879252865717344426136457964066666407649060896002286399985502029962534207617930610374922249100929885955656575614452730850172641960618071044763656638178636588511069449088717654698765022585160718671192145235982895432699057958622670685645829216108701476155599931923814334205345873727239710112769718040304324459167371280141546168708858287473564849325323391588480276267105418946244273666565386129369478482507064044771996011752043360954957813667540063582768975756953828819223938518609211613152695506686854546680257984304224443620180924964780718460774714662480205489930539436437425631821625623516568757532688659595930649780375635033451584980306850551487904428416923284222914660722124282678597220606763144519758905961327732753084271610902295598773675410622106657027075877018009516277632647125770798078045592646291419217236442758406684027451988651689359821973578267739378405506482278691240870228026618888893529262451924480889580372591496023552156359992604854526363174435407281585942433456353662038383760525549248410082321317590796434294364565978897941316551331421621449432564410072892464742924635147254605755722718292728817812831964104551877148264915262076554826379536274087078229591228942049629928342953544494293680815790945195676953345085918421961274412389703448309519622658967049984484110533297682756726144551247389286243243951630148623868211463202766357082758953679013258997351864366695691992622018907201718323395615544352842236473003365300883608366277204453076161440833198687106706773997887233844375819820046143517776822735070005619263658428413850035710355510769792461755761333051168539128154372342903229618639081723665800199926448356232835103937292218581957309973647883840564392651801668643014654873920098881514820368835581492364566117602694670058652609772731538516869039494743442383936408157477259232190118351087346283490394941362399440786525865493883608828112554965859779573251130296508207397470219824980881720831918732291952626428366274056682030175895512421413618639928488714747699013459010971069052338983464671804074225763952576251097860771169002468395399391765001605116362330469997438550441710032230076969049534161529199956871854753502100710416196222019243701313875299033778540509724050896787899174153099279804019823156614877166268039643693997147728471070467994479966406406265257753119722043174408064182659584700062221609837264397656210221224066053740354667245461208686905097401228909889383692323564048455640106713498093778560339217790059095248001278593556340493980810719228765116945335057797662875809112040592930474896815734658492171813015265715880378198408143688861058025887241355770702854846111499390919524637014963511951609989469803898587189875075392068125922899321810586941227623460998823527656010305632277564872054218521743249286583067731685270281981110062914922999121947859437508128596307231697489358140965687480840007637620488212298032825604596109655401968241943755692707857016390017188758128599011659846301404833538081367223534767761193936599481432554357066985103066374207072969574290686094055894543779405905223367223898906538371017487595485771650782453200551213786715250860472182796485729925050502435406628897304906569505906447833657283754052501887708806427920955296143217769152765475598949891821013021937312128807211047168900951249251390820582840981654751891772801419461653544504461929444013713756182826425787685453847117474222318977990056885820612265572684660287218504894201300939425000442485734322984456641907368920323312220336171910966135162695137345566060199338813756434054780101282216708314664731572817586455627270362539982753898572324529487933203512402044392753702998979869574051475447628223088191392308241770801985789262074974473524640462254766577579149270106080815635505132719564664020129737498163359978138914783354374325730109848457859061965775888515063274538938198277161554070172810838981435252346700352929448567044504004632859558167227851824032850705972380646011511160403774803270045364619712495967436289446456717219707389247906838386102777624511448400594537735349647270016967459392583925542170830189022541483886097787032335968225973528246749838234220907696780655459503431719800249293291814062575666849106030193929091147916001176844893771215649517169530103727616359962500890983165063702759570929007621130012484482817065082557822709737065198065256964716748506587498323193108418629824680249062066561315374851742017917050231528487894173053668078261921012719147840304703972755726011495032613195802999242157329043789474086812294287407729817870191835058359447939553874337235931108981895732068288497978259559749645705866358459839635387052761305457736400206358235301671184872319540396082013010333872726085204106476660082505590996462582360489588008192375521020939513000695071093618771963505418675692216375026806184302633461014455887079285176392682256959553424485781512234954337257612318501058077736914666214994576486694115831628860589690671605517630303539092624874965515911078730052691203644594702915389214601453898457994042423500475161531521550406038324568052494848479609560138346633117960730589704805872055664078776675432158734292888484356010511683907897109459435405200100039914802122291616179889507144001326503525363775717570944819835913339652362060091954735225931814624091993429766258567562183914883300579235638193482690079505831989115588131113361067753861855994514574191526942713734936774550646927551561150721380169580288365496971627557159219883200416020793559885883938080108669300048893720567015135763718494346576500310404289824994485112757580129426772099443577768557235953076900090419904669714654865874342260396617978152799158793977233548693120763527658049101197811545202934733882654843341847883607593734120977512960772166378925853578097784194552629396908536141926353004580127858402935013311863416637294467426723336580516844015828949621110632421980614062996799884034750768557485770061315707033901937523213807062267644910291767836705494328715121551961784184790859527933609971090268035506510783338038361166139191435787888282216838668709920596720830155229696455258780009447456208597692774187142783512286151390214938438726597972976777522070876657374514552234739372710768116562547669801439450704002765405818137141328420175632852889018353786013708111130670475885856104268605967820567857951193616100196023616867353254916575506047420959878691456997967911373026708799076947630468990566085278600693280002915347548322392654869424041177544982170135250942703387402569375138073383393431587426628756564970368282881666863511780706942473822870925948186433170799028104682228075182941023849838116238001888619477598888315884359407317303902767687371134777371628343376516647155787732437960348833565866756614024882007637422172817159429118538018614434395322001401380868280702761175100078912154659951854697607741248364605503740768092439431111485871111995900798563412383191165408005184845560892181274538922118645248633218250988317957993918244019762079015025485135705788087259902926314360679349423148231720067080074828753322635758186295736116728789300001473352601940638282582851559542360122218703490334435296124156213426373191256982798575024788173126547764753544564582756340018045967881497012031747782243101445284267631138003173593298732592341948527012845382138523495479916952272099255283906248476205988952587100509008935796399300047842977069373432003535228927726247438010696339800608563679067564147291094031611370992577492740391187144883379788975303480259630781565327550534980675175515614910997936972961718710830343830993120540163544445131330854919648750538389306828147170999263981105082245219085536095349364976871697209213856398476610819659099510493256204058512664590626739517646182104148457150586638169180795859250260153299618578382958148168559215135899205194219078366931845619970347113523477205495509972190566365256849459462068267436546340838275360463825612795625869522819644424076632392540250811583899293567356186194084298988423752485320760422815867008094489990150201001733898306900347623556664546501468993609161824173133735427737069995360343662730145279882351257683396297751566481287664354846212685885726440789894824014288266573953760343157133243057285011155888439087292562272135802507053492400586685895616611964147846033040480402493653329072503690812021679723378856559521744346136459480783627309666872956914164754640426747406325346105900422085904119709846210221003599800027842634493297799242127151813983784797656170736942052192001287064575646938450523897593383238647204137605824391313604732353297390185816363931373841825623548930957522139955614371202385780019983814207857716065978804303771361242054817124197964140367919663547247432794904577245285940302155779788065904302791809751412621610426607859920136252400715514962472638105668002831225977005140499729212227854231522584429781017218564177479539354696939535954664761359032542256515779233409937829085008242809287773023490988673999702543521917913923972067673653827621904746337249844321266950359583035237345595827849619314921190720284079787774979203614586497354332632255784581576404814621790825855562034683967603267860744938041587689509906809035520407699256442570713975222261137343056353215959690979988237969685163779838968325651816756159694588864508271116202585274617414343774351563836165698438117609513074714381855984307969377725799480457302117335517603619840286642141624996175716663310146999582613573096838346967309256427042893482747581358631155628030391415106341720038542508012141533067050384626242570442786892495268385625322926556560518836123938741584772830227967256041064607359701378263985378809759574270189462223765667911703637524011323046491646347420146599580027582362136429491056055071758355717836094950879497013717258738958422201499471786119134269500952643208783942214623933731661237187856540725017066786401317962522397630654116653542312487332405272751298295158723112595628501317916818948552715100198923553823188317510883351724472866002349074606104823181729739166621222892666760777530754867441215416551099330985704963587832506409287858065840594854279896876549717925678250499214072722235373268185534165869989635247622024778261669990299111332346492186857768340175488116123239841811497250374891638103891094748462210921851794925069324756085436510832626710410984140157280876671921647411374108284904490036153420685585343979711923683071545918537612779085495879949883806480266542211450909676502599691766461994594046398293456790487368227232203441284229868954121932713469041688141711854342863316111383893660011868606210177009520795183063172426110598682920016861168420114028830433787774437846772566841401370737705027980926444770231376590868243832809714911591773484410945994922077698980455837529509021824370863492038180129865297180225694385649536332842167918170718282364845925601321167122191667270774173052459071163130166876642498210368675732324556641099050956857299238731776649073300577714837126664188937184434883992744124730161791356747887403112345731696001689732721438573412828174437820694498595810707467489825391323506049846620336200543577014537926981565194671018172844573787813604019466730792843953906010068813944352421411864552608138671328773422931336470569787086252215818898853233735697803491314284939744801141919465468978900672801888098677823209037263981878166752401273564122463555602708353916711865697754648935777769680359766837157327300728508055618207559181049261344238052347108485391360282607279817933839314532961838654908831456710347732968949735090973846843217708678676130683897681692359938368705895542095710310802957868463468077747847939857160443667812981272133689209704837397955504028877044004141317065594543542375079731096206016166794325824865718423201518556247297526824142361348094513570734578225502528665693042102268503124782977485470251628752710975194038157095728252143701443676987098803361924584292613279188643563063651805156511414804228098716911944858153293073606662898133695437978559729672362548003831581876098009410793841450081106722520266734270729062366064265401146117441120079626935554565830664638006021800557308996819351159497785314061933022677048297677087302555290407801943406635794384536365494557846487290689533901694552321778687093256278606003452800800552435898371405744850365631631186080492886780463493949585776608260643467179341459942348728568324412576833827495850973966771651133214481271233417223206596358022008420283656668721174791061575259173258047010281597816272995850658175681858378009385325391848713775494126359453025767137677660127379061657473693781161349472960318814678142223656208857225741710603455755486470456052931837390524972153448893284826854085161213826191046515049392887086326136545401344497448520856835294846525512843635098353245170647861862817742153501066633738978245567154253021807610212414348505490006607357024221313281550128552545651794103544204465923840152129527120845705727008468337433916263924740003093998436224492970128428256907400435435841056244152062490818080947321675931998249267454494510459422653217399649265398114188097658157585073743417323032279209379225496322711452703855481329287413136980395476764180600676465864703843215810349330793188066624647277967398536382371458358405923038118221515520751699239125467402525091429372013786350103212340643295915321007696055386998774759402524512857467997424254240792520040418334378477172865699652460927194351868761536569619508711696233676361259514202880327496570326510839141830811748810032212039469385736255501290729365640332033025094191163220365844820663737466746598811017109325437369353730709237920560476264303328622967029657999239470708211339007919275669886029242422611746383354059941621867061481031360087451745246888334560116893016497380546746380353024045021890535678880813368467499538567547835232682889535135762366627584115849577692287611272745563621990208657843342307192928174748669402899938346632238855724851108109466145199737422060293654168803456448032168118279456858216947402542003619429298261898355752903336558274989061613123068981361297771995048240105015867885051706881399407154944933943628053667855274721201816077437018245612633837315846151237470541015109128436290295426326204736762128771034735124714646100908582714963105913992499821362712843679562455064258158670061179262243306158418679107965010752381864593941542555810528484187750437654855450738368366933677028178892708476591142565484072115932078860024972311817230618233795121214496721719987208379027352082443265713285257719656348601660791622182170546703835771094771609089788806525577699634888232439700417986719625648491701470600929231036414450125542570679631933038865570321809619152515574243075674616880300958225484509510221714552211532146159355457051502994768932133266078328388393165790909883430739001379890614538152073493393927916011892379174263827263142659935020805743680966207727392425605702671100954744316759507780902613778499869965640503885485253329985224980509147858391348014479319584518488699509757712932642801998868877398012727376774002072323402138023160113663274411428474288580608673119363909728288965431122503939261381616756685794564453286382070279863322218082593999530846847507337672701001454797801374042679724736561225890968833415555982099446059531037251303487190971199500330308531291412192440857998319620873795976882318046962126494655335083461693795272439219661978337346260411947187814470558550636918299528502878059414352602974116534243048563212846210106869410943996656687319552612008543845604865957995847053774200194339333237814415093312417741432247466043403360176484926713907649160358204878808799261245737795790047622894414317838959956103639949067913839780572069878759436159797025016237427297871348104880506192641428779082113458600412871094805726308265064944067513661529502682983218862013662376395275631223460986095055240854779673237176117098607546379283008446721361065878932284723407868945099247823107040736312163591505955107064574599410922613979249548403601226369824541734207319503195804247072926032201699454355366578333642522885510343815636517255327212295807204553357955576931923271193981432641662117327636868278983256602990682925195123047149454867816868907264508377130670586433907472967643219468338639626138692905440801055260777063217401809753847156895831628822587942946300460715150743382928379407129318450213443200773250550672054251322974985119920222035742723237254209016429679657517119418102541592274264190209294949526245975731799582097425449039792364486818707649560194303009460563791047570808333576787041376853942379449946105784030477719013204901078591671662961946690790914287097321289872646588455450313734973473695383127047873267748165060397205619575788356970285286827669692601380116202270195819532731199215044527957545744060249423017745257988535042570074417940850068745594598743994102494325377623973395139564518161333469256729461563308354587911770486715272520365678055540289050573752850907367423263499370558690771819149031325109557609893410490034113800626912961642379468212136754118694570943210827451036016547208752711676613307804400770787400443215645967172199389863074174670718601232552361194126251099647770270338395774572598251932724432657716453780174813971263644499187161211579871903388612159516744872047807003667452915065129778159782227473981462663848229929706936114515154130908325776639651620216149017498593614681153414091050838434451116776744490706968907154788431047260314444350098811542775618164649765540074432393287417226499925600791062901053645752196981290007441963817836224081676791933993044358291128126468042707815820796985972238966418787773003837681256739692800440438567662616039461256705189330523636005116494599115561782438140513708265163994588917499283631977779595398369060839820298567102345899413271224476775567765218983171617643948800822072742783543198117271353942614545598842542525527219846169816661822843218132102240625260072803673185440416010135583923904820129928059534363378911436028188081959451939105348061886735185327331476124276713032984986358671280643173282152192014885041526813029777971588673299766475684578623145184721557034699729169858761050147025909706668491090288138093175001448267599609870900043637991179946055063159220105868084423479624235516128687869144315347961713887537539014032438616144284125706380282955883635866486442637041822948473253912451522060811012980154032031065402656020713927957358102010518146726243515861833539739579212384352533778779628960584127112719685637616533849885065960889536096760263238484132107699909599255654479970843542029490934078079984215840359098664153711648099189081136005430004657266141203646673837870322813515666170841511349952812257051361506598253347784797284289142931416710219368036942961227781337149095226492413154033282893130081496880805829889979322458673696124082353358890911630038685335810513932796069656444594494257573361308598039235407063041468901764364715350998677665592946598880163981213313217941191694570370954163944449944246752778755722711995908544178177085931164781086058418243726986609253167573884772558259700899635524529320944863735991324048043831781294002060103918882661497714362829134765462768361943597939217612351607565659706572704232054764252503535826810883035096264122302580617714524093364982950422127796666040624788917323474787949697751483264438813673390318993374300392254390993733602085912673991790132844183300615689735137050906883348968295790547974545756278108719206281471888806662971087972335358279223877022078621589642209821296573139853234233018838350365430047006967427591571112963065972894641925628778553553564589511761351197384077728273781359147415870122047444372996244511080422626353206519696721080323001793324640831757649782386985068967822552876263843813164282562763654885383651089442207553873460266038396867477932462546374538149157055602797613555842927168157554752994024046112351192029196147871256694419640566615539973259873905870083519209332080761672702388439265890086579331193102911225227597842551465572509478576241913061411693091520706031940329980280652235862679819674581356998047738185207941201550540711956970008778390378548707755502639136005588315116840339771290965335770362959636371979758089508561538081355289153846059858243281730023379158390261013970613807362159975043999763455379327964310459314354291375639304725794578244657377457730140820062118160327633933846111636594969676416381908223021061427713827792392210904248940709207263548011612572293297323010032304467380903799866602797327337332277259772127302523080631038436214573459168920629699792605670151314510296655382080451626406276020052632912758233105943807923925447085594065837801906986853556784654261902274683837535037582009857506231540891700087506646605535328228975697093305605527746776168043273436406491117909703740661531749433516228279352541168102218408589793274752312401456482014045609224013176122928290667216826562809301985711375298058660269813829988198819236320032611539287924466498008382165096258435611624615832060364334258567031681316156880964624686316751077214524099040927962282682020826357405992372593265927051167523257661800691093238615143257246200044605579456161271043159404658047740845979560619528466770219524085554995105651689190150993081970980614795408305746250884167900619848863959066480060002067425069608172578512399900692508264040131656078642432780193269308015841797491867909401475790936426392632454072036853912712044589031712307329429968142201222494022865631917254386475079723458709559618658419283030418379622092747987061517148411647648410326459548840389115993752755926551026831720317540899447317439875504438538681459961591492809903188955769782310419260171845763398740416461471723442627119516311507010006361093768094457598927910773729319157997935500410764592842146398151533039769380900527879584833351456157641522794935564375411925920986659522228050758475683556321468720425302004057105463758827710591196098465124131907613885061395678551579622142152658326861666107296927985145882187449804164529089554311337014475589263357622050178037099126684436494366637144477183990582810691907278199940661213741075152655327516319906715237552826222169928147096664828211938713085519205060777905463455768506423423968647847170517110664080214262410226252467093861212809699606673551102816022039527380579189159747897284731835969471647224213767033969603233131497713723674048239348674832302428967261646373038175217746039920700809871220659433303461162860833740352381643450555678094487594119371904333904581065362552995207639284495367544061372224545293919854765715314434693242534137706512358150815729271274868917001850163459582663295841805998026288752914494754975293894561038963350252914959359211130548061490459601235392825677168611318200982388928737279088153206035523353356277822543393403988659958007107922398901703811727486620780817965492796102302602919483217781956619070781830656223146095616068168036114468250983077123505857867167629857982428114309981914845471338665832126831226999524386867540622488065734772613217542447964547399734933161914361147938939749550082724594293866213896805020671377107809853998699114653921732503455952675102644090523363310814292320374724579309891866937725245691707785407322250749092246498895985314783488929495252805582929607953910094444339753171095195759416182717138002620177738634102032116203295385677497235573790858000126023144755386024399109461569053792793741191014611078038398153792635320172162756630141214451532962348865876814115246579130542595242279953340295045036591365955552411444625160157008035049780604538247620823944996372763228944976502878067780434845161406856182439805934763224867940255705608337831241185679310032655230376271628798425975131371931597858583500360571270159494605732158421171323396022572230612816225511472083066211063177741038178724851380767832276887827855037940222197415909946829912747175705741454868541272725381494323280409757108513951085936413055918997726488761385756357791224416083093803331912065943307122534343434617511952802374849821573741137325934562993759406027204599767266135651695137972409770200983108438907830917369966706533748290777757461350404906506381108782878059913397948795327407367777781474719894374369776776478906217437657238334208327195700796632764332750171487299302682957010030399560870357075038187253448470145232910038027035163493700380841257215931152583267039930778566013414977081464899537213989581579524400678952367651587626533765314934258009913810211063181812680144077693706456720925531967780213456780289036511243578832265985870074839393538505909004059287752004989495255908599907246417063105865391385261213294181589134632103004519870502219288707773497051076553023902780824014691932638822898364887328093805458898031897876290608519879802703501830085602014905782405009772169110955952552855709023722741929629915973555340680202033351230626133041218500701845951834274816076579827773752221708113754905972412137787919570891611044384881644108197645517141504641660614422930446043858634730657412397993580331286461558539710648921470159318675715977467295366527887355188324537536622140937095702550366922408296196661281344682662831841257680573864578262166302246224445265471876572140782877424102926638100903789987410460600052855986111442458460456664819792257926361095470177029914610204076972559189750414934872835129947201307646522219902438685878327182712522490955884935598846573554399614951197465461124181324730673599431165842479339674723104419560698954889815546047476786303379507442728822684004001310289521328782773497373477633254346598410828309825410306477470110216662813612431920511379036343293365755626906151665712217087496358429949133972038684874071063496240099438311939188493185145793677588504296562594699583445961110154481264001173051982199705727154391248673618160846870828182857334775146359045893242850036033529961052590479597532161101773881491378189870349704775396828230851246547455591610030112778081055290561985623164625624214858235202786775413122687011570600993881214693288365582921953037791854171829465304404065494132152804150398406257351426392782049189561221168353594279358715842119489168620172620475630307091170732985907401566451895432245503835832748573023504509304583471673208371167525509360106809117600762752001550679444314578874515316581144615329729016265446895236662127562576221072320078633768199883740871055858040215438777901520872177816304728971745135385117794259976178539259509973813736248600280226352459066214958463654936060077712328406846082432491670033380744705268526395228149412236966544288590978350835675706986593054374425089720644310854722675237613631167978764376478380030531372871207655120801706047958504195493248344603974933621129515681458769365034487765124119691316182332561918698073143973521581865084563666266155372379409546276391099323867731239700750159069611327905400756296387665163258651244837247189442427688803692088203582098966835764511092249750537556052161032317285936976296641910030530038643057769163205627058000531257886553473886521060647229843166601758498280942105039549223587649848915679260331598364747632497543414387507543392266543000924058768000179181219360859477621275880035165503840174831345931085874618450751100734872187346646615656349981724507357355689337461783964177703945726121455710998487829989425910256420523364914206311431785048233755977995137704116269365329868772591029751066461449078141959324220469604847421580534099607240940934049860932894261799646654422221780937899655753812389066713634583626862134721842663996430787010471119695185403871148494857096697271686817566556946520254053617776942483471682018412593847321822818110545655559031407790365680884727092629955277126445824313466185220680123844948245037100836106141076760185250444474891055104210234224591488363855096566345684883103571639387436294593003220139621534916941596166703871820555390929395368887833662870651428854061983044494540304887598648271521924602041940398745333407806298869972784964848712357639709509416156219626407723912458785697195488956066487204070233866810948962294532366846390601366826619460508396193299545631220491308795275025752820354308659514345834413432837086486247393236849357299194437634464872270014441762985840129206428652345661552825494163395083229574791446345668893187351435531548068621618964250118977513742757921048394105390966369549424418094523608683984217998876723351030317004676810830521093713666514213298541231875429490158721949835072188914528432067724791496683525855193978332004463903945781660875260641242936293109249617458339921949965944200342762559909986037773132750133376145499865971292365115403445820261742374772006475762712071470676563071348038533401566876738924074107532501710804829838650685509053225709429957698426781548417227123306626889891118606837147440013580197535428542734687125128840616389819336929275539014078118645116570143794236545612456499471257284613457762502750881037665581853715004989902424450343869509097955973145678085762638192113888007379714261473977965232564632712779653138823889032735891938036449004020934057414731640012566615450552762297305617811139390250659471220992033048134291215204636458956209108353566327129172567538388728731776073125144779502286988533536961944590562368017723853433460000918898423347963517072166687984037164109460923178164803499758746648388330338240459065198879108520485328153393899747458890950217692548932671668438773396021625813064499298061022463178772039144290009559844385814170989896633093636589448386588956749325294367051755937229114138632905679336709430979691143359956904635945073083569564736397485757808584511303375163335561584451201426186649488174437973992672567160838006052470350649484914287444528960523579967294325705222736978278215614982605802335611616289648040205321590905582950585231496203556535167634257434151425585756101816924861762716641441744936937051771803932996004343490159350380958607123610277776804580991039597859890910800522218741400176416132287214747531417881687893477471785757961517729430264713455550592598767195071477574343722407083755542008346830373510816421294237213398418376528729660442500762208833853852533330771246766206294210102372922674821686331159992939665473346918956887180679244335311561407154896432392773905778745729529502568103262453015591195098048901210482358213893374026410214225602257767661797772686262064954217013654857915191612326363714954219832063705928009338482753512100845214594113446516554455022337030985207404746115241062266798133088075645940933080034323711563292033621590195583200190920815146526276830606546696113048671189640020554658640530058770083535541714638641008625842561747606107629593220815290915315430366196198063168478748633523377561572069305994668689366088050629587594693804574563551321731109450615837067559054096413550705556580192737157294038389930498331110915895519120754213393411778000736216541098249194743244102698006446401741807119609581786755671721299041713783622757446635415964867518543207042319089308117437028686967586450630510986732703889611717590943853380064442733720456573886357240712069040533310039074814265101184942301214249737310890170818407537844041511704761203478252299635701203102819373222645985316804346869338843902778699088002757480811417695624267316849817179942279352086252333561040486786255600296757511360535675541344572944186057482560727820773420213451994727556767832998315154683766380094004480862762297914968287715928820593774014891786952822380558712158526757476297774524139304159325435913678928736053832001855411974484177783169633314869117919715161560522494879593004687452604105133659995421776951911105815673265610464368904715956478230160673375118970327138818388121676382473125621736606610493657105926940348397510963622537813129585144604500448708751051190122330428943187232498917713479265364126347521157904171994557130270549484088894641652906981840458829535363966619416470471906018215054401519984914908217580020784875074001046207127247926844680442689906976750825030821167596606589478070395623885783227723228167899198027322807884846272365354855206617286301369230679615131900045057712575775999231197308110696635460939424472900649724453107270455347007678244702216097545089818615905892278093120071900660779616394563581109529076026727858513353572832917987775433821612801812851575857496942192995135360276786059026462702072946728554357127641899958928441035083446771783843529690344111283202400247025974560008740054272455098117693747825133950574285953748873842327296735734955031979038373071875154244079125344983083212060240387143522275612612987426089721262455795026038552149511118782001824373297425191472573483269898438290098977644562293133398569699792987022080680344789656135574668512420140706244985270782810804290300173586598202103952116038587571415258099436600566687471302188192464318393220217653263033105134487788222051641936898388498139715365118289340832426776182573266161452142263837797048440841262839979163295853117697886929912640329923205448995415498534299789394742285250887489396220670705678360498516627020113468264044429238539999395401245796496627151551627113058841913967151538059467213058908572671087291282557014529001765741647712866765522746368975632961992144793775239931641610803596834348496003177759183976460001923309098147692567756070479318169296310427715939800836609040542945571605115898542985346384908697652673539373692983663934496913713450061913981834235739714567093830552247675032303385226873192728680486163409894254644858401211245108593876054489913116155616685733025048030859944804682789992192153726050596680568022111720212274205153690382138966840661040841612293035865420441282592912755397322053502817849118243601301026532225043971493258159345340309684006732350103588663028240702414968068439931521411920280587575919391499637095958408567380402381125767601544935693749292507644984702734717038142206796304236456554826304372402533397815634052518509490081513671457820230871040573381654843268428931541323871649874877323852782137586746290989096700632117993927057776381606195416126968355476660381852217431460113601586136672672721765374232218344599362211220270948229939552962878807487247286939815854782721604582051200311828895478414209277821265074571793187157882261458430426776955086738831751913226081412633206821970190998175231790310648702140938811083119283220229914567000595236903850526239500073750384328284434657419723970313031821133883474834742469534454285009935682832639513277859088270504853015757785754624281015613448276312208986593112429933872326666613920586755222960925922910828868354381979148955745534285707491085757851334698045609133299853473545321389562365184772605892183508475816660540471511689889879865952746148273497607451844948433976420519135853109649091741424319659023837975496179673187020914951696160306365220443004969824512955358534282742862787791572235106921597532804656048743665621320180360593959948732729120738170097896090027862671693657774678739486837323216041914755963270539021239905417343139697932640887431702318928818821521724868885122683189399244625556641789716654001893161919895842087622230173952756860669843243457742193037852132362603300240622426401835657655104965264177171042637079316592692942514781498752258122372620899802011201005812582636162367494634041428964500042389124602188525255865985984588513132914910906824071611204165106086878957724681077355808271894991400917252556558152276890632700694360474939303335941011529589992146024957266537267108722137382680737729271992533597184065253881663435385633609634079713576507922355735048351300967454220260865009242110392231581497328994591192149246532779455997773674045044918401537143306043680527564062071042014159676595873660057559906141291630433061175174421658555696635338042650571356833225053266114155773670863619074918253055824674061568369850761320927241992540227845139585905037622178297141225236662253352327037863860383803613658043615669946668851175155931521253762988199428060713913335314982765087611391463908086367604021527815776934693084952286816383162641997897879524955141262483025661114745672133519594073732764764453725118694949440878079218803942416889501493107837542675176598247960285002756748597075465164653885381508674428199491963758643957804810584988267973457018977811686454184108562517475727890139539368294115728486735049567784755214637292368788747847878825877680783175876090616388620310150752644023907659841144212803148608762557920207863324163394485513117860485438883562660088150746578897410679897119777707938651611920470329383269116731188500140501502206617093567353141899832748571326499760480668781028149016640558528696281147600467099493770704926688155026203562455104043392369317285778498330921884199907472049844257475019704420733104636872747140294780014463592873185348086739972010539988578323348875429274202025078329599880453305180325311946209945830757614010266208935443995799443531686953695792793001781955599474952354416107908615356634086320408620953207223298522717954373270612372567052192538910843321195640516374706513181059644889952892118368976530252440727971255645517418857574072968905326677084278396417096135104879100129816968916629399599174415990821631603813824598490300760392744749379052684111558562523651969020029284636361889261631451560561741922572052361380670947449543124956878279655507121613434107050360338524661186256256968625200709639406447019635805201892913974153851381537494855068540644143823205271500565385363409871608078545592762254827017678743660607923220658278780781160494280683012896674177112164908041751761072802139141789546975891237050065822625043027994909512116558647616419047146413122258487578894075661082990253686127306183832595639603758964668138334940019771768506927506601624604255122454523872744155767100363657151453042738223133678972530313464566489885150600004788037072543229081850719251478522564608724316781869123247792184093859179621155750833196787083935850804838642747706308965846480543234639503422094879851387185252771295469951371581574486984208244610274576265383959783421226473488750548265355464543853001545426844478063511375718697160494157914215466729015749924484029705439348107496714610022034929817772857571507581608855827726070016208895045691747030189121714007012427315452371811756644525712231633859588624962666043051951201396262831806448331372741031162039816323833865844215465546464101717623349865983085725597229733420314205057342578079799514251684400721988342929590388086837132250052625839526159837823959644711316198032609502437268568191301270601533153809058736696660239849022774738959592024812910895938779421420576550665969323392956278018804743083635974034258200528249732940168387588634129751489292303776831376054709463920542441654037509129932299288228424958279982136291562466330294417872893003055424183766590573815171101422522713659563430602053818887773635557448585612411717878807743419639578935071214080975259982155767276563647019946761416395644384724285905975624263259547818349133444386368536569077119613316254972887617964003597694915187717626177893895363160646104524506158021084066728086229984943465089275135788661095339515559224014956686060862924472725096506296589504759388406457326803901468818943265618394421816955642099643774676777175283769319069825425061239706992566630510677422114495117665056741052468829779825640174478976281115596155393133209461754844516595938297813570277583889087990024263839828862131593900653934988155089919274311165279585820830231813926338609626733775374042943313282698136149047455257370138274061088680948180024233458336943317637187986941378963640610244611657554097461714587414676504292018284841554212562454940513363541908952543793904568658299859618879007746307596942898113219973700031129906775099674282273895911451656430666517521499635376689992728314488179564852223507964767525480528820521443033483237910962502745321345428901573989510735111111629813903847625830457693791720228182822137990680637231363772257726334164828570365562867570512202017340571590695825847884529758100010195537227397799078368581006469647174319736866761501499206919928565496052555017902456436853504804533043937067791812338467944399895722978704564001917571596748275129202012764261864698610088387393737788523792959055048996438716755465217944374019953039463624360218849482395349540282522828645041681835223842127514119407936102388180375706523877916063872694339417927308155904559794091225496669056715961080294059862712378420350819602407792236523283114422667194562653960226840053458682154151737665049163858729599064296536091034183542510473493347151335037543297490872796486494265399770694003455449939998525988485288203990027827745739973072701947497870610889850988530430397053867381815306303491934878514281596663592494281623085764886984507438039040844538206836031905746162083403191926500640622497639781217229373516926797617141081861309166839242964830704735092834507459018718581279930389184477463718006023780196778928075266870219793463164708958339509159810192933399159967633025943882557342361639367914584385165242149496081763904109427235074472960162278620317025870317691641714920497033401711759250036876522154712921803604921407758807534058458312100006826294857763756901921969101620900164559372485965640287219538546112733964533829562336732204298045489393973530795603193437537255144609936867641014774274252805269181810602514111107970396905981859248701932263116440379275486520271910611169847953498569650136048759644245078518870299058502315241226487993894565921176656910642859012956289677491006087893760873064736563306369422253322692175387040383712933671198619723197391900523013682686711237479425915174349094277418428371210452875206566437175305699940600753227099265355909360412648996982300764572637961859841049933698126085869650125213377443669997529298316175653879577361594901159992823492740944033377437617702575419217080674185982579474986499697396944146097975264695631293630758966414907788788540580973518096064343196588319358631110048018981344512579219515195596036962863182735825297824426191861533152908435473506038370040488592359485550646919614737899484247298127720277484196409935243614634183563695611610158847733413764567061366057080668105173324245844417684870685901958042001745149682374625523401358585890770452496974961750750430793869897754777459579251052315227014780886655572003614441474834094760293075858796083123040210381124714054083121043400198467914774396359547709492071608669168997541432632559444151407593107130400962206198214961337127726203050287812011594439949269908875068731656534128053768223971372495887244200068324296014687973718489051223883762834455285489972347833157637507008451346517125426249600959455595403090955171531737839025273006927500663997309142242164131440430917902747829213916464915543101553434309050178822111280261142394626293856987988399236521617581009544066784920561141661523264746369450756923385533055963705987079812201205940500801911578144788239017590106389768478751279009333078346146269387519976055651143771362010124189187638667971732775931215471782380426573702671622911733985496839668191027515247527431172783282123711808590580194144427709884864566682696947624598545909628977621954504445099894888544833596753147105224054032163097727924193157508170973673758563788960517982570097871810198413770042452369019548200251845128861105476399091512607038874879599244840223607471255555514182719324103409929014763741663267241649224466535739267691094460934945685630891697371583918379158694309597564413230228210868157696579675401595357276743342600609029913983871433562489381306260720541344256600257027290554503189418317199156286870632308803090352083901131320923301519702623272181157771732727266890798980091267679134765888877554474884950699328088460543471663211557295030479425194168733182036427801270279290178880823897205819291324285380683030885767983583918496586376909107301753651253357037074937794625576228128587552349989169043546043919090086558451642757653664685356690780496453057049894052350877484625015033098595812416295767801527868389018353327803963840115794676005429054071474896482470781106801622910087166906518661621603036246665283452188377300705209857163144744670551505461843023772643974872246556641420997318811686564217272111722991377221603147060093785189481094260956156003277429611499391820653723708482291009761326823761049653108011141596341300770000154644855177310858773567982507321940059389732219018732926052683927820404108636466031642237032895770624954189187037736581804765504560117378302435593939901779538987974940044009544376123509796097636981768693986700174873741673407162211803463096770665745868656813348754294885925695072494231370801245706141759394200907338601465613674901884893223123323615004588113103550765027952534752618331186896723875099540811429823022396781671728980729358644646625354728344724613157150024575555133662188640273679177132179342947570344990507781712236638815828599724207608517584980646355800598275389941660459830743957924557361288474920565055511915184482517196279408473725010697296013833231012010021760657941106627052225145680912535334669794953852129093223882988030618844414163531758672691830820150300441410396857107953422461012194040272829405518838734200131072338011158877372827267002078691269168340725793815134740761557070393732675506047526291282637546463990311388170746636856512638496364977336040787597319573007598677303982172429876088918586734550176802966884455504064447933396283585763268902227120652199842631088185075149044782089512070597488223315931129818843860158624938211021688745011017630304866252509905226155530194189249598245411854833436999641685574794472635160166213994261982516746127899877996661148974465262468996040476766014805564633798155656214966164911437197858549548874935452902009620255697490047300678540797062932186625870357036374067866473224831426685130044673417281692220511317694741448131383210412937711615403589370554181728384644610474292956581184410702675223710932912652892686857824781303853876691897461784474581509755192943757383232409099888083193047143986435066166735642809349791291569018277932998741042082090463294160336005851156785980270154686039471809492266551638080654406260441475191476160387178007927178904061040108570359303757837952932608191452116193063810864926211245386728207070788993321664774474506562647839404961060451865837093618319642546518316773750323121536098982146269584196490269363491696990925810702263110547942217242160095941489691669033634560909694275059066365388164344094376968677983215892871697327459962046976933229926568501489750129848695526765409630443477661371202417676657650598133625883225025831751546547753079683005133904063194082787843369793168829699130009201173664831002858888094857725082742627521793508038346372009088778263796531058287142698432325636036607735917784153303948900081914472270092167428704534139674740936982770233979363267466677075756476352531793131548718086639107939121337587063727499095132640661056798801000172430214818204451246482974695603603619583297101746355786009966303661120075216587297425934894745773341819529792588806033955684535676142498108062076270563199532281093365514581611771948131456668625588928562972170962804810049494569438169057154326685497681203129656406409517660797942914362914437484535996452454998395515442257824805943107555080626072960585663309150364599183426824205734776043327645246384689407293091981650476613962272288196952006822269253119656304773655348050985015110648755058151849410239883576003502952807425646101811248074100739345254639364101051441297057704639562644073006205286581863747436244068239526049786140853230192468465465534029156263707364115967752836485443281095528088248803989111331432602747929236524787350276042871595167543632115404132772488532672179854902845414036814069924177121498784202409689296905024021116604891315404269421121942001965436234667477546217213353104693143992939389522021344799850465106591921252548264074198758204487444796758211833738658046308727026800038897455741804380867122652378825957631438903368074262287516220736030741378256688435846578836833395129926477069174631160478949322969835631113434581797573439639275386075180623026764977718934180420915135045413119378657299598619211361630187027181224844556998509710461714577463289432054304876007335305229109517586951510871853844280279555883831727705117093537916753081117516127078228062828136735187935839797020696593554005314955610730235885846788624515106421105864750568364481029584541258356990738710198769849698168415541769271468334239408218340232145741654399351333483687938487144099667361487337079859328629309577798014333637010518108023606823494341546231837870390802037000928926257235175948380359840001906034060984928609576370998878896254796306664219108919674486566548967109942775723793412325361035626947316055489117170310268561132204120228715143020854534219468811653077284339100830751626946422013813366130116489274937745610035232574288506227911756102878474609501294613494635738872216104328299736886592825623653909921290550257843201590419842145253520784319724924778396305613773504909797247196278804448962903222825691921264830629559754832248243309043028516048684944572207099594665551205367328103582205035730611700740220152564244252332771452105101616306209370449232958646223076591369880828364086799067125791984501188829777403732697626887779615124068422203200202046398448397078011170202354120357297250279006503218181422066551189755684603893837159031055259775600845604919125874279930129035951021163178774411797638429950422745126274714993777224509562782893579809436867185997255458446491582469239167242931714446294573748364484572869937156177592191464579476600904310647198487868311960700143029724229864922959221366248063378008790249533963094337558208707213357662575574575694531566242260347747260060532302680100499910111108308330956703985440115526384593351028910590809596701011538792980161335033224138232670630679959629263880276800267824648326123282649016944617753836834612645204021901613074029802102546413977925503206916570082708969104998141467732703351306157874455991146434508970391331148980610008589072026284987133958552367741956159633018165341315399813984541764229980078605103042526746189585973286373414528658110631078203110639728460770534797505387856249939109071294133604075684970306963243299908553529275826445349507468506434631792519589712941246431210279747069389765958975492105215885642622218727972542738842370727382679060919225018213505866085293102224401449865921143573462010591109735038715116427849533913772407131386287175886065834615803192775824779266903522486073606254704295602521378596347969867010590575374580888413558483900663777200243249795586122805947542038364727046138824514572986542054802746316865555622989935734431646686398939792453294070426678666101557455967473027479251940009021133989001656364870566421751207303904358182576160110499685313938711177131969013057164815421632746625602151332032886238488325592751526925602396481730725104461644853122986264807214692483739030099359582747482228476055751274283117736656311299633384525857370333359383456081063164394054458200454992237109632605478626510884408603929676199507868961595126930443354650882465446321521584155394440791284522504397639516453687330546777342721980340285487941239475225960144473937779889955480322640672967975626481854164076633426207910661542024254740483818097573612059026266665962254775004698997484466658923443480025266446656612473951532787165975753895995793078774776021225831212972292257735978639168182470024150351572887650784761841712431946040001044347239006459282201146888917257576035678470704884210137456658331982755982357758546089887310489532729864892279790706345270613365268416400750063555122164754182579665251813626777621764813118726121840949387335978791049008061715989332184865958065002443485747136662259093592332049513484941901664305966935192033802952410079355079486893853542871808050206845758104601767179499351728648345373037640456338314114019554156531287557450586549665256949031283553792609976650024427862884770741337232535532399704597563225024973202333155601464130073184811639319080268673052486545284789223494227482752137551450313410598933079945757001208569006873609204596523366131263820011926299489788773471641300648298004569239107702523469564675678830679878588098616467175138674131891484046530260957226307126384491776399677829032994062319267944578090204774599207659465576568864729284032718861724632165054578037352130978293679362454858988551990646760837975929949520052945465899602013004596653787859267113235398175906651121443992770013842523946481053805450197885189933878104376767964413116106286837195481494609512064090039729875405187358174795998621645664677284280162412388481554009438683168559591698492069541784972474523924717796131638454572653614880829584735019884068876588689253827493668859079854909821315507062510030065925447733648827884600421002193893823584983810981659840842471148179381265139479775090861130440911773795746824850276532815719368746324139142446827748649770010168511152161328478193613752250357200535774473722304858563310233017573496520129646906275082514617083131408450074156431787732668679543868648830389564835065028369651832197802879821885577691563094392228685517591809791184934408581645806347997537413777763530289432941077169668563303420271648643433652473572720752254213531271303787315800232371127519567103756379530339923540856538109663485799794753531270912112157610108162831416510928978335355088524407561373578274315140065408623611927064498187752250141073020989620455256406072120880205572961869208402173378465548147219103361169365730918381434843206977214981351584042125737537730507621566602298890211657245312150074955110141569585797638579235463625982824302383173580959553970229601607040659866566320508869860776825849643996759183446774481302259428078547618765253338388417398261793107983356136448891146625950095994545343792908359498678793521757525992444297676630139200541533264467040982565277965653784690841537089607328800895361914200597927758585073458232762002901072512836812188438667734084283645587580671307749742286896345484259193910720391614273967219793071558855475865879225116293450682576872836025410946055959266189934689586646560132251717499704261991168000124912179828490655762225360445957353297671754050078897587356248224293318947821524521216901569534463515988156863015764105350970163330323071512060675696777377173769249979309897910885168542086583897287089659851908016326561859242796327174352156245728433001936149803118948009623800553979536228034779309193035164583990723175242553954700522850515422298027275375856472005242728434302819387312054707933883165424517909867772021716748296137104124824985108270256093860514819927542051846161201652601893243074631254375732308345169160001747975136270726775858238511201133988159275202509960162380900124812203057494793876620954674041708856021921454560086449270721724007973820093257129567113786311265084893247383184350331568010880505003850889187775097776166612170611662391566835117223325201192664123905993536232913490680847926123636095596787241310727477939578304553310342109638924007126475616272909935277130346508207743251727027221713268577798957432416625803750121685944193757524010946901291632210945269423273083216447768510312947651281890756226368663734047452570702475434297040422791623769079132339806018024393964586824674577609354326138573896772662372828604632295905619282025418346045027088360388110925505979891588252889741309243761122000964905093664982289091400629474553455240543197381243388332891011244588454285322925485310467991153002168284202561184922956096292486210843889519802073959993874755454670072853902966317931001050716500494903148217785059006114148320839531287881284442470200410315519276779692244561133808768498839958168032590231524221737372381665348870293157726783713254419811251352159434032788367060917161633241735241993518354026921313090469758103488904893531310542128572987374018481850823049455572999425630978117486968092358912994347092381277864930375281188574090785198530930901205000610000156028066207804081979904565072604530059213820674784388647958943091786695280404147791204936222616029640526168737010129717511838099767901407028078195852841359410221703245821986881572515909487690869742047639045396161083605986775446077643089728937502623619815841807032336213972977881951810124392632550105927242443107900019067199438108514128376779676973276734011255871226459169462292582676315808191820011730707383685913409934455748895294924812866333820929440753304349113097840598615660340418680689121048280617761155176673145929460949324900044822240947302159522584692246373197099575432803754055808368771493419310059961669036113203927274407204342037747579769875812201436888529614506645662520664842440968189428534420450341961440455186711665937351038897735374823622079099547968055949051705669205227917103322248336936520621272251901414194177094739610851603885325881172968981001586137995821688928726127112080752129737466296029690316440646498699227051846362629947995478624891428384424271984364698341297778948626823408109952826742577467767942995412755966534564332383232069556542798110962263117590783474497035038855151272230141790580737281685848308021458755564970735690976830718868121518594112964499302620477852826984410259380459501831302572865353110679304515108418022307691461073987839403957346696565527075080899378019120630418493621106526621923990565969102936707711928859491578609660828062371838702811709890686192965252207864534414319757585030557465491846325662026708792487087909580401878931071187245606580948354020138829449206915124947336032992574970915967062568560919158263509325462801099555575041465157135846930457585906114635512687798368956174297968260612026394315138648585784493348805212779797554691641146639470270851985310778540255086028108989532272510631212915245647753437828718831783599757648850147679731707808011794820362065721330431723496940121456684959587964098659072084683751304914043266207142338240707811289879524286196462092513753372311510724831330737106057029469506005692421256089939723259827980893212538479944673148263993497665562303806807596479490944769508233342753280929860062981160821881980055355697279900233854766634755708419748279468201595419700138534128882537642881332109137974983733078525964752615550777572489661371274709489933901641197626711383321822747396325675135477010898864176801973332821725516136253026679320877216324732236720044374863593274670633422735057984385232189827612447539151891224241898470535900802194488923242784510275080655014412886976604911793391143727494090843065964751404889720129572849715633097708558986544573908051395330186493807273367986064563848667125151354585852356996416367725252367269957487967835129859841302183590256504878937961616737858100671870574343878762914442877348609791590896778390548562662411927288517991575122823497720207836620960387757740388343565983856544034258921754589337442273777013942049379288394953429065464388760549008263402270998390437808755671463557070252408261606959744290725703121151333038914143880466768187264758230419752212867483965521290407792092377511531524922654345881182239895175552980700368340370310219973551502436427599364211446979721040092256710740814920629565303091381181107921842434165590238843108361946239616005352178866831804944192667949715210467584413155219467292986896677181567316456480589108486400511916122098146105681347609769711539345842695760658725810818368074156322003194050414035711918322141724310218521824476524126910835892763459454935591103045405057227604853927109822456470836584711640419415305446960888660950700700049885177811605251651386678861199636670273584691308174417202446438149512942491048616094659315495456991819686206979500992733897979595883450416419421847217532708483183331248071760907933165981901068557807372567739845694158558156109136906420221169055421713001477985749441119452912953477829854794147274375124736048255543887860460411028351082530218633143886601116292546414374130074935518552212615590151343108050233119908122256942721660464223786869642890235663695706948816916298710628610012057050649080362182080614508880294796144086466172133313259229458702579600437844461018916388964920510424337713680866500752149788148523619911212143995919946616961346219494210419277029067773947220308218570066745746564431489234103117320920915127053958651569442964820909038066601728276599848794302603586983731420804568921462522611402604770603727694434007665395228744390548863055949123327457624992094231017213902318374246495339337604336912889088483256295955375716022267968336437318723352865364707847883675983304465148572941102229713589192940592345637480286004933740130371111770594798723075088183172788612315053333527134104250929365292630021062020683661476984651506009768308469172632959830876304270675003977129073689713336849953367775203731007825044871138297852404186510259115366237065678781787317715599256949329235111334688594339722690530983218278070539507201273888656340502630389165329172282872487855335117127613160847095445564395622803130533725852080918289692434026747742523311217160130799012969048949238896453492595257111200870688939736792858164913006202003784792331679473870852501123553983850904678022907713722191394537940223171811793876315382069638161684899477645990651821245400107882613624963953193240928342894558879410358908964788603806140169774555967725266114597943129633456476538742318686859311168843121641880715459801102126398736822253070220967989145615221597303244039297928291700332757003626196579187692897181895372941940784006023569092572439965754476235868242879464159931746913088733838075512662410647048876174706900395518048871827602242812290073448555804438634515685795747348151462158055344844276762151854746843657389109415577491245199183340074294126621185060664639128715492998812767535796612777740957465755996791489270924780619354665980022239018091884696361330358539256445457656207559895174140849222065059899052768245313602720605687242494847991823893855875917121546631856911309067007044727374101857375127054517915018066802264912712104321615532129604147799132661269618244263074829734235719742029389044353397216244158762307393247087632103128129513097983909270580864592061804213359818303447653586845128107640386275024940833446296241818695160958714816521378839669322395775319078970835483549923004069120199806800219997076290637231465138217425710692534432040863054634079556863281717382932737651472364851675050237626852896913483205243800732369050833629598377002937335401872545293285092012812325362128456016479249685152543347314810774447245180280038614617531732745192217238556515149129082381163697108259508809519050103996951863832664942080725239788700309244106725835836562338968644602311530323511572751634018737654984506673068157742460296629327290834282366761628491723844813981830309077029482885869021731494317315427834736785904008745331365515362344407395923387410584329753510041998698518268460275923718996288191403776223188222890468573674743659438321746497619929653619717632615990214367150881583137444401816988172401616696316266590734984407158489816961852421327015272348959300642259564356410464314560957314799083482292247410854029432063781068545531378600495692621102337280190842477439377843580069800142283597665042107367288748398831924863654047451625849267364302796137675143480573605389401276412645970708357733855739559510470967976808681361467339382975766755186462008435383663009022045637811009367130497232876560838303193836849719765747358815978451108478654684973524871187520738097099521935820663880711899012236616449551394059693190322452223143266298038953294764688503763734036539762110224664030696226164105390690780655282540511902811644794247980632097830203038855846411720317254014320596755868238965634867712064387473518903589256703343938839241085585874921510966521041846070106326385480300674148285055007348456462819096360632411545371013301211806428759782808208002108556852487562909884142558087345950531307219823106463847126198620740435241234785169332469260733854682739679800501639526906989683353873700492079329222550946143342044005538092493694847990031435978689484875350035742821804075424821953161639039078078346438043388664221425816451514810673034726814268434851445222724392987394313444707209689532269628411078900767786798753535805746680141960083313603825494350700237936145531271799311105363070565360136712761629288409353205441738036476777386584006980952822083632894788030623818615049780239659268656432427877756671098912839585565377687050980757592865896763611653216452532882882229914529234618936645785135671056243639401194108122744822469795393328442858457411571019704958089558033276781262656615237306254649667366103960590506582219465339077485933116922019376474275325530442111673879302086956667353222253140127960034970381674815445328883502255565373318369108084040385568947886507039996443287088389845809767767971715701008838849776744606770473487645254730131108401017640590925786403288296485912515464674670690976506823277406392593654791750468953587143872977116028281507527265895829992524386789281290817787706151582287392461179631868719388794613565151567770577625726061848596693551899798419893269532063207584549216834688966311502679835510691121909913563027490974544295078317720685245427310804470149494919171933339132528021993935368934577992560718358034649658718921116306926382161596501069237897550320577627720149794937289309606203071754233579895997502856492618435736499952280995912470468326472013283147614492304579486130517595626806735042259199490364552837758812164937915289151963858038899737960142774908856531218444240500929892691087109549957159241598397505609261091910600348905300995730068118293204543611524539965043588574045665738701794334708157342791851214305805753834159926680359997036190207148310196761624386364194053795693738247889199716609412501054765128660071261409675286873881295502539407438952178648628354563413580340491453313119879806123690432680649134997636083948953601066285420284536584353237254005358278537791575729746099453181649507173293984581632997577474506235636943542457856293889111297755051745130624627585778855672620797571770152112575725579725661157058351761748690166853002903514852032751973142516045502514827495441714906326623877863229311063824673306629560160000172389720710748315008420488484967131648722963455013144012565222823948074373151457139933948550198010847371412992697111068083530992546096020610089105881368011563220368614567010342198646775670305844428628924124547567557446996348707347993499607873056182334667132724571891211468432942948906713533415283299133959537988988184403127788012718836720199978913586993446746517130251261373036301321702118652808066914493329182526468738618635417268606853057175045553340155552396639820245643109015895548711595032179343493858053981054908675331654488283523236005630626078663548972906300140489764168998679282657511761031597123033422599795009143165530806538793022587857369097152815572213804019603515355383727393487429832054515194807120589521400312918145146909251068329370045100541558933483161761345009387123422939724317009773639163265312229752416956257295488293036195444482208011026125910485485432576216428195512684599896564354961789425683575460110672152214512387323143599916117446613351755268942769700614040892614745286051595097385923928115242106886867856491923212344014169839666199855486456278467405675371582983420157346981477829925816760797993656866206788711402801138343627487457098270857528989247708908330882408733766023231078221102959840853958289989784506213992693718248354683077955102819577341164521436863663805152041758758442346512571801620252551010502646287099580536346672722923803310936451774447604839437403427428683493460244504167560670651138760861286761737474888777561800842411989615371017651603948875695299997851926453947895966233440255915412095835273204777830678587274309382011406199128011486343511638008650005586733625753109458149202293947890132151939282763600014986436396521539834830854579565404442429215870050315814438841903748900352960492539750870777561387025739383843139034376209500964292804949970918500701076920465569019808663324950092892123732759140500731076959793698645380633435575965701764932241652480768703416539206247924483228818296572700298313893850136982679446239637529715070409198173382884112804225135675683154577964622077797003631225224369627433803141959665015896641323354747418977303820459772826103372757946918336547758638297719348315344473638791207823174767972699450726752003753407839060041671780647760602244771591221027325639187162408100215729147586353150033393318380681063217860748519452895286155165762201034337759433517144395629171216166367796054825574766626830306955405003934947972173593705592105353883485111559823602798863475529684107090676869123316936452241404413487493161298306502801386293924683850709406302310708169073135551044361243089746087373891595114654298350359787353976257850580569479718471109012151805330695268275159236328055272624601627895947294885459376547876674192935138880008001802231689021355421123877164502598033869260683405393283774794990967624767633484065450123271898550813977948850372297161005880220907241848750503078479023398572046647428896939269478663715091571820895211468026974598105623941706666773812381607650138059771934036435327304708490387471385404213159161407151828521773340758977161144671742251341250380498158157360443189597571244538641145567216308202650194527726285207781810705131517064405786907467522220142000428321615824425167042782503771959773284820675949749618468652983337827998168387456313679783153644695347697280790946455579992036005588086007254233338348057576739245219615445023550811557357423241402237362570842905949593898655223782622325449760161543836054455888814893618247189965186853948868308205407998471248026245251574601115296528763982238893548187549737925787501328487823036060152620532932180731456275197604351340454148263496338997751925128505006737874748740324225868954372293465588511108898163547578934077575448484598427415114949039209483692260727340246869840722130705749108956672100014153655604418032695617683122215635237697968017240994130094037944755339434537788499029698442553938365527790415148293145173199792083196179331321981541751268423217802428211676748538534862359680356097865987075067944361903420971940829015886062231737629705468834490465838668309029861016366953478873073750345944593022087577791651452932351715069998189984868616022583803427235425702521107733377136406849447340465406419377171747815962838767813664937662858635189794218694708313024783241804906668435011113726522232753412726314075057529632711361208453308274176102387577022761505984501951736850911938271130417110013621158648430669147448409625610074683631788802383754784327488219237393058152594191445376099607249348776324371971198792597749146930089198545574709375480186724731388017171631037472379258375848505481900582533758872753059832186441538345356414591276161112873885569726188996268658946666411660012376336493875024047287758857486277558131913841067617362619759636444942855700320870360032001772917580793912970104123773516846412046021206198539190844042818328895518871800850875831276846211937112368565194055389194430583217698025745315493051470418767841027603025484881220594239549271439907745057060491058639842043835042948926379023558114040265833201756655837284604250459306374144446489114870154712075559164807464470511105722855969991327024446013960464285433543130227954928948278518531224304087674884307380933019180447042096426782486305962135959130942154070657794166780537847317675536802764662677318652933141633473714502953904995690250569783589574497712034240366796479890979363778707609805837061737016417733179097993581099874369524009893833082809949193513211897739226068134336039972250042378280458685127363208504015599879693517429211663265187511156132174023249209666336983408285287849523827187144696577535778183757556679378835598628942878141480692076960193542812988218465227363153037983869845368509012161748172465406221268176079863625681821938386121478730078439177949654245441500357706589142025481137831939893359669018495927762874454716486544677358338439862139485867643026345330494402424893082935210199726923349501389133104625104166358465494899852481664035565009000710771461005253636129593838227417594202750703949925567521630965402792231608239919385739128331248320169172928918545956338813294868703226459298265060546625245931307102227078728807584060449752772081583452217225785462637650637531284293685538559287420221196458946182689862564965721383423309872735450169208778076822062626553028963675689728458438856579257493835578036595488059724527421606245819123001179678074658340449206253449574697808313397220164043962425115636295804878215044186094011125682389231894005100836203735398445703197965665599868015936301535042813884507300497413655198217101624686951946123356047443593185352144222374881524952088768149178649036715925939009089186912614279268568279481302126442670836233135262561064903242122130236973934608987571308774864310185569853529561206952043727201221910637881774919466771990220881719290415220947214031831456754392116135608400722626582018310627982437964659936820648554737613617703436024778419569521262290700241124504726017924919284412895300570567359084075582339438036522637456198066856475823904637361843231246304040460059365726500045729150426537670598971327862306245581760222372149727309540399585345139300138137852608750546311875327033710682955161486932421646455209176436641235757762562221146948175606151470775455430212526897200638714747984543098569837026469701865640156532051069177441075780504630152896133078382681663447752449235766628018459553479987452163030854579412612240593573285946695847256021473757981521579617666046951999901269363013940807041143814225109294463282732733521213882866069414619493034667158411552946806720547676589877842538445387722246719108154407446374063055651304662754963429955180998413342464140438169428495209625492236583921571690919849884803492222752328782514789818138635771055554567622114051743986523497855024653536699744270931916370399865028959932847804598610246111808481019983588895557318163082906409733798186235361868391229936554311615156330099315966596440325262362515005072691987049139669789927283387853802304194102279297793584626605293954581530848232992253554151397626953738526451066360712912537453752054854441282031204475970567287757940818196862104867529682263080582330779270023221383815853668237702873574195172484904709952944967161510147491281021971169914546319832066208345215032027816210338399851610122204771612550539895644963899805778672404194553949468931990667704013501051529682107120164676953404681808236561260407018736118630078050852271487058034243096109449281710175199743716086174469857143779238709933838623352174916845163824000078059387950951978608663505334801817416864730894432779708915558275735011082216078113886659744106006921042680635115314315730746350299715681670916066756992234344806904172695861803558634522833219349432245919100491038228473341992120789676753788574083418551674551776638467013342770343168934841408453567666212368174296318349875984469984823348051280033348606164416645457422754000769033703010487521960106637949133499403308726367206987948764423719628954609815545691741549581221748594057163307335087583510291500404272288346660603615581927589053017120278762571323724701053467146195882050573134580644138605516996186287463242552537637683196649765110409704813567834912825642868896614157850033335029673341526432887950082003682674595538976105492674735878869139924211724381987007205763258101729754148959356857696790005496896801531974649821822346787566186684974116945354601578217565221904929276782708664418683859843874679669766361018028455309885908309641120836333347627637568428714836776943164886825328377122696226492208484234094446108567532427996980244483858071765278647316161303331252811237186926657446679826524751354903306918452462657470578973850397203134745605276533160246832547018430317592345564893126206397578522913731847185507807085368818619250032407694430139512118228204815525018036538644374034586202751688343793181471183473492481734327977628502506672197651373270636225271707795689806228439873966358130493274142479372956249435892045385131037552329021556846817487131090824518668218960733747669274541031819615439152587713346719340351622498676675610378300114960761416440203842941657428458921963263160925020357783430281341303219997038009932556505846151775999729355957756641039323380579065810683355967562734966103606976528537877722675960270820181741585714404003475305443455591234874726980148763632606068722378840065763162365499870801165746769846978205848126302969549245058122013927168351518376780749574907161365660237589344725439267472596885033776463727285455993644425805016118495648889240621734792229632705454824355828353794601597810018171909050451043138382391607282856149146217153022803904990511176572356162011247127387279158769259557394856304904806832916108470911475135269420103345438179212420802149609163352305694787237910697400971250797197863653695976366677983620297560106690873023633900647910866316574162285454352761870519277830317414092611432631923112217126728987290204007289144320327175875282830470465303678666203598271200108192913997654991915296684647185110224358124306649924251195837967952199369605635718957644618541504734800217392150807045477154523423895633205205670936334539337699835224494928106343163346770336469257949527511872179265097804367272373700065380663791456537399613358615958368287443965737827104218635163950783820812110073260354868619688403625289346088691706321040260387628474640881346576933334818260856751284452427785102306681867907065289016314907130360491960569987401353460708093558773042286802336804389111819498163457715882821127821895405584840419589458375673638565588670870401157363347081038161384927541122444310506245480848721020362598328931254979790442511126516610694069378298606507916493672864116034138801510731701313145077377447701068261635562788167308342118575094089815612901458798369205013021043490757995057695365565821080038096465068661798669871357009916691457900240178531470246173943589657260194273637536750315661176984150853363315584265534204948642311150412916255075701400909041824835450277139021254100081971543856503610786680549717741545637732657504602711583199121130728831898872066842116387389446710870217352375186304408132892776208080397173347793707981194096462718178637252878741597760391055432287714087544987894340226468370619599001133166729143753119612366789552066442481356043020184295146392980932716038710612460186036263753860891211716337948347774209218278027044133763465880909170735406873927673877132385759966144650086635966283411705635201263956550503850692954655064770106135757402896247409826971624167605910899789055060836058456181933612970239365348026342825490498783826611254753319803628898338324805925055256487435252810384051938031750032699246309468905688500809571862981920311772924189501831359650453973967293589439947939946137083470069975119470464519794627877066134755052992631174517594230183533623770588611550613543453457381398323169282966787315765539690832615675115459253135776070111384036446552829371617527753353413202600394022213467700360300751616966312711270863593715821425440102262543084179071348900944840945654226594112308642052498319030404114443646488646166015246326403208846111775873912907965715958766333348969569929548403645384722968430920216914801365433364589799535421262824839791087380026900830169870331664001173015938551531047557568622798140682282124162767864116378759187710161753887974508374772297118569261328437183848018746628956545812591598067774218731371900755847520306800712569232174622326955851173194316000602901748588437348502550331377355419817183758198177002105050407281166124861440936928571477337701213209177504357514772251099669862550630449371509900787233088741739296539023869428357031248864240480680473714571513248996418356714948018019208968551159269860144235916149733537436021821764667483119496385917718881259009095011767268577711116649594772546086175321869074174797170571430843262312076174596047594440119026404708843038510788446360546461693676304420363422914020738555169816899791674566258249360374277014905279850974860444119773772179118223935579902472941120794139491160802144553630726289187022076728391333914363618832392170939693800505899417580975747755585080593849194716350864502040512026872192749505843818677927759937088460567027509938792525294408902761885280110123138162350576704813071487950582826775654364611477086795071008653672749078570038527995399632730381534789443269401671770396729323659829710344553557016282082813580363380243144451136859724033536908535300396217362983502132794375853320930864291860622180829184837773821017831557804217669545276664699071700248083269822112555141448316478228890093330632891332103728088919494874073961041129330179175972709897395528076137905952129242428030830355161316437054253617371479330075993754906386083648347113491226673300080301522279187920707145942081141293493620619715415812301446351762946754491931522632726241331688285311087693733650353156413487278625181668529865966551367652396337124508080500352777092087765820072846812916864564423324591152795478924458265728030848302485756185510686262944673125020294680350348561491338246013795977081589455895112545473782799157235496616296020158186239378993092527400915271335395364847252412767035361255700159139899311252488605450529994523945399736238298693273519521190721080704453365623061907661189883053417955807427449796280820034086477112061794585936431239637770070556690944517559746748131121442183874245283444128647396104201856135101400658244757261915286578760719826371435765117356190922901014582645184955796715353954127975662905092686631223000789293815294557334361729680936835158154305139837991808852513932340120188798121271698922751051325878296999427067820149595628742800705284533400878059364873986400297760821281314272535730466006651665183250247643516882884117469084387010595589130956793420439113275981091777667801429297203795212741686395759540902231950006016763777283033977050779122987803734602620650210320176920915637314965514045336181089641970896816524351446398607145165664545117476889785995886455404049402583007060034051425494025574566586200946873622618974812542054719639987865115757665242118021716090392057905779611935641955589571482738728823019321367320771892098616110707892144064121148237398271962006154870959008149771928636820342762122356748094488358267169817092527870275809206751887860861715678900835929129234374142082946833907033207473995563950876294349800512325231293703267552603564868721017637329795749462039411038337142974512348203631467602895651077272701924126180735353866622518501914316698664055003270213373237795655238628670016984275348287696281051952982620536940151389170313562082316694382904637450969436992084689160655909396592528966857557345816768333234734657084173867031476530221663144286099318017243600669636174737561694977658708157845336046397305781927598817143212716086186634503844811388200821772198974845027364352823392336738203010525640971160661702786932028708081265594306558241597330678799549776609759717885080157110986787294814197307377292576767679314340419859422408961320306342510573185755572604492329841150422730047141914759102589327049378368683233020833612354955108745298186710383578345956830687849334349522944658922563904421279836887925765956452788326727416785489166684234740006369758780591254650993424913031380451776286891977185996402955267812352491640535961689427308010282282294114338087206515815262739701143563741274209287246290845676691165909793713729575821535728000302891770736471660917235962337000024075121347966555823734481027489187232664688804609484450272021857744584778742213826543122850108277130556721396664569766851396460370207420993988225192333818077594885255927447502268541009846675368076131424718291710870172389749325498354045404363359421310416695304345873218222789590764476935830736273668994022074781845456673524965882539722044254615837897269555736710581701860854954357364781087543880303224480483456134407684208210462985197468075306058796218990063469446083027271789614868554217949331066206453419995152895816732261135406337879799075920227704565538911409828373960179775998145910107122266673981413381011062053561878696853689845233819084093968402278252357639535415565565907385570206810425639331609230247361967117352829036955075465147570966587589673194780938459964774956978981580378368327724028475155212606234103096390669742803976441720445049597409413612035568113409981865368874283905448060830884756417397716352786661423643113143987541221319516746533517049289661998353842783661676765408151594193070799708301278112908923952291313422549364973708502238663559054630952961983624097225393136772624284208705557944969102822544547428139892839160408026582457639788160053078613373451389776878524356462585843928080353758236428537751595496356066025910903108687013845134084190049464899084271351443827814324350826028591442726884465507799170414057328302500579885656501448669497956989118944214754483710665012221651844492741867125638886488507366120911600924865509967267037437888841263319477905227030655660616809930281268895371667268190022536430912348756580373867557309172108777997410000929754978612659851308739575661146688504502439499536985951487218807855712811558426224076753810997429717870426722898108724991002162753252253299085407010719425073397214124746156673944037822463900836675622770926451132234499036472992005753814905026394573628618102748786951525407468657001469869479902211291564702755166177050925428509787689185413010430067095678033256719399671187401145795437755550272062773151331179576125449829547942293370500407834440981932624930060725590670131673620637387826746992488462414587483720032995099812813893045288855994801955878653033375623144556989023617603004154748936781007927105956838822966850786051013205035361239042845152786397647389932915873542470601284129001152595244618692922061341678010534467513312170520912878743477893923464829386430747261822900813477936876914761050176992433495045317794528192524819443588741560524654455812376839283790913198140478678377738850625084781569467623072481133655532197707550135264234498687958102817985187325049556485891313561346062532184677143550709639503937285863750238262991084341243639309665048290469666900136388214593351859990865984682629611845753829032377489308248457552871491212317243329234229953058229154401542018458258978134967269986888010078802610257280370361914963158624703745810587348636596566660197501830255282493539763782857830791637623794697672911059231292888164328490626846051293036338993126204947438409027435354815200160578050748886727198586875527367505974413465358788987351737437649509037615451932899205930315545528155712420824092562749841062496072046241752276763142411486923700137033843601892604437182033136722456526857738472566523811855545542783667264774243086252700554934372145464027961101845955484452105983702895313287155602804331053490599681099951636371467980880023859787445507623770608388935432595247302449487517540713679448523494849251565524571801930973473811388722761857330118365526707038822229628609678946229687853169337130600388956209732097318603657052673312370244278262232008321510755338324415942799625587079110716361134872643982546194427882667338773102391891999904473669448611266996682901083236619015404801108432349686555113827728888916480683947809436545342441679230384946089555515721689915113303348705521636406028534767445123388028864518029511287669009517457846137517548566991120545842010438411096891746911560787669363451395823391743367232590654948633777583042379218182641299786059734485668373478445998657374088484467602538042345390594337161469796605035115793015571471308338932126016986887242687977206045710584752114180193628646299702712277766887059862413986161417556239265448640788371710258044901433875261224498068438081781969167453283781184623763605620152882475328201657533816571192893919442538870305643589699149146202999908525256059769302248319332414255817233712475174782738516355407054439105615919915451463654835769310597451981812878521799266655818989729094722814684136588469941771571634297517542084421068619940131156065973924134524196197359695419790363817974576890413039689757571815205958370740656814557151159755912498073524877759783544682710507508843607072914662556806878763868603246398293504903754325584821142034262105694234048605067107835659065242540556299367273344693449574708270710056068390023273428727153214857891987545768138625228889640520817531871168440040979077568741770673115693961536648887943198698821416916117677179773041662255590322575448865118997006667466179292035069717480909184699511763873361082830355789102320259894604450998201716581545985412000471914895009854593571250514095424062442085841511450025228592237242000832341601646227818140250827964338096534838172136080177450934384724600426948866124051582952457687749692259638356153152947782443992687105551958970995348307984959398430963918173416875662772691067066147179963532487305811777784543175755102395752612639128374397674894100902982604309977181538918043412495133114145805983707975498124798695073410807670169379893177451298110458295632430719976143534167269040123814269335981660606691595630835718708702229207769444603185775008792636457549671919911047047494208512916006962419405428731410843134329446137911632935164185131575748117839650751650525131910344610865828012733401058362008669954100381444847564407640146391392057488161239779579944973778196895487360276769648343037587074496881257425669583177433488232363651175282957118793654695696757932038362695765351091454036180551612701766429795872375454700524460279092689356391009715007337980464932200925703639696095235491770837738798029352231334236015020081424008578070222075807376069734938102463196126488200170046376578291034090237877134452251456754788790752359255440930265220982437821789446629492647251474609372250650384961948314210927583461370484839141326616369353680555541929615146090196060731303284149176251116701853569635692627741766573791670536918396479507046579122196871339115358400928251883201099181845463841594766446744554655407831645511102016721698896637255128008737517159317348955316299599127291987010807127558960518984830570525089390097758720334835128627187418966363483124819232036698155775300397524005433372253046208104966683386664985233855812851176526118575682834975727110530440593518782191812933712708882522914512181220618930975639718092467256530362561404856867719798176604908198945163061991243494377992121572437578719564106284523086283893268853429744124752238295170263320415050400220268031598427006775233235978407410665398136393966126614431917345911652627396192924608842286001144406050736441507510057841497308884824954004203419922560536867398678500625508021776475698536527899697057812597490004736738521786983174962384480080817084700640252494200745916611305710300889598699190462965376709731274947206758068863859624158904760759045045432390414846172750414032174723418688783131828152928854908048544119883587286826172223679278003357270573385250714075065248608860793021699501861242140821610967113037682625889231436900858959683874889872918942936289534721378517776448471083479430306240602480427784930522251264906152245457355577546824019977098059598259046993845200924829302231753551529995697463636120580128526376068016210705412725827393937367349848471228440342906765555948990776010853665513906766643233623771245401709162299703595946030202121227374401931259606655484799104466430827097752532227778249661517631816252601071473174228321372043182293831841438394447322675080373236627365846355029906655356544919082643277849414080860251493133889184854447302507393586898475322519362750130756705125096460252678981327507824451044768664504047960697893040362030399239457528631583584748989542946682903065276221312340139698280322306263058226889866074290455764515694926532137923474497257723457990613767949008125582049555935228813127225770167394173671146562388114509049692026405666037463156908658534715997172608863649952826251840316661091919072746295288752131607211026327649816780508351897944881689840935704264240716382378073211863073652605717255535925295332401476438131025922911253397967068577916187858822450549862673482201066755826588633030287832211424621526254307134876007740025893647814415979024185267046088768193008830866460124141263870754363547200726988263539718167369182625831498497839896377154348756339616100302583079261964640684739907304145320614772298846309465030351213887922576695220566026571810205450015274666337313553594980628559252767174786555864038362637604764353691760124204586614137333616338492144837051377666723331446324522953049997627972387247003857198948726181496309420295782867971651191902663458972836127740130229488149515306717275411025863777627247065120279482070326217798800892597532514326592505618045430676452101633967963463210924824028267328449463077437384371808219870933223963800468540420872314079504331665517471401290804539096834743121401065501376862292561703711236832608716771834444433658467281439805991974273655281576644611229196997791767398249842824346013980265437650303969830680916465836903281720245153555934958379075370151992233222399707447983792415886553172013477733539614899883098908222641990752924933554067169923250263348432240598315754213962293220913429119750725054599935089922544754890486390089811222808254156820201659453189036084061485304319114571675723350299497914846473441420416479487448999853536093187184856206486800911082712822022496605208402910460784346804975659232114021747737650856766869629269711279878434672488089539105274893407118918909417698815137397949547310151373306291924643510462581561332051820267869344858926199254422878350940539798486540785979358346213394527469343705320546593596058698957380489472130191820833809258525740262443068755811255442260553243978440341135387212898296713673283287696162279696748733368485870448393934448087186981894697187406218656040350677319416736415831549621654156178037704852214429449108751784833911858239383550418289939126107125481093920725819173537167977086648897433168424005378887566605757291192262806796011994374219242120963481248175300744842047858493801771835377207019098447315230296437433315375299705790078731677870349361524000426755299959598363839920433650117324047204592167253744314539588440284677459686469298061300090283659086506293955917943821760288083424496654040776290040329393908572772189856934682988828732958809520394613999529128432629208150581311815082095104950780582364096272353373412806204616395100640229945059819024987150794229511594953937739010380680817830154523457246007769756737762007025021954375423107958477945561707600298330831111579106732776220785925077193024526121142233155723548697358740834305931848293680493184674267156084056794191379570362653096494858882123012673544165014416027229173506839716544677809221185902667127518537714621085640584252905970232451547051935574448196871274468232147616984750462072950825838923674386723807920935321059380198608116375070837681559555018804378302257287970590184463790256434035908678719518554655197534952141324378009582656599410112097493695566484184418410697565569582735072373792538758608303406894135599133441292372349114330416846290095627773745202199986592656680174169714704146300801439693279292726471007362101042808491509750323099110416546422430181324197996656703384929235421360509556164421130303831681210156986699284155565762570379121343791736001618144579036398521663262097013221139125293852616195983724964866977954450208287670613176464715727207614417070926258618955482670414194804539919763565916485890475517531936641057500968631338464220457271558988356306601276795821519937292575368018411505870860994293035988096552378286549145193721220851188259759153771870743087484728769066803430310037065492256803142690912557678007361101144655970875909787874844607859476986486686520169939666545935080467968124393327243194200485995555511328340488639543196327724706389545245054583666314905819936160150146022280485540067545087459978473009223769804677921115284670126182361813824437763289330236010790682872171711931744434090421650331142165196904560771674594844650322390091569747734911258582977416258475823466959327329364622621876449782245579623666614150221093044664102665324755995306098730705650691454422372378264994157724430602066098434941666489290243905283085704426412666654310011402962622847776650039415782373272992649486776842617703810858544572398771942066877454278569635178040054237196085400528643758457382613077360921550916291921055254903422416857984726186340618128411951238040917985377668274207182680008321978078428916694390499597707406907180343883992724204384533471559237941162989404650940241337492768129253338309012258812313551199203143349617044548069296188389362417689454125663000647535626123499354450633429058771313187448384820403431617604159214447132857644273619864727937199911422219442088098012335645757389587809211224746012592165673346704442692932178024027342682606500533170952348982988850184163204309499657109972785354851585207294691864456204987637502323639514019069353439718644366542663227476635889007786406848543459599818461025750168703446430896360404801957380375812719241204058152765603096396543014610500365828610190206950359538509448169731095673909916159323543416135472452389892491476968177311654017608763561302609859896932511801976387621684505115096390633663560024566485531556483531460408833660841636410972730867662498817453499364183737370374551909988888343806436324748680305601067498108025460723442931274771551245267114572823381827102057898915707954796293823469921225613010275023534567613295914036162112114116877625480319379192476137745515336319042068958196081837422040332450705575985518711906336649349014334172145627475233460411584606966915182782187030158519968150406978716930025961068020155260943932195046175459126850757582872487334088799100794568909937643480581615275393294094041666626345500643942025507869787487682146609915356257403696733915405851709798897982995100432359519222176409616362378303645332421101122550417703493648336911152650978747542943797225894595489137095221285216181225857167951526637039797985867106783557455516287248023102059192689361465746653090544477587349631171638017587642265411989224932381032681740747076897682616244819902004110329878889818992986060450718082208526944513979992951996004038582038439930766532881235484621988429513181383346755347886977246744011828134809195338556405471365437354047246818335402956166942119495940478193673021257311173127374876200451614740705101433067125841344542237905956516846814722468143305368086435878145611079295858730646641095687525969117339805205369411780135247304654045933093261930121931458154881772150478803180037309522378048420101803822363686253109840125101508847982977978909348218982074324135196407650108930021533290003762101181565456573566172014399375036679993629983116735744953164129774289052233238439940915660659461661329761023408435277278155858413528523600832901381551306647351598507839111200971251834424735438409081448735472512140457093929972345335394265714209370146235323949579627638598383868728304633976567077831021545569381245739977360237498835868283881482083044103916311174070387631627328642651158591074430557623744678865586640233503572849093818355534441466719417985473840411465216207962128774292873019966760644812263839249633690514701360759168018608930422825296296237194229023645176628183016677355080100350617844341986627994960539846682790079124221597551895291093270778941524175494374094371432801812095534709011500260406549766231572929593234098388716611413168766873708817447037699075988129788351724141575441584522685210522893520639221538357188868793206371121587138379774627055823218354172280853398443485403740447412034618763470249186317446357049539265200642714532290709733006943918310525858187378649767964128828310374829494173385462307503273398069823126652627124968953143981498056103075488034347985114373577467494626785007064176999546747138161753860526632482164970487362591835633826977541713603269080101921376577009758233797681941457027081217072799435741920446805884724300808902344072836495685703290916716543014558421882428705091187527094434268575799518217334455517666712693107308978057921911108472151666611366167419640693150627127034477706162831632086023035926996881137220705963240528607466681667975392808898377136433752374139436751015139643540410585205652880527954911436463287895687493860249028212462444269245642902125721854965317073361694632998521639476653584389843308697365342943416505330583992815262353112739457009197657895586621222796629926211973590962762568540548719183145972217235477758305025655354903269852949363496203842267952908695657609301104683879573701810354562222296400814693042112676365054605835753632456178183724684182277215465261801638686712558392071701907520944399100676861737140435966594746580819294907112298680955617017970066417715190615116031931163347067145197430008391839781497164902526872161295665535845423778844671321338898162867542550520019229207965870313604864554543722853905607331866821360331725103481856075014423507807258852309915271345336656399803101174264717462919789388937981515358517989584711142513844879177427488525123002128332446470573140133187439176282176377081927689757969461523141758988505296075350570043933691169478077453591202623491412278057428938836036794720051399318514144610385840214993981692761104435969024502987231859490277306310360623713032718016510022240209501332102294665888085294575045229793447740538405853473323160286242683315604676667343983171650923119824264423471943824894447416251006523003096673588134323546196563889500271915205654510467609863760796407088181978086623752864473783560327787256924307808964405373413641977570103767478513191724756124944064159096770000690639569485172398877043840715742810779764789889180032327271270837376816083613700662555342795738590303468101799269820093997630435072201366812886105880727878869492277677988720942624370761461898426925976353024840019091862030390825784803835749308320848747095028197570790847333150811095115739772750176324186180231952417368092651691618189782122534016757378922304144862110844952821405559002248737658384815190335867882161529812003132457383484832600000397320421390497175014068433065988291972692283297856118901171386761993815317070868770681916847051447333262092734596619164542345974469814979683999595025099690585468790965200778997874388438671582963254079007561234944572984445518119234191606764506810447383930104671987952541077324069080696683899935212521610286602490865090461028662372090552370269532589855125954561458225364658671782212458322710976466300370904759912638163854106407082982335705576791016440824884643833782445103343602594504615243083783799093491347935200788895606981730735660643972105701586232967815563217450688476082093831343331384580400500028587571177950888471726216407375164924422698603584963131360892761247261063588087175364260399140540388659568170060222098135171198713347010730345501504835206582454928578548950713122720878840045024042015030883491101948955345004076645591261283021902585655055243991369680423026091288631071457342111245622815492666039884695781728531037013092694064781599363370806437942218147304611428138075015755429862052656651738936536100124795365364817109290742822375801854994488257831909023151717749091982385648358623390976321663050872493408012872580736923135218311808735888601658514720157231751426230277235138159368872229423969291748407905402476204236464583383745156664810823980405959201889629536639639679451681880620047926459375224062283031392878105564764167814016766132591491304046495759727076900040241736307528211460033938505588084263806629808789559930728186470901943598906019303107243368657786274698569982706384454679756992669638485821067088036414083572705405467374051500401929247380793369493038615683658914136080160161333921519847936721828737808446201399136976306574130049047026345590220142253021526418094453316438659745178424144965575679523272594252536371516289482432956983560387966099739990231729413711992148958968969535775132583191157132719500999362428123373902540071582542443619523232078004329203397650118671085650432364487398426744999538512580874683807760673678080979709145227597716246138646898812568891897255373068363656516495152102802144002623904859873407272573760827530931199874776588081116911984074402733176928088825982984447060457025744673471151840078738493810150516139877785006224362211658257978515931728351829206284611942298345399293727116414096471154903940785344113755830349542106631167069886309177652602621307351718756258767519076274610868078524804840750356018246375527759613938672232241059231522706169049719326779917298322633025682418182548826032512876451384330094588220509543461465878129009023945308909259443661955817208230640973970136539404128754756471588410893989950167426521122104072351742565389021197272038212874411464787867946580219082065855871388129963837021954473958175582745139518113731991486717497006024216366277909865248227212291164137633915085573921372027487311826211392730126916486511406958081356722102433159933279403546626723374432896534892611391156912998200728669304027179537672753904250361644107064726539136071622220925562417166113233218160474148678666537718727911846033706305615505110215567681107148738535390343182073722142497373596662457071512992814383759183876062891814668779896826954543040821599485373537081093923059319873462142841981659743782434870308486918748913521966910796971036438755328300790287408121936135281641924422744148585812062571725575353257956494345282972185015690954762360433408374288676587801680239425894893873850263103741361588975171169219493670618771646985592629406080400095098728740076077554431454349686461443546246482380629617960052653312184175557732233101893635737075853744535098031913149968410872828754042003597602113734155748270579359676714362012435155288504667571610043521608620252485702551875272753374908855985701589988265281688771611521203437520465029270574893975592412867673206073514011773748381256013802865296788678104454838323392505698984817861381488499523548473766188068854765126893638445658273841005216889712440296522488831670408060083848938344111300957640560301531365260995158286445149483423517483440270178790957476568048201699678719731788178077563585870852048462902263015895635706996715517768159691713098687994025272673040637846932248760909788104270276921621823223485834217446906509390736649611932117894741093088732358027803882818155617301708568894257530423493990154082712878920523255436516453633225945522858331024452568698696751642785789326962307944413067244573065731581691617737494173635552950240003503941618141836688469351528332399789060663819278562828840428038485174532000244505502540446524939680853596852881044785784508824955475254642159846175391036318250613833079860258491399088184647509606610958399069281488305143623206321858207150348513414559159580407657867217835410714832838985691568019384530803707120148171062377066470230257360475389905044970228852856308377856850334897549279421920511567543898542974455890583127508806214898097202621419119767553007850642927272118679836420783922749166722219069710404252157301480132974022763864265888201506526117151927569092592619319944985794341185037987734823623536762335825889624250763078895404954450800138002122744251675034728808594029256372580221410285228731101569308863677981835872190068925775102825595017416816598482750776424600392149263569253146850384744911660812189289551487296854023671462338303990142426292456947320532699464919509104396359001070409264812290262034220635807787110073330999636301880635099892760052474934462250533374000332083121792362740160648364177386645670501274061732027649247157570649812140946677598899101640468976939710390637330453639392316224816371932979614658794872542921954593007983833431264586231111303338962898448666887064249838563331800473923725792346250302878454215908044893988969064439516193928831818534332243609715373914890341574061416718974884604268413917503518048715087076864505704942290982751570165060206148636301077838353424434356580062560204027898051890732721505758152736597333125056548063042484933621659603128776454637974336821985096367817625829119674800076209302114719967501878188825322680326854391317492658859203441461012134554264344921494215707905749048641038677619345239961651586877535267229947188843792686350344146567478342554595258110484751652908389065389635025367398382733288815816890027093040258922486266584544281525142410664144755706943315814199783242681588056070903548796449942308121945970262338484274463994781028522444378748463978172108709969672003283427305385717441280709176842686778912918779106663786211913520156045342554502077842505213788468219790919336107514764313938209692313376751589081387547173556366310922976610292143422808951548003321148971903698709710994709752900721073618746183124319400402597461467139475551848704945974746402969036770402104460518200387551958095016872861043325127908742227341413163129485971156924410068278854975557027610341214762871870254847287918840377652165063510132419798645007102515096160774199451948351815951847004918784894438456956979985699997802238616155947999755260163171807740929482746737333511884159667083321377098480841423019502419670019016157610871752021814006191716936412448121840241406439619069952099929032274856386504003038533862405446366703280373274525396053956329423855204550214466840519579335459728063625193753634956919522483490565672220161988978701080894526246177589551645512913458932883368158284317914901785691536154456062259028258010848266601806732686531237494071505817130287729445144695588820083255141635484742336294178498305440556041976310870305311817211919038163457898835464636180135206067569707397931486564647565326307812854268242077168669687499062101301622651881518389348959440834773034935804809980068205563354559881059820666883409397848736317705625706483795564215971928474985721503625924479726212278606030151522843974739139251498836092800100754353492196906128327375680114578643833605182899493617111668999173404256116275241867177592695929507715612359428399999493886970599202896374315879028191771585276082848106851769993273728868934772533425195211224437287597546447901796969939206200254986878777852616106905043681248166800027321369722869007998141230317856779782333203124292425750964896968496566998853029011498728688972903082341079123814266345069449007978034545141402969485888632946143818483383167438480901555055745735870311134925033011280764585251181153584736569435630074006524536268145780521353237679433019454615211951441288943462503835875873037842407366802788234369236694612066803508852142636176240344603744396817205869287887220990583069464358971017600686965188086131153187452199279792022835595754574554655222520970155439383890766600220210453491648513667647959057263502752406545206831363202061568846977132306615391582292162500379844283706051550799211232289925142516246579763083208665422802371009336067280538080782187839158860805471840757456234765080115491310020256822723891093500108168081835622638554778306624552439007631632445041324426900819793153931665659419157633164505563185689372450795971670043126318069322176259310810507371634489885937440277620223090496002988024216335896965137956363422685983055200978884420783448337428650149476779487008885072980091770233396630317595749317610179899445764435567590577471588783150762727903942172455483483475661075048082966774061469517635565020804257591363932334708321141645362570707930742568039267702962377468883868087377492383698719780399431369381185588272677283544789785647557206958135705037025774398938140201078935898140882825431656132470802559761674875843643446806266100893364034835535862029818230362852663932350288982141196186783214513844901503391880268439774179736241113773923210264629055744103107369096137215012512395921809975108737234757274682718631546806093890070406187636159135977595039393062642000128209242220646022584077008666626876134875589907674630544973654096036023367479303883115041030541880315113374079059172797104120467451316600579175093679193174059268783910816706894282817969696147225156682296583894782742949000692488827737406298841608407171402155027443061461322941571971252608884622806399076488392049538932461606342726651459932153738377412066581111871963035171515973526847860628487335922487353621828674303972352433521961077409894801252661042006157579617659750652447563229294283606214021522124918975593769302097414857733173175240274588493448167487571288707975489347445840619085141647535766313554670075291549089937302400172655622583733815344198457286151123563174607635359232170791234169139765959659912743052283899208827212511058246861063804870597888031651755079257627496417692879119215249787102607894081748377754719829942481758720445425302262908816925294943814729353524795753839144198783422609973667441559633478789497231743891208507244860428742876692007316409408394966692558865913501424285768459732538478293489636674081282667776913940241249480938534023681510374430218725533362269501375705816511200555532572599439854673364828979212069163566392413400798968701682234451880630687177945405635595698578117936885294861813082574581929532545915419182555396622493529464586118788926534698850474212306192558595116245447424072711205270317446748677324433454407605180941017943253668668618312496789882167720455605286586883238319373437031517847463761821602407456130811179364053072203884241519074065249771899740562175662819862479256327668407944324596913620245040463211084692923574502525254133039951333981059559006223887956470584907016895046146167950958301474772006716421156385951834010995117584914852193307103432034765266104016526698966148088061886752125182711417254906847961545357067533761000955810871459462458127007636841154520932609062010349542950869436017390406541356733401868148142142227165612638563780536849305395909087203997727002239960582695857281489814207024216386391492792114429730672332794927689535213108952022658024081488523396116812494488481919319972984388946882589027842614705344343117418796060063011553630271155762863797538755703841963025714438577125724649723576654825517236129007149557189642588327487507077574981842601909374911201821826354603888074100712837834181286085836329798815270784218396411837097128285581174491504643242077393065002255857545351869505934017267043833489261753474111811618797140516622765584695708684391223424991508889791732157341619690322035026362060966294119967551086220044407006668956917240573496923615108732748211160860205902926547030629611601002903429680141715930717540613926482153931461163149275713678585471448659569336773419862761822718032601754123786391363501296330277688551731925716354379514872178073927629244350847888035920712211049906372668984318633122415583289090967499368859114743796466946857604187638836959465499016591620862315452626715306884176982465650387464990909911287414412780024591456021403221133542189172534777202865704207180339374618788870132664959531837609563412035114588265103031299478697941130077878716131564503825249094580228643480778028529427325365423074539015844577435019051635889020593284757673591858526430006973492275800217334408876467500713353425327419993078601461183345180887385592259462391768129282319920089843345052355139002352679003652489025241333336403956397745772716736864581853781635311717683438634401624734991539540475017241722803149281033120273024327837507534182141103060953534570865016367595009639433831486399623958002501987247927676419974948667169992762423547581687778368671967009062177123330175293197630947339554309094631194869338845174254365159693315491202657225790483079668015422676721905042651000573391618893751534228707091653546625326366478416536173415328949832142079147844479587788046752699531078670777642865873327717780613195188305736721310254023724114377302441509752465389370549189295823238648347088720611535937870255241843858593878009817876917111260100234032311914468841733210635761542514013885093468201188701732223451285702517769762038075396049508046026419464498392824524797177429744503549292987301532999827824788484234587327996476193192857243587715168214463478911839363244907724434108280020257475453736343590092037909075928908628618300055799706036667351457756031003823429836183153930637753764901298928971605550488410709741878046231016230223517089697234289168736330587468022034717009812213326947347094735246141177773237009105029177061028459400457740750522606924168537478891806051220550467772152223061915464483776599169809744993373062310018398758522253900305112284771669972435841292936848140576904579056500382863552279217611040333061094426693652771361408092330231281891212515149532225176397246337414682966476379645252055590050431381907100816221615243631675306046808403236605519813155107420818647074705510355256242138506046556192677343362391275713684126866943151315471755864877903668345707566465789771248117087625570403138106001780606324442875179271172246388856604985270660057535082781713422950250490256601309073487113566970653861165014969246185043056474582382247917630556477827041812080090580285737018706254140464393225875375853117514508782415843822023183226949307578703598941323830591936704935620017278917131731565570450733005760177192378118448807775046749130493778577362957692902950639024670972291360951287521060064208195288161474271436752377729665533019017891543366042008055420283319104263320301417815734046475904931902353667902893754535932974159072769842483203683663270996890932980069550539908999635719558635217190672837191862077462917754117566927872876878658066121959149265507126059175461212616750046863847014371783502006328216504948905200528053799809566223689864994965508287737000579039759635197975668085811518520161398692351960459557315171437229118972306024286571851063810376571762764442031194391689460140203727190856163965084841941863991091751055253244352608297052952062639926135574787196308962622888748384488074976782563405338691953540127977772658115647246386788615825033269448768827215466953200406038686743358795210162538979815817252518862380950512446815253281536940394209280628514924130319284898202010300973695498241058372562358031753742913195935970376345074346280548854754164545631278656423227639487228216820110759062486012089950473842471989115206595868762908719354663789624718733208985315852268182291518384963836087438740155803175963554770886953607953771265701381421204922280757511793599993882980903102421578216388311659125653412824413227782369694872151646801852401594953366413103947396716183627037211465643889324735810628620519995457303966730235440527097641357261996065964295539138092099556603841992528998388669526774246327874110962340724303380119101177721735393145364460091889335308973365037312294424464702273289316880288637791672222590812048780135204387799755906406777300311879710644832247492492829527027953398413095006125710907123446374694913121380382285835089063779577817644263796712688334356854264838142778818819866830331017594430424969205311032212542859132809881040304827978648095225058375020890512119010998480097988400667032550442854465262576296207802452892963559554199706399683171493562694648698312406600580792551029359692421460062155482412414131392536661692787483446426215597691458120695521936179347713811499763588536524680448646829733964896477613516067393985332467571365390984787149373490737751681326703344074545858394528214425487703401010522736569534602878859103882880785050186401695564896473968135803631320980389626068843915388102237376263922085548637999707724381775007379633341925489822293772794547571575773619646845323204962174938791019078233490384072052860954021966017772075304240785728929334516813188730758971356204017737922403052764975368782877699529954962400613933247054608541986383437484982313398690149636244342981195662017186955451532478819645510258797934122381955190478312649537335734259157284462263173634403325204950942686201481517153338264478101951559862333187556352440712871566304860215130744871260176572067285192911633667293877477434990090997752156358926549140496053195326831224236299541398650585543210350606372338581106539726502170736543945654853315654734098717200749547691698174009913704474750155773683271849975480787842611956464403654326941815519382979806939341506409604274826427276149531551502702141533940242789527052998229147660254644330678450922753752497011330998128702680202680305282805304761827062558933160343356736434834188096373019075980588609540613873152126230574942698944907629856340769740799804968832647363563909005798298698073052981793582198238028825685067953051677677235195833982207808983454060765172709494019830225704055150789367359654876409498432953651740647282381839419936834544775013933800182479001684780494996683043274106616665544679449143864634007082862071963063506812949194622188510765018897885608582973932629723562389072333357841944008024321205528742370101349500566384752779451984639068640845306929496884833189547991379530352457453979814844456898082523248310419930519308440766343886767132316242217662879933126936535801420956684410274683688100531610646715510474780050633166875129571627141496380642506659765553105377326364978146516531384598874349676423694669722904902825674136102932674873231406850618561689616054770542552480848817041864532510198938090758065809001466418946510803054447354188217653924315365429621359356774409718633891338241220891250019702286692986156420737040956438968882210147819927641357655869048081094146213120719493650883167558852074911625656929388945371799578561615944455943977823921490767681707286125127377762642071429711886373748916441433725914405916282740105819830529019095742346369808755201047478323605222043223432454725903746659565983808401221330578744262846264572483968670162221964658762255763312099260531527270707801974201725823175132157062185089055630701804664092212106140125061786085250685955057494144393983592930588191030148486193322395259483924830471780612516422985984994026448438029986242545065297325962483523724155780049331499706680999539392584303228100195337864020170135894108705472624213005831535209458426346555045127332955188527351230751634112710466147725484540979326154686191342585989544524146510928857461880244306644099438792403613968136462548945951778613545926013432553388898420813614466367951967221715248128015770433836802273965975094997739855622748814309243658138219871975967025182624437504757337170321255551638930428035149360401277061706985474440125332736724574551855204578654674127320965511424098309900074635481440748402013020125795158864078419973076066211498086852637777216709073317424111935944356233272460598774419042925301938882581403378261412232898064364044354938736614376052695964236290839231744770139568629151269280568146855351059107003879283841334128749289790899387552878787197835481209747493008747797205081188597676357740390547986865382369041821027231100266003245332643746171727433108954322540421444999622920585005099212580615940565005872815083222944370114036075791760140555835694472848574586016429670420065811291779013059555401286187996412568691087234361088061948285590700735972525474889024151435740421486850710704903634343692692764349514440638630666643729493905897500476424154291726073275739190786948305035372475622968551443444431370507642622406052897324532415991292799562307250966298863425118725291707130227720026814909718318080573651563711735314294486902673912140036481541206412228261074401631669250790622751310403192066005091192594345151703427076189302919433121818135499376922849681372417525402154117605458425335263658232848163916679420106139056160798251038819129037413754291919062689249987010961997815330974339843479083506891951534739592314978247207624246088231170884927380668375355690038780011905122804395690982516955917181810665279856856500232832320811015766143748166212427669693657030245723492283430275149899766411718009528783361768755448524347053568444383952245117643735498991914819520676441144336939777569771613620084779802953420111978374390461637555181674938019625737524127440471871555145151351276459206878557054819157433468666385534385026316868203769662362847221262217410087496443920899576709979832041092554092249507574083962541603198588944978907587224247345928417352996762437980626232981126186865211630469824156310365234472869554297791031340692128976598483709549247648635572255954159001950680605110144218267046253388003927146353366162953125132894334055446903569298408258028050645444318027220963286623395928669693069218612723202605934648544885526963702509938707939176869107789519974340566205912401661831690196983029405782425880706960835661534442442034294520534002522282938290957446458787992111507588075805007693362101942911834956103421612896748986074534083812984615972406751848337904897510816432180326266049585855166321283642853418422128010659263851328910044843242687870203568980117728759285331198698038121748712162328618125027530891055960301520701051170616811553150404485376440277305659748177716720250364021562167377868453072505148862778416936186085945201201533176815375598922993832054186834751577532735823540008370359567640679457813076757225453618766233755098076911746077874592513605539668778267401800860918794235816902060630424145802145733033264420672098808323024935717966179887351339170933582596498218138009963328643937479617560036431472509015025111287295068377931636932505712133253213058228759236944844347936812786870894962348993342729537709748607467486223026963762340224291239690348015330851986668741834473421496625348330865526169338711320539580508869008650963507996421670117566576565268150648107844022402901384452883411023706321199564471668362101116415086683032916253207188378269726244376932345255431858822644458109500994445174831289137857453001281386738401378628976247406271418807827420731651379795283888805931146098961930588686969020288647878884742744638939685722952663183708328600873845897306238191661256496606061330058953219560109378077460267703208346870708147589160320989433391829201085207911510493063144472200663739459149908332309845056393227053543433687075890847628529020954140828433120171739966360892918532376925093589868005972885304735101419544491544482295469806467647887092364252723083125118921989109345195932907992370885144905991549794318486626843054811225180892104073919369292256396625746072391484203663952598745225960631803125597591974326817272980125500549557363984459971460808077133125887652485221634959943290784910110642075557245670955319731241933451818230409532310259795380918328937799455974754118633559358466968511827664506224294316685459684713796931105496881850983534190216860272590293023138256511504951354574957069465266958461709959385266878423448421345090363842403421634344114416109331229096285998926139536161165120040223732636558757429476885212861191787152492717699211806524100584694465324666177695239747488272514307810909690539453043166246496736664442693778080054800746281693214934358724610207747874157114466633331757395649165880890236172416040888865488064514794624562518532287108577441684850598047720137940730220691213345919632026588970372204169103383692153609799362100192837210968783723270235401962297818126946425961081623146167495964179978310501167768255758523320172441354920979700456348585758739225234491779289154808368198634127552172972331580528133227531103878347109330153537132528972518470151001200275659125338005447178247017038391647188760844352788019186908258851440568953137461839396184521919394590149819291856006474085391082443287966614581507667853580374730054412460619450111932073110438297146248659364248452557766898084931821035971298984735345388488763562977098546859787881377006621382082966375542290403381738377726434887581606249829196221185892804553423180990499768894411359140797316425419102071672202850562059093085851024616156749097021637856785974097789899536719743064634951625108526764462271757082493003019572967508579371927148922968353714799601946158076541747040911679513253221598324505016738403510358010947787251320141229219877502116604696706345359717044230707813281944850078165146324141043783010163756375971334571545897419898321547592813665056465575706102501717071899318142740733653975651151658541852718007722444644599539766797648549378752377146067035709166196770579582444400045495537942158755185322587180843736380558983676876241689318074915549472542058845377368875984772575981633113154340080257059839421609763472636502462306089354105416983853824357624505577361878661139325504104280496667969311814438717022127225244505980482452328084034367590078809321698057969037502162153925989137398648259101277105143655466043480037536827683412100777190795098565784904693132515947543435876578315760231513242872954109582278536614743307967734039057798741677151129963145724384409005978181939922215106188240929354051068511083231760493435514167891784119379867655640884272256370562684432604858709639272471163036370584522264732706821950534686340817148756894477589768771963567608004579567040782785855620216026920770110770319131139726068401490910382896936608316163350565332163375783013365353245335924990931921318424766413911289102920384802450565895287750707506947887954958632549935507149615034054627456323612658844296253780537241712994794478188937840498029507743610303174624277046471043797144738182658133054457589818264156429400208957489728293468873600759314344982304722960194972331298131869951940246078469403036006508243586317010086194209708545618322054744663914257242091349883985832546910886353522618279545295783000076550241739270634313241670833155932089356459981756468501790323534542449511955822615871211065737512670012810623951915409291070192451654931517859476752201421045679925016992243325755623886789536220551139732348128837464024074392529716398319192626362366041734121720470608535827034580337285397218304400942478786173590327845699276957333286203402144056954662705360206727736653021666519709978118495668647335247761277336724498813855297382224850094256186522445600859740871420677007031157333474800910991741763139070119380457212854169526641167338978786067973662896687966105958704474977712886135285539260393396198929663806387237873162594551927417978559197605528212058277112572346036717571050137790296735757381692635811118118552125239562759912065735379258468143630041793647946490764607854251574841052429714256077419513456532322830509148951767697769743447865514073622147692029154186201406186803447117223525194417201029497741553547544655019581702142836519377315087595891924958918901087435607946314427835393703153381247347287171751157404564747019619521542702959630560323198561568340564657610607910072681761418301794776403524146763474321661605781192396149298971979111161649148828506941807573973686476770153047148733299783034072343199591503754343800089728827176376494739596327232438861400053352899635626775473174031178312426693805268137081775124329911454133171137781965417435766776740564986547422592328749483099634953146399506234738644628045608552786909616707104215406579082292652791686075937821930129668850365663031311848956708574940510047707962191596062688406438268182414561315135205858661345803822142879128523555562629636776048708527206610767161065844184145676472939588558019322839738271923606102780717453264271366990952548440881664192707816864344773223729141225504324941903406089322379374293043995702620298066080562057175756905727632106146562898391866073017376362785231940105131394607882001350868025771393549622034944371423425521562978577513335117240019179562412005620618717589192413219742055487178187350642981074048962164103731008274494658466767472667101807484547749073546983238167927259325495249943908544527452187193095863669230807965001002114445774487080003831542974737504667258628537667153264042034241352488957162038367766184247588525881394253785056768004145328749169222959542949508215701250630208577925742350141516074251615893636020290270156210637886466101056626618086192437115554246204639958154826182776338214872293555260775027968923945069565878297504940539085531754470028357365678102729656106263848656241905077851031492944354935742789050420394505294034337686099598624219984460946504541768165906269901471996928114814313490379158087747047385925979035883226157204169937663516080522142431998318625660079667150653918929054026016791666039692593894938868887725473035375100474057562109355899285692341684145513332070986842090939316757908866544666303705169971318593093353194010941690319954450200882832161216628036115655669657807221059837676422783483114858239352430757898960583066732694814588970765501799259773065232214429766186593195909028224360617132961779381857147547811158400379727429609925971467168487693403203880924391129963796567565149329392626013631694279273705039223462371039344126753221034828288044877898769307195221513419001004360570803600904984742472818725431996010092186417776485918899260214660331105273148663306059432655105249645642090648136167822912505571088511636662855361589168802549036241073055384926548171612321467481015473943792344438975851240492061632238647611241260641544045150702174270162248535919250146779126658566165018288789599738035408178245918057837135642953399976440637817576494080338490482370524483047988313682222559236216081471825057969784299929841899768806816125329151936648628249704116012326682593209488860446559669487582467076538835414164590239136732607270141742811991318725977851033437438246775433012794916647505203656684055993950088180318069380728262789065072164921038916889395391007977002794156993301872742456224010223665064869523899421381734423706915103377275602740558281570214135414976773585247539989232378961644550619136591665639663745839932219914061995101546513608145965459893028766859572854030111705170033108836403274913515166997863655697048839429981851901098001262548378081289329846885275332401853878776976243924943582543168026264263023667403708848382846226119896610102657779413475343740249531602675136796691257117551320899608156823253981665507967154086316979483943676080317860789969265588198113020203184782032843846974605250138174009473279154086582312009770552423519772176244141717371789978949549696428780345831237620218393907322838137278798053247318299778739991414689735690182099398685839542517487446777846397049669769179724603324479517657252451466790208891914762821361287449009679126679004357822786681069770961462967688295139797351637591526852437897157444337320552350624969555901136335674339834831747623895555139361511391923807859176424858347091852587327306977322497373041359866835299513951317062934921121667704105433822382580851453884993930745293282345180578977002864860002986643116765260820663264114750145458250506396152780024457179578138682280358931687849219684246536481536667189702900719162313950275922037021268464376873278945546994801246414955282844863396463532320986222511847645470646403597178087777286857895714762064630694829996564157104864690683821144530639297866685291384547470890384075693170325876369245940979138946885147033417109060076461166645685490111679933020725456632295377834526689049928070288675114419987360972060248935490639903007645198727180837033823715226933324052708479700475039716828141704920352646098330628818927744167082772998720680175829644737915251752452734800371525886078169696278417675769814824852873440123635640838005165228523497381033241024383002795438013639003693506072544288977382904357588273772553531198334139741779767882980605427540699183802609113849851952116962787497369771797492880436142600562857117251498543500339203495006836518784922302475868918684018438894316563982081406228722172737551624256156548497144254618565379517258012285164649855578886822276448376801888943121447584493270050678532562062450863777309187241435391723021810579431527064049597549325108449913460990327117173241322802170468694866892443157905986268741403437367885956642594096499602316446645184371385299731915252855573319933996196216411637812438359703999932770368006694830893359667711713445929707716708244806350177418665152998123780764330553485649963436254110680444646361071223577674944703780843022988428871764921666599663680447912348038881333791311692983439266773832494343910684451219788573518109128280917124315422309690413798872031831172365399809064923725730454900589286872793150762458770833050402260010212807869459669206023544867665192294442548281704635283698099505205331521603223769269448715903871137654679298860533634940515067456750065156681642125608101387114475008334977053154862472345162030597771964295362552360796925448759348149810566741902707155271487976144937665170970490930275610928915710617181397563279169513151986710321150331506342611475206548168839892815732847165894381029108555958429632314658834885045139185703339695488776942033607410466123077682655048704131499382552522174142641802719894639759516003312149529197866111197341320380507631208189309215642926731522432843944661741458064923420395171151518406466803196992167779368823910744957640556656297407941993667816546454718650491329459943734908541322380335170536172829583105077648733899685005844664549799868995959639186282303555766752877941801362837321007954708034703248800856578910256444435675469159370019193396453455125662790249263024606913436420430315117000950833590120485080322060259751734635331052451980356819739372174276368443027173674257432578987858108974923889562692345486915521747889828665073715774276037449876160868504459268148334774200664045343597817976247702022791593685276978096299430166559498381187918178571511749867669423773221475500461101569674480354081871532239843708269259118953177478814732252084758725599235055412994763405419657208307727116504721463065615750957018360521145089581568981394485089190897421934143213772407139175975644998467736652632758574811127748721379903695140028586640777990467878859263218251333288174806597703363878013943528297059145988123800289120647615338650827823861328031519122359906530303940794412351145241608120293006071450923035899719675658339908274401488665632803985036634413134649486719577709810969233565516538869749038564145112292689563869809536562185236472688101683383858623790280313603710388853599893731695664574693913697597792163151896119453399064336047939585996715343904539656503111059224235012965526873037918817344490435273662660222826938710237046867526183573917822667338739266528223190511983086925753567112311463839408466766348742455266526288345647672648060528396893502191415989305158859662700146426604664308698220793704415117668257728602455099896938598167050467887915249976348967788050740697211270543921346516862874459942359834120434363330697192389646135545884502800585964335444495461730115646719048370732875590759686247234193986154320340881491548567143691160118936745095443642339252081776053147001723676868649212390575183064502412177620394811359589321395553128895911112160149017354165955787662982060650178866450537960306702142065722558592678747256016253514870648178016193862395525776776691865089983439008438651745363846101725694309700198193976343018288881393305654927727496169936228526760546386054644331257023734919230566842767941907666724270573080920449292127378830399297585401051947888851208355108008284596841357968523868533592199414612560647979312644812497268232318427154042563185152048937663964800834705493968509662470663907638223423705118251531256092906052406017667352478765804775249010990096039277312379713601228811887430127274819241893953756725126394168509098165239149786459631873226236806901608856540871448640413205458450759640596391547145011008763823031128500368635036212403715448018422789907265596946296529963017425137894751061212107605810053787909417419341439618201660130965607069700803803613706078393381179260595718733649341276865389240103675805967314986347517111969396395105530858425357944599293194990844942183186493135815076387551051071506326306015783742839864012002712246759531332864390870247333814220811081737211023769160108074467427409449355654948368500359222703250624747176259509798220442444766425064808222610325301696392204908510774385280821960725172342257163384391009538285594546206976021769901148305791236741366818804328696920889804596961808050569380907380786442049077324971036699764831359558427436494458497759156370817092668564472937196214761450205581739634431567604092928142761802431504332675303402849820634873370676485529033163810801586324521963033436782449481670231743042445497095878584380307472353546072153775516534232038986461286629542359261821182815696821866338530263663816245680680553265329870002483702900587614111403504728722693353080918747320280601953497243209336024493642464560707337667418729077699485971932858626604579591124419900481693309328960775498877758254753966821384575988265910898493445073196504230296122557677701459058877746599985011831384051412371765297008077645964102077025628481878170047597209972486518819688203513919469261628654175230112291781037971877291667628687335541744682278145799767765177088779586848328641068525056148364844100111380674594490902581461551949804500560584504514583235182620625418378307638759792521467281030984012765841099361832706240309324615730191015891171571038096032775682607769721736150619034748235128537547288906163856729264283790526930346556214487772367708563573800305952075773448776487029585128253821437083988578144499189550132992699768790205252892633617994825970077900560318625240324952292200788766432421999306008947860873877748337041822458382926967335757970971556169219007782809959758631677665692208167757684684298805586830924313530521313825253633740169072130732398412783338273581271894566739013173320323155441147966112252178089156604122554320845582839021699647402742459043667912878996094597092164734651049136442919225193227696968140345810750357692511515576691196096149738664581459135499104469084631408719410231589179755270180185631044316913490149014152568378398568032706086604810376993931748356551567516173329701066969874545027774774142625234101680213749450056136548052006421541729153522397574865367577707913200872025178789780998591178488726209073715705254931226827365917623035189204950564174113738252667563136528750042921794133867368418240195983911494329679956653984846525480840101417980519493424879455837724493270346548010541877893399847436432468791884326406893940494370201266445997598139975982239053240215356640468184339383853257565511438880373845024035695113182867564268348575014947157788717369181181042863754344959046650704248157063576747958775486755288791239822744660089408357695451335691291073098622379644567027559197739219370403961672121490235571911993571033075903206839076821576885080574551258977505512857555716542176841386835576233209905092421202477472185648586117969295069574517254371822055767563831587458202503532968161415922208284537243540377659981892025449845369452266599621796779720228668938263302091946572308824325502002445781330829961653391623641991127428861170368295065424604994209091338964384375063991790189149080302774630846118110496261134769480763278554233874142617571390195460518177709015661078234854264005137442747342566366418505231667618073368483604824231202392116697206689133525515537995707660816114452817789976142531560905222479975694666436288184386225329901507381974086864816501460848337220003515936318616223930214756305410074681862178285256830334504323922679372832608701213241884124191027267092006374924998807735130798516964069729926729266564228944952587338648150637891829410638702075253380422772619864603831450496465772935353092519200946926772431067794906765128481005168201794868823738634313063806062600089758785071827998715793353137961370561648667016623097475093560705168974134858819768281869198952384708543598662533017212590931206250886850818034871190060000029373305692183245157080730779114909999870911776586779601351964378088515655431630847241590081915282166933503013301288484302098543592804722918850282023507860225010541959056965655689473443409561784679886489194579678325417379778115305194298698959919078260551697183350911655443065289150908565794645983853592355912014448810736800275553007781779305161038187086939410703414252219322921061510478267365290476493240771368012290181726753450612878305367663642035894195585352267176140567710268822637153553491967688376867141363178210328533557883243209928232235643775087133363413896202462636491595125205729158352113917115502836144349055066062841294302511934773440926516113870234901454845253312754629823008472971789715009380844168501001258912360836765271899358463803428252786518922831665735255326519773802005871016089792774619518522227600288929592539183375444908657239371884857030101440179625917524107606456596072973227337838468443652883881456350972979809992857909265003340363569030335686954111996402137300632060673469751995806139666382931629088420482135452420641818821711300178385759046803471078864598532850921808677539250307689434581456938550058154681433293385021808784594446811669759495928420283926156150524604399012682655353237304659771835289085190801448663899046074936802769769554543823507978535188680736702825047769301176920166470025299706965251535122299045740279858587461347557775820938345642634004542944248435579125000350514327266862337367953248191729129309483582653827464707765563403996134736697168790438419576797080891670788832995329916593950843986726745070157509119481699519764325359857297853163802302521104045023049467818804582603850416266870434402777306269900372376839486454363517510359847595224978630859308542921918671837231659764931025129937930165236184107629699684214840738773548014756535433041225569968233685418633053722064845344238775269917471274059958351108067830104484436856701977736355846034404533532703977129889632188404107644150603464875959606954585634317433633697911576390487560120031491298161504018415855818626038116703115441283527387398325487716317645513863129586773392773117083186620437715143013579450967090523031079162866709759733788270305001976061148142746969792830393210478915823120793699381083760889077573779844560468370060380741042586846121857686545878366250681817460516276040115821961898566871197855769634249599929830319896585119761487858482362450369792358008615349216727868433011818094347020271150936610962263138354958344910554156402525271365533281973331126834645776430354790478636160118633307147074536734720249979463390258478987564926853142311832082910813808002768539838561366814590819988910859456539669223745215353770282649700676349820775199247692559359843829965726149635771919231360141386080449539443448401594091694226885336999701422464111106929499818510857802647015654550962724882650251446394930021836050523798274082364862383623887991490142016986279059935605883937219934486160621066603677393739338610656726395108847898039510988102800874709453110073959743425830177769694064453078795757485895121047137768071378312742868966504949600186133113549409630124579790689099859134690164150055347157508436648149480469707811847144495898256966673057049940979774534770284895873474738813183412557109197096000989829595655078741791853431696654934813555927896292136890274700587364809738222880201154226834150917731804505262835640276117593763981592332727765990987653697043605151756278613817351819931395180767704134348450917472813973099781741117268323260839771679278822639561487205790989285675406443978465648550197465753222420593422060512647767667474673483465685526187728467052757992437476249819018168165058423174510226320181257177118960787712477852444785373864047487522426836752105085771575581152919448607565005432361804535679425119348507296403177749805314447822641017368490976731651749826840556302904785622221702200927286415993866824447430576461994828858775862758298577931923574219763185024615281753580354387497633188897067639590211242614279416591391943844351305120082621717812772436643430253108778877736979391415592670359602009816282199039287292265673234764798477630926062327968160633868836213677274877938504227459632285637173393676877441255226044763791106100303436550460919543233816394278200204053645194251581387614398823821904681930109518332053272991242007353169817110937418634723788257446015174159128605446095708510712475106664143287242695283538133944467569070528891031056870016937376859050975142220456730837069358008857131170690019321588273340599688415557713964565265877006737183243671752606577160110370052086753242992824681334502232397912899783917732814831604747453348614401372659636594438696158685836195307835633354725748052689801140780314092857870685000249544232018367368093057547708308590141791234467712198919782855123514545591593140818563107107714020574384553410502095210366819379302949889850828154069625128367769892629646112008553730233650489425746599634480087223789113956164692145759128199362733509570933003242484136145190223238267780383297440070629684305042376166765308089158378762363576392647716185974949902569253138094969888941892095303733704752629238854525657531481203945896109952983212428032744468475625930829046607182318769769603031478593056613815794694628939013744380775460931557650168220574456749684281810217456673614125358692403361073127977957810155297067959036451661232131470643422760737530036047336884643877944736577292789291874966493401729328894252413548493021146679803089363151054333774316715115937323690408770211676849374873750953972630239459116655922952503047398372819321000001440882041612358338504416412085530164194344119257479298530561092640462352898101601504218715504313064065744039071955306194282118263881095519290874116654482860314892577068412694799963623197365119247244159644137179487463296735583674127621613665218322896321426674339912694474534742272533821381367183516819004063056134264828326745949095203029048394123761396063920879715073213591855484787109584098787853525571156527137829745979458868999208481200288086317364664063083417118188062690232605314077995606717417950764675008179146158278458275198603017471388282294053661127787866944719027382288897882050071071801881011571591148737457173474508794795750717227472479936842487592756079845931504870880522487162032792626345168096978434218893722800310055538358029779725810516176116504601364272383169122220263993466560525202747929636423682128279266352973853661465403113034036984993897670183097555028049020550300490411424340486741336250692041924774674876119668724094747163649920659215603122097725190860977030880722491992473642909395964321647598335986894485737741413584655934295012251751202445734064703599696036805452428118896176769406701024069463533442292403972185877486366840019757973067267158377431110347473166149539582810294999100619238986089523242237124468702217853113915919964634773384427698329672440135698200353002627133931191078017992884475766587756900777781649874013644704924247381925565860843111236408965324444399916511034818485614374715245411211838645416775817679008483247698681948734886433798026593957863754643057361926912889225317658569394357048845845346219278514042673942210411249394499089367571270681481166380108260700789787406380466367559861232093932266101994680640880182669944090384499175213092010571957771100783095616099312854018873973966816626014740413612142265299542933653311577584152566324024683084372632854429337577166563037382706976527826627794511180358183420993338700749267163461430791300502516665943440921763939016909135804017599748348397816427894277210733119514235423674031225425168718535500891790006581401939514680325145668073035237899199008152216931488684233247889692145901700646035078287336947219832168016610108695979625159441482655979331814817761232892618174233701344646644253824060927508597679769369896020059240039020065052207306665987281939203125642719973148410014560707994893544727167389705074339905342586913469382675638286221602452881180712226878668813535441992167820011887862225859166249216134554143406097104188893835641278000160203213785476521899255550517944787060997268455855349638434759692860108740636951008558015457389756523582170766371331310497235875730736626527853746379931399880520460959115147081640027595695388336641654316690245595219728153452012872184894257228477757376767552674616779637065125996001282798379657212730226608248091048449669565870618383154874923605391942238909431964157438301473199310766687518954686228277713740966172409921279364310526204989939114896412774620136519931851025511295717204883809917422219943930514365160756396186590718864155022346967055778061367848878214892601936490752911221778411155921331140596108161822229375028510459401364739152528159578786656563239479730848551530842186171474929406586690463299454724215232850981100175999059308208086418612677236959889847197845586811526066181521472594850042071687736548399522353304362339658330457985826636051659505866007654514422022938685012375238665668128444430931431885533700386271031173711319166978395262647384478027967890344384323301211577800173193540810795004753354856996604656882119712980454001657873036034285737047813002039725151782178479148503606840710218671879642118870527708789817970264390536931911565941206585073047680660227278132942089021919550266851620247451810931495872782333736640228808110678262019777457437877712960413703527627299877684875783020211005771618430933804681466622551796633947316474080806960726466032167879407206514535035803896852889276352332861812093949303494109586386687098237383048785718573056373623844576420921049003012977077165014722278062773377803809965038605532232399740653429846013631700742754888654074065193622805420560928416928460387752532003816548385350082228715835597429679484729442628733587060559629677370437928375941266408276810832239220138533349441255427153613196844029894833846731909519364832235561275047026177460244306480717194560246172796712977694108388321022789445421580986570984695135667686897758355857861255580937891054543896625565202578143066850439882008271444597894568551922198149390885197099836893298174180244197869984725341820558877641137663106834535153442346039945011501689519972383951374422404338253939028897865437873028253224281237319945157605901011618117113758777643406769181453496683473048728113495200264673014248130404115831272889756763751159733367077979618919523065116455286458368862660677419690412491409178516034657389242445986715745491408493493642990531899551660605664288372628100138518752017867763484228282158114760707446298901481869977444416331916138127815047667892789134352301897930462680214240333584869113672714398225288570608760831247533751233923424656954482933577914524347378186736155946049288769611303330063443157084075709517428917389598358563015287461643695148014195475646457645905129147174040163620135030920755876120609692709404289118865468958294687353089225661399844335077317505327772518399371368052691041815661892418156913199619364888099684844496676692205812296028685989102089314509486918030884813651295854141710687284129200645882309496978569419048159845704559010915906140651307882764385694059952631022918703298306641463140363524738314368038096697958535894494354967098440971094333329752096647664795709677258096141913447979604540445919104998173765484167189642915491500571315413083869176288143632354838222516812370231177615790902265084594826625097329105396442312135639420177499838510294521320083180523434922714702831487381044402103954061547560505256388644310861091388122280205968449904464991894593550060138116200226442730280217096519725778060503454699557976456007058682760066206375119486972525597817258892405515371995182113452473280686783149437844054459675496920074976147514311538303928737055809271970724595828533897815680117808376832335563510160388798679293861603667109859468386951243441547238009049110960857235619848318636799766904030015477552716759638918581545657132589233194238773038263747752408301919412823758067071375244125401743304547533926196126481242297238262212994267261748077935984314586704628960873966884961534036530973978942557504665525633429419134921454210531970508831154099297467349780490848212185808258671477128202022329233363038124323952633822585006241810588291336274864044425629886606664963131529951610118224265411017915652395876510024040101236350264172477553341244872497275401901160179332661014746884446181820737352716712790485718452747775102374726305567834085101994402619033068582145704075154854798304030499018920197199843445950237586952979889992901548815145499719762299156138755730916609677374200829423553471649866170674690184522541564791475833589538185459099074412553351128230650293203862342891405052328659001239482111979180873735873298529229044383578067204939975622412805896876335198167828498824895389579252236162877265143959885610831585924178222253426827331575680139703195320975323415905120626026072777421667963056114346086276343684672458753662411152059611434856925980675019972414864915414274126725158376003564061126355313723222637668544817955858825528804829135161711767671443023240508526135918903417998263289678947512350259372099411101077897126418420229995909732424146567530921907200145325187922506683114316542698036167282593323797471506418458455762917791295804095625437983293347369039261743203249438142162024422184617148006647216244743937570700505257504216480155696929039454993280432236623757086595996046029987683907393279208615471200231432496760224205557179490767134341726652585855562541647651274566574742629350144758504150769800208501583202742112436861879013365854737798889657930436114386716851434581857906847788381257286955131730021309305349652503147237424300304861189538776029305456830647078698295853224215238921170740116292985383735255671860194882946311634569856179306874955837197072653439176174230982926309289100968219240719625918009261505655121297710278929222837908844419275268524203940516873725919760165203167301526754748072775306082599985548323089590901102006396913103838783820361703296701198860011267590706415491220533490292286704002269105503780242497396231282737562178141387232243388725101391244628390343190178334453293183878882758085101959036706011770110298993185534153958085629798814280711001277426803668642230290613976181482210015912310276032704134750733209805289951537090551649607226260415232344843837972510730363254254332519781146043185720422985133487286995650781061930616498392808582048682326087332107008702205021999457953255727964705330085589879690792999264550300570912199881339626309514965952484139580985127035168584468365185989153191800700331448130631617841359474743637835460480602317217145647033413304921433115201925067731256133742664460937307982842540612154934016960759008727198255177477767269504565855743234141191536912471710295398999207534797280698982429811426913676773963255962457266715301586056834179142637794439764826718363981218299070019666609062441964293975351938082297608936631192996876274809664692307797348746289116001734112187436840122300707449858746171991442394121205326983541647204272220500037755225718664953849420549676328135280535947791995306806916278792928503633335020042538547884609066378765289167357778775993497767770926023618534946355889484337105180437008324508972975921121607117537474727602390946387455886497391272986352172275896266413690828838702512666794566187871232804546344322723319029560819037418998433346156609605438517867775180491543494952010583735733898719888073427212020156411692139097542884448165022415208427796334516787442813797053059368494921195941246681216797787245975945699063643338025567543534414623698046057105449208753456450768395048213295326943999637986495590827685949582341811504438283058027969942184424317474277531553240101744134644359078982129719820606542139832194196062300007507601078877195219370862094179444188608288094520669897449871994177972725315935380353829188154417232395682124941729786643578814044162688764977522106142225640697211899226817449991918694345185596889983286776364886272192674551873863799481165860370682102447857576103838707686085545673586852283276925642011567431583082628647960385488754757357184964569970652369270081092504465894866776220972334498305767039159090681102443948866114573838979174162371153767257847621514686799526543378277691828710405554503678435008852573688435598088263020880467345986357090980423928731283570079830727259338926465186801844383378925883667044000547910667287932784494762989498982603663038560581005718067301770827607151472275249495111850503347482334826041425852632945995756498103419063655842912421931139328131205027899753477832515893829107935001201038843239711905722377539948555767964153847197519948666329558854727867543394267995720958141494028921037061960001263797459362599505402648937806836622655670182637333335614491873346727123913496808319893079777688174289514480366648175325965638634356214076989644259208616608388128129770312143181989377217062295777283151431801798662601190872650530610972520124865021152110315907406531671477058967858515878478043913030683634182593629862828394942954213874206483668246514039060141190221568936138204537907557582711370905257537881655925611996859782425613508696615088689178793555761646601022199551471781849695989387122903360119694137734488394209891289567877656686481933892516195763916198076036335936776660876014190817569238858384244465926353450603987726189909477718691242513968343442334850896409003820641057717292336780045604801555641870101521335153721809508766042422934105339102376243838544986348562509428595620406030119041774859572081256452682821768321240679821371160159040830677275765869671431759976485486938315788317013190960653752976117091391197842205533196650060391713334095851920782099071575537838140120143294866711175703878973892413196329253438396489713345201804810417743331555575979012395781137261141419990846511422445872112611890640106185646628308867992998462447780943498152630878699731029535264719379634368290415253703278719314447696214497479604927125706911047367658013923338001793501304509846255350918055536680112173436940050421176104240391978180145612782118084655256066872253322383168652710738896807764214613450263143670316147639635894323964234892992114614209017860107718288947555446680058600045162577864369379192214380727764853438332554429973682849405728135782946037277132849012605550775370376096333151826190243866388139019016394935660586340016027386434836747870226027130221048778268835700622593065521602712459736785905014975808933681429696189300761962945483552505381344595687319725349047426018186584309134935076965815887600430383154979853206038682722764154372594129278884700108968969645093583961581044501137286354149117720334399678069081190953360183004807015674043925491279215421173484777998456578164826437901747673574165562052817730640029837849093225840166504754386783507198629334488972361595422646113642369363079359082734244373327331658895225981597499645152560839235672946044751356896448668722040638082572706215982362441939117556830055426226837856486044116066118147036086409856053442765804312240391425902494889734562854444326689401993779451928045753682371657195911406845078404104648891284714351236279565531429087055651838973562385901925160449025239554588459436070068486565283270687912205226305708628403245426842075111316816609222534417031814552401210596446952125226737676027006119509345435826872441054567417766939582905334609617460043485147251697366971802284916509736747276129793161928397822716558004638646678513639221131496819162502492987375035251806983288342425126860419648359673461178847611121052155861831937404454134886964346222159987575989116622449010519707809798589853268175037396321392170449219017680088039747440733873294057453693230340058561325765397342252465611437852509839350255505202204666864225553721356443539728573485817077414841290115048297215447126716543690598313239133555987505639099923309430186403420337713911023835234639953714554538665998739504174757550989710533660749492787176209211106086702939049256984865714828245460681565487973577868993851824297974678894540792034026387163099450325703233767427028542073924458054009967371538659558764156175914067876160618837023593212262652115769331917651968113921967792797023111587105473227393837166039985397549483806441663126356563767929566686583758282674140649627943713253062631242463982183063422117358877722907975091210041184195686216038662619162581446026731013391772025614710620966359875115549843252931840180244262942691390554956077269646146320759810098887428818235576080688072543881241518291499331071022696226348922783601563623142493464729798813705485600043975828685438530730072793627680412208950166335093019015297184791764668110963738855124424293838488671143005150675074521843558259795635676124122412065849147813564176681998828533847596391540000127477542912613858077312942052941932345936815154353301488885950164114085447305314944205113460324328607603015508306963689860713331074822355689647532106417274913745579460179688775251147989313000372648268545351392066765178291399871326880640338243995196580478943914720686308500348226852805577408916538526443015865819154779358586229778311025912103970747815223475083165104481230504192581756197353128608213002633375023000337798182388073807443790336832236507213035213255988764836802369870070272608867001016793460587442287187005068304334478124123835735255816902397984930425788459864969692664333416078176682449641664518307452222962658897547514697232318554413461832851791357619211186395782320694704227776451413596430393785915965944618300300869741985053962586178681643746804751445516412527530630279420217921996374656592889169073123446204112696218096243700033742403937820277886246894425836543247457489765255328781715311553073324000402735733801049525017850122739192448582870720767888421086422574120770034397429761822378922097619174306904551976924679351246192537711337515237439045986432308140692713269972540079775958868053258761628005676479322678640466082647493111050864277688592009729641160973187917387510693729829426845704436268619318678012297608226549393880784082208306519012649311413566242315131394607878510497041223481202827022038353337317402970967892850327223258327786842069453078956844825750678166157428930411908557942325918527569660405441118555302475310456003811887297556328395533933683147179048815782715833260074513381339407366715311717969598997104469812905102471371752023440332453333851989172095237915607858360047129074147922713800239328082437255237811988116893409160463239147419623205184661140956276955317390949345235857218074929406884217677862647772885660255870372042198484462983121504563372459405126929730594684119401215688777129223476033261754581516473387400129909115252902401082561364534325104231194883480719302059091286482182758144688895573654395558512157270633675306546788337644382597233317870274501769274627864675067499051027226569355245088041039159820451816417144030668567136471371738907380608948384261888053262346547775520915632224495825250564591890023779424469148192550698332553496860538916713261086937653014913921290727582023515136960712581924963237152367085661737283997981075822728638128750402578147730224634048717199179167947981068214438516153980614541063530096265924630157972717270445782780385585335509997974667963709941901285431990462744160212518672723313445084563683409138895637566150105583327876416554374762945882100015761645068602599719373913613030730602620915799609975633639139626317265534747549778429463167151688020558528534652895522993842130760531877566710199060005058324947756447935829600902801730553079268657422991995375095808349818079094698514310667278666404209493025246504422418603255896049310361640183500304209442900374663163581962516433753219160157468967365617063715651131344449299885934194735116776414529095162528100574288672013220197465264058219182421402077572218013704383824164921556775206342119893974604130474906803334137233132153575479645879198600833779810622635300288001107616512305702737290295347179361995293463175042963521557277709343006400395148115815416082679251762280748377140470979957670469471084292978425619043962395816873536358990467092849308240630613193103903750691152061157541556741567140726240969588156432740112170652921678633979828435456334609771126518412370994628600652965928404523726651170011320598897703032340123104852431825702131188781073020197232233378962909277823383252782253223185585117166404986350735697727512193412736523352356688488880310826463456697492389833181596374688246512486706924864798681958346406548308150453306592980000416420899509226871221004546670343122980766148266152566709160307036549864275134412830828842930495711757221061213859628397235773813115264660403490538121707110256013149612089014941708687509341457370064219442206785973571289884069123850267485239269516940801466796633367110363448881574858193895150244884414656568502254214846865145752115111717940937361721954849481690268882614601183436278713374268775704663293867648007755524051481904894164684984013279880223330819334641479641846386511445282734229988574033252029809187065617522116662793223408935287892339226776107052355539643374096017791219909331148271056864414439026247758623805485131979722997073954439269487675165734426344759265434344183589795991013951578029973226923581010048731031984388511547455154773099553071553196399026974263507239152305579117499026358058270269062800954681297112662269711315086200338670242050502649004230626621245465310802027993191865032757750557600366429827610291484524894856948764957202663669279566128058875183015784748585844740870570099113199171074606341228821431206437382957837830933304651785680765209299778889366852245961707641012942222903531049521285427666722899745724391362197060115948590951007925387118559284268699788997113835418151096781765150794249510918960786697389484904483994899906272563796426299508559516163435409872191859850482508037509796166945147527029691800583994769147352776511618289348848370249184702253791909816854829324281500964379186473977869045196354988521865617453933319932031685825490308008034744881675519234878711857598040475962488486310978768732340585791919937094076254753572084389178529823863215493860364774724191411779166389690616239939072635945435469241632027542024874839993978243235420825092581693130788258519508800769662328324779505507270961897712453513489049715804648371027997031492527686887656676571389605614558875665325934843337265373637524176238202972910661140326424448779442386552351887965890632049169831008053632246375207417915216784138192657825580674414317980800848949837621628156683088503631197744890840016358668241499765602245169850102450000642656587206003518136987890432602293286956954606731298971355719700711386477029532904054908104042241281884982350066226437918704647383849576170205919369905545726901828264663750676167253318881582053635360763419892502904713758760816213993836711297720011689468771456455665296593114391393060373668576850126381464059086603167993263558425775532703825932857720442709294176200207013142359488406998102511010958375096394502806472537663586981056818945435829630750930912117975326130560300810408399888866337303417372688864704391024669887176951613575222632016197250787214566476174919565846872290727978980361228096153085956156594968624323340385097764844960078052531504526292304913819394178786451443204722524438256250367140672364347711874124084188647898944954094860635511940770544307788130226891174739283138574221659707458113255247008774950464757335778427625401388883440761158105029355632052505217686018528832801634261687378608800880232413237758069692525719151192939092786189623967934566872930921392185955865340740139267821359923327690677810287167526447232745227883611759986015210529173694885701496392847877507765308605006246385881201757386337043342212004803785558722874241341065561364038803612218863294291980900519628930224527485188997020546543319960777306634487778096078339204988133951580510830188766720292054422719630293230119970375632594715395870528809874276855941008145552417088832395122757723793819408995883126177448569718389887224184648655573625800625276391549085586112668809881046187615140035321288570374543796729862329023266187714190766680236139513246060789235245899254678554860406204709907998775638239674059924389800962329494464126359822421131776251523342231073239196870519757733936056576655140155889635338620371434513898784704374777035075934215996880087654614604186269154740492259746878784571421970234165577719276931001349481040067769144534272881303831778142706177520689409923649827382450972614720103685476959007161493219647527098746751897995653662956683324191406486609059688579143079251953882154652947749812420933451958495213510376544524583598514910878470402405235659144071521981381158549743866608016669509459041603395787577400163979723167446809687257052171082960777461392169082939045203805867066446472627179371124136433491023958113423125664642830497112030135839351256383576939915237997870069665209194402059100007135036952317858887380351674395471190615813713890458978244734854052824543940608089677134045680289288115341981759639152091735662717852303639033721025026076371405421236184681449080810494535630689335736658099256251347126582315290379423159633983466114589376454963654498289432169214075901730051374883852294801809553654247917596602530093026710244470023982510282692597887088982032851433808475578520316522268334067504057929811465185562733223589586684256482142543768170357578840475086723233582514182277381387291463240723548028403015783225677358654554095246785426351658574326010068127482096382155750568374543284702240107640689420561049418234031615911487670225886315407557523867631118925632548995793090911777501723306894022473873428398895373086109967939637153761544844150968584347565013840071850287905039068865724495879103497272285774950967456360089008294795795618673282856945589514879946038716840317825138972068168714366526567195466235159641309049193935246561813897177008787860215410358966454946004908077175046825089652394817208930736260491420686184907655328699887364365620961872379149587131316444809909557049804017622019382788713364966540449207815838546122312523270067092565006718419949445815557386167092093191395511365620066432653090026089796659823217879986682009298525619412002230488712423648944216992526869842781936718445897081166390024053195568108049459972761211820456530028243458311977480643470093042066473018092039268795458272027802532850129497000651452506679567686800156409591804144381242730261619289845231184956565673332368189101178737172875681774905838233992196773980668513404315418740648697356906309024419227021147840380515255352637227508780511210284449257177759995989573708906888949719396779972111891333462109758334188541949739958998923463036645622504619783844072083307279358341998646475308236924705178212275257966973663591402622677421366211734721958477473481299840361941710876324998081997172735959856924726442906648869167682785783544167722404783266101881766317092904937722715998980309917252435345841625634786914338113775911231225530082590031989599251341447914987620109305151973794938229548858215534136181145753183769239587127762501831942063412461209918619608851645999931611695440562655562528823730321210127356215890684113284706628087365213716638045420201199204714693582319291173982900935067893884372592175907025631388596541065216662940844904159511188252967284212191176782013276799815627748050552943766536185628851891992278477163740979443737299370018707082821519148899073186267638995367354169710873868893696252522621159443999201743630978860823886975257328453920824253669562426492672143279374613421005563923910190642642624400072423177523838818563737740552579057702947296831990016000930045715149695710421697557869056894561011510018763397819383151093900750446295316068051109142821237284237955039362022452652073032608098509730470153617565022627145135926642758010411551858999074076166654105507358780841104853452841501687986089993603950522629090318143747839543185896234576339465985043453733113519942805446637965251080973093778168969409148147650321957327740575773050512488878814908982650037213008988009873344134961683073694596190642481736297610617532992692733638252424119145366406080863333231135471642652158464257800267050604780725646620503304007768340521838686904757657119627933260189168309896693109487744835236549743858024511385588691025222428555348341882620856181400753102016263391010377195078594325673017524638389065197130750190414584960342285378945558937351770694135791920325326910329432407415410487123217815851403827913705583705640309036670588466405156521165083573626672502522092547608740231768408281113555179020210133035095782612013403175000928803717131952234844104063557556688957206630034016561577594931869078827587959241843044890787053930907085381837338077337365892393418513327823247548749605190911779163656952154328557697581825344427804206721387981063779682485581743955978405910968256165373416181860461091726058147063269712972674965903303592732096108230264847901098634743598288082108997216980333615864763336539777601006318229498759318039787148369702707759726367114634082883599764574372944249332906092741848483141038333932357886278896007103644309894643410143973811199415225282581502398399855342206225331167829194974920208560977185493111401259452565892052964057698831610442950826887949699770410107651774609301650407883581955211481946401264007641108256627397721618835353730545955541286471481195425065666314369699321044628292674466528656010872469837612188057543892602345324608653379311556229719572767172338179486050270813299324096783879514393009467266780384233717778316329123880468736187769525478944155499932388002635299086290433501571107970101630814361848547299619643393423519176284976031930791224593104066567394492137242621160923666082852583147686143721011164040304117911498885408537411487971318796680948875745580142427837433724158660427274479149536404403964276471658607140388838737695866106092221929349450722487945941750952304183563531675987782394548005318558699768016326877901088151564414527410582123051562373117081200048635113583344357833484509817075967783246286403023698904109268790335888829238524303510785856945028796325979515633577636928960398663122096725168461922375861506472563225479702172293884652970970674737017337928558196999564469000521231752201747133532987960073435095687668947064250533396007321115789596655495128310778813681006710661805134156826511851675063263185795481414479080367714041571613103899111226110346571429391829543469979355156422448212338388818079677730382172932002557929208497544632540884699908044880752585864092144705232777417528644005906267645910743155268282138743472240157341401565677561715980516224284241753984907338460719688336104827224595617803162970966863842841591406365607775542088864921881689631234470135488416825232390430310849444916800149866326570518265392232261547307050108766906461361566005393961601565270596481098225941506063002919183062073207724014279061022844474802586429827384839672600772728722630847669301058941112034937243562285651125827211198664558914649445443837596013704574739588841206223822263930401208313009482962042933909016145334946767858858178382972611180000792336691355852409743326499580710340265625259676667719025511698327193792133088177498103690906762703099484203011410897223005195224787011488676806929947756962345091269035198581075158235273911194123121957386695847378084299463320015948477777447664520652223939864994856848685798836850068609618669380298659811333221467902853644292379243240175565611398895092359290933285129074602948653343780306589860317735408941419565457537810111711670124989096959669083336059388433510203294484028632610466332014321501888212864180819675572641615975650504309113281780944870897107830505218012458897696828295648596606688556732731146862536031704225908769653279755896654903518673347053922982516444565458284160582777839239425284518058811262357973070349938218515075167124162491954440159944163501739507747487770858656234125108663004525240750973995872894615218844540124839148883415428846262257581564921303638246141185478379122601749961595349367695454887877169908014761212378000947673605985008665464691880326498565712625506655504364848126935567385606726084527313629447182161095594860586626702171363418802247894086854860897945758276994988993423342427188951653800806876767769995230120871314795173928756118829669933092501701932976264388456008018922894186525859536668257677445892431473648387064181915046080368663630922833735857030473722362455820535911927970137256471520333346793173762733551057674358527868899713080170182720871855128570155670500546114555650025349716491623720401733788792878060893978686457044310900345320323467051149853307759006667563595430298570787006843475807085427558838433393759267092685357597251064920995995527555398368602521227827301754009899602420677091077980537376719494787560980024229111217980833921086510154096998615086052772188208038585444771803679591965894384955145346250770961325916646460441709905850051370954473795791206550916226421723483852323552914065410527121706415778358600698789607747824154039950743681619305303871449580576964914819002415714620502623006065524815988851299543552811470264378293086081223807003589096258322879725573729244115114019154775783775283676689306641288846440126028785301163508619408052707316822796586330314575279001606879971765885920548916649365848644492739513486944921694427203978387709717859106379604266756838727552869854767223599824761282124204122563740759576467101809076749437259308582749249568285173912965797936826748685707922514892041679113243584487421118926088037219969595919636900797864488107556853279603405825504830545480429765221635011774388023715835191503868042120834042625070363146624341624286057411792038390861684849618097894976009532306424854591878950112320326358370168697810660165060116646338088095080069816529005218859802284326545789974519473231385228505908003429078485688246681197371905288322670967918971298444735888376687617672015025041834464485929043805337879222172206926116813146237493511040768354880692875645550104325588755987123713871488165754986132320627316329260388217030786280009004520002798477113746764875997091948563730788932453243476310642149529193091119989843152514009708249416892500617491330810506607685492548486367532226709156666325327695003172677492190792438985294689480996710579676411713443131659662749947198048203819484917824756909261548434399234692071788936162531138352042985064802333776116938080513662571624175568288430896674799583574079587246688606434909823843214199971436700226675344998405703627391976925265545141795949575783896628790069264859881370663017257774845989105366529625563758225083271847905574658343907843709741762805197322644288580622219702769461549394611414162525453604513452878669590717219735062742821840913741321643628622289913512052974444504974251838062881201392179150757268905792113261585434994454531572848740741030848861533887245800950889131962929433636189128834438905804745711779450858956235776942300512730279728462704800581438998248115100258771927084213560858034137107081659871685263435782830642333434858827455472708427308023239749414064705145081795955363844592329134119603830528017487385259611005310853739522969603169937084844670507480726813620911079304335187223273889501751721721977010500405305948019970207126220280703479112351756188259155046078034131806830190775706602518406428965046669563009315256140428949749286486238492747276357283498861952952685562900925216402045026252609968228029134828803108636046741061885752321734151733141157280498223055726259748513242917008620788489094072073785373379320625797729846431958431012572583885022017836552065491705756590899683263870220290405904730554990136646722661211874184483834356370957476811036830897051384677342892965188947996430672671491119898297242260665740633456937404404728691495218999012386609561968877545589884117528139162947405955243203579157886519777332362834237430681193204270296360010177073350660717187775273097481432350871158714059517122862664842815473679940698540577379676125748495271956740046265487710696392071378796678125289196574264907407820884986024007114117667244677923728279117901514992707866521870785067206004734789456425425282385868438281768959021506893330434339044691212094686910989105595326830729781616574044005440011322758637204546300202844230057341242090975865566031453987671570663907317248228219260358046372682757661674944144052907146297173471331870968908396108956413680460901056560707660992533402380061423324110228354864518338803048555220946375119999350443698738659588635013750685961060366543449492167895654656458466345573524150815229297597147771277972787566090420302578649878007938269091958687621028568079560361464752179908073463556436815966234043106488015934507227708391225500154346381673559402905971008664220795903979305039302070923944909993173570260970720444085925614388273275146389272109213918244244403496954409114326577714381337745170533468318702990432149702943928374134650801941421985869794977278773984077202388157646155736574022731713599596027045958412224273234027441640475456465955649663112913412740388662950968651115455691453073557375409668078289642367656193671490341405365365032801189993701116032795553668982856327177454584025565504744743927419800584398977169597264662414353175182038644728100167429094738040777485714973092587105301037957688003506319396653529027114805222211971995540899999887836791053214428841140582839564940271796624352201547449958600339822225634135948049106560154123577700779620027576023114803903355429398181983127770240713783282502224297852819734348704552319054409460329089106162054099942268001349901517846139089730060728357310249587023641541160120095875459565599795985676843070992392402692229103328846458851908419705206575442628469255115184622421299460905368724320042201152565626854538949645836150690372804799508160306487656614786012677048185049496983240585740782024428417908177102564554675569931547351761114769480874502587388510439195839015848434302261298342132631619547773811400185208128463594493784444223048462013617875408400340557384747335084102083061568266720373928463974251719593620858185975155461490907724287002604367366257119324029463213603430475676182891703063796944894023719431142502204519117275566462156478797513462357652071145910454411757317958551623943399583633089910574062756835558101365709290244964013673724554448221368390075580367956514408546989713810363919230290503603016535310217348368918551294994548027745140510430996365281205118932992803896962727463673722904289041381870731683958514627590416034736118362436781998067758946763986734241712168082565560185735819154877471063931686881218328824758613486820699503337122553809776571332721376940741161408612805388318100544910842329623931907604791023538743397396135026242327297334196420520515118049604282354230625117315085852254368094388089365015738367459822635668107877810377958420595025129180903966133362881874400490592488886422678601200703988889555268791035925022815234702218753378374528011245056540776063979693416637438538613633990009332312567933568779500428761437531676983366075722955351110869065911348537827118502117994789428099810333845241081397475783269698005387124713393678384461752798481187110414291655244447260515436558014232357628154677508524350454598205979945554504956594487179852489987746786349192213226520346633094608960240481249966286517427907406290696385253810257952393366532037031725261629528370369218986928386770394100826395258251911085751515289104323478147555970778889316508261154110465356580049362092010919435156348176434086476346058279824845212151255164096697760530138257016682074501574297191831890449172644288677856704444626538569885363900089100202874608765843698633040672592361224169048335835006901670251505653753531341569619857679701740448381737252741589964333012452873233044935810835109942380973224569262637619660952158970111161197449162966267480680079960456614364397097290303994129119706228775859396603355389261070190128439010229306202595421642641743376544035765356570997680680358950318401073352474042312356566915193095066519496801984989904291009539389529535166060644672654294823480774856990932624383732265012376375299831704971009068871600854569214724467669856993884974074570807667395616466189565958763251186390712482878482235192085526822403398225178991666743229466393839617193120814463837983320973182446287568060764899493918498347598254198760877373566026034890820394043777022553277010299981187244749510877997685334575312689716283591577673097530878744947270907242268549157860906685336550179146055546740936473922855878001826276068073906346262599778519249808808919426906532224816806157022264608560295985402488384996128369637044075261172655590430249985086334000463875786392381612557221640715231936413993716057724075538572683284306278914250255189118738175647265517808955843369319259594161576538383793922703583737335954826995004319006580694496677682271762906328410618134510066242350359327706144404515488023719609734346071974087016365990174096311421809276894641315261807453275763656219455314994342910514101005618696358093483590274337925509569598726523991596061358361560928834062615663701654449221568264447601603508201935346759560089184941316328178174607841309427658120965676306931741509360434098973268870511321636839397309043929525978334730511148763301968590995536081764237199386030621268399046871397817734697056462823786241939878450976474091533447778443710208804870050765568723652861413313313936136489811906948569333395165541872629587268606968399167255084124479278221997575575796804727917170358559661954189671702061054374921871595112234215057539669983476151062436517954908231743003792678038772889665552322960700564617612090165732549102953819736343005196393494064092580223918310814243016976715140436239875725288348726584457787180068599262489667461681983456912664539006548606496154532326514607457725882691508595020527160322008982364531228160639818279614366119545874114611153981555608266199116776703212922131102972751933777709311493296908541156826166605381927583157758811051961486696801264438938906652417361969409554048584132486530797902806805297758567621917163877316067417063325153718767614891441648394407067093496803701906363046788820543187638633928539139747013574769880208742710289128838359926654987525097742224822778421511906760408730922161954194551069017696319654034356125030464246450629513801467199792762381051677999185445151096025047578118667721651291642872954880691749684163532370841090057253724547684945051512449003480801345558476054552118227412852640342147162822429885804744768890792983700297349705642192465700740424047017811372804648530501753101665609305439873474745536115439292873978715070629320098833591437424762584112340855896377903446735471523588566534460911313071602617090595182515908189431682641714767234122969449366400911710185292171678455680884261555360164408812996597867037477203619269839008197585647410042928191479502513421053618027804936980032367650896359336068052930489503222545322819701251763639077115587347115566454670925899037029863120630572306255610979619842875391688665715250146053105052634436637322540774872132405415212161090454307203334917630626257487269424185902190121839248728588305213798421697950347739681118275776290585358268623043111263243445515785157724280374282473113001997024239191642450314795052060831911105161737907444580103082524726591617231481470592822665768909613291342516417444553953490063132336752600949877203601362853366831845059884912529298759999524269759813684306645400192678893052511484131628596616649277735166606503097797311220739330668543255690720746856271223200091799095020728478097476754384831884356118282277952313652479210968521836522170868264263304245805248670268597403873386706589924805051588158906797226451193257766325312728126598299254452381596411193864345722239390751564215017966367379217017193980008944554374522094450912453267575442924094942713707655685867895428389405674726861906876354192331967023754585172380523784337246456247160867152263605424244245161596459512147934456703495243574945036869873817907496827415668669425000144626031551878754880210077687662177617303941361673594941790768986669258413632202792425198309150492763584863000114112681941441936588994770487108756088455242848484604396907231382654240155107711558125773833753188986807145861961879105024065803932130275355893595571786055327156744242236639021912795545087404567672765164677144300772312213746521037044040715088468987673099952748147941035911009409244102868240192342820129650872342285285286959184736070918956598705573568743249265178017032917312780672445604853208193885330617986287114588455310490247602964482971767692786415871306832270384384543019999774768095515916696669268797026873643337827222699209616603266082830587424439920797552021170348472519398742954562104393260753900628191438484648820074274016234408535479582949835617570638297413876841363605892807099509460113110263128185545213902394292921825134391411603773336184058983695270192912365411928453167108315013566809536649483006201192379031563219459466016603232343105960243011409511961451969765804322846070611924701846084620390218650895275640041984902754167559497103191044660923899639039444004761761572237262112944659909963749446310274322536163818284149308448796796217044125736003823547817465634431356810452864893037994995942045254137601139434002277333902032520732531739640612427635316828552524630312497310426455703928865037519158306392692743710564663221919650424791221245868221410241658135039296758242166808811146617486206134641315358290854039323480606871191551973467383220140735031170168729473229799175764355244020184945610244371819858892562252546958789657407511051350738972562222557209989737664929100331207153160888566551252237271112898386274024854940323552512739321648596668264007686430449765317725695118205004696695413488393161432492093661061603249182394295003099667223325242279902653470877330660809936856288097462907841104667268868615725545180939903277059255482357369132490259122241103656210206080168810214478591432030265456920015340050896346634455384119184057127443449015264606763075503796293067485764776834051230587674169199505302256710968478266627263313066663685459777624771788582574381835394814451049773564749873200219014378730837478465766299316732684465968618462131754088786467355918150859627564428350360719047222333084017732175703853030536621784556085115268819727054214449446878980736996727919689488774225827247687145915256163166641788326972537639527692274114127009469189059584103424173384004659083898032992389420434674957311959093548275519608899075597738524204660744854908569436285339865232583754912412008212240647823725631078839253513610721520726159843211758403915191291762825924995692957497076247371347443044391213105410166886946295443034810155758352661385694895643555769220014279381670487916834851819960028249754927599528109548621798722300419226185335129605434802619923398846741580568130683375597540843894531255906109251416933681862354890798668018868934522860683784543302413360058749225858187096967669832813667356075625761720291742778710985518416334947749974524236357851509030039984449808295505944177844174122177590551478103416140243875091585051174751616290310165046233000690237135438660961765220943173855199661985513657412740414269409439590109953625058258665950889198540435946692967223575975149735310187276262125211290917302748880406658130270362028668428452709976823140408373298904581999883127476955099076784160019808759544653294452039630667024082472343186729495512147771025235685670266964251073893107312272443639743284803922356383305302140076978547081379126106629433865788348747287520147752322478382889621390997218119301216538607444245716363944233256018409362864509970049173884391615043501997303830970100327658320180913745126205078285275398487106895574648871797414787695471012309214223457774517085272414327667252197805792236701540258265797055468243517651181643452357064257072848162609729709507581478605903078202093954867465414306792870953835935946694017939627482027270517776355336922300023049094547070352364770154170944337686439615063810395460775051156245010975986498442756974278570319879978192350605394598365926163622613695412820533586243800906452623356693518869716610502452293257944928667949345574962323566929460580962368263096180544663646256993645998344929493691221555150173622650069029509762462132298211196921922467553355672736280468679345608694307574371180073162684399562807714224223268754957464015094840513249826027628204446877662879201051506017952276710765287290716375389176163599320122081485487512911417287029859532845328248310612909487833670644323500841793870221523586639862728877846949023046378192876083227925751399402356192522884654360733952175345218704799355945326961247555325367803514727446685872708440521133119336856738674142096260792005178386512243584070370289584621545672154263502145771517780413716805863278372820950859643938492638124278916310474281683747357033597138542816442528426102860209901772321673701763258164381166487292360566373385652691040344878597166725670530711659505131398170623379381353901280966184566703069128466702860008619773090902409744659415297215386060874912156682219940109512003165963832144599434710780811924752231651537635503561997303479435316145339599226591908888951622701862911143619997456153770109165039808483017946756412133362603157429531107734786845809215415335327861742277125817062404569528299282445518823358082422762285028401210623191211198818899711788717067266520862194466123995374970138839131799758577691241451052924973068526715417537836218736013129726489610865207563030914775720152691006670745436577418395915107370807132979863963243572776684422858348529512318503441489603142074135133927830453183349509712500550960053507437011056298428924113764083100435884522798591354543027507478678429663449461441060283277691420831982962389552473158542198902204723849560031102022987996512750237230350529402196792294032819203537004220622165072774099837700087217449868152278568864484934105447526550916847894512699110322151030581633738907768036690539409362967872101758738986101766224144778512749619162116957893287458662657120181350840290484085749949922000070388307242267692942676388132271923396983062019321293614938839373352924568922061211805470352169139191765928294450627740971961027566227790322287885303253030008163609726189484752000558115676251576304087473457530061650131809481326003125873599068352267046372444140658417958854303930749400992616741157016296123072994753735830196908990399272377398359757342824413475381951666410272196538679217085028650583767328474489244912952595072773805310488669845793679529576072186069923349563891376707238829516424645718180482647965402414303093758682750554832839124935857173423443405770512453007603481099388638987022991839588591184472647198626888995827145638906724170643180189511290955805497747509284288064317659213554208352185674017731499568605812836325728542219719154396225800701673164987838546556660189450440869731520690936513058765774039013447179055314562947329354026241037074187206805400557808376153111419710771789590355234051759996513562631683162075857430637646517218923678092175678279340363527480869894364838979949966951989372958812828311221608842713767167350093455871579371776819575066692553240808222686809367486327424892560554495998260412155487150052528298750053041574423722965731933293415579046210253933046971991701601083240032926682453790750353379901883235580456371178190374517773867607744921484129134317039449317121734453239602515885530004821524561267984485638862472647750455021526946029830480329127278874716724136087881782790813984054584377007892206985467832107561100487571405933100713529399763589529705768517052827352582392648711503740077390308754044457227602687680926244490964624686280970444087996972643047501400426356222831602470959745216735661432108745454725365562339314210644006143340208793947919443099038588177688941634125672641272424848748151657645604591246927036054736753668442956171115591462958585658890827935112665950819916102865562150601251602808785024225220318221374731096227667757708696494720155829816157001988753900902694489634713891236768838397593197583276394431381511143131611653374085775009870167689355011488012609461248835753484075382857364924758513566233569665437558700509872280092090127464981095974305180839262247977214838218129929012612323125523687710501496367263059152511997909976818517755706353508910618001819380920821301890054143045366144551487715430657491407642243075701062795454992477286451274599286477423372153749860697341517670947920187443473036265541304489443763200970737493883070496087715721265812027510373393501620857312661914930314322870681131259446566040868932045833199268353133251378337260979271183815558512591517105519675467011322379568897983864631153919137170786122957180208390457815757784877347449730325313282270910079629698004982375466207562300888519176417063845310132410249150012498336825916096450264966560132407179636228036616208861867213971449772802317176430572209158619370696715929199616651544342741333523943841270905943164566850333075830576468387470855225991702315522339451882058555765105083965363703463890094448793501091351082547050579787584272567114168100242603379265593811725161779049440291700017574252118398582172539403903499646990286678755984812400268358505856394693853018938989064243984593983558716876005030878332562267368223519658261766394236399568293221645188935207683422805081804327562065890254489997475611479676989380063426995602384872180425651101399305468466311437191891744762363075604955570386945493338322162142956207549255544480981701675992255033305925110869745762481010493428037952225248925128054152709443665467552869910819556877146576774275189022344647644012360460576608615331218721550092340907935086980876313569825611327147390251812729523976080326431273379385863021652618128685681261355419676831510515367297495630594679103216450905768454008861188973911878410022086858346758160484809527088466783922892991496121797587396503226493659281824369631589178079232741386271577634585154332492313557025426491466016100180738141407605987867193172189968347852484132840653588033551157321981455265299432991529200067125582969631134719005030982011082021500246585064762256997842511995301905182453051503536673192699861435698370949536146079586531626160775509695104726765424672054167273367589648404853707077324889282922838938854390689634173152975787752272877899626591466589271167330544377007738826216156008280839812970358209172065007132841376186428044901225055712708775577108678184694754022342835585537572286991635374701156425112569763353658052863274759192139875082955990450566418563011069375765175568041322837044104807524338553567151209934432617212722429184973366569057877354745393728779288104381029636995556503217954203730185044775226183951489318264195543799426471241703708956880564466328232213929040387204020401498932295223543308007988045620161186955775464402805263695589894230294141801583984066515069503865148716531512049791509464040155966238181490255948223734056004527888235362088493119808330195601224771042099428914158909034343656654725151407913680358437533276009170984597505026266993481036586615580119727802318675179897692286318828147540444869208376572525086431836488536126157724175560716402590744331287216986076314720952319150834223653059286734096824950226293905698395427680559938650198808804261693210667814484119130983903256036802335652801414607506982125432386300823301372226558636925567381656388793445939504430563806050168990321767168434349800610739193907779333722043991485818138901504989690942525807686884053876929236906715957947867488275725206312419998985185318600970005878759468811829391660468151326730348455147108116066400444369658451529322870504782729684326743992005928734624200113742551951859703027937123715898110802644863054960823194616284279756863259498650894327057476759965961035827071200455264700077002532242548782185072719588947267820156217204867441147239053183158165902703425418226168268602870936644574770008923732087705899257801472509383897367614878303038537659103663260554177435483089486877734568424557861333189391714828436514535059067371157334356897115766158855251006049093246791798942166210362372473867095733981242131799229718240990442976245947217183586683159929731697094262874968413254023254189948087448245674104023536441218844984573089850693598946552336885148812445892379318166155853294373829689990024738346461415701019371559520720126400910809917094642053755681559506177377771059522945046556948319551419410905642427496889393266479453147386515441064451978203314919899703325489755513432941724000744879646728743791252228988136638288213243623507052491216844376562294953610706974765643340472301238510066292294898156382510774177137360277836636932497258029830341338633991485999312527313742009682382055754659250807140144244339571467075621760313275979733784611841437977391777213674549665199283196683720857954802495394100742884017316288295359548621299810315348789696150841551312831504638271176006633123057281778765056912280615850622763599013233856499533567372254099433576839958311192288952077177565358298289418091608799479792188525288061538130538022424674181416712499475293579228842168943884514772585986938545526995783394128674102847239654076649390510707305049868624449436319050732156015767119767311902015210000050632132945538912050426866030305121007595960738767407067694455701116935668349461671400317600006293878925491759833827880662037771489572931605122404402902253048615803068884626131292780420269178027372448876977771012450870857663212368725980223729593555398931545463931981074213921448245687800515720470278751677168966130955545974470891444416343926527237730849237327053860942456205282513971200223713884606183750727581275297639269051418679862291311917363790510895095626043026274676520682927315523520528180079558667926742185934741956560993624447027702738605391215407341587197207323607150609180791100544222061709768477854666336446932245756685285072102111774495946111033001831194865414204441848553331011197132286483280576384908585648897967158212242453525730099671925050411670939949779186050880251225152631241692126915692017472696123571477715245527348598366928279896221026540124364850336498763115537627895927390810444957707041929664367540738144237182976234255850054521092469541182652341624912843666073889739705706735262467803653056466595542567053682984820592333412129820100677927263631880360821550357809443889611969878235951873968112271077320706504864473802910750492241702660327582417875691332125754357857517209677738438783860361902397581574859828920444088392097162491537282576881964802380141204415294930875385587059156463895683717016801567261364423919416745778749438166356246637654223170225596830090001165150966647733776203104795135628239839580269828013831823345873908646808375811135698594132605529015460720340371493961777556806077421607461898565009142010877493462926036861352306277452339084731015617704891001989888988260897860124911755784796589366272953479291295037802307907688582899598705156303585544665357478643926001102326243941448111709514470122545777043896805459487623927641560793753259861560068395914755693155231791248766779741630409028027044768392544525322233225365119137150527659573231932518289442985397364540738933302683511456120333445665044658032558483441942389817029415210247417641983598134043769583710411573608948508970254268184492374101525405140621133043237183812534371041272280961599293508805354042439005596519156636082798996293911934146930135306441347113667322610982961071737810099402702690623090050314933467852685751161727186771796797762778645828100336785781542079372043571066252305534290910618958202409044428928838537390975528999719839536545029986123677594758094532345803927510087520786331121482093543809818184022073863565803919513328072409050536359432675165820352801127361427807090123656013278060646828252920693123102625727657981674944643003652233277058628005994321607309047635204094825142569037194305663614755374579588906518079285771271784601801133914378534697425734283980051779644458338594307467733310605572721824616984007270902495854110397890404009182060541554741169370148541948920509450177029132525375270567097654229878496257249870336876607328734424102142351245174225927058401565107851146381012951595933475039901642062385707013458733856207953593245929255335712893470870983539366783439023727921170533386680702120580424778297922929634558377473475147162366666913561627788289927620957917280365168135307486595581079426415782982350359836607893927390128992237870899521807481911180633996038355426083070348709264362017073576975673840690162729607811254949447957361008731952227265360129178133894741391151732066350715269193977792614928991217730188023706633924616254777065053803269868017322897306465680127345089156501304419946037674355744751901721495611398078089266206246208251467566552027496974500480782119741949070194956568293654176522982515104480492065126807110006828970381917656002021405708099784759918951939517338275518738104457599979491395809418613180733654962840632561203151895816896477634818744432299143967839252416550884985704172988175743317847391451888449374937956696686716213752150954009819078742654381550736251953278441805510856207899668241941650446711875293746516132258472900006487809415249868773135014411389146481381062563996632763810716323813411630196819687066254274924209785007970833758406501061080830158121207797901561476079049749197217414393008229632744388346090321863803301193429274394529936959322512041752435647477875319047635528097056143445113473226264910000419342107266317118712956870542514348611026242138738790730923274031567160379526093391669452924233053503349353466933949239448673757115656922285088226716300035141058358855115794204604184627101388657111973576660521262686911828341184035735967409731853244102538758314946782239625057480602310719044136507402641635265582452408427832586140813459927713565780125499140964574432270983784559729085955061998299951734145385582955219988660434056767053658292452699587371244108657078652023117993457393807358413642416957670656922995062452493176461260981181833250219321800445418057330710946814767015377497344756351913738098198519143933338528870221068544272850230255452503881612333243434343863461712793874077788090989238518473884255468303250245248108565783505897696832736276385518316408286586946824315950656534620258031325831981657088779329829988250099024732669579811550932325867240116105439249359335256083751895920976777452093939838775176394800896697196645884922492756263036531347893648246332061459097372802245978457515624459093511059461838553064962223609618279789260938460217707394448072009978920880536694172532874472753644142008435492167551133363721226969666039449724248671881155862734367455371634465224967922599458116822753730319469385939788365668975143302350162425631443014160821093971778371584732600296603723761642967952644787620663591720890914262503420347931483951834606413812703978714653322042094284596283209241121229393270608061136076827181461766608610718913736832625714939656300717826249490263501027540481600941588669764624352687352018049171719330034037089505884868805035529244268755183092263296069481986596690687884097639780313291662261913413708747460268531604714303608595440761216301031258787079093998991742263603556601553198283580239624368364082740045519926267096807267665721884683428979697136793606208620957645359550676532081713562652277685692735401638465838336992985827947122276304593983342841533876023744257568949871811876454856039964267770345904889671369587684452735788762990696696460525266807313024092781694630940797334031644125010170971999656459175559755292860543930108839973172064550218479729845916159742796307235322573087086510910969400723963233745895092155705020553897114831020989915061023407685368512267446659228605358507024210186455939631428634634175224364945579877098081498028865756981771850066930329730191671399150396277011125080504484509482167858599760683864711345054285884417119579796552018819791791401061092105235717244766623370494233797136761726517352130275687219387179868998110107414623585418033636717450449207477435587555803392797871626017362126453586417004682730792327068776576238476840112885883966993055432215685914872768901803736736605459642945179127797977283955923677172474165628940936669012437807169141168758482550067666149928885904650216386501052970293628989948977718342363135118634468314648082245281993824345388872134982600918347148536497119973047971323571175338448113130524045523126716691503471438624366396683014224206171781845790303113778309147949084448159023489667958627761525882211194846335944477764114248233106927632253111217726959953025716562674942288133811893031422573615024233531193074037809697282303681727859394785582044424063915213585203920301020579237289627028347558674955572132117294514820492750471584395697698480919157175635910102284305520700466020437349157169695787843448602803024303901782586271466560335104684087840277070291278222157133730109408503356718331958063669434859097230642320499581334901764324881938258101964645579795585007420852019612096309115843812949914635679511721412737499368046090929365281904103522510166355680794674062738238658119871848298516562226629074486624518401173392289644062667116943724800161140765501966364367434724926904203306574247330530570703517275850603947796878105907008416817177964758513320411492544499150305948341052265174315050964292846510097197576632204212224876238234890200397840585731449869647706248955948766259618870654562321026168749349785058880514731486087801172363943050989138307559025069454959915256627913170794427642765401941896765583372422536390991594338771402130815253359506397529248345453904102326567955617288586642389945785031551828726084243372876645873259020513132277816030029611930841738172919525619069083342066074618224646770050181265444335361882879121749914260580812220519020891194397483863876387469791846901592706805973748732615303054162103224077226796145114745263339317199557566946284192771541617856897353867703131670491151175776622176666129967528389447819597506551657915764827548206604983928330018876068512898144696643962464547107691590872001159197344777772314980574027026330871643152339944788589363330609580140188953535864782489684617931338213040476164490759849313458245405902592216884345543913602246946008758425623247774066352010877467884975680113967345869898752220873936335762281552067811228652865935591454287046988178142869749209632393864810420178903086711801488907573113016589206267271191031517302877888857435307651827556701464597751362761176478236724043203193501472063686746553010359806992732867728403503130063321051449019165553287133120962970361593795979412545014415259995545977478205484508950628226827874190888167691434877926562074619649608663524395190753454142499010313925218742438858165250473979561874191813439857135780097715869388410624031003049551529323557955249505421035048495292104904572785645740988729512661661092555563588876257168655487317426187993381194210131550075050628564073466846206770732765914903471018621481661678079426388026431469962140585368091492618547669441401455153639815541433394809044439504952561202778078911724077300922449741241117208671797461410048810307761962537578820036052756337138935413515898351206178795287807534226198843125730004104376601570294635216831922328786325744643289433119130525142427448454858288657789424986344836768009703807627309685199752918758575204194665081620851444955289239023914374646501166906869256336410712179122035152023523397662692512855619769760009015567352348801774997900009143555761096132274939183534231993109332416894992591402580915385691259344682517340242320965956221989470433146594639580620940905181382814061922489584212469692813710714900105001557891383549839357918965301853854900168396888565328070317932651187982014834284430921854214166885746852391262376033966532297384318727188954422780680856028807462599332165556723403657767453236318590389948643949516851736504397469859197140748841508696408463775838572347354950689225584908277756897518336126453119889654556730526494439586137877117340227644631585780438114557604329254810324197701271185648342780660087477567775550093706514584697179118492615711593919118020300865308518933801332418638850421087001543482069576107056092254629786178700881867392297942125678497156770483303286277266610892648445334077394858721667538226761470616487269329354918480720629288952799592339392364282070823159420566756645870093213844124712108685461251125128339226613271219417908687013926656232474171146344390188210127053077624934152253737935118396394849216904697462799620916004070337707808598514717621223289315235814710393666886444918622562596273271940110355659549571502974175816707942103538718087194623011211094863700405842459102865307640716317579981273838477032532170786684765404614828454277255022853619560537784904214404192174181339819534192508391963645290917553816446576595923633130584899236119227565223192984885719970677857395681432716509718418550304793360010451207493994745942962382199399288500500937042697255976610268600938578578940507084428284805227463974909483115834620814863180964406124600446149040271834596514173917496246204237111160543718334708302473566912300423167586421090237963184433118503162573629962792458476242564313442959809624453176816265380959012685558670981586636287923403446912185980271014607070771656368320426250752228708505555613288068144121055927216630762024533143886736153474332689179487920722965507044779000334865529739124452004988834680448331517688289425905657669441581584083403887514029207752780761517715312066109590447485839263062433850629152639314751503524280458098734478666651574355718377512805552442573383604628208687479108599601469569407548578484446744104977917702637064895682161878628351234534363132041123107502314601198400578231543695995003273847326170456348165082647993189481662209497886142293623560073793745385977658333410136907695530052819203055294236669621290045058153904351384336653449693744357448411579444825432272598291162897803391589751185147776691020699478413353877712301284751220500535785448664913799374957596895220097257676271785677227376290924649465125141211396961904645349854677443135203752859406700096933769791217739109226918303012679569398703496633239840533555748627840071681859263684489660886997424832914080542021365551215868804162810816394584606497297069730747540478947983926974432457845117713241399022632845750859312437480809931966700494166509590741567013988566049032411870288322232012549646279242577185529089582496815314051364821320311273032466937591899332710399773031613469006986226882882006514559039716796884117600685527748165820144261760785797302125376325230715226964320660494012000316580009597096726807402241149058897211294235031777155357539628469433985596258164817869284783638485839145472033876770363427992827255212991100068782107870657132712023957654532416676003911716612054343780109948931021167322734900060292601739283243590793895759285396274659337679684648964650167387110441592724571426443215563129217228768234504267612053874437577357076175955528797984055741802665799805571099165857578307319406811671229427735616512136448739145929344604239439679508526869534896948135716099609002901527560817967728967888445158811852169420653314230070446153507815250793872708694309585419178042547525076111725266686190134203973902937753477048195822588733654074556472812981484818761137748370948341382740925173295512042008453318989315059924541758019862954469694107019701670712639542781834823966890869525346250113549075440546633708512941162536170907236280536123656456447129241757861680428836138224511123873460102284780119525399466379134538508703945930106949695599107713854123672512298259474804898595333072770176672887228981308841460511176022881965819199170268644404089610752934512899507262791187567461654838936597511542167276781892373638349730873286245666313636257186290109701324413432382380272042693374800998598304714143335425804418524116722132071578977960814186493870836717197881992530420851863022348631984815782892231639946033561284971876090309609659907276644766660682969674557439778690509216024134021079920703755987276830571023477706541136489498237362710044674291405966784597242307141203535902295612296718895957014933194350441111993870515869891247163317049667759018100590995583453791603858958870387293769178166635518580237372023868035966441343740933911337053807683987501404599722120404219154647690946262986518232199116954917119572832352199307132783805643844824412820870418771354370140907156365200895227104775150917279302649697064663736677425736868192458264096436462681637867764370779372358989872746783905254462175585400910421746377676173184927155918136579059782631914664029502417392414204590337247886238539682513978952807839018868368145746267633801545917663875665042268549894795450082922776778979183427823766280388276317880106364793135656257124176691057486622055944465999411224701260893733238331171648805916854278202704586040074697730233272746924720961284927769086077349720249203867958351678542286891513660350996713618040593269638636918930422009802874271531724012597813582300119699245771060781638157297855934366810477105728571363596729650176644441750562597646295793832069070117583786568935450083218156083883208588984916698838712014835878889950461476725390486474906150793386768112460943306003370649342689721516765436570153054624647509898363780253248917898447773207692437089609076332418315695221749659186274635425355251093619119662376859450065626850214795167752416261495566038626436098929286236038025882813165586439570362569077166397362018653373576284831474886491315142065911345727779186266028932525746634376491060328718250758299633278664805304956346258532593233685299264934920453426868336772337703727943712259153810430531746419543997815923470675981585084898910319717975607462997020325878725136497198853554611598547190690386214813032518973281263274316876171069955414554281813480049672391659400779959404744825831147034126372969266699907461577377960782915067583875038587393810994391893023518028876027560448560231628550344780590778634244357283902055947064973312898660958230366392982810683713618046975394377545059852146615742085972933703712896906995058054269446725178202943027122943954124396726934308910520830206952083080272180776762761836159345606199143339668501503605650844299019182313977502105535275763033858449260389827117400129666851678576615542945661148603116272606957650424920832723852166553591456573017218269606222325781888341585677345862333738377613157712489819144522669421997763013930583573363844019839890611532520853479746694533974567836364507847226557969404511902775589631631303262760963629177019788985990625748208136829486274744894316600295752760444857481606723977970418425117535015031654362199398127500631668371741091605394843537488600371015041032267294956143730515729320571933752137092874751239955173136686865866163773767970373018241113624040558284668813466084488672708437678526879461354858058434886239247193791556027535119892052242454967015453458310134499693949934840170285598514043996450616697092033226542596294822411158549622327684932788701131472439162113246608488217820292812915541181129929447663949261943042654001304997711180615056118894824589560428173424840718180569776883948886335258094634902345149431124346331498239961351912555882503739937190302929273095678554820176527991322345895701550386932946595557651268846782924629540900396681310545273161083616287461635136434655460967409798496986726307663233213855121656741403043525976174950974852598826780066709842873428262142109321066387462302950681396770141154941162125976968491351687783979365886311765784951534506589939893578262305400587120539289932571397790727381291820789613878349505664690896338147243517152674677507748215931247911270461738631831966402132950261128572960154687022585083617511801992639438378440985556771204219614812656943885288295298836347108696806859440448034711865013407559364081041363744367849311013478966472263977359421371825488342214875108166750003379494061843520482768519400884699303364899230911928575996179126024942670037375790775723375765302031130430728355690450831249760750844457266446878497232598461021585253967175742619315539119315674886741802882586740403060308698615551405391206033457790649679713929614338620618027517020119873599980193373997818864452037419022023795388155790455150460335341671412416007732488780279759316543413221650372702784562530472329319694110445992410581289847857457333514579137798484849365873876109292409464117365327669789409405300371549728303634888797076170814437117465493183433716964632312690710539973916136708440024035364984672760591633855253098335477261587391177327414481629631336922160557204090393679485130213003411570847407428412449213118110835038209229086450512213157468095468202061941566537966794102282762928177203745860326604703585076465032780314588652943039591962528529220141980616642310819259462361467086982489245302117226025536937687701345878367630858823121671295676592639183887961402764365699402103745967375100261169206359399099680689305181381366497961940447538513775742020844303412399729895703392869941357885784332747637141610378328390501569566629363466592934494975130721770663136513632885575574401252501788848812659490641183817875401159905275091499417543810975078156406728759962658306024041981370645123721496475228360698296994882480964052525794682657311243276142934606481149037793844431782305662142436784695379091368694353312527521606068734399136596848696890918630766677531782313810340989305110732281492306250297313586338626631548588648517061839271416842062711405900362069134867452639913070455867760309074634717922093731004021593547577620151543775453293635854010200612138368897064922808045440327102784976514628142159311063179842254028586484114688207591271203409653553708137087704413152358865491130603323053842118797956202402086839506560901707988327157277201291757095880264904747173320964380538070802897520677440626446148951812489090202140232676648137527138195579123253838594687437178668813987134516606749969161445976598906445400331296205014800095803129849336896131124156112988768419242443045437559887574689928544227061037203421432336143624050846734654982729189890940723085776455347017767437580786958062062822109128081781445539036279057657166886423094490787018564866307060097757221945717328305308063355735422683255277038178202561405787453707830613986436618603033390415937491787259270401231160043313427053989769816165036565318267503210350404092335886701194993606998337187128945737645901731410710294572632902778784552926047369871357846646260160442045395773705879831370468847733042882407779437765344368344073113471444236190220818287387024581971096553861234859542775159993878851320632338671521871451210719063829908721470840851192303268894162274415500332499819474557648010776343165029574166216112912785273793339985076666802185465307393779856003843012480799221570638891130785751639708871759160823323857281787888273149011640226598486069979480137936444722858332526547312363789540957645246371581208423143558387263767990607032247176818516390220424190064215983401602845405636083695848904261868942870850936853269234120033270221090941264513977158165113985771771451005074890361446411930261474567513006064208088978996830324421257945353503473475422742737743763998905173651917266317448981294542865499620172591856716751887295921530791877904442672562204841845572505837174120953727767860825687003990231601665125724144904385011332697511567893850821307594545834953648130591374043549016486522596066853878258297771744862771376449572986338252016858954413011630132976879157158339244600842859325624866182759746797245210272336664013548321135386933498885695142931124320004808936638371866428143480880790446525691768982434457677430526767781774313640275500646166983925699580538191469092832054030722153594937575239974565590624758626641478332475730454183994632128505464514436010018479942754826809701567745533926579959493322717581285128051962719677406465681660791775746909495065967734655365352274111092336843310072136852659651532156972419559431465973946782904874827394855824179047505935633087446169415389113422816210257460735671832294712716317897449885563881302678945782796681969572400503963628011431074270117779044752283785294081994900376564130555517181513700195184573337474130690067466291967452895360670272508416332620678726433740454878623067307061868034032793945813757158325626455512318323572051485222954346137330234418866601457871957234128931259208627307302690625171410634911493469501744406325173712661679384815225440551279045199293675839805426476754231182407469869857767703924409913457408955902723955267609284497075957292876868432365063256732171079162135819403371453334120966469191117750051969991819071621327847610073381644690739541528515757661220451962462715782786385811066549910716424632894135626306718981378730838385754882081390052229184197750258043840509855134144143498579755248585997760302698013867614928632509540494902020284629282575196537981862155364907959809216674044089485105055756552537490177697529811603333591685365469375290702038371303273636760343442264246976486745022114189374519972579352632663129258043441794505963124880173915659592366783106692531206047053554707132664683372930842346704295055511291935687263376913248400332877132586798805072857445543915807316145259677986554926495165914688935964925943537000964418436969773557675252736241683360856113362061306800733760343424280228706510240298662363555698145679992828388891091740258464535622708734797388286953949537521182408682486076459100143188086041033676696935635901968785074671976395175963434553161094803700508966085799228315779191802905564176483625753602838383167069069793559910105447599192731005034994292266881676864758704036139261907840852166116349395318556994738984844657265477173261959091355970655625756042623316460515874450593882698017910021669176113671418196659363523641975694353304263491326842696541461285647131272709638136068265035278226909106622666928333565505564198030502563240018240250367472082682535804019626689886631260911348680451577412299618563524611163440285075085283470005521638583979850916176886182185427476970444536023487913373965823834353456829421299676537229669541797466351565318077618343540969491549468334415526677970570695612891775906469620044367041225456096233201042118633265060579018594788616265741515500200415983446502752388318270715585392210594726585199747045074142707689506168764326784192153396630373148388262776523023825513903609578260521492677621657354171092896349751235487338257226226653415414296617112043662948131961683478376039864732024286138437401668961399158503246631133540240795881640875887227029028541334210507857967195654333655515646707980940067314510727839700520931736766758509776452305244080302822942888472395291818624941182769270719855411747630771927651516700388662545656363179545725917864879941000169902638016059292536967679334555716096544110206757207893899480581352328165877371929364387545641352847642074275449487999005922884586161132172107507788476527028062700391839644657066870997637123885200673862548535888573116018078056191412343982762380670992674917294746383015165121594765010089112614720215005544947399732747781122743032481495614432210250675064087324904441693276559026007839659845641143848973816754653205907520134022230237385185924547101842694144740692034156722161733317628326758098914943680306084201209852935597703720751088309920389239729167829654046741250233418924359869922829741424837874707000507177321292811040366125451947906660427648018011708556763033337605093749591784964880542738152270515948599857912196099301969622172216258334371346000959888498488808975322290021749701392177143062117621610934666484554524257400607448762967848162711844212216313058715625080668626890339065382120888287292176717201938352597867573012157436493456366007033538241609297573922729021451441177927614407947794868773485206841692521227073310397012552040910551105115791668294953814340838731465047067016590712194002848591834212083188183257131422791832405514108231289857703392444894318019672506921461683338673757929434215105594796885960774960268033724292845787645167490103562176800729924427926785780977536951545592347081754438614213658124744370175545427484223566165682066972037040399167199552694622693052452163561621225361662226969436052584773539698101943136937037225162607197556764483189467555889819218679842821552353511179306825812968990342671517509821309623424851560249862820359876200025124390787640175717400993126304062634295032753988214929622094068034308947981424739763013190571486631919187354567584164057927958574316072715698521702056598755572871162263789727107282862659791940118275604758054379871080450700100135421672130047482908331779673976906150088506049448689902431424885777982002389891941603925802038992229183443743760482638192305474358668601414414477840361726335309101459558380552159055134199694970210869547254663302486305333747331542831453161267077295517254634961159493499355839209347004860380113453769887059157061548747375527723822484287478079803584585100528745141927100512482889105318328216218591876170986334498794723663096001639116822922667316134310693805203901799522855343439227999648246185332409172805839015738997299698102031172779151208734453779917461390693137851729078739974980068527246221227915121519764228693103407147436664471435410592201567435852766224712631042791229572514746447438495441296614403487075878201419617295564963384060862100659108357375237329478642197070387959507406254243693118277331077150040080195815194584684250409374919912623336762898991695451213627841748841875682693091504184364779350744256677802340939993579179523483976211796995832678377035059296486589271120981040780658695785742727596749000725764994098595630133365170697267101306859508609533246652249416088158854001674498978947180111286955757574017005102498490880978360818960229109112324565111547473429869563484230797130980903056589657924502546856802460347105887867157549471327023187199110612125000461221870388521439933764926667156360997440075331955427868703373035928959534289812871178028318805048791808674331619056368525182842978056531796842073036677033530875307948934856368258726967828689639885388297365900589671266459647812030196404746249053580449720787423990621894336966830023737262082552192302782523881530715886230686460935130523434526324106304165396304881004720811836118330061852454784246088975308859023562620086102103338390461188058613644548715229717186909276921874525647855097568405390907688967584194078754644083076045697050201161868699363695227332066190789363615966506694262299875589290837238976016653333645392923046485922232279538974399284188118940815401024412025847753667087056593881236329746381640534243618140739415683513843606577194450680619006638490745078617111551321628326863596044439872615455775410599380297991365953272670169598923857123412404295996383708400825585918563843272668473104262686158542052176030054377184550789627711231161008248103614102862010135444174556087725817332287078962712988018980480399296725305799916016609738341245211027082976523977126138374159721380672559341188716710468347617708269303027754879485415258330084191668039915462664803420549772909699365215962277353272553174886356940072513522082830464817136448564817664202389999128446303063821466292697599575870931073079472360381220070648272866906055990158203815197206230295202244753169386798856375925986373097169557690648692109260420261508789229742739485816684499855317872077059237953518265629016732898801804365107254001766325307342292899596779822424065481124941467379903008875328126237958311293183732129763332807895415770955762821345309117848946274057695132183257417328979468292411834672089616214856755671731445816040674500383349246561116370188813868748014538367640196306033755457796410275016720276240813967594354228172383180837710792839371475076966026215913663324231519788492996636174106368852990874525032291816513536456717870595012787715919997917035747857410457986393517683091703763337764780065392014147609502763716953941378731281169007908575316676464000025553596162388605559899157422617322310084855808913590912439602875580003147006787415793008704963289577903184285979522950999881381218767328130088323681463411879282378170244653904160103693779053526022181166155354787961033499671239980117495339258788648093388700772986409612055690769499294852493840682971438630086749290974386554467426337787077237334077565666562740764935442220051926374603026491098178648930431225033373189341049780317083982258262709160876595948368723620912099517450223856120428178598269928959055400594238694032111375450140134334461838436061923620177956699674571673050621802287586601073899603585268989817059962455749186033989503481800687119740389333509138756340989086889881014768700218472410874114299442088118995023500100700524298515538581492791139963106086703165598843960626265184951609798257910939787788868269667105643863868686827603991257007420538050067751460382772060133014767525890497809924777457280432150099919610202821262239233145680261429279004853498921846135761827006420978996252738794050090540303991656080192968269800396230612688394523098316116940458040939417064100111728829430583231331797212842094566668885469569940768053064821056942323505435768868574843055483219583440671875035399384043346740864323029557441909097248350035494924017886686271013625228738621876013740881535462321498873520676424094602153928865493172546377415345664785601497707445196816723267684322672833806723578199448539178400662732631392365993191857042002629530591960604081823242832399450613344170503278374854157258872595812588676546199388269766441384256253444102018280028793214739842363838768622901808679280704450921028896734574423058848009405843855223912107153084174735289492951973980334965979886106166041852461759761697467408212345254736881625819059189732445738368347259862391691201579539302674135049486367701437910642756517438491524486530163134885884581282215771196218271008699970817667439258382868224241255311246015632492506810367524460574662796333146720178911959554412750944131851106794644576075844942826447608308640502799791659066564022277381619516798453073218966329118408836175151387287336488964067669313894017827485703082854679708820298024465258965866542825473219016875615637868514234393648430640831676416511018309558400822564350681031344143925585097578092298698022616798980696855800816828732329426413980003246143926179497975624439033771256788216595820336157697387477140897347046400531071152194229413282011138111384236157156896654812947653158009864529605557440928574512969069681926555225748461301235847976732709221594887069124151163379979458268758793209931391726043145006605289390887258385882077146846008941989005824604679862973473466487539772257964677806446823980754883001124522942152530635412598758260457575758598216829581925919141789169764992034631350623229177644945396711712472380398052835553199542979003055350177305673128895401974957201807920180624821367288707839642940271529043453588058216664981371366671309797183631104794708288848562211158457241320249070069900966386400007939046701357216440858039714024799342231838176363033716133333069296662482556355705792451067311202061364714313722396019056996945028471180780632598674947924799719083963994775227744843171891002373225177668494450983586896021182845696991705267906823326524161837437294891895743576011000226219641411129186774824391412800566055674022809247672835337942918917418466752432116050181975663330731677909231624017273968188254646569238320657558325545231527861388973423320006757124450799286242012939678852612538027045617135677466229386050025609067028151079005171967434203422710710531853456078370154409986087551041679809895682747906109001639270479537285656498682623176006036555389162184878601599225575228351990536424780429856354690954333816451964925909788713789438206766030256806116025228945607183903276669836439896809503574557034556663070499173273305556931163570987795555083387377269066243129339903772475044823642271337719507851592623837383431290854755525043243779405206905280856504765125230342670659672454619324942822787570638232044190866835986388543464467962724077426976796143469938380302389438541449981078388234918245299709569489298873531716252492682268020483956741381740852836682874541381168088665654583671952856736142138965309434700060451146534202755197156096368755496311818147969914846470640112969099393939828175933951965569476735650777537605289383689376296740079088679348379888129537703464422397538757569136839135807338005958588128751517897516022126281496199333920017960544003635357883915299952092614374310166664286645839449410642091221591422620571679825014048243753326949246723935450736506057980663322250901276577716936064018438501033327195333283312720456910541196222149819730840065788649284026668563545266637371806754946826132503471300070903266498182502385034398475712004126220835356399235264219104933573168413921215297192389666649045885762975094332295814506097979569367747615471006786583435744521710978211932787390647451563252235260044400203747357274053499936436119309216333556667666779309384757328950940141132979403298966485630646885888526051373882080280885912976662487266821516976283105815565714080874826904024231667535353297508735369554702120797949434496539327452291403185139129651880777981323449293053421174913701706387384128281814417083785663701645512623539581238504926957983253952341362844533649878575625771178522079943440221533310138900891831469766133604076933927349857235761273795691232678130742534266275679300513548086744581534764477958200939575423749205150842805987995340816890494933583225824211908331007109026828489626732089508936059882738573133134434278370928037733880770502457570488945570162435341958009040307669778322047418981307772682143169470391150302484533018912727178857752794516286964738365803570014189085827925537433358149637391500538064702802697577762814520604669916772170399032188341227876174013208125028587135121919519480762908365685927567044683021427036383363436186868026615340488133219756678630841974874961408612660664579244235150587892763976663138016393690684490730522246722269533467349147429105704981707534352733245196944206595807493375743532062584867382901364053004277077474179514529671008236260728589374137927073102833827892119675420396605848636491851680595577823665890969822423783008430189534631555735657514197368429437356837273523697273691784722851767503646928349949031378531548510601148721535641511075555789731566004811672895076515089566490622268204338655373656516367095499649757541317509122621095539883004652379491096674978250564209425245663373556443996537898413207498736511637394078476852002359568108223151583656600005577519892245532590765599695172186853163961694724865825745166196765860733205744004116601455352136626201283494557408337935142240668913752442927990104277363401142491045188236993830895515205529670952015917719164133670998977895724178155938442309985252803844124238496610620810933691694492361708253058667521468392912743669130079832464551110073121093539003426397355693016773069403970174595549867077544337507161233067710889865663014883929240065251347984172018390678387436232827683278126584125386116211194039185894681664568779726675026203313553439891470977003567756127549544181373924700992183314698065767044478076036225688405587096263499671126337586115404204185521858757720471732172711482484817429464553721300525190817466475092421242277741072051983864927797694203382833254714696960190816568968644604232277010764533459385660604111410500961543300741926174629735674823204329111281732439336268456505552068094592547424679429961410398619278067417991168193710471365386083638780224013644938451495294465034830591359876534495261514521572748937286924148654336344526575826291993185878575057719979055627604814273778496228254523152982732898267997561358694295537063676794190590635605952571751112954761752400357119447130652411528785511527607319270592907243417222472694904481558066815890837867373935329806843688896082502086650919100060413981711707963156060319940258471461815225828942745307009076170159564442915881428518504991558185194915239029523887949017708214668694351766360474222313922018698080417807347251528562199605413643637434426244485697090422966645656726843433801462996753969046273771731921404285946999741946135319348861086813171144290348676130033480305267040571635376600010939398122671615466022138825677015019983018754669698676731243171263916194077252151798728438927119123903696911266841285851211282102677896196565799050498435815414599394213178196643158438508718782800867037718161298364772401478230107904552668812228571164538468497142503563844546501783939662539316089543880281574358774431451484943067021198735968949581741380187252423413231086352932334153158965071558169187182521789258480552498680221973287285489934176670202484572294687605819277362879972370521514603910495556341082332665918576854491037399532591075179495711515362174901644097804757255674649240458965045901972888424375726117901183881132573612880435681974694788679274613374912212591627112280867758380445456484134866682009643708903130485103814470757486728864564397655886285098038100557806249450772216277776181459245451838175737474417214059167515868036026005318363239443584549627353933778997591561845337217217310774193402589911160373858191983445739772923679474970031688393119880473794364352453170107075135033094419691613842364256021348960645917745517784239460191196887490168136064088557194010476542412032293191739548011356365232770268005464629444034617944442101461113809743799501424875065510841549627804700970934938416944304241266280198713753660100698227632533823039406300584803442198408126339940558913579454791858544905625546541151409707964879249749093273143685383174925845851979571343048604951388864601278148310275142663892902496064725858003499788532728185114585518242185751439905768231941572282298525870161411703913658352705733422939435801224331889122517327954280308908053009171066225619872170509334021071148654479387496614459683303226168511312806720426045884723834131913569956898620941738681397909869908148111252255868935977509037447111148055305576561399562694212527824303928356307174220563452736726643820929388962860506346436395199258743261005640267224179872904498824062703984530387093471445133407365106746547907299145122277326403554779361735421981173221789646664930718613822223151233982955428597441003499208534387478343126657005653407372386227125909162349139531605812576724789521779131274802084696997133793160505631192471479995733371076936328829586591820972294223589952169819420750813695879424040966327873018377229515841447798608760725109216830017480664823927455568533066373246781193428661629264503815126351154439067626830798855685499504677632175696943975478472704094966119390194137507056089640688436557112992141976788974582005600040964663540267249922315169771248636741009854638438743220592520557847402527538136097601907162046929009598486664692961253207462176002199696333544567090252724797847372743929234970405865783765825733025631098063733116067714171961392445772584376878339016049071766986133108711651916547479070895368814811080301905357069778933312424873325752150575309537713144266946687663981405195395048917128422985773376072161238140740924601579995243921967299946408781437658764330425382459365965869252525472105260938153881462041119136516612230505177622335171327107238590084616505394962091895611510696148584492555172212478250716981704848352088857611390768920711227954171017363494130433501671389155723287598748653436833564345796644890621524324697093876060290675469134349496023222485703766833914031537928759759090914914641627948083840280066193196310134900929573451713330261495130161214951817470692474034902914669744642407975055363430073458799087849080321791386082968845579688266421651354747310153341450256644885819840155858005654365089727172984847594249143103071701030861110705312740691737051671753570520393867559824930482790771510124027291172151410746312825536627341718637483363761696212044366390042274981445240630078365061913993704047458287668335932974226423574919592007362857648111527114174171122295385470869251016683759445906737077667531457081447167859103917276975457497243459743539283451423241514146682457659654539476661151391348806379756556505890104810520082704657541869999794201674877513419948390555090203975848474350403338921272280929182875022976480817554187805122388436724606893044301618690280636858578873586791338262274686921629232655273693096913171997076793707219433383029389403503494324832539631916841558078339534060381362800973060694358159317167450529164632174156965335548561718491685658658663049205856440664065589340499509703322194035726551297177101135713799811854726236528339508386948854912937789160607376239065922977123968910996522759630080946923179918511376657441127176562300814287073269200123227366723569569937279804361061735107483015254239760218297828360863595071018469850172099525727133783412436703696273085693643857323333241515784583504995010664441220501448163425247356281621431021565443207435758882359498702811854449558036225756051098787912869313886511120656096424035375018919944872345459501768033710965107404021571513472086680378846086203442079040470170467865549710556335715143295352596354745935665745977309246719659144299148142986444768710443010549711593042409521836888295310763503600110180255321506186083160964316627097362433094835104748401925015161029481789451585048370988627159681183122529432207378043091202052421938243527963237571347584649856925123406566637782821274450023449794801975070424989935355831243251374482878126216331343299413930684389328622852459263168153326104044362317774035238521688120266931045638868427409718844221625751682463053457421027071323839037870236494690875713723761404849891604913864539090900379306382896091651609174937790156023119214828173990903612577249328554044593002854431878586277993574661971656703014816777278224753663352326098402209554483692495096109162322733389318953160895834990430171478095637753524505201681318667145003669808977246329566647346305942336344723534270713420042787074056401780104396232219832597583877542985780778729628964520550981633766851376533101404636002392933855815287118075253630369182947663904475731542321954217727767950779327583275305959907137021405614193520391510356060756822593728666199542331380440099849835643475185644860348262811852815543948431593567128151104719807291234107057767425136233432833070412302352839187998768717140687463915816772719942480395971020997337080982358314605061776799728843280981572393168852814851909730462608111514865510295500225055369127808072629262995342412441102565605630034864231334624594995128579135231831941878015194871727091650561351922029189380311149170449187298289744254373856020743802055562949052100457432833812076503804681360206240625979193400358667737873490954006053884707719094005781074102399048187835881400940392577893178234397578841430750929927492452700860243976705056498265825307074277714464758313459394649715028244593682323331760479173755708787162944928491065015915376774405711078090748166509367180616756973201675068655084039019610877815125206732106199125519862847864184229976686162698578435127515702869111773625528272295241114728195641642706470250529156089284868522889275704929616653563366933187683819971456438718687347552915164046659560498204264594781100303067162950676460728458276453443265146212449411679410203339989930678840282662682396575011528470953659135869456800834599189751799738493500849098042967526416815310702701781469814276713282831663240133129575671985832694437004615888271045528288652455107918967111684429642521117919001139087614426293650935639310367094461669947245246735020092219580123360005820183311441092317678620093314582322501487458723100796960306788385162147578169912228614221473009034697552954078359255902843560545688888043345611179542995680022787506196371288660024600667088326116216806809229471311350398231365350392011109515406291560957859753771190395592090313806738060361891727096082594331583056470850367937673846468192781877332530992737479809206584590947579414093083552515310021433440426854668673032150263862676673735585533710686474382009592137213268018899702555665839335737001953280728141690782696963904101171511360235979967701593543904313571144406844017403066440376016749920209404417656835117515856432080215961896475747906272745341684011518553867161722780188274745115224820594733872729175002637360058752094285384837718882051354554027277529599276171653764633300073365493784479922511054299449785975088101813641024887595084354970300979696959034080061345314012212056131614131421023348238248416984513182491915586263141742347555343752907303476864316688956381462687096638230999350085620270231012084093013796242697846637832077732983344697672552846467142050409078525619144215524616586385165415798090097016333953672120446693089361752813427846762142715518280162144157137735102641000464650871099706461894465342228547278709564233400755286033708127348090507825120221449845420085936296382021215742845823749614715239382217915400763579769531327321659135781430942116164547085569324453592483586578633344915309833117739632185613435638266360964330709462638741206599264148325067009466372274222998224706530041113851095200154187949965363662631432630970655845987855453021047021471469033390668261102219809842904705282373319116638972389019836809728034864986184791603203701738021975504771417704245302418811379491546098612602392680161661699870341328110921585191757682387688217785973269479854827592306562792299290377958103314135254921271278401595902925319924846305274125144950478796590199551810303626200763924763966743098544407439123609088881478982891219760189221765733260394067497542614601966199933118922301534498676934754133646039109603561779236749682563564053639652426704538067286955189292950462081604094889750146692977858324644290291495270796940214823470346322001224901864465780926544721155386013834063923733008007165801898814379604959764329330677830101913525841808262690902729035109137427377711105924501083104971671358459378036831346523451739007274649392320492497976638201843133513357281435881499660612801082167757541339166659465854762103440127714131410965651354926227497437072977790213628371755212951655094956519149131180530634746726137855974064414985580351949238103328606166575558485231062874752595963091688516385951745402975738823300742875817680676152288913334563524449373413309630594609749955550964200827857811016724568885773157351686311489173183345801320999002118789772053875506818503383269226991921105839776859649938695804530550393611738981174248322139662427996741266459390377090648375633417889219904401932402850738991773749784286491343296953826294996584401664436978771818275700321537408825997045354263506517992736858180395907963889799218194038320207760109209736146919541499235434346971339522497861427858956398049520258918476819111143130360439001418833026367929410403706620723244686396120997689855340836098527126939306403809987837134272476837990566283059250756188379378281953996553384380239627908889385402823826725125720329867106526549135460396659897882228515345183924481382885205459623612181082619831121427031790072847437617950243122675987552175822363143421754771244084769088623345898127296659575544617297071897806313730234091806048878910332055771593587550865724927146566662614366801851223524042799989761516538022793291388420094167243526102816623060238575457018380221237604182335503113133137122972424237922292991389354721221599974334354974405343026548681386541915484136483892068016332532254560993535297551396718584524553918926273693254104994402546988399949417573122439719464229122207699985891706265760305172375755846269454915507617334377581335049487165399593494351005075521480058041243490746084706162172974811619139068284048495125702147008730452172028926655825620997815980721752036299308454598283099212381255783905525835919494006005344649857055847711584756189882972698999113839196726460157420801556831818409933146167954261699546562040198732786478198465651200172728507778606508259562941576631254209910685315401875712648763002085999399671951741251038353648611786969887652304232106777665824032320201985624717638015453504741145688366982402925032020609109903135102787042767425223805487202259303712627407790620346505824675764458433154160389977638926218781757781836355133577321301878908769897207326121362729013606883099257822577618372715980798001235000252327349042419873780111800002979955163326494180280624726504052075571733546150738217443159297251542555376323106446487837926595563416589356757794169854715325087214111661439107176195556986237691761122350949310542601293394040088114530102141125968934054973372097834419578196293478611909345774042104509469471534865797051265323106273693248594317881584560466833860829610689982346807593931866130182645932882175267155870038516749683515799626675148150154873518781493593049910058363147757246916659054732587070594698863500490145581245100051774189689307679051266280973644583625193582472271221631344558950555966886251019056823877703200450794067367748627442937279909008660094725468559178035921570427114790293660425908234671879632874449357273732277272357584511766542211421371380035356511192788577437079551280248866700947308369739849663133432136022439196243823917670885556763559844075193956329984081495506010764765112808525266679894349613665294740322595808795326102583727304742547537761730398768228635797788711517530245531473724312141545972878773694645162394864766113336390095150770112797034501030402609837288506768353575610245861231302780623880540609965063055718714389864079965959602540846274010893241514376126752341649031759508032626169872534543598215203341221111040143280553093923863428983444038431723113683613611561357078460947156233222550985935004964885540622349092554056945028877281242239312385286947040217028698104605464602157413575192524579368985202741939181980503078749098555141755629243507802365489262363881413367582623262876273898035186413644158476345235708094193076365045638891639570800339566832021376552952913144221891859616413902519641691963530292139041843724454927004065905228212767673502336152380758266273110072345779556006382316787026021862825125311173045720318824309100712235698859622965439571529595522814404175377051891697529491320244277318429017897194293969807277836067105552026305784143087712927652983251800631400550894280940377557834993013176319110887259932358412284648150350372350681199722447304871249879639841429766639673370896326601720995762187064722040770616109704681570574519902560616875591780478961737236336836689655284687223873777681196552001249522925097102524339945039026505534533231222411531747740055263609732633543475259222909827688612259385863106797704887401961895480721376513583740793789249737799688228376533032856541528612272556508874818900587636510664550962148145117203423611411732405917260826767730313724894770959028597723852851385203199868577673756720914688332235239147295002890056618003873353998872685708625961490028240891536129868077064186733726117399603797798739012699077871625161684769722717142411612649250390852133421992188003632165624689561027044713177302198402802932260360414936923408843764341051506635991807290178927268540890925660676336749157078913231408278897197810605892499910682885653932979156982131104007600906328104061096819885703039116659561555715173328633504999875758914905059778592328161719713345918056925071982527368183083034661683459177800618173189575240184940893529462187604570105438947781329887159581788598479772536574621339715805786443259320246446835686647693461918631588300869371365332328441430159996465328305372709433748334977736175270994882751374762709083111226547531985244527599620046667156867840080216101716246987136626472805139175386438565601653971345571045928119215464947002142916270364360196109770988968501343541326760090311115646415324219422042634679195831558640097052970560670588496060973144736179974282535535492977628400341476018145280273293947299158281017686630413456626755587543395166271920500684485167834087985745145049939764312420887186861832654904348527597178329970014691345904123600222750129349429876066242276266745548296054770554652272543004471198485968830677338576397545222136972928395759619958068414483416447609623057868718122111025077240627147197431440474488234008737380366301112502304853969114611045489728074958241089489296248388753062123177858148791733852573742807881106177793928578163230373453755327782815033082835545618897266350842387682830647737100496083713971480322702243353891071345557587689273121034629899805844918793807150829449083111156164413665329127519633811006357847414040476472025935763308060613135536994732626414838788889791597045267376629010946509352883649260408627581232046187136680292506395835722150405841002877855126328253084664623153188328807307257148169709991498144952523681226026998590149829309429228714074473222731887507261160145661435903829599519580549971484353502022135814395642131540470200078682997645663097809771485104861039412416455607229808655912404114432209476131238182568138693234056223950488279859855355723502344865057958500884699323597165945650682686262040490063949616474472015888167433238431163480168578114994178786351824235865701959858132748115987931162919450534843757740787163440588264456838393562484322213347288455255939523019872698047104222541209604375408482742730021505094394523764169836946292424289468781591177548752546249353768363134187451554173554024609201580980254686668607403455692032462518173491048148341492786580007623225754988201814012178105524828469997452167338867473751090461683551482783226442012478044205143951960002192043327613529812407615816014888250765763450846849583592389164382957447972607476206948136886015473481598603331093346934313075886522263876408627099478597290767078554847712082869070110539248708534233752443712763920180142756116636644867017966868338418573453434403039069268703514415685817174806856414929909824010770250852690501763211922307052811166642427007591497834623843460829110293342098583150063726977279992024768387987217234835542246446528221750334966293510545434658393509631295980725165165559173007502987103019078024809767218843948075344688433760789060501626841586195826689236460653627833056072840489775877528201264512961950395244327602150514455937139036288232921150554431583548140026258362981632549810460870608652370224313091326511713435083505717352462591457935933467635411604708633869372091118693623622706504358615980370815521280647401822563803317933482195611412752794671012229782082675268282846414416286319502167570711419126877689254519723918212192355841268020538177380355785161385833710718783195957651556737049539890675740750428512685696569704135223226423560085308958953249444057168205884378279932851795408672955115726392576119185172568339776288177222268754294129991432136733960282185824537690039864822584086407922461716061719570897979859277569395266690564668853934648825754551662810665235148283545099666118429395688871526267806069091758364013201104378196439418342190704486828293135513982827733135361069674196204494133812789947687585459457439125550861474633923702486081765202845882627878321101249848918942494478434250234665050811833151600980749259715549708660776510128759911646277108976938674022538358651939459908544926396472156000346521333125745571988535377320401322510306589555797768206064861479665996879759811620897407169644710508539063817998929173190650787668495335088154849674983405422524274037408253237514265749827751816325492295182979864383263052358533096381508238007720973471716473258612315020456551843469773960330729446127125089625867169308226203368097958047840963614956622824071898629926210373517472826214818650943419320123236655943315325777041251530492788210039187044358257939777625127556161430183999551797467738393594536431628890647918453394674827278049170086109370815999913152497836826113190991869502297494701426969989070078311237049445072135556606141469609274530822455119869282707093239906896077895950523102371665080035080889604057219059569191899168490501728722089784348194558726716107831492769403693897644826069300200301278521336287847720143068255538621654364012110439915828542107176606491522590569058857493930711349023632477006252737092322346457548152560254836897623823449887344457815379052694702805991616915319751065771623796399191354701080132248332920368732268718449379871601091822244645185612048432990126756356643851822174050770678406156243583410627589980013219355594140789230385573014806415436391930654763387120293854209377146735396409948280912834338661595965275250041200414075350042170877224648758935606345158052404662653191380073958816736610828177984680798109669598333012732129278600786893356361468845472540294392591595640382074152970999543803453874291464386817593431020769964811048155953835208431407596447330971773809689215686164777357716851398623872934400024559205173459363448240168792458982362272587457393930881643398612344598976630835631897342069628918502715196744273085429359702668005089963350810183924393194430360132588728492012375128429941340124453152174871558718923415444553300106691488579048108740684656181238015233269176130728278805591366205198627222221095530279070089412942167021697038639406289298348258685978486721713093068255310099541435969704939902197083064632230061332329022051308730371010440497695775904621980134527311851256383115873786864693787841838052434891452498261825092225591569477389847832365710076315856222997641880277867335188040795086966960174249396291653348396383660172396711893763643720597094924484332651146578571563016519783227455866661140218731266347260490939644403889982029345484617663650131245871875211547198472850333463234581026357311053150553695979452055047172659909965224783332671460947184093113990105343735543671411129559255103144593994368805442635039548461505248624581216017778158729743429486427454339791604704011900371895510032684892201537645814316848106782698481285651754573849643347388368856513330638902835327799759231290751423015839371526601345006442097962733955711394824875070648920333925931507126519902313232694536175895172469788730033383681643195076338505438987713143064853427863615548524827585724222860784264518184343481522631821917066737784877678343858380910146487844331892323748526802607543541786293809065279651458502017217395152116467247836579076569534195636411387802062557239206875354955792516391217721452870227972871578585532878343832903209563229899569956146637075160902695259534368118519689863161990171218762560845515690914407154190586330969883873915379555935090691623736605989150144072661591525631965384748379841822060659572372754437202090243728002627715173585979968339082714703502450614503898094859341476019257546013893240480138401100790690741313187521988526656163028049556650439180948885380362518076716686596112096678146222999777001583622199843221419127390379293380955013227873803649743901675396534777004681854497375059526986776340234152305521630650141724025483082357742244504538524271051183407942908985723864869839177473819324324563065691653073272680982728219038611097192716784919767363338325935091325727171901364449510024509242114580046196572786425131452920122172959758727556718966830862617594723713408867119912129200988522157206188020610566509213092694144247118609258990564836415052357581586803415916404073220830165424682388209714386844373275812044480067633176911547117241475004065338201400872854531182038528068019815716574195306493973491713143513224830681401043725431395374138168497574771134990759158808832761566235472105755029025582254732606505896246000288946684747300674155443116382590324343145464018167244965443477010480338596416486451393279121268161144665162859189117667649390593429788269236829401340938072777077774335620381966588780138226685098598216326721216706551004835431554923893535304260010127138201765221658808358168072962967359066002932094575624858602649959442571308961458994679211828035121234510186928002552729425804488134917693978376874801646670131545468957194261003598468486094917671418857408258997922003329033510015306781925817339792783856740708387598269937008832510486549434843640300904789247507262081280729619724435000726413837773109332560333475952730920977522300407496137381675649066339297313095042408323987709422462387113573852579032296752250328516215545471679555648533623246788758955126194185911354072180781357469881795365066739828535555134151671496535761868130441679467524175432688515058053874807806449967255844567237391728240720119738634378197437643922300433686000993716520194751161293120103784181310746478180577206792068448922219507168601194271825842918778566582146459107625917166742517504069928352837340472015060384302891395443418598381018374098697101394540676255925286344231424263014897058880431055445919194978622348418786613182050973012385587461093979239885838581354019409894290113851516205354234123899539419717109330471094162511657185369370387042682906629308862008409861885606386543449194198586158422474538142007491274970291653701655375113543045511967383485309118832060661209749593561357480051125128475575287739934353291171612330512286983766654784725281364040353768302550127335340971910214153617650839995920012294485676866847515304986637291714606774073393020420680292618015773179253444218392873074212015270808293876268789554676106561010077232436722465385811857544509829052899124629371665936713520813077469687468086885016605774102713941664329679702860935534994470250780968856785403891979608147405389574235482087855821261050948643749611525370303092970405663137710304829710791751431386211036786494219485295572728659626027233757011052196556074169617647039033913437980213709256593655972497034494337507415658682073933410557307937991222782419453054108775143314659092633794389897614265079885398680168047882366938299943494323895037220366943798486851053319472053782838605449866635058730616535902973815329807327816219167460444815167882367447021863545429798466101121789018640895552897188802186727195114523124283258811212327447318823592185158269580325360482362920746795774033311936236785784428913754550480871945360115879345005022774492374965497404606205084364178347822890798590642792635988062027095189942550366754166412755380139679178279092682280508256172624911455661258425876253965320440871290163246198598713660665689171667597554654563367655588615983910507054711031936713645113221444410010613564624253271953162069695404848246964075520825410599316844762290951338484937768622947013839135793202885175696015782752911159920516831693720833709333223037325605568140997823054154026658771294202954970980266026156901894030740451985393028681683778641672701062432793807121104436334590344968632147953390387639337530938574984591128562522556195063530714611111517217925193402983522502962754044553926664981519209458535882686219055306921785934894116562464921174141986689679914229831998133456596949607404651984100908748347951783084101726679105297631007177268234755133853985085613608028822961226964792216390631492894295752946176622886154404470113603517747166473904665455490589152080227118555382831026058459022329376733691320722249255607422918666379040393423660490716478643529355653424255959757832972197140431326856100188244183891858244546081539225814270947476186298494168264640696615094598765776364338092430257338733250807212038357219103997687140149547351969984572092463454727991283870454977095871605747236621196111487895116620534294660912975128936786519575968159763260368063867685032716693303145702778343753113855173515397664657915438116370433584051470558703899811039537100263864402743193176990891921902870992799818361979287853591610794301850473961253830048047890272708148168246158180486890835991489561227289567481318427721788590725584491057345338076157358134211163021811515348861105185981856765496493060488147402996913062003149212430394052001064330229178688832656501585433521706272040997826857511071153357840605240797182516892726168903593883710821433311334656881062943334926407891435963035792905295737731523383585011582002039354080677103053766597351298570164748863493746753323663159430011192972817359806854162032300968348240193742800798883316755485488894544739777758099624927613090059629479936243806571284263505505751923673093970903456794631253340657788525627557642165812424812806261799772976142048801253141152409437642033635860360283724612178452599633817635700841295018221291561937314820539973652811472310372326240431097709324613424268996795407119366959159230337264200336485090113709488195339414113266338565260346213746105766175404918302266684170988163129324265476458592355251397578972548745166685858164860959875933892569455334827433062983554713633788171035678216849087221809649913894647545688773484306419047706539167633960056912262127897054579860937962589466230848161106168135041963794696899778820559843436186610531488151360332966582796050996162628601178369777007985134718331080577712214891081395324083768956198909186645639017034339979382142585188331534047877629733962474789278360209094670823410030447225245195548871205318228969831794357245688527296177594948125071438500803911917648526165467298837306185867536648219852724000863092917830915705395388243143665706087204835692247129028575120610660682487736723330581556619525803900253138900256662976092611333290634488806708518001628890025133967552365927923209343122613013375578697384692371470128781901217025695402083192480594808111866095473135022371281612989922042337045109749189784201099362135220323262564354552807376310187886261880736008451018671807408075608734218654020678562697484008301225899840682936803803320679367544469291619280179474470292832545391722715450836685730649341145156416964327509774972745668695487877424811401747250423926661208798808845998811599942630253441564861350283634551768517283850370057811748536970211441381319873782510281794046527605739317879860912292103366307064876450789783148479330511113522222535565503890187633864948822496945521202570911288887644009530058971439602677648945912914103923781097316505621759876453720954479004484980308650671126392913448335738013565052103748496649205039114886023305849783621960021974970606497856659454123520284007604797388671675883289444885110048937041517204184943359740945171905063020852531767621871259967836440727918891430708452202466345595417635795416638516721472838961810747956358308067992949816217800932275656728540591049162132751936135476399700412752379425039253952707662131736353697142378215960804004537381031987631578185772155962811394330395121996322417571480515939327696158350369030936666342876188021197610253401530146193604597222693003323495259048744184143694779075262440176129288226235788392839986621097583673143191527938375446622921255715176562580428909609733264532811296721987309727257468423526842908431932311275526101543591543091149981221110472102737372805815435661291195805340918149533509552946286583623505402950204009934446164796545428538565036013568649310556324517386197052073121839004241665473077177193988243650451375348141400365967099864491830259500235949008659938640707284139918994024710824447268737119052861601933864550651430027110657688825772864075906651282483729191575150798188637645227298605528864778958585950997510322588952731755138742744890204149647938553296631032086114901437842495546710025061901903808788238247378028778383946415712917295198040533570858308873915690849998849420614052681827739656691547613310302433987295817190324510029996208780317144119916790458481922194227418722618701816943542934331401905809410797878688872769081107353173757124926420723207424754964172239951485097625320384496640424532117625192297980765168995458466800453547478989889050841810602244289937124908834279018024754793144104611333461705084095610462571371515298980846682209080199465466901974910419055326777286945963635651121503583351381315094182706870274940389241739195501101070824946700202270573361755731476316805008081317462951897244279294550829687699598234665927446548417406145411741755780174926130426325161608314508278821739469073756897010575766159848857030231180473758401381043362579740476715689286048395065996569677788509767347888380564479959621797880199367905982923495782079482447863661345455002331251434031892979629787402062466626414660830200472266811473474760797893431906102940984750584340537273135339108895682594821597931075941260772221716078297077163179451667611976024647590378719137599311316524957486796516372981124166951292782125053709105283587570387757910138280918870899427291457155979177786715576270620748862534402061937279420365206505043851513823453443509366223161460040486457574070125618279102365398141952210410217510482432492349913019379071627436212986657735821275179822224465630871320202669282006051745237686999641125206513766428586006236606848241452705009496390887452026639595901080996036476262602324019016837759668980317485236580886826219851329542847107397669406797780972527099994704881120100656541300892697171374254191189380636882717875258802833827799594635757572373605860875556344232946188098577215989615727291385425074519569719180326048086754850372949315147504107327733116527303870658361464428230882938388668237421936962235827882951816355877870896033621848946525222875904486411367556570902439599228392353643169244536007131995184405277319713270495126740035564810872035278570790953591082984827499701205798901709438345796536504197076749613049615074354917325324123600913970254409956548273569210436107200353783477517091408405322419278760350691769740676872989960200766153569835966525906106785282695019785257818606786437155134949071440241148661100060613076516424970296217047064706771488543291542735926548200777778370128441300432343153518707865940053280114534954214044788015812568376988815229996815302324827544339195208795365381543506015688778571873667689274251002222259533976866129058326553229645583127341847603744154285017782235738879912190847271516971459371322027790315418102969966199333360390330831524799716165554307929742986512644874014042297974931429592995592200038975104232066441921557237482103896466379306575572666090471708970867408497876960261782911956285243716002829612840762164492782423486560168681297876030782706438433267817337986237270486237770026803873479095375364007447977341107647892646815631397709436017494480642982266845665262199687429729559537245061663484231502260754962778645809862830280507413718660094374865633870683504411584775977721644481993756373034099118936502055905234512430937860886328475897640377079926641286398130403228421643094885159627227461964733842826384043976801661901762714503862831195694231672948756811606208031517513281510090773513453640463654142024029933071163293966164644215293046033830037765146781152807138880208091739660587375962037804928449233065673557208749609283411561020425856966803369314879692369247889046629508232240368361821513446635784111629046962091467939413614024047960356401480496239327518374397397382169424199354285432435869821471168445761119259131058517562689744587710422318259023206327226417005413830849623964369078646564828772975061931641226809718592754502186678420200725674476031246357478015934038873761995391827617497436593385586921911041297938410477054018979226355477899378652006642758272885627560157731118534177445061797365084508773630194637625870246563993502651072863715117804835963421851996026819783149907959721136218793195249478228479598764013148486247761894167515328222133243936152586411817811902255855343652077142798891138795392437697526991368618113453532355261971339093587654664445985440084807367760475789915292540964964932878048328569686694055681882049312838283703975046956320126220534317142439895110261188980987161350103975509987268105981901380868539749649422698386414057007685625013111406456209905386472571580094113424274370488803232586324010337770748086073595730470545898294897514937205049084155064144605305436260960445705435133735621003213044881804470481575151683735473343902178010215904208080597029243528467391815421963744658272092604389591113841559309310229021869244067245543193568176868004916404583767878635094755820509727693177310320421932711618205241888494381901645400597866761897581882367435309554682707715283081138660138541382207172960287823567057531553891957404806660439148013311251982522086576472175540749116933626621673864765100509138218440542314238422969930901968976829142909454581552569979959181535529738590952885429968015326217048480430995641531190033455511565931750463220441039089606688881047065165587136235881439810149969754387888864491336072547288219043565574564938588913336105099973278759035598789962864989705730192723881767440672446378775324192764516166187050017422377001007302225338491719943492555978806611081932833516426103028143072342786403292085154923111161369637335314786515890003367827247390356486237109716406347059649285619349588123763136896785208446008678241990143970068256522009259000913989292574287127731057593676552137510888010680600263532563561071989710098912973354598807834429364990792455683986088105718722043655936710100497708745999417966950042675854755365077138304224658700792172020461988819443364963787772362189998352443108220069127449753373557398933854553707752306497110913934488280505888574045000499479725972214312101547320435133353438505022983877764458891900684952118444059339982827616629661430427110835984513990655419973933367981392804010451802093746659470853660231662552535664812886239389233654112905537732659895828938453547127153219334296158588486583084975432690313553199635386285001034674120428650985225042569468499838141657802643259060221966807259967359927099874971063761527014845600181578221682997176845189948504496477382569941484908451608277509606330423854718981634993203683503092297070399692190039545420311037142115780002195104916023405557148652745767119730930171594633830417619355661328015961322762396106344769925812953968323941155290069214116810286827816790967820247722404739113788967873434247143875979792768678705158441341199338471879563255823523808440963993013600037659880453951339374836222428934314199412265153601518136662018591395427613775957841024865431209564677696025958995821281363289420737847055260442093886232954274965706027456360804605604575832719616030145244921506976548682602581075409479035395823825027606568321834564119946024997281486861909360521517476796827249859314908586854157581410298294763311929269844811817475301107635502235141139491474853109870090149271917235225321680246795500322649310189667689283115900016382510197695468839190445361036824145636927752441433283764352317391224495487280328473804215496280242775664738675252396236978107091692643603867598983251312277391130418780304681194705311758745239327948693330071737334992387511602679654366905755571304004951934721039074123247156382443749203824568798014843824644237751802000345874955803733463271106983034744338970930180905364475771519517476302437305133949741759174194130687628953290978625782777570100299322033448988063480782543416065169463319087700831170103501210665262434061290638810357733530440945563927209475445320740559924127891026555182801359159873061682033112774851107859819616825667431376444427511400984884483500381896680914155196971808581894685410362612506639271995916822831289183476294810480131321144625308640032987634947635249699516944677497357412894354963192382540474534353184319720184972636897813990565801428227869947567873312704752316887660546499998824603425425578488971682659974297864404230719251846907182005242273586057239182189732602096523686908113053087650226773020060894545441763769969918524459690518464625880401656143372818876967936833950765939543379757436412739343441785233917136480801235056125182859512900867610309892249046706739137089087568219772533393528658730834082794444803091177102921902189323043740362136033228896122032251800824586037724685442056792619802737863582494642412583658924673722289302978789210048796167529899632501966538108616666724170869929526352770077142228498090309539963105365319961218628969862846442154457991542976702513851663224470818791415932365165288536291505112394221179152296269795942186182114369363908829500885587083204952553228309140740156362265142389751377373128037782126979889750832500239002158681422983481669250167513670579459989004782718788139380046168438334293914704526284841884953410528706582078079991040372630329536680976299853885912634705273493695931798896395499103496827174284761646664258157128705157154757435164281529175869009563163911887385550479981835181084939898522625122616839226797267336457059211980781257399091138990869961934041608702022822214646403405850166053589798501646263387360280047255152057576111949452867404227140845565641666193584920409728944447375287408395829268695885393403659438053663817229637512437156522390179111529472545401384409995812539811978880962156547179404185784549806374975593106338537106495204013685764238246132514814310169808187768301587776725931719368346445696244589995302828090021562694659763611624767451842674373892295442480712980615780772563866235561378583609867911641714402593081319593232647992398390317489390223377238984365312508956718034838193878391021578987945362876057103227298502143864438592382715331274328611063332064945790065126183053405876012237723739679996559482434703072976797940411949417684164223226565573426341916993106414167290826784336628887251939910211571194728653191261731649677670971051717006379468676425529095568251214195679956999704183516803182141551013774324408022796228398613483883342683371303828129959033369332670732628810804670839517770125543176023297500431972858282887560863079660677582331067884395457975840665099037773640087215937852184516561709129575185478704659864571325171099711281122227956065054428926956125272592710776115210968494318829727845525414011478574468226070962124335652276120813075496335692422429363801948633115272729576090214763782986196585167224081507860471386634679817351508913703544716072391598933265729661846664723042708649838302781303333791928257212451385738016917259486517206852151683956411759188740618174743427248743500895797148879187240121956753178887445038319453907539877166254588332244275575801074987311364199051496039098062466642086838586727443523978124170254776537652101727758331754885635575760739251751030782501277881909585074319722242104164240141881241121665012283972106639379519011778229817026975210513911080410681390681601454405546462309197510535870462492138736624040287616603751578118857715450458735562122532338315603179117085623355788730742591957064747206602366601564357493286719306059816821301152056521574461238435400520945531220429085317301467345612568309873571892496399390844525411926588092871711400573503437448782343892251042588779113390328466493430106545499492243483283649329862633069948944828188936089559636442514788811414969476087809881640538001902896414100835408121196889425158083676144694612392434192276950465066403611674141702881446215691668108754036629819565564195487099943017455598893014903954026876798399902735114973324936295609500970254021288832325127592943438251351083533121065008694622834856054896090455886963378774867137850962475048119905371533852245671361622947848157102944861484264450808038826145499404425503575724099614223390844473921349537371606494884757656268099020798003419509514546158884938789678931496414058345524419539111068071962720182278427695696027493200672104925712308523894698814782879860327885266415656383715971969745418021724912114809687881709975376613029448939628144217813102963801107742393604546991422808720376650612637379374177513360928958177462959180510878681922586491218669569881086316721470210295496210040438178348905991193386531757014384082853332586961145343309042605336193990674570482806958827121591075727987693698114309365887408917072265512457633731142830117666729006867007372007146946700795024884504988850695974174665029448651007629009963740663358225464315571190794375182191241104486320414707263660467411183846751678888167458348128953314017928243245952796536748471716654917769639301992520168155597683071493804275468744011077171099816414322310499835080891309852886796986312113349052504930968838507442976555820249854815712433328859847816875578065816181170118885193449078687492641904155254164029495082405923239995526295019853459196130264399676895662838218395494415401755331203488417300971832577413594873844411622790962442203696082270782836092131271190899863242957152690503247467375237728496786481794476928262693834025979885591179079986414471336212245865177803302151749139732103607897846762079784755594471911532827894110825641638957708423674346672349238653427335480702992281442117470222178591763090349167764822497314097849258356428202982431639662209334373279981984037650892651480719666703202787377583104737780067691182664508676083616377034498245357866312140256115728079013080512792143100380566311880128868308837702873795403835711197045071294254621955826468593546657485610116847011782150584502342931630436418676844600288958408165262982146129743973865518217581575857065752637600939735989567462861008412905559458643174946120014615703120399926809132599610320643824260447350902244035586890382693264292683109571948144594379070623318739248225940179573368994405622559048251753295176816312221535040067975722083433340560845483472679918398760194466901474928954517268293477206946537752960871316718684470253179741597353931905591112008387842965856965045810632444052893958029953491296081645016297236362869952928163980978764242567933275089042645044896811447939198308235208596172999579718031183338363659877991064969522061791038106403093906525824491434747317321424077145405929503475397373075679111068733272844564977971944423139252545969288892006144393690414877402654194162237029354056187319042604955730146252361559547430903994881005495833546044058653762193506227482865038984970793354435791332871528534250007669095808506502164996227385602215869206337550781317234807873043682192622723511451856013539691606119788072706217861985659396723314575506999953273893610273820643061357285911245716464966975700235589076204247425916181294544663237738973167966430305281850501275193266711528981967483637736217645419752679720019603170956785385878046461799687623915923864000037413837665859963656023628499500271208959253279596003768141405252524763482208459147469694257070335136020810300505618147004885415508186405067815675057911266495052017456872784908929663926111839981807437628774914525615601894767028693670796959748498191481550731278907131847963708080930420797234003623209389709295171884879042799084704905827732925547364267226343791696940224769465137314869742018632508640125805185237455953451021818268104199769349823266405306474393585702691723129132938452035158060829747004315152619804823953200185683232527215859650888132435558105489542814656444576517634768453130174848809512891125042937712122324703033617316632568736201743841688303281131161749615715017602716897518375180893044962671338456218859893076657786339627668235011419666874022641427733028162071708555773568913526008178787535661983619129371323557013623374786531658098826574999010505823404152592660720817993840585854879463645606639391840304604208101195010236479107301561847736595282653221276714294520926623342728023906200200058054574851190799850363791515560995643180447902010006998127684899531892147965258453742117621791284655901865426845210536350414632852565515945548799158561749283262405879633452218767017622448935644124351850648817088095568269982924557564582906592196334215849712169983236160792514335823848174164361471714123499575110560304017487042115791004569239937247063332044327029792581691087778403906331130902912493196800421311154975602846124850490639329560238185789683576295038641302866095270667028057957638600469756299752873236630719511591619601006265799938450969215373241231329598167605282024665101642486705960107894363927210013029731354015194236415302420642704800238757461768985558875144540125428193057667241173735231519939304746900037835562848157002510692965104839791381764500896580582174577602754648653953760215281699172556731711911179526078920720761523645450136340986928364074811937403622397345345570020297194961514920002983670105594307631914084927225687525496127196816237677784924269549060877041774858212625414523482679457857955547746679833268231064930486501761391906350018167258286790190560438802791302682760577527619483068061820450127529110946226523238204447528179912357782171161495480897808210183414610766234608027592113908469761115155363255251164198408702249893236468991738199553830937607211491845923188424062508836463560903922521721549039203401351857165598069675146618926868692141472299535462687795422762546870905198962284289127224978630334781276670202588161894686885300736093090695524984856107137422699236048096037628432674677109045332982505558603810504778319830243942935708469303552473270320546244095166528971175312253994746094445607165408451354599191571084487903983708875732708140307906280511438098717546600671579171169693852092222595210015885973852440818618122475656388493229700064925420879412793103749796936907749096895719839566486985601580358649490838743728048031879863612257148097126469626518195641135015453406248134935665521011753621776725161251392638787371959196648727068293933229516226153968839315810809997445328456657297244909602980919080673895896016955494220830195689684237772101406257469690899389755514137172589367823888447660898195862976789117565328083815688717520265633673062797450349594474032292553482805109298138033928380489060846847771760103540879761679678071799919923981403186194626255191996838942947078208441020292403509144542593531556143737204313371899781135926778763770464365873104596664705974804638440584013655227976115249907068175819293749488089246064802459493620493433774690471493164324437639180407046924136581331091161602472552644916802345394663876477331796692903259756724016962386895400632292415375674027320839803671391065613063749204156040829311493045211798022530820043008413246552994707595842349146906018460815465831188660275337791384969317047284463156295715222137496228190181589079486715507428716914303575959745759487946564629102325918221619605679006780679372956355031749131542447008746997580476836805817985201152227711344325033054420866121224672841248771255858986755858000661405753016989370115582594674007698458315832151678235011760187695097122255080205170659885521542509079511745493837447308642073399616847684727285065820833374116350788212162477110450093912803307386088423878294610239034773300346317259406132001631896933435048670002286231575128983166778269370263420174715213349073202939654841798492637887456093330545043513079768513934835776393349740813548411081455922123574637617170387163318201406585913617651865091947124921308878141789412474406286780020597621896758242944871230568926107526345427660565635146495544865271745990080355809713541908107959369523806202240234293857305630772385711249427754917070728471910138966017516579656425359846785849318263235988020324657727387541895893449195799091498884942912805665622187316773597508085625740136884514954943012538893006438566703381757874516262194777256762444548613475521935462230100885403644182938136945242533109993723439343644893584281784627529579678004746485653379456487580497309811734540921460252111331340409149608891937709216449336551570991998142791531441137912769543548519894126044829155136164978940166558342431991438708594445114206890940443406005754344832968688854044293176137771766271882608890689366986628922702052083409197895663663383156033817735209836640555169238131011483298959380473565922934563821609209866884785100772048733482706515413792616991629474408357188235455799067730164767265131568846870389692101037147231350354601071616770749662652474938967581668641274110674559229071597547846246421990130516953061552591931922720075452319831432678567286975037455968190149318077267045343872529556119114092785121648493279819843025456372751324794261838939781370634544878106167834608794682977945323334664457422793861590151222938386082985086670536741347465312740383371588140795124215397433391417982650829013766441271167217096222905892769064917099048011681052199679221813762715908499813475762536950479948284137914835854189806153803422118237134445450361255447622899953081128750013477981921560085643687672934105137437669268855678581551986479173616813832657865793584181709421128311687813784305493647151750799985382952832702660939844711989202957690022631338078947123153016651628600064109941557663912868562333525094977486626887912579106854340844096028626865222521875819264614607519546757119795183016593000992586040173797601209565433668818445377068797489778087647333150588097684181695530328444945497950389136219600797596285193019387604592275387502660561296319051432918669985667911874896107658065963884100837237487426368682363090241060367416841095070414885122112783206218077436575528551848727471973020957840382059988231902983986033570080343396002107841953628965229188844755320843213350225775056464147758055688620725614104044527577854637875435916709894739958927249283224554123136396341448553988978027296479014634842233892505162294344650829148791484198918264672635841557208359721318032936595771289840808449175408736117103859675679742717072778955266302566330366129443730551025233756072490487244357376166758768134125273406412990772098545702277874254287753056980927071782297585334111425938380141454433323816495401213472199929471413259756353001956732860230498249446309705109750125050615368700183773214712847606757399169642296502593287623428421056868331175926324795804221058869792116508170995737329834561464436365178031886556408726475782541414449911429799268892372193996275991700876429274960303173674950247399930968914121455524402787060741605566008429724306431087990625240060887032515105878222953755933751015353671002437321062507231206928696468299240767431728122962922309202952443178050103150324014031184278733244388981122744214041978532180591430496190114508114658670379863648187471432498219894520888766316977722347519409264241564072774384973767989231922099829690788627023536291105715299403497287276543486062611249585567713326822617909399289163152156819399703294983222837482495880890076531089677370334005749802306761829987155529865746908941083504958433549567640071400052769765571572892974166593649928609235947052811611429646271678616762969055291990304641601477709230382971157079109558686493006744998688328212815780495272697499970912413497509047668170486781613727880522678877843273673151859836531819451972972336940641821872057653322288960032561484321678966509283480102419068229525923527521725726265966507236183114124968550875524489419137347696198445397937143141547969613237445167866273715648382950301975181604150962615871214744073222127022598441071937825058707769417027402406870482179930922549422610236012426550569972484417375003290324017587046251669002780339571197305579604138353340433011893370714437116638034283282689571699192996702719930500280975015936952428519124550599157595093679789667163585373099522235672334072640870071591739296938445663395270020368704957343020883669125262922019528502951062019319090320312751362214691073037823327713151735319500859536563603732986385079117781836678217087052497502657175963451793517340466879755857688444327598555986729696666591078785015083934588955130003519243758392075577167300206253955621655165838874141825702145005832434016416589840474057753220099135869288880486038529693616375894482459313683447204082824975901882242115756478115311847249472412992290132529481963529152954973114544901782948967512270942715089718318323449096565911371079031981192733803938401999560676380656576333537825984200893827490340693489301857383623008258324650470319853300936284233509327918465626146320348253724004940414025949072216886115126729489229897388349900990981279130490970664353206163729160374830952198773235110657263613393443183242184439643717515873456749797478241236026904720534591875772420072819966077917830672320088162959896225330810792761433042424216196300455733262500779293289419643185047293538158889744907156047780239919258951803395505415274858937717783723109448303133333081753376050925607158737251439194004591647768803080425234768783998003228741354644151730788606591491073658047847960777330793657061761044775447144233934843274177803979814184657224872334612788345271654883022411979143964387068637265488056760035754150672935550637502380353169836744489130197186669293994521303737086537625483611916410421432731283160798572590194520040615013957737715787381308393879960391888463834682344361496950992655116593665271636830165942890876630277771974441329280143729900514160660124804932800202419371184486600950702948727109849689207730298923985604342159490650787911692286926773180547005502971717863975662031488835686468421044732040835092558312772186795675386530869635121006603906279432761078522664825666692683756928427877136196520701405989479089405673167565037009549840429318558911853438254369504136415374832392716978812774908143692715202459768382021278625870687292676829560510674228565253941010607921803289596841023162483011873028262174771090226249908029415685777240909401211942345298484907633447592093628919200002210466412883420300504723835335186884717123176351388628522262399306835374203866609791844681654506006717744543297870333611103505796239495217550428570287106180693061065475496639996909929345811892307973465336992708731432987899946286287084743016452111015941314795083703099689373975196110302168208652570797048355746579065072159343880823054916446220142898055362735319623563558584512735428960134643627615796024695139188505441173848237619210934657845929200850282981825966648833291077921459046346535129644166143286708506005163784501254125271986983775960786408245722204123724637379102663901714483194617368456464041381722426988044570393701419313492063501892768214343299488799057873044540400956090207581267319827729307323416890360762524278712696632574691433090392739912386019620465983838944545971820932309688900237470086871660461768060431870033573545619659650213759302570903226813259037703040244802941456899617361039230119624192377115622739890893175391689851039734374786961457036564866237865035679000534139666300499481301348797095639966762443162227034591014846202092728468881149422696614902374821473674334597017144891065114882017696832625153184351290294539646560542977974976336610523886881029845920308893446538722610821577634431629587551071878708415642633463030603221958164044893804792943119785694359193361029534748866945004806743174254724089042337714431760862925701223401332424232528119092319471944112233047761849402923929868386483834517513963407153315150408877688695638964682089764582782131130752008249752323283016665892587730267841985367312532938393711432370888171791324372941201792875555258759589629104115993043682557973980566591605015884398680568565631900223247809891550518561531693513599295361211658050456815504222322189589562023374621321549176080003139040646403281573998743681539790379033778101519996527815170724679893520630607170567571716347437346123868254971854734258451436440574359768768273356659241757669151387777936700338234590320264046470990145614892914341837011349352396548366856992835326240592732868458385472656353964088296049847294757643454037025160998062811309310211117558116798851033960287941706621242082845711740245637478041669392808115637332410141754711823468652778198116825797398596514395469053074246063747446637507094947871500917946603896363466308483782465502961933366838727477389897846790851582389863915765518088297127665115762396882189223242918744685757826909177115349215422853557950101504395148868628207052371562046182279098320599356025674386532501003686049479104968551946459423798974115831913624774406388557009912449435709040174514124382261543137930721112645627400614549351058599250789206228761524617210051051529127378959409207205058959308517098035014533742363148839299214319269960874929301559484307335510366900617460398843600313290235653318536938314036905054699828583902625788134010879451121443149997144057525320988598138575751254634939304740803137443176008169961624023814495498031099565181031163317040233534730940034205269142714827543481643339920296439610407866876264808125499558459441581152190507138850277655769640631662664627506947033931135828013396100611672371589907663950294327218194278276448622964892892274956485857363942110367714693382819620648057718292756288204721174269684249933768406267305363456380934422618204546917657316747262803202679201717741587048980783479272460186291434185594429211780169741354546139926457710166533718884516369278838712236431479007323765515341691884272870831560774550875839019186244697074299254598195718161492345558588410570403528228088938588113053073070226502360072485201478916040955154185657395208895723736786401486593093971430256407450799436955484044391125058932802740223542175597361457941804477002167715664339070738684525611463557131682879631827603744953407268969237256928924234335225140387153395671132495912638576823251858471675259917975545590601430767945160130041560050904695782073861105981745839654608548618332179422785649055246636584362779458470625331940701299313817635853905635615430842208625370768346512122960530022942171254298673660948969062171950097375418363989994493811821726286384828806310350029813839212054365109983519614629549172237173865950631379689244107841727080172338433134135823937250360093192939220823338920128565249026490498360332131538626159152590007307643431019069621562821460697100363868958506390566045219667682228275519724480919769964441689754351181410096699801135584263618559466792839596660892924334935990375523187921879447413390945256452862612786531748897915237098050556947975981861321594629091524023658736806762945349172905500870302380994347577828196849723818084795380620454328943402689178717287772349440443175447670751485724576604157779972712773989965432600888648276281280751878184471225396997517885333149701304460900740809405994110063049884789626679186113780578429157374655927242635474645717705451911493258596849657120639978542653293836379673094698425547670713958816724466835531072807238850850945794456344194075371624004399658044722437746875548096284782150686405173891904225000864402736244917538914077913789285091768520147359403804301280627729779666889784234201069347916018120112769740428563316150218768157468317716623056055109097253941708430412771834786498271797766497726666955422453580884802751652267332085514337189757867044721157334248735981335704712767775602925838094008633032170584988956268077558828223998053911188850477706467581126126223939415178187159202308145247341902167215633236863674266558163129682159071340533603703808569846076741538742498920303363212752777243818830263946997623992734153114407911648680979393028433458953935104312394972317764355124962354581132121766025054570246142220017448631442961947362285153665368629960771037213999562362834648550571056232204379761715088996474275018046733397914725561527485861664930523745404810563961490403143412050485191864327078703822639833662169447290530414288532998657040324694578845840457549342079598946084906561115250516595181964516081871613471118382540630975215664315936760385705540179483271602016837059358666442985580878114341350206236753737349700462798672222676737844934112820660150824202304319583272990471190841175456271308642329231910915277242920017672822678172902441297142229146562646422713570862401686416673214101787084237095685230294110192578522876791506415775435732106158644095425176563887501508557134150798793462142971750705295889393035590337548706894192397593640162252104739936141601501200404112457902816426986639040561943614829843828929743694964397672484603620403637335933775505576681316530500200597791373872442873222199742985481303385908027525846715784432380847010049093666400345114533934301657162997640125731440742328281558091152354973520257679324489747767682132310121375001903421114933252451016730597189782636496654275147991661663318835300158564977040562655194470046498459764861163283077078520197519898918026956303579760784054752264342666397307913642183696579767576446527062287465660839775915082591388811898222710041031264259539093675541415015599766646555106232073356105496745018536029566659954495004074062274938388059622985484602909469629296090975655313830358077466481779939075135677887735213894384603963945787605600623463225126068126096772412945845745550228839386894619790826761052868653447373158103335993020491960075007789866541489268152654066547402313870360187425547662348426819030756069237402929194581258177921608715604422493329347249898064723411751422052071612337747359388489036183650459906378395856010541444100763777799088766648949115534568737492058105108096159304343733001514344358902799174484796202541673310004777288244551668396347293411159389802470331430449131509343804507744180379966796002821252961483777361883093172049446325622217406358499229918947002327931222394389493140746028024371599331349022129348046800706631165817001430452615392618758123861706322924794371147699732137466040428150627835206970972966771626771017159427637320666135005020932355798312073216417811570374919010294913166944238242210383084853369950947966004197082952734487538479921667978072490707818951175352386529266206551184055917979791585314631512795067226739760216990251996682209727597531489152272803593119767480546527222166841273801692630687656596763903744449396986419027260836385072171664960089916775855951887849577690807830957447784762096636057853760260866095523953856184349556654775725889787135853363450811365215262403460449787001433278745423605309591009158631151445933616827809252770264709092260619560290084487800429428510058746385887760249339669302491732445583706270410452589399448664934219573708159499234616967491572623331716962490464358985684931114143004058918154552809474298152539132714956921131487874830971085968962912789020135777874786502977088320277650316353459738998268201392983487738055496433311187268683195132510502920887782309050092110626463858393511388445416274570773103026785369245702604267620299551447676143061585464791230345165039971351510112654402529653865864960570447055021394484766740537453136942297360177543644237496388357556725798652961063270089027949397898641558029404571309272889597777015102266735770241264541565458722332932195590804728992787031836508983288674221812633073510447047863611754830772778380854738643900206711564724448777884259607821401270062805002214435486769536497179007112768351335293141312839555360334827124051157713150655357456835050792205605856011921199432236337054046275596104417721011101377475387880850787163216431341947692407110226164143299124737066782920385175212769039705061836559938183329838018365162132756095272305544015215584081813064096904779310057851321824351446666491962717809193291117314372129061773421740226381991681558118488034199099247753949235069950284800783814092331825050709838221194071578974886190726469045011076407730379536116786797447051778334618772466893224753869460024146901684965154870012253617896484630000311452941682279140158458137987582048470055860635163555801007605122092209507627815052834245191263348378813299826155395111536894201923339001914090276962960647599265817056046007416672455803795302825585568289481481446658784524308783642297605968381381422026072685328231050816654402832152646737917474973357883166621046017358706388632978828551512316122991899093905278805280392645254302767268501208958095152797236752438828888532957062160015989491836706496072908563673144829423502803552860652540290217927034917356262002920984143162462945895311044014982664367725554210431381135728156594232366473029647154312429270630020426019358906731375731843694033906958174289002125932313435180196905333391730408627919494071081966986886749022568295736126658486004832779378690516871107733075721825286483906841204283510417728664714708294301145824163203060551789138143217654066680072719996758990316156312486941767024644576130937326725460292358653764769450408811516939448340436905193695631577803122944484060971098608498118870049063140892129226465366941564652499468831589195189091253018137118895022466923012888079350816853800245934281882348054179594389614382585576540422845359812626720568252667571108679933017969734565940340091403951258803082937851382074938864655047612374441912071121361696923150396158831506142673879720463318642247967357168321415467491247697235216304460403571039474149933101506872845560366302360764351342152020908864760470494149450894769610671181071101052440441637617674667392291024985679736130837996773331010207463787679333077804073075226610791975131123633642884932684028390029536307099355239805884362052557109250743030965421003118210804489056911889211732996667682270395871628449297427741645973725556537040580261674169534235336489403485842940003753577537240344712624627160315503563681179748110873738977770971019022910874293277287563132408696288897885350181034245322051744759195866747807587064535660909150343602462215016682620146460214536323211284201390095924351942183351075459092748330403292507978848539888085480978575763722871445447649160123520112862864027692323976136116608179707316808005079760164825934741897899472727329939926594330644313184553001725965316139096907288056106839571244032690675601876606775664422722400703725546514338986198428841106248317437478525979245104237453545907539040698515693627225178749660607414108057385172509587059672651214864628555624084257656614062292942840764997070524577183356519747940425783671639563595766633062125282269890090503536759023828594900351434163427491496439875956253651871756943350708537497737270801922905114376855635227810686482988000199215518618038062930298325249337759482352661179568623642859410654688178350407011526593399880004537608727740635495819083490596701672077644761254841916548423432354632872436873545666213489677049059735281230963080352397788981505300387701800511561519582480254943905477197799828883611610034755002044348862494135621558299804598385987961387555458653481067615332093482455136733939509181180215399527306252929627506506439696648912672352626786622721505102754833458005958007707581103676199112455554502937092284226028916799838322721615127029776787584607268924139062997732219361793301640882617744643365154362066537572756610287900531630341204494473598952027301493559626650139478211696728158955323326597133312523676486509736081710810760695596390149546441342774747131924558325423897339907925203965528284467865353957282721164617411235443392683683628291158196286380228153048574783413370922698011565239853412239227010084016081892750335158820431029798217007565332280568294479011483257879416838046355773672361955718579613570925328217846907623717861670834694307407319032463355757240033661108402638539123021036975002066338730550030468354873177314489564301073988189457819762318010968350873572275329499723093783072331842861774597941423794797712576788544167632842521679435938069401536506999626223643928297514214025680318081794909776640472106913814328069321267404862408705759969422108372664197082276870429031955589916326317200086720788982696718284320528993130866883452172149838630918842898672651292241230936421018981066335531511110967307291362494894072343536482870088597939648760175749011953752270897102184994608106833374822642377458714544936247781085346476415697867990773303002978022786453773900208880038133538460888863192817917695708511414966165350667042879245771493424073748066851996569200628266254772004274768880220678202528989976741008185224077521190719016806819732391332155552228954049819437583976350768292969314308899937872741886257469493054984499526916308801654023117384645865447300618658085214169945042796296196952834755563923315621452845844931069170670115144163224875290015760727281127073846493757155171914896477597868034041245233402726415761626311447533062714728555710951476983113657165185620206115174484146706182801314720464702171424699298779451822580492946106282373388863551085738797636366099414007427293230877435157468270974082811963354362470777271340407906807041281252919665451639817815032699568488234427537970099516677891930133463304082435541025283854999667595527386270487811995947344247561752420240237851095603319523463000078562822550093893502805505740571855406587052704027895169383999956071100500961879832156806391966608301598128921003524022795284334476536341063763741778540452199524436949528471533534929353425129479048074293613196237545040974293686367373976147981452519609116548943457218198459709766441481116379691440873842002085811040335870322426809983970352473756010329392907893666241275547457210846113957503996433471610151752850060631008777673141596075422896523486163834483558236567302947218838939956775996691800250422148404490785770069060172282886403646812069731945091719507310477452630977756045541370236408153582852833508415650398634367285846958635079949380754565115147282567688897560729947622312044057549783974130052216188953708585541733519667442265989551510715006637736799736895198325669176391988441476993719250772065096410801941139018411264913007106561791374990447203168934560940646731172370105597316517448746976868608183706060274857503332352591133457931335238322682950397357544219601134835403558764204733281122994325847070324239042425486711572993999320569279272981860145192778054384767573377919867246175282549214241304007537677766224666214524857519138072028246027948206096659985791578875960916254657084465206045314933238796280391747532466898702222699903837087114928897773497003136531250490763218283087329307229688522317689055313715357653173272314763548525804616547727254431923240994079393626810077861137530529146366233244868240640383382054364229687248298721952108886440484622939292223674530627886719275787940412115542572128421253019823226448008271816927943594908805093306891719288754024355373077926085289958956368103515520788665852185290243552825898886219739073756179716983050997483750504398019000053333189730507127626649373996406834495522870127409432604837104274668895332105984124211930107281943209298639860235836652001159858009181625790858623863987205068381546405658082969009109468688869877555211295550798650002258481940769470750594417330796243716691347018492528699209394985556176607983945372368848154754373491051525227108096861724191102027236943506561104548933175874390983271352365096988853491465750345098035530960205077556725730066835590348210835144476010804993867649053706167100465445640396920667915537264105361440686436211185991051781681982791873712067518938715944892976785096048466948476102420296609288848000577303822144390132191010601619826561159288879018361666080338290638517674973457101107025008307752418680583909103989936028227181236192943940987442384817454613057934304609827252203399692597003216816261124759496566899516430373318655864948397601135749572220861551946127479029111080274320126459556317070482266715067608843522946337466345680067021067416126365370322604728647832082121273630917829612321623826158342499772362580605590368566372302510772712510490697655155472504924885428403980606511214187249710153099120417515696396723170214790795018266146887242396619349350274907769681030891288819030534428034428364891121613500074316852626438104855127540365915643228011985341834011636142350925414815856096542979085932919511499338524778519842815941427156700065059724917857857083585884911316199231067450668563995662943260651204870799819609595352513305325015850990371601788376765500285956779947072802586881237234468493179360188977177511699773192695602820787646563053056355789371324667516429379098634008018968004822189447335891204661108481826914537430316785131180322035545865143908358826401224892298697799572488176645042483163094490135578188696457707862986055151062794632881719188342660750372581745584702302042635873620878996768213253202741857293939306356694501481837980851100158324893489545516036957991249536149671544534767045514935803125288029022978965171386965020985317540852446784630854769622784486968071643870530320467382940439915232600486429671105504735087779854313926741219565964157069822348003108705644249379083134446990733849638878213911527688763340070937560415323489564787575885437754863786918748568559893244347166026777861801258463853851512262961341049825576431583285703260852962415575877705386452035406964567082912448448672890976240619982463358680929397223171887588483977047078295358594584329135264381260094903509151460801915215007703999095958801943148949967586105939735732112135572200278866352210100894315421456870234523982547460641523050028598890807034782296597718901485348852488050176047251300934658701616750521833992637059123567947679435020070772584143238749040801761615333226286842140351940143524532501250545487932332105820492023889217933159345624512231896663146669227913165066541133302074020028270085396679704257300165497884014156704794280344918230260994171284566707146432818950216823676263708256394084087845338250799405791642247414644370808406844552863261331290064136563142277168011045935771011516645988848423411796341453764778208502299553777648521636765231241183388910988283751985594465189603540136911487256198141410899738983370512505322922159089041873566431850236179104730890289999675472548370014658485340576330082833647081891200436726446163794623615099125162361055718349024286308018904490558896990966902208665146565992222601970386932964845475271952526510659676923474247357623952821528081427240330910951381783961642581451926562920457124918723578781113960732970890796665815991204848680767766838332102208383713808491421213661158024624000193707284040392763932270252389653674542812631061626257068846176740005242858274921538514452585069505335058919337812424574504476988212120142635998962873903673670347451171627148831532790315855201485591753891021054220033769938751381356586461379497291041733870789485888905068823629941442639272780675034110224781142580778461154266984598824987106708414275037509901623792762211609101196006437337990891760016560476527504375857665524841017396334871305646495943865713073098792711508415600880144811326804883135165794046534781159017589140162562201982022675008468836674154574514032146453745526997109191962977020140219498960703098433703899832482748780925446131352430203021325769237602701175513365793186808331694548414429838821207644264490751423322009525903614099491659778196173553949962106431214609492011508668149871799880458255725368495577449465869068736963979954224476298972931863615057216258212033856554092340402899193636004397535285396905852911405646397030463854973588258164904877748408207698190509906995082248994842487205540801941702221015236371968526367954524714641960881893079562536738429743325708701890634055853948522194240663067849684089143846813016630594716659778125417061152150718829389048459504391793698108983557244846012737838351582260351685046253825044078547067070044406243650977231549898748533505861527444290864277024559406628860731598758505321278512407935216828951796027513801766128193807694793935316870947997470043515633511224295218905788933230352292704864134021001811273815156663788059174942428387099449171800601620975736406920541453864457552836221139224096255894295639494497586003995021980417990112281545274922679051628414684652105902178129896702046638085150539635197517914032241425634167969754434269101924254885830745928648221923886303475955169911627637596433847729224099555417026371055867414923759428823870331958266689103528480965637261152085155694943807607622911894022173982625216470113409451688644329516624476826380097108320948052486912472982182703986994879344773933019337647118358441646782571296807612160404558993093012508123855501266685142830776728592996958214278772747330131700535076589455713386915221168548564033502436572404963459060933841703544698738125768624595926091232058645544863841265927893293893638688587600902042060934516212418069782158389924598089185561053991735653000434647146148534245101483585962764738030561286536040321281333045648678769144872986453578012881403689212143711935146159131864516161482205155640158698796061294953638437037677373358392579534927372534025280226276416843895862200213131396432399381712318900623907905704703465465180534502333372711271143285454635365972953727420676451957733791500774648266583888031026996750437428061632567181683284661919943418533265139987771879071708018660441563609934109329088888020441234195451418822220367057817191510468774192999725793734620577190042784484034363162802815461874456714285845015632373208851007297927921093749369429087431647414391737000487905275078060364250905172789586597474654819235653350016211602709954918689317192763684286077864018838563715259969137253564927117337363768908583588585579959806432325149295874821248513406211502270645512977159259937710899266238688897469519465161071373329618232662805411566317707558296805409641464299707959895543757319524449173708262999234780718797638389275110317551293537084128432844501954623527271131100764383572894620432082153376069484243833162174289840809045465049243002136848517674053570392137822919923408010067570540856927876408580171495737210933913741799458077573834548301306765068652617901127803343339980159168737543887424962155115766162384103891019998615555151126196692914688176569052404243734916196479622764722893708348571319206302442871930957451395609087501305462603340736292783144364623988407158621504970397586695741977183394436229697331909614927907152112643969771043285997601079997269170846383338402905378277463057898480350568978393969150985503696387237398024941227415828137610038694969905877758176414511109680963035997660837204908445742458704174976870933721274084371073728636719952842354639404798893559583496134128932090566430971721464215791528458167687122645956245502139219233637585180628069472636686071874999786007442927879306980316444961529702222356345887483507197748947855195716401815422099140115782018279819078689440888994287179326332807764658053087169388388896582537044801982346599530043995360806240410921262312835519340284773808170975305179456463048297546350151671707814590258543909188383616057276842791715284360974318412804566506368430952221720072591985581255884537727131363677622772670715269712542814280324473991041372019004267664101845184973499064691357170598057635816659911559791451201383748897542661646988257455035280266412266343488472068071884112723106262325458458997487712156751026592348929029297360706789801198924706924354406007849967258626051233126950618038245995260561016887540821494710167116991344812255680899926657319931940693457863993632106345159254698423875984176166793407453046440391445633231292544497910768853229194408410110729609473402962213706354010539468116343489335971457147695967691362023070883060614394111655357761775226066727224746971571244094775054339222037457188118651133917617457216458469517550136593565872063940045207198350541644964895478136229535715666116427588614549199553410543243873598339955802091704611547213322154335123224483823737948359996528338176435295849437331450160094500630045725516967254707015445770855021504702489762804797428140125215193285058096062560242374229672491796982477263447802297389996555949036029323632124800838693173079659939727456150556143340946332346312736615503257700636106632373896238517854329087747998915769740695096851000600930403773864882018292741879366565293836932059839900880395613755499759110768884988585585966216455632388431908471027354822811135312339028539657350274037165931119241167128547986349264004469723347866908903881226746355164268990090987063323862210037685826494392883097891630520055888504598881503212606097928251494091083671424426538902467918904457069330352421768375009898167318425652000707382961787290908427373834680267076740021570037953871425989852414350644376438458464069099044366852600454288432689764834702518510614212925305241605708676723107081966407325652012736377397591661212344388673446333924182650957380718598093430012628585828789989177033177073906751237711901025189340647460902729029171394384838406581872995176764000544754050472493574519179890362721100254613178912752625620927197918147833660028785045818952707281519580615940681247802404040483777533878685195536657097843649396490604435919711896675178846092273451140534255156282160451536274502166617011187534008994795983060714128550958380785168316994092779063914561901107111200580362764085851966926637104576193187570682100938894245687316501526833186798206661076990561812219662550814658494115595221878246351405891017239325094524603871802634337010032613490656547866832435098501124770535037814914166204972147207377922685636071105634736539161632858898887528552874571684142740629998392333082437411948633400955745190055608831114487136226748081985780532014795714855668419790720362036360306065401724084435056836220013306662389442020051116006475638064136327866866348295123413600940081069451225754021283762437496189642021143276458290113931394598283284391812763642973086726167181966363050419681753390338093947224588713050766103940377742801873109514571319340339106901604614138979202940170673213805080548503857089669967209937766072095581027624557494760223194942705425920551653937680629507750820053401704459349395249058122034078969754147854898140463630993578774085474022243013548025338619628274772578228625957726504602234926143239378532456010149670128243648377615641205401928043945134699443934246147540402947338868916469979473938131824744469242583334079002666314276908130027202061159087091468542666713216196798478143492235312480578313250150539733225371016342966388066106353783069851518273855034156816407412115806943693059935506424799290507430066115145440645496905926886915677781162714329626261193674698062050936663552200443392425750989336542135978066530649698224447345403458960736405464891117092420214427342816243803345841770674408038717222243545949232044434053152391484128758439904994251668011828185000596063787702932496027951824602402330330367658187136242613680395919008124505410457325000580685589480406050218707791967426937135503699522978862543557471585822187482649312078296642063606096157476498655191566986268374610955132407404402837657143949588946150518282870192872582144255271805169136430006422221352134628122271530896207725809398871411553134627793582641584447018995125723869543247734229340264737031933659037140292078796344856604496637891838380936831806357118833024889104962562406107196665532241497405328569102990654380374445014047431867146902559474045835148908733140342514151250034808368171367935431031791391202357676902341945615112830135393062726752327488856786931562541332169885313910865382629115090142933742136960386142478666052165060870624442235789432415318212263412848755730234928750739116789170718052304375360386338887632639789268653126192331105933745792052750507129772944303133964810191417413897361384057821589641295717374199213143719470401044596507375786740855731434809840992917970271690454545268103324071064851447388474583444613991616488764648004008112340097808149949226000358514280515842539431316615230190743608610959012517036953855412915551641099387879082903954980176828013805302161441039163613520321058326261610904746100754011175613960417116246490463282023463228950911316050333686948385096314654175875036539905226962153050051427791188115951822635329049307362830671065745634090578103155979320770192172122864602540439519860379992425157794982461363478682023615568868159045512068795160826381093750247559934966368315467929897235889236443883089349251316327050518866772899890846977898420568751522980112470328848119296165807529138543188093747208540481617478861347746348171669872005940867939411635261635259340398796222787303479845127661254409706980594695206166314150986252856359828720587304561178675328694767297055806160193880359575535727745122702479410698785595843272384335015361550767494282552750316098810121651413167927916066225966018242503421121710784422850403242321936515246965773923337084316683227110582989731199815484211686835244225386996608672758845313256575811723209454761610339150780453811814656109072911292161445149724891714695055882301063760733671651118437737194402871452659299848814517937369611550559450943186216109894870072272241084074483179329364754951712639743533356923317686809651256177437898782574180713471989139908932108675585563464535428681299495993243152139802274034384967342482946452460207886724800813528089216209076618748425289044209485009194134922491233981712110171224749721418200707976068118289756027710938021366413645760180054301376826359639971505549391754134925897974900580970416512187569217136659968992991504036860258456082152556780512378856125936123795752213497031005550327102239305186189591895041986393946916391108693331931508978262105376367143544930119325702656771506852712597248776676434446870667051406683615238500614530344478246727918300730886065176685552775603134041075869485572074342076289759151830100211705875219592260072793928621015246489485721454721089443439819569271628264516410397029015095749557650841813599541914410711720375980370504125647227784153345843855241648603228371979499002223894770552991418507881309111285191379697964360043386047098426625889146095033414738204883350801495363524149439253381216921610690046102954143547072359368751360318948911705496440973230487609656519614541344931301208349053209973101202523655183301195997006330502822763787874533832291801471662478955241392005114247448691178505778679669337690228741990350715690607264545167367961411244125836520366397265639643567580560985316977932355693340031470550903685803163184263262875512869239223719982522825142927852980210622848348296031933280737653006815614817958540236321697927515389584356927263403165114657697440033438396204048209070642766606870797925205101668483870635067193482960055498291036863596419668957056646653135552795881842581865632996734539842594837214675442694319250510064697615386785941092848005913372731285635887137901951242454441000197863459351225863277850404145306222273516128413014225385085163676430426214824806308474950911002528081124974455635618623977857185627687165561919893926605225462701069005238792848018572768053643990401554597026797940868894064637798057064266634907642429169616714220094594153280883355649504118592090551199202229972810224500279528440346748923851945307164048484727195529651420245783294968942725207972955819994268096585155493540929161046799304906704484738656334527143037870852083819645850208047790217304141899893431484406907842816156012120844026653936676063025935021465581615625112965491340356945220244159844936825035150319869082069378687973851762535075943040765492341280267089748030329505959505648625472638559097874160020940748446922145505548424171618831026925488568712522067089930009091589825331799392177218828076120590856478848837184150097903384794042648238564628653237816111065440586799357374600901998112037325865183265726785013728258299950809472834473185102319749744749930093841967281206372762909525882742584031330443664504601352955165743166600264531228293915318979676747485170542560421998148599321074415903271856057135455438243455090480795261005568427997357925249806416763339327977856393896395932085778815011813850968826335639364322946040210066298386657903904727375765205694352146130340452262331372948644597620430088944618014270943648570416041613421239138423409346335048850220828903044106615842428697799804717253351998161746107610648413277936594631432004674621661831005918167414455333042586899411977826121378308928219271407301723501709153846181434197667865396707215378780634764799013754408952207251911922425849947537766540381327394523313824424551209173851667532401102944474480667403119968465033079794939592182745923573824052878134455152724158028439025332659063573114262827578785816098125599124410407678371437731494026036647751053826900915658793178875192095478710216935305059451232405232834825110213620424164363808018539772762929329095660509959554368706762899527852629476965590123865044307790785515225663352880465100281945321364155903336523927924818538139785957150731180685527415140972368295544727822703299545808026548619942441302715698524605815971274682585033376309705657827556745419718238700926540486622437605249347201022759732725063318239183425400676990323835890848776346032677836752689363958038576560182117406177502245331640844676983227144398825852439478364931976740831477022892866306338882043951186583054242501885420339991933176246721598458135015432054035682334151204387315308100813416854966286624607617589212161311806869976102991540652676623735024748516155060003554865999845658388041184612932746113595824559351224233114149727425098098283527077603131397891486790148195805533303987601754368993654434934515250388645246604548940104763847577528798578609973952765303652269143857305925170105358296919230196303695811576561583316917886487755372674056625403120612169711305834000547075360146506337468970656056484795789348272987567603111904006058703494631069458024967231903278346715282818501229083803782033256084045239500164403258276734246798651151589649612209970829176927327751108918237658500230687501914708741738306300620258658184578010260989053715645723900773683667599354984767267943221748521046964063365458731983249889750008504705557559094462096017907824918337150472334513150412001622910260261808705253209967950694476316990745057083835041967091635784818131656664054040007053389467498642818575594693400108839450545718949260046951072656518785575176744450300800193403654311991452165628804471714772438461866609266015907078521811966840679922306262044324806469299536908161353779710974245000733155284604523470375723705659086341216901545211629821462164692055321768023816028940397911389127196970708259997079371571323752872085076190956931065102504827711287286371559050423642127999637806697130743260540876207352621539215136862495951648128328244866050697324468492302565425838099211184412918579883427308981527990641967906089664687338364739347856169337752831277462195912954676643024960805597825279463084217708847162431413413379210815854327096804257937301839509417292217717594710242931949218275513959397036643459724986079549047824214319487429521359164685743268553524490689702625899996795949619656370153854409019034652980083973164940805288051624905329051568536725770171349657744425923370199082714530365700619535212081265687983329703252338072348732081567474611754845067642395962659893551809912718158708894663550255499161221048829571162446002940129680909925232866138788183068582432522198386141009976050050265604960283523107793117964516949343106305471994940802072434955619718571820201440713421176295783245544453338899190652263192123640145617666442657354239564010966282127978969145377048676748968229025300960896948474584234181316047848164450434858733217074198970315529044781680793303882608638479777756609212820238070003746837212940252134492805847254976504834035264981713337865231128701791342898185971030894873100031916091335969136661388800295248777767882082723492551513942065793423424434531262450002784121444786850313108077046044035355174356705232023596177961286027640022846556179133314985658161498993863472776331572589995087467191979790703329068886574583943896568040355802348513126841760805494604593592507493062466611332418052361321343241020494827653941383077637210188728907076692901853356748207370431597022200803536066465458104712820157869854250521292844429390345355392761311857744804581035475286563041420008112458580956349574439329028541351793870654227352580467135309312206938225273678786817706621774894206965805918264020639343850329818394762087808371264769240827022688606683856184790029966519227812732879829188462969443326863316746425892754175627828059022567495695455907490203867162261476728564720030461021890516144528821689485407788632729746600351944289719287816590637953423870067954169674784942212389712982325625063876392217005303550305544875941645856000251220926053277702701618071145720494402515220946141044056686487919495917479844567517302583925947540237358013557551824746094539512557883300063001123385375442651925434171695048846016540581038527105887611519519892481526336835661662842388896719495650504788557263463090810609067892831665720198106958070689703456850718160706981080642067472911912301636650612700836239246362665337061547462361363938907005835078065136419997052051993219275750789489183477115994711268792248114916516420174983717827186984649591925987708601503150671214946807891105206333864756376772052009910609074226677575923696382054551612841089536005283937086569877227895508856994584096139026894678330844311522926540956242785383703720558522313134010397248417389263502499251284031716412493050559267543129673901022731368598933893921248007723347540154486219120205303989284634058106166327676210516669520952422188397699315586707941949681343495734309779333911151734976401811895368632439619145759772182372590404188351500532836995820527883707243382817884179200346709923370140835241422779547248948123159332338775441515646103054781220486531254463517450715671809639874383333761350691705172592251067855612528406788169963478556184114486688403341962274230279863221921100686988492077131534047923597201251469140951694715207491737223199253050303007381746247117655543676687855803154557606178149374257350407993697510959184267577755858062491188820847762974188556559858898232519971817918491347083443844416053246067636913755419421536849046909958827117350420250954830592271607563279729252577443990662401846549196169960452587094398249109066162201904623434484223215781339440220357996377174188908128553397008274519391316927073843164489636971261537157540218455230036458175486126999010461127033825936461123055588314624299044569199844247460314806458582029143955915769355923997027754356122756136631892520578971962160530031820603915657587199130245026665443712907672985933214039640361279622442583142179908327062231840986703079285937115835110471249737146802321662828785966181514742449178328979337264680252317144688997711815927596080474558309540487727314156371230433210281063083325147601414887591968904090559148120638120789172114981149553380762147722844988672476098956293762573717976261553786575047793700774774077825715234084754237092942542571464419424136842420761360284963896986200343173559014729994555632096493082872235375335531500237162905420715544722483037930788608338800704692312839660567521054844683083622321535615200397742453259216868498042105715494254204120099001703996569512379663980518472165229059882617758421261466838075281973418561371325806550207813899464794517337304968352428880829908587165719448836806845599288486862815795243999106004855962563762639208798046339551975870514190349525444265149938652603656691682907647596040107877157201732839396997616848309601986758804911913679874505724646381739265520556897728265454985678821542725717197166254243565902042434553278256477972245276875934062517626413681010397576685275501150535875463002239148245358999044588193666267236219703541667251223399467069104059425613973414494551979645404287597846514747438269672160193990779918077857377875280527275927539731680055741286465485924807016572699530150041933054660429849324954780627127160891407552828158031551228120554532901672431702393167609974528454483880101479462656272510332305809646824413537975824896832522766307216195051171343197295587542024695529312118409846507710382840532798913485970569547235570007835449492822631865208116731447604937594261923950346912803837936639644788832056577945441700815096399331315502030077880450648363919354775765365915132748647598197795985810724530955477461461087140154048550431833971152967222281237502906712086214889286495392854440692514405130327939995367046394410912654887700368963291251267396524747954229656512081664016515845096252517908673395799650308484071376779366477387943987617265402380505358984891168701445095012137417521341625725688258397536463745334438487595866285680794383664444656313054060881289500686767930476062327601990021884565926518686456796165507277560179732281624258979211462528621660264630657187481672914228651154631662669787605220399954923973585724449366922446219827990749400405302021605722400849254013292383368156823220111521001700209825282630099636762082492896244137041457393088292615646022778065603244811009169045362052510199501853316029758097109013942618790816674861419162493820652396705811733371825819630336593563918243739648212531885065751779179854324387214293905468014047070632576371051757213334553513603259773169414878810992531003218174021346950839733888565096358084707054145953021067547961532280065942790647234112760303627591130728735148563823456163770645668867730189365518889324754568528134093906410688783196748095183508553911172810802402120812715849305686793182569436476614044986568762242636114829591529881827856925181387056156006895582530452341933297122251142798796457369362238826392899815286958705794961889872482872040256933052676333093509421510241448178844742347030393827549626808306479995953258147820600879312220759228126233235628145900774805109890855151728434548699582341114623086945843624187567841020296959634502733174501122904688242813767148003260192379125638686749478161935251210713011853931150619227105260561115196645569528738397957963384458224740263759775242324309968529915490947359416887816952743171308098761267444391935030525486191511657654555652258044991894665060917451372071880078303576080033732697558818025490447651535115982311461175436537122207614473993016611799317264852432486188907032456125803870372339900993210089908517684410449415815478989213515285716800516941713251711122300780583188680190612868838539398908972930559064012494197562684435880862979564999951892644393337369968210978714280102491932965445423134060088781474961244819373529030304257064822748667756237914892575365705702244926175598209209366062601934934207429167789873730551810143753903779239607423933910934577210464206817703331821379307692604147088339211612040001231771942691033169252386250589377829416082422472451492788337366788279856106041545166313969216380714706401386770773731277634799655146067772584422986928997511298854665077865467370074532503592675744858460476277825251207651565318990720745779432091490950332272204802673974994887527870204480840587760691413380461215366420018397385602095850062351324114973134301441893708017997171155401799295425152161087943816430805950159588351222458352599295243949870450956834762269304919423065207479414423933955250080984529949688567431377424007530050721077623471781063869281593216835963131830185811574297163162737732325474168950987143483159895961846316128692569954430134557523046004267746002554336441410121875821822382091124599292005897097620283555586546507734184144607755425727783120667719034915737438291816218043038087769968785055078957942042117904170151604917287923359155847817257571997111672259706592392160892846466679923207405236854410699087729201493329822213883425808853496864646111110061592422127287266743764527359634605828835591013481941658440193743641270183981374316660851079484616721177641187873354639447451539891744274864166519844104348375262589264372890613046825386684339681787663280276721447221650880516928496430907803546107686399117114301207519779088896121780024307043886766991206814701043244078577681533814599476670067410426358175264558912549511377656293978265118457267191921646896759444006299704180912623451887597685472382098641795409367869922971589647091295798106307293388528327749117835970788490821753060367675604454724529515575206398945333091418571586430802457521560692085532988274479410713056749051632414786476456148170061024513448344851182813743778926140037094835973154053535614835557609979017687814767737246922459107948354006341522112217691492596685568081158884617550004972833513512748444463134202198717017560784125238378092677941330466202217987899668008354604896112357472836803980391910305419213228897956774101647229266827371708012931313805561103925459843951512328282657342472193529250926740726886971626829532324268802218806862915735280913151211658521276124032400223717323416030886412693756816967231939210423371483235240149785167782840671453118602275408581870536406417707222981616893932312626814647255709337167514100596621080873657935691547019550232060263207278205472353904321239009820563540221360782489640114480572152229851174009633737165192309466277001394578135148943749481935039869993962511761159135430962260807398409423215965338281682453556635475137569775734794434628436984319228456702754379938682638799367139935247612143994625977744295098887909462618587994577865298797740574686912689377066136486694429732719127573670785589783667600538659883397497511910279030438208761232769832096556809285882245027591862058821867588243211257475850931895175532052655107887834575363309926603133397182755320652867287498833972543341992231709499962743563481725889810867178394710071883993087920234153658703697328723309008953894784867318806692194738538983949114486468761819832703231391899609785484026128610005645555227799529961382394111104688479889019456519588925949868454737586561846979928004360050715300435714839279193313532493592358897785838443453101094569708309385640887237859945949736594973299648621057662048533676330669439145291412461608570951238177087948929956830394528621384265478222323773162229706594142529972695102789510051689808347045693277043543869701409526705147351821877621607372882518132705465752381199696061592930133935352255110389801534273216151471006709224854231958239632466840346254073258150919438454780417649412547401324518205748134092677263059332552658780132103077825195196976623732005457811865514424463426479067250906367236220301933646919535269222417953494951466341868617199844199901413435876344185730559038568728278735913636681752508403044818805573858598264301195764356205987413797325943528114265176480176394035514623869595917896255802720350501527377696192284236831879347442122107850257582874782734340312676896689328289331229376687873858052103025473770361544247449481334639599681895257585154093170269779110981166098399199312717440518806224263208283860367443221536814023198872487848327029413974682858007366705293261981187980831607526356084225673427874314805815444198184843892313823662845722569125515168338019094959407227161127708755183663208285775811821640989065382313716947393639913030330890726060409854379387710604069623144931972072200929937143126948312383122958221416666574917291420210901074668412971481219923757669872377214117844329130718107113196973943412316913622961456965588437878702610936563358540456273164870394122329270751935987243749264688758800449862053289940741029127519452266212397485048805125295422036190290372266401473220563781738337780886893037184168384655338667558153495400415706735917887948304950105323420789377390854018072373349348587116957612390473105658433384809692339491514777718444120353377169610079135532417628462116974991657459737339452659477829233055750917226719383425730294677370511516167114460587112682460385870487411499395648640446113831380493991548294604406828827985339515509773386252651177981474162323682466605853415720834073731319490949228513600120623951460015382288283080422395438144518654506653102480410729661954026280652091552108821113079550522216150838110982318341171373362246060542521620454581110133778177982906289636838825399659234810206039603617748202518708800402198248728971750298729703287431300371631025676377967723961153022072239353426734271614823870097431992024624101595451039889405528251698860050251471037845626937413592151771494960003546572088100072217544665654918147935732129428439217575432389183939043734349941300675438723356827234294316096595143376538978753259557707292053280466426405863823849343555112394517685314287882284161056849485698193753968019471417358090950185407926617581513582934295052688784493274087093836892354355809431103944623362058422299146774229088462913333425625551325077309561008170486492761796492973656275301225597975907475729537019861954353014133750398499141762500149747697591968776787240900843390027356757115959051596445793329312591562837655274041367128872274602584214800138369322731362482516337757565071484910871234520656182122194120926932114682954856758445221109981820545435036020703307352998494522427257793947515842885425480283617084206737279695915977857141324447720113115310013706834963082100174928606691065125940594712699719456053310324469177314234436766913182477668263131445384817366889385845126340094785909252666806932436253780437183922477892476766351939101419471734744919837082443295721905072970121282206991514220614330383081251578143779589427789813889860449465799240847853486489920531477225929576255710935477985959473466383478083592603834057337119444981701300495145722961237785103323259090866658081542422348564269168962061608098771289766320894327060759549062988256741205070748121984528372652443329107134106550334160234913893958159320664363839469800262796744509422878964313341363970839967996143191814076765026765440098406101615812497138267729116967812462243887535997135328062231289535397675629283640743251827223468976462066181303571930533644171908632093454288012856800083028868914843494154576739793886572808353361555247707725502742548368560792158187019389161530338761534071003985352917427670823950700500611882357440000957558808805747223440056116133377805412443279641048228303580988985497708647273489058372620709137464430049656035928099692624581154974787167225538332735513678083251796679887460983611344669951762475790842297268182021910077346979566901593386942630415848939408579470478699226481552498833972787357385950008680191899901833261562028592971068434287990278800879746843015755831366317398097355404953887188017868240904076872821700616687618620462818706353019390066454171530633153750855787920252382576659444241766315834276719825094951838895807225176579120018720571738624993443831364654984315067607250333738160564507172510407753678653480375646969390506879042767560111415752849535409297938763735717673774406469114922634574941134658859945911272866270030301309972509923185501344945454467925273276781665783508641316139162929694406303365941560738185412341390540530071086321266626535517915903069831211490962093634553494185586860292695189080958032097838832379577819053318094708031219059258303288278072654206947698554754765894055109609035255086314082359835224596850395518560591251249273159722604587493642376323513150967502130574553228150888533723367451412359180895237737266639394461177689045099474570218009459438345125022852739919705629893111020007169558934641233943545458542745054344609971693458829430243530211814043665131835332106205576843101777470322267018188463299826358216423356835865506632999878694801938112479012127998988901757852122357870433671509243729144683957011983105253322010641614172997498826697854146584963328666089768286964208993333819576099529666663841600866157985864306561727626554435280751642265941718831307363634101544450070684120235608396751421686667066532151804594129329477650833365052064041864727691428430934283678660771962780321270229073593866921848270799462289781390936057018577697088488119942713726308483670546103818523214439281452614535908722935809389276311274126897395467800798700168526060977798442392569966770693555134672593434523276416537118018053924865978619780009819571638787903724252858362980392626131325315505617394905859944141841037435726341012239590579058010594446258593944009595102686624310336267155992758811170396226914078482270978399671935676516208067510379557971681257567884340965128500348623413718402382366810756128716451698778490029119297221896869806542678629550467405511879053318074141437118181857991773619551626206835077811950219650659539723897181147615263961134533449537333766319517127064647416870418198408799543719522222065152767985037436142646116476304375543062850430038349750906530603178360517874066330457491453843164022663400742687041374981948875893685577412433919850060180525327832760437027536195756611198857521574792452631074767017121691027885402381022514188820998094303316314261836414943980461491180774067860575494350073880272557599715071847480606898161754916665517921766167207760476984065420421073201848724555792875830539920162100462990719846032696533290404032616554336695889763928769057651702812797960717182190584364745039217734464860215298361947370594794239811476958146892586889156622819111641958791940322968574706430693354348464219598294061864668764126418255136949394872216550272239120201086000388861738759991950951361146175737090036574350914258297825615757210837603303707251767243739931869486196720592160410760944463604921172219407079172420891793241336044245482818658799402292543126412326417524660987365304568331522788814802076840317791338670243954501027987890928500172471636682634073765724049748877359352043125763668063115072780926871061041668610184820219574066329452418204173961803819229708990229168765826933859652143069056096386889090759789876724177701486294150931994174604888198268198234952562158997697217099656998695193630712537045783336419636159859778059336845243435865480508514992505729913702540773913114236869105033620758588276532238046392395055957565387844161755932841720017751448175059140107503659311563774512003289121497811842758974605084498128340106443084226194434773491069942763775831481795090658739122733165256251403451742626026400643949304406388139166923517059941723834572189819731280962762422616839288522770227160809769764968944203570650347007690994606717586811874172872458855045049809924063910709942510390989919097521805707723127469768721162503425794881570692485644218365764485882119561407021162016660230777375438918853920623221174444788140986526377958194764934387965587972619232868803737262794911243156492605309733046964933061232586863980527025728740056781888258540884769850220996239322738716531525251497542489263985829087298360942938548931990248835270206123331865023642917483766134198908987914803324167541358674264934456661594996624973808764944022073757481213147067153082172704300343180395384208404238925748572652808300340783167285195657451631290659861129177473929091097962358351581761379545477289201864852727700043173585892441500794953592837045679012530046382796429383677192993337049447136750136714757267670531691074588612268321533757003920182527070745492331346549929296452904843811292379920795528927240821948583944980535368115465991560984097896205177057802663376952568702746252273837114897454286932102083963737862174639993477201175133898369371497461747743180258055568065534186129613894199002693225631881404954343421094702288710779464487086607293614703380101118918001528714735836207781508768307819183607631368436728646288184492057296289902943233670759223115024003486712848741086385270561195133356517398232725180088074648263712129955517056768239139781556762713979560758618070455668809524227153989229901732792382272438635688044801689208868499001778079790506789509158175583323948358190309683027597157352636062568971891018235153359700804891147992509190597120136992140132601732551226492048387801220460760398047383723428992846594029542163069783685210211224948183324299898317456200908485809433157653006455315757758333040343204566807787372326612638135087238949420167890579189630753137393281264626674476739485942197866423826457259306963910194987013786854259951950525735340538524370784511964423035689627935694082981157702514379824640199269965028920875444599569688466819640895922168298883496397156951917498372349962714019048435466047959005351372508440850053643102017891221171818707061308651738084548119510530345274873132804241559351489030579619540274936993597443350173337654193124372969130196323435029046634869729381925588768739171367590805911905284420595392373823069585805221851084977573211625032767589469721092670682496511537189852087495388034056267133050863311511591443352904201477606419035973216029518217718174365555603819550915026379966370198004581155062082823681592392013471566660681041147152229497416278192926912078307246794059187895112227080398296526368704124704556002808857072228080331783495416522889803066472533012805091822603619606254863725696738666521560504010120717454656141053388544397847160092182186823133524195849911356491047903919160405807922429874237283443288267016810885751984674555986981840098922975667934839817488545934536454153260349653496659040041634545518953799885325708662747063687416582906152204905014525512227489092639212037782786309325539013112542365495602968237148279781440686751025581764004354249333755347701382200483306198711930733464257552333186008631407741220783119093984763099618576606530786337968371125389951572474271800609164204119979443088026120184557555417683539416117050217742883477311117579470215137316102274030246170433124276966380735481196055654085694919562713084198128411500710675216599435813200514842200960267487879650443683668600531078687070594842499704558809667937434459873840829494949856960701372794126161186351952934331094015300206065926430733184431402318359172955155387299776500097070694571935801663466970285473938715197624586576592084404801312549098782147392699423108947352109197483140424584505162399484981930612809559049694811828445434160101587018923831038836320877956992121382673885666675381570809467281983626945627514764345269820505102275765229632463279808637823287280422385523520294018468481627746958212849601963298571445154947864136625609414074758044773417280570302205603411555853652906928749611974424848553165682990428720963028025239721589204399571597567811364093376676712073966373112289306672162428384316991976204213121480118080362991553821181549130223024172115574457488847775422372313504869898104622776282676211170367457745023207535643175408597677185460045871729549120083197408069502494202318313139806562832342023382694152337035553237495341225468384616878845016133622896151464573928529615393181314197378248818085236814756703195081540401443249528067734571770171006074154879464524987993924175172472549416279427998912995373666705957794381568988959423876636236433312918587908903181295888729106404369422687706095559902911823534915851839844417528632577628445961571403879887708525439518270418096861037340897619922055806934341971283763008840858375770553220488372159634687233027086342789931414146310838192795795832244319449947430296241774366773756317197152744388268430501511444719156695629498843657222687324064344577704305416141348604496245656888420738642218297125767930982728156895528384996370748550824261018667674844701252237675822967354324379118380055767779151282105406197508170507425346796094646390103277696274011845491098716410076552633465728106464177474489198714231167078800044400391245736499710454656105962686125809580243114352803145881179668816954194202228382793222730368967070383996071347918877715721751640432551317863799051130617804573501114400526670505398905076011437078480906567998173535029965343728244670174686008917556135470256248029370877872002058763796502641091142643042491582651931249465961263669977563085607681216763619508472792386573720826320602266856134226511909839434107718632127483968225690823755260265814872521165067556996995163930024569578293984887817976857482232025838493377220076468933532431744477672187547658413902133632491969804333575385511684938994650984931349273852938879003150446088951740629206530660414123173585783510757216654914886759087814953929570153624860861516007889738773443815300643136665818700046833688272657694657755846735101651582337996806056345919548446732881701006393485357122260989372155296185758514045582647909271811687125746316873367729723742739952447510135924256329089665502139592527846330344373585547911510130846686850848582225982353233852426251307183101849103816012716298782528902611890992612710114952725958276501157848917208450939368110482908799707713100412113520275651005779510468725890274540953533514355425313631475086023921058775273426552757904631628097301732258160916861204734866890700472843790167668123668430987648541890519761615842061685443486883975147787153498115505695811427798851455102850894184395883564052003636832566517620773823761689898707678342926901139080227527528087705711060253758007534259351593855047006736383609062425160951159736802559944672072625660237365335278020943031011884951698145011739075121008459386414077950513421616945920875097854585699546953589403312502618321548006593183641655700734533170552300197477467393530754513358110238488834655635761128166673272762545772065852765809354407402670264744627125835484174401742777830253029061690047734895611790500587174317267467968306664913305030985662150925518616334365229493017487742140456922208971207748429483586180228826407035204894352345979550878952393204450403790754216748717332789136352454985283510912582092472624137319362859142428293342708899100837150525835119119500028537444334869714024769877394591202618849131331904931134599150239315971387608281446554038032856365447841270938717255767403138620169078248636307066123435492724391463473492828694843961600389665788664434158297329570346116801950078744673040226558815843566535315066421620953243281754770204164198661992359797390118612664113581461100432509083206545750739628228492538479184075271275529043490620311805747405882131543016986231888002189377261018587849093308677883251541917370345495361290556388160931693997516632544124480584366960797136858493497921937061511564303600657513579191107935772809757721533941940150250212023109960373599052634170216486854878595454371066163928312459579967597890678559100481356147936571818044906171792623776119235938023308069865222651486835647217727048725251193940632563366613764819917999414726337069882364429166622772570965051528685580677952797598654842136274856240967787331735769776924707994604265862796689544000145787639623312417692499327084277100485644825426337392985104838405312857621774971652296765058396751257475248368618643000655592053111839201189269553224850910016888941054746773544336358179268420620744944171054232535735807418870283222165576216541535227679650783032459454449957798184695096274411707051900526819636404861783497033261120342933125806600808642901310172614179356900536267162528676300457293682800696936333845312167149062725872432433992700982716294837794623178527209720226781525488468592983258521646796224618851787153727696585054690532194757551913766744584347221828590797903036114766526877582855265177606556294732959268028064746227033890687206436304298623735501076274426627720103809922236656318655617127618088150014652951145336073164543142052355692774239184304280420562134029592215770899547169311468810976621668358764697286727229202365546611681559869495946154314708254481498925972890574654748569433163537290384832237156204710956882376259744898121948102357433610506286853040263032223555235848603392605265471677577169553164202907481394880968461211947439174096933824380564581127280582716399094943445763111205555863342559297178923945562934405744597375166145252349510671225143810233124872526485162159385685954852244073171850844809586568822296823252626794749693043412178143270941399680228681640173648850786674989421591744091586624516164261529262246457285229627238893917140067446821482358849558349297299675671004952822337386287069625988594287868203998183929186818683345650642552907180537897602098537216284020124199171452139198087065611200763136361177523608268086535953447494491575642728943566153496364662583828416261930715702926471413161169403677764171200760517023492787476008134027122058827108237455389249131316157324526870610410187798835682199340474542561512241212235889100768954920508838887800551993499127942140044350610719994048924075057380400574979300792235064403648208671110418953388833463551494960731797379998203959231895294768165900237204324947067847555599877969620847106602414940580841823347147850601458157549817741095863495285105311518201655237162641349054781760534823706186184796932550801671909909393627654127790245050169614590889372898578812023432685335570470202604327435417323772402774055397832463469423804351816381865218696160058126762058205387496589130217176658964581263159905399134392175858694864032123433162894276200502985826946646426295655360562821615338131602878394255459606032197828096717996686842369693181487140262990198106169783865087027282085900947171699352353767357994374663422507365884134319604247483455379082778034118024734749853441169702886622405219942826026115926543478825411949644272629786775604717844726861177070184428640802769403540468358394127946381737603235523981734653609440157073924028376758579970179849814265756310312589122376756307044711844838662574025110971812485203460584503228603707781840625891561510573682917107183036190224374676228032768009880426582002561799573312099759671210341713086972348210149896809456463087558087435047785071486178345281958318185026143008814905606103990932666415817048502734340492838126733077348324848113143497012061653744036401533325976394335188877064519739710507211255047013568018267038893007338303642135309564620887330320953858312901926665173533657881290230777624174052660575348365679224425286595631232566810041815029224088728872485351114504834988275724829991396471988485286003756552524841348959499719070309152250305685835772092800007644252430090688119041763464314234900322374173499704602658332617320289242583224736732095834530457878262781952393337621775034792380973843004158081017463427169489078086363715250001184304515410437476017089821742866588781400568113400510078327730288301077187797437641763283613870377907893740130884868960094111763952267784012690511105309460995307789003889520185383853899214773417110461714634068902070750502146275550974703677625232773486536540486217567677459811773349883161191074217297912684179457552902870152709092667362282698747457091476248221012853773162588085766462204578443975564877059770285913009114739130597148473406981583489070422867554394867991676601603948889963848075737460240003679805087332100852213915088946184171246133091496983638302037063818754691373827440450001489194975305540726507600441766358419540698870040468848080280001618522990574489886103773241211656821301859932174802796289119743597083440417535134418522460305856405861993419776501036784386628811999760225147033111870555879693762427246668882995941144882183210799978626073130604481038051044240291626615158068407857509260443953686712512160562999039157974415729105646931648933924741066964894163924075233734019491729949229791902817404582033835264629492449179128001619766527953594582566836920268355378361911070184951715839825722178570349325284818729244579199434108478566223656929770850272360027347424356622561048713139024620650337136113703182277978712456295355177626816955241791218511823300215498301483815426603902805958810803971662568417504315451559917356428952217817927425248417619560861402136852851467095082631827521645593405776294634598557091616996022042941454117270677374231013227494674956810082557356141273914255082141200091598183251793103606506313306888651269131154401605337687597904937340948190631190125164612254226933268428580421367179917330988190363068269155891117535050632341716553736101190066103816938018462018908199474366022416618294175695418508701147560961890809289610484718705033794316182885446824748610357533554936840112612568066982231361193044687483806164131875996854602517411505891777933897548963345905377224105619067665225123728343076870482152415545666460481929551334578346083098375432053944583264294734839773663004533401533638021076775307021576544868638772436444476064120334565232922987533360775461702169017995895625957977586095787419900486242656962764120387956304574434034506434563367178512468059071801487243321553969609686223746980333582409735154781377780643730346384335662300638413582751796855442653799042783790306772241591899215923695427096044195840431616667865093980192065553737840031333109490127768255912982593753048551133759449398874158431495248442980763195604746171889183579745062416114089344928617835986631785859797659989316414156139000184809713588356377570297180894196965197646516576888511584307479420494412616465002152613440524871190186218257867709120303683818220706926006753910953007123186355530990752812339389543609668869026275577669907629898025310973751660453834816865529693535936799434956377480073807790771229197890949463871504894818561220938353112079303250556042856114008523941632308412903157085757314544130309494763384508394169070391890119277757165036174002893337352032821212535488281990428805662011017500319648658778215600263031279346421272487004170314396735617647001183472462981892975451967397973351674094857013028724898473217814976815897630487784759077426032134069862957843068828701790610943669687620284710172453867981422732207149177015322570268537273148841032761521828239814432901787293771978791006161899691210985908051230231651609172412238635612770414602753738320832522019836567828648345166196532389433660961977373158260881245043996884388103188061667900141423403749257558968533448816155674521079159965841419573529099702757776950133523939331488875433335278290246137065327099660904542724144003322580446534516663443187196425543436041107329250951928901739644789807173133501121926912558598337960249667464465853466020651427435406570204791647224366563386947408119146965445153952182637883846819668327714679795857082639861828485955523927373516557326804638412248418553883386073200496375866941419724354120524581720532031485562957449279520199771610496420870399284581910345867754337446799218310881733515165659377740383273623169027589097472857972667251087008379085208102714558572316888950801037556200809951877602675219905492704659909239019503262914919326741803254200053745592693411660907070586108310900815939033758504832022521725369638543500476637398249178069635636961353512847285199269242664707067303944166515436602575581209997250746435152778823941738854890852508937318437203670920218566480900308150104110567617600703192890481654523670969089756384907178076948639014800864986300320982887504668094827385316654287907205883395911898996565980669619090494185697260544432551980793885047617019110585060098153833238089453530597327563862971216782513853043118537805888687007683466401225164825429215025705488549412507269285007860881606926488171630593300220371380719345580908821385758938239531655060450629169656686544002666416955252210310432464598115776370362553223449339101426242455250625596857898520365821627359783358854541962773822943407788584489629832646295520548384596882986925924840547785396298661389630523495540890895304187937647005929570364753457790583086704778736033906415741331530487978294998558288165000339350997404527211418833989912801182827549386844690300249276917879066889193274296401108132534437820052421388420018432184646023863250225754571363060196352017663179142595114330484018349616196632470650739707327605939619424820069102014122998865327962534793211327877667037696090201644506738828212946766155081684054486334426694302163460042617794251002314082633643109619881218888838096915842404648396728770405274061474882170421905317792760551470984997669106845989982229220944933647988351340416046492105620948061727182551845392863918589540564894797086522093773486692466117156607032732976297120989855970832852259832260543509814703290118922266956599940283807195358040848413771109352568581988420544367525008505510737128566298353715650941996048796898371554472927426101999891040238289529314924133256346517463013987827525999483982120994265332003139875189750792721523699861206692979063107465935614845675134627273513026065491607245259746679891761190913206484598096488929752863629071067928805836423947581888517202057606528520242368115563215228640187303007552853728599456170746318301685109591950053598648939753698029878081796447859239317883714170657562627301960460685034812426477089226860400967007972079029798562019802063411736021105883126875312991147069682092756466404768065093162173554288449715855128644123500292534324410782180419367118910679033337271613949315081288475962742534411081890567759291986816700404225365182305349617721878394709427183892996616662549988855852931928126270663895359505123034013548504095543834214357049253294309363235450913360841360781188553266346759649968050474444948066412713505501732834054513622586274700356690315349686864320713895389319194914350318306895712480390778407300410957230491950746097800348993105658567585442495619148067609488191973677817980570736321149031904743345172373896580762613461319582342664733285043773461491874199544393236533277549683241614681121570321516026030072864034767792196782987062204096072425060805552422220769027944154896621204988853745300190593661287129404734775394072976989237610566742403510877664437348083072965902868144647581351731608072851005846789901906769681671007083617995132863104505091923137173626250148046868665434450354516678751536934787522938370484333118846793775507563223317465592478335871557992083508914539282068618904244898473037540375728772017606496359970778632619549161726303014337318724763986713085927451013382088081558835249510633251093848894928692719033312431648681896676120437607788223262125667276242963495786979253593174953990525058451843451466340041796928321245204810878020185249522965450540538533914642476832018822319230867418904714129123368547171793026123216114508229185760928427026347454792421150140915223782415560704477214505615070499543844943562371783901129681723559056876224271587496352684030772120078582842674602589336012576255016471949832459300275717382825331889573317887709378265331002833109448108649317912733800403808948436202567219439425938138558080753536890716081886367417916721747388825055533214497198026653662103665537547727050528213320500338244872556582901089110892207857120863351760065660694842322525465707260482475589589035892762135060494609402657071289827101054607692727990793465875216197682962487239968739323561585318418722378892372157534728465523137000978571830104089074716536021468171900043447487277282087270983099929090301160656679280237902370108373107332025775971119977368959583661096935673708797354938264511889934937340714294085841447126995186212439161546742110352355177660800840490668317739857418446901787911785406826208407292272501544211493522584448007061184639814168309721409645692468428881450009281234720110895647704078486337214498987491160688817310513985135663692699652246478295267355735241477243965908549861660393644907116614101691521525326139338580594065421896854608558654623021779163777627401135128641426036794732913177685684399167464049399741927152438962372312533403990984326582336641423283617084943543074274530954264295570707048652890138577346355333446304449691834815272274275550679979579072607353104640153500007658552511795611177868273438264784816686626262408610078994351036571616453995117115011593764518972625678763767570398150924135876289867978589055653282089437770480516892786593571074799356341540097807696416221767902690273635502965807348829346239787436270348090337119826521132165771146450988974526358856058678990299306819437695647706682716989360224518063156413295916992366216743947501997489313778029854789838746631720746367207167223908933101935876725892106918118655094590322912533036332336417592758998074805155611604335928652849325899472987294207109633486321475991254271201084273485752413542525596680420391557205083801924088296614909381397247570713932297764437413099019684748458144528666429788058229248061198269209294375760285409009671419240172953788559578851422389283234989608887779130425581830794491887368624823847911881438485482874423921600338096670156944928335834761633911050677577656879992738360521322089832258642670628565047451342049062988649035477858992969398196809818315413429303492685148414130228583728777840011058318653091997166253633251987286285429102740119172591189754409812669203563614003299238304335198004712884847635455734102393212865473046043478131018319825380331634719173730072719098721571248260397060354115384207872206806467831651144758219193457886237984953848293165831185186228785547141733500500367670414901785345227161259056896357024464195498463469120962008262864679688136241366067584769230292067829181354632646739336078029340406312356830966259451180114914169383168601327725185643001724498743742077355032095774330477492151493096015576053328770212807439947664545421460419189712602373275673481984942203358710865260726723639575561413672693843006168428426619746832880860337851556686424783803588656018127681227165500217625904656893297677983491193731420580597952610684103443172516625598409943507531304277028847366000800287998721277326138354567030530413404780432655243684084380857143633043863133640831343218461303817852683838025933407177081021970726224087953372734785514977116713663767467166947882488294095158253983382599918345024226990408218344052030011179836630789137500803610199240466461856544740830669894371908714174178653439435586186839868228163391876784310515710275172897644179131469620653120993761160513251475477153535361692321160453162827893089210700570353077640272736546968501070449860680291869106947299087605491332276581277025878208815987686488002382632584143668217207416527006337791876885746332360912395085587747393945817206116392484352818251394479338546901351934039547940347097586364805214685525107091967366909855378539452495633346363064785962785962590668421246494310540404200077982540346293468946428235105966708469710067268941731469913554045247634451238921863349181034725528267571000501104423571963627848349001519209970134971953920484243179266010543891545473844989055002985445465778424518478467095749073437665002491175907431869967574712426282207749149604990866266966265220694940328531406550413150624043987317291949888015702013766486801560857297545092016177335059895389404705340870654507534479558181491911201216146915108255764164071271902447354318362032732358828756704813725343205931269938489179415401988657139660072525087416591896178867302964425715026102833406402664839424846009031327980584130887588777873036170115543427915484715269036185711360650768647445843359977046546743739154541076096058564623074011066957139132731962397310639419362996566806992744610813135513259526780705992975767918679243531825736344554225621197475109260675027729136609794283577310009370267228933877379266004905512321809824986141999378334330483716893852908535710280808313530233785085035157153110878043028374201293419227029968721973394134027057066483430485415780769727722282387054988737306383757219799351982595052882097248137023660388464254258891649469271086362714257761522634612882796771375417950531378265014184551601090280605174337192077890422769318791294284334597579209985489205192538289505075489434993609175709182177622908806632731503004328333277631620812468023169631626718278002233075617229972764112771421420887509791500879851223322981684494807480961296722265345303739205474795165193215752411475972869599863325719245765309617159074738004352919434380349784663523948160612067424056183456189541020711499223030131754755609520848986872461931888157686543571786030984006568652169023730890444018580036828515271059807134581527557373896922355553369413291972857175591444071176499115803195026583240551150908477155634300162853516306561122721644556168791963134174920641047965470490911278820483240499316401066376941402841907525862119037897678828282720180050756307303754281435089168466838700407510022083357892124370229573994773665524702855688229496586194800796616574754715967905831790813298832999156054685066149349192078952753567793294207767652453361873366092629268760849438966424881549689403474058723167193626954321986843011981106632438043413722813038497689341494862832552807172347396993371822310830065095940508913292436684667498872958765127659127297671077886241284068396922324482733043979291533862902285410151014618022749509403678145374203129331574554664894290307617685508586003987087983568675341066368671021575972410481457845499467073879855956774417226618401643927515186930445748939126376035101056615344002636964283447490874132700809688337767256121086200229574204298574060888451003910845260101681702638453834005986753004812533579318543891423507697721225500770032427585155348951092617192130226982237590753064828603304729246610656126317133396107765762518171045008085136215304889717547344336458725078433886743310161309325338375319936659023438316588187707928364403330742006338716291357852042349481692216193476652526441508696227362439460752162910877217961545226163376118470093043067290456829663074327280628784157315801468396904010368549817063889493623510616159100427910289435618045788220576425565468272042350698346753170154131854224550204776958363887560219124455383081223935726702897133845042315899151327600604569290504506310776403078133676863160384051818965472019945067761302763696276481853169243289902221104863871558305411919705732754611218269060343373305417071535202928405999143483659260787051954091090967681180665820738051809658469955079844335608799131897572206048216283396199657305483459132034155329811549971686722465164279155837383190626585709754469160975922689665572746121141887048356592509407141773722390493171876591914382962592163239552031633472951006258662857827193870566541662559146487074697405463488449496558312753039049276461313105530358706798596595843775491465302893047157056120534488785615838611793289025021477389973524793708976313009475296277294207733731148552202680694445121923905356490243336224991600182052418963611894337966503689537538631542269569959453018157398450390876301109726115665389390624086107682936973114076314041779703272264224103749009132465010972035703519072442885602015115034749198816844391052872417362433111288055377231196721790305446818133957045297040658583226792687737125175521511179914878152948990963011488927459711104984205686363668433934972843851462472162000449391860017922416086935323811272691277779558847670360772523261821316441828840224960185037588394786037253620996803611584307994222397363508400770375998624253093155696824392830450400819401568792893278846935069328401344929955892900823929402543454486363212504759715743199659868517029620243456051152792832195737334273595346988803702640532162172375450011889700226160979058332034690489694344446080891087146323810147676161298642434303583033527528175471029678351741572786849748240669670539020508168932993162006358042169235002359235695513950691249056732376616390549656451850482791744997132507409679963001759751642245694688417960361774195209602308679235635965945756877610717527522244632894465416781588560603792368576171441264293117679088978761747501125681261430649131093143230721857702888545320620673682318050566426973754988107353514533869523871269679832874087054786939197582622705860186169440495908971014656174484514720884047672378511969858886584839247684849295038114388472114275540385923724841303641396818914675010885902433075179809561665427857950513473770467424014369431834722698752355501697497434355332165238970496114421866840564141673171041436706248094825171767259283592548500874798122392465113685517179155211743948517530729293531064626376648677853096414519389342527545340509903997558187916876533616031836822554008469974181407593073366997972921643539107154972172617907068098198132764725861184401646387211349017237117566158780216758372212379029333388084777127250152608419290453381304752369984139427630314111195782547694565268403380675195089195597299324383967960598940375471819480972042295766689329400198663097477186905315686318738507059324907417061486877374856730131221043634364239753897949717285425521501664421813169378589912400968871150650183151942451276645383611210348882891514032978129530359321811110725182051012292098494432040871757287355719728337039880298081661027633758418456210169060047622953520107863480897593623439167562352236269431225945046249316603839063274890852399093451104498298657048020947833009640075255440444861598147113925673827802963267938439365690513342874988736896749226424640919491246382413584270864104465460653306397855802953571060791209765211209020037177150335096053183759862519781733044253680367085858237779182127101365551161811111532553360926519739741997916467364574731728674726742394810870833756325077938728343518191235472699877673082308748324500784317165449117238868732649711745900755802823869757328651440808889644056363989154959118409010152190473042064252087621160424337030326065205502804002793308664444911958769305538000250419724250042339389813270393826780622050529386517843155235802789794077979314263608182313561911766584393697835004462142942796422079878720864879405716070376546722279850111965415848392253005246384465611850057302292989672182404504429072230013098543904821332806695029675928520452740509814082903906602385568437474601851145791947837884153899563386671532570066633842503846415803805607307300475936804879126795076950392731534836975114761269931556264986573940897007504476066279279005186158068904845677501350653938354581737245655036772897797870863553541838472680695764004456044001356756740383300178966991952589361315898165241669225959029627004685572709274468996268986042284707576034109017939266741105672539337071276769812982648365069715510311327759997703772875847120235331931469122236781293615577030126130171226446257538846460225573747585123512126558770705933887045966428146842371922947957779426240128772900822367802080843628717572663755648426216519461861077935166517541809165226800007258029236958119711073768539472015909357584648101066396249951558449393897838453636907028159688924225038052714781638957030692786889706973251720649009953928612372687722396973124517367498234304183286507864776123321354712238583231147814786856578096404468821811929133691590987124216615568871370573797774531138672074579659170114028136666294516633911656797850021495935084612755083951043441154746089963079496209656117560375145120409866964710365108679764132645483635223206881715407111492913742096347988318817377033211553961977529443382132365159806018585389316535345433011515295125917365703586618514799347323531572367392859033774080520188783680443077104750441877757066757468996086662750222989944799497078019407127253344916461132380249939828436880919722719476009010533359005838672251462730289395279876691211650329610145050736859462117634916406062342166408614815496773461319371256195210615908572037209176272644685713986730065558567124324034634642529755483181218726868724695424304825005568884890962458857420281241962309467032411820230369141983664421614179999292418938658961570522829132208851534182278921311430764216142939112609988568661175957242835517751006321880420806634160579783962230245220474928640806787597632593212406782294103712295783777231110873216834048412593052813296788338273776247250988832201863674372979563858616696876903231966719754942713266619675132807650515668009015742106271826115356760252761212724307995556800203195213512865807858599417872961925876256961022828550539043571874849430926364869965009271548059614137869589748767653543463131105412444363751205267692112671490137854080726931485470353864206300650441195439451048155496878059027611410698437150439681306292956790585919132126160438090028624285282961759116096164500557135235984112899036263818605806150289264790628700145312067150617572225581457977474616655805536885333744602566997560859433140778127884228736946684254970599671252575393265692777036187213685553942712298513855445699986184864517079926105758320072367939147786958480687295080128666168588087176152376621871687853505658761377200799853034151909462444402941239296504035331702903161004567696339497356477401493755937328693595247567228514872766584875798579071995191870502016907026140559443290679990301410454224278219328442296406120441307387304081674525246984386198545123115910681705336503031865226942397592740761037419514650740838510546505582664058730778261664086314615028010728056507845575520114068950995075049851756250475692323064778609122793941704803307218130148145368386670095944593867578530714451433172205028040305377628281526518329485189936175736565894354845295925671445188876050497860940347878151482091475308143579704711580088510585311023762443431209503183180628200316389314800612560915321005881066592308336127819623078979670916651123356106541397595037630408112279599868117362234681906762776924029692579449504384463369228897974318196340366171081181121834244638176609806136607927770550730049278910120220074393294953107772571791291724926592874273932121183624522076195330489073434346647633218214246274594612161425402570867390186230020571199805911369786601021061883563367864019005302525180044967768105590799181061301204877161854948703571324318252430766120933948049079076936653198530756209901250531804246955630373511947153759922670280554145746897062720461186672477317239308641248884420986053685836210225233316701879931345477417080617316771320713445255419012651846298344301263281653340274419201578219134489970874970758770581059064467887470423775510943936646163095678064392079414867403346802863436721691931896937880753292249177231140428359172381806312403836719408231048905882482225840066771035949889906757578531014769939488396052154148085959302768851730854282846023361760387694831605227056076506273441798960339116859885172390597222357140184834071710930812320489087187909068096844290711461303999743069110905498919417347007933520330596013977360282069446325698169101252390778224434896905226231475074455699890750894916870141876102094012704790206677350544037646696157661243260031574298083363785549471887861147129112657517021250318601492466115102865237936315127298356826418128000627821126980690048937731902629065748122573892146466556071975692726188370776368323619628107667189443903185372281168364322036935486001933449796402344887695432913598064086064420900548658482142132578215693124933679242680415699446009929340166313288391074947670860097790824078324804284620335974738930023873479624670647292495003900551460644711569256076092066870485119155513301339879964077630888967816527821296551074557014872404659309231295243084892939146866520369821918244708173654239931982318780379570306384051640127020795233439834326240036757118540632081820422805974231986168548731760875635580698270067689605181198039400527628195445965704358147800168696475688630412345712990531437641943659932952716950716796568458866237209170640049414530559748515561819821987273991053044243169075142768719730095405320481207470193291592178947455011126010310045783196968543656237091925738050160850145483528843514302113491256549070385491568199774675148895645082352926891831045693492198528003765088600894621745389628043214108016835719583349435857205020516858668138362749009290240562674065263104862224045324143770566466302762100683915650816456060164367992910696693826039582294401092350478836656262717958332964452214708366498419323738472908813698506795259043446506646342973499806438185484137271638437569388887398191654247817044222384132832367939418199317346780030040149312930224378099040773319189332818770733728357269218687555672391770977822258802743886344001235915742545129881950714913291374678609776513986570020331488032583781601608850101556084765895426819913492486355656267169129733201658818823139744211199795581426242056101499982064646133215533339434483827487350461120674184694639854431693311287796961149981769928481414352242478280030218160767330180610708765867243984634157270492608999685421473970854872663728840707590345676084617293731913958419064723070347596284669406690503290244713048492820308625390247538544555267188781449046644221294861206070728273309996296614387863026258378853291380088056233365361078588435758147768292962689005753330386436072299786467873575694987841571398647881837772956630972017319621213409421015287336042704999141898681875625020747456667576519595821077073673670516688710884172849529328593436833143493542931202144634576012243213259070000528019840836048236891221203948850856596054657867615697347060105139112651029644226634560811834997025671088021803627362853968389172852910115984975979826649685792396734105837329519263082887563692312839546397695254627314712504835824289777037809180059694624515356871854810841637963686811997364201715942586914386957134849063204131582048649694433881259039956609634535778876367358293861712400770162977812816373895973012727719164348092975645453952399399271399233534110147208373969940527327413971893720173080680695993528504397524084044820505882689611281386885272009164469364487629038770988507984831825730367110678102123238367010531118589194355969811522390654496578004318137257682272612190311835815626990889217394448879916213565065940004573201910133610758297936269651911639036560431487976949424468930249904073133260710174303435147463548035926098592188197460617151496698832160523344419054654246040410038690900483612385301187258519742142509754377704315797400099499390887563425607765382475920016578085932874506059271105389395481628112067079838826684377832910937574721538693567126378244475935815501810721988100262547339240894663138584215474176392968066887810075597750159870918565638284811584640246216871334124871133023205280693991646153769247084450490501669309989831673141791979074474773313369706224834881192815000373236251520908991421510052072641836117137905359475680378792311173223159437766859271739837212399893866808694403800193131651390281428455885092251319421569059059877118787153887972942407997628915196701375742080158161108907087907818094359352835647545300510973942501662989364105540430222833099925659683932366091721141757066262518185061023571954014372052173338830582818367935997810407975254056798847583496449446720382169385381534434628246576549528200960082648616894488723280499255227593976975953367195213356847231179858905659765354665266917490991892168540662797860037002438505469066252918275454198903103977454368781581218273743970779440497164432175593590122676303415774455313296780303115723205395054325146071492010735770486680765085801088857193930894196117240283821200356797051827066399743215324209925609225627107942819005555301301369175185317868133584510225032969900184819523758432930177095651498732410987657429084284517556506052781232075540166348515419425641649966911342200959549189236715095082071698328279891658711920887383172493190815885800565100240693107840457312692185831856389123423045082039970099543382431660600699648774045669686864655558016567497561410075608627768323798197142424231340957891605002537159821528065677320261022786296463329959379843709304628069667534822384434219302416757119843465305209516664564374627232295035955755774910985008292239009368641051620569524531454349714007409515462625333561918698735438581574775639957066439062208394341730682366408998009384211062103054128990419568784035616811075495294531836041370130128269178865157676301008104480775594541366846928795338862536868015892965155332107654821409570141890780647379149055644464438379785180343672705714834570923820632347630591644693120269640190460601201885419494079012751143651806776540447606264902566575359269788893502566823327799210186027203789235949475978901067222983225260282608716369371840668750302249590072392520393792726914676973860928836470967173034572226275365894930015857100739017121206769329983271271382297556950984211582213707735229112561137990804584834843601838286121298201450346780918575430865945866492637372675998098309455040952152036483284838626515981487622745747941216821535192342757252998662042136002178563124373433345850358621270035467182727257250336080865892757754864895889484897935794906556237000439331091896676731466684519266028054121560779664599260773266579467160925584680827034113995199892339226367545335421554348343975494650077051785926288201760500623123069887397077592748347860594600189138241439951425754205175190463558791157578533448560771134206437928972533260654978593073603686929341319550237689679009266948015693660941466315327256105294332715930220063203420606559890531587990202217151005793664240090347417048319746758138051200708376344758342628168234522155903281926011155452928889556720779683237249420045955751490295528220091638455701084931299831591785050094697348451929723504361434699494265144031274447008441032979319024962514386843930166310896410000182294342996858227108798694191657577561306366386665266577861629539713612129127841605424806204142380876729824728694051215339561065212375791292147374943580090892531886943403886887940057504796505013423748717812223853895095115154054879460973901679738521710425153245455828611487624669266154331242012145400386169830462598051714042911165933602706517384583774302953898909794496066629739361984113238542636338594962013102157949917947025388336495176903645250780976874258578061418820000096536270661169582369121384185568727206263496725306941113188602567195867812265889722158462682019173142264109851637768457309415471174689673810473280637398927218278261944432557479408967620291607401948233596850713637307488670205565532113242821106566768625919438271604433460539282457606644943445437723513901735209146997799707344348353603674670384858911328525481635030363253716283485823059813269099170571022264961926175804543184918966286239230710140321265011768003893447073928064343229830690439683692299506189365647406671873441407153990210146380200856077473236115775398509826525220451853336141136294341877991395107781917382441328340589407742189814059349396577396831914052711837527268600518434525305674784152169515070543832272738284896537615500567608407132618852034384651237384639533566989052455871273999260679131740316244394307317622531522698838999248106405259513480373751900018015948770702651187817078869121142290102312304913386986166608650618657643880463943214979094290506106498004353170105767282771335813024456194360165491446631877086677699265057738697722071030273789120825434350851728358497287972381653941570401452621362893745816571542482028581527194180090479826514441893790916893024913700375580120211129871096444217820798080028741741449352002070392308146381991872193640516383139077339245009031542087813206931783895364400190633126128597149744781564429607846795733664000850933161538776589946905791738527761832332632052495348451172946132973618279418409558879817493747542459444679321831102367116982723657284243444377204469499084719395014852728943157196719112485623652144658150610364279483905416884551597820274529226117160084002815400250311408353868660949038945700641574680901486158080799452177292589761871264663707934062266234043569689915845162862999291417488621936308074932704028951697877577221720986129134444054393388493619747028699775783697414692758829825802111210755376864499767802020042818701026961202414442498792990311117931117497892695036516018017340449198672280145169143136382322487908539895556231354323655352169568701127039370470518705390088068717139905091099376107820861487585943858065494086846689916420424889580549716906595988436463321016775073078076771985935716246357462507050414251138331611205751103424806776446977060188264408980152765468003409217621284680952891222099753599941818036647827956167956119606895252527638352205402283070783772970511442670198414897840475545514259328502910858902429186335048922973842834805776329045968736413255494554730461529543135317502691505683142971967231366524991319033874262448529966846327955951129778208896673531273769203991908459687215974557552249061881228173854691110441369470653977872435286798738140672828289015276798412359699560157533868054027039302524262716628631483216555374172941029520394162917112048671464294215623793150616731396241607785982173830118393981984295567250097526387482445808370390519356674471947241559739465385978606424343472184168107335863505855612955140086633847742331637613427415114701538973887108542487503020952324695101914889762594282165127515931424138995297248408420892687231912319722516736890760389631362213982557206547034391364036416748947781221633375266564745983839500445654003365315691074708397414273517482648505944160528627070100077675213330406627079368155272218112237221349161894727966428514027805705950513635696974040227981855214052387597398598567992324664404100933377152489250667262777236837421567425367470798325767979704708273961994918188228094173052608054001592001848465593332261606559584439499053600492603856951765483381884827630354630247598234317524008244544096060294593550312227141178085736768514645082997741888680491874078916749180737836410710535611125749348175211730171215982530545489919109637768683884301508342105775375682838713362116764782214390053399607763223392557204613911919058029960264472428200251698390248007261022892221633839863575175538714402169313766106216134737032504563092204998525538597114876681859680901182724373645376996052618583239827579860377418275129668636402473718326936034516640732424982454297736277647541148404745862610109993726230381198320356840469197792820527140948508785176356843243812453911409183679630111849364143754330555922341879893557918907098588267471039217303881385217574269386953683925004013941579259234975541133074357611154119238606931481843416947661637828272334902022661547486767399023924819777741238652450674952142611309385461649700344600479277497506255380641695682158236243696432016031890365570400540486264666793537361366116006863272987012125428136384973732125559132855228508325601898582378268926818138491377045439671122352505409202090634121916277891141611497603111519267077097699713217974323710413430894992965562681793583465796373850525272207911219215829114101038204271250956629926279424010010991617953242392061545285499272824626627756520837644687650663312888521510413438358988940377411541878721369717230572268510143721630228553809320357430443450731031009952622889229120758204748587939166897097825958009687735131232511472181503378574691357604477685855298060390534916437339138885390465440145462124602352868083674695222005418586766360450046878695467320444017294682465980630912387205725815486547293226451604908895311320533189080650653140157039466121989709086709880403877085290900944796173158637302732452052626964590219660511224173520782517295040994432749859221885005452894341007354965377224159650773559721431480295507585670412721650835811202780545039787139051378308336733983139852822255550805526726751423881921808741162085683178061945412726069288209433172372793106561924130455685450412528770365865396681020623380681153084638759598001106688418636748846555927918531530560172314112921403283169772757751427982202980838998635820414106635300157780622051726200282438335818713015851854141815755277026602431941083300315115874154877186730797045975988893170973499747501882851174890887421577088591086651191409090908899578405014049234723238430972292221783644626394740899054900790873907444309714046433438035167074295590014341891894444782190892532839699212025264067859286923238916142946631370807511126161302611325201352127838085571714217393852874123660002900306691400487466244738204167397069923608943351215427582790447925331690507154364950731840863384777632753549041867924257826447331585454513011572941371506391448525487164332625607517695690211416882070726567996432849163987905507336796873750959526457272159391510779836937455473474483685557093807103985422389898000409254814237152996246936541641128321410018860898131347069996639524232446780449439855627364183555065561136832697128277451799820356139889695983452788979084741423022529680379821612914895728636626525204808086265458823122036715650423470379061034425186387864468588525718553363913531322005849124248421515052461002055485572173556979708163993026930254071320924657774284295200375744437809462918646325200608008174051529807635506575773716806209708713536062861221294549480616055284882307824336374994322707925895579192521779913194771708428949011913429687438224102678929758472131408959179675724041032642229976131559298319351082640463827877956066195933544037485818158204607566976290399041518556594449817676482441146253438947957907984903543992430167727389729976000026074530953051268145469207118074653475892923962662528564357017840032988273044482221877639244397840241910035819923161239270088311848775663848939660941389794081930319276492405963809238477712933349288126295791007272139441898775349137186355394590241593751963616582545467472163463259457152604914488771585924491718702977420763004427432270002697663708604895232827549105087198098416822353668287419983356445058788675280320206787397739440986997860675665162219476557513403130334243064270262020834379866648303947443172198172258799277989453091204834175526006439918721579391011314426174451264901388656249888130888337708920840628276332959980475235266495426214860907649727420146160696316754955500215325662595387456430938054608154227251597513279859899255599005198915736851304564567050990270944846168308082777174493299764474089753812594540490339992698613262052542386530922256672672715351304801743189577407639465443162022460644868425556401302416200977095860344976929868921749570479563150927649711442301306799631337486182898259216904054743615959795398904039559587265559881658048545196278597336867945127824974180599328914410187682328807897240436924733262065730924630028883373055764578003200967629186507458313825505911329446394352275213782491390129860901837684403199260571298231589413278560614545704332320372676127543778052919345250982945626018140675518823182286029080262885277719984882526933968627665839679282093188868984702149785422168646299559443653631139870488814223791830026075086343989842858651933257050708174720573002372355362305580242438000691975174366994277119279477064723862063674075322584674639337777619539270140880350613291111086703656383662004448328429683781772401070555587855084397346191750967886986161090654312740807112046532373717934164335549235286332639587598908556405623455993807942053153241719532791108456193580517259910210420296998122213917893532298896366341830868071691297135293746987857164866168896699047984981364343607028365766550769885802043644154276237787016935740604695069836278579335701186453773283181509098499917077383029310585585423254648702355510837726691461994762954770744630564294033514620413810421793653870062224424166076408606579227946249312597990884191203944895514301546422811543363678783169454646321380554892365432986244487486831890777082925116624782966398543018673249320764058051639447961234813177912144467798412328437003219006994805371852034550578519476179517536217844369367607880865116961800283118078162127251201789315608694678739793085760885324246970963105182059890647062825789261194438980209188320901574379602839863402033068337582741594500553490680609262935682028515750111249791167836874403084086168876879122315538501411055444770440599532387305265572014290598864110091872360476622003237640168779235722245010357074727152788471469051594220635927665503789752642601871935285577471510756341204399046099286821563716502920324056496706478068761468484084070327777636170279889359779343692035533346198124591478997986040565387937279883899418565398933790065708312567435013206966220510366670235820318105085647721945429714345676369013365642111488576463747134315211036338585635705668133071565855535452078731723933762460862982378111994703550744734717806660491546042401166537487392830882091150008062018759460984422958367314621509582750570450527390343313844085480974222994885658810193098395137748890867964361404023376793260496603049793094305761651997788558010802292044314046074068342819160400969477959239863834495139249195517003468500763736708055691727800374738700336224143975883686174923196713872126232258787015688782611109149026197735292757207370717744757763455999571589734953934014417788496740319814564337641061064764684310926816070470411577904324676117251990805571085299541355666027824185635726740443648831050330761142621400873726396423591051206681268472515516836372401222963670081072308178852748641466796424298604061562314231177961599415478740346039138360650000334853970416354981318513520822153558428147878547495849467403179199869166940015395334848719423483068586705849066495574961769877370941897762315117186954160181383933503326944879135344857970832184069414681400748649511904800687816943874684852145866140415909720628729018033752774567146104499118703708822429705708365367512875510857346336614797434886383701371741349120352760496452320225384386432120515302438326855356565759094093606714471720231084744643162208897202769378432847582165315339934052742779907765806355209681637275281576847403094762241735820402406716593056070759200008589388402828956328831804009653451687632798632630588783346102961044088488440819179334569861376750014454535282300487573447730655061626329890419584911977863404272601874263819579137832927975294508722736893053557693357040573767834608605092394609422804040002687873651195951849006149745670576265436278847719499246442594909831206394056361908406053103321539862423637588635955711410132062264614221876097163943838177085732943349105264218695699289119063760514608621958704638857109050198106248886488245887329372970052539175171675195663043734615291784245773640234069626564636036291145476490642637273125048460806708406057060244445357043105519444682265795914990990451308525152771797851524664892384575414539277125490207226567971064416028832541581221422589956252969581061210241719192848189916951485511134492684297889472065649667465269750546367748482111965550676125627158111173972889024304309922539489658821171853656215675448329674659283904002983879900827365201561492435563395876716335463690587329627099035017107193056607962633181069024574333204072980083596484122374844464312334570143292625497882637859935274223407743425756495677527338912055582292417598026682930265624607187134797846557689507251977426962050136296258548391194766899687992720779938535910917008734502036784259803723528672101797717576081562697685216287146239092161735034807601411916203671765332536081599935707379753971601501568497459879059709654011867146790794181209750677090466922879166881844855588501222954899993700816579245555419132272539544643756089382559356462144777609141918891109450956211861534330100551087037510474899328142683967199156582347379742877827892805626894912343698038570541294355780436381881641199754214282328972912525768730270271332858175036192074467359564679480331043109856618514954319589546015462866026125521610659007081300777577060935595334114910787350788249607783854745226682095374872002372332132699863265619445589742778416297837008241308604592831808407351206043782584969383079369074237617432557873976383824970660917782754840177336727943156184265812961131793919578849684714406521440056595931179587147866528479645855204766464485252065640812407436212955162971841007731907520697606506286109715259618395514435174000445949507691053259693609091927612947736865971562588032049794329340370009805139095587620487861681355231732574527211177645511965479701853030456771005108903196332580480120743826554319863710113759269523132419221979382621421924737197923008157934325666544375878075987173794856291613464699631287759987770795634919636843083237498141923389485159796648861986098429334572915538808683886428161528719238993803736012300517800648635625682129807637361791464581865866652893720773651083906440224124549643622861003632562404004210736953329062414240558294334410515029818878203350752173807625711336283166285351032744533675892380672431212516787234875538638874389914896929024463951986902380398373486639007530854665095734340573654249574346484832724593543202670952056953750834182571351704293770523388699513377990614339647365593666366865209462096755977902005508001052784806719484635711010485285739689023863828486961953122981638455070244976042200192022295386775131682406728074857617333866092825252614059340610232038088459861046297360408456810546509390472969199402365031392720683085413292314868585204912295718790001294091833862758081794177864143338678864060811487536199659354432733634810840720999364475582864121851168666422022100008605440212721231780997526402703525613606203268057912506948257556333565905953927086962858788739511369364113998777940850375751688644437984531678111891840487499760107468029661723562658610271846107371242777064446416819788861513810567937253920636375889200122997927077599363985876679109166807486739342557970778631330466137971627336051630865588837812400075207239141704557600898248006209780628380448602184141399502319011662437940535759407176409502796128049317007456646978245614421629885784138593870705662835159667110914458290125179801658273424727303515871292795936007291944493180808539653736913386098554332363868726349486003402871270623790940331356641837295118978389028158666118039677070880763738209187859604303313813368066309031296440044097714059408974206414873707519606817115368714354163102326663136277110297260652097795187166690229718343623024551758732118610629525037511452366636626077931811184216264844349157433466745371716290952797933803730423774918915537022647513738412029801237197514349767467672214134284939369942075360598482454701894845272398990634624804870821171013963193351899800934471288249188587865779139042718707491934603445666505853582401421536323298795374630291763555203582224387923684899247901305152870086807451977964280709457999999944614625509771744414964742017926528866127698375602197739833055302077203567361250207512412713586183518741980936097765128566375173696689994699501620528297098287473319988449040966719805581385180780364276579644231195958650974180821303094427674298203374943022808910473408887717305383130887297253998906565063348308374746234922432576622435035110653832490633425792216464121179195932255355583009730550643078193750725080590748005392160090784231400817881398579053688837461687007898384699752739690432588115648659854548098757145116968091347092679301756766630637231771584134756873816257902907054798965233121706572768255281179938376131930299956536704968647790343092394643965135468816597359374973780666627344332697149267524092645777371526293269011526076209470100304754950777669183553534810420260828359241223870321416728125625492246882071629207836197705289074538168977821266185019142618646030090022750732560557963312873010914647507755387950991280429925023159538499743574456143174786584933300697895755382013940045606732308544361080264831974539066456006446134785498581437280667753935800751531375844522627489061334652856981480400878677806172360654156650345182529027308158756137912071691471938661662798454473252307433628031150150564431095480341719033730342892732365682742559594816790155143296159170126762995430867000384696280421425490505940235077721714723288658317372255455146331762497462627548821646121925774320672905739189716629176915087087360955663661492230183721050972985508000088544344415071089881610264560619295584685734571864569006659733115465190992989334043507037121287820634059191074737133117971073229046738436457924856302552339042939455038199762854795143938229261251770799181287425864905265826168099960702738409285037351134918919939588525290046569428424297366448835212073844053240597262896756385971809988471119412212580054960319836167555012728187260829095320901040188488808249330513282417065668436903165809378902875342729550877733945770492123760127309443908788508065502149023750276290757284199313683858676609229086116156856785059680200443051020249018300430276012052457589403477748511055060149982210616631906627611474635749879332654595177688877492419478321585627903805825209139441594751789673851544902148311879219774449820548506676932680392547111804657400701900382867104933983975539726236766337445001422517461071989027827583357575314369553343756862588227941678730842587866028338495048193264459517250861774643646049474501006817553205949996193863565452344981900297662261323311654211237719966497706899948360794947137213245483429451503222205401692095969550295434085023624746982089174195443383926078080332309479251976233137444090830620924608177382539345968647298321159223861425785918354865713798918774214402045285427598933197242615604203579013129857281995978798493988146271977479309982211709720543971327098316022486801065295922165524789654263251739564935686943532843198620319224277005959343978103528132524708420987882134636249813255950348748516107170477636557348709371619591868100537726842943294750905520172696521034727850564993391019035664743581282577160557143924508670382603373643623654278469612465420694081906788021636120271883309712332898059260562404944538164991611760150515394945234144891633674793866808918487590155748201353706909084069816450341340788854064406499028033456707915684988664965929031752634085401995991793904617919055384217362253155891220176518640784585792135930216432497455353382430296966549961146453102639303198375646185331308437692716169788511742497058825580571467725030679846720958755762891621877833222185629374481456480012150077156814141116905315522079167266052740547457904062404316402485605399072100832003666816284169734147362861734273211978573141623966738408587389399795080183205358958002954226147446248141581635574901412808142476836232253396858744625228114535928366189779258025884367165920048807373251388245845621881614659326570009567836074100603457049737395388141216372292569600447223515954047108232062114597682202071035649673838431957454702497901765440215834665540694169064605541408212106906120084502821455261616211009888068280552570151854324775399461177909336447542324304535704938841018586804784962855667010249250159303002201843202556964073736716141587574648139798336225642745279105666484025052587339630874239954780704665954361036708788097682498463131749864443183051738881445044300470809006492277645018679220592956276604911407409599255314348206261065727231583613773307218644582505991947189358978889178164991783042804599164028786009954344093980302442447533767149151018697633311406526279538180209024548474263081832803578015833715786359889799275059061338598433944343666718111117619744952425754434354337113956254285830645957236519986642372265669351441571626638901303796192533930478344920603920858597779748551874510107704264554508996322386056937568697940208432520818035678012743964703667074413696455582631198395119275138750289962274028613849912696363901876167439828614124237696395754822819497394050686020763931858009490219067435856245949175048891214104911745172804943843483094003734079871154997294922829299225024895930626492328684030994995549260167541142051969404281588074708056009606300447948122499174998761276322942447913182013550457116308438525549743786262129922093979927487444212822717810611852206557232536280819777971066779344661561086261480435640420014801715788365984928003639171419480625696583339596211928778600566586658803666024899319286487681503416875853128452820062513102788388030900216376187725082783653332185470345152869484198633625523890577902657648029781980421133751167433425884998793175798710900428986008441639393325081966665774330898085598296611041776532636797294727784342885330478007908426849166385620888913027773325541986901677980967028697932204925015272525092888583126512804071642625920397448411442096890855791207318102009657198134620811725749136683365164815520515029769557073416600743698639932080087823504002768135339723377747665997147310248446787016868387961012991727036922545432207273146427854796505916388953748623956977592952231519473169612741966622047707772662901688021781956230798247703149516451739807398869385829363440066449068822417767809209095662044038561591230600561533284178436096699619841146083193982427556779395983053060805628924118099979612690169482201044422229364387909174992663838396981923726121855522479545158303753702881838760178271793397716887426601477612432696888378028848240827529633300810886092042565785660440174732282653982675783314354661242373200490184649630914752077233668921694324139364750898604455164350891267806447349260035208324172465921689701126139609031200918998183103207858820896971431509348493040591328857390624460854115111407016385802826864341967092734351388894355514109796756227514669380672518200019756087283621054876669307016815540568282027698346414438089868647727543664902183950191208831007558830885816509832204202244946139810636478359412457223238962745340710616819279910405345790094852513324950634866783156637475604424511728141259292890248169672568888393234651695813717161870237166213928399479407046104437723197768235101498095580676744534341416401393569854028725348472672103923816264196325582480506135364609206306549895785454286398220684406020826547002302521559900303065534909392976592938179541907548091485206305215621200987668800256232143776549825304687576273129777949279456935061359923676966871184465219127677269728769732436645117618481551355375231556492217456034499259222913217906904720491327740783783230249793532767672364117322577767854927571349200566211875520708869585296644995126680251659100066878616600395327987462634310488819898289488833551078644992571358278732446960772485633292217225198929024629461240143716466888285725531917543851167839192935644216235320701218643850139006851582336117609170304747094898081492255230012158636950549819119540245669348706893744963260134176928072919760128181949095195857270471551166564247626985016926568996433251229423808051868082764568012295001411077339140581785176204199058798855616133372342155481737944033669097852536415848962099950974787495241745782001469808733157953774780878705988095827080851851205306044398248767516474586719613800814432526390747981040090686857898114679919447581235349809039247673813406739992835500909779837944328987906802022892359898946219890051288475212130673131581667752250502355701764553230292642425992791982534189435272016701889706849518486419158505927781226015064163702009104789833338840499071737499909862114164305605007668585099279082159462901020896724911400568706166437725385399616517521374177215399605783210729092320464937607122408618352890950104077043681945387213360528725410638331766484420868332222592880164729985640029017324123312088600721761176825455718234444062462301008418969603317239566493566607231018023497451719087223024830009081833428125872240625335118499647288265745799616530547480008196193860094243435699547267424547259175720697696585129220944715213740178742153211000095637892399492184810406839119828083546269131661213118605407497751206368039085606440642711522873328680766266651917839407316599770849213295977742939548184101753366955415827486860429524249287984284660053752087052662239648536460528583786108573611949844429808040639791251325642945167451070310726172426575243659566826110253261795707384950691555498795672628473550533755389545503434995456580216981096145161953461941334719019022078836749468875299342187128407129391460957489853498274196552822120270706360002318491603005423449821084485487472155791117141965796941978759839293099680635412521774494308592688214630734193763884342389130302713999948511838914658687982044222378723278523588818095517488241269686711828500556269265283298413663350193596892975796219320053116146990395049290378409826340798492736714230045659612779378248326034088595094307766955743045012227950791996809494672171727522110442383345208890334435683315326809260480141873276122094017816864073478091147281938240468663302005879325894312961964267245758364769279553141571662213191491891582471361130237205932219322140986282445156628586383700497888497772836847483960588077672911717610423673343503445417012555752830599760005064994555863661287889608785249631932800662607037345763208126699056109633921351355007275936007581849373753216770577925318981549147877838158580597023396791016926180597075476158993996850249064016668144372208328622457385663880598154276513267608729765126180262784464889029927203970225468224320207532489975377761025969196114907390174712582229582276900204908871782225062089108803430235636680578425497072375592356397852905215940315731660877234694880088607203880123430767019391909527019466509252593333119132074905682297517448283259672370734100534671894922560185038133795795571937005699779022057634917208815193193696685168419014745549587556929989309521807443179453546401686653673565286916442235785935564363276134642494631620002398504116192367113786776815016691900345653851227341637157719489352881528589630266690668809275281543210709995926071706838808244699433626781180030275095903512818141312043404219346736016521771498754764426888905016969853321344554105834871372417061330053539225854367204182763828622846911415477073099657255752016419683862161885433675176718507817443449709846533879866232338249164023304854933866914814494598805276743332897534435343750606976438087911025837643574384459494630745230093913419789809936072172147562881188382898991777125342648245284830075794538806560001765195510944674553794983986513489288297687355327042796804563202966770114791697730231106353003916307020988625434482227745438830659915582319180016245879330685185315180253249045931251724598315924635502971728620037916782005680858582829916918404914977700472605969810281819236107606763680209766948048698413658176493942889445956523168392762243492729566491679658731529130078816377106093599978210901870615268466009101331514287326987490540485555175569837123868542022153369882204539728920482296729902716579749756341665775185299844819361161965206378144857314088418896546199179643541091094876224353965155298388853887017644784720316349893386665502085508761469985739123255759806563128941727561498691452656925755609367788548574575262284902085717354820933763551068453762429982793883006267630604666904692712209381952480856775096227722243735944981071832817834813142384930920761121425371670107214986466147066808145699659331030138343774458534298655326008177638637794314506641237852957245008612955132621338570993729578994377077014889824834527555421296591126794039096628529851205833181396550672360206294358038781369917940394369204915934382562498641565487904429916391216174425302480626902612730383520761356564738173362440660797919620155886086096529247737101888451149539468100753480059240936316205451004689948001850781730873949249362597723286083191809538060811373335913248787364422939061468502829029753132858523907757905210754087620040351392236091959554587329309677687011277630551591910015470224433217315658213061358397312108516043731348454897676146501836745007729354314303969271098893741820993243795443470493741441350832573167146112974726942625829517906832888316717145725001277099718725253518709906470578742318640765434912837050026857230045988911669578385444157603527170887299370615369328702384132913063288210650409253455229228051274625518405441398263073706941532843514291514428259156441388615298837275054638824814573622630643091779262058837459793281815085237797965630186076254635056093594081241255309770739593751993917055573825049522007541462144769135308333424264546721483899938735367036392311580153476289215166878444448609675649841161735320296082239137690450186438727385229324946581424283337715645538767656277075614943098205482019004268797544281121143170003905549337767096653262449482441143078141142746127160322881466997747431171742776151196362973398456143181539915711560074277376815790311391861991762496554403256756837281249442489246516024632452403877884423060656193194479306140867281886124682683338683413637263774577480806817279387609590176956451986831305907246686462161294866787614014372650371274032873034815144226953534183615627082275635965913792001720363787189756733701151340210262376564513339838537846818987598529630373994520229600985549249893719198096114531110247506235622835857430126494252470502195353977516988146753233085518388223628282357000852867946267049162926109049358925544607332017658516974648210081662494153293921286520756089671496250861656983574109535027833337708280988110681873895752159718985244203776094150320936255407849366681874454586293653542495661586018427183219586436219380285956951450844142416821801347145087411988307908951935862479661169140865259217455017411320032218331355359211394563800464296332996122606483981317303375250753046673713628779771717145867455118820748177492551406812435588045899488131872288288834459225404731470034761789778354459250173999002014401523686829290688955659185082793238962568447648227618364074331889629857142211106874572532082158998737612482996680534349435366974154190088523473146583574594289512634277353251698224785900559002474136806841467862675548753664793469157943330665189900140133078164408965384319041468723139794399190112147283089707613080352309307575656531900594317684168239539882049095398115678876361707740906480486589971788032012278180521186954870538392053341999410404473865884906558976281031270826554283167370291733373114140042536838522673934655839373428286010403922160924230368803735702490643456594248736727816401039055288163055609857568062557446718627766306014103896215472229530019565796504412958600708190830968473625893256785253629569904130208493889662638574535569660587639499094002676897943364825366959245293025585895308792878940553507681485980408645926684462682625534704449014154558481507861886238369281864456963338201276555211686020750445776883600570248560336538764576473585211912534562824396403833737436933665157923546905389204270406308325331057268161520375456287310861921921379510619131007384285549554750748195600007499826604541447038479619401887696197115966992790459060051751208682302917974481557676514474880466721047155979645223717392273726533798395608865375328466298237388721115860736828958698726630333272725822161889562171982136098178382884876177660406758990696411743399346706615456304207260288490325102093990465602977242893815787912517338395387105088740759804284527452513516028382076890118063303247012258525411107753807769629687146171454855037691592864469453324170496972036877106851894092069370245193916120799520139043412849303859898199705687782927498820903497438993889701023060994617437973101926862529676313339990028366664155127226557261371936801136686902109205453375417646469983555170124839125386922710116118484890441282316022049753638629306526632063301104471533089830926078292231138989663276919862795915846474212688031186157244711907548862987779870315294008249355782876997798128629760559755543597276957012505846843512330682509424456129090556049420300601646550819236299914374402447797736655362309057878688729572510126757105727093201023473115909838854067563204323851086851681981303334294496101354697921771275709987017947512664451402074641096668715702138522068781789901161579309840413403559388737918609761658705638202219852722694209718429363494087813459327406110480076763646286208719271110637986846958240321629810581342624216709197404084856605353829060275372541905197513467488583173406529704234680945436778934699308920895825979397957311532655343841930083539671365838260540346334801734847079633391590278774068001749694157446181975290546475893274758023252633822071141987439298304291108309891522277384918837033747666656230439177462077647409471472169294735547021211781977188228654089849188927017535548284242564132177322062067276034870420468664985891821616150769823042191812338498852931912756713650858438289622308042810498232355125878103236396253958815313872040115480935954222182896011260951747703589349483444853852756801340888218563833365301244871295742014809085701331714987352965207183333030642806782897370967640155153120627993809864836547621023322475591404303124621051174813478478991844200328228302573713162680147142239101947826655175663150659777982250938579250052920582968076949609949304718018975411618731192600194708098272933965056824902568526776083226803762699187225503590218459977215031533301759593251421203584622231343236656354746045615444410068548750619734229916440852786548353343312613762994685885786956093180943449824802082562583204962376029450473421984850041183811017083725700332548834573720362036006728827482030138558017967854971979054385570374195876824646129389622475592416795315825408059348917451923107882519698953157906202975210906301299700382883347465145735454887845618251604482786791932955792332854056113621548286610982300014094999991018472433028859322273110309122822066104077541791842214995801853725473671722448370482121858828037399760811032662917448954844686413891786073944477973187549672126435084313173168533001960304243777590941450416587089985958267483117645740038572109369506579411084236416762443197063059520809888788982657338138723573502122709282699171828307866918671368937654246131133320757556743120010376157282014358407605561679365630513603959487464669894375772402933940518244052572592539735885417197476660373963431630234941515156584398370238605199911071013783149654031593220657406462255855772962151159072956252067732582005296926322237706356710530147771747348846022065155962760337440116935729881031912931965493785280343501444986682744421398239156527335163535826732134843025081949930991816798181409741173722834647372702786307593647688000675455922858100884638924297652315343253420737010703943848510404995856532939548884029713913065670736160931698683686107437704693575379801892419125699772164263872509711655028470705934794639313466459608300846154150427788093413478877396906969308816249974672741725472630495982514160037745668428472281346641845499615955312201876927799579784721283108626531900286861590743283436228519716717406957706375804709456673695208879452661008015834108324931113774319788161984015408497570685624276178669803161542082180066291777623935550521482145257751757631606373964346854664405637259760757249360476357925329131606395969858690609267311787170684003850185369557766868553837001726124274807169447100000833138176194337739431701199357186537039123162489077722384208035014895991541913930871001499898532202367824634774809390883277159178588182148306795412744847109981755049440096152850410317657125112306431019788286004404478328083274056326666640914688991827933969714091916510766686239288936349658630391449826701238107988828194149878503417701858004657185237496735011119176504050918477417560877240672142781054580559248011950165829963015184239998582553103665166871438085680310555844449395331367106334349442940614597924750114201730392434047323346589306279036182326135038440946828076946241476156893188479772226275584485038392278279754305093915395547138752420142710703891681962110278672787327700172261020081471145555473547966837339450626456372916982186500929904193317326754400461994008864763098538455149994914259756288411235926020112648095634264191546762596608389003487862802773693865328435548805104791052548158163238278820163627499096524231304428227517232600142414533015518412884215016579602734554156344532158508406402762167093004150028823365549047677014855848329747661344395631455753323197532727658222961570215466099375643107958188679097584248493787950051593835387569077069588090523677201533171821298704685346786184188928002651146748267598811375531287588006929539846689390210013670008161189800213482214437053689835103395900754304143355797782175798765707454249644334385861918495462191352917473708149945774766214349908091887359872348090956268810767975061491562920340723763957203856526095597712547475772280974723252024722375426374438647856089585185182710190368567004359697758193961213760717580300712091774698135568036429245509937546786803762433007013845701820114354624098808658956575945110123004701471319128085160301717568915598893651551707077370354589680446788201124113896967003902444405584004493496525537183703476013833526015636407409077581532556405955497975578429007134082325686224863322266371718769513091532095218300801182575257464471034977304500783106416757711169402130215652161617541469971093033214754817093355984384081741353585864511616852411502593253887950925935572415470531219718871458011149806579636063765322830950768898830237363706804512408952945466553284210504329480970151583691672081624404742996811941199321046158162886050835582087806102090628485571081860028977976259326707730802432340704031703929174989832439326868318904018887337448935586493226487913611475437163197848299256465665215255704916990522262192648609464174926357880924746651571034751134458243220559251302467469197045431726634974552000408687804620890130689764329180419031149445603528785737948443835741279754609634944865575580662946376231481392767731931587203163470564329083803587904389180988983278257286156693372953559200772484699657635832470703068597540204601996017413959951272922698451067513464774499619274932890518953602115892770259359032963288156881648497734565160807981836480789304171503468807195905453825511609896564010698540146886908462184663363301171837287454093333100714027983138709956845699951053066754288157339378869254427477210031206463346485235104143433321065264394675873918944591827090631740953135741507056089759146362117070180610851486622127247809869734595611696082603109931650167884705428516545020223448337970265659904365960472287867654897879094285232336805088533528460935798534151925174734432815343892172448641369279090585179633567727160272117510069327458655160513008807052046005848020874987314616126032040684880083010268701927513403802703926281094984505033097329501453954398505490526186821236918522538861613093102598422394939399341325575543888651732185576593418841873021883918735320550569492700269677810366712092466888168314220921835411797095276016697819124501983554852493621716037726617794893272870015965421122780606888426022577529891163378460669522456313253427871087843265817516876293383486213419532394845051881644078452049523086986106492032178707156771664309800184196378877071535049369137018105638814032487175995040616954753032952643343559964521925736845570595624718000102295654361661627203336867913932546743789201277777444213354870343688379457397563421840991834861202757135515475363568241726487785698350227113976662854755715501908847873773306188763330801292621311525945541929437952358486284602263319411247698494733440778499211982949686276471779878302733795428252337050995599661899077162313084537605709462260497509577972564413370029724400076136124765418775681316335241968213842847577403922618962896077555486782683418006086751955637024609255925457876010806460051186019871689271533351204076763690400688341133540062957768310711027011174161831708982028904005078610211791127909109932490448914716136194988318422532273181795500994981832513695233732086150627807119059627750470503855687610563291070204132507577814102050824296362055978346122788772909050193563454696085248604868511964944800134485715285910465493379808352501775518790194743934435594506837054876106542553432329928937207521335219949478664678598812660225025965281244253439530347510821223722235257462179141771942936392676882673034997319379975950339995680148648510055926613312207283432616604437289878814735383614649917711451102523039402688427799510906739770206403384445785049684158375854572449837328652730052836588931147212834781180659290439512645149265976565098897547014250119317027546055632027806623172468981175086632582376044325336644435691935451364534542873837154109754603291430667717999188895592630359391885181546607772275192943047974007405793074064824408123436814392970686932867324602212885112949394276023114526152025529539960379220250207154005217528570057021378182211810566980575956454277014094774122778892618455339689242994648411855157185400955514719241903263923450329662817915877173116586864480345882980414187395320370620962480540110077593465684204884979708787224789266295012601748473360755742560107518218685246767625965408339905536310445575510083057819961496419028346554810246298206674863986083214074302368272160085169730790015347716186736744942262045007291577487952262587006226223204730488083064490249227381770611781350704307553317215294786715248244234006490189993010848246068921999373809555778760368780591950921131532652295029218562429870301810880611511120570466163181164165592460459705726993981788415796784935414342741587842035562132334210170189503059171889451345676620592411461737213430178453356050731237117328932953142710683148567525223455414520617612102690125076409646003566512306842105710303604833188601195786188586941544529282445477178383640117512771882244162652768394655487752845374865217867192458162091188802638286748250549320783251390070932595545775433428041961362947773355729424491064064068365199076568274134543161684629263975632531521509287169509239970665929797724150636313209361533341630423612202014285910334313260078906595347468451461166551554687639833194568344735190791149401237946548873355726842307878324897652366043576240765739744371969773679871651303434751267228703086897193530207007244479390784153729845279201174848122459048800553434147562790407421112161665598141892681747350014103256655848239559296033587417433892493654018986930564361914235982663304891521787247938902386982691627036224786610985494070127072255275289060992405033202097162617109028608039835514578309559289043874561962999773155073269031057168093596124027677684975066950614051539038191432228202091965064417620753291286734937622919426663222287321473444276629642599083206488764509256927128081123047309032293184829447743531396339318740688186918244532561043896611053112532512927487619995833958845351085767779635990157935299902290824789859077174565273994399567525256249056306026148030778738142724250204469239670640459182650102459567671300062193040205394046264822084791414741484384720624841764304540686363874656554495299889591134283374913190140828389182393095920114577178046444486778698374027349049483215866684950562863847595736476707319434947927675020209632719763526680931121814658608559933520192795420145919214633028529162256521022133490127712591804247818204970700071381647960258137579396535644992540244632628529191978438131533123993685728696825813288744206389524540754004552113985937106140481598331522957703094282795028435240461495178375957919144682810431601362881844811772575940451351293309097070912215991855467024049798518996927467858422552062182831807185459546847635161211948736812279322136600972567035783144091414287932141332753545888553936860743716964018246396419264613097077666502451374486151828951481829325335661066318824051386954544533875302372115591038755485353292002919835262160637537015310208804600169980397539239738595907230997030195296383149419316137187762472824437648869599847544350591304852733944074528998223873518064147909318227088529927547482104589828969374445363989107365591884309898890973178677716198763976452475421668133825072512740390734188422843072139206370329672991523014863469259152454139771500036442097462910626792085962337153616699700996014254749064242748065596740321640013347422137412832977052840804817838101751311110396644077891314129721739233373389383138135616536770509659939176051317780239435666475664932553642296443797013676012366645957233296887824048448578649168560117619778181230999804786569220424912544496156316979472386982690354314798762099403065044711162170791988448488356150483178756281826674096388483328347517684708509818672695180831175596474511781345007458548036796093238565677882468944892720467616625721527411974187291184211968307975832668032294703343692149836439375135363205768399476457278075983783315440047294812432251769813633555673839446000485985531431446927916534903779961238463030084529516801464571625619915416435048627447140436298223764615941662869369378950284119956016856273154769666190411266406698065745022117873026671968793061069772487942516861711170804725482979527229959427049124383829687912582518283084819362222701683123577954406339017605105438033893665269130515741405814934660290662283000106168575872441862954806660824869398188155907970945500528345509191121443057083158720319632963381887799066812677042225395217120258741859573886305447354177483094817772941074471866523587617973974429418080700614211353783915116918346764277805503604368756729955173085656961888576951017424469384692514326035678688646884721398503207322065468905406227271701504108727469950895854514264954848232587035155698835610471426818063248793175586481772039598561944379811867363970770191341349586829135845258219076439576116872015808877377367911973639299056475512821037108652590739052296127735085778922367694972569351835800733919433806696761361861685355370807712362963499217571471459422175274575916410345064502298951924498664075342717836875127648913297608388961606300624604128693380841665874188671644481180642484114973049374708265332876415745665656150658701420781471431769017221948596419420051062548470397334759205935573982058696808806588411081891086682874285540375793322162039953335484847129863252121592521474933494609273636834904421160004959256610324255810561819040919003015248195220086551619577027136183052479339236902649099159559581497560252923319904658417075142501168956873119833581355165068143386857986804048258466401860180767453980656832514708226243983074304757185099981818985357586021192612111422132717398033793297401340255908297539795081548750735305723043374061299767038809914972215480374420589390109950150112473186957620706210684415314108423146860438966234277707427278081561021751802552675800418760104773377878826391923518625539821705034712783022644248718323960261458475917777077872858861748461539182075003519201634835149642107827470137350920874353937412311722934316052387227717511871523673459743935672944243883173625025282307059241435608764341134761112741854287530969921017392498567168462780965455165152516518754027678362001610314787335379988772581104273782638636081403883211391259489457197714470332277532527559132857522067256435960950938016482741981664277807698778656157331857777616689017894551147165820300863161361323833061930309362697997867692123120627128305730712519023198075875835297413354170359219899284093192231494200911175868971662689104812532404119072979781602034480215251719420964633240453869903010272676485896387746640189248241096481416956064024837956522820381989771035145213872078680846373158132206539897439989076667411660782764293158327857879896582325452125310011070503248531410169444577286131673766238907917498892135041762338536218362827269740354066210530086860420489556990738041217169354625856524441443842154233136406994590692139186561532169125095000014610455092499469934815291701173552065902842567963092264941280983481100707862198638697058875021496837599795507023441887582795441412966359337868061348204669462002116048830014642139102355378899045180934331155628956589959497423553604640253219380149035783299933090636460398275438524023895823467612964785480207394918270200003748079850169492171827671566502331517916299756274449168448550140952870889252407153352982788035952928828552514250385054582054148886789980232122920944703039491591957012422565497710610675170224522016011632824675274116833327984312795553952812667086558121106842831013217566528031714538732435799739635847282592360170854420316126489899253116109138032022421098892001734437441599115473025384903199517866491485006344027019292644077224913635820381787081984705095586175168309525451011104625500952891474443287215924507013816744339588774777383171589845985879079759394912536538581287942544526102920883226540465169481594131509151075503566866824322821784838583496111712018087980073274649250006792228042011939661336889347152504797805036885241762366380419846410339730828934083576457308707955940529714698604325425202479073958521466185025042481523464394318872390068075342662806818157099797045843406951444695355180511422996469632540714523216886051939403320432917933818594440786217822902123056706998647583392420493437285011168435444039423533574934616167694135690383826993431653499534253898917392876783713020960089707662288035154911585003192070575488449288480992486262457410114989946786353358098946049877478474181697512547910353352302932020187718910536817425618421356199758309854981506985178138103465375493456961546566978672027643444609544319920665078757388910816974087372562117751446835798263413507826408915596953478741896895147084220539992944248580121129061587758586803376619486647685689191522057770896193826049229997981449578864063157823463484929323079965653582392350603618650097845028164197841504320086023246435808252528931165897374413841766860397233329687718010141356027813851974171341389572231054967597394722206356984353181450906623178178035255629406963629664523179298697975517789833245266337272709055477489711227212993524636723596805059797938420974904210313103666993654008129239256024969755137082029944496968088731233838329673505399276638700349107938544775663516358357359599549190994113863315487771407875766871681094003625364422844466244460430810717326356616412040892935508321953822783755424675650793219617939887847224070970909535200244664506412081573792189730036359751711379270945180970452700771466915402176318546321169358529801496931306730341355698857228433884594941093123878616267135006662176211394615871884238789484311888800803175061344671644727684412889948159724903459672262633152333829078830584806920820147647052110636827499172253235520507198046886622904492670364124655103019014213873963186035554166476373949936830875180893491816025058137897709728597667250633589048364718663290517667754664755345992790061527126431589993319252521762817928463047276630966586958932526401285408928308577879255291052009477052587866934901310310573383168793738675477685449635693286138022560814454977593272393842102927274603776610973068413636932907275491566505954656044370083214398888263737612746878284140188036089277521282894039985792741218771867084535445850161086607913992425496436938250698610088624264256300436849907523714626928124367915406774410083114897167910023827225504414444169356070459016712353714876405305839392559106716267415005465880889265605343584487167588091161197474750571636885524406848313096748412976786288743663003407658182967804754536471769017946815138706586558685346165495753917853990639564947337093466850525734365083345235342065267826333847138583592832636648634925233126909564656705052725865068703708419686841443370110211633389106489298093492523401437333919679897081036782255742921210448927866101950978410869744201119556154458809504820803167899662697320721396464587722378484158061786383954243065786792983501238531185282138774783032433794749819193106007352829627969680859003482478150369919439431112524103244387638324947837081694759052141936677776079036458970973131313482157860633680590941995260651727172067770374797656493373961322267992288970814652879966528503167831355546556807509059774436590187364193115238453884036609879431711441747621077304716234184633785104192418857728323073332350648919596200628618781296287746618677743580137249176600573416763116047015509741520678002056333294655329532212805817979290568644998874719902059386206944462565669935625022930674831491984386029693980841338491588110538413111089597734942549385266158309707225662634693464961933245291852312707272000187616462105045798598107983080838754720665715429697889950421367812291225657805254974010245676565910746275250709318511410485587646793808563512478859649538025045251563506416423945677342349389086129493689714614118116743452157247255995061126526838033217647904259768284701920865424848865579910298038758875290888315717813934375385000501622266418533544225538646387817062927847415529419327688433205107512018025990372477465764532800158035976924391473177088053591041259910355546627397768989649288774758248320711535471904224627495063684276099223856379040466146730118224662635522418535933208794438206883231132639625430336514376361408816148491666264981898514564829571257895057983242892587604754874819506932805697594694091414370061513080459234494785307005841659712892956022802977918256480523559198881717885627262975135585734571533506914455288711083352195526595578480186106551883780039768207912213588743265437269284500790704997982375911350123640587661586744075903934814238102906934624986818218935657545988864807863856970096287555990593045616487220208267321009462255485396765777366867526678148090587633747716248790172764671958020159886917832835307009210249739019637842176138835297807065091561817172479943266739451352666542063286670776441424991539971405239977772074844104586412135980682598239456594140867977449613454639564522521909223408910340152745905945561966071889653794880318167814729895045734605846215095669901292185454547322897189954217982094341589980997363955801751327233920770251798923333735079376899338657616428415632861097128796315531688735839456717207477925773907501711660533314193558440367104562465131693867854088937391126389003402506693012441467059758619370105664404062683204858318158847763253965971218351742883600152423236753035439738431590961613555475591673418188395956507015756816872515004968858223868286967203111835136275257622594340291947882164064569432038825835984555819879420587337080034246974094674466110721632168958181492585095708552592047288413917785979158947758162679282279009796847896519207431789547888087192738571920290764429450677737632963939303264064450703306785108022345360479853486248166702100773339686040293259955515276360615791202191766175429107739279289555330344465220848529779696773088306665216009703410112382041231068824418543888513787926622814656371869085796040861730290196916484563315325716926480439206186602389582158248873345697058744751886962363835885095410388688491220556452023166033344350219399551552905952615522277981556887771081355891085841161224231660984456035325207348417703752299943519717476136990544381605854082441211618119266572175077463945081551014441379992455442180239332137786788936221927894415757406179094479636390648426089274765829227760716039634470762517736334371446600993855691655635997784528687641800217276688898289069936149453186314998797243367383619221616955349346420608054718448389331633440960128062917506746225183803431172971650667875279235130541060148752981871477833977702854451844202101940110564497228079252396574462523642699898650742375069707292881518976260751715273982582081561915398364802803946617847216193680935770341836128498795716294204773624534121707427260080943657470938363138754942246547532592756039646663142916082489495016671561403942203074145693587095851989745471437386580984956680528058504843629289667427025801254185285998774466290607068344842560714013551638185690243437900974207768995844952248141587873850004222088787227163395608117211112577508337164979508144803068528172232401224752583642584599414200879403067044798615980317684786490876295459290886366920522482708963670231451614309401184174509803655873982830353056733802464028190619656882227288381155365751322811898312872746763318322842299471382569979980693315424889903375583746085467359183534757379626367349855139781929054238795216753086870120440483876509123126447672538868715088842015334871625897548443376167225079493122813343032305749129728868708884388632849919380629752625503149965405138987867605517197725470212909986817674539778147265343781747830595362130456602085888357534559389169245932274676251372552914026954336354192291114665814054782690404719999767883606663044534572278779722497892019858779421716613308026964626605558271991963189663357703415190383637606200123320729884883573971291758334820479080122335964281100153546496308536667880962653465073036309420641643442600780100791703361724193881463734349870859361409321957734760033741557706752050308604210848138479619122544309932755413848295682920031611214582912823070483537746495875834757183567563770544530668522512119190144513415258654250807192387130008737856777455693949279647121152101302707722288230623846590445338338211606383278687622295487623198979379259257062044039055665535720180700081992735199582523992724557515378109658392798819201271675121788416250092818140899905545326553699543814097786423712189410943548874621843467699445268089786023513051019029014128293255124141599981567097956029386946034088236146723769947596903122298147764227324387811308314478609200419187113706006823465006540419495224758258979840266092404329968020484388036474564132849478389414481229543818626813281965146134018083212177610477707146480651952347808208866475956413461608218538247023166914985415070638668536350204581386105729422687162867013067695825724298682384276304258555334566055924561148865226582181574531666769689549808949124059175609169442281830770031191435830953604406974694471039530780179389452755565106040822288652000759586068297830104749115414112623804464813783872442851191511118789940805674350776894109303982046035105688675257451773870547194145825946531752781165931494792954286655866292780710277502928264217103997486055742547416413023061008667881089611803986021787857443475070019107667574740566983593369138147700722718360687825285377215758999977943848288386288685990710600884883191542482047615295291219048413230394189164172293428483965204447371973818121523914435840924088652897340857782676225542256752071073401263549533129480844166885032850452644814960390374319748344014983018296615499557796379806012774669298386627978735304750943039493964802871138449570887058095132749949175677761393836811501043888614634837415558740236990438499192037184657040574181250740669956183243178954619656589770966948335823288223840641426469871371203447436620906737533018091797844304987909630800157812411574759881872190383834096882954918039002473497245254904614599835781796473588615421544841727219580199999767841674825565357837260236977906368401946905804133070971926661595817456338256540910399194642655829982821378367435635104810463836610166992381199994703910542196754645373450919397702151009182229857508381381614549494986544688902375681540887460989543834018099835659107824313447805114819045853443652994807373716386719712128448698530580700456062542850484299201735378384764243330714808574021930684474352366613639825002134999757855472523698656757578418449238058357390745552053984638014751831279554828572979891221220271688249742154756940288209202762778174940561631239546167730552930316064660191773756607427412030332343754042644258242910054464480331709053604351888019162716807636990415141164362637502799854657406472451530467548133180193981829199425946556306594701168111947062815764279178987421662507317991312154787295121417475441174894374652164619942672324323640368612865651343426490582484270523757889222982464741638372210907733422450240347305741761394088668985097685485510989532098501232462648848155916631053744568805025059392417781493881097382106933210661015705859192271112820736507847722551170847683270232535310374489517855998786070216620885036983230741089591458417093345350760690727755710114091085556199321104487550513471556842482322485937900167823403867402747067501058342385307643788915868662567978920062086276663591350015040446640965309478952686637405787846597341370782587114195975479157410537493291787863180845573889661794057828687351929486908727982675979283513982551277744799845046252817349429774315355369598106999716532495077704651575505399930668689388710713105093757653580241902765619527184879525409275887167408473933330863801532339600874451224742325926868329215371971991001105077703198223332379572218086544628250926879575343023511314823213976478430111140717374798441367097183116768630044505495472101423280315979167024928360227871806301042642006942661810555926408813923877938725573038861359207431458673330589781578474970848226198849630323188698736369036027912744588860286860264109723502743558175220564823568433984324506935010061535566994284271599705991350106618196579847444905875475953437884995627223853202824732839059443942617236752847763235290669416053673283054796903286038891336552828846913015222306605270868814501573841313268135457422101752911542966127555545472249457466896009808136850469224649869270230603406163212110545267449736502766585549280438840060894523508525330570714690447674534882360111680496369581694568746671128976711926384084134410747844024124474584581508099533157300219107478354643443368560781768590226595278639924818156838388704599981047493779229721618501407754394299450888533305745253195853574699962369615062797688177579397926005096334320752093446470400094947252139118440894415549103275212470094333032911321149438703545223898950641298046236854796939895206963861726423579622157999680831371380952550451801881576308080808280702305944640902281685271571062157869559569744334757746757538727718667661259188068360061165711802307453230346543751602648862171029797044628594437851267114916464390926223921751880135511058514054640296168878000134348981132617386382315160529578528796243750747841862551738603890980311811410793216431517464009103580242499765301485962960215694131202159299704941077875873616202582879102429073734630732460645185566331220131798520797350398060800362377560641652107834265655042933238908375757876013755548011452977931710045775824757565994734772337330897081430184518072771853228692950350857723233697464186213906625411253592863454269898815478198130518551801169821782701615398988318993053168590229288984136683214293945507928266527543434952913320279260943096360169579063406673632948857737957836982681389775499785931901833248623141563444978897665858272705456724797781908380681448205716702336463418221567112522908081217479881689845470076334322229252620228754798048417407584927214761405684557214730499594272155492255073076245873010221023305913911121974859267750213148634719291285653043483127772203128921805101811835953400526149702781328784183161732104276772748875703945085388160852525551633193397778410710177518627661663366561661510847508050751868527490630359355202078351261932108808554462357432723797462105420059082954700210277175810128552937477345691405630765899125075431484860674670295428335569006723467499984679015115819651740335562003115600168568844345560090236277460159285408877754242297276901901934817561908653555560199983434382885244789459085421785238381997504991325629261437632649242470940616104623263764943414528762016352628581196258238244742197372886407155435249710913201669954070235352666137209029504132092347032339883392496644216044527797508558372782720442134427448174769075353310443741880844999160285026099997706014870552065071820028212879031003195510333748270575802032168830643806681595601290651994094527248590329083687930754165607716713515946589385314676674100818667784642545215711100664649673184230834608864538969509809069265361785288101912612601921571190049893811786364479526706305132713474763667806707041257825816593413598135757841117438872524780422383442765513017653202246109885689625178302593723173123909081755531250325660356739368762373017999405143358971571591265073594141299893784963161314297240879965935174756382295379514817911738529919248723443736015270946578038505902450081457976847542189308623641459233507221984248482437341420841132783545747646115980020357257671654524738206417622528735715173831998518034775191629328595485659674649063257366653925405652776638306167142055596629639326612434434687986146141421464840172553055344280405381747637302239416534093725282935741832590558635336150321618419022721803554034009206706550898871195047900620208586505218025860643119208385737709762709329308229939512774162271941009071244761504841300920382674802308479494670747185058193495361432093637544915420360235781569735828633920152795570289855393105916908798362322799413777822103526148848431269395351742666099868868067624548863331191102597838033037244467703752662495222574932820705634389633211523444299649966713215609998105403374492869154383429008173257782567740243022405707387787411455849504847479759831881735566954873503338309569867343983909629135918200245000981976076107646355033298646545197314718743331262200212094301287540808617838309384033888230859093024193256289874236421005194814965126303810902499026745856092958548591618451752673864600167418413338230704333004271539616007811372889349934012347082771661504141201048990306905101345294051618612385911878803068467174492079115581199741193879058907873017308193069979506203980516879566374657996512238225900315163577861226372575835570048153797358346012406216109779708112173277967486448630292141377791504278557662266216084128271395328873742035850008691485933318261595676826167343417766704176425255846282996511236677251127314129295418190435043468445602040399404695630871313186976415694047275068310024664795395828807524442699208278483072094280541886970662604658434283333041597450260649577860460916545520411921583658433431702188818384218701618213409548426963602123019319440339104209912500015095401742156034117485309369133308241162308757482018606812471518086461644498724075710621603155320508638253624442854161687922605666302719499534339461740500461848896015723886034699816484157672037636181775359625180961001161285826699881584784260436499011754823072419255853844113418145596173590363626161618480443819489444384425938754012728256851375809420250053454948432069514766041459254638462256336289834818655026150489439485774365528849966197953176228186789907726725365240477002723487158001824194906780133867942456732034344694805824620189378394397341932490744543951552309164180856310683025302210185370829391902644690320110188254795005605481483438884636546618636893953450452818452031785152173102647253107952129183027707812676750231430229263647238904011149527921939352157665324312065683980681029565134070127689888832212674231836799981849756079188318630794752315144146708966217026922228841916317695435671469686503185091496417002780994134313090772977662198986347280001378662051585794268578314664476455992839737106648522872576554665985887370892555882614549790439106273748109365578308937329597442041572831020900092327193391700224895726342268025318370767907934210122251693501748014230178186726395136114891689335228501549379598746333565945282254605533750233581012300460475295013375246600662121367128390321449106781431528487569927053455727111129243189794181377527394790780045154814733937252829503682263637872620736566694193988199532502268297562693302360632533380035549418040874881543723174342397805163782281130849343527947856889006083465825928412660045933583237712036498946929384326110123406701234004122168588545265334869858786179412136282366687812083661419105355378450949506592660529187209997184277473092849028251824194503962530233461110805440326842940370539880680366684571339074304786008049027444649563213155680405626464563451644633757373430516461897492149246665757411099919051633226625671994124992296706692153833952973827083872417689024037654819519169747044819518573236977340592697292316699984560482880417080461351019775107830325351962155413251123373385630836851407875148434889768250133725457983494779946391397058949609623696747761386823923004115922058252699029391159852156039046741810565951045748786889364804722631150044960284043682636148951736830405096695115146572738535224986374804379504913847151599307684027003575872450373468178178781700683966158000551988910356713352816472805848688986354521868905648753596026743087763557891624683690798993086602119095574598465790251930533373237649545551538750921130497566499462637210528932084636164296772887105564842551763051212820485473438858679448321354311849672489737492842753849826050527927299870722812726261481494213404011297163575303272993210786348666906832172122115534623178955118538662517511185644032159738539813228686767140243515494845026057644886699279405799421331205603736935422303668016828409873533052476522839653763411352210168658793407993063201092964884823249453092479093516958348606021726864155904652057604541291374960606207160959268339727771324158633574671807773168700925476921568589401207460413336389408878354212704339601562007963946932618828020188047978294567040928871195240530523691151521168891556385662794115152020324685768839470449965366306317259690184811838376987995628376226610285002826072193667113618727966301117957544466615507606138517463618671002560232208207745053246112242295067727950983327485498513000011018780031983858454548603116437843094019523867006972941450069567938716018550879894043600295767753555063126410672998015968825144695645161110402996659392012812048864352209652561626330783501798827610140129508436025924342534538507271196312003058230113511671044638185123048453559166494698749737802085461947498378385438086313904667427189012534095511865047925682378944436500277193379116814748972834414251284509031750470551797468197722027843207343896851521388711375046795870601181159713489667561668675166596188479725392557407816068935047407712457435073667805894251396305432390032647412711037343019252087210950418539506673374082263623475830085162105135096443773267652209790735145425578912009367656124790478854193307210762344790669474941533203328756275450031935622204895981831869887203595108811291219330716838229147174787945702274629389589024511341833927094517190229927236793148084910015627480409279191839919178389310029571034542504692020335095184072232448559335990145750267668282050136870470187273100181204218411850941061823333774987214090729153787197197362068809129870558294875188062392355715456897927730452158951753111318118995218683327281313166216405694077475421169289777160359662297517764472728616606967160038420147145743233580402923119386898737185989824591131717434364262701004476991675181441755326305628451735175138046560985465259295902317676531116936436485788575207808526125714930812195746192297243284452948090337392578106904974007979980975225655154288441437537129766884223093510833176873613736777351141628235917193718881610672317198545069494503404140362576616710849729112440050912717201361888686994143686545997786305891011560870431819028599573825276596516739407552513441337475096494171059834397570654166646921073770357451792769086901262711755399980341248441177878536861314521656964112529799438974199939351749214480515722162158666999428003126144207087568426819905314917611781881671613942524395380040541397691655127843127356812388081998498165773299695771779621057147136112552520799791426144876162522652224973822149937825447733863368339786889163887691307540221022524139901752749663569230206538456567823185843983700611722370714326888048454576476317242049633322374534905688619562113193613690935668865468394305703959991890760993522959914706876105329536913139284890916321403994595512267367470221358612418501393625377740064772372967720031825434027913942471179785426529313787291166753248776083555776745992634341937560697107245063674660526074950913006666241796703666816053723505032124756080346015202797147887093198693405107193719881496866615085661978368005127262741863897776565547545297629660449471765489949305129339297306357133402142101400828636778434718802361045340040485561892915194226153289762026019479965361403831672431670564366587712590022020741357708562414289915676078890362188850021937224714676955041405059767150803965684711974748014414920402192181940634697627460507718674179015155586193067495583712139312043519521680085375578340173137898640794536234543747260778792082260946160479755604155266494979343829253165420127376113057673656552038352590468487322076611335158500826751738419795381792812504348807453420349839163802840386606542902811170916867410259534304129746584228706367103738768465346026358084414657161323391673606969707927177299315559624888654157026478954697429903325575071225168399284043671982081556930732373350239269004254312955062034021715933367520478308978882138566562173887525835130808303410478049088656868849940306872741160316737688954263857992700067047430646571435521432609552373218097062714628088275520080364164290130819881158430058463281696849546874629139532694877096523013391095136122271970766180149807607389057973608023182391972804593075498344233538430657997438852552227775961877627553304123865135053397109675246459785251714567026069587847235001316828538195072105512336158550012855242456191846088508103523354237628266726146263675391061342830382252165237664496576508909958250739619691662931684447628511189259079428847690222878833409938540613715577008383622271982568538477875122664987147342522674982040015681436367268950679088640184519773865900777108002675366697034312178543352224968734429374526660713652760537420828268593921074036324697771341762572528725943467746008448643167727992573674994444916791810272157814462613244196337617798300241843626175473605403582171385349991604072012007249791269100690019020351834404425042431813297506980162723379379319311640675743178614283640708566717466305061718556294563136569512077863589050781845550938945708380441013197111532412213717531386351532470329453349623962729269993532275700996369849421722095432095893604288465326799528278126073269373567273448890976017956400222046568113462864676073662285470778658231308337358453904625454750429750311531022207003314711954112867945573645189943740390030756807879091706494510754635039995843425985590869311479280161517039678654750313374941072450322456673565782580818284976302951712291730218429994870745727643302840593975989297497437177252118944460206677280827244879820329428363038585514388738935090639164754873956250155840808996869917981498194864685246358366133966560684274703418746803562322724075134558964237004927289460002286415517093134548152376364204778496165900293848156310662789057189894341341381479583397726781039631404397329786663869647269240140262452351843972803047852166738628268873252725382834692136967093191844766416453727599807442507470783282857255637920077909534816897442048710332531879038180373527699219775481656598679668247837593953285774615268308089251939571044953107904553565393046564028236443894862684977482253814658951398376714570168212521423384934735356251349549046644586659546120418005367395569275224575968048936396681188557060431633133305389108391480518032342049369973736970442669837926223855346966712669009466826053544037163837521742594651509485927282639173268669699648483276287663579411550176853895399067038952046238079665914132474878193490426914502465321356656235627819768802212389762795854347476661910900214020926605882097197574605035090304838650964842383018085061095645666568554242071261300316445671025504866745116550989912578964032996798347980037053069682567054641622880298915395826923581874250242974703648788849302964150577328380555969012258706372741542597572614596667201230524034417492631305034852068566774114227667795916068239889237283189866925977051515302446300813698840300011915638583874428318203312838644162985980055720295466995593388150685517878593289831649458971141770805050605213410108999833422867909473305610843236484892687309205027849740857858242645074210135339963880719261334933617966388543381799437799079344293412340356189421503472695697088738613832323422750090554226453117132373286867972270602204236815783379250513755422349681995767189257542289223390234841030838240243622760241128768274273209179183263084854185071790839373882969449986760344263990182414203458998611657828437307211446527054889559685287127559123259377923247400443671957673569023850665813090552169430116342041762060631155543313098694467766921976832826201115237211629152773932362676100840424471067317166262715014261647894131524251856765118883318982929581491912365377326467682134277356683329225809411142373160599771559706501382165454678497434521936113368164647276767733205088485601258784943519826016658190900782990671814550302719606055359942307274938331030815722436426686791173353947738035711445485718003179827671228855632973515931132506890728999849520989918050609138999296868310148964380186133144674124123327007004024950926055319638768137649056032665827489815147341806344986155280281451612578364464458543399672871139043031578457827526779107484870814933185659448915861413667229562106258868328752760417720269998342532888154408489399637662632117962010455210879628773173315358501209716807994004655432106874010702344882797125317037539992921230819145939399648251705226248858801954915325175231595488818437936682915593061311450360678415720001670561852901161813775218964762246296325407915944397366702728745437438130304615749575341360884576709230428660414656600117001758711292112876691281891228603152777687873970262957870438495812737009001639250502471333602899536906148973450363053677685152264265813670465539746438110470617795268396969999947900964537087785323778859949120613894388879278873080465866894288837874057328576042455929856183889733486118254671657627469022938246195632809699291021249041739387796377210095613706183391522179847778140960161681846881025308141948275573727364996055271887946628851928867213834423201754603429003665740701830738485070952500596135600803271919681590359189486635773397719370496954397879693566178553844806842087779658775301433342049201391479433015053112170109719738164108354373947789771910729919812640678088781605643244059746295924025501654554351939139405880220103848256920517388660436987181606873255789790538407088408114485610890153085170225665939909509174358483299095685612807573319089888745166378878146378431565020625705607451249518570435833964679441487278741899452420934936635210863532082563438045992812766958804139079675184077418287594416558740526362979521081074008775640653655909417824242746624800867758198006169879129726457331230379324270287185189356201314391935898144646389779285480800358699891825269666087636028967904651068632108008934793273336790608009966009370870039267932430985214926552137014486248226184889435769751901735344133333576117241378462875337716262697830188182062872434745661539121860139455829989935044281397883719268241555342004076358412832949342176102974819905587919937591089994594089501287455738334839547329419364027554731634501555483488695109558691870978824578144892076651678540248953702024602440932051956605396634315560758381897865744220066059167601600441994115863088189636045999228041150335151581820132729213497046829884061578288457509833346523746013002672343728700735006911134860041153105168420497452299617746276756799872410153604300176854005912833387258002253784176589301700600973490959976251350848543986489205436072993396482912343168821522160725037034281691301767965757225009233120377721638532420467914262997942827109461380373053987235534388019057208508802529559497150271713813672048972276643390282230333152764593399455131859510482271077968170855785695147392332551667585448128666957278684956302885872178207031845677929883789123289021090264380911713921084375928190505642337664702437810977437291852395728651170082390158485286490599859094207589031582502784816865932418691664113419081982607485580725520194260013173271241525810144258346672515832768445905351368438748464244874309700104639016686404113253068181119769181899047333951374924869466073663202845931072570297381753967864129199405200478514170834618273382968947300595036063531461753735876170475046298740402740668693897344442053174020321313936637163201706059097520802349929966568946889966932482952015213905402172000399466852437796343608120276284137243730776197208687596870104669158682798411858355800099832283745301711026088038998176431373120734824167453140566257367188339903259249482307490129727802441667508117251982288167478163214262617793762775389970019100291165411803680079044022765946597719995000415372686834976916214713765646430312300999168300688470871880485916481492351511169828968748490198611537860556764673470847103421537923644147206520651088656533938153323841313990888201636096458886238683840315860575976704611818120047818856411202882667431287280804188196164641144727414089017663232804876092182878879309476553257680667878870132039222727067227354597120587246001641833709187175063009443629581373219618026576152455796332038000224355645558035473487210076927853710532775125304002940999903774266516804258334387231049085461347304912033297803155788954413731303975946424595662204181987551245779490369196848833750167006764828102044745421440369815450271395337476840949387845990581164368090559738623672836981075348796486054055860999647941778136645943618787057239017923191287413841451319941914288796033534114463734400437025557591574172596930077167641655811516777855996286642340362776384070685704886455063187039681891220454499778486051421526168276254004654215638288884617148024956630114471978789131220944006767054214296007430167034170667870354315393717682352960479844458536784307897115278066828474789943455716005190685914513971472850201057000778701808699910580528835640427030337737224115108799911461636355143811997113916682865545598256829772784046859229013027824778954925517903395395582666436696575671698649343889622828044097857014721954067331856266333557238110208225415124380588085747795409145515762387651503792752783754337808739110489409328900064200010134502524144091796120442655063918251211458040195377731733813738448406453065842476580268092963986308181618026507828595288923509709447872483218744695148103282038310813716632006932239882320883465340099880164788375302922099961764179628972715594085458966469408524286031234513823106726885640452009133194834957856108574422477872559245940267123126984975425698945664013973282013599176055471642956980076148814973723531860710544943173872853234859245458535082604809862874080749995389113588815627969341189216030000700991084089377472748924362265723855439949252036720737474931063942495539205190424349416312952697888571517990420280192814795055746501546124009581488743689994762595824701580667148537148512900579895840080272264414373504375660743966689591728171848786193094829541452773541567977027011589393441122597025399883039239295234721594317021654986386513327962063982733801257049849498802781730864596544528145078294176380964274490161595429562377117781298126762168451264616027131727241009945756401550775143869381845034133770973842178792413123674451876628285018008500561949841786065823994511212993099148600317496803993111072575778647002149409831709454536743629168491970518727784736292606197334058978073241241890371182774949608888208658909970051410872982259412723857177121807833193529661870173769601938882156619058185461615001057792758375268174593647567094474871604839717298804953844488766506936394235997227116817269897721831640975661323306478274874063054851669682032018753313136004942225771831734091779197595167328534104113645690694924867194280089218531023843885892394718814563442649389572830895299152600804056392399584141620170243943277394839550156558191170124862604940950327402602504886044124400450904151068276535278866011886476073932283381237893968068879376961253157979707496210701385492862860579152063925552437430634497016177353684372208201108509717145160108596008189832820223490587381875137637909179406800017027498330998773098703341139507941175211373751296240149090872006981749117166739985118653277342578652954710105562520294481061815326079302867882131654643262991905259247117111162863186266820355178225931582909594403137141654590753840780842159304327400555032912356556084712299817400685142101050129761141947013895232926304250218490907148703110959399055782513909046956153918807406254460640558946207932243045304562227016890192001129075638740231940822531573426481202499170938452509525952234056503519994821576618870230269715824845179669922934794239928568631332598811035860866157983831736510585782554947750300136634222348404511691771136816970078044858594993019015610924820896294875593524921722132606995128676823279290802502462522237100078231743724511687632211595983247949616397855843234597520114687544618911784291506969993545499761819044398422954893049485239894975817732144517180810120955208107885223017632189743638730973676001067341936651214459498121845557978145256784819622365780189802729711697529735911270973976143583338452360323587461284143163242780604160215713606231867148563250551941860003226175176503094696043623714773232432327698473507711260952620816954228971488218571809638073146053981795333600556506944862396345118620590521490335135497814205386770914734667642398212571326953103063798978442667238222084359259995936744321086022697982945905841075788265131751889840759359108750201373742740344354480549119190100803242836728764130924575884549452653392993230238305654704359496032527269487875014877968950203672937963780655817560066208702958234412705606692582004958887523510745533528842945822879839318880987320862783001629078699832461939158095950442284855287125434958373481515075657219622121471632248492425825213534245602309099322988786271468211527248776498462507534508240421613960969797576563829443274813767895865542921154582407813094602751403573564789420321433122370585178297054691149075293095968616842219121648291239283701034053240210631254434080353943537622263239925037579039612759357747741193193752395810554413083471935803023360734832677411646213070011018690091829576851630435518716481826469028428932982920786706953205879055948063488034057164344131777765247965161347069698830856171384272955187628392232014327571080915763471566539734022052020673780278880633496310144113215427366859082458288754595982225436352092085712215093093004118247151099720492742681298902309559634998158274733382165789947552841318135087965755017281065035403037253370557068249599877183572858406874177421204100073583944104590170643909617137184674526352592171459684536049829378925723708147239124138680979496278690295056892968025068892527043146983806535101724891822800801588643548167236046472718311739129377542613259155626015182252397624005762311746903445879970381609655631151931761616319385486725671647664701278801446425350590625668352454561386762800099498948555502270835549978531357378025080574463968953371603651421587232023646715394787224829013625509861699143530868884350669066018548272873163624117518614878787981552991047408626433374702323373325242603070634272659337765332195745210116367363747741729689348723937908206185781910918363849156259103258655372287141832796913943975789668789820693299143853190937178996402823136408583951321818767345265789710129785098154437223376185241360420043818791293446397780705228085021286133298229799649832762152019289188129682950186882991748482781520062316293187609062822550793893843250425535880315200479721643285053056541413136551380789098989990287131210555427723930159892186011264178002888489488860826318115987332035441905149259172106514672504839532918340260724932658197062476988639352192733567716739982692267453751857359534482645952745379143855044659116953278407490389575971224174196950996916072040845611116393840367973669081599601394130521630407499515536275875293340698130136676770561273560382330597979718088542383228262564984961004238932575606200181105506747509522970213362107748769167021317403294874540285915676123343106259082029259584690239766236029444233946545805706455626631040076659998424529913841475102444426984375160444918552717487848841354639085446999969404857751971687583982449384133051863419849785656846925842630725051797634094690175988087824940947100463059158174695003782564094776692295809467669666790361930500472641790013453511865051768797787863426456157664267496975547080213096989994883152896736462590488063158427532183411201636216963829317397842591952154911125056959161387887825484315338081142764774307978047822064340651693963497783676438030814644593818860372726892295406147501163885094963266838948185619310136574110713510005172895579140451758699883090484107993754508981397395656493039607586461282302615250222254784294095514932716586663201223656157840652672987479380513158763148037341414997898330871235485118006018539265849656062349574136924169288450020382078151173380691455432942109119295392488760739603939797030765061253437204340470352988429437672577340965812530467775254515093302614194359303650418661501125968248680582012437980583457286077379052949750063735264716711973971624895917117752327303650476765520744053917339417364316066803983239639158367015657172048716934166518773988370309931933634959395194507461623265492199025407184099773222213495962303186352828213982312642037677728069474789724300194816528397767896332006649301259190678432417380811607196070614500637514270847495506009101593231778498304743894099661697115040594916303155187890290231276433939456613005098699382647359280582964320478307145102501544608483885773160072865069964168342594134592370664378533385297571812573951287316556982186092591403323619285079630446119243289449132099684184891842991427067957680806116385870188800032158072421177700457582716521211508855106464791896193926941356123578624429127608977293099479929865423577114828686789667260493479428279589479729533936780447410980657633288097206834054555152420887372319774948216880793553943092146553225959790818529093864399880785852737891299805798679190997437637157724924175909158183087773417901850566395166455959428238919272462668247946994000049295594003377070562773767741636740890737446692568809408931950399161848001810811069846515327197511170211533743558090247750583919130814295484347232110716469065767741638507214627815231671224552056972581270838689359542763878822440385161218782867814759051418947240868019618315329861527120367456820391242880935820640942049496832550164912408923255843989093180702915028482655286845514864410714164664120585482142346582408763664810015092441357791290223576813815983477621289080774475666107644246919125877010698050009057180037954452306238685423257489186670403004138314354777308919751102217679347788612927515990331845835105092606764353257425117255446611141102070485963883469874436167809181104472447277809540144405016828913685958246731062510099277840464649631539869887829821035785126093109884420210323368543855520590693368023273067863771317806873567354955154469492322299712007965412064751452951735290442275151124481143222954613127076776767718667016292597684100866565572504016971504602323437376693868532478115497438250756771317609713530297090831786714478710184732724762729313760480016352640848925194902309691300999783549980888030147889517531168198171294123027374798615637188876442548434028368979429140561922881717993767131842143504617601872104501206804319732749213704596501673838477071778622474397308519969850528891072173720985096830708101456033104901749290229044155513120132740569722133664415353184892609693431264219118824772836883480155509714261740341502465319543496563010368955327069297512576796644777197091438786661968141956636308856591951156917035885752295507204193676522158145725610258564263515234481389734419226778852401366462121168848872138717344112629523830182875097302041669534559228354212911708876038875244978134725608617163871227564039514877189475579803750769982552464195809334800275335791678388142339996727983495699446293462728521715083347319257784193244792345530947459490923188850711095278047894574679226151352263573272599293115449290939753578738666928722461071062673424234435731153723871663814745323955809854649097272023666817552306511167542624413229125223480832864769930244325267007669050902831707667816244045907941121214509997024747728074157138722186476644258171113899254340827131052069593869663341694576899222764361673295752263479962577613832222408303765562398853521459750817132324873629388845804297021051205516823313818088174959118864796360340811557623993166090634113760136065478692808719347562584988238926074929407234646610528390265611715803094719211715095366298706904023205551042645284073060212965418877602169252086592157851847962973928859043675303311702539456605349927507844092180398590910822750101394832924525579771316164604192446196310753036225277988711829409844191599142410556715102833297189720854208629107929276704484742463966048084745290321565309054691595019037415054555061537186174284401001172843720031728858882835717214232118004681127479210628585239174421298840165748385094609943470667322049501416740628360189086830643277125606658145972290790610272126582027538955716336225647944546494100586767068693677044572709378493444759038204613754514332740709689698650509426161030671756758570442357506722188433628116540030482581459910253611096847460030316312076646980578323993956239748747969036033216946923726373129430587227405921065057946873112438886143084436801038315944715490001617208909226138414388337447496646595587900543141809174837454710223818816377840530985819610888667407714347799911046637753423075189334857234578213925687200825144158672261893497987094987690220615674376176853740667961633686399485997222010913055884685824178880473766172285631018222669914169406492514917732823149755875001873170169178678467827643500112562792241648330774397009989515850208334514945634066552256590895128317720975942526018351858967413454512439269690012129835561366923940077607071060045818237496035750638884358855607115207194388218728756646673242715028774788207276399533428714817071916122242758725476511531512156047123778602466919203954133021823725650560269290826538779321009072292368892454525211908508452702288904951758900018689666631162353128700834180012209230873255154159822875375711303226807159090273491277719566455876682579136505311667416035894224465576232092680752345511891467268309991773573860890933444757014317486494400339515351637057944557334709707550536480347540136727245395897577640141626710267771511408969280392745148603050903023863122298461818244575267322721491281413043484154824842905665744808797675028680895186625669203957194137862662978414326925731981157359629530721403477058933521609104564677452133788601710864866440741736389011012632213163911607156873432317283766689625834848896982535178572825372006198672378037171794813266116594795683530768609655427359032382699029245398038308177467492334094670329997022075802466699164381327193029468723557846714428026308481129392525969650358704387697218302152787964624951979178894786918809443497618948112052044397411525058628432714287130649381563118653657168519856939817813353943559332043674291079504168132894542089041597797815343143097023022628259627667262158308192189157211007954019462217760461380470748613141448067642122415355207202485859536789230996860473623269517819112447702264764094176826502597338115707550380383092590665556919679742060255063239905723940653671625325363201140062191142525349108354472718073667292687136854673166976988032310534935591226224643820128545800940238604847486042368191536635418971565812616348322059070344454705968352831650304700114005918889152103589433861392209402219450903802563598579801538854189762470328484436591056551730020083373228741255160810547542147450511479641845555683789865068457737470778668033500676079909108207402754903009864763931475600573207392040199532381234035225746050601034087591117125670544219759370126018247202537077300771895984319634838068529728554856733968633841026213630216823041548187211294876432395688815263804187321140074107857789857721696529956059133499054400301272809816811305156076014227691602871114285082802773452615895079870817849861840187007761670111822199072329874634907077043576926133748484487157786075259764394988214330337197326968660592824846644695502974960827294107635343705073735242092408700630947877195102729580905789524116512320495852092333126387752014523372639476037886231627978615861346636994528203683838813312404509202163502444605018776675117929687115501876050128118345480055183115943843224724277342829941497176190606999219354933792266940916090689847586349187152843444897557549980822368262078094206759120252873884023265120133173300811116882232449128296320147027042754552153717852955124378923496179376260545899187862055418899446052807973562574871000703410129043423382133973774929523712969923440550610740499845209268728101741615721205165532315373320412416680010224449311460938261203486455101093963503128804308548212308311219056452341249089804017316531037845870080605528250227852626762405110513849541123651221504987414775133544936440341414870548004974070910997783581548334923318992354381758416212865280528413638494609270384843075917778817191218070518467975831382544933557426330152388279645117968753309997745911559794774735071775849700881354060923313304550354728555165312923755896685066519303080100724062321746899712517341872456997696289311072626954362058573834713885419031157355657689288694282943423674071976268190112594004115603089643695180365757639225516666930187410255165832937482751363850160408129029245560539915448083333538189737264525635788081241203979150003316251215137560282024890406914980312508367304227937445875347087742108293192488157781547810847543122140804952612190580212053069746455314207617516104780471583529336620262056003790617480316024413015994375633298274454448716709443510836720733054349569243795646887628012867054679786511214418400097248181417391172923610391363487273481050314035755141677789547453413580713225872249890114224821646284976273203048738722413675399342935815570601176544521157298346084225788254357244997885244648888898072620576025555245805106752742209019261771285397010116126817293301526252076492073402629354905439016868912299269653006024475291967829885787934412582482799933017291721299282079256429579488167797276172695155254973277550301474478111202469083139673947679959850387165772173995938566122922435579713641542035141881500736329321646830073019029441203032628485276841536759783076547734313533473356970029582554196175446362762113072313524916711954266626365837248831897394176269960479029367613497213797326556321540066457820971136300575370334326867054993141016025990214057247544762633140553851895701835899146643498292323857513297718395790064611033576039052253393443100896554031830723326599322258969275971772604788472903535553711580115573710866001078997191023187855102847995139224600863665326422999504900573257697876882756921835063520173995884964080126405938049112171580886136582536778941454409583254734859287372373303200871422257193360183702496293491078004936774314390274377356062411865285194094366094383207764814806254397131472352346532383504372229785187546289207468190404334056542545425921535198956839146302376830687301350385094993486308606826899176993195621037429080932120514618881845744531742818348445266192675053325171725358782027196925899355056231423455787454816360732854000299677654882390543303500977260529536492003175458510970377105763205298146947255790631333867877192294966888146888384367888567212129878605947545570652569148759606575110818419822034252873054142826828566989767523331987339541394174562442349351110732746121996752591473867561585232130033082456601584949045870049295684729981907723331569741428439128571361839834344604261560042342024857603907521064607400745507544989580672726184810589749640292627404682304311273543958896616601105544207851889531032488372707757954145376321995788178643624915181939010624727089597826712518872933344853429910564511412482916766624091938713225110123231688687191727421405673952271844633042367991003633150867336106107093417457357156937964165488746282161720204806221028980952018991458505752172421114275600613446867391436287815594038587281443673606608249225826356221697132430439724253711063558695776567915539427047613390400675510255715581770786932692977107057368651444914605178841911281470283081678050642087405991802663965000033040277665202192807113419620401971386022632288495400783369908920682144236333564201075197192589074435620977316488760241779733152609735040801949277863801592062464350556207091183900302288704203936027269448102839055801740567712084366819689193265252179583161168472256297200669015094266390017834597318158888804026994176409636369580468119277915461288193997153409930603897830743614913937351786279613371112956529915622715722717371849323503135575479579815420727065959010683047188368203321955359009312648614510149252325145825610217227816699257539930638728560183186032954287365917141953949854761426979830563053779423670443991054380981542968257064404025575920526225016201086986559363227481043008495440063260310172814500356122481648385868940929744280407228930217151329567710348520786004529084617883730389565664218888563732711074110654832200720488134594623093149610974873477967450426525853338390356588881003945125979917274259429730146327771487388587843929060944983808513291778819047190425362138599390107564020794788270578396465719448142992794562677648552586781475126487997524522497721320477632555620069386126770097515952976072619967617320400142117460501054075251687803061336532651947004681283437192020148697956086498847304470246475430197454949874874237704907671596257591831556311754740887899561398419598809316727153657289581327928098635856209311401738178793196405991900645813400619221430143379611907501706837855979056242786132513330030921870993981238298304585240591158597649468919145844801044595325832601572536711002216194844315677675027123140121973409955329870439695566410102847076176436498587369892844028493333819584011208690086575560965808499761011085690214772091831198612541186192752225984586798258975639922572140526295065903405386459196304487818459716610246719799263747140333740456146301698412794565492356326552592108004702542298206959135368732387889340698891907659149444308351712381211512136783151715397069474123027470860377677497840865662327372717490195466377530701846823942638401163335752824680818955370995717094749366485584601229199252894817792888934206095761674961286483662646935585113362191281623357818908094584016417161928266608941987606466914531003496143605621253765319438452225939529777710873019909140602861815271107450348560362343929969003696980208575275196162466773731081400834384906838482816936687988589842720437200690159642725782128503004902968874770099650605775305007359165224880943152382047429732445172617592590316236305477640094199829756887696321904522373609087474853442373007182539933124761554558841862352611160590020938577318962924441217895736277275322138367500685839662619897617176788802027237835390829599105253313346793672244754574732827808586268203502306049260796987162330815923380988884194432892724396987832796535260528651253240381155955032498915130339020597807192622627112550072223323415333700725877235487385077970080426678598182720451801558451920415307444280932501651727861495248498715917895609710482622440804479818722638989820463908258673106564315002524481373146142861429487144987393969176468548615634567627497919722214212723532042789817199576911838348117053251086214624874724455410986873341124400172265175770787356919184294626796756646316029588000221484712037795166248498086999321716370620535411335957944309464427175155825311217941834718746276524668455949843628690721971738405806904597732699113067212453491613246554812579132965168082283967085603086183205466158095162783915360073261342793256589321791036776943640524925926453694312575641779869867100868650642618977028579812635182618819106012705463547583757593103434117862150269442330886485266808264042868610556726483121079492984478754415217890534908282683657798097359549408918413496892907678519234375723981800657631232389702000022692662523624886961923280287693917796875540772973125790353916521884729691901031850671621443804511170184861382611870145203168390037151988956533821280960163695945827777321269354047550990695182528711925013790812880757649773333221168902706265410339586518578852077511130343261804776087714298289296853362226105453816449509584949247609600183262232830642153782388971929720773282330201505500872117491024413126387547770410004144778436917670128733747662223866533710622934105360180901130186719720051369516787641885139071621416076007631394094792894564311881437241505732688031496005161701217717981717490457863059170075719663695093946666660860176855557356424324026520958923368086783848323046271822204658543056498320076655080136552951505116904233814432480102476032473151856731682042919227724693406427500236792633649702229611611305261276985366678396920909944606067415496031817790837269406068977265402830220269486155364771321788304891784404068015848431655676268067167147436820104066518878663083965561428739079411457663866220475531134274991966267845427735406005276851283984135022324979359983799624157425101512251050773195862279022722161352893373114414883421427995027271563195742491146150028846171304147035057523811299851569113354894916799751272799107761676623025444251284527720564236986411738977683374676807814790826131242338876140539176014879548692868665194376212661293856565261802109053176237216690653566306965332223526809049860224900572934824880782238176229476257716096895132869904685402156517101256252540663363023973230804353150170752588551759156048665785784092454371282932758978426100139295407044738149686561960733878735725283685845435398054395845953815946812146798784565472668341642629805280933459218032423856506504216386870588674177564683189447440753921681937332551120520801549641926379517356749687520521843759237854192497951486855802403322885693186060566255640057677535484749679799064344932917517974381159695394329873239942135746147747080923091168346595447297817651827115576261803508586721754682330524537051258026971932354351745955853560444014624077648218407373141889474903330510768814305858571921068139297554529505511976896756365640519473423684458500652079367568882866331247990192005208696510593174938301949371009705649963100653264494918259444560265557057737321075190781079598981329497307621096268111817155345319147088194115997984623132069955609603157873086395072327066321605407701525725554161016822802034509857781122999698624071441475813348418383331822609892353988448482262824576747251957653027928799158106463249199624463490918136763284372880446160669595141899747366015377247114166619423616386640977006405884416470581214537268186954412300755323999666796904487550482939463192242208913966277901983622754971641371169582528868193681456646340368427058962034085439342119769018541445574264621967087363200487162375912847371975398642118431702136537763666320380323825968796597233014257934933758432382714055665815395644438245219498534256964576710339835042081788615227943614836817960215781632313540220617588092114306774965696840868690511799859686083434246401064225400381575819593361494490749592663911332515689904588843594840192571627711353623912999388386807637031365012716818077692828530047550171821611048531556815171878908937830016130208974745816262837407940821199307730262506117930321050276636620899700676638283927283570873683937935824008119116880205864934463170728339623169123986684000933041822769479243971265219127152963561308634319720204638386110638084955128776806488400924185606031928137822781966540733655735520097653201811035177105550841031831275520014006280644242149504817509127662579712016866715223446381435183994196882727144596736016230474880928842997078255363472032115912884774453087515502149892946391738138358565140816088496028488231161599047598155535847243492706860387019007561550006439465216860958240513119663400670930933902762481468260245659618706645648498409712476372454890609526110796233511789621837439831882658723157814497359863037353069549972691449722594215674331583501171551844796169561302560281397021752710083494744074539273656274072944958491342462582735083185805896859607808991933830704361635220620285493435791917389623966360849336268918359957201856438470212341699824624973242537967615312356718733731770349843722589201696771877529526004084774905415265762838032861357506641596325209963595368759495795797314837714596012152950202837372701952998404224753244200435011795770368327277068665478314717188685678911385974667856187403991015283055559852958816119100999339155865064237127823816565402682788672726402643669904877495019579903626192217210227048377737695348370427211571437095606536597528285477059195923331396679347420404959262082514775435542783706213021065265262079282107078140842269556041425455678193778374425585692920198274368509258329905277780936492839379822753629124980812323700017417298046628247090876272916419487815239841024252175464394193443999977452732015286672237532185646156855057718802585261301492360581991228285984428192629113769072242734012017737746485077406383472733618804063113440378110656741529473683880205236762265620841761445701701457761982383767632625264581149849226459421491689272860759868891998547017637987047315658524582341947751172522158275048926680760211479603958981067817404388660347182792844309257877765911318386508913687311852177407331212127855486523359527649667369687283712562705856291210968230406206980350509090278898673613447524158357594241454817491485037495072870340026186482846199802344156415127583904601546134649697519350632992939184294314286890314136715914462225572830551337317005246983149534120084543128717803617031687635012743670963938228389374271665509206266222212762258119624504849305374229625233534450950285553683490839425195931434447885318360572085375190665717502647882749451853903220974830284026518525849992392306852832749699771965169256484640112132436685756528931870885848275368655155783899597218265138251853699897713110347795374041792457039753580052506494436718350538263145088333694302456898293533894798955865947505600411309864940855738348145402280783097034838022022530295166276307878364591481243381282492356289805078783152982118994220598864614676770946058578073882993392696352751972667084110913090659956858502067313474678520002446780913484203636845266988774843342440276758370460343019916648356046731539104566470384304611389266537520445937299411407423660602773862452586637451137036589229461726635613009946069272878320864822505542178015086692875146451798417757132586516896814141751513125274764702472318185652266444914596350808555347808140409298490050402716104576831112628362555858137008524102437080087973354190112906981891907814924966864037874413718684698584796631654268810476048071738070212909753887842604910898399758771832933359617516438130370640401617153112452191295342138418238049933147564110897993197953770246533993459724107773889342044681780117479502288666633476918926269082574135344823599595561088629314858678783549969468886226595150649040563989336038108984396593898591605588976701528410941460189318877914080778613860813588112045946276437958176373554192792994970823281718159769522743290625417456243139009871645317090680456329685924509976631047071140679762127633113472820801606707554291285844445873479122766250657712972386467779536171565280163801684699009807444635464070894658479919457038485253316860471073408120395763526411896870651425385708876069920802125252321235742490925714996793539792014538366484737234365665354214388586398187896259526369227238305936436494635446158165380246406628653771444691721941424780498315310439875628476239758685456090339267363096728142925608196198221358267175690363343089143873601216710480048701742938735067380742028580737054076743662209167712012914962146428854051604727495824702115353922365952774682549302884623691351858467418339884158999308507916814406270910916516822173347660159513952067087271009327952764505176965993138247295717969273777292089108189990345048554090438023061612282416695999589487467970795602510155554233236162380231519115212944808024680950367699472769842963692322690659085905988081551587331212907547470196564432262866915361200969803230433806757702682586928806403040252471292312503615997248295912886512000693480244380475842734233293883001874428397805522020211332159540577333302795020797873545274621801509346728602983717131070246038569129357417592003442774774509104545916395387512953946670820769584277664175502824455580772716434579841224910109318735551558060111849645033069129237010384098342426855458614084974520625309557369913200907585735643032838931588368334965957487577357206989548233797433330445305736592027037100846860583929775973229015168066157485116535284833247876989636002292408477348441313162254979270274691609368089444316097230750716314340715759137036702262938137947072311499939093221556157824662608167411169845368294512568096835833475630702090004257903654948720505518636458029745576019783942763573497359549377763269547454897862870030617273950777510633666914241638349053115445855955047635850786386538788300583905118036915702890166034057268470978657548671553661565998111232601918452294310703767592840551345723165965432784765603135340348082501487019417006002197484611261391125622985023056862565444535969469749504983084737830384133267358384837541763047921407525169014416258497774979472817294417328409397933850920082761249197903475938830377118579508778336775133469109630303787500138095013725014684159332968631417410616663388244743355918178438118666768866628946145831156705303898624900229264159218102397518700141363677060044270507844318716924483257782926211334479114180979183392567606238456773358468330831788958278708257804132451742955904919422118282991172812974284201395072184538286763734290412127381213735884899534012447810728244789453016255444660663219130034375699233145929978554231234174233928631453312429141811717267270522163684587886126702807974170290053283087625723041681201609494982236971829755515193868670731286773903195170654923796447511100473645968383160959435703096291051706561860221929388925923982211845709729250854484478380527258488474173640122383860413959379847537587520237109312604743064101001386667505248702052732706542001906525174977203697928129004858970776817101888994552141158727645118930318101158605969277047757900419916651813051038038347501317483346266635461043146932072499843022421009629107673281826340392954937510399764614468184251620059664728022490058394639989627988554901402062164735628624060942823947587627399157880737791018051413053883271666368309304901876554100460484684309716595660997207739226828789706342217092752015265207187471614522229088550831448479122449568108798676742662954251509243405837533173424311758277114341329902008361865525039186944500730561508021115477719745515188098153916760057412203535861001504195293022023772275703303039577541908312449073521369074699035532867131611710621790258581541746917737478562658959337942431995830915796567606500596919988788511446252640370386565839540003206681023007289459816611104356619329000707316490147848824820660417668308852189144236644457861644886489208004731244752210341957130621313618800839537826946585070959732812604445567203200872729925077827895801955745922877802144364748972870661914716164673927771890753173458459446858969792987749157720791358807312926568783622249247110599329748818933574828896544092216240899155849559200739731337874823567026133045815223728538953365889326970159399785868344069847452801257366243436164769659223989996026865406364657584517009707095406307895555875300030480795068688985571392726912936619915360545437357915285679203380365814150754427152703993408567989164260282541959311847410874657064730356502762043718782905353303037356806142606523738618514385733809726827067678582128432019219349339405486188846260059434870321000127062585138343014661070320907847370165497774295736759891699901542081487861946266788009652496647432013175122167995735306926648672294704476098901192008982146846796771313437453034519716993292365685768645963816978212940662383438135000653859453292488956877412962074577752642289487238149078443478420024871023211401249420528701376659787937955005620708096647567350328774513172986772899621382770462573710036677875449917712254489582694266671703656957098590641225093158560782011523030064921048274769366254691598307713681610685726873340036195877985441654169181854000755589267744982318031109155547944946764289351447014680387453950728980379933475516569129178487687094565962706124138187662924690018874879662875505040367970336749969106044867671189165150316382116705910501440545079933838721215152336427696450605680986266778948678334492886712777791566446860015988180461068191625824834596355365782548385822167990944059112699961944196026094604053480664796587467654597753341872324054999757255495048217035324001267925861135747670446610971928490058510383070455914311280913342580527596174176481434337804771638321098860791566969743227019289495764402264492611628897375957167429245787434760526854517605150768201521788791629252845410139499043632583674568502806339705784911751287252831347459898933087364211153360879453512251569292022295985779340475635321344559935674747018220468151781766281150687723941192884605505832580135512670202394296035220146796793391768412357903876280189947436911536993629852674577310719059643305716950670669748655062270324446029814752454315258204066715221467815638085042597694985910946601532449875259604229435232423372298519159415371549607185515212247947334158742369988353198879048984372359731181360573954348156340472138995013498645560216708189436599668614433119346540172943794973597513613791711868754873175188749924013137377475091054006557392996938776346464042596779178446381935734380586157380968602855628261034827776912068783338832474285154851588903932723575616858045494759400798798421146108899493297286996602702650637305490852237438264376975630029852527896585138291024002861883394395100679789451251206008736901090162352348323305394457042342585225430150932380906191688685822961106989022289001659294050147259186183651817238451475919810340804869514835555186794959686153253415662542880212956939253499406955532361830025579131962447240368916102088895415812519075738920219945893808745545043305397390441410223554923372075102760816504785350007397816448476499369160449103028699038787978950335873495413185519874502867023618093841308746211658796788845080910391547262433447647964129033356045202526307097078580689032444763270942555770237016257426315734741672493638120583588744027431265662848345576166918479534046306571173770807734174699268769476779031322102921692115153610420692599330680838900310151483566939458510985396375530451328532102762692663781052711152312999224169927531078416520749983262505137378778013060112807504754206528538536153790079690239130580364929476471312317905346824550265891667968603807422876723810596281885987074555093364822228739220921915671035608088222839602628772987568845105424516448433556625948390939301920890852624641501629296591858650260433210004916332898023265837651584302130926910044218516331568996598240842858195173356330403048199753986852814000008587890419589763998478694962339557704775785731980722777782061995051612339939422446241008687426644433444643796264055545608148418701538873286942270134831766919312414974528457198600699122275730112735610754734268521460378397290011147127680660786874496865050790720945210954623605014966763617632445124381058803631995664325364456844690298262907136518058735400408417653525630314524258692192221998290506333742054983540699346489953344641538601413297082069037502693021702145334726373933527910577523295517750363595260037234070259033591944915296057802117272584061204243545984841310926240478182054372311670055172807422144476382857682973565735546569896618092714644399202207253326250927118951905873683396729486082236984358638074363407980611383398774002849193670883994515712616881963863496641887368928839847546358454413844677837372089748474927538435262058606802323284940593066547813705263186079615273441185760583703700666983183147914715070194892699619449634020307551440578595034192142745234455172651567678572413752490778223986241504246111255403048914254122488363593061362927115639664682929962590508497997185597441188562712583466677367796295699318182954426010415443519879361917267950182847555459214119517707721255792285832356592703263845793248362018608806886627028614328874238172088770793493997744266982494118992641710292895625470284993753718642078721636625321286309876435444749717072159329743336773030902351605502272653598797434709663423834668515190833936538218692860729987724509839864982562748785435818172833250488884069368240117003890250558414399963702660821236110298743759130659068750321417162959476669615703756229447417373531677815616228498532203782069587618301970223008138674291693722195802912042045065625268048881645705553562552648385965906928263409311013838947379810955755678913075121658448214528614144287056480518556214287599971252920330947369948025278625463306251833211724925035701894239866491390398906752625323640305263980937857081342146380680608182213351666317294312721813555845765351798264877352116700334736686064255548178444982086880410042524287099666167624639188020101952718146620505086657358529244029012626306800751463684545020091293916791306180710675790096095546683215785109364528305666958309342152210378542968323278859550589524302901921829873866608320793123804563985366597589486775280396361738484162622258244380812497915299064879679394106527202189080129627016474121289784728894325185029475177169538480038667041396728607229217243338262053281030356334386274621707892909205375453553856581138880286906356526499383347810322048016944822519701236465805403375763417745225489002688126803617735760124302369407316688036704604744729704088878809810178041262569238036705428411620642112951187386999426517744398592001218509803423160689460422360109425997473513589094961265008899881053984089103209111575297456105511394668842176103548189459135438620162260400307331725411812804570870934018152402328553191573927517375207295240846744005027301298460996268687174124265151001388411583106025850685746154167132403127677991864990853674081420223064428558170595407256008112703050937043801127952431756356992770876641494577057597496159373285107137300645257910327273762843908540859680636986552615582380019518623500791854367168942001053022023318028490671686983999748494054453993024138844136709359173863225519401008570715530250617482868926829050115751080434518694116249291236892595408083341366286882977752769334583599961493712663221135917998005343043404702916590269683911142938158757928546221593123818432451388907507906083502760474542604478668491483902122936435050759689805688300191065758870160593088511752959642764354965967155568481657086982745421641429937388923934441036689695819498103517420695275300962606324725316891987724800609177607812357530666328898095991226621814451453373536090053732325061366360136005569440725781534570529936244299757450418694195731545684566861806630321887326309362486131870273705412948861053554482987524866519917936999480838784669283821187318920959073211094592172056676780042207907078624006815383373942173879201380736643392543479803670211551481552111982929520641382159190569563895838152226793582891411707920652058052461677246486563358317677967229405765665706381076093469900371263572774409624040006524445555885530970228802895336465249346628674988563898876802060472431159185762540892832108823259689043104068105686325582042972226950145035622641181356868500567961174910655308601259393398411280281252854261964854865731449486960067226971646218084871246729143575707553118767477370507922896807482978150807387356963584620205032147093734084579294879843384555798354963241354919374738261542850524616509066395641666475003616219389717324248993479067726399828620132975959376848871165220660400279411916561310143212431777722557358930643332402467656915854862131086770749978557190128059612989008071697091964355526906684642428518724913758851012177944520839834830410279349181219328137795961728051044600597934537621511453226117868085939943037000098985288304707792987582949835159936327023662098995048366749114321949209580116585315003223561733647070233378854763983468634533658479199878296852512230348327970812214021829541559113030761763547220080742653720075825528515060841830571258708462063652003211133788027709984881818170340399343759235602619475918352889166582240467698276581264080999025837481572798168344068458314429771343448116234942964678679546711831711516489120355644384559919065429550913178171218501397078098392341306882624387358472730818645626421147510291648937183908419486721724944110247134497133184626358230868304656838884638799413669091184107921160472226095025389052555351962142578208795897323420901989266442355470314291157808749825735078310090779993917427799890994520149637829454394151675433010010689669233225661542071185393644614589581379284370985925545818854163709318523660386245247345161026601657223047386319482186834001687827818270902326953456678775112426039742277448928535030991373566300403174452180363888513131512068923343169066693556159660977848272690345607082089269863126174006995014579872095802540011216348778361654428769347563480506782623431065068110584946148109250122864716721486402903736716976983501498291332596558243264833715628879022502885324966911222937840783204479267036111778063429639914417467621938443242773854562361723072989497161859323739995730813239796937905890798549585089801153883493509586312925959413888101620988470794989660458299672012760080165130175624222371571189653935690300684856976543378860711570137440153614828021614821603021111009284675251556315704896158408223839574952750676205946931986925689769510967702876663460683980282707288011672695128230930833169855818006518481386125881007665855669303918983238037572917883447197437735426916637440746683799046237390413499932600053143521523771562213608341336949174972407786580652086766336299473399896754614529883729709129524614277245826663774941486549115962001400924677599562119340529336464759596302659519921034067925051067986266636434961115050537410850827015615036072683973914926403208407503827514195709721132132610836877597434366417197600073964735268020671322227286564002865681468907939321523629254586177322841009468394993656334020999449281996693040611431021154905467462100387617478288108107491863375654702720379370504180613514640943622897601949662479095203748282813372778952347629839225508790207056283338162402519671664418269543634448877000502814765770000971220055354674808105034141704159855209529454393586080850488621672523647388464496972029776730954105876840938067141015794346572406631840408649172787439135214253976200421201090517256167338376246864053277995901232992420060584284832277352337771643306815659514728407562009831216608662542963906427889196125596163639705496216462726322082613407713089072194476573785935961344529724131624236033184919246066415081161942578338446147947354914867598651219495542281363533242881230923514844881572756259145276509462151198642551895242559340215821127819417420027423248905457788515683132546469665731857897892359563245259688966811392312650301742670469737691368971056247309106217881995112746456922098922560689942966065904532799941494334099950313498157884136013007448271653825813463975886820568365600491376395825378135148170004919904953654957393931935726171045577295218469616367837867146218153989487272121857464122396817063379060577040185320210183836354641270408791322407855730214580391225981492933532369730017372999912316634822902116811427341735955638054046946178271766971333430986231348949524067756255404910832971891299369907366527509976262914631072688733488975081195158467568974750679317974561000119822797327160804260327543762612047991965589209051741728340953288195742922346567475922004252905535662194153300183988269615970340658247319458154520415517520282729355962950938512933912390718864704345628920747050221126831453585074053285900745961882066126397620385487365089205459089869714372968704766010093914127329251851057650272107588388084771345354406859823084543001853056139103488836905627366350266630771022132236635513235526902743552398291435942417462222119603931573184643250601071289934045988754067366211489112704518669750380935235590499028960023489722581548414417686791758473933861244916201334349968692213541674697222928272641097856012886995494722639690098812637919925494490034149427243374192304505225757047322195751064142218141531722015011004731067689493165926776665709146324930428547571664224734594788984610975178957030430483847266619090752924975244942687533068993287754500896788507312764627045627604632011135703028302825882203794673578696182184453714699401571910574098359005323540586468452347119717139791768102727760043276297459762948228152545283639966480778069426795931514507052744654341506998436971769385683620838642535190683154230644178535711448627329562076559607475677975079679566145137092874630616869139462486041987955907701182616349815589904651449388031410654749950333777621342424008820637820766427836204649289566350012459488123026208166130658679449339201180190322127389157144538252969447497825085418519604227179444417337758574221147409449111714261134760755956591770600249191464416875955035572168146355904286551924450755695089902325236855797539591182396323461927321758968729251305902312169971973561365114599447237524805432613756546804309701886073676911684396990970271952059264454994569915612223675915629193958488742364723176693871177075662313707463732645822314943379250468268998064783016624477820828651225675931299525196684808810297892219148737848562451372144714269509189510660182735755000254337502980438651069706862967453522907717807064496990769844019701223182685646372597608921889590839745079284709098359958144645442174758530218635497709385301136508212542056924293972133145761127682476940137726104759713699860733129182920751340240609987010561979410098948394931976199509161447728957361223728491425817908551543520739170326277706410346009078310594942380815488746780937821631570829780944251164218701658814955568945342714547101318662885948799692657262505299260310212991600767579985891405254546862034641777645883111932355387296175314722848834267002326469647563817656728924916318082900295448494724721766788530588543506871426562583779797796999857444247027019415279109852707502256734478207112892555161244659127664055792864708228249663985008563251982731447428799188142782126854496052412915442936671081463092081918244520457165631150744147672839002422077275883124229131007273771870183205080464900616596240305341098685529641924336321743243252180715336038163950698108059961569965187428348619150835839442145063606068249116560023724431601415112738201535979909606049854825828006633638758992914554202511247910709410044694073793295772706249368321783815927044200446931891665663804987332267910343729692299903479338637271026071764832236091524582341765185599321500216762082798614557672192235612211707460368173805086193131308746810042792359764660383244275126682755750694219025445449579254891559264374258996635270723661247315272156563968003668817002683230048687954395569525011489759225113198290103473087410590054943560140029399082528401691272408111310792753630048476897840740501089202939315187285704958147625873399931889102191156897742888544036918468331981049481921620585393857623845349877931998894036774308512185396128228782197580536685173640561813073260086143324343614170773004990098826940404028431594205116828150874116945089160512506237999211616774861795949233836021591560973169546330130976482730419439266828454300404104009224294706028212934505179757635473985883297701986073839540660167797772586076709968457320244639972956402149537559225078252750302306645487676769361933850928283536146757617980418587967733573600667486031282165763028897839631867116387137371969600669528357798910667981495366598050718137145607234525767470720538877874030430018552064869617452158936871753872375403078700523502600963876545276686764824672482372812822650161212073216678410578649339159631468747626548295742758484132751170523516504583028054624494835543366638893806503766464855687123085604074940018280467889633343588097005802165540510152160009963618218707552750084812335649669248688778627240238072619271203105714053192382765732346827194273450124203793838735316857793315003626699251993512494973514589090910982869382787810693523185394400156616572927067127420292484793967310482490005850573520599297749124243839758184331247437983118701519969750942908904125173141307213900989172093273992148494559734563503035153034416049304241798285140476963665969368270788479963086019554241529510066703957708687736916038507172927650011427587909587019922947129387031928883048449884776629028217091506503997784102084135058541570804261733696111755027189405680967254626162588840592723459053534128226156032742341670917267116719708167732103009192184985505500599332368040056209927459159609073531607051803109404800759680151129237441844123220836955580821336105876743722986848719373465244838613734690937712018849332771732700453646344346125822152010480503794168009108542604404439968340430285882007883250129347541566576383906763406234896719980999647200035961781406293232014666896979052242142885404721938004311617128142788596315818547132298772926783851348947603036734775077348160304171266835424782471642058583670277454841959929759559617456769334948287796697774736801300785284929270462181956730512523453341525971695314257453791561310999057685464085733905292146696167884002257881411755741045424729540689681966941978279682837952694635853938281767916291921666181906933942194623151401680930768487482398978203392965554570852637913773755147447995420118583776789477045317597704554783551640231129428634296687243385454784944598487038820924194604010168464950546076518103164741572823449424283253888993311142793825073460290668957533400216696126900490602217138304478648671871567808486180067655419836172225447007778177468915897516117391068015579985835596046751217083274403516156311099517320978261001146091823558379428186053731898705219531732434142401811722572698970879816677260405936012669212002859750261321377022498096618861813358925001356468059508711039012545363382123279844303883736379760684334882706193055600236579675266969134876615179451899250980530120148739251662289818206519339685857330384233194564876445933618024934417917826885745952453004656873563808694435246923418354792240136089467449577469787684775366063347341116013914637311501257875849814062167265038816359394861629683776862278093942919224751537343980453455571014623299172612464624856548035830670533805301529767889021488607572778705550631095523398427894151794896099659576598875267490641585613747145411777478775335304118197454045466182580151762028840737670408233527001854197330595624866911168306940304156050420432837630149225360631214357356511232690226740485680727108464304919862200447630680867898517374293540171379477164619487889186954927173455484286427237931736891088206945066638895439450495472440899843679963336517421908397060789920795684211281063899646050256844587007066492742529202700158269257033089704331682562791443683898872856931665697905609302529746757827938318457425817961429082717699501445026459950968417241802441630197622442699068057445770655492762394395290037879523356544241920439577065512660013461076105390380473017244622163710661369093171370740435728097557076585751988137756038806288208416549648684081655137057410426662946403458400734223502460451259650877552092007451225550543211378135100256494868182120310158739334005319076145747072032022430615685299310219753314292055566102599103982605911031676777114102048184184080308791731317884810666804375773433625697518588476955334036851020021601250174534805401067310666969110117190937543379149659459541733110397216098247571894827523339908829481620581142368798253607400347258501988521382434427912411941584396670889757921467853731085435096793427433164158173355147494211062264086487277654330996649948743600535951102908171628109228556979074411828696840408476234236190173033012585494157156800813932420044250637223355072577664282849835521800962498773410724126433601252269843113395283535504526020649118124312187608426081823233869230807335808701384795422131589194922522919319206934002711651461811290469908600788750388755193699043585024739734317268401291552083143787387304056644356016627893143314557422938817363953642695985191853693967684225024208229016026103780363736730413732559036011177471484871728715853640851096682068727928566299394853076304837333166897903168493506473758226398225611108271487866089834929869181078749258174128945389959790452696810587877632465142408858927612676917001513063771406998475574598842125146881551563629879479848322207599355726583002492533340037182551630854903687284984814329797081450961684006729150178103781120729509335164419523726743401458538406202303484663193905411984713236910154068410535508100253484245440760782906947632948152704852799003068222973166608532131407576219656792949940924725484391054222256093199689293312828471592382293136144000934275964331449291156268522662289332447681151458108958701927790696930811966440155429525981606934770811816705777659705907588992379702712532378776603760142094241753620702765968908522398275729245442483886006946173141121203072271994836553991268969010789288808501287415094889007082357207575116614621878510522262097396413201669869784052479792903394733614573426722042706197492184120355762875296092260894719746719528206539099924516511324203177736412452585730989476917641739082965948432502609338759554828997358654898402352200667456257496627807050232256982621973166578345298003001121176103571861510310268279343391074587959859847901075189874958177965090121166402663779026585881893620443973371775706941268194330691837587979504248999475428070011656528039968773470715832005325492792761891229005285366110377111411176052498098961984368338929655933127154006630880364069778866101039739041636685839436072392416014185124066044259387926198050075424088702648442009979432906120097131586001163205989226043989116017530630096635668783719464967862115994908018095075563007519259779493399625640786082409156447940937656865288338528641711007679599028805974516140140519280108150016541488381746034669832047921361215345023041020340960007853083715777634703027886134982027570403397766255471961236005803764738289278863702559638397573221105593014681250228807088194905539090276843304635049222496365035879740722127871099083873183262551191044102994179923830014355844732112104477050017844607983765790452595384150507728928648511414961817906787706039143263773406878401711698220439871197182345216642200932780544196290926572695331805329919098915323357509131739680364156049545984307371219856824794933202040577016216952227433139086678712470285584442576723230343218095475635102920755877605458282766214991956650885088139195213218974071564410350587636611315269754689461848812625017859803096546762511824459936347420342796367729306174362457106057539969958401817879249944298365216272152582991178155808038363779693677430818677852523819306700366332498017725125295274558208957596548075892482037513496734530937600366344281615472236216252374257040909216820780628666607538105552908350303008471944519058865444264824086364831189232299306379812246895819602854791613515481011180844469770057381641196097301111529304038071396571453420992197483258546423337357583430521199090762119927037626030044010400944136455556397005322610829569290473661640903674600446729210301031219622318433605507340227462620820178692471193234908681152953356503711261455934943569609440180383633400302989402525512658840144992239511317855199747943099888227703364177984408737381531366095318749578369828126491151231202193563667815735455422725604327173598355407316756213631130785935933352931230654460448943952708202201182959062672737933922202350192005920928724157726870863334182191278804180019493996128878532103332014241305153567244724649164057870464824080479258800206218651324449524486437063344000115519406230763590209355656294394708007573523523521218781862053039737075708410515396421071088236096075984045117021574290380537195651850474763975646281417955554890395031867357821219962890273703748481601832447771763592118264678249437877975948364525818527041451082961272303877494456735963384275455073284872511825443469213356092092683347179591901264132951825293967267315721642840286717398390769308020332821241482355713350494709183975677414446242236954426094848444239256812315694072575795274028195892770701450483623541747489969178276146291886934324647159345085813117614870047558655494992554379221257649952925033404457299264234956393068914859066549261779633788912388326519379610429040141319269805148470116666042507889912931821239434620733811534088619145679240999627671548876114231476828903374607724018642800621827271091069426387399058996231023462639831941028210327554922723680671528490079370519043812678091106632298707793499304235629038710892704532011137306089194009955984129399628907048584277133423071473916347130452241643526069494350570417387621603487460696163138014693905622716659730978727941065075387552085071423722680683783524632522969212109295616656476806025797748763864794767043991811017166275439228985400225986089581792260021645454476528636731383137835302572950483192451258048240347147441392975043967160936628330052039247197548590602979865695593993840429322800533255446589427264031055953384724938519741884215580686964243595640340840736188363955101359784499440489890375118674486029335145748986096184918395898612250794786686240035003508529803217226768101482949470416283803450344199387385273566952416859848329409899256490982731104564116474754796396842281037281708110644362529646807324862733087302875798822603101586059598935152939030686888472039175888696333463624728010912145881732793887638131176718408666641879278927625355123871495091212949360376444282286753722347670457353948415659052524010377926722497459204515390060991622469348334247230863161513085439125209371589393850684301797790435867829512497765313891883361178045843226620292516497814598309874610670644518234901837311418894456011766113308892835381240879610145016472003465129680410150122599546783793098318619530802506910265078861086437952473073604563070849853964604528301707310178041921304255811869010997038990719096317502011349077161097468061444200727431489873580799751149554387481525285324809294987210448844503021598589297601107398649208868650149296370431293943366385412835746739271923093209155507138374725837892243729155334667578951096514576372313971354905844012283656190187538431720839459994598419894590203442887182372262308987864101469790134869688668579690855812020044222088260000186764127615864383825075394119769543997686618613557597759063001072213973108544349659275549875822488946297594481450481837997501195933647363677743133756250754163564202952164847234765931614149274623219419495123213501963002496990872540530816212421514922777943625912707446389528911082685103577001878590997650968348184112324140456533056526775914430116247569244953278865258245487974607766638913851192802199301872157225894371594674741204024920651082476337624866086328263971353916187395596174660490700258896106359476800937772407763713638226475820425473134689846498180167899192553375622751946228539889090552080233268794961033492713419048674092182572176522552428971218971911984465533992542332331100950405823438062321378675314071991494966268759045395753769715011480335567540840777724343386598655254051413720097844422593310413293121607189830147734597135311719054077700445376973337743479125467321428855708603325138933828323152313316270374889231363176655503050245560595357332780922071920432529028951467048845074930962121327043207632268834197983654322860111525885548911390602912852833837586882085475496820937511812027491172868654947490558909631355119593873545797088325699827632520285280378256431857176833401212330391231800030195561674897194040140810128341322275383696260064482918400481280667139233124083268827582433504342321091866151809785371086251519582078568081536896748099302522143501181671233644878974374130559546271128007710611068850484057505417515802911976081327814742236905800086421536058256372416299257779265431811477570015029015387861195768374127412062992131816917518937598641595696898669061389875108053348631277053581136747529659253704674026646233281704762818559673367169692033782905970348671379750074961855485131321787995254260073962927868924024227796668484839089994070659695541033247722501458846333406865832831201276597207831447861807432810864643007676712755124024448922202574266834348846229725743466422765229931796240162117897137237712125695053367278033837064202015853693326187773384693145314398125419713619638516086834397234229653554310783584625288465269289748824731824487800779117114776915775342337428194854142326959015617903937513921263755089606812666028147745390265193614115232430686091399398938990070675990976317349134101265023061042279467000335886484802671954348573539969982234397293471191939303917183587945892515406714417012652931700155660432573374158504275563116222073294636254039684627622105366925852420257747464487039197823635664442337833746128393544346337608336947699834774451447931858607486674883834308074443629429571021076613699882298168695185277950509859618700064168315369150673256570385593468406553188958001173022997777662771636029518708346973963279504913933497040911793911930826359872209513675927105286948011411312041911474898064488469578597513832027677274852819988921064860396389937991069397625505221253316800755600552623299144724723724405146124577780542042840110519638916444792156399536215994557030609212747710813142774409723993822211009176264090582504247531989723879829234596474821228965142322268243198877000928174997021489224259456385863095174096916891805061982929116552638865501257669298877141621781535358798928207921458865637671671377652064895585248979259813008676051236924501371420639236347191801288822335423853270880815055571085059655591033096370768186942517291314860724005412856385448828812638371257487574952483174932133019919749033878708119699541851523613362486777421474036073038239738823189667262002794402984960409172500778530911245284133798615939330663464061519963966114907802765621179609565353420139630087863493584897990155827306582045304084178283867689020138885195340193321977465206490839011719875119943287512516346094267701935002437544373773698750675440111455474372171544871360544658553256145840994621062323684884521994758562801656448526015456121966855439513773458985561184019613172800399595429632950350632428029499949551312357893989723249686333691036134775436997970096915844031478951427338292688672808438766672529145226432859114415842802998057856890675999856657001304661825397960833774311516871023754880625873466692092129144819964957413590547153485170738440789347718766298046599568964662226717767474412009704816839743920762131978980722252177258816763578226810764394813188903964864118833401617817976933252544535394561128180192931177363561882240048494402214806527330021708091761100243360251821437650241292717486695883122594159737981806967973194654869417674466417535647047164476782800804779750088708313626294172161141445127092326196889774041847291163494190988479224395701007575618522252247048890589394018031494313268775378225046677339367076778477283702529464091448753038248616854132341581788928504591190645549680168908533078757165814545615052420917663668118085363227768481534737300263331349757615759588480650529889713982950171683247512171685093362957443345835518774605518671518503532691802302378368858289375592316334086799662728277878185776541430546336142421895322894705899474337212894022011262826733883216567250801815662859399863506478889700357702810386836398287268031733502875396026455207873062608601462710935914576752036427195949968003913056662199438507789403705504051274776804247368216889190653378292099907402206435275895779060800845806260458148287598447782622607014523211127489224460880630511587258791872960548957301444581603787275140412681969573898132596859031500185792404096391737968168812214209640028255696492291856848159566928140943297220588385081673823562333647467278120307905592561516522782901049424008184642757833453471195230534226466879868734374500020367240849257701138346252492218339912460709111998887035460494460594318858476737991467024665771791149782294640500477670389204126441614240148099258131193061523990254614794159938418533335024628626777027521330788909920827122715251978656492014788922952198398682743089527702240844965352621965541517741124929831891542832260405800953878823610154221463214233400372830658266471628266009229236752392583077761701820508699320630847495401479070330148648408848720638543450847906205626405938478930797101644759981982720740880214012032608867109980963280491115382589244108596617436040232685519586737068983095098633317841779364039035424335376961539050930735924788960343279194545707506817569298413037892943877967714710464828710980664232253844726473968510905189331025635824083277453936893429291231133417116481620934085453001362525046496857177139639574845920863466914852045776221499782101036121408353847528280276381550105228987852497563566971421176161283326297767251661070253768198023473949539839488782063062394486424390767452136250874078851251451219781801501145789899960702061525147281807096207894943620163786479176188741912593012374362543521982339483606031032066354812947220456436144503869343397005176974166010567042745905958562003964123944356307604545761393653155358434878729366542920254748620179719352121447986066214520456276082144301278988867801425833719496935697036130865252020100212627030518514606701261627655956986411141104040877645523679596215274327057648448623855625932072300604645247635771018959408686443294219300372689008962390461689028595142121514708012210318276525346031656026341786610904531804814875052648192743502323645876277462152300257424777833379135882252670953876352496617872228808148103386409441887844716128902683497518371088726027872713993912386653237937851001728443474611857730866667800297187839286841668194812157164530990740008740800601576491246299220241686949071595886661483165844511290332171213806123404987292412609479131012380056989295648265144838993491972200385810752825692463576224143415219670621254980284445753887817225394784494077818233948802222932795454039704307787443272008778846231645035343774087621316576485006646817776930123530653811213060737037342788218909953944983964458578299502819780776421522588874022780482702493729834592626554404047533554533821662222091607630712571774201021776739820513923642511858894598847637138585952121267694527697995547348290881557402160654774318918796122291158149188256526964513792248200011840934903745590501578547129547739457533099564310069717282624967222717913218158283400781836534829416236631666159979398306980660263973382542152743304744332068410479998213318240188972628229010432727546150120654168836743346851836832055297095313451616962147912007827989615822689005312979739299275172892566199572728964148862314792361229391397975506501517402208628203033062176473122858504225620415621573981704041751678937841009135021310207905745665218843357082568593781329544718760193841193180038813673043340368226857528184870879840624647571423632423315021488427815908883950465170366673918789338073318924707150993651798611013597439060167594306328877431698543644557748159643814864772685056631589323885009535693868962872239217622763783737918591600395191361273227951689678419038536412263332837753092238856142483735603614078753594122093646847430297063975089396434580538946050202035136291263204030575929773356408954852444852907831420978146121770032378835616574194078512009324073856215257276934104569682409159372251107326012749401550910253211096167632261108183552294010896319426018005219019096002774998798515758364773503087642258273490185363696974713006920344265453286003806558959409876199450285210876169927193379499783222096898785967707848069106513215909184229435292183292144259882582547662868347241357547860804224675323384262392577758907409266912653246972325145910772548688813545246889869192139078740158827102775449137897885507052238294909784954842928996394184624431249568630105626652752993171587709116855156794147595849271352984764959956699820929454015501435805051049849258390175422268677564310253960943883510485616678926859307794939752600291017504014972895911558835488132791511286090368318430870309380789614035238737884706063549470548216349226953558869199621630139660904996192937876135913641237542260468824097555128064137010148021686506359909552082307418909331542656676316610881172891905309470643694178243598274004566047184449862231324118049531567328409863337613076541538301376650326725806549823795857671800962087290832098774575623388573502522282152497751306457016668707235273334288595440305512944906812618634300139178097900011852710494166635968415908061097803328286445583718737528594837901478420571158197031938950301658979775896167368423410723105155234272461185260050601746084728397959060150701822525666610132001881268690524323734577598419290855995837037457181343053378281414847541258312630180395034300103399385491050607878181882328896127998892486947290809399571809233304714021963624356813117240322067978868479657588070302969864186747500672405704460244658099225684235673119451823501216273631558295041981658785573655129142121281376087925969418028264312988633929929698003693690025871598885973079004579464297348947927735231753209170735974793937407588372411225936344953986273395089344069373657302389020987835596991050570421363139187030071960921891962074830745668419080127865123143399599949908656769756032847761730770545616461214868652231014116880399994320721416544944085701621448263670574713432441298420265291158083857726084093900687969106473073917929006789051003239024398281212418128274920006683102619192768687154333863460937920291133664100438248379472969651612091841537669255052505096844351218360221404628639102407242828768813305548132355531355124714393244357217612056781107686182504019631581160519191546365453173826498012754942926028222431673756429713814172888216664894959576297529521187763310695229576100722453711554644726911307887821409717028821810564788002955771992698497737394428527798336456512191877001531472325188034555825064721283640174844826974091293319584783533326041585277310311756337320906302429124386637727870194572675062253645089662568699341577358196842761886654388739174720727757699659328371936218110955704803564357315747352205695026036186740544696679587952782434869280959868289975343836382514504715665372168530556620406749989890908110117898732700884065703715296524243542430925939935594844753952787285800458595390502989286070923192801957614884085797328290455772076774418061549729714417970849434818728011768084895009410506102550454178531015314860070759992557188746892677442813445931880220246988619762539771590374292034961796196664336002095808781098886912109707760997036917662539710457579898767766909021077987804296933096609585852495264588032647349196692135849397069388287480062125990490656547712121648360707563671494269517726312756473167501931506496275035603425877773850618957920995503140983711904253433404690433045460137875147470397564693133292519895401270229989159193257935579595893158738490171867307311945162037812853429406182307985410242249405939727808827190263434796805135070787099187044816445777589951861483470656401367562461437752767471539315706898461475576150920040724542597450063969134231873246648647947487656943248926384877646361189920841602403808451017674846194636376281520822428418258554012957082701300671446053768931483726328603783182735498586215555974778215882987103626776872230676315965963292301122458614306224309879889012861875743417293775150404698704181650440560263249376396418124933255632580107098684850778722722875653909479535841940550367185821188659708866054481683352099636026189736028516116802547727762247286203965522452625039870374710193662309803383532574482271324624589565860161335174476595878952850291231667837549297332736662435944182827618015479762745149236345889141220795157188271777564166490147869918857942602863509357084861117731145034842829624141528703913242759213211193820027771202248145547243743460380921558554427068005802751147544716901105467176399843423672756068014662922060139066723602890696857611206780164797990376909838185177269242571005412125786838451395533113238319841243710013552368722868790328075172294302684406146307886536637379568242696387707396259453235664283886248714970314514309920455313164238295714817479396953948418526065469895116623622109429355352877169410462337770829947457095626904679763896099719356817562336367972695573906626651197503571214515186493847908701272657454163071639444888058117378994733459345980598220724382285250867620558447506049194211006622351854576715161071531939609854621995485989203114418598091687024495330235555187757426820138286279633679166179824664873054452128746998624343764855231073317055281982708376171788969763776945766761308460567073573976640785268508212111716766508038597630424170050601153536476214889346159899202594212498499117267639914332594810122646246087172936354814590037342800929472887745882325118570899880480218326077185189693840647855353741339674158014251031450841861385214111055518695574559638098233861503060229315151618833321797086423439738659062670747877091558294654741242407845145320427067870072245578734375045106860391096871491481678583168132272921796800500355873591826727840551285416782245681247103967904100367729138577721820414787170197286755779013876270743249842191331917295140102491263356987395739993575798000623118971741912941142397413332917765579097497630958267698922069877374416930643029773999498584765666036282506556376114667060632603708320737413581376989601198278613427414754735880372394640622806478163040880361481181799460167866247015465375954356982325909830428431463201084508251138140603928387868314983205397604652137678130629326041874543961800778781041580005514455462556435352466286283036839430098158181644350604666756444051488886926218298902235236374634650294827548138103043840915088125211518081242117904541574402032369858655269195624372626166773724403998170627803622538124696481191683074628571696702824038203047698427491343988251287423500626635674775693477157547546065547563187952875451182198306280119526790344941850145451392706736756529827036019607928079417708946532967359053590117963571188346682833695228505959556419552750113018334125305626087120662944518560021878980536565360998855255305020688704092799702132958278457589981207620861376277573808695315795390090888843728562305024445280913397107588775811704082655693537107664144588375407188116973952529657860461001990780375429372010253440027740846812259254122663896204255646668371054863127672876542365119334434496145793662580454929302161918797036255719843883989586080821272244053576169041337594163075421370269566920816005480899461533696787707886941131249673962701085065619110553726613923296589591309310409920473515536627229335206582631120611497100275484105609327121354636237759477599456331661778885356064634659840676004395921265415093575365810012785887679827023211696757343696834401734147101358810842748025211533674807361305943252443696729438547298706839100655906947483859102409807697687186336684247752884796939986712373840913342873433821600139972092098243604649538609985483880475841042645123649836434472049940265590298145947153406444931490616676584847709251925124648925514245369846482480218125604784074358914876525443233086854230586512179295655687687341577431292576355306531304066303013648109616902937289755848722102702020710852414004250657237039492877533731470185440932837521909493187340394407243079915916540748978094929274845994418951262486591558082811788068263693635264772278403246812227609235468651965910190886851071633644883993009139000891848339221367069291028877528519080321176182347327822737977496433154794783733594071525538992917018623426915508552954488995655418994153558602215266877822712813046423512958411159341243791727821524316781108670027277381756654498129357070082637946632267057066563997015227302279647194196052700646196974340944934395102128805619957725193905620098239082417368247595301252483812279597274370746950782298103195964388524363811731080907216817090829362600002517091188821064499812919967400799810209463685250537472257909132450864439603454429464359135992608532280214051252804339973121535922608581917487754697824190070453592532800858463852052316709213901558807766202799949740763355184046119045478145860312418523960709293138823806181702941627963233748158904222080528690153808455043514079179231170035419690573858699682562573094145581415265394465959568572597070008167181622695097667253993285094687475138833920669194944788849600851594073860222091390577756183864167691243366472446081904055845713644640021755486181639107523397413551172187789304390757783642640537721712673836096488518065523666431818272733559237524892120321520294424300995873284036366595696399186915378210529484725224817212958519634399767658474540994911287696292699505357251286848675760639635974221572277382336700695046409276448937471810416993764036439240584849492392245814341876048880469685294448537059359981898979834643361196346837181531621372040529315954522628309629287842883813968739333950690386762637198743085616926060368281387515087052867851198927696160438285575916323727512601000794669139098445933688074256000148390429975506716193821522383238473532008318719905731322311505129030585234653255934689087747452899350129971352489296412158760108844970566353928623454408842925159071173625865852194833102750970472933221201457745871264261369461349966591733870336906616454743728135118943488074958187205386765732486610754039138676676956772767312856584173843981887741483453141917759516606043323932072884839007351038207683429265528221577806622379992212952420365992719485496032430753313024697039255082004956858784735628076083659266967989110593697014321224582212009587605518961495957436950559092782082986500890714853272355183528605814445914975665478509686220948332862043358150964876277180779557917301943343079192204273722638085795276934542852402535751049503828429127917111475915512422514138229285447586198526645814306298708840905730392366848045537852832697829646019796624557513149834752084842898974520633479677162668212700268386371129598271315437152349089321377166842409280094616375742646144769479212859142270183403443727000931031679498175419398930996405592429049328454697024986949580785353831250197201775716533807556530613092361307320501897846446911735892438460128591834196063355334209086994519267225238979208793350524012891164009050610323535626368914289609088227357440178634750589590084045736882360289365319480643229675591189068157756598682587984796949731056268120715239833223777112485308061696884069782051574859133267287507100398927805161475599208270276380939199083371227122634746010030334909617650535302597606977942610617933953722402745582937605739659392611767666782773709204407841662021190779638148641059915117591958698803627450978673888845997454880082757790695445063307756481723580730235493162016118945804372255088016297872537243313411557130881402355222209128077948353217164247398411095585029091343726163467885016626751346314116953085357845678712121298971338732787137591340855931257384983703062489473753870783314544366158979496211957773839345309121176807374784211053663823620867025812264888242023188500930213059457964663430717564059379879861005591329566356643685565367999693943541608584258587347323467041690433557317115902346528968643754971270251912914248601070296610700678803435234631561673097216749635730940244124160655460864717571700896655327850081410733830261864435005409614429794223870899960906414080218858455429030940257320716991560102551118025775473501825654565155276358854085850610434097531596651826099257420777579621190990880645235061593590101857698995789498640503643371560970512172548045474538014662595112894624615436719570118078812477389574238487813611334203990998178010451974487013649704581971361656475730740680704819704048726234340411344898448836897373432794267436383299796153728666246206468656095571527230493563076855709805945279069591493031406393946540471458542398637774185051083345585826905747687720517871309801360675326031369730261283463332990838394539798520840001710396568357139738362244694019863052147458695581121154122069382278854768367254719203471966521101386922754136415586019918433629032605621463760094283609761706199715443712653701535529754348449695780917850548197757317258881030553765211850758374111609080579391740522496717411738123819239261432316186781225305806069349102549787743536464401625078062336320413855788598802829901911930842843552192244447092110999607912563452060290641036922589909699869364388028041900770377322350802088293952662316694107353245216113261869768151268583553475215636285988453308731642300850610886937735602290304265106139444828847960011889469937214880419809403117923249313815241903712218437215739217225603399650066920171674459786581626089040725356012280466721846472874506068278946918119760796879011988544098359287527557954274391374065595731438218776805395125982493846159224765395269501535990931474649492048200911686772026823048344428697015305079188559067470645377595793507470477845879943754239331290792439354640635200792068062085314549741601147949057107685373381748663447537627366737139359328406131239092516862707085160031995213543516096109470168805421529378668888090986637124909891714306810987309722125958423203155359674866060646234244034118129246784135502104219453685671718174906995246941987674465802310327087913205462963116784538893490008827278275971813979998653351342624005636423724455341275103338136470816514215583980439241386321193207706062702894938894696158991719431990410612788441370511351230928710785591719015430841788144641050797380764136127017447369237134792487816607236679786487288693800409715341272117611008992272670642137801400871766862063346774635752314606039516065234428321637960020292988129277834750366377180810166503010591728779921476041099670189367448525303329380611980640733043854243097052622771699024666455379575131160407660426127370246321603723532040211055861239260788258277716520130535174076983083829183985723134271146177388629914713547500443518389933483538688462284384546928416985823877009475737319781689024422021863791511199502161951120020417542626711508192963066467942967385464729119379748836417248669393566527549522768894787741202571719889893356184405102057471841344361936683564591951605923337499204496652046408682114749262200963929619610010936817607059798121755072707987155328075098855529069472901079305403715854035693179228531263469759106183657650613642401701081852137121874151240925902202048782192231073782027031228264012478851273631524501121823112262349871190877096557991250351760505371410597229648640617860460702438755136168449174507656517461087450868955284289818398931833134612642798888896755495232195555082010889786284489337528643387791598547560552592375835240163198049011165061121806870658064385855397445341776220221549963170916034844263568955211423459619974838021199188571872675558657628629290877089936594849040128129943972073319640609997871364531071949974468625699918390795475945310557641789817603955046859072140558747734000682721156284888445860134056406398309497843129619826971417449604173250845956551840102796782441797888251213403698570842391660260959016825264603443599352014159411846371575298874070146018955422365042096591674421924640731040200996894705769736147070536079180069050457169128182905852406099894755116036529358798314385934675075887736455989556084036122320081995891107367619615274612133215255045754916578870813465652254143327652453761612875974621316659778416583521011240258822436372327768744561214419791148993446819000775808421856742886299929343570205342241082549728872801706026259466875559387226172369751704052811264564770193984259177592487286844354051291173432334730395408976690152715551164998341514833410949142896572951040587762860076577771257979156384109438677930022339197003962371248220726217534470911999971126682947162462310687347455082530428184729482085605003222817172111030313677730222489604769444926888373751962763895434304183779781627491194944996039252593981150205258815147145847964622215813595713866937643908414514435854387299740954524630997008272841656197659590457674138433231716957861038441458581484670876009881638932918052116563869531305556355784316620859337048203859597005066849150650610761851350507453968476776311948498068659963326450076268474659550239395963296872798403547448254715912656448938477942384902675601799876373923705632955981364401963619550830847024352023457382799673728378247781385556187259024068527872378496981785717337672677854160700637109058023053996419789063047652844253170631174822071903386119100587475703689055578090648128016305811242256414128537774943660780677386111216384013846956213972786433170319594858993149603732721992467845061316380105939636484760450633298356156458738622182682441730829275719658810885817088372346079421904191203686759028611805282919036359249149969961961661955843357349529243559527263212963999085977028188544948933147797383326458147388846937334348820150274245278414992927669126651124346664088988730812848899722263970797819225811912689007169422494955215371535610875763214639048388843571349823004490795816873669142547567442358156765916344233215070666450730994704716353217421526641573975305771245758151100430200402545445126655221309583288748197803303355310639924246980617603734656535168756597649031868383530568395412534399872065457254949868146842363422847850959935232789719448467834663651939989076072456851879314735425100734671632918727164979953288295643041151104749925041103254327162220531585554433572409235874004019878080983211046295459166861189865120191708441168213106763479440817691674892642336516519348250554560753436829488242025535828921772519295220536131121164708901793928869186257150378426187455568687762234337836996132898719251669946676985054901997441966278637775281717006072012867121414984659405230959682536060328479124733723906434006044386393144312190389590132933175322601096579606606595498438716672762392345197210596204504911280134044543507614651041517056770899916671328533230410882192275963260534211720414256771001283146985006956354543817016945407676222648313035704219686007297421278635776455779830534790865370423855975854268969211825053862827672403163633545778066087818604764821302542135040678707920663606216787609604609332251638860067249889645003023139855932700030758063539390381527444367098083840387882251032008467973862035559059466022345624201210860932049433814248043094594977857759670364480100929539771109047885816697697857698223611547554644595019323339531948453076995466313041727455343057532097668631845907838609546867512630177418833335971519480529193753279142283391887008279629406778370448058991100275077243564744199482745607672084646063004402551329509981969367419885352252355485037306468059146518861234782237161157262203407363256057097488296369561906069236646981068253974019279051139996136002132221667200894672902848116714768095808783644128581184815132011499228517191189638167421893660035283735429283568178667821441201953473670091037154318410236539424197011335552968518837160251923152979001526318302146050656973643127431033869747517941445834307129174727786933320800714886887374751505838174584165574487055847453588557887250187730939175305712053849651327169290775210563625238350734646262189998127638591780418994579329584276098495734654239506247344995638377194638211617459014082047773507087692640706240939297907480139141326118700670249397358676636677509757094783498893091992322366523823743394208030279341353778582692543772121728280001866597759965853583336016616143164380317721924894756032978496580193150107296189967326637486831385608443730094578826157575517538118965058490809128034885635447369967698453470753513151827378082926881881853748655260973955142596629829952426319797473913858440631453961070267366886009696754675589550403868724319555857196758216267726199255146367204212859481834127754312305689346344076986187846436989779379402790623001240427815314382887376676609703187744988994452230476244828524681449112018804931374110284359096298534899916322768956958556281620284315268391490772517152330588594237394514099080624455732269291417897061799778554195528277037126399668744952053829757781660021044522871615248873467462534372668637782388697194701877611584320849096322760317123949095537676886899301347705113870089712554864272239765894227844087531212736982338774053221246675940709642076643577447244858942359147281489619482707076098406612264863341432546929849956819735416376968533777956417650797939495116024657105841768212691490576872071012645607677107537585560391249309664640140078848645589371070259381614418130403146521814031491034063975631284520438702092678255668483820640239920341791380057641409926802237671644207366022777367186093552922321302653595504855576391998862914527485064920183179322989493986219200938331181120284442627657861621173843420176693549991627635665378713209472624086754833354378722350359651407000119649355577741964800901375418296088276085661071069466128407026726668617837149793313472939788324602372137611826353759686366075122073542807261678805931126631032243114253148319458365600549668257595548367404548878349203929612853822110411999112753908950048943001785069136967529801307546163683683813038398249074542263115220563552029985549765927388504716165631731856217603236137734562202797914256959195370822218027815574034932633659014870846140313276415285218018030189030490160240432093794001273046744284953402360253370683571639303407619223374248454283915687455175666876309805719034792537284985919416788698862681089526084909835256303849568925239435089568544448360766993671600482525601729533746033559176459119260690566773635359221101836919443080739949085258517985236115695337305605803604241277104639709210715425934135051689089305523677463135236195047621020120540189191917832993573525548192742237847183935717690762466048608908419148196320160942413184444513290581979107331078179444288375986991540229785052735377660339575419882625616732770394107184642566580622701846341716014685206837826400001528848017922371036803306568820604848293008810130456465550379092005057381479984818887946345824532524463413031554282744896891238373490143189222534765217493123388689367895494411473991000999498894730574286123541930307589978430813108626178130985781580642815854768007103619294319824161507061864164074000452807948111234548210409650575430181679892154477760008802374078490083202080189511343475787617573384822849043242275770265384785426358680499358297925843540462873615328224865039590573512577149039454135308374366328961520885453686179897972808021358349350297509161967933602400372800529090642293456242762935584308231932066929624389163865435524074175800778092932764826934330555357491972718694930145408841471815504609477622390468514902647356603272089451860435202663364156999433286261731397011351334896669060664547564806186906025925592688162900674171950545610369386026622193723757137748996538086139713971024071645421953099723083857578330409724600207157512922457257579645050207413342257550637630993377685446563826070835775782798164412901152226125821714765876326104647547406003190553318600484467170181834173398131787858211546905456186104936147870439920680766346507342206859190760943005920852604897422333788807396462417011032975751118379164974425031511591728015015428125350444880241807319339811716955716268935568553776765487505630723928506782397744902372067319156224204264375464211382571153940916521498616405302453979700508675176096368362729879300930080441938245281965110398311354106834989033476976643121376783753001057073651715926086127051265499885981976789730903218553024181822922485868276604452820418519952406809839105063621720404707224287852648958905850212801861341744726389601726611031085139320154703170360276176034601976658531955480688004549082354030029327766297663686593654270980428703526574061400070390956432454847701985650875467978766257099653705130869893786063008127914856908609090582599891405246989696073425149869699863397386639301693484911862360115011966982114331426205683664376350588209316164551804587191745467570523553290706104725857089932968945134553430068668258711060384883354746940366810006306649180835802797771297863095443693603870985503153331618254671085047154761643043401389822712988631895317443584294124934056681010615916667754714332460138044359357722043282328243243814215715526521335223243894090261583786206948368958739658504189285632427806545870467977726210365515527132878931526869996948270877812105196081423555977104369874786722348886925270894564921745312534275643619700162319747654322710502998669876016487048970973089398994343185029959440970331979742975089700751126624975508230122169907838386870748324813274206232771695099875843455471583005772583152030543075539849317077651978619234251137466952366249628554116118599177397203205121548112829533079563559562644358356564077446420723624195511254013352776527279392778931892698826055310782011877663543580325367181532860520978445600248149789005001762333271093566960393823153716064038022027983351411224337448435434187141118705251038280619427412343365165593103569924260262503889245679079286460576905169548244305217266482007758366669378031008946803468835806233319823755043747282038346741468265755609450950736192592022926784488775595849749354561352029251824042455615002382386236141129394868328822101570746505343078094835068533651466006671172263370049253106189236037162835171259780670397276559879380049601301516179686735335194015042532373017673371996906384660231693160342392159338121716942117329458391438727150716799715126831271273868552569723056812107029904174010359338585120696036749337918541965149643134550793081530516178041477477499589031549375710752146894380997845164660630698389473000157721075150451015942107090973550687579357546135496893023531909897202196182413032726052894636206348633053962252447955361066670282956380334575088047935037400604883931660071543803564253053738418698546281133114668174512133139119450045442057455026319193528309008918130206329887808979279398256272610568908591237032818111422929053380214317033380649145923803684918869778902829651867968637997936340075153687617315682562490911635433125691607435070253712598617626950638814342364118983921022196271750067541753108548144062759056665231019577615330248813130564658901971220068256206925729711052536382949975280311043607110035170561127870340721911071546570134957913090602297447147344495862441610084744628443056196521863012732765397550945430378764366098776015163637558586700633454453922116458416765371667894481867412456449224879320915242247680953056816136914828282434700958646497976782673468965348037814459673960345848603490435666432000122608094730901835398246720044208024663926454644535332094232734826562424819314035725915308351974116548125983725237227031952376554771692107074574638359765623329995391928729442681112822670695520013391896987657924307765287882003871762155391951757495969242041769307502859240346364693200364283849400400287456042167395784766413738737391810160020714332162838337896165884819053973089196560355618022455879772264880571887661892889537572973068505556909363547228991827808675657780271088083685222418476618113319462773943406139748245827011787575007853777858620089525006648701631659287368056373522366268272051599297717174878165235978813632499045617528747268090626634151158278153225271231009188104293906312467707988558648176227040444376880486108443915045764708034417818031249334835346895806254337469938885113433398345820108394502411109194206375171720135650779563212441076419604176481040885624045903351256313646938646626466171424555862360998406518235833097850434127553669367026136501959914183695367791195665043292123818369407024363450327993571238957902768814578479515733870754554231959372389273745815160145554227149865469556026706635858505666017156922249674458353061937609048588992796835189658481397677991337970919809469602955424750170360583275031825847730009936838673956082769465897013624448485614524827678193023941195865647477663259161400272858134820058366297345747003534639941115498032311894169585192850823423777329741985600890381752746142063107889818161770358032845940509625536782657181563262334545716676316562426857731260554614664653793177322774690220711162290075544588480428101250399350549775712225537244799591106038634219402155567980540065087456483428719528143639616861899189567680169053723215869561332173401222177937658636230948958047171165206714151256191056398015724314070224081923763326510449680833543513047168261521951565570025424541038683774427703154734972634675803292826470763428604294507787026359173097488089055430552670055201047646186316937166122914946200967586493798709662448491151905780817940456059798270022754731766211910293211397062057754249168139959859391031880586463063759503357516506132229854069190057295836768481493268840253038566699489907476841673179458897599686635943860290026825907072284213247313268613704514502988712148760348808110718888579329163598532677254581106336076550561811434165027726456895778064065283159765344337799293924865906327935083671543466568370863882065005852016650726053576286669149472865934850240901142090439718431370628688622314512141790433440680326318312102008512033956494560095972026893629835939035008453677309962734012322868934995438432118627385763889868391987962168086149242530562728975832952611128276685854456767005018444948147739591753599012380383970274208359192447980181604597307151370559037669881894287279416199696078855195740434311123881571593583701286523688212979530193312439257091820411737996389697242616018947399234950060461564022972837721633287045241728470058106900593961710591851406839708726176462385904823358494571778647846803739907632791078418993682277310802366758651214845409474358741798743607612111591785229705898578972467820076669747019342366998609576302218009063336656711590515972125026747041107975904045142946061851006523066242957207945851540578264505925656816654625266421788012033779778586765174235061369417374355212333509992278346962994801742583395049329058168457006471314323632752463047988192227659694812711563919403952615022168406237200988829120853818602872776059012941109647301876491826146863439256492192672221104452367700660316798497381824561357069819353657497389716166669914370491537665278178231800867496408767309028735477088071420091018441890251999432716237720665508270753397729705370762495509033947194925834642199408319760892881159398448689103690095193923751097256907356853722651286042772728715248068267675757847322354467392218536513093860381275326180001529849292318855564853123586814534368629380729033704179720195914266483252642946795136060475354537319320616557462582941578421695322911599054879296343433057542075976544855589600147189434095228844143221526272625728849430575394879317830748606409500477011250460151224123898696345084315751223750215685442487545194557890818118704194665225111028067120601075117818112671054558476927945310539636937463482298361838056846090313099149617526956837403556601453847664884641122625077326114503671924614171903468923039846047862697702068281520469683535816167295206791925944810576859294764539818379006102131909570015153435105615030867563522598123219851750170349077679869031900142398235510885524749466635374849030180934776960920521014276385471664096294259571218252163449592208502479273028547277053631175896364543383209108663733459302748879348450831660985279635487563030369367389970309357738157823406913139245702370370650984522523251848038815577045038366102468232517945884410168358034628490862120617551044336688535956437180596028013401360667696650039058215878032572862141322985152823463199883255018566820398441555569010450823099601575480289550802413352402882013604574881843562044525932162714392758595608374761783456438152682163791973242872402645081504932560375191708342444918750974140016190765119076991479167665643748743252669498271271967692529531333873793410785006716949906677662842985949268754125812503009056413954713163369604203544122256093056334727874911413693680198686048419973465561549770085387204064842224833911236620479128834471936714152537427396993305272656757812386730988848718477605787186424297965320387258652585041710672903170652514256317649497038266821306301459404340771871795935418502037761052527996368690042609719096805840977612745647088977863569882764219760109192338623794001477735328248605079538297142106208775622972791177244719062652889907568933197448851261598183304155199778886445174469547789273926093473399189474290009132550568754444160013362594803445260527422190454453604365540087190535236275022316194791874022436666437578331389588018934789407738195353394249265375436041429455906818738116638358490166139673288855552153640818432886800819642626258237096354166584306597743221133437845015255516788705228011555581017373018119472729310741783598054931574858173617175132665384049516275803639348778097489128796125578087619983158962062348051567732749470193779117535911781481894390784630231191037727198302117933358693942666132454518978028818339917117744130022264121836643767303381791369991123607010931637002746545817995265760990512326008040937114478724620172923715490804510902986520870978003325826929233308702054770529632278511173847226263282611749435627541992471914678591872183038245876140184380257514677463853935478694309208225288849806327469479282319385213613907183075896218564734302950407162239955261393250220094147050834434071851580243531342397153212001776830369579067588184347539656222582413552473585652141493938247136453076568000531602500585812128280800232026395039970654676303543529909356612439635879409741715238096751527506506286278575943805931950670401911416399744675286868048467588458350545152911423560460943751519536465752020998194887825418594487525482429985327963985894294171985961643333888921744812943728076260750772961018488273761046151950034435253577766218536764070297098033668691354612656534559973716380731798144172108416689337562034737214939556711389161981665129165976543323493287431171081261918464220244686992122616718239302122892095760343105949539959303196394091465350870938874033679622124488525895173074528525279061874489156906137697762056457796285006273694998173660980347694350210750947900227620957289550773131724455441743325932613605537305112075655740793701238045028792463050783354756454394213077883722683835255810679141070791143111644791096569047974309999804365330049844061945083842711778502252230364625204550388409954362466677203277878627470894605157533301212562714189542967874397683052025381466228686795428047736575140635683494803372561298886048317941481978120695288854543206110859586143652420789613419401064275889503504877729726869285870972311432759034278364489772333112672896440782173274811546806538188490227507437752298849060104514362156299092746631624858555741095522386764014484121611570433492810524872747933380282449058844554170732340002184193868231487993875514173912780083101401283562675367107588274361271380591241766510303608971776855010098167797175904139171881239121549173921945615325316454424994298863143068383356844887853964670220431871802048678881124035187017902432311918032700689100440104332239155814177126554219075244929758895533867179930384391153344526899919710892187818803308826402602219708334413195453073618625911312835561934117003341979972143903974330847080153888561365248694451552185187490298545694095214867536089803489140413902760232870233032313847360181987894628444089140962622045678886024201630807238270644717773184551611174281044680822454093873244541184675283507898367873882994123512334434450090768637030753994052440800919174732080043319132188641348778798554503626344076793250730662594062067485961219258189629821302595991388689610694648725749875371797957824429379061240759722802718938183594975552960591318059412390709764989867944651148474619557090139272866088429079053785210270054434042630671160827651132198504063560622339401898983639706515842236095210717917164488276805504610454320294549134968154555236809477204733435732542610435782753021689014709806844498908990748682234050210157712482802528826189633891546599753111910699478646509443729121120196088754041571176350291076016293747514510494397619602475104920997599748769476943976139128093491458506171294525136042295436611822814156052590928905060538557507851638337815320896891731150359509729628779097135820036289250338527060062405825619463206296510490809722003809924603473936243343169680415433076165304019962694054130051908952643705533108366005988601151331154517232225043914044417457322494608851036924315333756442003802108770732258664570532789214525641462325418612683165500071041479701598956948455653524193081309130522314690902100090451127060459242389569534704854839198646740925966562158487196276742222132214695305294308335474272409896566537358208312975177340350317862982968988909264041644584000719524572304349188025941550000280129601578205478204687640638324551537486133430114577510760397068927918960027606260195990226132327761982252516495752308958540359574619724860737109076718113830476362101251480025231150950376772549869023288553523558366449237758593847370117885105136133794926042649432550455675464520885988472932002552545684965650295419089069634668739344678066571386759603186077813911689187415851279073848623805042346297984514708643776027808739994488365893252036407615592196397253016614926751968000855869225205202925383355046683816044996000466586098485323576048734090385801828997136980208823884392487043997369234379036770256530568516710056586848201301425202854163632466825684439496731651283694994883941970020134801886702831556833417695592442613999475875622555082213179158319485731477054042046933931558097572871952932374949828429430929707549317818061977217782154468790185200717612734979559936733056318974385649068570357827374892887026533855977275278693572257430143389890545189091027989688197089012203650371326166502629184184002746613690565382085821994553820603917696963493158882332902366749103690197050567941346858761908278351570631083346813706155533967646821460525436279796765793476009322790895720903368337909244882160760057296824673566702848176471727096980024602277186482057192997894211884816079142898773105497782101050290787778888422174930394373904828667124545686192614935130818403303888009332128909398140587812510302723539793349255170282183075606828265290337111098416486683708205991857950534948881567664095201349844617948546141581448156689399463760379282896233275268887622522159056311327665513082152262558511026641779516460897973688801564718235147224130023762453333846706185609550322667800788622573396652664027646868643693650404933934174545247922165764798254068470705645553492962577920392206630250385662364868931834985933548716549636836018038026208469010498273979652481257841221760614559134499368322299066674107256733174384064384677803486087008745721228227103593011341023913453631215277581089300926808799113466448183084395826511541623864001812691027264349514612984014532083559962291424592003135982930183864851852533351404781758210319830254611023021645161084382933980234575912916004084724865084817453721365589651807030664551115903132292311630533497105628018402582299067521376550196189105725625788990198292651302821415067960580176935859426724675174954380320853329335920959689991248730242580016825128772093582825271124837172871716992852842092874718452566801450214485988607027657110179975241135490991135479951741124437673145397822729055771209864435115392295068472292835220997923324187145202901411627342631955171422568391957739926697844001990620603090051564036215699423081167910002305687450040526574208694067618201608481757297868662998920092427865939474642784191097434683309066726770744396076475274695756147308779929155443315701172734468972611913302893841583407110222878034578507666603054447428663575466087457040075769668924244422979456274106047182836422574252598701810782021186286060021525208233652094002667547561255644159829057409638113920760015125183503644245055964668594021339603751181688031130927525717277321850418454801026406875089497655746753906187955500920137158738519730630657864812102215874609543262507170644823075037911706376188466490215328031560957846590405476992478800365071178432558323178259083059086786834465287839704793880744414194656764225482117652978074298682889255368757075228157321079379255866315714027141203239748711267619550253406711667434068793373698442494681129482314267142959349316279815795194901308622359497841170217224879661388551559823743479104296092082023703510499824637305597754750118505906134346001077181695550919982658145077750888969278345412303615809981897353297146761651948669601049881543790211753030667836840704696582782025627158830960953919722469785233390466583594883502145454979605657832791425361934363944357508852889144825573442035673912531796964551809721300393730188785636888984330738549700164606120172522148591731600193362632591606143953187621296202768965742284768265259775345724049838781167378739038283463758027956301748927551201590553911492036923845824390853151288410799985192396148320806687489425520358065960247426957866688020020969761325105587664296616302631078723642735340009151617582253935991443041748922259988570874390531101498242696455821327982611277019724927672565239884614991926382299159397987812843746184061934611581819207348049394048298355047561571940931766308087619281925124753107918453927855165152082646804302059145336206269613819599220505547605991361510645817131596319429804996722676298285359324760977012498228513340254227375809771004988685467025564885641546873239558384529512788508980102489722387275725593530317555263010263105080238776050308575197043633247752141033339778774226707608354129307640163884792545826586502969354852435782828473654716822244499071498722225884300749774446596929737722004132402576363068862166726296183181414569568924040442114226251863357255706463122498806630746564804830810288710684813079812162270328438673201387674274029642459723500318392308238902276437385053850548586362969393279277661961515787717089329191481622501455761398894750885617694708405385960368945490605110096626514086861488561084118099082777568236040751960848877326051583257726850773852727757154290179453275169013484280102616597040847297583792593992326091429838841779305469719604854843110563308614697134209393880070098689537601691797181345867291483986689886051713885571633214113071237298842809409390390627165611763974390051209342049644465049288856664832669296830266078620417701844416359995865995989925339989110091358159469959607704527117207023377912095856956754816010814241487962936449055050962534341112230613822227480603563592676972955643449719803715792448595418289031202600878838464134200440023044697858104695499699307203397840760096554807918737279650187897323363281387080216597481500215897926954809969873139090019795597484632753427021477247220918868852568445033153512679373011501694797161565483780141494732462021151205351356925675489544610509391303087260601176193085342823294995811346997615460849421424256582909183026448575858412193928443374131797415615706641795679752509188580433163908159171414444330514669941971295064757450514943603174547794914324344977104503621128562782892686022644258330095708960061487309947122643996111763925190778127314862005637126047829675310639036736773361592112700769322848617642381542138353466475189586370463866906890106309347872655977113148345922211577132884952036951226973361112081321946089824300176017338539689012085463002826274467431103982554928743477757784388521206486303634289557228352929246122274856959481852967897795546063028643790766219228946318012513317089400797161974472582556998829925440327402781398388832780824955183046174058006034762662366735433375453621897639677739468062377704251343697803337923516789237039927660605143110226180059616144146932743879756992857650992401281084362150295741131570333834783913060825904746265542461192699502187308805539734982483025329631862257482123789973704788750211292122768332072586931480838692423789910279844790660693693401356680162656169134078141639450605349938743043690728715729320444767560396171575173859648954447877037503914766603068479582842784936955000274548353628251151760172829613934795813403846835951298871871055607499038198380736931493236427230833863960932815738441423706344266026906340494762931089193343689781006740898439487917359264602831121625896539692031321244176815793783612134890281754174089472159691305294772676076981369183634541850284722072043702849042463040962083294714003657605231157817865347557061312334796050912583698882099109616355992933717459646399071703324676715442559992525411198176391350291120655665388631458309324565804835731024845521542825219471405464699674139573896879451003716121553805667491519789268728830981904625013444868885310023821995580635521520156814197574081120850101389416179014670524747997904863381255162925488820898507841459885089325142520872063577383464001832751032421788885188227867410293863677441436717317318864498408909082231844521846246360439309363350391688971258893022859771489606684538552747319206053645276209579827537322068837360047680164867194963681176260333449510677908180112803972064545891987253460177438199872301868619059375771651667629028045714382308186646865583428745398783753915890526475639597059560949153763739691090768277494605587612058368791798818180148929273400435231448997580983754443565547128514138219730886814583873358044518387550446954701678656512143324862030383892826164455442030774624513597951237759948888214038224339008497934205315067253954739732020162436925712526150335423147095567199753234608465009581082599259375504384581963989070266456938072854691892222210635426913250211060014437924319057909609182977186495024847517325669080726949014267511598545702491175021995972649402793314534006081453186918729299076878869814395433835078208016700245955798083476033928588226290364425004293679880055943188304043579574233166793420655655370497824794268174260666423843074831227252614512330436229280262703858291577861254121337079399666510031523186210643449060136577495021791898192363025533421042639920314695498820505239377708702494984611655783969345155686307047883014365771242386819152238833499223759425368203111926054490309827275337716432979204524143598521465576673878035970894844020306962162264805021507304521471970637793703522442280018034183371539275782674014048786043456965990154711891733673536392121205056066514183170661903644559922420683406090550418790248010251548091020140643601975387054666246288540834101950003925609601588160859122717777927999027985775729783941293165604499638026853764418639462908733873598032553628328741956108825267020922836430638481391959988297507136990861951815557280759748529114048289609830872547372358511093402855632393234385987343840011286031125122480336020287031277656713812778579418861022036848272220078155657215564104593108860723042221534388458122971337829930891131962792259724637719295258496014318566925817839818634301480679300394257784207500893487086180573917251840087713425996421579584366299628524634617106585244122299775966939878323702581112959026674032945473988135801202876549784254069003882937862114410337145081429684664860306455409272173856002900484556622909138868576384703683722340162178513784918946417794002829838315791833384446091489923205038179240911354811964401916786029575599193982703353840541063588560794940536337665600906746118113383866559143811771257646997209037462348012383181539289248326200699468716310108068564267966438706183440559404496519981806648897667454560159740060170853212153747288974175107492389684604409610293256940131177532938054895354387867195549729888037828714222524619328079155880286735892664158130109663691732782038563368581280661548616005108863016542773293897798369560250360568280008969534365195530948318719215308355553754247300865085781721426138569044707040738043403408953228617833937055866842464158114796122760510943783630289514841779545981684957523731867387833444579453730930296133440993337116530436274361252550190768270918164017426443939187060520172674620520112063182176522423050977881703754911439960705612278813222219920190876349770518987761011313230647541340774364184654734923318244715482032313132520492529856556143396015833367152180626182476258297107699267298217425363705626109588075267947085677262632121415616301441105299395820043793565587216706944079640828000831619600503137746074753224057575164775048675893179742218634907619995354162808509577352101019780887631928408735809347078696910385059403318739850720479527278972251895599874490241630039455196131618967783843272836211073318655473320223825021854683361191708699396555716846034740974887511740727415236116258111165800305710175351414833982790726641834570612733991022714349068582017923081105569772692348695932701656996013375043299892151588336171335437532793308341353990541041358621294327539914384001862474654841985389956556780482615108756668801576922178658069298530529502863414714894157481579847366646477511100337788977520735901340917511498393784802506455445346378731547849652580831469013423466314875829473719165077684275775393456515917845180943950840391201799070849778473052411364349305002241347538161858980765678871365957106770431660932561120023762956769072082289461867711585989196839043483078664109164070882364221176877751402117834094987869465337868118641493696354218486291843742051270490461152138645253289227648723711554089928931329946927407607846228085854333297714414959950350780942378937134298824234719217672242936129186421448681538305034352747179653641978617111565465653016235366322842293013537729786365251158427798397262919305727267625287310636656299764627018059826257105829232363742432161255473233837769164488217064582768142136501202780965069254221572825001894778287485071068485799237552200395841960272819527534642280034988639594893353071768461280000956932317598575245819123199062401453329402808703591018468258423652568283514503341362302206094267807497585532022534154944090657959295294508060525638006168620239478699618569087866207150748889455526481326999983216222405351786721722450741637514837615959496603504740426588496031105381696971310322080532760377824690873660341838823935238303446254285276460095019266049275774297352753013228054644229346006358927596623369475718043923890840540479390853350218069530981372825283974635647781533726121525939067204373764681451124995703595162699779376537308168004291880172188805077283978221504999507003631541430956550734812190632137626706767163998737857187490092997698653892545557817303553927844265987663733411528195197018903598477647173738173527383943074229011665928988900973990175987249353060239037962404813051275124121018312304228181657431662257356166087360097928828864850310803616409009442627497779762386047747540318760978054628122984260760916656068034774633615423801810403976040371482125710891141668264602035597030664848165888531498542342125900731663810071767664136375062402217981948618939356818380069236555940878896842670614716983320133138077970920211610796749507223460972607741764445276295344803361098471091236947701304095132114402981541942663151007586808693988935393788301485579173397484968953740281961948419436022916020308774526016722346173197416630580617384343395755053345116389717569740295505066370771759203416292380636884221364050120610221338511004004877899490340061524203380140935470822478911949170233183672884988027003231235792834928379044418431135821952615866692388569140389505534250835186883173061757183955398940602748669913097759532689351418213486754864000884292976391793737450987444598561887599147544433355112606057151758371135077934373219534257062966298547619383736751638945680683836501426663983594461028548464028289915918875857627905340684254482919694922235504298263171515280545043013979928266764013317650377079722931367771259918453180869285580585675454767955169817069244102425460501210947308272585520184891148580131291646686394524484605819286211171707549537716871539448878689353920638507502931447039903879132741093672850162120557636921983865476232704498630078267347754111575874469954741996768170051010599146892574226561607921625676811992462053465392141239842991708689763958627342060158355584998468623970777221177924467403653104527922659554736974412411999341376099066859273283988426300443647470813300737114923327545038671045760635673681697457865669138433656805676932306457178845487464409248221155964305448678457518442699337185627441488778757038508319650557556223946201981767652103958938304031538176380184500217817943044900179312116959491227857476038919176023239643179523740578469801278524250093790518067283956386248724345878542741886136353206804623284966917510210031401541937852094508447799361387714346226648915173531928355209807581517677820430004306936725533081083796357811675342002351870950653630944498106759983378500882347801347264684946854964534758850301709973751073308225861552127183096464934015743044886005005211698393538281585862614732898456541026811484653208653033199331308104221933533888416929706926155781117120451135017147884733565702803880523534476480181973019063781115252967889495355539420091063543170177150188582469305386422919094270270360966341841564802772559094592687272632751401184257290299157194206356839815505854417598539293754135998178613396601656144016808809033977051827936122353211077698012294398719138108828263819172831214255859868816710427402568738232597960373384916838096759169852379457141058828086987435045905025819193013942719915847442846650675306804326691994060787465992111468801133236554144334485841409155675383039664709537604501771031281555202267495452538458164259732821003947181429705666634227621041707973982756410026269296331496322478824916835940541954827931069218795890998461527825992338024995014393749423630924339536697371607343132887154468264785173238289670472102287802672985010777505800020920042658216213592854062893543426953427325343492467718697038382358762011763723337395404614577927039046771681385987448983515866741122727144915631389976728980154269428348544510401292483692589790366064878372740798910119440716682102581386134573992682362291872180485792556491748825965748146581773791141373905661152776218166948452012117899742836715733079273522821175578368263681258950889330782524684744862571893341051230433323913253193280895840086628422008682718165053797636465378818345678296832475951919555881077391261097355039799144510248087604270981693751731396975768091403966458011360287829984933194503965069290605928113368764514856888812579529788961624424544799055007429935782684694222303150208677475932074957763541413407943768358026329104467410115337183560393686565029957536609414407803236469200631556525813962470898408374513061451951700556751187288660012581859595302286231613989330894733218871781366124198190298991879278100345158073241589342572671346981808937192731585231882012398906977400795569041759656766593888660804033967049487839146789066253230332185531893552146118797111601727923770597506777771894594025956263068189464693693037292501397053451731120909036222844460943223125007644947016235668365048160574976837385921591424154553293664789826646846277823102873559478228077891125178089490471771545638199150568547791732519347346990009118537716752321058793901929464083539381473582796986581190158686496467872705232226176301264459803531992762244983136330640173341604037124932567608079190372851223720034936121359943838394394230855233812070380280268147773677406798034298009802075631286401540617514925033499685996740377248654284392675936728483639821485458114561680181649689721703752161929139539859428462587325065017508504720262658397581720216005353645326492172199577081748592301629628719457506099884966553300935289112024892674370145794916703085481925597888911979409329589701652344156715265416031651428615271275658937465250458519100195195187912788364070661257129862554515948198688631422782083283733644879756223321650772005107334587013417277228663845236700375110733646091344088505073465648931079377792876729624116886619589248722066357530550855931353677736111449584949804813858994299736922451852395579916161365297712216000375278879620760794584621176525846862792484792498082221112892152817400276568146034992967573997638882359098637905139084232814569594421283585779283873950533449445751480263339114599395015905041752292349313408340627823086097921320203623892752562360693618703524154934490253056595115937089098480016183450196338770786579321838328568034283790656966948874475748832783501456013515921846374870758013057958828526673127986378494194364301685215950906025185760220893261214455636349030588692183002655271235844475648548731998131325936407573048311735264175253408153753937728450324213910382096441673734883391197877459964592210192590350225828272993515169200857744493259459989649646476844722332572568690790856888558529961278191862260557903781002944342202887653353210087490435168552080934230927214057606319196563192182785331543010037952131967611078627509773158346616601621777379145557918440897838191600178904031550966633276670854798579494792290975021539046809768839070824885666256093753155448446340330502962468666657918452987342371111362206236429890140896996948655975047480620662081501043969836191214228500033100231250669480422509040319947973205704738712248574358398533656912873891745573056205164974461897498682007028404607852716342739212472373751318353011910021280103470499969319147499662122437138070829064262861574942297551802974236581248269359349819334500017939911335347781863087225130575988197217323162034907951313670440670748838784076393634687171330856660515612037043220123185650429533406593715421432610775040743194490963494127858305207314900853977581068905343177036492549875605262575347556621783010085964171023133891393882552272089960218234804168207878773759960165422138984206234864582778978007833670914155463033646603649946581008861866636892490069710651491297690137804622309379724840868145976471850895897983855303504608047823510333423111798578192550762871232328705845744131773430585139737984988094538728173139419405930334747852462778868639788745029617963815229690528968208798792530659452929336606643000702944862133299276798877921020195370329769040036327377427391658983104702617966862715665332772781128304991017807517249269685533671760767592813818816946916617318383891879532076954122325914030461285621482800592440048337291350246399550649070693319049217543380080553605822793513718367904266276858790120015524925074487450826713856881880959421279036271339679396205671405290029897998273916556010936590781572471026464623067798408515937170206199783797402703241455995599134630094549365814142715219992983218831989978428875717052229818934228409312702415613999691622698794073063949939743847475354807978211838424607295892168513482366198954166564443263885714710160494395791656428709181279512094356283029440568481885834859434861235873598334677455070983780183420744410867174526369640839695162033332258065768259419656782408041974171420226095858895734263703851447321322226431936957053426221909268691566138513074480267757727908522027022506308629619718158282316302797159678156535022239126437539081823399161001501480370397257038419765274704718400004515341268602417654047987402380346449510212059175842924499671352451496000092262507419182879820967414802488623083255433394433647676664825607157249812399358061284225900063542242182587329282330793645944609319377334344606123869652351525159014346626889011583291460236131637655704799164696446303429255003006154980787418777942544663070139920080150643180189145580113083249419767833767153427796755185382182753945513821053948443968838098650931416956076058817802904762018270167908113826418884338318584037675017192309241501545943136788326594600432945603939177202259526843085775060469646365515871906441846484372610965496555130346522139824848884916540193384669759613010013886495399650130175560145789541701979054684978449155539254134075899336981708902814667390526728105584088378671914515871312525532322065660123785704003151254592793979019017033195217228124478256068260676302509273344243119207933051945832400031481269529160508891397515043745117709832798079687398210367364721663884885008559811341525766684803447846580939829837613623455360129989786641397855099131414303656010940387213161048454158060394252675027219870742805264681748214470511800463762610481346249760634151283971200368955742331654964683067747198976806529995247210745537856786623062360874312209428640969421944948955268804906305320041286140662619700185118755902165261517878233824534703799148913882403690362985811518656438444159128745182941959320423892978292394974352562033922090890789325393811210776783804301485309481818583748083772021901190391557943550830927605708645997539284824966490875343216985556850571999630635883988401765666698710138887284350305397147118563907915815878848937411738708841536288816251618536905512544482691597502630519290002393736307666146194409318586406377072173546446448464684476357741557642366879525103855830628809613783655841386894776756429999903395764837705221378571278490247858993140289983495983503312422886261377752949196221619882275389598017817267613695017550496934735622122233871706195997727503782026618786903863332684074206199283712177592514076558199561762815170758978539172750190672152579698532983714683064339817712708049138445872924615656632674098017589020601806841472642417113456877562791679245352047998571817117201605249082840706493967151522235105408433210466090878880704758321464103564643617581991303947129181514982452891303651849859469402153366895115470295914251385233470672781061939220038895855852162103780841704789449996210454711566768355176547547955529841209220229752683720194223337649928221852905711886050902899930623136771572382829843988457117625905367783258984218484682679065629118289895035887007463791824123179187458431360247534194829746810696926345292306432047844071066895581521699540963337365192711919561453765650478341834414797430105777221581782218476292918839372382725395984714046817250234177053212139479417430092405583366492544518409619063948372545549895922570626565191759603748276696249203829391551858049676530583379412864233685969261736441825785355890472396868253653272540583056074322951053050584225140423451693270202642220563839853932696720840414571042691493618371008252781053861583725314591325341720719214437748511299007125895135188132948145666922996299751039685976180979565268710206324547340684534167212295900343002494785592379356323756000719142031392621233231809600311897707769649596121650193334145498912130670315771912903016225449899062782565527874741126963400371246767989677604237894332677485924854902393594662121436042433160483945580713383737417063724221647979885824116094832957624308750394293250963186971035728377724498359849376503907424127422087960575209148925885705422360744079157601839293455180795415987487399481970832609647426988662142070608930663294691561419577031956946306051433768041530634322783044465509174014885159611620408239594077188119359560135063612714348849657439426136041203576958856236006878789761318494376412820604193426083335212857711008004893452244673902579263508093479549655988736373194864446014481542701165378174220059293010635804785117411194806686875942026958721339008364637761520048451692342808134656935995971337336902039241076426110727715136387243692895748372652041220921233556736557359739886635433402907674550371241800077279309361361702491901442155632767344279001517647441514349029651170542337905970326324354111103989284353884918881238873352211008361920687539291765088426162801278090860045292304235745561402467448249706037653216533757312233332967378069118974747549432069194610698399269662934035272034821728210478028135851974666426864634781405873746865087397057627337563661852560044118263146315859305330827464372277497338418409382105346626599649508057372377618439857341249089357945679781346017114287116961243087971570718493834291198876401115512195679192108093229010390707308743620983334028583934848221090441557233145490464354088028017446776864650905308442984131277520943984302725051105668604164671354594384374176459121826314221041952626291286358536033347206752572370432602965250713928601258365702513028213890037604001456047720608713287343441390853247434632480436676053004034822889429599878978767882449721923728553065965513770356901280612520995010670300138369830242438927435994568232553251747157584666280360875946363970729938990361701003543634199658237654194801631457508038214248015861043505178053208736443417357721488631088223484944875172070477984239084138760441797406884330122360216909436071080855954938648390457052377811855435000435044459041306099926180414615632229309695175202178366169137832057880989252767174452201512594562935407886183296178287728756860711040144613734573218587484148273902688075011090340356909534384092011189926866955952443807170127924907168469197744927936868248581441028329243428901928107759481085512710111203653757462611649480388146808887068321945852305172183811756237282785293087040145516369619348539994970661566488093843867437776790934222772561541062897363613653067100051192151972627846382012897373848512460450882923619027462998106967550067575984651436260321194665700571983048398039908399830982068545034648703269856328036387674243802910685206099741432818382442374808300805978231642895531210086818902707257049240867445812856799337867485286888775689035638999178296245924453969342075820177462895442654247314825292056736651199640471688252904955229701696469137145440272216299620141652446205788722724665746210002455560096766026359264705272340942427482629884153661623974850590863063138700753158928632247107041102376769900550827933128248540867757256796313639384469479109799252217724592052941690538329914448039853142309772541072992852837945269584925608111142989026274809022044780507630325620411142045270325258682403552369812419928827325712253810585851967925369280076156348691867102854508070727487305373896438662086774647639585157738662816936755152427502158044321532785595926865042868340599848477058748500607621120899405977647191168561992184559528860328047958886161555083612060386594470839552061061324394981604287644943952047663633637498198157999241054004436713939037606553165770622787089137605862988714909601376039882799194128244510749073729742752830442737488029398202784875555548522958175839900689526245743742008504261775295889913380441505613196958011579366953928553216540075879657101350255920457286319250914043702339083338048668912561261002887007609547172675551983776089665274703808868196487210527497194082172061603035886164522961707046576420439435481802860120240589439297741230895450279728556691707547053073575587015511499909957480325662368619463800179582863957605136542604342631171341797080220010136645571486236081798895516603365777241969729158875546995726959360722967701939632948396160844474730020595446680047989896911262724207785228947599307198327601451410943388514745735899622877824981255079244157439226812342801368996031643383313100247398405127212129982620242044230375955664712210643403122249843694297511709902194897827290482065444974627534446633612981072492696163985200870695462245501277848889334181966264055773794912960439302410256651403602517878529524385893343631390647617370590867772167928448458284008178897347376085934755675975640580343026481721995474865048072738474177802444934960691936642562407701261442097829453134837177693260215955521934147134310414547891126354169322210033724471354214398719547648328865801241343549906705418863014382451132234351390575491821577685124802127034227437022742074202476229091867929237916174472663651575137630014830063401471721195701927497421216318989386994179526593412023347341766774700804386396949812914572483909691357666927559828120884045855311237864526834865865472036897777531030983963179026140755478629943234113463593017826234922481427253383015923543841560604537984230015529155113650311781687886295876551382574959602791066004674989535717510060728066318658811107100591490366631499765968509489052196260407102740514119769836516988675848435470821435280190080295578124934263861075417555389651058522738955524595406193258594040005003540038814615177599665205816595253238002544302398738634136917432409032136803188418134034883784185515791368325860479593086879507768470112954380792677019636521450323857684880229140717233405261412631763272597643248853020150970313714312188188808885729596167964068360669179366079436548812357983834598021836735596744122684902172554837114132234116931113873434941427282729555391014306358525412755368170971764774133924066527042844532135100506546893413663647304933734758812841430830765293947321081712717118592594717816845919996351855010031864069706907377517838873778266034850652766901601420207246378654759178991722053706072627031285249696203676292162346723059513884755587435655702896333511076128830647277659161738269359263702114610128719617465516794779391436694224062928977096768703620306455851862613848734264643103630118051831301147757111111208841241560753614595961039556493264740236839132638339505461236151002702820349738870279569104577553803527675837359286970369683085058534864940397013704436766037410372380603401880563524790700478014537468195311364950354664027117730853891902008201768703153575044129643476581598004766390381520794542584674396363571599629780226978072021730290156724295865680009652453120117260279256042801437172871754401702960204861042186018498250142726143209226893715991738919295204940806705566497403017703120989687455777069725788628023583944004357817563919989901763798093210552209993021811418497113295613880407623969527866293515044761543143890460896044117080928302022266186010081627981047091679032672541056748425237776451481015522096980683687847687100501415687225677361963072770754332227636814752355687147837039677194221602681783248441440356246904048958126389282064697365448980717930213650084468467843407443147923821896453981068587872738913889987390736700186370899941320480687488015612896653625256238980564979492130031429382316901532598238295313280179970647918909193240656719651159069543275922722604100717471213130910408157356562561920566658059158482399378742414430822742319840582718954580487522830678572664465126887613719702987938193783011447989247505048229691584393635065301923080346851920037695168467908468704831347224690730223198935095365820807276883586626289550413619059773720832082585488591038686119922637841226392927538727088309828246630001915185640480367752041622341080103826306528271174501559653232720713812151405973267859853551349798967322169987015741469184203693535031518175870469195235206034288886984284847983285627734342066886053664594774473798955766358240260029786705491717561179847272580109763763623575701788385810365880119282755637056484564616466222646401610817007366321467527031592522013541222954930627900117800761605174117520336493674967100387006845111453316282827126296346187157146416404153180678697813190810297102306855730421807382198884475131073431265894894331626583537000236746410451238992889022591412948483798369632560588828572274461580549702800894877144416921215218222051821764591533553008305969000125118239678611923505326493845512212213026103892846258638579507452916275907396242385075104022081521036480432806104480303944830141431466098054872934648172418282956429771518957082085603959365071569334132941356156933468233617290910306273799654287869931049873220493067153221491121729318308365994723061460330319624036197254294945869293232950556584149152220261581084108708395446937067994343574710090835364515326135881967649372018567927472077166748393773811490630018264007615795940487923609708696087988256904354857861275253589312163343321620823283881618375611794280855364172892287174234230526024866100090579259158671784030113824933527191335283873166324506373021593715073162876899476905925050969828959083319960182024069686530573634456898402608248423777472865103160208904271782558220705289472128044108453913087556467645869354720557370942687158270313557983077246331394777712177400744004359235440584285189254041654280139430510760552112000466404965158749261425485828743378002848010640352042346023083117059303097295543931262230988113640273108570146706798682403234624905868952646828314733939961953324096789110031123747765641264961732162981350266633383662564540254197447738939412747610827409924180413451842705733345386636775017637658597925530075724221932356523312702827777251518033392650580946866612430035685609227292655165640084965451293917169773213400834056963642902644122312836585186767730288088313466532773891448231088308568306862510588047470166440204841390295419521406881631763624657849170735598105075940505693142917380260584920340736158224589667681153785458005138519732963662909756865217606041994065898624556215114220721206947996935444924231173923821893742056076364189508999379087263448574248796270347432094592367857569508656560607778640785779791359100734787831248324331688065374856263638919855921010271784683578902318252186445551470061357080569888847095655575761883331731720576663597727020270354308225709559978806559658832746199495510921241586571588147969248216052299931748270870514555021327275952026057668439057541810445900783634372185848930793105588384641596697462369662552490485276928914414599988508599987490195879642702391808472106719895956640415173113718882588153301789254107748992502395877571550514688216732621506799407998775514129092357538648219150669064728016212883757116867846708334730560980078880838894942516847660501704200726561083527347951126182161944446075046800648365734461152959131773718247987972564525346341426600758609002569864671097503853493487649646911236942339330513613230233315561248897693646249299124686787028989401833136083890874982559100032148213759032911862668880732858845614101611465750751221557608016370956044988418334633353040467589016551125105474058120141594052545087908046896455561664722896367887666556355763532570195029736687015030238231896610733988972543918056139603544515962617843911327751844973149568698468667475145505163443816662376495495995873308146097570399717056929854765837702490120835356786050528909645709289332023296267526692554016004051970672943503110684931471529665099818648907427190542503261993434424159824442778616633220381025331529056351800495570409681826944999521158218011343228257979598201357040672957844338122202651996802480240592191543028389147201178611019894103315201766506931199300146513679406991937948550543874998689231778867871900388210414892175646316642641154513950201685860430684427223529289848629715620323266400258814402176254810743454913777921593173823769868541235639892988168304828873403430980139487387236769419267505002769637805914051546373866898539563408140122434142637077670037990301138098249122205297746953764453495678226797303699427774307501191026680258842842931033294371752444777120549438797348333643548896735500085888320984619153672434146726923332791857704924964325086484004221833128922183854484676250201616193607949952259777427123824247408469342852884180650900282990488492467495828308074803074244792784595365280451603269720197783154247795198785733969986278741907195683227830318841743482837706464931466897751219503685420311844826732091123050978666641777117556018780051901147153194987528030682134133042784473565106897330806249726971713542502796593593370556721851700559521529083305600015848103934184178877102280830103571608658103562452680667148859924489756105070378622794216168747305271797822086334318660378994808726781700430419567131596340466222297259168891851420268104963514074383922173953077316792084802593598673958567887813993694702612924057755508694045453021394339669744714987200885965459760137433848456769379476387322999283875266049137894889385292809892903817390952060669099606444811881564892284781251117406140722058561518956202435611108876213045182509946847745248183817576484030607462381212103961525288051428078672925928916920744950498737522877817195010524039679527405130631771762865101252864989997040189527615785677672028917607340961760815806505892195253411094637392942493495306652426987376879308768468718023182307331874172128966591013652635211679789535307406455811755659061254104166361762602739514701829168420017560713895750146875571288010636441199538591029697600609581304757424679194398459946400776307519203637379321890191201547169245672053800605369428093459546718744857509425905225976502392643380234139025981372901871394402279097993509262588525454659096655414191132039433026846069368207972554956619963214323696622095472332489489534693094450367217288624135350227075700573972243950449588461484949482061005052909346361978627954621814331334186008827970969876087259553735959701075426283580916797923674846872230596912989091698099995399508029389024907112429172369845891437476924161690837885925149216464289048099366643505160228362854754948159695089589295429523923417751277725194356215283735617936570222909944610004938089490892039072953828036399408241738824869498366065437725341890797699191363860512834827223389852835947415166236509283444656672693029180077995969674505026107351821464310979792341670218614215728477876683791158505960276412364470354148974728780182716899417491271431375044029571153349569252989595455287084252671869218465677273555516552361171515105572477495971635416634043339491986992822385118268663679029160471821662131562494343888854499380297595311032995110765343753001974727476785824724215751020785082738953030419461181817465458028378435833111068962704188641118110503496682106332119599514402547876806143413591786317797131798705996155024241408229506067955681238709247349435614170378051757402819440632162226355148540436374197550106635785226952155072754616382135739316065800802652666504669692633408199615394543420352290501338773050336403793097466155752181665893734200893978815958337889019812909466223718414699597792801778342159206272861205661006787347502797153795758084473735567658549735272128973396425639718247419163377094985710639316257907837133184197075931662187548837055731792928001277011171557237677002605442974488793786042834583666447084611965162106853200392546729156801540899881512727250098202736953697908299072910970065361140316597682696907749866875531150369817113660087297055733807132612093617378322879501901598626626512304068180549894778771589390909988677105143899174071108171307919936637375099923417579722659134992203034232253532219579912955987606394381339941225827307844217876751759528137502215594489290745771543038941947959468023288037739002230638835721916003258221338024442507968914361569666331905852543755467571926784970786352187855117889753230892160243738465507558356438279802568751984881873590708432481310017988665400431487775354085371544844773337309346236754788409123346971204210932520254644206119413601081722253174434289995226628555855693711773499443965247784184154491234922639625714217618569188279828224330947524022553990994637963728124011105388214860899246121762006642220349575033732399322880482671138067944888191660240461753868179798140986742217822874815874935935512113917423712916396263366496573489947908678904755105514079157368736117598806241225235721797478060911719819791864969986108707947457988954613582696079409556582894482472766897049925935477720452244828305774660681598340951288414300597044439640353535029521647952780549766520467621446510874771535465526203814534553353371789859670240506377255226771295288367533184164270686822319027413105991992877327725332129960175059785896518476248426858173380296874753311540176443736678358486271405024411462856251720817551894465578862428290347721473894341568181765007475596201558367224086515982692149381584939576484511078270811213683950037360403789941141574135989534819462929538448261576767809734673641737504005859206792664604759689671447571610865094774042665250850157334524250288523095221616777227898909384535232132184270457019093270401981250078268290576372218429110295269162159857106779405896837976750758805522682628780442288738288852950525040820460037945927650323821639984602194702017102636007845582792738748831927490963745091399702381111182799599646627583175029173298775755686725564688967909840435657973283416759563280079308974436890904967790603693028075221250751453882185314044690962855826237471797930419596610180885252922524658655652022790623343474900553168078063623642255318912812594856424934057001612100700441238527968130574554264960702361106121273710502719467335297346688961960424072957303542986655048814667018800196855722147265211532675386516639916742670953276640279233112067361661939003671297086894776696911691944776064917819722836733397540632161918523694774687135046002549703961950312180740438619521752889393742845698776153912527843090528569118974670473620743773704205870944347638673247043423492781200283390904328561345632760526512577874525576539279649889217286411337495631151568589971353209991000057806923031018677121481748542625578523270009546191114964560307610817274750652160221198762560631330444350887810149927851662646448292203813357802945226020908574734357571766184098347977066482118433855338592371464562763596717890575088259205626381195077313594968705138330419249969298089040887061415286407955476956295407214388768207687551648468453418953793162724384627590500815504839944076175505779671380818452182537216419997260047751942941960192247095459339126271083700918709380593356410780824013460169636965935614752046906068277269113638811366003705936319214663987996811602824465196726595038999349503501851380085035981693086994561101465960902431218528319859232527274414941183065325339722385063149075871892213544963542323175731173897434035575923081120606053399744487680455437352565641114407137445328219236511546459087839813759108847964235013431859989346261433149297174144256499089948145388951546564561491739562259473350655917115294307443294881434377848771530691785985099162598619689136243304121523505720425096902247283905716222798368351741065394129077343436496128310826856000588128475574977717977253339316164889294334099525912831365397854560747934268024429460322686766322124239520056445441918505089888254202401096856208564351305602349926396872481663486143447245345034489687833823471196569528800288687448336066084312998225959628365970448441944276670512696845303514837019086633964088465581156150249128708000128617948866940736389515070604750550346385157664494033533738336159991583936840631658076436003776460569188155923448896970433442058892131361990355876238731814812376365622148500257482351028297719605598104637860382064188099630243436631599160643970751574906220368359222694342086354116925702532976370309624528495990840609112405528465051230578797847226053286936927719267966287458431824693532838641408358511058670348642540291304913041015221838936284318981504330181460674414733934849655713177895026154283430473451381185588391873121110214474045595930191663331305769177891906455322602737724293033403207490941168772027994052800234337333297522533068126094564148086905157875358525152829178072159846133282997809483691633147499579531547523820454050544930384893598034559469870889978339803286147047077373927481377406250349496328465045900662448707984129198205990888028646522407007472253760948509321862574873516116366685247617246791352080811355388111232872283384180348350733388227766768256706194158980923348931450254132180316504421400078581941268302780092905995185323710590307385920220683353982496965941412003700231056295475154108806314284855383255569036371919122439728867626089225716607957767460220583341327745929917648668449708682848359551267547974278180308234273255171741525352062808847539101511505217612775001028667334985660358035898253227892627755257384074968111397657677742734737102182109736127825849686226168238121388308097497410904723082075235826384270035363045228715261566060168611636717902594934263255405492698513624390346806114126828625639764617032793800283725387745553122328669172088643328362566158209091353940439186614431952335238788334021912246398768439688263082416227370874506450172839836241112497304667119921545237773289813955935298705600690642370656339569007351583940957261139944638700310952262418150133423356999495381133125092992577917294658257623046927882379033307230440161658506383131283541288966809130154215000638661179301457624467710636586059814896239317483819204779533424526471934575581412409719201709085102202663921208071558081069964086455393890284002781388681847960185771250399675335912153560245785073624622875126485153880389850130222798832738622159136856408830580366994959012469362294648900107605507061206670341410022830329407183619479114211068044390968088609593027824692155736036873687451257503023819528058554301160212346760658968971929482761506408904611024358100153903925213556649670159649159042359915379799152539854357281646679822752027476721200464334486034840467832466173899523027081686039229283728827833714351856214132526642765365172089856041765666887864019114000157728989510722445033155590589487693635964914666390763816062465609833599303592479334006334373715418508032914225085695321295471421166901014715072636721951391752390540749792415156043727631733805100463511267766370818311851019075857449967062309534076603424370381942433372587915750775021265083399242073429227020487524345164875103192571802213688737853253987927207525112047009764282100681664889165825495714774138759558765795386115263484654996032691936596398171286712287531061713177735593182005893891697501278041992131320778686652477677628713616326900299995358920410309647765532919641034032564472796199879360108117329466382262391904155866818379455501470005895444098499261154007768528991019271520107267645413295620571695568052670186791234692724377985357782089056468944205806353349642202505499672435253879605960981747112038004395342982590429988725515051529876208380510119726125833778255991992449936452339044095839422965121065684121047607517213945779885074250735223286799217211304409988008860064237363413263042403676467918801582059565600398992722003246589610512960141321332756835836156994598187760482403110539778669032272863498876269046274696675997710054043035343781959689925466391522126842931129815770739870449011886668509846201437542303750492880240614377941512029815669631829746838021040828677340626479860474013809676413740034022272313456604611553511468041325304065875195265869137558928302121705391163566869763897002336964234025263459447101512043237713018241480929989253562845216319905768884172849763926351689207543436270958067065655514088891685931060896846054791504917637661635820769006448165431738676434461368522633382999821845300359428419757409522966242779433868635132928592132972793977790599219109258492977501197121251428568271684919542128874411631836553150157783780610352494750351101480010235152761723548038629389294272789146149049264368695766916035322913243018630668194437213732598555568740243466415450785739412937027682093019663357786372877560574621985523851107789922315794711222628526371110581941189385257000160547895281389329910566372715376409591856048371311542916132010431841691885951409521422631057902671036014020496762277686608039263426224048276311319395993260532919179150984271911740195095888361247558964097828086603967941345729354797271232683383415938836962621168378687174435428831852284576388393682317643830708190908638670102172779594214148516821662132686381255018907297227102066316570932557372026443653920782213608811342157288337083410476301536088919245782968611275451989983436151711466620642437616955834776379212722769062127355688443197538287746621949404580367807905630138373483933025924587775398528200567582989850134108997969587198271688015659723885559159049824434767978336604010507174327241876160139375703264454641028374487998919383285418889682654220419813821851799304855485200615868866730978080052147168139499891260995622013026437064478615834763940942139564374097258027075519515710848305335742114069211163023896718369674328631738160755470885192038395896497739482610811188891606004051774510028578096063853155249932116666383558934913903399652221982819829704506783784514017612881443238299284911822825658614623349661703679944533671309720636080765976827709483603108605508004595497531702210350027163373114877991106854683613821115248368925073978491815286788974533330611732851289618915642378997784601819982242453243950524183361598484052086074307141816887880071906591522036622877761548818024619740783705178949419960802649229445995208132525500781406206346399927380318119297048972311460724599443434426652113786606088128518132091957910793492230626156187901718695401929465565960747298173894758685101696214573368865092269417537704672851578159386767209596100932297884899915130427262035333838504920686129071280651627452811333021179521196152854884295945721255775157696798765982957865059561098734095913228167739195472773348125271522504465910371756184098840595831363345405285756607546395859700681076665320299304661722573172737067706468204631527849897231262876205379894639904990030958416951187752844878479708778049284798640738599621379775227848888379165328563915932949864081019617474725675352949222615126889508984160996281577466510836166580606470979263857238861119095959517877021015315066961910893671218847244067240886433297082748028712485494051684822837732335793763190034183494733917058697246969535634020473717293419158810039306680503516727740522694028755946559619617075703770955661255563650922339310577616286075922442796133933452616953239447798133782045359948135256994737110627006820285163828180291362539823855474786346434879464694479302920130245916784950034786622378706090959621858446148427045156244585755584839417535185061862100793702324917725035247432898860129619869572835851138674787518138695410903200471957870633544426831652365347316106328349371272649276066902603755320197545773648363824815084945887216948169002534606109430043217713092113275525630955940344360817594546009099914620862331331106566067123440031818942968872499139695984337082721546734017510422898159435366800399864800162071369812301549131121057869879406855283255839706832930140812963480194478086142084471094564773645168500156303048387138572279052587750740465873120262285307538522935991466992206011667016421287517786081096352608173149765919152669841168901430231850119521538242225679329758509734554122164099950044101685112991238776654981304207129449231946931103552210788984896086935718167570302821616678631235621439303167650794545427128694283507779813798586135792750509632765984393680980248098209630317612728852081892554357555098227415110667113820536304206793868161266614600722123393610205965731234955585307507926371735687848634652907957631750277694163267990981207789282326212039469640782927436328912367456949326724946604982325184991411536159380939533574768274117210240887795515445326547425358921858639666923603940487905466132608362554367155221757373001867446721230405445967535445906073205843200063177149393390745627762061219735121848791801703233507763158734285209983173276945253941891342952012170872274497106134662431283496754004653774332114049284550630555925831898116453235318923496242733826163530199299123190004319330537562828536965334619766253682087108966209833726499797585716582194852128490612816783916813418460390632348547367867001121818830643293834484561157750435454635542019702196811225871670255706997450965475246733253371820290621807567566755518062981626407441157221973301908681953998807689328245039955262612647478490658367007505227840297531247216877528861934370789863362660474006651418959883604528786532438405751738957645933021815630739119945992351645908864797487649112123176757274979451344138364351252888150262262724935450196917520957731891882512091506368532685782382172243743483652336509193074427189629209762494130112340294047524715778747580613646502069342313403361229763944374976650166001227827528131103712206863872969246852537107664254265427753802421862474444090030077877870941659105446205751551453879316870611386781176161320315223115618958635446627634570004322950388842587899465742722442176911817675580156243500424321166479431774667173486468038725742206990901680252056761387472820281723135444131660518617804923206692867387562447681187658450702458207185503397852787139795524648326566184343558776772466455136802594725404332848744466556028757149481746632421934211889917499310255695224545293520182030107959690462315513905015742381053173101300813542977423263004942277251715193414188609020370013732220707824761715540102751667218055078576296828154898221610613054910785602653293872645440072154594327408330428426394748288366779791228339057777471351911589749344309962478459741175826949187985985611201153544739047658602151753420889167066795099193920202168669563593442909206184860259790011859991301619988170284303117409131560204315128315621394535882879780969896417578577204117890504460124862653223094151712635894221133381808026455696720050410214908521969476239282458741517956737731850525636906069080589072731000563851037472810218672988477605135889756754875543674667007365729029990836014228793154020321397357822233588535916939749032407657449134733330784083956599297669173289832262184631618398629547233077891652454827042933518300146486237480116629484688207532120960622285011209834533824597455173521309234990754466025958736057938266556465510616136626907916587719732560768280467077906192222272985839603317131053783984123047221969062663869954841788620814988342994651671657992029271908492600744100729804928808892028214326667022744192141014797879313488440200333506878287667474797397129598820500947444961144859003828319048459018470680608221163991955321738862609557636895120442245078858997521009632339360373749787195799134639213365321594801837737176218990146243560967773019081665061914797259900552375568528471379115031003089568960617981846691649464406797419970170057258888085297917774002357160240509280261909559439739148392373935504348605267920429210816012268685974546205928867498673575009612542137799432997194222324210982674082454122193271301482308487655783372755247872353949797777700103637304650497857820586193762492285766049063328632781280703145390436494526899700851754931916010759545224402202880480355704593212506098380198715473987821347288121770111953662030135745581285759689277679975904283881721703369813837821218251426097694892886248997427586433110039259237755834686100196382512843484790012190564867255293583754466624648877403832560508089951767904700490968146413546247814900038823374919558249940427352011005870434117567042995977206625524222003811192425357900416527486322620964132298770351955929776188788208155784666107395684651122124715903734682116722478879374259087189860497928948320117634513584095899747457215814631027791748775988654589897971653434041619998550720169994058102582786703477943380556969192961364797119910488595788857036541385991911300937738224771152622325188858878056358026058923218688489384595360317025608650476171928955355366427867358618846409351264272454803974579850041933305992765352205673104121513056895674072801119786278107236415734031983343820706514045201047927073011606878173981539530260557648062906440241325962742372398664055094039938539705856399520284120147267915286752704192155112779060648859987699508228435908227396599031519718672062503881131058915259593841411532830785146498186610997574679946485534506716584538755715387926677002344257952958212161228950649759131161891688470708207005816502527464489510869698466212141995951660746096738351141104259113044910074707138133177060704490611533237151243802836667707980559788011314660082372112635304448351272981904297435265441292150591057344894333509698607478968823502153136378597088528622031531776097543195111072285350876822616628183628918102315628671958562300705518631591050978666603612721591083286846111261080686343585136342150033087110595813567002169736373982344067101017904527170298410766780159864507259443453534880175368040841969106873075099630105138357021780422066900764194048241547991172420220998420759672324244634140025067041611017702425855894280209668682107839117738257224933622555620930045451520056727579844487573394038199040228212924463883135630960832542176657170917144558993545074066244294250915530779497783415564723422338165044956343741096036349686547905970601830214278633458583233211995027248578990411674204673793411396765272509984598416082229613967174379872504912019031108364395494449920280675762005226894753450091856911756115831490209653056145250602250670423317516634432606082620676622385996606563279390235612603003224588569852375880695543132887809454148692385289595755660397510934807140354409770324808711132159281365658250976500581049115705493485542213262496754421931654526369094472099213597277001182211937436763710586067117948063624436621395883950618317374922247305495437621989587116015513900446016131289879023500387829790892966383323490158614412210917502940222961492103957395448293302216670440399651159044923908861355819696636463975549129784487290062563827885021389085816824696355647798974000303181715555128513239742817976378078235470470346198818510427185668987106766063535233406613939798096458769755314363819230422389774000711634923463878049164786272645910254541359985414988778891518421016156866320166043570078603070880366616929143655960985852359092162293082748969350404962195714559795502873286341817069647906776377044656095233844541065113266058105302033375770131037885839360645712877692067959871120682712952094481126144299173408061344598023908316693797855609526620520850778847966927750716858533292256408529091658780098941591216249581108709801593472096253908815581433914175941381887104718500295992844668209244680170959707314472535209674041203497618065798242877585535969933598446301461555643356401665786569934757355677047094867072129777799769092042701154010086964269989441433446083959007602679084404210370296111761049493844584035071988210388851374568498490502523716907023092478555442103005051731791046314747505655310434237653819425770065191672108103657527196665940668493516309898197718627929632488729886845539964969660889928044205947198623915710001726282352836550748986743763022773014061908785229977021509721250961387414588374219251607295546997592105937288772204825790043656040793204047826557224220644671569718775606453398306404355547479007555029913501617858750276892843938280379714034566843164818520788583396583657411141033618328298457227083897917985786670415873054432447885356547414851436439722080239772112004121664218372755137995624508426465011651372835514391041329219968838343587626641615099952321147711299481725328857559524824339053061105664194073485935402666324748005939576644632322675454796532105745147518255230250135102498100114010855024021635668404816266970560382926772389715104422102014246230860009636231786881421486163912024085554086130479639162656009854674122216330104349258840245894691717964079274138668857229256212116496566264028254771888029246569626668780579865394161909324844609788214758097234939330012951586410600620480646401468847317299355681748015359915434791383841215418262047835291762582129486892639787557069265679584627175717928656478592829587169926979530241690106835795429082466214545717977678043323008362737202355155391303717388267829934822301617693396214123229163393060269735986798287757472403733979216007007839815742470676767613645051424395547993953996294653438784372145824039350732234424937023666870954703359472451893804514399792166355938055336245022116015667290311072037436932442568565246154937139616595979577128313000210556232002905291867245276993023968501218860155114673293078742547442989761549798811117005089557308824266930300779242346107908508652602218168474281692004378906136966074485715402766791595749865982375088472213466336501894617128832718571859417220050915174410907143812475505276893874503279065644625781376789402681777991183598094037812545085689825839218346171509299862217015023296683319157879777910326794052059683568019629574411582944777982020808136858533503928767440539392275462662243554886120191995990213095622953489818263043600613052439083443457174774086428647162154569685399520763376677646075615786983993649675715886480948625526699512771851306724329278774035366480298618725919751315522945159918544598260799704717230499135143751022153681450627278568526189487199182485177312756945249643618273400901654908762930996058342065141347750875188687563548922402257929001261200129678246518751821287426347431522749440163828414696844298273130775726585349576972386536289818262718031452275955128790009392569765391600961921366884185576896104771850599928767691718337588966079519698925187627580282367241219779799694153447333294209245576539183100247122504219837703752072592411315050171684515493767102883218713352448571610771401128150503569281419045035838182407837534280684977321112881121781569547576275179267532080458797192252185709839716352745059228832306572042126264722609937314185667591718162422959450671263647667588886223319295488900506319021156364460402189447254321509980754440830107002973852194540683257473645296376326849300834402906438074558971937434027919228421764875317232093240556680578903163679496228961959905033168782396565841541230087250591905189535824813882732407262591252174394603625875905502233095202183365727966275509850411837234748637185033342712350567532710200936428120439095785741720644532439762998894793782258915595926512899706524137743863568820598909403086493131393775659035563833648155838447941660827545136672648256375433037509441957486828256189962628316165459690385049229962948431498640504754532978988271818625816131965702927092389793613720927918717691594735852610039930665833283871432116329634883366900733695811648133169316849048416277751769116228225483841610160012881127514485471878365954951724531929081474239593627135595687801500696736940549504707833329954839212832164975841915608174456891469633545003752639278880997670580763164434812240356332986706888800151995102812144025741400094603238701939851294545641045531421780220506156427964935359384931265685647823486022832150316577985473706675895875714038725657517759227362950384658660751399897710230794657762766954810284263211983853954104469020078817853550548417864340554813214459970250308020696549924189499430437523996229416630915268078092128595301965177044224943342047654285175036465771072613434577691078536328077043325582146306079720482634710139276381262124346419497325603349643422507260453610091070959180221835001338179172386320318672249659523638475565041810614384041293708752338877331202006985919533307587566028677509939700537756367783532884905695864571241256923240868456823761099086070799562636394065120561047168906947042693033472902994513510790966956715760580678235961914836407190514244801751667201617620596669519006136617012084336461801881749160350884612709990096051642230600559972436332011065324915169908394161768426380657971925884193795742518938973872591013313860545272723365039714801772733185020908221457529870738097867193187767942604877367034987989915766681460895978785767446505958622673205502519298285794753916385008700103969024141566550504306183304072878961360283526121295778728531563928243134190309889035626274391979702890954955081504980718637368047101949325246855337224800351624068881935154098480538281709375422418245512605507896250166996212548088931567995152192909000861341359755759981958204723326395075480673678594724689755644278592713672473307598665496067535431813039232144822968680058254060695734545451755102988391723549919253221052644315153107841390409508057789169935318190766795623404002083322030938678687894324849555126550124227154772328839803597017263901802820551721487104686866120198096321892835551526830059977384945221621081549647645963712261741653113890139542780633448041351265004709797799615816121487401864108378879410306863608107352855570965330499798854189387735614912620427251633786735857793574784320574838608449292471290123516934018731019286013748867612835936697603003085744534449078206528207987573674279604368625140937107021891797201884438494376170354084045244878262345999282513018845696832784968377871318005675944569964266853004212331342596930833667577377894731895113049165782271957205860241885365948632767205032146595320705179078021665846744340128387061941705187791085720901564882192111767630428590263759626721972983432265316569123309406243229966380410797811328282801035967236308170693491972433105486346219791625069756314412792119150737462559863177934124322596523292405911997951825748755975198778751776680248591111598348487305093895541950984297274407307276790014979160551672162473351600321709734523961155817307386858312468714292854469646613996291597163933544410858185816908094808578241793933435621549831666826297507722226275279641993986210098119267416364146938477552773673532052041556745093045705478524068364058478691484465374072335229830878131279200460613086940550553542473697734552405839978768381128996326617843839104977818316114876093647578016775461837860263671978667958901603682209143320890394460621040204180002745553289526256070018435619513108993426975456035239647261615060843678574862366900265105891466075246938305348882332927366818316362311585248558373433139911891906711206263772082328459740417361393527571653911415762943694350065254678401824782461617745223440035327564164240648099505432476048375570738991361591821421159043589678895288111448064468591420609023397188922131593430394104847804352189945871839714978606327194360427209633464468571823259783380967329317425179808995195339305250082788097992184115081303853806967572881659927245893600063540265034559052346809830781525404106023244125088967442464492182071130604202458834643151069814506498846868225066789878584450459863389195708290552946026310997840922235344181294147612284348148260579444515558713687555834287681631922531844085052491849430727512092976014860223720636751050459591542583541670376270326029468906669520112119085283218658941224804843858591278254729210583159707909895899777835727285598599226160117617323984148595222351954856230802564061835792636045022653755907863052253328193376081423492021596569692075035991742100159527497825989441226225030701146689591212057208448392824967019929540849256030577014487738765426397227069010097183680684125986580483036199413438710175487729825807182424542076540131234165962767804179830563299688600535772466260242665894278809475372557729672106520755758147264367579623859508294903035326641192197125540307498629397391633933576438364661593764118472172200592418661706171576950235411445560072454537739593289588955988362318909273282660028611270998361965109844046023507748136107715948226007186651091725288680484792492319946329001519036775699104786028341015757499994398979022651582430532114627779233244826995627785368545043233066853181905773142859685667296043747733487128653152818046527432809404827895941343354312650997030933253995698866133861587347101682432325725273058491631290292140673047220732233052281013424842406882537677686621921508103618064788919680611065963062463465559012584571604546324963005764766552985362759430773280696566955016135774577677115513775880983353229717040251683715653132910291494091326994053625936568925210503893446323064658032338994184159547958282907350842882237442675111728278363826538595326354300470071494988185693076706343790225166457087305869846697234227529035494524653436637842714247981596320901551863171012447500455250861810577855425293652841422591373683213179599259410646718263364088502426159786208307122720751034980783465103751739289998112875503683190485189500282848122223055406442506111954007183002339896658109806242890113264818413375885450225961249315907904983347222423178804275346355819099460546151680208075950945266302405007940303137260553737406803815501280659792787454110928893801891836005111605331680872128132559805665896419604588558377555027077379122600461418118742883965704911972002136468078311857931578817188597993271960729309377138148180636605705853739266754028653317168266287251291972858420664558922835827653190723700674497440662474140216458219059013227865708978636417787454484736179961108340978071790781819738043998365762263119451111131289678165478751674152014156969975497873641703266764052881006536705068831145228767070628210282610249372531745565530106962595939282913164227446607604721389131140689911343822559842567309168635951219950357114700535538154124744475374397044874767758760193942576291405294336070440751311460859261229696737439872994344311777351088568077640466498527198190173829431879481230674226703495814149957182003413307111092506207020315585595885171715313034173138643219972161347276239369438234781680833880569156984607014595674359378360418654535281553232604831354586014111743785142606983748648578696168858092264165289592983932710839970934165475556905741662811266567317758916491351130812419748607475661344225379370415704487077847397776894971960981274715157310160945079350084788110336104485750768217849192576056737292005378644558732943434063899255566055926211994385606978039289380094024277412294223275381631853660723759769448852370692010105657592155767481630635409735092034750815016193011085859718429539044333566318198203206667869085379156760941691695741354319137632760614320373344678655520575014660223631011423550177381720888636590465020569496398168945275230610505857653437651993031303341777013128257470623092249375303718141263819891996280233687067045556837385734562026956750937469150639377452062060001927755006322291000713135037862699014563555629612390860499579281172448187658584117062264216327949874720439232880858756566918835987105171484517526337204417720805367300817097957356964571163553101269599700832392748038423047031828886622844691928873423706735000843125251185323599108093810701972712740798883472038964572179202114746294095566830112834018520182396683647187059487008831948034164116122256797623118598465656504474876321849257037883596680414153711524504538357962591740609084066361796781437899219936077518901428621585003061721819456540718829051637256676098313372825353307395193086769379336298988980355735216116415651701263226812599729377794805660091510953829406148538603853386888243494592328178409022547893995483302755803072848066709864499109693827043060099184480576429555561232238753297710370036082684967406757051704097628761931242790825378109695407220780827534148548845695189785173776221842273964968057498050903676450108792847256245025981391055063248394160670506873399539111791642331880170850900331715176074144113297449304795988788425617687285246749765494395797888147288197498115293281079150935342756643565131576359037734980723030092252552914457295885120426649472094031981061693170005040179338390879203653778498647918330892402176939119490978123783648356275964283585695162455082366514262585172180333549916176232483977286083556807500818364405377304006951417725699435706545136625636687720636717710428229931300818223650789030230115661647588286890264351966180930989342052583656706425978290770282930738567675314535986077548286739685650227262142649709041101633985885828422263054614036596791586167622933973952220078580682592579195439476932656452024533703051325792272433256173880099192523995122613932804488797903314108686075402326177003744229704246126596558498174387835986087801646876893298804685026688783267896914547748989871767968734740508154710340605999399385608315289056534534852486127104062660533104309919872851160907722296230812999024119919685537083141578512600742035259712472893162482256036980065455754241968074881386160057244217448906741339834830766501072109614704419936751210434309919340984542051726949343560843859837251562264281676063449384506238797670876454497595378712984507940497392405850430065169273395019329420568821893706075541025838614158579608477043651091730441120316738441455531449178453026556876560678867274097426846005697756891387599199221068187436216129442063959120026396258983846587549172248161102886755121243291775895818297274612399551509407787311883512995587152325084307596923592313155496044368748359223502308491917590058334496790092327939857902834186947426226017439767952821143208075241726032007727401245846502845649933551040415016792578679247596283713055345250848864389744727791117527343124456068925053826768126888989949355858419418210219055709445732535781058031528153676798305445698134273488620427179456944453065351859188410079076905364429557863442783460655121470388937011986888748550258740265636368172979380368512094343038889422891271196518806767531790012232360979008218578378655257460606194103558881722572166543155519580687603071493932928604143709134278550852378020950918031252866659417466646214192240565080447206094520492992639736705354123292754067338996753086197941829860107875618225911054809104404049338677777546935573858460614069471105860196000989611117791587125613957433057103237110626608884133585341762546922882132739338054293685032920606565212082231916075607992396242994816351721552277030986045847279062691678258468760122937569101957304390249538823372753640055720951131175834580037598908835017304261189551897487640129365128264841516441851864606026472870509887599088914917777376663361710506560549930875744284293162518956794172257981184896392926644473921184883370041473726802952522748951444847045637383679248292062397432759504102052247129234951839337826861789508576788493503085583612615143331174568306636637565095589490376200365937712809891098991186010537593229446095508737512336849495781273435593598628651310893555119121421732204119064621011248733218113331349790750838550335176778254589161613017368175322915780222834693043224570306448686787746136763825719784341867082066811281547031246006331709668006080603887350875289771893337929956579187862334937962618122108496073746382354037933764123210180534669016563359381580085834792771449804075671620386199432440633365146261670153926208584055132867915713804514691776376315303323000161557288378694172797312777004393913307880187597139237059798762764274011593012594737016591958522941019885533520374661527672039939852205451939537581076126818964798525399010203113736183270954621716062905822318065096637756668706247387725827882675877487707896622750874033777889049238174839546511541161821308035733812426817515847505303765822265099431444935913927735498753837156552276336106438872541845354396416698489359004890442779871352603361069513365478669832733315688130663509025439039412250970545221461727179955993261974023058684772229270032467301531017792585595366150074430965456589082707441427302060823675982001102767645314757852799948638608968366353199305141264661209895747042193096194536416432925905112871853153564569984109415907902231567848997112374578639248302115863504474842619684832161928620374083855273810495692661052310791223606238084253906843457386453394044866722174447581724717100945572301806522121509574292449689618556089090550712743763783890479553368600675395700449752184257343723825490696242735256759492794283238260599502852988525813990946465648525708334455322881691883896139758719558762237849190136041002716811955945678805251579583408361575180178800717117656512337682077666851431037299602324273907250168069234601965481815566955901678417690619348891037871622080357292672612098657396126957817457377387376557120784319099320884703700884245575822035348558893631049870584383886726045232992166815581957458329862772756683124887316474624972079528669152639779870309748559686512399353041732938107843312658178447194130162215203856455478713116550718230879131338509936105648934774171374504559449427955813964407016163579194912338801390486890689261424713836816378175455290370254348363828608710293281715568239494370917629795829706136463837699129273817734927293179254350726709319744273493349152467073103728665027386209706034457135900216324090971318882441358272461358235815969584566478799754564605090209869007076261357016377180612114376834032199535334036022760174834996260142331048392156205548247762971104174004199650597172180472054723104587879758835049350291740491172540872201305705124210435774535258596130992514141689490565852650297859645753551605720900337095914388086255094614666800118104648735436731809294858930510061615966295224221323139177503177652760286414207354036804164338000041406734624583301980091810602218056359829906377362174754162699810062746083110543143918368285923263083210673543630050081753601609663991570378848467057690498332894195314606272410758275935430081991168100418698644212837667055035548107930721280192640889078111524293723305480646227336458330225512230932630740853190084585671125976412848627680976443672899540452746625270875825009414201134340938104791965127544709504028355374383560770743940193773089971934305222518429344655738271480133529903626210817712643074846583779714090795178448229145353221739792243048716589588167547472372622000586196925005777932370204151367067658358779269632884745476103583890704697516350707630837115276042946841775563804428550086851180942254019104254532345488749651893388463526284120925836333469749874864737109092803504945571407501789225776164524973137797118500121177845667747478861431547069505170692934668377277004528257309901008656841839320164308270479593417847748469090265923368891458614914348279636804116119788500026704466300653297335838666332483726913226482149400414678889211118553629545820568685939241401019756160090641048813257201354034845570073038933872759379403402670107552988064271122799678547683655899462592660833850556669577919077735189989328461610502404377231620536901563555449816152968220546585367980905430351845800875653233152384344464560141561818709503645886812378144133932963115701064308320055013588879750852246072986001921760626417126038818048706577472184404834674386894932272353722782163308043073005685389965333912875100266845583834524082579424955476973231885903511337818918031317943284191979556555828969107518361255470560512580236870144645925778813026228170795659762239004850528402070129874454677006843974387074210373709358486738351938047971451004972804352299173652970259921530026098063697282673263042245547709159407515610514449123576145582485493323148074211654129056986725358238246931533162368380859549891724817757076833562935429689956648842056710283271428643694244032416450339043405642383145977599999692337100598056804666565518735056393522738434132537443815199611493036358213690797296572258135390839257123807512706752502058291071678736200322774999169524042109183578110906787216328921932967121620694753991704670504097080295813096342465414783505453703773200900773134590420733283617168198368992044164949148874841405937805202662348537622992801573828101154574251256378051493338761339166808348506415793047035044995511892380289617232405884716954641391804609129804618939383105753612218282530333857623073164709344844929613247850547042611014002560140141117085886997369835320433750379997958431572500798416739939867818029836557170005104585561669867328938098090302655144988530982335053147019710469699642565970797068905709662737358921667908062852669420656415723590326949579665296643601648153408930315382550422940334994733901066187619231040531453177275574492344313949851032547667722883852320882141032152281245315288324011019913569843910450689025212478802864472858432095861517989345076623805435533353961634033816238294185024344161732951554646097799661638306007982363848361050794093690736479031951484867255392661005102727006520700275112035468760621011136235046935008907120160751296653973561435717625091329963090956247208907384354538658440629769988077041500275270110333666081231495366167405295518943363817964991814896786601710128852308296187548183144685158690265159237640895741943550133435857188596624492847118600708043618998389263781154630676681910844911161210697002380846798041662440374266963692015973098847878994919950221536172260953901260334828351587248893734181587410893179520786959049398062483077847569199707581436262666774209962775381858712770184193656022084459938448076559298752556170386418952483423816340660867014155093663528759980603781882995309323295452924563967396585174510048605608648976959983259379375748959637412738938799019824314308819271426510949805048210798172574625758246340632571896990890537779174732398430137918015331745132507271925276671126827272898143915753610353988757469593026607349602437672523941467340005272970880460816926395284131551138135421407534531732505447495102891756688581254619206328966165350369008675544840089180134960012491293730965776348358287427414616338644044705803374474618683817455678704451593719554653110189889675492676260898036326301118583688324963536314453227069587792003359746615037691150177816673688945015581651247884569168452758500671405627462973862485847058327674504790374897803436159343464915938401760361839304463233326700115321985655446334808219685089816651668165416691801324644137847424628987983944726488206200867251761989011407352091631717430830845200546003905341102277983125833739904937332514968268674167522914454144371586960052621587472117856955257475577637126446902910217099466961296627143189852641179249416543394678063385826163587728001771268463811252246507789873535156498508742775420130605956679579951207502360759542897483949034936837223853356338871011602270757872509270096719206012690898915169661629538186049999667865981714002747395502367077319677032403338898531626759986661630627554048414303003023594486641315242136333495752206757924187689858380977093638984286451218315756821605903064564957932659358484752641047554538154676948451262872026566568030938150561593790797432217326148195917495753263644533314011757417797832226104244529762964842800503908534036840929793597655924729300392582916011174264605660520608362074065639208014509154039389587829579759482144723086620290366427385583607610827319758573659798234414951601591067463874977471635312336848199941104672180051406266300939259545073612813849567182516322797120702508912973609346120319861466121108855985551997425767734318537566046530933043858820761564103077063639069458458169828215287213778299067370501892990199490776442931851483739416455010625952285291672457770658293384928410650151968287285622017637176144901781351252374136189299121586600441686033525185091664054151080733827333062715079354986729826678753575532646998777411173520927656508197454909164054374832357003500244525752179887787585762660963084922352624834691472399730514005036952778534516693880332574090337263694245590013153857049535712036300389709863393838839248417208047181217070330083533352339919474864567616702229749634850930390865085322092024809444604638555778340802425993978381290915814695264055052594744143193122153804474818937992910407220374738711865023368977255784557072368344932798677555068614013116117188128261824463288194792010159469960812672436639983499730467537101717741452292071726129924160345977835748705675564051754829540013520066747484006284167997416010162481326816034191712635846408961576849712074757067816831185474328815536233001398347196885756611778473081810601664827196999342090166577078007560092446020417267001078926431562722686763899469907607117743853390546286256154388338846613687376311475716139651666550460250685308170048498544110096627928684329725715351110209412050554750145667812428132630138077562559172551247608905671426973122245726884445037541558826458285157353605611830031987949513770272053494624560910645637666397826905834669594853163798812143520023594041387409186614519018719982740306742748515631952095796509658000502807193066123784143449519882982632474865304988383081913537564916542441883557079296784475290407399898513219231666472538362530952434305249428931546544632060468755609042863429960990921877102630420489784080831390796966412338862473255838133253927868011985838691005713793512902505090708187250916422470303313687696016074528300693543326318732766787313008262540471225133450665923081192717852321570125886094122580906770517586766378201586889547452568362272992654252020641042039021718969191430809873917325746665712146690071216532447112747944105086204453532370813750105063774457006564033204832250769079917027259607370698342005161444686812894396731559411765166042163938189391281205552278426247746278237935058454321135454284788005988693962366314973098687699269578561482581225494767212865577482300814791827374531072515158446135191508353815339037250786408338344429015850067769817258756708832247591795876738406606749661157335435318970716933802405015446642629030996007907504495059413751747179084214683370576262339754036250953573680943608828801632230979202825645845845405747287755723896844309540536085251753886195529296076022683131305305284662365697273179794141158957450752442873578695190067701148000760287026579083428970696985834629762766707434203399661573383000719194219008799055360979957191396722603462003512463879445683887664781528932264803457128564863256054036964152925869585573036914706110073774630271831439144352503260802605658784654416280468997799502501891823186015620700336844949679280796479112813232938051880637563568132622218798770261904509105774188841442894094460438908473824751677897773332174005075193392210608273444876723710863671224109096826789834572428822765688134410311015285323660225999985403083025726365484802254970855416708195724640329724778305646822336445922312717070509173040520796732352452521201037926598143685657614851254893528394185927806427645008333592172503378846686257461519673491278288237194080228421081248332360890844678314338504258847108979127817242833794398071318265162508418145429836491895975460658042127502899276772806875675169365624360263828728029709755618171766856120876837873418694313009983001665877788215808883235424068968894213807814728517855303668503881614714620936642391145486677675294399683305939461162653212498699408651791350542905922230480763102292387181397009072203473666031482742952656823654467344594318645291135454229085243807177275053758920306109251215091369764982311204233960994286280591011691197446079848421368893002011759008982000652432101964876253692522556814636699709349770101419881693572280858134053854524002201107168650013447279524773802996000820350323575685820282915610048250352590740412658608428330889334131925012872740453754873938481788052764524842945349300112847252741570920020040282389013861605763058500661508863256449455739601374101208862988449883026759010252342366127007815675122713777343343712701530035270449242893709381459934221000325600449189963683902231235559296857466448754868426026559379823161112668416214012004134300975694693258974795587846922065865745196690053089182490088214561455491169412053469915024830941035414071544600745081022377694305696711654605710730910108327037268292633888475758139244641940336731819154024381768959788652524116305804117711267795667743263917393335266436474067740073734592697027670893244247506027058559538407273536235949922705465075482105052557101285161665018428180198068841149714990376401345255768437852764580905571254021616716155482161004388794186522504153938481644117681064502522432995092641917343665495847555505687797271644449252920585551189748306722512143962141100038203729404283525166698691954467861386827137061168155568439374678950597241941727280456238880330023532359641169699855209690469133867454603781493919164402432134389775619527175540903156056680602097541276458355480246417186898527644777814932806927979150343949343582447281882750473628945716315696100239252819767792292849699442691127268797971215542584683427592160677064874577027135267292768557202304936152396632676987168433051210665722104253026396675139513140433899469708735403008677366555145951479661382877708059324817247259108235830026530085572808381444012787622763824159582445673967241613392625071992145755692515017216921345136618684793785810597506096152202150610054134436373040662657113257073504011241477936898377707289429320221032301353930595964242751728380757096568653509979152816648082268690610558664377597852163602750141706717781776028424429059123436883523125711813772354241644363432893154282692473796446938603398662797687546873302090526365631701035654185188855792543840280618201261053301603030335087317875101940272048431167656242960714224244991546647037673097420145421141529495725772177299981290960467832736565418869742334855326351984718606741649584386165543233817166089491236759344839917936803683818370217181774367528813724444426727288141953618802569584180451369778531259586273882673234218299733933060167099213828939963261888500829142344578031815634463933521539865803425739998616800654996672833749497148919511690474394188113685636115123359868127436680035699045971954228883330318060347546931653940500945258158908579522711312179036664924341785680142743535768178294438190467815890533003733036521538363111750477189141810847433272609640273872211434227446146881144569160426463781256683982179433713821604225652623342131281369172841024354471792203173155582191716868830340235769536038811110623953003911018331766908007848198242895230360492161850245141176949199055010377322698108279851581523318635936221224244431089818663383956879214154331661089555909338281575794594945476680647376624856292148129221434956104264950307139374473815660114689382581790443361037575052912479805673275245147241373156122412059091498500725927334117344079249354108337334708593879677592771937621785768721762810022927059745849584542942634122071706956496217033620208038099597200658845170042211571681393856982507707464983540021118782108546816978280020780558824473125326848909576583950997847503745737645453103550863549162267870345236522695372312541993434513372801904614573929530223556711052501339821290644444497624401638337413919336485911853230952347125355203471076474597899591759649694026968853320186074929400559702968926941850557153623223560628015785884647254863766090165393026984484125495358108266367050754720437411147487806666770906434722983288661904178750237146624152440382658274461654597542444708929253079986517178624103297848134850242109134001434689033592273739108738544350787036801914556074892232576744367253131708376540453136439024576788109234508626880621875738338786657947387133590460793022970153051018801215632662263883335280975000620407955233478450757437025736639237563197193601183325487542292628736006174251935362621817028374737798556703224027038166580953183653995694852887527039941170180814641675477604551966768920499678530062569548523360712258126403573197131447295391373148638072983752354259421001883122604885076747530091495013060700443233829299408469591368858456053671029176811152659226582272482005583474692688537257795536439935307111703740454550367423237624667974197245026272301790939888836853019133748636708301089068025041117678876286103246153491206822004521271598681977999435589027489792807815449569465032104058868852591816085116050476899956062783344151051138318292284913699909749987911690435318193861847786126228228516802755418093600551581406045245470125633544612427937585772132383787269671526229570422418922218618904687604831831356099062845777679844600226357416191046326127470662824767155007022491071384620250677195662891339485554377759856705882745035412646207957055752713876806538724203116843188957618061590358555402420349730860813813505905897849874925930407966319101505877918049140820067017323721355844749312281155401742934797036448434163709592715146402207954035169697558980625404635719245873394692392649438259041532179249116563911400110250224072890422733517950383615243814438330655229521956643738198726527565209393977323518774890278076353740067942303407286600737466192200152679021421361865704926249231671770204119838979472565832498140691173295514908239293233467216486192407195230993148002671172181246450666940577496123249425347222107179097752866577818378202571745627296721442556018662000654897269996805534519780064716817238273440576310868405829610348080272021484847530675650652199500906497097121510417429001451614904463399036413597296430144492754513641562399956387992533443206876666921610033146770182319941565360536185238904554973771582628114853508078163430079439200411946859258325274424579846621631034229830532379422435298193669413130443533608142093007197319965176654507720345468231857005160009606994517401834704746783480395825646012166595529333327823851225120015256792650206214095996779486315253404967879286089815143725352531954833788422964330713578474523443163493730768437089413212901993096763952449153472446069319107651071861186961702333515500846302512381599561895137784100013827670164898200852291762614642997771773153345447568233681717943085856593670240542101418611278835416033005023527460896565541636115287978239617625879150314127272316217845084976936131988392014507292617604362412777895117738671973194764525863793087885966358749421449396004272656540754489855913948069131364113426078805683634909436439233721758297415276575074203939665861527860269088939545833352318821476814337401051278055042269779964611788123851968219568184121269900359852804213933081114648332393919972154943945786453798902543324785403053691563203780311628984933046161270106402461626670585001530026991848981451427510813614405690870232265747793390504596822984215137701831444787862253977447489457451917892882192960970309968239810218898623766653775250651940755606693420563924423620478059840090253588790511572312428133424845804382476323004429995054596528137209450683891599996198310043117120827615867550873118944018299264604611779565201432638917468593298489731685884267544624960753133051200158822678978812500143923805895509676428510681587558427629077234582491337578816281562195522991595661531278789615696837077456372538398099130927987806909493910626600468250622454990256055990422120508128252838475965266626914983379775345880484689365856064118614779245167068734326173661076906454594923677600200433755665382954968998034559141045919665978655729295672629071415585136672721820058555449220584063255086513880397295496071629163996816300304545200037024647379058042748491557910738013186368414384065279779256753789796105257279470689881250577399892012065149788159173046632491776891940551066335275402315625926601686428797649850968338855110415668006824422103960600342464195067663584417601889491902004775279075319056002093086258770639071209892393146703024801878643283309950471594723633628804209513491255235860245329605248452564355341384695867636252451909808934578320514373812938133195192672091764013477486314857127694088215265946312675668988404532965712763606191075713931116347710627042076240647704331006307160772195917215359431319193771180549410935471217150436924242305009750706430977341446086845767124021764188304147761966512418638612102972952973802058965446970930896604100601234341856136030964028521382141647883126121898651287599986893550463440021079157274684383625612187209173527164090271366164424867353537365772348226089264354170649205772184253438794892276399969696814964893125182154116992350193118194576841397453752410041747727742926237391410685106885158982162239261952887438043889889369083786346737211804074074686509449155169480094231968280762488608504498584915865379741193505628238641913170984954589608410798964005114116012654172922821848103510737204631310963301780289238711130205399338344303279687117252009224561810460560718532864155229589087982294273912595946373493107186467137243645654588643544635233643816567096996001823873039066991203450804858976180826796594250755232032408225627474056548354742653517679616412853086275978248579697598439848182659300976777210837579030626754268643800086737891111951975359011148871359111361940214818804175054638199540120596747579597212852990778304538855578476341018798578463277733534781612281108266751335163993171250205675468761130331267062891687770657348205833227396136269411623061266671532772230147272209067679381442625869445322186178355700832021060252208438523468628224750618711955433393874237846087979423982240899558634331686401384808305144267151870749065767136696993412154014835828409954697747621094233185162318498256633027589954676901203196699120259964925739997733347536111481311230195260541450342010775967672586723494879020537024396373715582683303496529895967570081982482285898157516140036923486456739005824946526929859512760920420559106463750062403102339559596687489663263199160336815546567585834578341322735379467439743601743017766617099680796275613628484843208806333273879455474393583164436687272167187369306648583327843958938062204395164467411573908413406657925760344747773968128349166252751499829233128322746841003669948506136169116592777240378440447346355690845491426515310633739482751767575595123185483716866260239061486444619627803397321416938756019425983385613837450099105283936184248133931197576893837671670771357116793724411584303285527065530730640494766930710523186192295690352198406268190466035218318981323554288294600365672550647985443742016964260129432485087635340968817548955231877680528386332465962237829063392393867493351723147820738865826573995839076781370790980880387302243285103779975229351690413507338699740423127757653201431032884708002273528397442158258698797424553605607099381216656929782139853348954235088453111868108618013360317209135502041515022333043946613493811168688837172659697054952336242198802150538744166659842378393600761118045635845366065013796964673174627150327564137706939080093620538106213118916054046612425693817575066643903791014880505145718160018105542503839426423483314582901059075260813567972700782033200045663862291517780435371018457031069347842402899903328778045123643397305670672002248545770261405048151171738046062102528990364332738091380659808594219151220253980061019060009748644702766733263294132504312953063796123320693831316900172574292467505000942931012311807652510666709888159489382056834428841685385152906286980443467906068890457176677474664147607944910774566944991996752766193634206555598028503935442911755292716569742125123604453778878045324847724285277078074524412384741769252001498996630108175985630723998489669256497997751095625223215859958774821338977221023454533146843429530523875790742063929153841652942261359521606641917531419661373523915006194880829645113876854282946862013980298063924554842147760303342090326857052175387466542519714496022054228919246615236998260298332193752394691332921841710810616710982638849847174870459046322134595469246171781660495577010464391554761214851403262003778894054603572979799454428347289868309357872800943615393967393781754889037743280295792732728570908791567294272677254989969203560394934519484900046084030733650506231610207811978957366362561293853567587771780729415566247746286335466227032370231881256839899231263933799943775132296544418128397473267681932012531454677756516508183723726006774552636619837258309559720289242667414181841543538006630453586012935418522722339795924424921755561100115807201171671992863836025667759715104822625577448214633218572426655692455806596945156824654159367014414083169259298160688059527642573215796358390114363432181419423247077082444609885124371188671728970430647147296091327005580755769107085904316700849312774651628612485081631475533883267181728141653122036673907679911488374676720271654646531907438242321178836941508890156151855980255107046882215978499618297421839962307925396708470261146112665296124453554358475000557432249311108894178734191558185407311416687337994063902419570389133442091997622595944628451062276145166126991159177578746582752539968895526700436720003635004283433974166087365580619602973410754280939507344419089556797203801628114602194977034330595065139231535892477169243859110099995430486251484580527190570620390143587241655724988505666531983354737393914101774191865342521501132043097765669602421741842492753886715817552139023940270146153959987198325228292743337141892927907405014952474740719154726923480486491553305812052639468649321730641475564704165671667227720439964192404095497678001805261314237667856056951330683372929437930493631488028283945719827832573848835293177577878033410839314085909696463927751197601641432140674677934200748757046883020702760136656247280079711143420937394326992130699578011498453495265597980066143164941103409084710948668627324384629453862198829941348132327287479968760433358806040813646204410515364892793702454775913869691397648911668952272112163976401884275251674849492372150194734881758427033923733910718273541571021471644581947889526079124797596893372557142458215952425278262410538872603210735695636795104714370639706056200184518518766744222869106161215460416799133604418417018966737719402618190949288706613153404034933839752426023645251142873726188296456200502196204102616735777083825647281544959966094261131147115868906007485596864724353601122903112468655309260215686518975236968364686824971328314977441092011897303200995752663352543433074225863272382306724436945154439726326632429500185131219483921079235785095539139487244396525446528717112364050165348048260813378518068029876921051188922504377044204103153942225743320956101783882923113444208559366589270091426288478117892815274156256040828418267743579524353955217422236282932661830312026298875010016500679391699836936320187338926175563551309993065833127050182363788868603116576876703449283194112951389150140339522177660859558540433292766380650650469464643428462345223001848515863327405010024369931521838741540931789259341583066179274267588407119386319660241350209366663850677205451156070111728940080641308543956777907179679393606988061314970419622363897947317921818121302721651597570050117528344729182709528424120400286925181159291207784581151497566376519796646015919273556288567720633957932762321756709149352553011490395535184597506366177270569954957500855961847869664233623786898699371804635161651707203395260486178884461537590118298775751608025118379258839328010686848164446031221718024033064115693000192421738926789663385805717566591592789741683938487344033662564896870263917533909298369622857534228075891691881336226602782619586365372725014132406962435159224251100519206395704226115299411629415387895607241699261381177918039783853028397896919409857104185363641923136325144463978803894248747088267528506101277980855290017854376045864345542979038854753100784453915407970278060282340544930237698019242960861658323210538350817742745346570156141674631548457105780503428509216537577809758821064271024931662459278084105799175826241382101952716766746907062630672889203875845833812842079853347403195832542808589479771692908847706835080004962396173163835047759748762457131057049661426178241538145930134415778579785210382655774400311932917519845096120269078305742382474955022361273332831341607964926109439856803279220484795962628435486956061301857307854131387838955569910118550466565989998729694801553416342700127694447271695576256188190783802825392633856505043447313047980105599054971543200947493978078188528611016518250080746936701844385886817885218026138140139224099891623541523566261224261946312847114024224051253849920983550459248978083802888298805624271670611388961116655884405505902537750024971782742139054694014229280638087177054864471604427512005313299821863681898042221450379992106727159544552217044776932136200006256952913346989226193015283666700622280107102457686428110903618344385338002637994620539150231329714133454453123938861997982299293535832904736241083993842381894301019492509510312693326615112244612719341792308468493742530670031953530894304351515137768452660179788788575623298592956037659371059841257832663874882295957253186762161726446556593029641641727781759191562187261397629432744279890777023921508596800867499407321771926305252543282283281850013562192128313099623034585035378694827266906779407684801261108345970919074361953841490263175148770411747495530625472519111144003612269572483621713436926056038527459355650831962601283796999508185382930475335251443893839204683486745649454947217843989932544400386394014362762378266177491344475405407123608106379036659556877744925715884478515431916847629622696890177491462509798302555764711132231812716111076857304803566181038717594141157785270247942269553004227562063833418571205285447167786521796008076116760283798323714040426721517253183686094547400615459241524240752470755850135184100245436130361950704780049525182355987702311311296886259849262458928297886168607504856985173110665240618637612257128837363108341943380097035326683771671623755967394610823095236776664625499194310905095809679186196091642243647681636180798027525459990211964262172157784645051674390505694475685724368267882546613187232666796583212918194103984850350653473397519125081941102231266356174492643970940451690778908985403222304908932505410811181760547485246439150690225084679471179424273205618841872866253955240443994185274123259070825522314280369441669555881060208678666097103566052205731175621143867325039852647987507510219607591474192141007652350410593713517380817651629513829744422189947231834843629333113100336056368637792698015579850507351368551093868731950988428873501537017240492568861993658706114849773048612295735841017831894882010156632937809844125334599391986453050057292237072225854552177554766312100469679242959118117759812992175845832158292458836064741837105071576881084084861022686111480898717403344452483989152234418440488650130331628349775719890545424224243489076884332887953375112478285479707145511439629585220668519630570376297703765865494676668479497593706772376300978214419519979932181333108691905408708507927775239677937489538005563358823770198425677821840694703431577744948962196501930385006642639458118401811757972153792420254242286705745596417294532284856320585322693746713524678111013431375068299107712331208450986582721484963709343592256312779863892573704191746873645174717275341337340548049578360293874362741444480935692510609734438616468503171924499946653544393796058208957585396194721458162873207505882302520340347648147533703599468355897220992128434861638278762986709692369733724249120820682679704040981901910811314159824323262426763678710884886893093259060572904148421525743274181415326529928665723748365904505159811996035085687873155064969651533051024915745229748964701702248801798128919475044208892279155851180632071288632057404632512256066799639264454846049428264139065529437583121410466851246867363579100141591977480682759796835948289224262376168224157387800622882820923774259857324363849824525662667987529751747221330891401511731463508303851988035201198354688181258215172402252105089671891482642119725410563040398035642918076162826334325278010183762537665182283177487042324476040972667735775417975504658946159904265518468922547160917693519251501096454199453622547357772339809668577894382097645244347493973280630835674429284602452298324422797329931128621026820015179216004974534716382297343219431161598595923719967111721824311694290387938717715279226322479348020061074667828342451992089186585622219585479801606388448595000411494282533429031204262993792101233377422697212724514950456526504128771083788940243207553050549098957816467279491352625129862904935976109987583540572366550533321518911935473500332102157548677133589129599609452711658846446879294714807848249831782650190603735148689293607235817799045513583373810604633367356005910703750312466680084032128124754482490947842951298546391513563203252667480876881897186575150577987394217331908090983521107924546619406136720857649209107241325068649933789942931958113873643785464877487042138305780535897161452522037926464659804031536694204975971661106290618952808506604575810230059969505354114836350060924397392439577624519800843994271666078544296547160082335651240890280106131666488319750205047839320866720584367065749993755320986948754030440888521400569335038911695641176532396544895193434665827937748312211645337662845697500932278324756644931881867349043796442066180923127360788007993415027316547041403075344275561764900945070408767567066702770355443727554610879421217607972672341055903274025669826336911220240238116855974095964652070143152148715903049219662597706852716688728748077506801545231998154211056608674140016479532291885950832185644714709304886080436863986960363825103703253094682279593901609802822336651883944352498870649348453628365210926475614994945425172010399872272173999528595364015040431537585370310102081629523777282970671364672007838915002343213940162899262852517086033907522156574498314344995012128128885079182619760497749028097392589525831051356216659781384054668171883403459176635530876113436083683634729222088758598390593221404244013982785409437693695372493937415011919432464299562162794931384525348875616301037721430272439171282727926138158407712443751654274796652538115891097503556483184759097189148532136364982200257463270781760617020027833481498988755765529561047322738712406493078015771658275715985822428555903195888219201825045517309433430894150079735073711508647627070440394378143975395026215339517634408484814579228911981901296914427497020726263350038181448729845902616098228980907094023664195541816551577011963663781962447439760451249917001951103477234995299420362967837373686998764690845503094735386844041496594906365700087465957959085222114514918868235709586070681298232815494217719185055625951916158843174574000555602681122597144292294333844420278015687932030518141586895042083806424692785635885269501958999196385034488448494040713491631443022135893979847599708238276892722191074673416747853990250698255003851555174212405849855545242462739479637286346688129885478716034330620454885608336873948106705219147369863509725086232989818585926848406603828302104340204803741802415702243451263959464305364100575876232468504977249594454529293096029755219878256907010319935951796658155729246203414766049932449508611916748358616469074773336764311893400031419791346580266306804833006712036468050360448083037964370196754500296713557383500259020871550392049223733585921130661826228660592616425708125684979104783645253221914310974935261051974566659363710169215464180267329699298480874153671037624155418047662883104922453109588343115042175670000185136262911163836531928974186235510463841182965034842283082266676452495040726115539735734367998132148170419300166687731475430782105223149219788802230044277635857658852857919472757933759980024240437173677001120120157869317357896648136420883621769528842455175479749871893083422244552910236803426895862682056245617932146017342789186809477552056522015957208791299529816160606373897115940803513280484709898772741056345078033904718939795427730198242227743810698220384165418044447507011057272711720015385264075938857283953459201280636510875729491978475155611977683829343789644022969911160155248569636553718067537447311779128165171816587534049805833268542695834189443307047214839170973244947172184592759313868488914160112081868149631525262332346263442523193864862296436507863487579040391015180453324883421377747299012689278278349769477857132608004217753354910673908752512006552649309538395039857997663364929057530120233790590662418235544423588516429470653763814237154302578145267659599168658047226238900729295428231529729176123564769676211659070499810916812728643165602699522175392372393216004811037142367911608381436237745763306973312186030574051068003028137461193344385256435835924717448986402063812703633332713024172164028624147049498404918315252438736267374759191877844756363918334638325534486926399827954206974881667202533019095400878626992330646621285795670411427399334073969052245499964975138638844932512920070869342923819066488582285678468766252827554067508363978994560946820107959256689042439614983023371121412731371278577262838013308289351617236610288881628643951181642211767586342900679932495633381544997116425983910769410849860354676018849025552318913110837266356461719434753012736248916108656934615333225997582294112674538394358137135681287345169494946196561212931278938196671034723992491671217396761148430348268158291180832762894956621956420544270591998025679513213061735920216214613158503716203392852926204799248160662770992989510049277619754672694780951072461195268999588148338807127872077069747314815747970117610001735091480458207044214137148096724862683596002251581565683470729614228073975914008238916111165474185325753114170077590298026448894244983497447205208593616068606874582474941822011447447369341000555289552495755349854736420382581003963916725903584056133857889377153900895872472009801869232832570723425834041118898314909076181269499043269045115868171458306342358987682140284897179818895620741008403514541836413927129747124919641454631604765798693101016160914424033982266765340886484022868411707973553844734145707589272453469663191806285022414242928551185414696320655108050513416545637702138610225651287860035985453512860038888765955173835868592236021860228083486933877281066230913847229977443342467983716128736031974691074440755065773920163794276641081187878563762026476159195049620642684070646115193524177539920824582593865274983374910136582728209388555397808897240692861338031258117326354160616483254194900250034403502751679170650449403181006605983713898855479224636860169629241623905760475571038228621714620167910455975767357609464375048797980364802181137900502685163737721841306529083914846977097287610048788813920627453914872951391878330840603091261224006016561629169102434076277539633758576774721441211840179945638781603758983441038339756027639640500978119424457439748179834516020223692449494101038833075583691177434644897178788362863134476457789898130475543480665896801921678727004506477058013961752438727276489948267346216863254039074496871641319465224172613700934647470822812309662289418225985829965032208267738014428103730898751680708321429489665203721032360919483335701195250244260462459691468085179996060505475272307966792719891512182923697056398740582429769972805677693577880802231227814280621454521693392572497596526205138148098742079000267752621475485225717608588504574707671186146143613553938771745809303886489083748423586901257791690044137370526126488159873960670390904150052337507819201679567319043597197136111235778663723016435691179473101417228878893894065676136392439720938695639846512138635541934583395561888521377690806256573028520529780597342432113812587078096627694732325372747389322659160030921407448722373514660412646621065507088880380583915033634322246748308518975872755212189280222927580470382176428369964063317027912992769016978565571971039586755723191758334512602313994803762810315966813331008973458764012571542603952186128299698477968663947703281089467318541642417893553930769751192138253835460580566346314672697383717188609727929341626162260885299951452320529792192801912866321537181719920001342558884138219750136224796357562076892248406731659666724738151353746252564787916360580421369326948775901319152822916568609151083494402702937350915161359249239740975382780847258198981660194933994715579227654286629601181269776929464013068103301153037170873025810891151291573721414853376135556151840550684727101074808909796167990328024833328325604524469806980596331320205230192970468933485160817859747800203006317767175175137959222682724129232752614799276272379116304152810181072894551426048225541497438366910263220230129517373816149216512802416030747843027393054759348120029388824891470367815982159046886390102600527282279179802081979045776304097299077391289867581807240898503974329993260534002345350968428866966693482079622910991568314755744035832418270861875627551071461388796968720187724680454812036739752489171579052261524519770873645173795417819850613940192824501853891015729428335456227890506090158296108646416277364324252969682828922441329752788559149979508706587772464980430139986160482990153579797947209252148064881096231936707536772468746666643104785428004914329781202692895822742721091051213502193818251850573507585556373252176002660428482560324744886887485493796348587221677863266379354105827130732448282598647499901290389732018530231915563973344700476473365410480216278386474751218042608669116211114630223948969129132761795375862736535153206341037221279502135720083105788952469962013036104692888913536871296987983107612070839193128237076038177563965965712526573081417898927609768928679553014442631464181993659511541422892215818279870386767477183321084290689564433083182939686887861284431379885705261577238240601615817698372933908632840078478141638387252373502458167419294487907435155920793032480642497821240963565351031259547205495763701942510791001387207741734519998253871155728191745279841063204058584545571694774830390809922464267160052996939125403859022691538303635919775769393090654573781759475308324564919213927898321510000074558615099655585016640134403210775916546978828904002039857988763024633191938511348370927565798051549488056920263604187988053208133112108309670957679316233446557860843886926379931470113259403100314521309631524100776338581235159598417489943124552314829647013680206167855626467676481025148740143306430588682003719806103452615348583221165799784596416359099134718035379418953310579128965523492959608836608784999605093509166595589548699818916159386438770812786745859190267870863740005487897451656606903815046438782418013509646574934308028904885158658054132078603478299600396890437201279562952369968371106356744104941431737259513681100946411335318641902303082822644457089897840787470667536573396532580196038169277217793630287269533563225745822518903148629213975089536207220743959093602760574469894146471000873000622748330781184702424776442342791109143262686068916100831298972369846879470719303143916185316421848275105005941112304455114394804030989337799847455244490349848309987796256880147093028768558747225380003807366928246428646018761127570920478436821879040371033289337119297759471026544719860736565217772947801222064306351155548686527431001635264868784492294872474479103486097255903696974401990265301884004752178668106424415802815009279200095035433653434810487613664521486767034787726873395982881709216067262964005765873852610857463289028813114012777876279369587661835791872966819186847871121746129677416006811173391116098465243897065747010296150181243718485460901584835141324021775370448200430879999885903202615702246753458780320552175431238875489595827013967855934716583124656021716466429309786295638859843994621270546886196912191397011196260114219722230607639412672252650331760732996268339263383435233330610037973326247415064012389664712620511063528992491504582665872799797116856166521474633930152235066227436859712827141825551330723236427931934653435472771854633618704742326947814618257929520881238726318295439774759349778193602551497663633116338929724802485274308395750097590039520408777401026562427153696437033827150967707876270348508290377164421561404863772081133882478262265844837370383834302357413204387250326207813103364291910491428729694199782567136102829074609679358661518679367398437222090986264292247340247952706041655801811601880051383552873519429004675422713179765710652520523899437723685564796557186424961382201894145557507140159239826172898917088155085145859014183393205785139038693876715772626850105417378506188587959830386970601478020154106714867630321286302179447054499986235535927681941235529158610715195015208982558053616280897787474697567616000710824134480599894974860912840803704588428081863288296237113446357784401420745377926696568105356044430653174047230772962664441189895626002991448067813039309872384561338177762212659332493883344151221204764700260595442135777545500700237810993567561238862631607622149396978787014680637090665923240427918675396686972642087580711190260463626783322550759165845123013145837603501056413556689687626032522947536170110516247327434295863693764262003287718811037293710228201255050865616725757683101262329162950760874065986610827837336634405155554487757464840157533166470788381985234471044695780133173762566282142378602938238593479035818673227918810869098024530020295479843483874181030446738044765488696064337070542293324445855363316179487105621899075419548443452850191427950874085993357254853466745872488515341982662698770189254790484704294086220977462640670692950371139668403447035531329255125909268993905670453522608481464979747169623450890043113633929882035087634919809954350280700240415485953890641440901901280681617708279379651203281636180285407237881881511710014083224525003535548074605957426607426889457137975306332833754040734552528787312130327137747773601068872104968554911249917267615176117607763204405395273141387015114435287201946427345015275645086755013523385906378789787936361333512572486662145193598144982144723675056809999041864845684512912069667578773238877247152672963066474990312140212582905774106911569869567089026163349555330784236216847499484490583829505565156747139227085436351478970734874141469264366144717794256423596512322803369208000237167945821772242607000270786139168472857923704455115691257027946778984654051187424567498187992526052557514587108363806307239295319974116887690799583203815973461706244691702002720545834092842582829500557527667966748970037305124556939292362006668960092437123338258674036184294529064811350108715383201835390272134467115386498016008018478823299438066422324722737050678645319367672129652252813253943808288924165298345687473724754476468794213424426312141938763442788028641030563144719816274377335540871622579688845492482405051631290772544247038305950813352819415308327953292412269248076162715019405376181962821651313213303399728355381561360492742538435749587096363064043199272769837949562686074395252647880085191076904575604095435789188827499983260533040776329343021445634075915627940207266052195079439400743421021163499011757439531131611953839028982315463832018101478799381500212660069159427446915743086856179929105977504103662149036954474564584418603000260395237396984438049101324734829480055884965320971189910357916695275685786815615672078702920721500745618045746466430450523904793662588144271523916056796384301653643740231914230399787553536380708553419068014116223566656456984679214588800508526823071568770164677503036444299509448178682152249126322481877124142255200217555867081247437136632087323102756257071662580097833008851967949855660672304225113349017886467767746339526846581974766821460036713853236904152876650183492274268636189310304162395714165681465266748903199581760904175670837121001185932199931348696617552644250700658660799780679432726667409163418661132457633636551472884188380617751430328724046806100134240248214833220554499231924733835650496449320047741587356084245752372014307820375309108591987168310366818181329529157752342523619510305456359800850956939680696462002064660757235584531179834347559970815055310099853516225198724433469508001575934243987170423610966739777430359787328052926387987237094966930990929446416524952152577074633357822332691701477436004792354752172941407975124757501883761778772460331119874083316059031390149376573510171127468732650058663266801484164178971248042698812170709624011323224465087530827809770263898939970049218928484691935730067479452643871546783645041432567555554935005706370849911581736162498870228314043903989803144399755174781825968938364572809926730059720896502067320646612854433664126218282867013301952589348636991438633500787325330909686185645407871406596769252484547834632619736069941719304785641934186667952500566328263114620622279289855101529099644864513419723198415279319044972480394966006767500276552928369336036528173603025089857830288367732212910325506092690915049385468382093233348717490478434242249273529723077028147812856992390619295257231583844461155887695334191519197144168290543936885611247440110562665034273774594589245403605721181328084194740530312493691289510725463194889607541086254316439294437931932471002814870466623659218976470788055241168869655088881039921364316014986553727066771579438394924543873395716382348756083618887086022207591937007546698980813328649321214189251185402227012798432360592633989163997257051353059202316605948104004200362146360959461041366875272563867815131387921971328621110471241651127136417442823392254182214711465113789667925161810448482886925231851010672033792