6738739416576172053563780654006738136646650922289371238144016380987620710050289069300880806935250267624607146655191273237082946961607515769063990091547149230152685858927866785628022113296545699071226171768251476239918380714953296064984706495862862683692478751656528480882046917492119930197955628195936575617402700254079456696086586396149765695961982061189179576678300851174778016585187159673603210953952421356909960522603739328659842677636143105721207970740662684772869409336581605719452700718333354053239871323247682669910364217740378966193674467693557591568537486727046218560183694837614683531818944304975172783811170266012652690246541447142686700182549056560563462866950651044949965719644524166173059111955505426677427678644634567169837913751981015780630968802971959245367030922823635417338650471978955993681092656784177616761653317396047142518152646770585053536644878225744530148460152930435696141232611940100468528430986863762840681453910552067940516292203915147980588558763604046741714904632336803566795376756264843374192650205058839596106713381831700249020064245750986475913404635284048071232833756801000055581557790635783424417536951161333200731114074459637354738459227908447178191770535354928816805103470645904797261372222641016944860170201055442874546641732460257141217105094919100627966167663317794037341616080149409786364007840856602135299687057311620820958586134071397654869660363466704246463633762727751126858178480916622325052644755884665582287909977810216564225639538968734473293899517186934275639171954953586065256987388065636951599669090925276731439400744267330873067322657257105172713365636666905810496993726163540863691670617272725419900933642449485057567598572033341021657344079664715477366784524034681035636368742449776303215582702624266762127636027482705990744464121371689986306586126977021347690683561496665287242166717362891660571324359181807621843255628653816151768113431445875153433206082978962952037127128312869558149772468480045786894217742638232186517079396356134973049585258972312845325215467610360657316462218982093897137243619716972978471503871566608942238631395986674958657636399883302638868625360769949466756475051722287817370194749251214957607657871810861742184785393963857740371417369721517485225124017516021703970482220186336759307707568657268522181136568256556655723681769261320407393330764746842807972266695047266020483724106220267303429792102837279672108436274543901957099859843738914139464505668606554355740722204122363546314606898976676685708871367876779995986388291716705405967357981307357442482201203337965753790435152434402719819906659087133657067822287643375654364658089427059151965635564839573546152436912156553613308395534200337717626352946830344734635773386568442800285201266178691924538371153547816976754597685557438066537143256887002239708486453717617437725467647305698973963761227543607015978760553108818059596935377342704671581710283768561091656308516070714547453665827255576143910255572355534173985736656543600754685444269155784662416516533993617349656270166334391858539827693664839565972362281642079301650311831766222364851843860047642804601369380881505699863406709363501457998900106710686767560996117468910584866618129573549623154569968665092044750160669113115612238826675664894168664759349371847812936786946045742849633771947471845357530703728325765857651817256262096462621605378371805754785501317316630334755969609230157154499626663808750019120404936121199239507047688564804447477075679410691896691060494791635947105412175411124665255613837314005245690085168568273155567336230444738692596720182587306518365966679825440852502169666447701488705612350953003920487462246528718502759770887963746811396628653289368674285775556813245309626256992760070090246275768263685999370472521974446317632226686596425174552108616557677858103003097870838888576332274994529150854971966509235681734786663803125260871981816804900084622157665367006074575972130663601486546459618369706257857228650805108774683382964947323685387008700191585698267401236471276669282680337937674588055945735496340607258655374320353576770890393695445475170513298147126371452528513717267525887917129759637615647551611017052356031975439196916454712217841745910022383700482297969311400676155563472611096559659058221117419590352724236429562565923725824772068132236329766301389195977922584656577907917059987137302961826720252819773372754897178073357682763445862993726877294651628619054964768628887591035595076611784798966503913566555188169663729064467328974757485218927706896182762732081202063857873647349029365666340151054759529634563472454464255545221810774742247389215497654938921588292146576337510899977859913562467210681067684591118872450181922006627498688094342273224227031106183262536607416073414424486796085459717000702763406312377395419065704216408274560806436334520961630347734572067063636633604362566121549074996407096995018485675400760474905124975722866775161897879919701321455033293827578302477119820276907241853868679459820070368176326035070283674762606414528750826834357428549049091170755435476315868284205992739473252248501317375179650087603510632965926151797894202714182874839764147358523014675909008069670097995766115061668078075218657338916147618099623440550758120555936169228490523697007461187471822128818900612539756760321790645714071206681180704567796481656886867839699283213168953763566238357021801277596608097696471529480576996236797153097548011988300551666103381204986227267223184787059920776704898502369096774385846375024736903314110432051726662226381716510456119606324316306289079716034492773268705116869395341560652267063057218656646290559711819950119857743721081060904589311078747340643969991552387136777830699082586367781018231610799020613639159255676223606007425887703108234861789362116538414880654106522775752693868910561486324274345712892488166664700047154574187599539310369477690425995019132704772372967743624976410952958555070635155275003416411720468745228546960984440387219369940625267001964966969611395400347150238082663893609970585194787482807605634982453816623949251318140316192312284668295339312218029265380471826357330618647235407661558178725486742757639420609253141796247019642727579812852065028906347081037618681254152764186152996265464685829935915682014348674251862946898628508696788326969152264891295553926129071389075113344161854875767051985205577717459861242010106962639081614294977267858509921471055748690683530471364717161900106437640227598256552619266133116637713165778773181795071838735146588915432073958423491827634087643986605074797220205796506962122777366667853516096563063994746030132268619193857027763122707814211273371576406799352934688689381370761468375917729857158785496071700302016763652130667966982269752668036437512349690019570766401321656859532626653739305656548808256754241612653066027669201818517309372954633426616865882776595961638531187785336970214912396678047918737524049370260991765794160825716407930464413219655018778617699814893358473490256326490933687822166868992778516471015812793428295536077461460130306537476168399738118113172577240536633932541683719128246429143065450160196145417750611875781157813036611652719019534660015669347091855025148669579482433064574279236846860952667589867073046841266418438644679988171817524661364691988631245376650505046006769889293904389057087046853089665018375164714054801131602100602189243264351431336808826792656702816721469714436902392850690858527767255288216298100355550307623269025354416302215793710648571872739766267479391810707053807870000151947467579703675524825973809983306798382791653732670364467983156118874245698365989471043164876220935784126479224870395449925993890997713624250818128631076115921121687890666865228621656759563010637060915160003638201134099710630967483717656118867209439072205751529363069746767424721769708025351865852060986300774540643544267472978201076344448907610324704557339890877261643136643291425063252765676999505416580002449314498678436252054347522054100867234683426241505789699512824671845142306394673902717996943074011420096947516477501339575169497727096996196377672957810769948104556429730467720974459311597855986018190693715842787863178108016834861059706205574472289821506013353258645884912553394141386800039798683090276267315789557121341724697772666667766544856789644068715719902454447906397416928724646529881770844102876315637963612390309271848322855522576279742781723668770719886813638262668926390663280367756761213433692001455358758413281409413454716588332664605681516904728317690944554051937836786824163225623548852569139147276545958360197246880967818291625586988072654794594071419879576819917369592025742773697766506968040659572982856431650947171827156097478858081738826401064424021185876592908374681850624136257850375381705960478949618083776072101477636743407060130127646127474893667626683457214262277744378254661856420401756436962669957098363670218735475891022220879826873505180723328937863977708396961096526542044095665806229167438307532513333757861410869655311266495666690279770641478841951924314706912219861179826587906738447291511177203817261450908316876393693389676622700572895010387312353447502196241070710707876201918114592938247571435534006192174887693881540866935990495909133991634283498670911987366407413955604605848759868511406815917820730212262456756001485418970268790874109698637362624466249860544981796493005489672871080192057368426879808862846636156339521571624879868417189571666855992472572223687817506660886950940200637305439665401671307471042304600685536054203346865584731936168108149638220010765132552696947173778694597934257443657227029415068643284786650983850266963663608653591687757369119506726139066543744446867207376546531067329642511326263748549455866107486746461110260762035341799472193127634978565479648331271888019747660045956177014426850892377643032402991493843646286496054317409083763074511219584825539206965649862833867681129096486898476736056434468790428087010379626719123062763126902046839117827642538801271376276126854943319599560694167679615016756427260631661998668031385007495026843719421739871873167163788699717230869488695019448773001335346127280025627095890560465670136372320187603914953968674874636872019827673425749563139260845928584572749230871869903878675473028067653069495660624765036476536904677323314368787252717338543956706110257069487450827127050538935026389577020455663998879355347432252601171271068588640426186902897542618848164938407375386079676590402861555567355907051462139561353301665498141875870084128734834261468764918926290251593585950233613843686945126018307656528412170219534546205229689704827914967095756236654992175649228312568069512036471378927678354200867774691819981227556024885036354206281174335185456583409166671462293701401489258786266404627770866657729075679017160229196679153868272685483190659663691578561631547861467546523655838944970758244616519663590628453891463286323341328074352119387432569263070745577739496705172612169278536375368264529647472255171005693321601095617646748339056070080641753003344666216618462091845055386785879582252986063063444886469907295719160030420283113785951258273634954944567912556097184055983538474698370804088596077466745130600993567746984467271037907121515730666612867575515134281808115854596620059173222015655612185774665223053074326000657364245725152841145771336116516685149101645768671761967584756882108286601247796353864123585719607351610039949471725176185628555177714413649274960476376196275125502827341663350220797455925441633888598565810785497455846652506140114362760383405540008749586062308155052943446222736416535224412768546735865945392326699224532166919229596047659685658589657659915065176025146311559247943472318416801682397244599715650972481545516022967805708301954863768605556332746994636406116671494796565482957902644838070756986606066267149091611348607966964117036152911355630629752570851453415855841310733792543754289602456342718308708843042444885892672584494932463574037209635240636288660470393031956233389172730473690073928428156475329396714565334714013896207285253736649506326868605260426496213358568529660465159286287331339644639234774068348771015124450711123562875503325558266083812637207284541703351388550524386086629163962642453903660563862106945572019629804254367724495855966574670700815576571223620315807664194702644857361659379246941745397582727583710877399377112926621733889420169317906286377876954726256307265606191785480078949210527698756279207795017466391908369324665587162266249341966188833403947317784734976007799698803955224770860655876866694237718693928855419932715376286934350739887791262757293947079130821698469157864131635757025146666723807890667828203336747804167600944154171549737311902914672709642245613142346567019262541577803263966587314096635154399695192206065185983177486893046676012116267341561451367353777190252819509351323770803486797085639219547793079112245049073766720557172472105701338678766017442181915356456668810843923791555974775406395998922582664398249258907622577333608382605677289172166160025099637413695519635462597138696244827834636363863059923445466845282937626304384471404167186332818032695859022763585272757036770526601703280760496807116923967096679717544566786078465619731678737431285458370175465188067978640049046267519164136306462528574267175459215048666949623848559698869670041097601873953970747427153563217678361831959970611241811617892285717366571230665424047463119348797376373317615148215370160621286254779652631843791613768684762024388671743506249705958280962503712067095262845718222173693368030212179505256989914309736935671361167612681868590407745247538274416684695774023402671817424269367185756562014854728963328858635981566480289759701050347263855413225901304282666016324163385303791714653621501847289164223816397063810208708097080956659767866111532141641936838662710256982202055456949396252589441080953939477111298771883692767023070231461846738203260683648341570217120185014835104729115872250282580935914506254660896474910827413556289175875715575037872926270466144424636177737737265923884786227630830523920715121161000376023210033666024063156192073346791305096696526797263574689686419956826694764268571491154505923779465178077820367089071586529237710689862662865474667586584896526645701110318357377605807582839508183425752883015596854999865654812453570649226136365178727738370552066483456966706792794746164024857002013756894838837163137046868048457817943391407076589242582351076274925949046213696852591224412273297401806833889387175988963773764881406884882460712491312956837208071401362296187929381860721764197108580036657785308061216455756355924567039727351576299354071382242631459329010688079175070495300997378346003716217536270535014095571038118557233110971978514637328519220707801946070557419965097518602641277680568657379266144409974669836250757136503157337408028656580444764257789346796544171677711895567920501767213413162747624390872749287856522962331594535108273032607497195689390694404021971423398996289769898593534488765559183961779284257723780850572384418156539847278675927999668135422026749609647659486480761766024845955799566661278685674315377335813436218673597037160853138237293147081612944117461838091376204280678724693750554720808346889849237654959063067150488151712205393600708247154068856596781644744830872342589323668160490361017426014113745814162461760181062981778675974854757662278906750687372865830579905526424472059858057937110358494643407038957041567996720266940572505772668964921517105022806714152803861309882797045232261621569688573878389046472196360744919500573419939626740049626704184975365960667606940993469546505823070250462967230288008568200446169783299335203846347636462003874739592315461129365692429351370896025196429513666399550823683866501668000919686696652658553585537950381656846552339498670217762471348855946733807946710068986073603812427202318276181251019468538754946159667703706281336374645346997428029905667848608773572385247300155164133032416274497180037456098137171959037869362645216761398984570577223468032831906315139765144718015272336062216136524070587196537571803851115091788405647606247068044226957194345248668395377063567579016909454922714306546567778901446410275003715056629859693888036209419213719809056271025610618229933827162872404714458033558673963231703646228685977312560840585786867524471540260489934825875220039043656860086803718105506265832756047459239458712432766368047149445558173346714989339472315685542141424834749232124632937060870321324365612604017673858491863832549721234615001697915575889484997070076776555767924619645415985873100934625697862974681245616664884810767156397629700992486253739018606695962474645426136620503427347123790860692568402011339789371244898342591076268455713283256440459160121044224869564275576124223814660302027460757860535736073201565157664763555158877093900842667971321863904964117055146781615210593868624051896837040912650924936569231499316700870262633541622665913893786547400393553777747767215497707264572803725923439115436790465731002811539788518868522440056820866574680832749557527902805810827516581375103969828045467220252162608380616364112369511843320991671101221092463724473065619706873213405540813259863476510671575719327133842039371945055106720182727600268733710049896297190539766501652918666184760156248060918711863118259741051416993913043668648678168507791706404319482707259209265434453696409201391748988328550116982506671251636736036429962618120335539857614603566191872359320866650691825626737085260135298506780964460675032020073417108556481753433658897896911789656871200505676689093920709642659373983509436995029511632965966973789968096976340033653613560991437407056823229906661560783694758490355546298066870945552669829785250416805196736150349670203841570492342897158256108627103182569919866827479872893692121486765055584086545605066168030484262295792946776028682670932167353720273865902074500708978059469648751546293159665699081983363838520132074128329628086210312624991365410173909586750503171237489886658026504618541545767493150446579939590638535713216083012857102088427109864861969764874291089770385743489317727851313565323377585980895331729134702966181857457162098131600390846450058947048198626107120199666682095266065349236277434286194715651364011272080366974606157152435246625892539365178471596363034461615127502560547557166635161200706901910664095061115375141831570246589268963265427297033310552607665267099430245812472924590650584658905066776799267685549970656167367348345475907005656425123773797187827417948011148169075561725598286558165607694246111093029694544193582966265094506301758895697369351159428139757296095562196108280454866297565332887735644855913665395872377246654080534329441664658528345161927665071319342201147009965193599966756990642703100829174243861776604662649635347124363394555226990320953693381183468167543966500449207661809204073008112117072388751732182588271089038559020239606962050091603584382965617845256878155027646241156018182351653280421445951882585667205713868624705316408330038654029963762857759312016509533676412789214350134885119403329677752478612031987958252198856745316322112048986061512450506371845930210282823731361266356526118395197693101683178132660269812305124658532716366738362313859207069335538533928078860944167916992663405588197761661326024877210061715707445437361295462456726691910507514559270034956776259896142509034816466762085706253908865587290273767798242012130701417690734661865216646356278288163629047210368122238485488666817687761693470088874846410368582107922497958257703796804687950656804196166298729501538531314719070166862475848906413082350196562841370242046436811178567657343297471824541826883719083192509114465598357292052766280647591107470594992337470864654161743189168559442486819066568650600133659667872826687905701631604464021000938365739201031509066972766633998457213068196681566297469876505156597095804694628574662844114315415685719683759231951294488866454556632660756522773008506746980999623518841421768047174046379331001600428854163801272385863797124619594075468198581327114632779745216085323816353618803369358314031867114264676716096740566174104336761666178129809798058291323337096050360744636087665831211875695077521627859724768212196226606650725637460773157665141066710302395589309179467554402685568173854714866383953947757946894493342647806667166866218246499700688590233358970925886905866713713194008710870452583011895213532725677160153755942417259260321703934670466912169574292837145824774874589056975013071862666929081249697639879519323460116116785253690795765215506287716214108692554911375068974124326102471196689596196264102410826532958729669352431465851439796502991337691184331170513391616670315416718311318552045139466444925325683091150570340960471908726636884172562669118919568844094416170008155533320449463156713956494792610630634530215186775733858283987406883676661332069661165358207259160840605514832057447499137109648766656486399971434197686277831878657001902970271214935806430967943584213200222337051808452376665306369585309965858947028627158967815662365398319765889616621037567586410751021200598902087508309540613870563493307527333560277711608148063304141926613917134699338338655464700885576338803744165740668112193777193267334637868460150764667577180887434579602439267472520795668591331708155540963837728236939847044128202359563869831826819186199603456742854239506176234112248603458369755887190706202458100697958915767145804116939146914663261731950239462356644288630183508791764299944886572565539603365683813242347046228009102699794147867504288611896926685695643293558586349375778191898692009723167252368021537069557665734434415238048706405939881564383828613673681126045814950721492377766985523671627779845647698560773335652826904005333728479241152026785851897699782734546429761538742535643365235737842745160761328636360254460513212736166869204602014681567696688849170280723756706588002603807668655670630146990485252723977233558473248927096245034733086056859590890826477511552675551636170660637056250642720619477225063924628287088320831519423225373278572436551281237649494843274262486387088764979682044330474435108006980475251664658614362220475116835370077705059425859191167585978751185729461317464584147331767339176704141215866897922586769458026666151683064735741846674262901670038692462987308327157429247640247472666241707846370931979675617677270604391255709186802714730314964477763896148165753697137122661798615315881705949642156107374063236406807400885723890515774185318086917297884667713078367961092892093205556373668207216894299678569004155053050315329393382710836231457064454385123546991732171318568625205866492302744501326056766375037086797125308745739388390034112065949067426025862052171816884410465497106496803029187150902166913434026363426540710049455269689196725345785188674567875457916395945304603186548057619753263768256659172225696095012765626638677097952406625205907170021277847456309242652131391773790967085788519139699980641219067160336346645633655783247669480201026639006181649079305613637610737329296284711829853067857568376803575608686899032867675835716200572704732068005561677419576746661592708417563269982543416926842439665289363862999901047367885715635402949262715620585309496997648333149061702370846249258899509325134960931559487269977925723052842465712743927491683326352500714661110484864244399975791501556641004356863574249177102380541742241898572854200697329484612744158721553377995331708391841511506369971951231967040948568522730709372895735976456311706547837417571354205986831976815701846507461293027316901428717504987909364010381676870528601583003191862828579357010807245722964396365756742356857023290700132199069137906256192567295714081945712137804363727570696963741007745025173816267156216879255520732850067059550642236754439926689080591364537763526436059030696294665359067561156066998813621773648568723930541113349174590008447661871692096183637463664974277710573770859804920626693325743628609110064748350874485036907422568964644142499468823471726139793985701198980654825457091432094585702900758368992281326196093252637294674170093532116555468978620694884168818138947185626142749220578759596057615316555851468069744692990085012537945076333878153667845656867172054563489360496951729741626969135767651214576293421163600382514766966719747088128705550127236268116329956528433607585344660169169003936851603263709011672361983256696751489415739644761142249092165441778246812176070697874336468510944945806579017741935256759698422126819342224179695548416597816075184878577729401249632028387550413564416514141691583150960255860374906989571610705122039560442584545568975097554703814058801930741491138090714787502568532986557105173783161629766760589949407098289851569036969672450029845911800010597436558450543158585036763687696759715754944904826479738534675998254169700894936650432092607340773762601692006707888531639634760970505856235035698566593141923866022867566090933359593241931113805808867214350104705329303969604044836459733508741713727062686750736626894015583840833572498565867095215486707283721365629099726864890116543372206065059915701578163852122528217771197664146235186812950989383549796099170298365966814899228608111384970321972445604354761154724253666434096567042317799698420472673088139296328667048723258571271900345787464326001174644348558241209216141703618693209790164299876306638434035648632573457344393716798069401703162614760855409026828887026727967322560022276666560270646695088380270561201146377153845567600700568233394607279325084603735861162234931146102146587514490976059895244436794063230698261896566785833346524081568512032839058752105971939995849677387640665234001037166580086580680780757200989075841218025579977933753470050055867933532602114192418277161336504714328666305654158121830736394792861187394242215098127727156254643638318478363501161147042459594184638319074968661795805069520630541449463137036076842586578720044200963700271921185070082616014359265321064305179893981693230894067616956085589759144701011020656665967036566129801507163921864583184536853061563693150658646293441372664016976544372034346886889578918907374130881266666492380715028964618362317676743979735656323590868209901827479463319725230625353979458506474008614695244276562370208916213753599511303652767954980455504381174697166208062651691625447558558544555036553194479643689175995113968906505059489769079879256357449217666437752770878348926812036355702424405468633894326496720572639965015259705051707305654305653525196558246596686023916238686343196851101796637234712923672713168937753894667799701767269658954579109443160723511007344497105700461987269665144767187927611199485692766516893066554537432682650484469679356076790880370702391921164890949975065725560117323708367699671977239859434620974520971471363786798667172554380215272029860975431742907693420077266904763081407418157169751219640360909772361638756804770262679877331761795054796956846827604172378072537525377322451608545832235066703556446452943370636876267256194598656916199422575528666568930240905686985358202437930453567125916131563521643412373867605870196505869111676506711869465967237359787200734545854760135356475821342891740071706511481526579248152446947313952609109195962820789006770580168647298509272536903206592268588719380942469189858384016399186186515532731026129660240801187204000809574028066510327045126779609081620732323250058466867459580301631670584660469995806592433499703853896165143823845595854107161796877471511726556491068184688111365573101318975634689263745116704961536899265951176338147793348973982211286941787485624974998466002564676605156014562451532857607735146862656288692745141164551429565063993283500705620466960220326517506121955080915713911229059931552786795755040699340887056644712275009993817568462129216475738256813657567703751151863709789814586453096662629277626434277265445416727095932803723810126271558736256041993525641044141363986894267306242297634647581574454217816582667766693650857071865140057366808165136716742765982988987389530719536840412662490821707088927269146988769354331438366781551217465103996583329478263316800476768328268721385159860679112936650737396673298585264612793266101276841164976863954758609065927585325708939544161630155795864388985688637930671320255247408152504712152339759478208156932534776552224355966337166676512166765616754805572744017856853652062709924331870858967577004847080651138152757102457691001511258577857605973683587466799252917644723970572162884607195885760692143830767548341576767073169646372784664905602557005271079707067148014212145897204984821696129948163301360875697257017694344402650449917927294881730707355261364902879936301138107732543599570457976545882071114728085769570916947776744010171653784073474415874216611529189639289190467397183796833576759586522504874033348396028353221671582504967526841027135116352574987881673041343176202148338673692488151294683936461580202618534171859445664455618382020681363636465402706185507355674678620701158764731636667217532682035444574651065336995310437595885360365246611115994152834712048450570316056696729460771735222957068516513116804611585558981174866011629261836977531587125857561121727525562401976595157932457157727979450591186676467775670269955772953997565381334057645212790970457849455983199648681603044366048249806950539663671530574656248220325996706312650818847861639141496550826858662818007472028927726646752992579312652668760526026480843871678684442067227057196368962543668027560869898507566464295149695835147770454988317097175257622127606791590631269797173566881041675693770128666133607786131343955665819260420537834476395674438566078297974195518966344482469641114034870104664186912338384647125030868791241247488471109679615296164956944676586249475716833328670492563026742276251695338848253956137317173751982734178202470254582726753022071518885346052654625107317640585799035766655269502869337436776448672869674453019265291898566559377477585054797019997325746083523733569819743857040005957134666876703716569567454917897250538074654148203170527549106619768066611894764367516749877358381564679369265365039205417197039975677248129753060501555034711538685941665172070836856377232317642809914269863089695223209253703160423166283505095911822260718878418467909178675699615036732842107473546879926726267961546530213313825907706633430803207236755067488804926365897275147481004762278398565971977420646719379168577850347127511168706593416561523501035007449277690266227969555489331782160770100513850963984057371958188348679937274460670512976627068100747356229361994816505677245642729464731066179524727107927246580281134966045709136320944291652558061270758534407361252586704097442068363747126874545100614840877560431138576568237094689168968119129770276719214137546226617569714913385871259058689380350055978888116619803877655503228353193154696720425469129782803471319769997426495364642998729570508943037046034380719072973471750744645691100020723536197467253382526124164342745412319068596655826838473880703873118760333422906674275885675451053865052463286645507868537817181660172036486978639389672574790461515719787115097096696910791669967616926692426109734413220463259389527237527003749628539464833366806776218257580405561410056395846399847572143427472959434525245491918740698388370699536268913310908717185675960718901357758700200125616886145683870571872393471906650157022625815658820699246906696904604204938381350044473987017863347741093036962249323316594352037647422827869161432366163143914629241328068780290247129156956547468206753717972277189499032718091783867892807086255986929696917049121160615701740831699569948718568839693606006531513749709077165076843595462662757725259880950426271235866289702642355115965008567632045379383504588931863411659287120418012693420438650783243896567976253523386316812890017387436554347654653312369194886016668364158565493655959230164946932241217652285350354601822865134572577744041352857485389015863032179691270057165856656067271833536187431925574797231651364408331640560256873551738785188162456583494663774706002208255791583087432887283555726627625647667309519236378853473163389230164324659056779468017580563680967118071557054581262727831954952534151187179859556645906699771827012956563345455668485680963416414955818647910606924948765651400405282253826191949076973577555235516597180570325006068118043906051095882585996856060014288656419909736689797870370951369306625037012626256250659648042385150078306717085034366405716217099932262711226049467578246736927160866676905228610353725945717477615880020124562862953374565931245940119066581521614317526791777191972235604361860179524671864492137291090830460161850512471461170977331982826718399377259634536166191009739687915178467226885427027009369659957244559895603886954586176697564937562009651886240813061658283939067911464421111829835622458415963069110897288019500723173678962599407126054644459715685208269938165987274632275174505618174211425396462390842134141299669317106246960504444544092752619214663875158568403526819099862376846086217291094744324040471472361196589960269724722026255570383471758210434666903124560116621126782698700673602858754634774097402122105735782464273104470045208795642729022350073553424687047962830131210720721417681366685527302558772842171123369716187613097690004347668080023107016898767595195519154520414845056513609148986614960429050657020578136702542894958970378757372148195664886073771523426416366318037561487380518908951955727981514696818020465107961085867770633667426564664092084427053139678721455074819579448976757511894535715072313341498396724925849705639335460767755411350914431719121016671001677995897189839625595565255834965801693994204645555217567563828147393916530213821520769906640676554589993738097168215777244216660427817508866344058129409635703041840674920293974448453386010212871668405189521457280376573293776147957796717108972356312398145637861840757443563936455755775697253804257941998046525250747622498467512327289181421193041666524784272781313866682669123748666377561081109095082623694630285363274574470952429130876298126843626003676659127916478514512847393760040686899335244252034565765592606050640260692271734959552834621662990684635758215269013659895689982812671294009771438005397281607826641220551362450049106645681229132835829667862691107495348665742759979814587918061962591907656267064857094052407044921095619021293068239222078411372277432147878700936301470259148126501355587729345375169975583327000205564624367713574577597081141954411573628658170949158496703588948122334060269227082415400391511687348088463145758602095981359672766600765381941986006436072628036060613831817925542987593627342381867725939709709237301953992103696779768955887161626500170557148230344558165693765006576736171487940683618450718415177486501168051351094359629144786120220971756141095807634712250218263717472035297218461605754214618143266537113259992713757147862199551985304858252515847218401766014271319205191872674324617526382874792172282484644323493537608008171536556716558566581716116966369622130206362962336602750966753359708996761611630685385095869944601197329593753671514268270667435996306441548592031861010636591774684277297477911560631491412751010219595956007354629999125420458684306016113388600610368755148668406603145511589025724664503223166856663369158921924355234195651383978618582229966654764995157284493180424215568233127116850066975743690827469716065166865852254669844771410630901436315560403634149199854187529322147078796676533685574667500225479744529688746373160314617406206718986670678462569025031496724940985127749545450158552797453416109547409368938266902574713511695863015472173814680964074097706756261659648830376253428611322072167808192276596364155149796726187568615411318274634615976401529244701839372220637673145325691641589095102167329454676364461737277608934625594579768613654126845413899703798088870716938037186850210675425913374316737546616213840608569841370505740395449370704656952197058425482406507270766715490921271111391261646495315706774810158517770617183936433716212355471636965817447734177512004145770527897587391690430176306872465700626915726751955689940337468592364196661918505722765590640138994117534621616614210957601248970072640433997068853503737240413354885616106289642494686356625659393361796026605901671287846174027382036580766453647942837864645325126030072349637131831421181294526319587421513869697970930422457030553643597347416763880918726447740428652830289397423647257040511356950973573596611604060054319456450193990624081625668029869138347777736465370419605163164460228601456787490558677887803469644900296594534558707829787459617659636469351503709765544269053608036891102597650984799069248972547052570030605101955269666968656850643405124348743871414510115650911943595232113688236084467350573107488871668678042472916133753085574530708677868620872489680927462657261695246145463847274027288318086638030447118629264586982580470541932946071439812567215992549344727359660353995274063748976610860573744560584058361339386952984634636752071163655222285392372470671026357065904034836671015460956143421607773631964515000365829114354660154087568892733811004957014127129918555926166926554257214729249778270696227636064442391726713645662540043536616745714504233993862564051805653690564565228022555975086906928285403200143981769725505167144532547647032253363855269826848206643580643274966703302636178985589669162978065509794885604978690145961934165341796845970461086734165180974896678836298521767647244647970159386386460581556556984265467653008246778875714713891273649205346972007186085903043313642858783163088865621140529595224041435622136875154903362317204825067705432651360944271547409194861707760807513343240467072501180610609363673816409926669515598578391668267403479566839187712688607704361099164016459635697673619525464044800336531841763701631765972298262547167259982734985048857439496397223297078674804407873256031305969263467715066552517465610466409095301600055909569791985006996167054667822993916922470577420044352729218333967094179456521986268734606883066983402276281217746733269996365930907616649890618691529704166798539716788163477126310125870226155816313246912692071830473783417316314674188612555815650365124807029357067105585322774192958926806162108744082675869613964407084535455643614337417212785372002215751497448529725699508872557284145308029325701658595769950814356795111145504976918957907089415971083494567865283462147505817109607267564928764562756881027380675999571066965456756316026530462125677363192868338780396501770929694808746761436385315895978036717556019871102288525860808866585466024215988179776961774137738345665766572820945833560075176988025011688130706772666488294494189285035447669752084861222147855352403572535742420474845255676880601734576154054174762011146801519515934688966734823611816138764657582444056940442156028496341726070000558297241461382658287539675728871333908346741663097663925903861546899231995546335595142640165284950527321297128503256439869881115356854732838564090780363357422976878358084739672492673342971696851808720153077202719992912665266448657417171666642248431956945595616146687904676300378971358078517154771812729768008666410399896676687265695223411770087449536525203786633664713065464516916818362801620123635767382919725554512165570429150667636572847444854146690243069770625214526577730452665831747468041021187027666582532202291669662300566035171204616077634774163120487364088676627568915064541827476347250765605551356952437147251986097984715292824512973028806084168055730260788663043951096120936224683242283673476819726811575261633840583651115988937479713723692517727567133538305426574882637691154267904772247075843860622302559419873864617183300227613452530868583987015402824974689069103870882861276880152420576855710269318398606452828506691842256320915308856503828532704093395052261067051220635870698246225671094670222006110100701008955916493111875384383137672750770720957854395190022659608019615659125633387158050385680926162373464715646157947484668994984670980448995483963586250049514644677264868035754126621107502696760189266283458441411147676947096965747652938410713962995203336803161650759856590747846612479644698488378954850721496756150286699673311655515173357360651167686351824686238592065539303117033943194616086548264423150987262013396695116031170077980406872704748652610985862096641465821864088509524973664613899756455930695712411924574135109806486301032749668020462543626441810951466137193377859772681696938095895614697460062607075361135840946566530097771996472631814563902723318958662288984487175599066734540475359219462785161045717637628823563535382136524947515679046431856398284226051978525675079450671931077301592917688672598506568095616482008052132584963307671838982516737554877184700191531368778059082106117235767976547748418650494968656861735079629039704164363413416649350049646567152164055564854307798666516939242916958763588544752157767700215997918410716932640762617365027020765108707212692470741778075341701263674856037070862678947400255488651941578661032050305534803042594308102969935558036861481146717362138168323035906682275701713901659411465754917267833874709752132759700214136474009707172643030369575541927381105391615472892474544747816402983431647729897198170484863697087687453286778669686264754507168366893752313658149913514922703206264295249505004486962032246807491549265653431291920136917407366182758746749725469061429195547404987324623893595800647074979905196422801703614520287962418633756941017960704939028064530009526926701206683501322562658185656441529955582697584471256967616550015662667463202564199224506643341342536141232562495155486264055516590122034762806058077119246119609283558120367732175763662491690828942450611577477063774402565789439058924216636777796539684550384716457887366193153758624188930465793928686583087117579792058820120995567405041936478709157697202340664813821876601528990732173529971498618906954045583736778908560825659247352643079807858698749783270074113644426968995642670044151723933629962743667358514989865962718270103361241468528504546611142278704466014566576682526968631202631635740572213108866928704881685943608458596434331957066680164152532747959936513245869419502720891715816212502395910917589583216895968464685514132672653488167122144071561990107366113860245690966862681124578570091152256610462258145786526261465986657337065451739553556568423362847166492146536643672151044366821260282302657123945659571879396203927392608312048074796854816745782247661657037063543932345896208343696453501112419744256808636513635850392910790549437014357199115189111611912431315830036469664599036120464109066901356656661644450674945748236712906178709084300552144745956840439146719563259460861238401061099418614105620360632989806673347738719570563474208529316043811692591926732566687063006947141970612297531070715757011480949279715189988958471005746773387638665820468070569919067374857026615518935068181089806184216753735886073065816120296365746770799055654683478081360012207927016737403590117362058426832152675327236133221997644876538259482477936294634391599828059920023109801259383506324235185729749317270304172166362642782611000581457535744256230830540630680016761907566149930516796351979293705613975613743456316485731011691141276038251528971121203166696313335686979412195353494664758188865872718646588137276683653814872596175155926580119654816383866373931511790047437553731511855514205718618787576518568057695246951962549090746739823435690750731954373131585887182756659118976648523338930264232671264421349202121696246486789715556846897251919465337125731028835835668930222161454702597229957816509955708511073728297265765216211759764871012835845521444281642360658670943739281818115269676739315967691112745717478366195961268314544421046547528939623487601270082370861125369025891701267580223199263930582016584091564274454896436632959601046493660137272907039822495724004363012082101376634174390515555928057684050235807899592573872338163425682856844480172666465635374022889361593183113699751721058888835735920330865318725656653249588743228396473126153397087318600718894121367592542157002437137594131878061619845146793592928434842805690594351368316877756526423531684069296787856950969811222337263562513723338261260105165846464833480584254232962865618566602443444123336190473868473577101852318709307020356465446657263189242694535656554881960067184495259199829720857717602721031678596850693354561386584465667736856198322526987349385749105979867521747306937997831608010387971974428605317963557744399091272650938637114012299730683564472791756446810571845644864866669793984926911836921707221800163995051016208298343640725019858378182247104195391508917658773796553117386707960668032906459047729067126970167664831247164928499976402523560659670805773373915057007084854687304014468644299996950300569650995617262401635126872570905692231362571255494776439553830678662253063473734866619376483706228382671248013147216472019588100986957159034471112196700678629518767374905455803529283210299379312818573315173369606206807532572201511746740222933657214916372765086885694369719689417283465183824369237724339365064785070118060611945896361770893487056266283607347028073335208146671388737630014883069459876805910876795581552848267053215401448499055624765813172977434916693416786738725959364207254776487843612508522326063127108087359077124211599804070571366246980150960645056576867408513161875513389656227217171630641016623907447121628673458742913405411813026683915039963395375336632670238582297408971727150607444493753637400052216134148875714896314123694918052890576351308668983513187549964660640516847504750688177924657691028225805723201667656679619426440715722933976677813402060317806886998359445716629497270247796026585543859699551064472128715427221707747696517251171698522366309396135614350399371390605986493435576629873919067165053686393746292590771823765747917896676235393647366282171366436937295094041655181468570564997246411801971641908338266139715936582859739634732323863283688716470293368517263763052207157897318939735684185218964722043276667847853659528978062533206936787257656685776290766371168636910203309621678074666042731577161424541207452486067146583945388265077672066608172930512386368607019707678159822655468463163278467348280559673972189666557301277309569265179838844053537508141863412998686088417268206832226604229136662005081374299916956329866606695784237769343038577318215142598586794270202602141920609654709384755996969246559343774276600868249535447676670075232287378805995532897700859375249835975800117584961679962167964906901122972704288499650301323365832486030637128822665911159395009349405689918334874085259996038210227436903440697051545566924869056949343037547104855567645918001841170255709741673862852612845859612077844848771733424729269533498126987202795191578363052302496715013494205667106358370087432567197975517701129480690613164261335858637195046082720258191271892398911727149595697518566961526305337033272401161183037772881397881048843088745878077371977716887141693755596815042562125633816432636084712297949118691414916095616811577903346863155769096905502730637663912958943562971609641795604647657860625409846374602081206661371869183990406431062431530086037964363638436367764564732528177770202527476141549389176184753470435751967110236690167889261665260870676861659904664634202867199063765262802022627151223455186949126855671861128570683750468057901789085332164430386071570216817369556848668621626057732288996841985962604457924255349432986877385801569461898360407399881900825414645492154354973278235859507069684521231589629055165739262016131541193621100912771103720666200733152204816897864462754716351130958705858193956940067736342514595653484693950565562681214855926730179999974514939765853009242633109540063505482447116605973694812777359677261046585030666180448642071893158445678611186630099532867814805677060983178737541888251698265266464261750653493783866733165097490779753732905525569827122447019801530520211924212760050316855832936740348313767456523137155228825575143676868054051216056489315637643788267158593811332764590679301656971739491756736038060747355123414591694821912230871739537707119357338556515220680587134474974532416155830806606670082339264982285085818688665636403222918808957687013570887739197065385178068863641748327291632493715726567869184655305738160719584874479871794677297282781747615405657969936360881404252204706870797955372437366501843038609045119753134446679833663757166829699647180561628502154019564218820977155656888383320168341411769879562647137062456122614228473651226936596413095686467257863987878556377903429627727268272605285296476646362630588295274616077116742441943523210035718645775016536796402635562866065074106751121777067154848006176974664054087075586881591612619866284266323689275828797944104619071772379121501760565505523922464165726239771038168610724170198270770979037053117787698876542564572655221910255854739300415472441629577265172292723773036550821573857412783728543108385673854240536716380280599942536865613850295285970959652177090465857954715658019652646403415270081815187300583814710768430564777372046229208341678721438871448623537283132930578233507770137644736470190952662442052058696999717351113405564881394665912050486412414298673396117070704915401308419178651881131559725087366181133979615264661571980827482017178839738745809665762384391551574813161339191374621522051325220386391335850647387309365296957746377314992169807636969216042326138149867162601012460106946326600936827721070999567033703186250474935609692328772432051297153533355665175803971934864915407644906478117420728316838073628884276846141879108578252640004436062137082776630138751109321394313404387186895944200514281212059149761685428946777617968243569690156881954529450660866976152227146746632788058698355184672640120717081143546687560384966799436605171659148620759772570516088605729374648681782727271357649776806834050643812552973570626847212322203715688769419788368246972099345718884018470782580886857100901668114733270604050326341790216720605045110736838871766557319593605281672083689527452949920599003819451712969806044405316517812521176896331555847139687213225807678594739774719920216766660903696175649072009938185675300526605476280162997574397329834924709654462262866676786730984309710650087074910731676160946193738553982667379045825833155154704728912370159333856949210618675377842963802862976945879091598993567769112361266686720981690794813371756327916827398011719826309971922217866811084167648432785563105153906661750377666687932672316967121775092993600454627552936027435251939764651100969412096634918625419570951997307391987461704713225769210417616841329262635836796055054321301949566317706612871754826589647267880325705213887714843915795261306735635983222966026188806877923347716638747756470803716820633798726233091258354871668693047397300674102633788373867211803756369739339685315085553572062391070464665945899663212397785471406211036371436025553147373369913623346519780127555518354059553648916485905142555518788474067258331648441614601501113868991919261878250449669961412164475332386813712434698263158066878601441681989918701516878472502007276980913612655916274570475960545039905551649629693811254221606494523843667146472761438418495662908544707018588170193427766520548739585811564265969433586654125472726366354819067068416896958288560534534411622073017328525585740145077673165429675561331363593895313015266070662361605397188617897553102448957653353515415483146581640034072805765436421329395113089998568606693505447866731663765277960886770706311799024709039665660763241376163524545689711051566053556927055146297746969862218643701677201599564675226166871925315886667584768173618809474211704866316979139684027452671883001576537443795581724944469112126646519983829637466339955727224216400624178705586518361352339026962195026580325341564540338137426300654749829479271910978886449204770634187183658142816915151669799732825078764808159137102948783880538266435459362710759113972960022037363910537715905591217909316055765418219123621292361175729017103438630553678539257583722776983768390624124127264599344368037309606731138762696724514734094413667161505086549091576576989391270382948985969497200673765400558973239196280849028113310410985502190668174819085114584389581036782769377040132051011785104854746072517841457214963163714206101020084398346212896308643308408473847477894416869066500481912425692037700976392559770797485573978150671482364374719936856499435361178633894870693538187196170053646219461373288066715675526162623850915664388923336286659873595355729062160700596261393774522541281810383389971918677059677229543119376365375741329800692983855666456106817310120751104876543163259216657365639272726318783967007282056992093933566169875069409199055712951768618506537652999518835211594457152890964687845438762444427416236409596592946681918727414936205243253728466412513141817942031296765845144201403055346610230246166165254712003290771699382954868397483835645103207625559539173812575846999856300718109008972406199406302678816647599672454771360017226759014653863431667162940125304573528721693445462530609946083621180479114313585689827064039526967025427343618750471566401748606307885307715812582764392029526350378824727321221565898748755236371763623884136370222918906719090386341145786611476753356120089336933518808654871885464885778976389345240746265633673631740105503568524686372425774067747465872611006639504300850450777382009893425547668304064114580217211032776745679599952871332446881714005701227011566301251325648450467700704761663216908955515119042738901614715625761955660137340105229567564125667335516089407041483669711566186059930102465446423425667507185864202337186325687281703224938867500840816949629155650384949068332709746330613597717496260113150396586370159798678800209058744412237493062162677785556673291848907056879511619090158912174124672107983615407078728671432700761671315457412483185741931321667558339316695470669716279724972034554616512505637605722645766851227095961266836739877628159528151753712533967292437962710253672572681399529551886206841690670581900065873971729576867860448647527421060819818726913654464200337039354400793555897579836154679643508066700367160476696539464095581387208960215056286673962996615998686961724809096852779183547871938354711872556490547242705367904671833872276814342128688182039759960784495923491815671735421867576285686866951936691620336150659376546371804966698496583773832661051636176740745148831869913181345838501208622789364767202797785973258587683453138774054829316342737280635993154356079344585723106753578079037572305923836884407724685414850167481649441563376306732200200161043462377494680565584406474161940234375011065110725780648519656892556977083814611020328870852842166701640198712050611967533389436829383602738394158674127846316850607877669287709767279418195905151224613623995265191513025708337429632724138374117463607465340359661435806672647154976930821773713413844973587789106994157412647093575364087248946639488603617415192664638337751548452636729577362072658786246735665004606224656560543151267244503456622178422574184503566003702002587055302766311056535870692699619298397771325541401948470990696552918272680119146056500836170667754071668386537495973647635225693964917484317156788571651913864111277827945445598242697613086465828612487006068964684465811555935788066002594365690700562469570290616515336598615196093164115573947063859020652938055473102876066539481924136821468432752930662499009367451745225704097544962033732405461231841688100400156631577327023790034628618366817084404716019316194590448393768380197305828859470679658585756643084256567030279639627282652691139077065086586690599205591047972468836102497277343752671439837365679261357208293607593489773670071457346788218913607470686071821225356373739020582107992467057734325595659962606757623173999830765112397455590565978674955130527441537173127103765674951571626932151267587529244585704677068694026421884257867371983281686488993264218065516980974678658068038320499378556922588720639995107370511622736358619429620644828664286135605265540951939292748646005473070011362131650275041718522047371648169145778168755710690549453948911736155398394550216372260631145486253029609671178866468020844376846268084643733790267977462665215846443611291030465193086456519043478205197357869197006355929129703597908078593954567766203199675906512198117404440730625721271009716616774809854714468264564836980901631701111211032506619360670765898856516916135842743657502263407900996374448492636291996959764592177076748013702348108472790316326720195569719644401664884829136874132797748793041113265281016793047980741093760214016658006637357947684967665267739986061076225315089100996722516344664451456161956954193730239250121138338007294255715715553557969772440811439806423668697140272367806461314070141709330916969921526187022058126708281966270359577532017089219745142680571661372477400361243194314832268589956307154968403580483102266985359826780878300746391985358238467857188714996550884171274924522291740093189195968217608501593261692795996664422108107783754068418784437063810053563756744464437028147273564632742886911770495501886874837174693363597365905443687491213054685545758166732061626479010372679624970970825540717266925904693848283259816712306388210422698578813271520215296349361945604880676265764456636212596126732133920764928840016008320199732123659554309513358387657616779220555728138914464923114447413541036717871855673233480806804244079675440719270607850535548018732725493325573894443667074836274565772665466049899756658356352731376785769828600106363509889630490173564318624075766844100648022270752060547316043508080639905866052823449166215493761597824729463338087725348182185619886539762085724695164196969613061241664061667296419180662576075481662523799535528192377633019933260737906446531884436648809244056616714846265953208652291585167037131956490167552613376989864228467406114343879570845215764705009505043876270573890406859595848906293460707500089703565904987326005716513516184580152912026955844056351520308774457512462545993774811623859531259685520225045580027577824670557221511446218470675531539434452416248866123484465573641194556245290265133264284525254145452699646546368874195629189278857516717045252172191521469836265964755985869183517596898682963867580706547296795642478073920496218845728482058604850706256752249796157910710650546086955033143725840559761617417444162832626605620162613668530550463128659536621628466647240091761892838276329581589616790420256912902526086792451594672237652456117456544219807637957991654855153046009523952572183197156466571815117071983634979156756522715516030378597565533866161698193945767789491609547072450787471365443760058589663491159019581605217868999693593846869659486505648717554547519697663737268205750701784741564582510832983416543212817640100193670100998538956982131034980540639560345364789461217145457632517915319171146229425442031710526818895870262923745469009918553000368464117464441789488550195573986574356843746743734900581904460472690278926422509326627776759463709012017064453247657469216067296549616831285413646598905470073313841994721973686035866469370686717117428448695042358374483339487060556966743700254874276954607307204735727112408573674084497433160481708011939736593441262678828201635323327561361536414458196141684488265985187156526512603718217052061358630067138118402744355052456736942556989420847582586903666878746936333386937677701474863993615006724889948718210901567889453816607780892665663035464293618806440451705690381879467264858405645670554594564345972560155986566530321664169985572084412236863491833602575644863377809945959604308637370164614160323621383171510571910200573505753721786527829662788625771542226306752613673716035836973329355852061954172734235013619714995618231123457126372257659590720665746170656904520356064077355566713466369249853027396591149728984829368220827816986908699742161816160736151976624083592662817662256688279376563269799618259304973409504786938718677706054452751473887775944416854644366290273885865795451958752744395955667155501457219333101528033283770224818116368299081706607295755276512736661874979626411798468733404256098256855252173487127201773917927559816953359461748342238067322220326996094882643375906250952242236970135428739128650871584952219806352346501974305585715441667149957716368693726728437833370608834507032670044414854651610285752964432597295447077198644928088471998458376962097983659279419162240765517309351171533440172216082253557418164993660494313366406889077434544224675936438471448058146188200620673615482066432170917154304462580999068469499447766737733451688794589866539687427295094309699633508966844398436569940797658633665553401640842110758851107169864629250363614991425277398950378644772566866991618956727622886646589306574242651687377215461589529311871687980116091753644706271679770380132137082766850717220314558538012105897687112192311281863483193797085482249757401902702908509167352875486861534633677443135752853170817065177525649567832464392075651236780155593298324365440916325840144406617072284258729506745771823672582470011856548115215154229002619074765265546927086468409599591031123360035610146266443045500938737159616165906197112193648939776453889409966112199333605799040363906235496086461796607795122160781338565945187961667596689562050001816721127311600357145763900625806173707791633735761558926524205653693991648120277960909398545917473245641971391459090826105806830136612043770864073927605876303247632945140371578353585003732074566616031158497243867167162101575830829660174363616412450617615401515960216028846585302500633257788865030516545169141273614869113062256503506120813471601342931554577050425125181577523344318562179784536141981368532424020565379020776192509379623127349163152545142122572028663042893861200857596316351861620550724061102997075539475730628993706862929202095240073421633849226361226677316085806407589485023971621479146258101354629666215264593814182090268045654889201090361040915591230257482416822657993530062573797336547427713625425654961425229315446441757600191383468398916605776042947595253901463008787866058983532656726274171612212502062847396519596314662335039945496685990623135014957819286286431707969616292041559386746015771297285612059684156896606785242314675602880197957336419876541222459520606563953916969606138687245593514127860040834565290829960599378843857388086845973607656172723246558295534271985472341732185820458954134457426429648112078557662228889097066857953152402248669133039125448096078730339410318150570051722077887165077488571923453469300029916475594724613406096915620010545463882363737137027868669711225758379241664698490663323408116076497960749978028709628042764391436726673698171606025054166373007537311346780646030685671427700326659715423690691080970029430746369189003710468073571850839348550567356742605456202680941704713696163387918056603681529611909055363991495436397776182637727167677623488868800960995882720017649575273864457442446512046793675697127264372716866800139174714022240674474385491009470428689970156271598489342131724251705577011710638807064681241397596641047407814405717671625666185013961359369045713180493661149804781149467068825755681707873998820626751062250743906889595128310285968692853272262613040796718520021745397257972015284776805156446135113636263252936516670039068735359125565368255217242337825186370919770376527901029330678689911206610347698870801018556641313870531702744768552501785821223963184549640161074683356691813684669029646664160908186925356887677334359574762328656477885104602444705573525451146330591241632484217179326106167621571711959901658692707909872688436411114589887740125789765239514012056046446662953398267848130296656687224719125921366306736927439439090651567870966402280426514255276542779283493537055713138690811737143526356296439656993466663913116401249441241924859233178481178250622152707025170744560260130872134139145415889926701995073465828245925788751067201072646311134759156703750936706498004858498345461815287933639820307561585550947059634944635284317374269934426800190170627922861869210937756569430891641565905174934688849686268557346385245684835224765713868167250933788633485880158121929347442477734705564115351705066926930251409673171627374259236327251046332523849902372213732106633452556740626473470400969785682576793727661857369912126646572384535606832508660105064962773464066119593702680202332071762371706763461571748291883573229747936975637026214053927771674232697178359177569533299468516569231977581682727903394566470992319651734156304814573686062448367876268086886493611720729104973000540716567862383208292927353441790568148429646392212268467170921902570920544021951164803591276025246144737218424268924039907447219296710886789571455302706760099311731824576564723322747076462268630507471471249835185966602136699101081074489440975801088175714313110771854037606922010073719990248969638175656243162457679402088674576347297185348394656501226769383536226290085706701560866461695305216694418876655333815766576145737087292733744873680769101099136899713656582297507349661071568763092756379160689504709781074000706616520817597702294030868403618636659330051721104777463667858496910416744704270941464561477676117721904628216285959962055327390538222624497856073609770355426517253639572079050600103617156007170615112401351906713086548135616519357499171891569879529310865807227738688970355058367965696192599435608020685371735947107496682708699133313220111361897230445507646911323861920864905878954283589591472867164863746497284310708855727470869239985570788259666754174368824730955535624342647132448264552681877280042440510609043666846072597325513800707761322762153383337064177813744086912762613242317055666683727537985371131382097232056476645100767771697002547337131505690883651754890494361880795956592695633929206566966517384988632557360529989667541442572482191426609090744392372768372180166719581917564867241273168079907091020163513453462571889242866810795897544853500562419013455363334477692855190961867408186586949964717962016862995007626745120830712941386069938686166267490345656581390071133568896839729968587448404458545855667289402217710710256855152517075287175902689744056269031403846091653726735031700469712059436602372925186186723971784212177204558135675034498671041632587105922037580402085218399071397363376877648109376162154788407152034017703727947570826150321179806108688075641656553922946513677176719537199272057432517095811967572551143463442775316296604407542429442654620065942442918872540769731109310377704745668870084690176373954070957260562736128874954705613966796711078593317972372487046365287474265631028838355098349176706770657711150539374589961951036167666734092816235493720668754431936788761892661069874058838728137346647611735153522164122430156889406548651447534859614917635325436464702801245872423838575013186126535900836728831801463993264387124213214705852888633449722868007257205884654199736729677482408603721449944201846457015196768788071118575336851338847654658005568340189560403824316774448493663014720571559497987748282676770424159682238845661858223646844791270736940422872215402456782863169663349672669779659378727275196534738696728053473873579883887022511368716964822771278942385965610448647353844561745050445334253767564157136969065539595389566896673594694971354221466903292533723032890469065936171766859127571845624364154955421659968340414638481433871478689872612753899157276078219516743716979392648932668988856116907329546710231150952284381856759220031703122045164440129559448747226390347118108011609061349917686412631992722138124766657523627200356102744668457770046137575984022855744871500417080468327019158383742373886818475793577062851126698492057732631285968209228777105999604733983774265561583317239336143698154664762511229151319709999542722228321787282267019266007093917258670424943065563121266334765257664949429263110274296433486347638760291158788233506973168478670483677856253595745873767685533279167272981418076436726644729600270270633283707270018303185936482972635702267088677011718907224473654470735635661650637387900554327162306712803296946562324144445668710535046663467161736716953574653097970469619783877351674964735496749371945303449433108776618133083739085329763744818866365070058742276529773400646827459596492657632552063414967447379617172509104284464235028596483830067683919717966054288816659074903679965354163361488661107826086542585800569669472175961203774616684385174363141436725319902606105160867994200966233410490747593807866069339987331651812653728360269458370916152641929576596044270260099627461913766653716642266275237206726160844703217666171622802667075388201683349593856177327215613157730641688249767044270595574206700595704566953500104306192749618640150221269343682696950530192687257369674885458487434069645732766589672270120327039991724103920776373589631671305088172113600756467051257688137324166662462386143865807734588489862874965497318550124673590685111892710505036327377690883649971612448616642170006710254542555422194681128621558703993773767573994437748606075971277739186377850566676542886864591412636324270167144287346720049685688026431218033817427471192477626638921966125739305494502730609648975774233163956684095860636095110011214983907153606341105030480569846579796713244927569779668458423316565106186476185294167314253547972064340454593386109965504837337285538392104786206368984306646264737815745170474267649423697064571180719363640060966595606962418781913209147313854142190717901560189123231583615582828313470763476877290228951677857283558371790827337458063537951816961554390406052096858601689274259162850946351401123674552034660997034941198970781664807180158002572976812958115725173288018137893636910490878641670552860363964926737128088678192646974747394086777246555738358211861385500497440505123649509934156923933095850755311714241379666598478645343955617123025195260796823756895181530592538783757059438386195232495508491065574479878357291302093670010027651274632795885633161748071542765592612585979639059697545794962287266747093901187720653802567355933977028007717691080687158509019386504399066551791121774840978266578452680596070687571618762975278448216742035916269660076456963763340415942661740636859264749973206819143291644378553066639634497016745133633256881270231573956607269613669492954163691501436465485766680076711670302710336002862025640508717861178036376650554100510305856669614656955273105358653432107059884233315372798485708255512171343019617150806709639434088066760010886859654788190753639856705265991337996268685921236486966840693002953021166672455522990464616141034168285665666133137151103633369657318243597053267511731392666358073882877029057666713653860271455568672319487446454235902659498001172814870116969436019667541456061965740376700067050654607332174798580966901160030690963544558084486846827661081562936776763732396095901873690710311239964142359127477792049609874911718048939997416667693732516115660690829596108625238741990123665377790565241955904576553002491757880412787029156990877502823014252741765675966421929396361212500714631250470899217027397906048705636767566682207407469293613175871326454168423646798561722682323647474776330656611144559728518344172322019335656520982646287119161287005797288211377654752192169856495062096372752748787400656425619141095275773695088253667055316696868742757572931115957875661556221046078700855716969723440026541582633721159963263412941587010369331657584999652962065615925424768635340913650550750326617964084652315197462571067376800695588716048876564157384156052805674703206475467871243491971129875658621577264691354516866528271702481997250544073716573442974735473478813423648696316471215651650272058680940326565034354688433459973866269226973062680545891514618464170269577150986929395056648754399673050653391044655766588471877616581766766366291486424086906672491474652706576636494794694604104004362846798667094121995522899247350541306207321999176648529449870785987536625917784176010738282173776164171750115969573503511573697419373059715380469358709421491767035955146800962312713903160163135732145913286633556665808868549442566341188582693648136164369257125355040358649162102070534663216678604121514184444613322935536368575562670809926072899430646573800407678801775572702251866425314102710059083358217615846134743296662545737769325729796472490504564452191770342749266251094352741487477864125823896719030912630775876671628420747066431928707655656857949392366064858418140021850465312297635995668666642776921962782327447222021998730935890063945084246311810615696344711167596348641732400132615704898973750209596921486262538109612573125950046906162912590194678771727141837308949839539437790695638935617194330631681860489704506528669653701036493502124193604610968763958456883107308609567693671953045796481808559605167905570502629437495316940669810039470266324326812680633543300547260451790795892356498662092661462374090849581984271498912766585731211667617278413441542357154881742707510157946855409973441379366682398171713565764263110665956230111822674908086212961270251964215030823208421705684820116577869867141143422635855359457615251496814684002649670824561600943226856319088650307827570974900936974077156739893394259945765895477720171687517902666548619597405454536602911383870073479796885214453688707064360290734365819248596720040284065926555847420222251647509543365779807986846955258640018192954596991176182249539127656675618056009965367614355724704857464870080146993326960729671638962426199766834256863649396988965725641145571606897721148963967587703837044197262726809179869725253857135850536679785612465202150161967427879641909941167824699366728767234746944432065357139527166017225695940393473748593336023814536630501233372029635626388521478658933366771388893687265692642689118904868995499356719251270595044277561381774357050606763604966678258527089397048263112561341782450542371726694820993677665859071331457216456803824747904211866922613966493738411889213646746821494463664647168940864956370861366718409176967081706456099732060134357910739544053071735042895095971863110908886658211488976210739063621883984572760227001341756268677737153564287562041848442071715860520867581935721444601852591099714769667801661451983188708219748269361989386942303329585262744359085949877210537106557280041163426227746088126478592472126773015711116728636561145309650653196833106803621285743830892865710775377281219041684918987650306501147312988620702940191462198825776857852725617071963570949301896739022875617457289974027006137400865787745769710052818063306812020293671145238670393551916638507668701084193367770893976988229490638997380760802888116534456141692205826370538508246789476955635064207968803413006425816800721569264865722224517078852003624155937774553494916478386787621523334863648668851006099864691450467366296108576865117151538751812667179751455891148162606209920965231574746765337835612664096971705752495830134708584302255174127330865592371707745812271161140412236489651157664524318372198295007296911361637547480968504697406047395940715531573719915615586800475792688923214653727559177475746083717906413363859405647315333219706977623364119031146128354399722941887911327706067130002363509530857468817769507110402423687526893960267787616622539069650393145564918271887311550809115209335915847498486396884266681001252766265188075720881546674922180260000874156070082307613536593854842883047442584105722377824761238674606522019879701833404559853413956389294558732666874212396059163313380427117334688602040944859501528137366670316654707321661778147486411729316644559932769478143986519492071706938540869474810336168045080608651452273279456736807499793734044366364942006391921945215689684291272089449466564724879636335944867980059996218741795633468660869332764836869884117716751647456746201192081597251592901295770869468107294237903739299601772183525137004825156597479309058585711296698762714724476409358567520392329190895646599501602541736859191987047385009255669672774669643337676582779730647521453064487940886442551071107973517269127241136383195004607705114068993100107430479748646412307072364279361416948382694416078964445935527146031553549330957917756481536951829202665345533766745123675686550300726674853050831268687049312460597277433162942001386878231278642770652461678537427319712012729896516964375703027041100653588472224459085966576276950412712167662554419140616958864731662562185770966964437499420422146753928973776011797318466169680962576170635693215994223790580319237174393355666538986108112774517173453780597487138310601687435264772991775908120116745342833617501186371521963176716998963614193493673136063876621732660656897953570121378216616651400677228936762756749427426407457719792619371458888835801552314601988138452513441686113971847504472909870961470976950839954711704567165127914796951101775607095827658912706927274435489587066100572896503537011370621110570004753019354436978328232181529812371896830506879291605657959070559970419096857766423786154244625858660764784129326973358970620866757765738436746266481177650442608618715397096827757478720887075373343624426260271400665873198156711962237223889468588738268918996636996358181798692504168572330477365966162971519809659265229730745124728504554581820459206260806871638292670343017367014310217292348236713999447525786472065767607987434978705651109973064473088755942974571638954021471550578881691419136612638122860340325007038175871112399570967094860786320712565113137908858740661837068770971704226071871233932766908772855640398414371878052396119837918718842666170680932646553316431684215007158712500907376605175631540080971431485967419785934729552062210384945066383127451970373535168312982457335941857082218841684780871467018476026655069822690079384865452569446713482914620624209869508152667388709899688625033573967598756930766493745976814315712574126571032564548218175061798843095281459785144042085373188630367279670085736539985373376777945845473952594916317363363419876845995740706946100467146485607401370955709983611972747087427232908375665948811250090618996503833154691569915962906912630600839567584331351885689866840083930619752503955281514807246067702723307296369808414797422922791551593145563294847346460900525580232588255911490896589603400585563671370425692616750052251640761414167495947895271734781654396433470356107506890806177652254794715269098181130991200663305399366952108006282571098545723711174538299415785538095744828614366753367097367190148142653067696986745274242418426489905022641857944166580383495977919688640893975862929300755407806735595160019963372905765702196763567001722256348059846832166254691473938362472395326529894885723509796568342575597202950205701550527172975728837476602773567064292864071429246519185663666715625055143543116960627320160531029355347599037037144711594636814321144773876944882410687694926168317185766501541077719082603863439001956831569231695300698359366081566490923329635725201668473780396435070670661207709868430072856578415723673879413965527341576974256999727954768264452333336953060244673986338367312228766675925137712586751467060945277094717844668449471770701580737121378538643549348870631454626368593688634106996911875895895860835160954272859834373718650661920253395199786704249643663581143863975506516137298665553382263661284446257400746477699758562761040957896441631007672117120012754083036157586189597554572421652513152598171106428108434646719945797493665551545216447304818806619134615772593801316007862258710730590068855412975484016806691194506212944786525195668400543377248073517501276969549529551108954365064185836359180039914068509677515691456697364864056852657123179297204991203167193177056969926436608799344852290352797353999283529236606065252565546286147915508786016558474936236807652066657695265356735988926451451465686228991974407598516300497642628917843767366857826990833346542843476063218938826035438717593669413566536597017384352257661256309170109795175963342489615198008767541294007473428638719419808865516387587246387811749058720856723929986868092696736143929073059199276480110202654864800173151150987238832018608625392169616610811193418036434615391202523824216699497856821267455713414821169285972677025823699726239989974255691687159396069195194471957065952006460946605739959332362269449697337283102719146333968609183067005719206706722428859594958037308513046488080071545089570572348292927581179686819595947573483047961345995206543160080688585709160191192986900279628623179973473405888109668303417223912917173852115738618683168152320465483288086662066426913502031666265393287652919841669485217125930687713727690609356699879491898304364691470996155789654776353981734666052069658903664601935415807556185637163032923892944388036841548178708760634260631262877110094096699791761556992362825285400514678593599615820489065946103866191769646677004973264403128376768586706639886551772436182376231418637680671653357720965452108265159697855346415922348645353947710125951815164810898195692216048163710879364775178436660771014605622543655955335125798945826692342862668821461937426979076680909619269569453216799580422500956477367452579692093559474623343293870843304416748587831711211216365155071202084388643652674310767100615866367426829572604198058931777445006440635617020286864650294136869349527535993518872573244078970898107184233559619561420069100328506265779500657042212366209133145156827416527543274871101699085862378539642510267517462871459518333987020960405732164918172138590667190859701690423842173875395306630453731706699304670581045296371966939690264133566769311185339072567676338274769966599616316499765663474157272321851036771654855534778306672439092136568894464588343076074139034745945238944734583510470617992935839776223677049723120775326175811082210627735610263243168216465218242648642833367448778056505669108573419936560481843425322436154705845289561579210245673906127746289577753467956707472053366704982879567247741897259470040679549854859004286716300781714657612944252083823886731693051575762560972513118817332641753700080390810283749571053795037335054130580055635470584346867118764022632150790669808176096756011875722872095874127012785923415213638002889471195641076799126026708001561571403766066415134596614459348061224244895671191007683541669472443527367285550713745608256472728412897997425686745621713639769895466940985355508105468711761359460734765896289817042715545267863056168706445689546691077148760547462237170206887725037899856070340481632591180621836476273076965026096169752193027033574606618906606833582650374290757348300185666422295199622110967513219285772055617679002605058152892826763366312699789043912395549636697091878741548097659914225406959259318132071183170659722907481389100607936681272201802916948164150585945509671285421870241563386682076409128259329513214593767766314656113563448612079542669912096117157485740693631977971563195197401800277651954557569126386721302418014580998928273368981256591356255630731991856394789147274894280618212431371289279081095385479747873904518020048676767336445612873814852426344885433291244584443709661997889005787531586550535129973066426316665399981670395319161940784987461219099693257477671965691801936112991727618268950529863185919460034696969003165215977076230093336599974671970607009696300395217716884716361041749326829614023633186079272262616557100988493726065004751784166435111523455194797399166338198966786921881742396521159674608165835002406646051215371058525136697368481641278584861030115917000559397648476961466246949256333558058704216379721292940696857471528682996223870401749106822890112183255713067855824486884242944596873994169965770366541520248711375852263925214246473547488747178938281164542471652139837035001368685767043772717140936409290292586041925065682306536551750406591567386068859868216683096443587175597968296477585736829849190256939265187233366483221153608071494555163677965020592292545887539159478846596752674215643798395072445148686206895805184063161463020111006226795746576597705416746536185529619063641829702073593797567250370477597965485672662228875848496616681895280257499315306717433224652983007271442996656709479369607693605671512759635355670881184828345172706515116982458538683515398662522875865631373785929841519623389550558714573346485743435632727357570322213197054726726612603867070823883665768296634112838902767952267937438436163525572411274059258607163327199706965245458579341335699359459675376170863546434221488073028554452285213416495486206086439567621310558799266945848662267043757222603761439869911499246056338781536405085972203798738167747063741568866253973591732850095891857678868606342736155519805644000310672347550996885019672664043704164044419636278743099176533436265245680141918373786693754164973391054066663641292723490342560942758796482271392710190491272438064527167474569826762262601514711571980490865953495920687468373062796155986747953265741421282269653071906313583028632756653154983293687328894135628620619166705200585599812024645588810771568265706582905158266173638635906963672171688537185513079573551115972550696972146458377652215065167529774127152521364709722581969955836115544112522640284950366054200041604478074713533492256164870625504907067102778961641020754559501296586578725825552852320061972777677302196244736334028964795022126183815020678342221360647615626776740262734211214672823454286075718250508129458564818801966495193562506758030766088038007279956631740321592964354865965698122156580544352465916787455435625434682492423460739198696116729371698874924064431449596491270967606832209854716393017062385007699604841567029076596666093447652908176472305310626963761480557041496098502047854083506897049385954625241025667562993965983478707742886467872463759777393837859553764482767885672496982276594662046834069726039747119176333678754242371390111365704256706502597398569958642425189471105702179317972827237125743745696730386151870699769915320912638624139356356307089427304681830695464900163704975085643709316725541480064990285187269631226673212624169535712416592758349688548982974243762957084684489665100089064603278836889796678632109614010203407555452603421718586649969352416237145352639579517991365647687915245571945171534148763765207166336947438726935626071206631246690941820579887732169537439265404213779552882565864483759225696518682726968551363824742527121820223704315691823418287563612787036475211654711292001460976641475503585380673683139764987990747024882122657408158167732523495318837133114772361162016766286188897437571466064310795146107192912179600807478169768945068341084736428539853636968904759332100587429800596569042135967079584615568692743666331961568806454816802884824729536030726292834270729427267408151501600338221711539586196518916756687723550066537559996104686734109545730201501722764386425306358804542631123110664471021596269983761639042896359022204765645253126669657897564223539501341602910694388004658277912217398039930655783400969510922526859204974635011403965654758236664643018682407333468989688016336959613661620698660752029896724177856706264310373947973137215989167578438615171151375136775679893735057851762196248396256258071690432458271549919325824245533668625173265745950835960104092681116316741586114360913744264488037675713651119554240772470232235337496485313628435296217196179906884264063571235445614524581506569544630238963562745239386469074820245833255707140359456696089934073590287611281141177130215753158938354187363742412708518695919502903371398130796802378969116495311672084820586966817001709037629170310520197128685128609412676763807617347486548334657443853663216652806677406225687314825351344739177436149170690682384661219265241017515866132263022066401948566934197499713078602059388746936883035483619266939514877535616897627624741446615056419898556362915862110079645265828335055930428389710262718270166942247344095046672849743473037321847829140987334354560672955861671670736912160991935809045535624158358358442777876593795046675017226252837505917169469274680743131768432743976184365236589005581358804001046682716065646205263263276995546672081732635096882673307590145951138444195773513864064671496985355307558372327963504299235910523216723435428919230210987470689281671205184969907130516764909147710186344361325528727432016852738636765072810498496002926754673826707470751148737466712253698873130619864067765372197150694321912771269539377408436711687787573654947623316199402433697589209671507471936883841669685884396265652141007471109311212810956955305676471103090198739166296713291150417464580730728405819074100110537120166952685237328462569426535533975661724660907572274556907276634759749700763467112404626717900004680722284854889303576596045260536993492963541598426710349192588071134072147466445452187381721550272574720037657360387506604495612459479350137218906363674442192764603702796189704902666884314769745662127016498599630439991769187482426839061731630595125572457675446748170056703294676773505560366751659862569573126995134632669353910669033175976743524638713057944858198203406122781697119104068542850787463399086335559779125540412117959642219217086086475645650551569602454626303753832176699055968199696747127026503622367254450347988921743364900205969013770712374607172751184682064520066934456807440394030702732409120567433827337110055962486352703735652371141227006546234724748039796867930199455492254539746840227867631221166429915763668590696774797532656923770173648041029074455343947396209041605087842397416537124238790612385637491675185493337198372159974776770719713638068070759077156316563800272610058176970849646096457969130605330200671185896535320252223748767884768724781905690640268503225243462891174617263222344672591254473263270535901356986653235193360257953367081303454613070418661065010031526190232573951867957975938882058961622199333045057223916327276037111612116095774435459346766578320749096327172632875996564184902637235985274039077686375606189731593690173675404915680415156744790352673100105326895897871612548357365359882187103805600730233299766760784546052931625552283925966695012505967704367463939581191633374268939054026967650728608891131754159607495659196689668432865055726090956419287287609127170918812862106581036251518291603163746953985930249875645260688063095759687469178652577018727665225254646170672767712050307567857062206594746817715226218669074063056714682005741985782464401186415517473427652315491459166902086921466754729703794163298265267324052473742028207166246080576384646044684816902874207570096856951776540878545774033458307280260891641337233768726804955478231347731961024158056482151438050838676634542761109207136497267905176945905171496572337354745099517375973271877293717341460213205012396566542256927075932198657466866566302880787019942245636277910470396163507166470469799144986666710628117373550027377466371651290240166255051806943286769882781902573922433267711487986705857069741308230869550269236091560135672051254074511496736250114739633437641466895618031432271654549192927656616849838204143996871433372711025388466507204896549105154728777702256707890436587698466561310574069036739217386311845685333028703447761567592379607114750225683557729057860324866129482598658750362872493345536156642059744546422763388917941374441599533180451153798481365238552354593146632971510055456705642609749840914756279556556359709465689937430074328692216188897971673441132464615398167374390441531154715473331695176294035101701585188118801368977393879824697567201872123780107045784103554098669470116121955772067496608679719661370436881648173396701975097266762036766632408500723004733971540874967379799288610931609554098533756873311783717682530061110608807204706564632582270393859115361938062426699631603739455016768246681106732810249213678766163755203886332419269725796923672909632869245415266925379045713576609817181840157411719555744790845769956059446861966545597077144172377374645756839063714397569964689324706860307743686634843270540657636862130316559920423774248983536421416637736160075774583279941537288346193942205464627214206638416795732939901962206756247111985045734975318671496217317026954971714385003564202427716733997163697201755969472548976966479813730955403966706496027425662550682372208374396857246775744929241997651674524392464100499961030203854526445759069970540806763332273675364913671742389354249869207234827597674102794173199130527116582329613713735264024155857222911736606947893863925878627035280835747756045070435668646628209260584063316574529421137435400822678082362865243071896818992863584482910658708384727288496097652631444869407710406848718469733902764764306175886554283051699306493360227487957328092481965455086508362380373351031237348282062719077181418460927547379575240515419995712893990367456693218740237249758047717967067933371625022131571790665926887670116679219955474541433077401996215741898305671338929526706481984574077678871406840096915371376551210973267758271346228524257621752771524129055560709132646922382980744767209560534586299546882036603239648742654286651091590657066843636663317465872913882475133902558714515783967625498726915801018583114668470728423496561278682708830207471577284915679119741590745496515091196827379344664538352684419283103368249069056758557644705014406860962316577348354665671710667960966016096198005867738016057272336071697079510172674931969573007520615474405980122923315364661514137316676618695216157873598355552142475335689592214473988085746748786994596323576580241023018742499067312602757707620754764506918437343730958742971878166761713087037944114532440029368567826335378096340736546704774177088836588116287716934580369905941277085364992572861846057994864305733639378169063966362028343147419677049586222180571644580706947654925155665811768386576346989009767699981361169031408021969943286661229449911509673606501011907598948449169238290976645105094653783078068225897816115093141707882513172820150847366216838701318110269800262876791108132654776918765466638086877320334702664053761270985306551685792643207274867584664936622675746703916507670275694106911336402717620635259010260737191300748615391968767876586417076323053670975043470031504286841677006667563082961706092667330669858649858791569180652976557338446564371498763139655036941231207708991188650891666456540574341693940564360531856365890864182151984603858811020061755872822725091156973166298505874713239672003973363964293927005331670702636566264693264996929424021665498362566954468306874839746670722221971763188906978297468507294156164156378176966593376693142403861067529705776162249635422863268619554466752121066655612985568799534776847045548685890244460372107186512621452697730623963321112107188941379715284626863123916616985962362709056122567423152596846238860672869727367922486206711314562646068693165805493566918757664678265991270950472506367443829719198589868977781557051011162673772029866643112586852250320683448775970188644156061330312718298144369309034737014159064684184290867729805347067612078679675897567611407866611776416682894625271781725806858732585652336701963955018536466401417647777958763320571797052426818683619904169168358816841645450698972908265625557166430490541667982157158858830846463527240715872154970061292646851735585703535908264592439196818909133719580603465750285186620115405706684912566907468636772236111699892361971755426476768336657704170805651084763056686485310611046129365770498866921666372701664097470855505346646716305681238941164660160796769407898679520097270402164636961428776714968728270930807697072735537694849434668159029356735728917655561399063940122616461842253716727893065952911057151373161684880214668460446706727159537656047542860249069766989284145667117259267947247956465923871735602298359227893467351069767622928257264405428847028819448720243836563712698916060047071232657707163322755471816027957289116506661767804319586217027344320685582302013865351173551319050152541998606259890961656749454808637311916965974760786444263679696659482961028519036511285035748348813664750780247231165294501579861859011640777239972844656025503465179317506215849272735292680272365836757111479866677471277492514945857872883426643693843727044337869089312897253192381622515910062682332335845360070725569234974150412157884995336809925311578339809856576255375780249724635520597666247715072876424086446569195639060818454925468486995530504671303003419853992847108657896113793330450513199074786714966407499335548011366157679846377136150278642408969371325937486794074518533090106967787233827455635162167479697874759724736128035044706740368157961026627241436709205509844367505195406503781646664944676167569727146718491002658863242566355981547019792362682148303565240663636937464214668321078364252925786364530757689076681267840144066566975805675484663869552661266933003802678933248865100652345998325557687662832771002090236495790897654129627664683034376581269051718819652067872882196550278160655224466470015201706691083001664419827462681352326906993068677501885270010549316741946938701520401568068242106787882057693268033870957258475482096080703290567065359846546541032511696088467767920513516921629150655169607469969836896437506271684893573769295746056702457860679335098471526423186958051968708901979171140511257150065842662313373371420999056874822380665357205369134962516707121267659902606768317791866727156546683952631468410868077179838496711737853456532984456508563617640706147964357000326895884296697811662868525956126802206749677952025669725945466701784164710121847167940638956876500465698412437170203633527180952421700346666663222334836949909694683534373370746574966837957406707155858070230046857075794149688769489963164966776535981544682081339468658931197118284255656116943269661774686354383286697960904869346849687072933706643666980167264645306410653162653566766670316341677134902539702559108171062611766408334660699066256868255864836912073326687301079562553207176690758191705222761563282271306568971026712535733871783611476628699139695754356966844280307050138419706231034468296924846907902424663914508770268268286464171346646794275615549400985959980159706522004364219988306906303718666745738063939565287112005176681712740663906003035188036317632488911166490772447060085436680478030968962244697176355722698498347571349274286576577616629601154068400938206928074194670740632771548835606826904603717709905069834203636777809642658033754771134173596744584244676132258064961723787109073005635344193367836915747026950490715487058665971530286505745356671520484571765354956830456997692505897264607678247132719306696459640864440379416837848608685625823067423056246715064120673877077769002916547051808391672861731471470515656448985736638413167264060904247063138578695440352770859385397046836548704187715565795337136860913942651681146468626968406727449429697651037571652891177005065394692437916571227901416946085577644769439969080356616737576553634907447467312598196878626149641314536066078255486782038422660773240463581108296873654724705131977467607796397199797503711856657870398695646797635081690064367969999601026737893438686218069470134271416737944305633974994569807497176772262419716830193171573348876476200045689721138965830551876783641675671823799168157405137041662460697432666569534878647067776756673292898571865501026737525468669410892968129689395947921251684297082866334780466305610153658120127568337240586944973439643755821064406779486669996827665514379269229822826926831419647525482767415480156796763496673484810969740112336963474646712981808162616787476809414231653552470063674829976752904279713973619168944816366662884364655855250562428796456240446843717785890071079035356774467840645729695468967718566296734863632870473871548907266652888694691594854864247138107060801199711018847571115712876915788729709556426269228050756529944599650367396866701056446513859822713051766370918342426480473598687551417468669225946834420739673946916768156010166824000309644403994870740214397020393046669571769765030522246490787550717006391767351641536543591607672425511964167624127176803900702106311969424860896836823436645775254665168441765931284201661360728864466048576887204570707963422570909747946849865593636334358971659829586983322356694117320966329611447128684448653288633967254045116964176091701090886168335425496340044023707705160771388826576894124007662314285671861261546905876724646715323971935418696851852622686558701968480872086809045317560791092668187445446739664599687104260170205320646409357207716425144371431974436409426206713161391169284768626527414140652426646267994731326937973857636235415371188450056428068621685396148169369083335564068692663038566767514130786899193781640600767665315813817057593085709831883365788943177073073260672932145364809996066520162299702875072166982145826727738725706848136471727418946361148598662204221167762491056988839304658661720471097129916877319811666391281071956443326969623549677294903269883509517025094435698169235867780200617175774892691286796569313885827134989485700810252265203992646824309358685605352067574931486916177671710320759263264171627075126041677385388471235295847102515932616954722166661192696840464496707493278366498997376769758500673318193470584338797125053732673271466365219911036872785742633805681868502384686842574640716356068164665777926998249744696662348671489530567094618572689087377169715795937069338360649923077066848520477072010188718256755267204323206669758650706177356566047929895391054987670328880866619908486570710666659810933164965978116431008324687264028471255004156890962798710986393269030695656385412524668871128965711218506862634843634967088165843781876440556441707752362258754752227103038064673010972663413259036786404948687822896170677747426188275139707134541966612033067106086220717932676169149666226372362626641366432365132714096613453967685064980358090751956561397950681166718467773256256581407133681563122166864289116439761132672845313868732101586316722998710941716665485132456577510828701108284670099387656956499110686156024870549412116353933822687055635168144875216669086602679995760263563785386670593963648025853270992600277144843878661554862267216267796592627271647064423363226076866930698883663834754967199049446858414712649509560868704313917098119882640719138569104073466790801419640143847068390117076718691917671984062866494898047027795788658534786766033613026968248370655393522168646627526722571731660093412768789152846859039176671024135267722425486611741221665860446564895821977052279179684106923564752583726135323036651562151866381393276791263258719025911065133100096942223408719448935065025225227081828194712478584871328072506990293937702101964368896129555993445474688530733764858498356838944948686745299664746220177142988203664081241667315726666582349985708851400669686808616850653772659542496668090574386821016761678705152270027218416584068004672976543574053851076361456432644326675771059259864117351197090848396730561271216746202977403632784653119817472814017717128630326651969802764245526136440299536734773485467220891107444252506650701360773304627861602775316560159438176383348171477155136743023374645673785865137170067049722200640946002769709223907286310028691429873363844376177342774027103705611266207344246786079630708262045452958294816660525868184707587968020865516891273938712096590772398100727110624807183238279664700155847321048792691762905769658287187053377724168333108570297321570627942556283423182192113389017751121087015173049694006035266458076746255064596675821173073972539622010614374676183369170379224316733005734687655131559540385796938550044718777422056941592917223382694749005786970180380026737469682746572480672120576169982948476403699620740093531665713831237300832532517265655264863597946909533725656964273963254118886580217835735427106065361443446368032287668721988261255962192093651691835412580736873290314709585672718371516820539785627347605770801269985388721669002906526582839815656720449465984400577026134247196965438580415676768285500276298114197574427211573791738446679231614107462376974128972376218189233678852958165429111077024268074707172697565010598626741444419718450011172817837676678060281698740267212133966578602327167420959007043913951646122758608381108317985534495508988800717263569674765200991635992705633127548373268969126803901649674705509868151035467059131873721773592365951452227386397751560958204881590985871646184856305720139666236473466944948787184604602596951344354010283106799156660745849078773974202846886635979596881537670211595602105917354749599580762797303217088402475661255079463559607785474462977633608830966792608015910141886701702577964514397777481037757659861306550320046256601957888645071698219812607706475945263645923392373520005126749698522643720965067918400277470998993653078080972314477857368280236740838946873348126977062642671550154036756346342406339828961703814287473605753276686988468737745647562943029796961729697141469632671587730117499590271594008439164904961966869260669916396885638183753860136973617096031071635029852472411399397444006356700665868956977156497230393005749247837071255508697442238576661631364968406995877237433036700378842772880510217268016018607742430569311019465419730003571403324072455613936167963414649988420620266813451032930336469447774738466956950926185497000444177901092869730877829572618734146657576543682797984219745069187245932132662809471868956196567084224903715540722364972829794467050906588643710549481109166855438896325496247677360043566613831856764718322644944781066788776656598620136606363001055083809966082973051703640047269136941557313673538724747764762431345816170266038635888392411057956257374203630606938810356088785546692811940877472474579516959272312191776258848153570320976866493659466551597235608293732071187357472128370426667658643721964161270904449486409816904673570337615666956317494611200681055133064478990166406134050662472916865675931286956570463198340560272384514496679766406701831575220650641387402386380620634179363221200276440561204680133740970823530211633989440687804034464834957012135286559105845100573495217086914171121733226699366694640075946597627647977599563932819616002936067671489551571246389156847902568622601628861367486556526129969643503964617403351947175121398731831524463207050355941109721682351397972843124375035520784523079893562005124605841478101691503843366978456777200703639624966163817138127977585441656655556962775202456634210554773997226077296377156158601614490105845577434886566280722771713111316875853162596127689066563834446875269601623539240060271013686670534245670196506467615440066018039338623493469951476045506375581497677840257362695604925718565146572611168553015911041430889415626533528458174021656857118441749136866972937058135889084112550143216872127662160110511454517730972920131046807662960820933046801231091661050756673396501407445974624729659287064001588976509926779601706069468834560636043298163604467773869427199991678151678648460908874817515787431711298592347897083539961358274394791403189013149732389315866371129855214310290668256618805192502554677974898656566147280658678320813358237965437228569960646604165265238117967494463855612943768265608704596157519281110817670859394820217426619528586160833565287807526891808709197682478812196343506189931822673836844873376004117120695404640934219016253588296551219990521903027152405765876029969877741450430067185589257103438202173085767418979385435534632173595814461262671214696708302018505861396568922300207115389133647410536254173443947321579094692528340411174797795319965795662867782462323946566816718129737239989271083862346879192832723774257574126556566798195689661185081574741931466622506966637169842271977478626784940897744122941768163838707035942555721715110165104621105966492505541158941078797075055721705096904068526119653826362440398459757015795321887411552670570560067738015934321128628530841970643545787122490775544808397765447020086395788042540603381558308644766357742946174807415768109082716777792838525888387964169833595820216413692062318768237255336973189048666062638562938363235700047386644946871731486602157809174767017361926705004829274608057217177764491690894942663709366877421267139582359871673427322725617604552669856613020295132356295933752647373113874533873541248257990627009428361956559666011495537698273648561145354837031805068659545751016624520371599647539595030707755382329677396426169662009415398148815072398928996321267708149777322021072135726991924671692088554573272724006415915281725646339101137668620663962496308541925628096023814941507464654082016790170344652766060172015652276969505194637060586966740711507073938733533717803761079103486549885052603975646459819896376466824033644214386461124142151105558750666604919165255805466253286139694954947474295074791745164025646448403368801618966930472412670856488163052024317029108910693143802822813066116807259226887703111687612314517217079706254822514644417705264032866846905660892630314823871101961225834685772663467842869382628757360739114109735959873776825676281305210682503063862361383176060498462866284889547010705373243530166382420384711709589561508434026301149583643556473220268802657385457881703196980631785200762855088677052107373535702486158519400635996758587633699470155851654655304941176593018232470481428496662279127610383546563918699941066082070661090221165995044686733188673721374498465429275975298388189721566023789343459766513265567140128011743626410815591566701240227769670118800659051920915755816851647583660265496489266406541656514737887862999186237211480303165726799018145011446378480809176085678268834710941886690217703831984759262320696415403071719511752367579223987174634311630625432464653640131109974151616872292972817995037231659551205496074372401403976533859532609047117969916160781080145716180468767184124749165571862676573325244641663770273710330177002922800597558392566586957895999248918134854847617378957965409440906563050913709508041952134317321773124060682864148167531852096035782276609708868270613425217285011596131096443868506496336251230894682909516566241101166096524034511210840461282912115821835353658793036510908009425389973621692183676168292508876928903577714053152561485943131725416101717396958766984028635983641543697028117363486332236828391160653906087466230872106202947972644762737753705884071364987246537987167577835395473797986876202392438176451075470199286105840461145597467010416009656266125233025713348679854074950987415761596726699075663961395896952390233150154166575394268666701838197095053195594075411746879516850298818285906309896590913372165602836421554834454733387356560832648546223146217653751837068995591886674851009742020254868591757256738194709712753922974494305097115380420556650462467238193486668533355521201301952646677532107305468546394912161294272616865584749617588411754026701426202248799416327948628543953953210926096934292363633697119666215238896405241445713138424168117473986029125001733086156153458631346196356100596120530366465589841323367888740096963256329303675465513717642450485968203420806915949365655111202163417857546355521726749377932772060191671923768172655382878565698031296011743756749652055561960883805649259146603369341820197593296692509085725615625770014784177468973635560546921674914555269457504346914554285156567015412265981466421222568701520679851705962697189353017740527466550961215865181098395591689847953087757666917187352681929034970363737336831998312538589064662693749677027080055842590451726698822652624234251857490864593203700164282915905978300187748884748273826099236486284549189467543171855641145677468588579907458369218971195087624099651400266067156294447103985914722349539862899500957489161481511457357565459234216515773373157911407584115983463273269566487681290655619182150348889316941674886676050783659156584191261912577565326171266468580786774119666670766161768194275897373181342128341505921036183796067818714618813051170743575516455030595738310562867341036335142549924608719859273034983816847572436702420730852592806936998742983556279199814376447287043698467702597272568346805106567795786693059535860528941911850056476711626858020770885546213135493671709919563620427511044600121669588343153451453636571562560737720192763538099945918663178700944265868967197216790383831721005369753105974476623103954700487686865848367725910568693719742233162858887846299273366750702572653573888972958872645505565310168928649565397657426820527140676425137761769573755275913529694566534665501643106845978928143881569525756030071325944046696796406741318167060084057605470492765623828275367536109087371147770978360807130927452705448995951335001457049158112644285405563312166216204817624671945305260481672871406627884134089530266715443196810171245680512132365942034726387389930699450858661676272539692065525667828801533399935669570103761711379906617932036083320078742464816769006818995866544713727038883472447137246826516859614167339228705473165585475626287541065629971522266872279342095469414177197435973760240145745614493725180455773434066025674265408700180003061992051705918391011585373046764073622165810860600128758204672721270997120611791747413015317732888956389617559549789524259477032791896280079675611156450426140997486119216675332149418014465996246056650643553591674711960666372205496724426201159602490116560509872709887995666091188621328950139727725300560933800405507796454168375074168765337586628853608679161295255782618772930477095402875179649327766219095995456124413413703988115214629958717049456334678954249062273724486400914402696580509460074469365834651269716098848474325264867273303874603387554563135465606931292849163201327267682346176921728318595788163862257727736351753916525642335955296584757179557148701294140012946332926277771825185844520173376266547018315326609806401776397674716253572360081267766823983627625682189461670613375878928991329953694684313453370823058026867767089788488106037771071561539320453569991266865341070726904499456396131436522737372131455539719872044254318131525603338224595235979863605725247148125576564919761259085113536122688347213733517770192699677206384554626415157374520216885064139285700002847469070971507050496920126953046810496043574496159707103699097659223208262523646627262332427733801330650735624476148715718606013299760256714807348118417634848354264556188119738271825094185463739032655561215162217191578271693009842158881847001486837152741816881251749905135375502175569964390870053664811075797976700071015718206490771861919645494249861724041057272978519357445956417715905028158197696547104151560731512302070480408671271621629206056979747478472272658299077016014852706913617160570998676925123034569350582971577062846923448216687551319774499356955622585895213079648370897687147468597317729140311666734573255869240226584940080069092671245609947971679339833456117483027450918686728002083769251876586255186209589187242762306415236084831345566940576365938519947193983729644559199468061502956081886917630421085068190732986870096240656322760764809968616145868785351886167699173243953497836146395443346545356554074112758496551355437667921461311852062972100434113693040847767440176066229969905106787097868264907317194465557652883414164775131646911353888625440996469022477406361079900736244672513416662576805115849659995218758914006838532810305895132027725048054956277458491673712872166535595574874556437420173632617755568519828200171622304971643383664072034074336333806775602807512163476068066634928546668018762012834785096834246015680105811473854261901472311030714297991869653974917282612166725412219610895103196348454548647129405170405620836569347108685142377311234358011032237947337271975130559401755452057961472957724603776350771676412167411368705535778687868438962845499557453709423459765323548257467278801716921980267958726476293637648651562029664730671859147828275945866258657922797966440966536653287254723314602167856869306430554845112175228111771595315561272824679762572261494806581554509356544136098266013637891258790522694162531663868794345385265249725179422057760647245525948191710983210567151204345684574937211507936574252726456669845681726933290771969248265186307915431249482555730614862059071917187865115631125219371120558247385869516499331124710199054663953311396561488796730156168658504910121013745603645582168767889727566168775860624277859673828959121889676604700106624873531628967103023628697739219270118389026691451808591740803859660177796915329803731920105774341104057136204055561614796763854265046752326644724026476851934683311247172552200399146666108169336641301392607795950861179044856917375812603255617562203064276906248058611641182060240750377282314802645526383074630371506571296601664940133767453923127283558487668307740261286602436250274826742437919769913593086341567709655791865164417246066945398071565146982567756150847276149176653293170367925960251671114931738870278966286029091251690833125629163266337448672120441639709947571555561063507050658192779008709717986419014757557566027767970730608678672140088096811742224708723005565729094287039227462713024437372302857366680255585641587765071456243167195047904707698750970845565566772799686626169162819446127046445000347520290930610755639907174540269694487245074920199116283275763676974826464210975507303858415640856545071728618527010603799746655698568492965476670056754211370039768383010667489603519667087207621308115886603130868746226245366389755405308850587718935646971631331916357123240707829235463498327196977741055964663456170383144731092033364209875977482775591504314878168648314131070189773673449761862003736821215387428718256437991134465453411028897349895203683070282761879417501956049644591000314464956508626856760352672581984263037325616459238365193944535463112114006091667741718605217760080530606503672887626465009074548925566928816647623369156365134125651788201860643180257069207588216169594241138420544569309716316407028987698849389862647956885563347764132289450771041460816153565817112572090559984107774517069507424135445637321819867671542446139446018515408999170508751097202795142725229118061111679766937339454638704216359500570356343587487181503781856020588551556120308679766065370073575916901429814672036457568871135405258324292104888350470218489376599542460686265054958354878311316522766582150566446586283689655388164365737366872122375609735727466068791296982855404667772137171227996657092798323684516913064041295016245202631743380789072444688396389635514713066368264607354726181541407722995841374474143405186611157140032921062007458976831911140602658725956192913895486680394684602584871529898146507621925736344964668551633687478140969537864098968661707676712977544638641626762419538886576710252675929625873265649187578575996569335923628631754974159032916858741980701262199555916009175773864235607944066872290104756718959723665688375765598629341859402172709458317817914438076364935767579041232366801875515308499792702578571772568821175516908366730908981515531174166705697653557262783061860207547192884140673020888669394757706790328146658039915554675814186800496607704530183973000140187133448157613355587365897334986349142381658047741364012579176551490859638896856062000969006448464408718017741772278399947161061256609756244370290690357054055241612281490366436941816764929837590272893669579722316700913932636784485072620535383652905777146754259715867537263064373317205817478685335128285928979169310569666283901051748533512867668509824980718525837316114721278632754861727305870525040644267117269352421346966693353692322090372940282065488408743687767667370848258067377079551645190335457810147716478501210254471282619781256260929484286921847067610007566664675788426305624435683463630751888957356037246566173119523067621171846866320064607869899854797316555326222925686356465761912690415842744300171419601074858493935376630139577542001117267725997427490672533897531374036882036311994495714720767668294372707221410207132074091861814509366112684184699062204654239231056799297454500510928170264177991858487872726647255174393672627190501280599480044769679093657303667584523636870514832831285286151911731833300973815490707351188213634977385761389947716678099907661239627154804705217479469430164007879558306094076261224653633234661912786330986757498544602342367573007662601603348857541810838173242078505954460978720580432457859677361470674162563218003966108189296760605912696508136967503688007377101406618521344565251074466326465637621339773062967924986362391208587404060951398458345245324432664421762871738397687400108128653992664565912390177191309782672780092019519088285890047824501034132671217347026071361759666059450151269824815800340100599982250356469378837029216006614187166062606185626795351834634962575952900040356260494195692868077466257123636844525435664198939563527967095176936058616545390459906124832035518089599289633559835886995420660713613699819461360466946145397001655435393067102016595866551411745607477969148461076598209709707820254166399557706719118446636170156774528225466772074382190290962954577790645669615283622803832568661396256013883596668676808868357714737377400960635743485868929135306511508632704253427165423011836986611530669920317665809505906194511979519432357412511945866205102695943995546619442385819499417446350993762733118681156491456336638469769637512153970692024227202178991673865048071069551401206901688722167804771423733237336175273657850885466163610561005651995727630353072597980735478908776103083019212642303216589893011638708556761590578806528766776675012353050146368387131556911510630097637300743067961083445566675012679851187457278612227446988664727107633472308123456159776835746771956255853950786106239746708696670773326460367306489084549885449517826962981267534702693959220258765581227274470758552112531965771310616983893778665545755159858315526834145404602319104253466217236673390750664961520471609326196654933479616076046862845965936975114167747346559963001994295419104428727913033113668144956324922732655995513769095427167330253524703217668160913876635788938321190505784966491359375884201762736772826067561540366682524995582594390966072166816542758884696619623371041439407183398758617713599662453798517092923632178284147467304741226008377872651350939773605660935440428492581519134368381638667265512623602349249417108025316772533196699381779066698900575956050021597994876565550916515978192619576256313217084502196577363282668506994874036440657233789854118105671374701558532000375816647654323745568264750066642916754102185744604429573944472115420433575646218606670705574305678583971658646556174830667105751575870688969467868591556347234236458729599627065009159831710297121705450988920590254616476865627672112980762413802557373332511731871293869841900565548203961617644182970234969147287915274693073002268378078266001223377671150577464457730756792791794685643803767220405746427739996718266968857026501137076405344746747066170480328287029279566725302771064916506636434157752639318879068109989326302406930714223980868923882297039137192727431573466275158376818880191741952852364456184406852717656728557346373675947066519698966026728086608804543366439719376918877946212579561760779785516877270795695090812267929119036651191340601208838762282855696458698903662158962159961770545572171448719595559750635442736689075007591060305074037913415983293395153538561676625055858893558387398016595649583621154457910295653944868602265123559727278125990039829740203391374012499616458640977646240109963361155905570607558731264859072981616616693391814721715207270461113507132962922639807099956620266792096243406203322956161351838565119077598558951738267552700706724754152742879842971822111026802923440608389145871212919196955957783663935706766486372947227715868554072482110826748207229516042731914153666941228907366467053738892211171732112776245311501645184110759885016656711017430612307335012792450826614157904693056300369913763806755548999722975018574274594446526740993166625163067148589576989917782645769288764856464746286724742661922855471637827257041028549527263026473311659076834587613672192852864523057016773293817630692630769452505826659544099506342739172294633707032446566695684247969214683485046869970522947714367146259716196942986596181914975820015262140393676127157332682734684473319731481198264505580567810767417430847187969634638170577157764508596773016981681904964150408507876949596830748041039812272224047182690965665818007871816843497015760462506812421971206272741491759463699164599872753654796483087416637815942469483011295987655899720224884467563926157277768862637802310968207473415537467371589071899265713823111701371533544086007156546064275982743164701282596014451120546020143723668172209967590143426888902578615422064659209506566354815005524993061637799457359260256437378036597749534903569729921776690224243557766144066283004245263243190724411121272609053841880006871212512625970462922966640881232682682589561310934311813513823699337437468971623145725694935652991762561405583341639430209700485925064818252885905122257670796846552202500727401617952691047037138838105494068900720029215901555372336676167632064077284557304153028708826920464999022576946965588678998693769111274136189548532748501318066343072437398623986551465605966914094196727617367572270801672358157536484993524730867668763263700955837960845660983678264632632437147758546601421195671321812217453076626728349291156012153397324726520664885740667751047159875138875807803037695245962071716261825485838826714771814168962136857482890276694206208367307430627040681490734739853267944850885877217253733288253165990193016453642023575794349662538088296617072440702919488564646954306066490630576906033469279844787446500252692973740461936504406566614070659547129171698365036536515167654944016073903499716118896696737816128363481286167232541989723323800158971350346912782943719848900673162272047092602276599841590116169535747089715279664678016057759017685528010752678891217765165194546304344569657888742264943274186922372744561256611566887432386504807976079803920712765703553358922927433786272698214483565529613836385264481729548908273343606546700317236522124690271734444926666597544732156084516058446516008923072671120936967869903916357000560667316934257709809661640450437500185769082246471619352655721250880187433262208685097161464276558416654907167673725542169425453077045656586582593878863583670325992719006731522105358888270997318029796721903139958708113376593897479703600885621283695516543049595690550731672059906021177794726011245983669580605263700822246325092130564249041165907895797431851554562074398561083801426937628709650112779170980649027207937021597175580866749193307465702596743290780373433483827149866211509329484266308745297116611868662362300966421160836509311111202230163271535700506714145423744051590362038042495697298153693518308618437795526697752933658533645666007216716388589690749959145973020008867127338121684187277150000135101620910302109062795172351068556324929376607421836064613635587242976068112041833565506180276955203681521105059855363545746637363722212880526270362461446862122112633923457267085720637186563076132796562164530002875960336325649096198358873625136713560445577796902410634323067494134959649835525320572596625392420260608626333070912977446506983495510343074269297981105747113066654098209411287068805734901868207632031661311251333759745485648224456698780689365070767096046825367581017049569359773391675163653651251476368827320587348131811590264547865594860297458674637604414222858017320566546904794735280072565440422196582219039580148894172121229025441977287657894252510364025308200934025812495363199480853270079812656123500837557548620364083347547403283707671836428362957622147400354391538845558861949838747032996042650389761468898754366542551353699972210150449633684449512828003120168223336716222250640637614177470661396421735246087633058306967096760266888027572691970817728537566071567956206459282112677635811372546397507396683427648417039055386573657037952892649785767973074972756208305782631259626673386958905379754209694855408770823492827064789100629749417770570394726305029853649879948562662848617217738490672210271212908958936401514981739881375065242222146900775358610828003765712092685704480946741564976578292354719341107595748732549643930687954495769489278803775822435427697957403169603474971824616899499512202633420024669100796936660786126645744488763740752246695026408708512241072080620715898249212605078695758523614315476082047604802068368288777687277604506530926956372525038537427989119624617849818514759066573104858555132219473531836821162869488626769670171366263277431371743183169334258171604231606557236704831245161147740447466127391674299212971802247487003991600600913539856950692977341838616619669113554305483346970786439642177850811281794257226167018644363220320887416956315501141622469491460913925925892832346719738263471162946211647563938544580765261217132846539767182643127306962877932797203659659562476141465144125297020832891703818628264131705336948907247505018912067874622688331202957287748336504246626154583722987394959686382685891722713992898509305019677223277207029029592239476172740965277470798588719689648310580545407034013270586343657675705654568145041184626450577080248263704432752755190598125208250183684347962273574507795686078425543025543063832107985320844733543582609369669743461549203307691643768873850174476859082217616972816413877598987363051548523658194864365657152077336195714859697873985216056225579540674560760069624586032993705576603877519743038880167534779576360033056709457716260680615896154904377638058428969392946594500716986735027441639701882973602986067292252220718614266972973070386655544405022621230119649579065162387826906757343695929703521129192697089348860714933525861673633095900677798517525351866436830997436120947748539886572597320061871714806263676920164557288458367704976577535634615553779980128223073330994227211202364738903263058422441414991561086529850764742079052355480115916267133045673262778072596099917060613846510258739972690977646734749362704788019560819398026822579906622920801660253592865592643126124721793170898594474359887926703824647630158633159010953315211583350632319347374907753176428674979706528912259765469866163353767634011098858400578207156040905660735600168713746061652428270519129730460172803326958565055589472084768402229156090151720722899105656398570696539960368739075380770289613871628033434677003763169618798886007816326517315009651085421336942084528699427322510446220562703888276183514261683048388164810621386611607012679138141770740274431705912717669455435820188946775192840004631471755560986453421869874853723008394461329167646497249843427115942624188573270591915195063588511744743799214598399861432513732180321502669803210305548382621538445249674676139526320453871440919480722860734570009623847017746456533227235274378132385280675144728317599064991263105008893566645665232467638243235498503094671825579070657729286259269836656976326772077898057155055123682616713271049351826424649346664089904066415199027073812309571028927352735008321106959677696677537058844834026851546472675829121578329771966338691417051367496672072356720233648356775898687743437929174957050447255452922745807223171481083536395804828651402685873139153551981321150549756072574739027291459442069698992833317667866325205104984603730866563481686487387363567642729509068369940386010089777152543472971090679345887655165675856750267773270257055070835634456256017715635646543677893738542434968405549935440179973730889884059633069926261679276698371516573455125967083901974684854000472695872927182003570629091313410757625371347548655500649030861228490107724795058054766051845150131682231473262419720451348892284630829519165173477319176384986851854232648665089954677848906123522139650126305370918205915951067359723143613962120216621776682566657251650817954382706360746167045829671614776193872882082796159285912612095502360845009746832254495414979735614215930670683343527380641691745425946019451366095601020337630792023771054890937140179502658493290768122267246871994619704964801262299613056990133772121172883873922043057181326337635614922658360306806851627537671193738264283643537074605281503408076373977459307223982334119774553969249380911087625666315840680598422258912761614186509259684748389913374088438071273577428610265751962147962226499683905660449601917135623445508939477571048384063852799486166729436613763952358255027866360676718671731104864009458745843392133640087012072172499276080376030671468814510160024867044189337632053020711003167796206819266705780130873074895937290317024523883944669208079758777467475673820075746508472372788716855831762761134897021366343808906545613575668164203569211902156766559449733490816871696899917370064239723409929966369299067004993111694776384768728462617071081769689820632565923446687012207384636943441063313488606735700788631771082860869987266925172680670537856868454304337476097382686121581560177902725688130112661970039367780367385270800785732897364656486341921913873534709424114817378096496846865145668834915065424224706389999828545248635174744071556696846167669251307769930038747224962563748336919365181986287149775552635906264899443921873410316056789697624120508175618219399735945667803633095742966710777747288858672616845527458261909256663178906641426141569512481345496977326533069569664162521512015453684132422645168483106861488617006696228259871871171267323007917705420264469552166576665761800639851454172502215327475908224710530587859247158917032807525598219958159063410701893148322682433615670321150107030420364699702870058172000465915966420730117225860313440999492317427153892114591454718964196380966349514570515202766856259973056938308625546596012412647262664874352305807696174618234956614973660975053657627697270362854557040235657250779675813186565214964165358080947568922202463906656775548286142144914657057105105936314946620747840575667871616367069957794564644567463378169591977085845657652678163465821597049022381684153908466468344156702894308645652111865092843746330792994687775527363455151711635278684574629382163464077725329722797199453916215859078777212266974118878876213741000536627911958670960592160071709415990532877176082527271979129267261617618573018572672868804936677274081197351952769899735875042840647514074770263584198645226050007184623749673256877706548750219674803213021262038086688390678723219984661058509141123433365654598691968312934527410180061606724715074786902725882768882179106834973981021335734436148541922771864779350266877934840606175746654176212676528386995687858923980976151972450035221834600306627272169761115993237263621851624918360518561150717074476902670679976969979738196685374718660895820063237436676180104594626975699063308165706183935592701351569669695206736455255804562182342272610309127107062435213435687363028593375838575674719206348154247725315391354636209430839974814405516645295396686203304674829465665522871317658036162970359275705587928046105430029271129296576534294418209046491656668343165616306448735338380758404929451483473591671562644665003197386667409733614242656368166220187338433166721388971671499204001837949225614974649755453500586166127139712073819059590257716370583465617005527555970490607056692578688355874074970362906237546273531471544169004654325741811280609678854656717727045852816481683479846664744416556861880865621593943268037218885756042186735453402074302356146982673794533187921560116650442011593149701229822853109835677369007831676144976664727088666321734679736642156663333347416748012106176266631364685942067170694388697827751160550017526084171020735853878862818477047186495998521447881169793954846218077290589466943374068751085903528467714022845559122857575217809055579828198064510787437326395744632024195515158377307224599252664242847062794588286406446434610373062167264063255150845926779584120733371134120433313291308884090650483693766247653227445674470670456387455893725437316221845731353228865074777248887117396056728149719492511164181161526334746934504903092978708857964519310246535378537524821831957482633806409888991738187671560561056689646909685865903738578574120269850747917190631957737819570857108277511456538594644459136772985463406943767644743519500856984752315010256465658807184571378983136115658998686185974967119194917133707881195994495567056849376656267811690716972363471171596999274218594274864159891898952089512231745755542468550181206375785370657470378757744156256382834833620369981160702214856963209763705475763355152270535316360152749300589966497206786884102371594539876263491863007477423291693895601274283029847345786485663207473169236175747218938415596894166653417796155971785124638083511797212091963870147166028362505746596650493255442253627930801145466444622271580664034535886142954715668991872469263713716869260650695668746872713442095378902116598118539567197954826120868069738515839068994434005848087062679589162718029472357253864864601656208013223266816088787235538102050367092918017031032247687880463493192497553874166456541907523687372413273003672268812993106568247766647937983770795777159596066316112555961725247737764864224886405524233604922872759056145547255092251627728918961552433496901986561501205168716157790425955757941673664991672792241701210736965807056541980978561812184405594439665356764315346133613311536959937463854037316909105717655856169163155856426189416008745435744758266267376564128844607309465663779476096415863140204452904870049856116899140588722964772065403925336605870258608613793358144890317200621907655360570573505892656292425205525827844213733767914820418187288295863651799088253453859756907167750695539633370171597197353218015682999555258813591901710110030637026938471437683402086914113616310641768361863116319328947599119173117766554686875515906621509587264985776886730805814618961210517854635596073392752210963068269994254955598748518727322111866891753026334471737579024835161135231136261933959688379206163503008005792325624174776606473243986806841400757526402151567543576006570897511720364672965783917521553570455224121884730545643769209257396926315367737531900865048364607414215673733240799366344269181074900310710914742968959363466148055858704615599273374430892493980578976159475419920681514612616810967092835521276889631214775862059665567149029409681293235731194728770962529276001133157118315917705836352670434636696427648985532735701965329569516845958255737347501562881191437456407217749677598571021551651948045708583241986838907654555674625361763833316765501127544021690638499028770496501816439907434740659359663648953675849911037702747808071926302226847824439658067045672608986244300567807089019818640113421119978832426875010682703641888035310671567790138717108062710624275736772336182815851694227131749315069304014256052171949178259603962931441545083746709526045672457900761197029915430673447975961983671587213893777625184420371776032236809741056166132337700630565518027876764972199376241808871203095047270171659041624213861687558340112964668125863943927681611469963818047266824848017600027893454791207256067788045653844940369086250555965790009148670817163544387987193047204646537828555112024357052335110717168664258961372615253713340579920021869208876586622522628657899731156633028186663969261702989571156032722276522476996589514525465752974136221936557639895395614683437525437090514635394765153292966408289495185176153126644620770070360515246352894490652062793911783902755810763738703634675661583275866981776405608407555770781587636544460116663238977517505406386214454206721192830421022699577162895979615800946159965102121998322204131800451350655781816197549210658396200774769724821822158158722869544868763926535137910483712939997166569250416452777825658996492170827430106655456386697451665666159611706462368390730232433551992362296253875366668421079267513695256075204944626099724969868559097043282136708613868860401908337404444127631521785170775534757327088243660587321563323368557096708296679496962671429344876280132030628669258464025869675706899559330356595707697819072590311977454332171752096356733924592550364649606162685219617370966671507051841400296974687046942666362761726655266401683741525768179404381721514389688506102867784893025883839635717833774462477987205995034761189628852365519748175128185820204566084872979307097448137720607269620871398071747468977818641975046671021736897200255882685906054167104074826678885919703735951570947895121647077266582300554164753782017441263513640282309512449251306806281776180691721874753388717192012542678831825353795553535789623485928680557669588130062200723166766612293589243742567809363116534974319560424586784851840066026673476335713074561657795474278096216651718442118903255765193597216072027039737684993563656491647125429778722073765365098332806814834530533606006468501129236129469508206604280053155288566588785900848069662660078810117877168467295423347727416077694490979270528524976682638614570983072061776503246032583945663401245664447626866384667891604701753367798786006072623140154223831264924689735729746556716753882462065585541149766676658849228366788896186754452939646841076458240575797289232997637717602151811495861475027724651680401660959871536506004179706046968162819969927157599678520753838165800039375275406916644910865159321625115928617703648089173758256084365837844084517874507764074183456629649859639312480563032210477381564464585122293659997196365840572322620048506371102434896927151327696885146119037896565497146857674320559164036280916791502739610513044564626347735352808100672308657958070295605024493734641218094758368959375221092767208731482256177076186193004434630286679652846448051223738397111288091695292907461162950377233524056707511899417637460947111139630659197622674907736495696174587716537107265813418487455020500676773141562503092255215823219647775371561946366157110986550661395563964039348076126058543637219283770807130877308527237581348642663515691877485710243108340751861754751036083332733604807986773431445936291394334634955408763876088546380206111608377731160705638577284414782672733069017152269735966562554701409643166673093137123588980728630434916246156247411065613694067397951626047297468014582702879926468979197846476175519588849606469260875206100975541970313657033376294188790811359256538035290843461624355618773699241385587866175514285061216581613535412166830743537559867857971406177339711658172694664336840075872996211686674710352591641447461772060579542787263372081767034254628588708673619896517187469094037619783242255424985396913738891713362921773396894436654205129715316285024608942469704540395560595612611369304974323136975644220798660269133351179896056272969155558886247366102800477174417677741006588466596520697374598230738852866556528222957476009990673670106070576094957154955562506750493072670112956777230835668958399073502858316676977741566032222265221113097203486797699806836958541336677190548189659517476160938365185014038960648041859911824779825854011003697870084052161121106487559845600574569058012828686685690214645361212058275891337030976179179195104040092033469719474665499843732722033573066785958705863890742601180134819667901516408164884661914757061944033246824956014589383829767312953075444928215607963696765021779816810719298679260013553731897796498226641739582614751775512017130494467348166382602793457368699354547061034982542989884054451374075831363570695864045067505288245438764697647546151015928096164243127456313363959590495757613678578326024726354640896443766263157021907863431697481220863473644181683005111673132463965914596607163386547541615309757106812025055917517711952249254710598056410972311574406279466032871596815633276522902385268625145066644782813745414022770784280946498463704731946647419299701936885651330590718812968327888125942586442689485264159018129195879922171732420788460079043726261172666713559999469038004365206068366149281022971998785305983323220659132220566523108056044668255719198900168402131376265769583620473781870403980567090607829566251898267017790625280913771204258339968518995027205072438616379788555222865867018036215860748999580817727063331345876989168037578822035555230031815271112434500710013411637671264349731456505012073633463178467898740706625253219724272817062196417105463315081664065164367046609487422328723748962309862449869875613595522542043425356078600307230160797559466921552627281397187827006733595949074613233296858736767699068948718777783454915742102054527226630418887473624503161360840257739404132065326635745911735589617448504968053669336627992355712239455950759232376604987699584830184568543075235050005765644599294074922331665605783200656801728162947423596032256068650671139573287060426588772155550230041867375694337099904594592446922859401799556358746952609893846550884393465342699051902062493645291012260523141795843295537735821492364859662396285639237153935956070713505096321827083180362394072522174906503031167576613870666949627482058772084675845996919374108306235314693353578213599759079767748926731754464874735468624630649224463238634737112400697591687588562397977477233587070629614219263604340947424702081691558645574020071426240546524694182254458556254616389105973606340167656501911345252641130517395546465405146485821245221635198631757002679535247866541602803123061246617446451767768621986951460470014646189110854712257040862324009945321412440586694182056167664426306408052620730253260053524886153544103602263317753842493546059053200525429082262186535455679188302598058258061187464316590089131520090929663439053256124388319597893725961957730675253641959626732300957604280736375260295551648900863995136546192566458666292641160729878245628556069632617520761507847616426620469678223884918536817625092437251529688485263949632476473805344600938436659885930316900230971551147719267555981305937595501641217890257073474285966570790618633863664448162395483166462542144318850064442746121469713535543057157562170635842443835619626701560683666785990462349587687858762521842376381907148579112310263942057615957029817646753887552078633996079111999636771899064386820856076946281606164262558045523336240283087126205892069324538545921010454664199611971326246556139960174587366194560160601206244281258626690205252760670666128061868623244896466550588105342104572655337494060653240215994036644640497502456370544876327503845545347622151596105496489923880560946006957466773366119899276567769870653902671676635503670576929560951390511456192572326650131709561519145926175707781680264399991457044272429681709141864281709917473292432714006733072431110666606935430694959283274202768507236557689684599862010312474286307084615580789301568629114261907647108684610399658216151776887358034514522302767915679247411083301623536437970767656306738368742642182823265084913551716031857734345746653943167325910808959691708723667029761286798478191791571501637468567574061779976590387023647818209111296365296843449491711261726558066820151877204525650375448074484665435023196515687365778565681935826763645241639264506671275944556188774164672671720765077428136858456720625072613364890043866667637786637819535973286580436439999145684989257711588467671472466675772659811679516464460653894235906560503626225903913091286366984249233622202398962345047656552065171181486664566809381166559306442706411550658719813461114506160523818305872988467145539914415530890714367781877037302790441636066723670595826853992056077205438738588528748863363302587412510149187653170266510387496527268449572061207161835337896427660278544078045767485633846917611386700684261213861632655271976612690739942764670241956881429335730240109410557750761945287644189893211955045140716367048155588380972166273822501384844555647909471413983314101782208757728327881970829951987101986798569548676371335525641214747237053370888219302120582750886864640272117190298428685629706260340337906699909145706653820651055876907006121009663897136509149220117154648451193769901207862159865598734265332153472162073328258869696186856816064957208435152398204369489153756611332075667754770057692459461950284647715119934752835737077249134539717704877771599323575590224044635960592262742731455793801357122164661573984002570993581681099495148652833224365936211638560018367601869639574886616095607316352255970640287482572936121497221511732649455362720292628986990417636589262915161692731755828232251677359263162720767868128993246161703723716841016013741439315023060360641568936773843648386593557167563996288517559826866951925479550688073466858069706712397307626277319861497767581805482310676090332166894373456517951987633863781565500331696061443020651599862371659965696235187550633290818357184123286434056163654194859569787310691353881775928062983640249189465490331727064120701667854303668934693075554736118689079762365372045467159178060706665815773108425085011686584608610235550200036466429872366678775697317371667417388501154632729381766570241007190092721623823420968414224341753845469740037026959506984687158376870680818251557134035866383281029645712953162761024295450323427615263366367058355885201868197523981287771558177426788266733642962098518858620816838087935629305644521411925156407909944139553127870836010137403401212642135671271463350776358718860580770167151482907745001603109633489477272902454285902439071859351032735226319562778186997416421236725404000866379729991950437253616835228671442124626460376849699927635291658766144559992559107545105310612594678511377874303476054972020476914065699744739047870687229665825662150113423286761466682406684941030544077484960205318495439292861568445316268380110156220124287697791188319303465306399879241749670173671585079311384546647640258086651158585606878018062629349389360492003245315222089613171589395762156872841616875810341611652382207618092909786089824045668699516463691613958408619826349085960680383437065650584876976861779592387711812577695855809433766638723124818233019976163596856199836485066327709285899825383669301468972810050536980259666210285018157739284736375294017694012965054282536051049102437630589636361795301476507340122746923221554764820651788295933713839482064013177796807236175554630023563565084741710847372709479085072827344236752702077681400026857948217116860540329588756648112241282276609656306748644275574723154150472315415047051122241608466497060438678027217560399701010622270864919421721381960647370729367484731275522677410593366610666142389611704404027668915181614750268696632848465646658248369125895581670753285657772919455771105141173537774702320756271563858197379739129708955935559209167911568713707626891515664857086276762899960692264316168998493745159954483608648236968307299067064850671679267685671657828415794751342646589279771425621837371372883665454594458607789017289643950734872368951082213137116731405650343563767867497056547308482695895227771811022616644079391193260415267080265737435306554690260165373945233431030492074864224137404738856612727871410666838916672446943642436207467420625316777616677248800066635019682262300374076542031093660927062273470892045635649141606456538463168365295300560015249262261679881071563962135016470042936056820656653670774757478046126462472546540969861569792201762000656145985615168608530423815880713456372499356718995204060251543256771005076611129392953545821546526868759599782650865979212087224313452201180518466855795301211355887653275997656559930736186903955671847816371780985546378568018572626787810576010985477432057666411220953666437011792806726657943337068625774285468000517588844332871482364705439103179740816119248397192369312859476809848222502415863067514572885548530992735980025562089038375760447216628525804063668336271175386734614934909819718414276546360758672459483256070996076305721623705716778266941056686962492501729654999950764547776035307060739102115661416255996133526775724056750513069114566136097141719957596973021352406224874651626284574968015025956369002407638476482572252146296239390758669334796062755713897172103897504667375168009543046813791512557097468974705208696921691052104053002274987951025880644420739124744768544563186026738161562873921663098008176035876628642334988316030874366875421295200519058459994179459365308587078926141617245911270298201297452734575185952049612296431815868008371673934983967330111437432153716669241896860591151526675065422102577018565985540466657846976924703903540048921069658484567367465192146965553863330672837135809036575020231570159559647221533850701679619473206127785752638474699329139169171706446597656326725615806468010686495553924560685437306773236347537065286090649314126159506246007486926439743220022861342753067128498229700746785269130456756331425334738145320967810509106387297612606599279064679378275884950682552500710120263153695066881230697720685370216209411414730854603777754166947644407242912055157111900116680887625904212628715000533971364540677464473548148442308374707708907011327706136633894773120535566833221973710077486370048061555854237127571004569664040258185878206626592060510672487387281014646283691023731950038846355701247438623835376969110145606338994526695509244519053514456082576845672467482466168134376800948229654369530766998275455608204658703808052864508188725863227545648264294956891682317120087006528748907773013978846450910186606132639969139214701947872785634276209667414882556696123575306098123707376430764667731047438566750546448489061134437495962014008690385896464949855245028505221749156792870454358237453350777242113382625442636758438104731255534426006608508605353956898717149710992623767936638079465229963888014906597396830529747859759327450207161429740675286626869512479305053358456643375538970499509041913105290556729443031179201770074791006774629223640566492152948477777348868322630130084167711131246205269608667355306158815105326061585530728512732672886998596168329684673743678657400702397019265053164078945965192730015701909646664852258974253845977046889393678851458565944005695470908843207725150274682465236141644322673853625465580317746608305802490258415636896257867629117977184684367698033005468468036715902363339610575091768775106996740188215693046493017944472665495957797740860054565888608346325684324734555066251145315585518192070733165731811924108065839285009596991859263675184686598970093701381661371575897735079126036116226868464273893636679999105665683438065818394516461991172416775612579420333069779121161512350067677461206054310501426512878319698195212733666776216140000916063695742673970445061200343037083399917723959263354619771137404927991568856981665542574156892541500658800748953175708025928036352277703843747996390671544886111056341257184955680292872989157376308926697842942707216510259580054354902148389642785407471369589749128543861771668256439671928730822142866716159757235646739645324953369224304396619783345681191850558691588346525603075681022751370190224126311565239655728985867953344795354841462727105644868790276093020993827451534889723821933265741455206177714655629877484474728306095538394172709285663162569643087476610398630342563065241409461792068136659487603919024401806718751235744246012360450676377044501655626551724664935787595044003406587812095497759096554142591486256858496628747434067552485247014391855744373375562936645325664396172545510028865531014056066458125731521574174291995989609769406413408942144243871750152265606832586267598215591165295577726788542099716867976163945530217148431111549694043464847350185317878264704031315661766939266201447746605667665365142400826922979648647167921161661958726578315260616966535956449878525672824902714844435672982140245403929478614286702667944146635576707283718265807556018570055511684649639873211074556835336114414869731947833465892761805588780324668733178774666922757184671267677615837069442495946116564224731322413263454791947263480161210879812168714114275975007603682121472263617883876691303549686880186669535238577478836151681674265061998768431073823275506308850469597644925927970322584893717615727222885980133329724341080413625248365679330323714361348369202132736868422237650159405761776881646507670124638800510873378668616723937724635280802766726343356684801165720784137754356897521234216108653452351454634545721685582626646325790860311680577289394417699234827112000160172475510847322699603571272004421428350507152127899617935783667642904405381112926702368966571292773165879349307305214111625781806111803191127369230419686291609963774433386181023970120252208370311738187095275677641003846667221075136902638036718005567717040342187104325881719274785158373846405624193689696273691755851060847429796127689550609773239099448024498246823839381973127983672995925266577735776425137437690377099362781327381680226429615067734167371209586164514228701483113167369098886548284300574971065058311056901216721376676668871254339666376498177868720856945560322067325092840600178159100769944980026787815806717789702357128773986077741372675430462950442081725867430442642742013256726630517362314542647992262769199938245834160582542803410253690735166660505453733306974859057858356856037888541970734464686819536099292192536594368050590183046345296942548376413159257848586439190915542221151970759375857406638909504377590673764320225973205857636668096073137204361069321978987009555712355319167421387767348892565640330876161157718426569940240660336897371518347286646894856693222769411561530501124997487609842669970317883136458199763623440684672637674167025490689191558277460975669485914829762663401909564632438546786144157689708434463600651507340023384667090081858777593016025386160711140995152539051596303057845667692551560850569135249032449739260000357003996947405663255684732360465656234586816937400682678561164901731506769324329108551287464121593326905897858658006703874207953385557986938605973720754681460346245502198650289564358474426816872867111687248626066164280146242280355709384431068743434615288638570540804773250216553292124711452636274319657215458165512543734538472882180939779469769336185315918492620554608474995794966614148999528927559262340347321163850983162346498628636341469738826596471306793628506939267605443536963936209541841036365484594056667754951732490424664850633586471528850738518925159904165676118329452579352628869014706715799763254622871031757437981375109482670691722163772137385826647939082632566532642858694553411085871712561326738593120064286515745848097376698804985262993605256850637920738940703265868612801230785453115156145769278053565834841243193213717859659605737486993321692797757453080361786562716934917165577656294842264430704186663214912627079147164822748896877439178611642843574266487226505966881645246726860623745376814314695642990682613448685476997518362543202174371781459258895222906498762100541853143419772200447083686844639407730920591433776883585200149671143954540549645838039768556223131011780294701986430134661853731265363064966024275935853786598702412746465399844616550014808724014564071987818117117418059661689580056050792396074063567677419300299043514114002180586474619468643175167463190461437120596247182432282633383235463595848531230424737379124653653273381471278170496074832606191358679478989673957917778775775898535388785221510803407071088984416522654206501090316268410466376557730815722175014465994398602020654584683013367351453015901169042952639538737972593986627120285540686112142065283165636218853767704942575972204689021129775162700797720859634806802640419866432866196689839956156976473656921427362694735442210914276621719296581726402177060641156997307572814669841191160660655896051981299571072799866723514267113733482709402393520851168615482420301692287688374580725937342208039648239498869543149916619599247639368723662053460336605187855692258721050926968946544386400677109496071314323516491039420728568876370176478416339913104746848883369809139064574145267030061179101422729746495213274808116675794974853203630564157734265905320153271706228784768582524177434277995691963116558278452752458932296008250453520156187866287050632146696857526641357563296507385449024068686602459669423484991928094462597035665719030876659198914146077136835583006263666093876346791177348631306169259445133125979613858668566003650190758176232612623621026916969641157436749397733663381681467239781026017718452728953788055810693015997890652603259091771915488216867274905729580604069861383616432456038703808872119299136907152209234508748166568797522016117832632684189014810795586191516317205978582652602060698969700790776534627227521513243818511925967473754431587822855865378821406475868944649979230718966325195321688946709018559763798448156376360110612086542464495689387379606101554538720861632113526895971960696528067515327830969873460015019815531202631096068526188315940656005699343813764877360316402465095608613142466536889721962717332601301952367713037757342247256532230679664702480146769428195170483228072470144365805197128722074054963592591445010591025640699261964368263786273766515563771904951074984647125723235609082070274141366667221213383656296355969765741436953472488742128524653904178187067823364980732326795704155676824931566884580575023419268734860562965602119346120046136666003995672914680016636261009524313769920311025970016446246685622413122249467169686192316539355186687578152668127542505967921820626864295969127558416450243979686904749138950381762631923507360046414670825533161650746455800893944744917164664854328357318737936730064013368778231057267235869696314245061862734937289078794641598404565660997407281631033611372981764125431906992943920670526594458374722001476043890635425157369483165846929519976661569583153880450886764280849139557808366658903308698773649884031210973393746963473636631643885570920634636579808195655252715674726821476691363303145037990766412457687402554304597977945571310020737193798824547633510573235873857034834968150523968971259239817123563796722785403174065990056780193797509919835960122213306697276437654027008973489889186297205502698872908074478550425763000896720040764861001363006916297656615174362671562499677129427767748883248161446440076297903215713932986470429624676408381879708370421065663353706225207218645304309816838964637392019163721730183068283070426158924370741805001219309466826375611820626470186662360475665829778516638045550410656712205559553635738696703919254658161329272751638451232157206558896608436399688450354163264577657440126716737402933468855888726492185351730070894361895124367441100402183402331268926593027441355001706385491271371236036921497281746818167070773832481279922064509594958356291328386998759191639124138573787080326373841426711270467181465397068461973391103931647620362692165154456666043523312639330489765475994515402912682632612968363518402476804375567212847182957696662627181325288184394030364457998366881949319658474472554017326216646301208583615230262715732906127860998635515949274848465076747196291584158852867252647946463888449214515518865703733046185678184656273960774399370536597032056518767286869417083936229043085596589886957805171665493992772560487653758617140975407738988743348231771097679017156621604733606100814329241825867618966568594436873291563511834191607544766237842235925773983080356008949769628869242060146027447169340180672211598073457743847066619115646578566064022644031892424321726258928463056007087152197053708420956919914595667148866069683270126370442779796847650640142389041760513323616641718304678532780767968788109129217336370940558655427677871359957387001521244741801510854379762456838482431718829098563405857056679907693147850361167837784516726549273546632132017087891256900871358713959806056025572557032520294561805752868066878617138689670650361971468549838281175964617726363061965923411775274645117729384508567002010987174165703638244034169168480266862004057682741624271417080117300578972682459596662315054626741757955653081551065814929906913382630702238150970842167356066473294715885674771242712919392124425902350383735156292974086469987422664956674393890769240491306514828333555668738768381227216975027132571646525016579434405998947588718249968126773786670244732836622086430614249800720566324626975915178526139685855678459897451181262672560128174016652016977001899645685767860568483026702845756609688154062201712481655581066172006251133019935680060686260709609846391717373721348221371241160636915140170747379417561678566275547744924566652816274400941607396074336703294425864545900665743965322685225144164578813932029889927178292819367412969686240709883612356184664370054476633095931685093310164098845606526402428701056144769130044176481178260620344414073226410857123196636624214670971111365665770620444691643208521105340996028988778123360173873833497157137165263665067618150088879217145971905524673040257472150016278318634662267458157746272346313910462610121832363831363075699044201592268497658957404911151604855720207035672675002636879431549710059875360301422296580037729558325075755114457156848608377183818157769721456075487805027533157802464527680426264809780608733364715152501156671176130710296018862223170941488571196698609380267842667205948389933728246377126266712463171423486069341252177580595918596344606293796931140930482864076296036943038293745722992565375477456439894606742768615863218604247265434356656129771056539513799041418125711285997697032516969594394267204889286673239139217837298857442271326654128661813879673526970955760746637150670122792284076092196833662876639214352274888346805075862501121754281371691276707106972959652374761272313638121938903790688608811263016810396920333200726755601365498086185504393290653478757161015144736365472107701349181350010780136767262496137155784705008164770015048467202545958562229914462284942431470252563617570303060511582287017142266707999195655295675625620383069948034556584100209591674007062201961406085210527564828549652144469255335544897535875235053141775237192280480536000437268777508121214372767662572402472677839466182738444584227993167388575489173357485150078293707708629463488626207297422562687003740367535046557285646393593469683866297619037373940303710156883557963264347165403991738545877819692960557041197416032954024129593560708788375751913063965536433898706879032552447506886212110110503097003674640221057479655443703453881971921457357329054545549891709369127315756938764438691367165462717717205921201148663796158472408720187435466048736709781869807806026692081084711378122767188304736240147186995896784525799441874267574641007409117271463965526178472618133710966684791683711555818558289381956722128932660780239170017578866905727802714200350073290467616465652702561587476756961075217385956790179612292620630504276165027099529941074556733893347303738512661358643950698169436596863839677446217069633778366367373171725162269472160049615326137244637029240352842192446831695639722646131356495488206926707579630451319970014080441641516448668272225474656748851448355121616999024129769694164024334641433093945668738812668779557256269345804580657820864221559966122507339602478409874706240941818516380203588950065422394886874841225632356750463906558215299419357194619925507108063472554761946449915142595418566966594519796376590549596043936166317570079800630916075055032727190094895982169259987113947034745819705191758774279649626272188017568916464656458198767040838276606114854968846150935381436220749851965273282210986172415198684907130670898003997178767422737447412670186816687121183694730800841469254322885766175611705721796874851439316734714855610244834754428167451901948827745416598467284392266340568034147184341967543909135946431679687556269618612514455486811794666725039974862761761212874252635695549368352543037353817358730352480561145365831714001986952483505714076982164794951351757924816717686677318579373497045110712747086131810972094615097647586599009592669578805263293926766162384094594469092373640771937428949372569862355758531203306046587381733583134361403237751624165148728933232172876074436916761452743186875367288866437396189911740014626270034133435410579048562224484551985368317073918600747070519264492625176696344642628944132660410739827322868680705369218371242674056368302335797480533696742013373380536177155151760729710956161819485426545590921553147716762878994621923269332717166230962638131656463036427166754469820173368175815039125685854970166850718796286998244599967777750819332711402862234689239081573072424346943606174176262206654643914587466856526683074623968372457096719209805504251898971080096437354157243515228278413166976997136494757636312558173239544775345423728697541129074783483716444625504738744430370315489019862644219007055615463448638651018086469766771941836939946701442424869161604556798939791134927263965981602356868739251101672137266496409276965041818735205427374183213066590105860594591324273060025457232194629662815595167192743316648429956676622347914231111476509257344734868850970624688142074266693677857710259337390111863027505523269568814094501586242343870562378077661893192896643371467578251330957815289856696064250184780021320450729445867622029600467737012147893106423061187667079787763646794737103192714606383278264761593346692017127601835752974090977957358560164694577489158885406466600075355508659133463003186094047111076227015829676391616159477733816005479694167409757858122477837111183577671849442473147400127117146261690319236167422647567038117755595132885717984406316744301835177403972068290312536234553207160755395866074291337352151320690973837173929215989061652997262094063737046302312435914495943339094633317683858382520126050464299653898190555210139676617870294537132053969179712336868281483606461509211761988187239742447743341529572362232071772519739104220522971867619785484711690681452830871730716026121651917183073241593852058163395247557327221505527441080071926516876917572251665524087266259292915974815031210976842658061417846160094315795128596587396481861372714747369336817551543834271353804707169705445682013706669842118597341761595654784434674816086136201723470716068235484135439466340112485837406171193680517354846286585265134731655068235471914093846921433778743626614551959215317388932794529040480667092183546352973347675177059166945891457121905828681092429964250582806473874583714535213070661763865236424535666296041063354102157322914040643941458265317098747398773379596172572271762475585552228098690570328861989417997034384399214023983468495150465673569022597064922514529454727040097189729010018074737918336562609711696459943057922514225960430974683664181952835294287269221996569660084459584173495575678960525415231474539010786631447254678481212664983073381371330305491004368670365488271440485456212139421715013710865907858187118078329699906176963109847955246942384162885772069942772986582170310731431198918483492886414876976139876579716915384674673112676097297161682761167857433319716539887303186267043866619967967043788686673818128570226414556489299695584011236357756250076613741017602297335073793083196320108134708812564563775987617197256857533327193558604426677339792821591146167463300815297342760332182527706573875819745612254296653607218644941056172827894597306977215665400883369024053196889009230748629098166422849166822210523651431327962832189886171048914670844169263190512351718427111631941237361234156946360291108114672651958520007156027574982651302235420607887925109780727569717234970668137707184293656672309788964261193397363880132630631210963730084396632786931650429222718980439106620181495549750115069395170625135428098197965226266010185855488459844689091980860087595207211410454694818400520818411866781892250634222724971719036966211890126666342654573432231555668150884724232096762597754206834450657663842929664371162185393045576592438419165383944307278895802629668207215528950986608207285631887025469923754015979102449689172140470588426446291486250176584011174088026256702133407741757443870992560646347418459738123030915638255916996750120712742574772751907935362985780740408329965445982196013998691148872327615672228073014193576729248468743295423967028910416724173711745944317962328929045251570198508988371868307318146246110344730630756770700146336257700744736179376870697441487244388823714914534417463375547199252748732765754224697253072129740446936736689747167781411148772825544717135685088743572768769936284598321922866399647022546154113116217676118166256209339700050371160934888831556100795622736981671300510106603839063691525998418420843046402133079721069973065216870077197367939695006957060264628986673612575728967930562303746085659568833668972753973648407937388931649700360106959820472156081670845659079611372835003012276095185076249819580254057567918349416483900807738570156434481065762553964685974230483714603164073361740296163338956689848177614848000316122650250603644895855059924761336814429605831169619081349747166314556609439597563001814957202006355619727673571257320226198288516708816378858079976792078551091653609170015881135620962896896813237119622815806550438148356888162682732955702073727680825595474580107113826367208756666886442731741357612568068210097008168987685328841074351340421542453571705517135171515142997236934798160679317874785072921385583601209576763856681393037081536155745841401272240118917292304640213890972474523071156865839447718808102366369026797071379616706337831550191587617289247554668752534810638660696913975025688837688558569613385890437022633615492616626156552001744617645672961515739534486800338281702519547516874343316968866434658102828867724438026953506126655024478159413673115493492615613424329173372869357002842185646341971863428032256866888130732436173473417289347145557732742433175065632848586093696137756644068712196941168375943997240568232671396528071222194296880360655724674944569544942167094329708747049166860882101626190610742204057403456581722136780132608653552351665023692005559136550670507390573743586536510416992707641649052118347067309897466646251615663864677226875922960632376252370160810426902038926731664381359396692157485936148704000905055566396027082806687133418447709596290964786120381395744271505840633470389787537248068900609538306765634320266989981304209480034070200177812068518718520509225565528483695787496960670811439073838465696748931217513622779771485937067486524882648961294065694937385155907742647481829252991961716145619695718592452870030463956937605362184975353960820954457425393214698766204566924059377303514520552591219318683219855325801078680112991563472548105112256069710741452679875496311072628486802332696601169148868587681027297149373718828277958604397256344014872638881056961861274576580655512561438689071575951697456071094602245007559972428446874075341698371017966925398576821927602628730028786629493474774912126215825214634545727545173142471568040506678495943663466190263461169838637731606019820365621013544871540951776316662956118629898068656141137163179843649073764110126083897076341443531911940353799719916561840693657353484872968025737273668093630610231263421943367303120085739162052619791318477146938963687653926157746401297076388688550333910970380792366466011114718218568060715457727295441217887283537170446808656871138867212431766378658899592524820415326623067447786811690562110273814954015427840589691056430810669396837126167216723752383819694856896787782850614444895368902574067165494354671805022366569371797040603220723656236863566279286908572869749931804319660768956339079302634683954169574461096855327171195974158112870383376985893042386015874730932079673569251437104357378682068866690702500155361960706374144289643349491956130652701994432872676384911589165522444905043563578868128067487787401849808107515501886843510684972461464515087515103327070584615529716373686011777451908636566673164935551517137177311733899278169908250396465805308535240419355900323907168222588626807959674797899961869059296800100102545472822763212461847325132909630284669157823702656586232679659039918370926418506244852157631914748764083359571024011288629602975050639156057375811502706417309911666282326795051817181498968374215900366947209972165575874064721387511355504402576167468669987934455109587071199013503566316695197318372083680037615161749775867359337248602667808774178898561273124223630857130269500307777248430303672835527165219061597000319639197522612272101133556455323741715378905968154349995096321315587322194666161904967331521384530492468257988823506225870092669324609155376254876833953564166246742361393749957217725719716810087072330775895536685988175569438874790054567452777476157391326172665752946996639313651612415711082374437170840110622180839263234159786651684798712248123252358639815568289926558407611258268567197067761120168816698164002242615291323744742111107474134771367352301188431841117615306734667644594217498219937738428665472700868447206095061685799457867512804236207574710673061916862570576665310560576970463677636844875272455490536791481513644602295765548970377326954644157802914595722416154106718585881546443503070941267481578036744421502721072191914222722235712300429668381231450075457241788117109680588208466612978626906090312743387461761118694905391700687661235735564506863546145884337559695285962592774236161119475734496853669438364607341159915690660804760856838726654226103695386282072487201516598860459651284711765897188247491486750642158585317493064053184190416600196195635366454672646080026543489313191583758974254033886462878272631346631664266350825783347992673341027069261530166481205326659205603967165587026034277494745832997452023611397013843174561298979572142859641749162410693538169663896678596530614361664673085264058454041256274847714852734064516887525884721910662780015863265018991840664033588900456312730676997331997168530287593493429521168127456767168285230584999914864398079977397519916605191484373464408201421203002713239132562643485005109850770738045532851778007397223887334682292514466997899131574529385371232683728217953667668373405620847086543226140316537051216279770971379477904629440181771663043375001368684709421636067074121756796225834655770820173515365887109549110676816645953869279086194028895610631118562562852327020677141727140858588637751368420956697136173692696665262250125682015763771640616670410579889667770362763616711769937730002531523480559456687573237220435206642226929714604364156645846256228774357715228437171616877941333502414695060036155108643967293485147582089269064166552735411056195719230484357171209911439107122735849772717731919746723257796663742842251650910515189069528646742617960098431881619428974696027491173719398781783686522669876137521858651120426314567318088434713376965395806798768373832317493035575675915493668041336826503590018609508115662098656066763252192650666739321363077457066977673560210852860487352635951833224587344798070130316127354284142582012291968523469737428317660577645267369363810206928824121706431784268702613427010135944614411531138753188666627957591362557707590593062560662357347059206284603327185970652162681053396765747004393666112619786886059162602682914570085480805644294696550608624666199953437018117689671411709964314248277160083698711804322571889262892013591004148276164671671535286877297301748975739211966440559811920775043204571152880017364276755662024560178524396471566795332176491450700749902010271497385491894340485640367443867557989415017466051731224300652778850815482266198719134627052139027287251590125705838756474160336621349623917604709340119824638156899012389653584996465682611585420364811565059693020218226916924361032600256151174644929937257833621667788050157430940246294809193719026129758439372926936340466596492750854501632391092782437649381233572614944977356034926729516276167821781257770007223451439666853908359500021395146716645617454629161724107461712962712554224858854369549947046512833514902965258337537771909503161087968824663319759070388874761303638383577368604272445453426866314597734688134011046603826921471604687186818160444544486470958228665432950363324642116909130127180237967558928623864705594341191450327481141156689999789073560266105760880364141056087972849292967480070850614176626674397075247305124380850283634697764127074436282975806581068673937719874428460337372329093630283849569889612316488428348660179596264030352947466764625665486586174097611097479237694201641724270905889817470427074740336941459421691217218584557152577457773536605796782805761699972763456207318536242690275650806931960095624315731685524720623195599565630467332778047027688025674694866866656761587390156297527741983971929326356833294978692114186853552376476641086103612494836671397458556414564640689077095367074429476710320857679853540263970525966481776505689460986950955358835530395975598893588718395308450115841045379091973693918156058734681706080302642544417199869421900671885626726437242302688787900270009546246204136182606743032761088028647024572845610371976011390783235857246634116910736857899275427312138947742162167911022820226997054425633968156517625109936756832768118000262067422515846405876750714244299560707272306965123134611020365120278226737260924563718371205163626170352128455984745656977070912654477291553338673648034274682594445493518740721207762063019120921741562880653651729872359897357152547956673388315667344231086951986763539683236174267281837310240424682163129656061703647086965994694709044558326164386599656967647942077671299476736862757326606008543269606514416063787391642326229370516819346442466249743493715564737889926367727707683456039773767828537421156406131426961161469161386576460916517881363471393715546962228939746162223365496972365886269723687194109067150810647374611734701667953665109962886017554148679978195818658206417220890020622088566665295056961169686205633317449702034346466378674307330993628723754137966643163167142003076580401942468690137625602626695736953078871572635785918080663567860743965485431507495882058199212109266471058426323504102716160742963727213137001862721712185529671409856547193307193654734253164507028436805069183694568478255458950627077230581722787255470856170676913299025699694383365713028066852251469717377854671437471737004337240647492144768982574516983423434708913494074887306116917512809161271022666295072675678209831642920398769000702447278035569630020547267311433856156708044620360395550375226326587520674713030954160388371436369509096719150536172398040922768329356826376244911274909733832359654473820516315856260610185501217490609266443081207113747638185513650456109226425802426401680839567053667237176648652556609568638670842352026598501484642957724470796205886396970108201504299171174713506962458411573940487567530302905160542934652242678266408081626832385619663691286663298329167397547872672685021952936820936999495218644552198372788512036757654126643075452573284660611444659264696066109472996875457441543966513705481063720265047028158780709172961163860935575626752813686049919558090411135860784744539656155755384813026736436010712864990066061510976442020660156032071864003773222051144619670106375054127632921442993406428361116719175864670822848986906782922635166249965654153805744805640702945754562493111696524694193578465181470841516856798337921651994282311158989697256619547715077691869462279097421407468671068615069625202615826522399706976906561418327427297034616667730770858620523675956405565592674866459897856096350751742681168338369907237414402719276831604504736665848461357795827496209997720003085813856055069685215611246252199698752338819716709877417258378649974944974180791995914413123747309994963257987321485225869734507494711589179475611349852739371999467899916816947572744689447286269352881127077689860730581307073034676325456463078664559932174669030875717081522665615545262381189647181354010686076570262084667521762191438656377578470988210281116173436189495030970347131485902759673204286053764423946317264005578504781058666440847646964857412749452889352648326186577497247178188042770386786006349038350599099049051428062445541520684594616818365927771696513245754599740779569763226017397650567710169534371033391386987208166693929665671120647506690832494621890720169856765807202431035206485156563029232876728264955669232664665947222935775181300560879200472377243276555053788702766270042740600269240598126805061225662263611470842440277205900924543503914671661478011157050087003780539672355665767117234491235257155518697977265451036021979715706535382326469391623887282433247740386090973593256796141590531629787315770411093775375935259136866348363279727321992301739733986809461727921286674272551180103309771679523086836003688653674130766025956706379692461664175334351028386376493959534661886782316419699975017895663660934048651696781945869432529203662035366299307076138750099190398059219398760525796653780646862195358812531856352652565188123176421069006875622437902593871925418263446806160333547640276673057639131165558689373597087242321173135436444145580617396465765168412835088807660658159473359059203257156490302525622704620754813591893380789650989991559823334035352426198669213391957613818615138166486666542596263219470146410978555657985173553387603285934131430650676016460946392706325594565590301399566931149576635978466648285943463637210996355562622660901819964205104645670292768568078921019794734195888964656730409990417278596668602454606814158969675666694168137796356136343773554648406653702765781359715471727708408767689754837074070524687172351269046620916413678554603829916168452373766711895686653773539773173386526503398767547050236568288995477355727931710424832319582044061537846433496426669712517862771246023926667006594643664583751230409626002538583517463780020057983616117898999723791726471504294676957383401621164135570013496175072340388577626104350555667886793709897740016165470486538017091821496633892115072827034157195102091740952042073938391895358166890561391149562015915697179097936710675158673489137585935898285648298217570665083205033076462688038468581587087669940048117482518439510045655471675782055951351331343693194703226436718949240872448196446163619063702609356268532236015525424493687815396166409589886037132584628315891319943181736166322285580698580468368109997449643869733514016772666830651413865745733851210063761804306190422607655429655871754042067031976539524983403164322149965445809602646174387159669364176539821291167135403468415940445768009185641399318373253312076107062868718560653360883175496582147844661021411866544005135506514594729999223912256230296344471101749065883366401146936884534080698428979354770935407184146740539470486669614642786995495403714805395660313313967470381666742654050017582544066676409176710414714056361546857199589369708798209668511643597122183962587928960157768286741075830517673688491165355006915741990460657095492758492204096909318898656269207463280265215058839097201046112560638774736649461518627520213913251530967338876421690517112355717059426707826233722108190967931474085421025697746763079116928711701964770881526968705350762817471968662996507243607520602438645135834076210987244019936847691867187907192503666456582606105247884133212386099818447066325880157730567083138157184227745530893275205884493559824918555971640143508338829057591994901944994283663693283899071478517202495467810917555805573816634132141462606982256272162707288025072120727687668201577786705456377733823695273228564506913666760623064817060328419866597900372712293199761618495537155971655103962309974583350086870203531704637677367690112137112733404605127680356918925885435529202617813820065189255768181797516548816761653351991159179377476611566388688564729369575690166103400990719793889274637611592081754061595266727668946306857180610620658162163563185741636359365406710736716753575934546619410092712990820568074217006365925696695023650164863883221053730117722329455620777045046132433839646279968974547159037430065993730366486467782753646295673479214521511760298918736696093937182938910578632890954704397207073472537735967264963111094696577538043717350769253700904637442677229797405025567823471069188392178904678357062391220610613659465173726846377624694128683974264838638066565074222540900713762933858345022011243738018989871301093076740714967361151247192028949920943508272645730216541862848696920261462668146575735511631699790690459526766787198161085634781018670053020091866122995905088858680608392248954018559663256446553375675567527856070681754406960830816674848403970623593235944755069658294667373738962275918936808633419976974624975352137987857661553897874504194296858782836693188722671978505296957943139558713824268770311126475478673567380539469545668105853455009505747764269929767447211501027663341370683714726263912458361243108421553799941560080232887102901150601874218970926475306860969636654099101563812215256473467459706978306064921473256025299298673931779162781263937102296825541460322470017740986590815851740350737471863452141983576332730432408170958888446324123248565802783071221673987037721856793574414715624037663236291177274941115595420619121052073155738009105594571216170970166935314077578185620870564509772645286910374515838356851157331985570497662659803484653639754006525720320529687503259305755716300520693665556766664084823016407738651582824042860455290336645150012172072979419901623436301476784209652053519148600616418840434661221059964980293695674675607589736116068901268956373441549504518374966749091626512805958671163978743520621311679617015730582411673773211767984619777323034515645853202870037327926933452130555415708162688366786834918606675715777664763188716459191879729787521661502356416722015315412797508707474424314302529169760071117115367199602677704816048662126332818041738627324858095202863002978887467748231697467305369204687787327772617748280962662131235716777434466648971155706598272670633245407081550251662920922559136592106430550049659847172961697203856073610488643964710770115311321004148678191714416064165810086792974655721341023056776304947022695753190217549971553289005435690585607282925613968132774041889116765303032727381474567864405876908602773663371416974419455877195839418695594215858236635986911099530713875705670585929246464569837714505478561205583407359947598668910478360221977147081988092584014171174416478527252947910714320863066593127127324909434735229454561861228816358231608632591355911894608457235974824601311452272237197496415511937590197605067313058887074114097707963197868377139567185924892705063200770534001335792598231734077885010863007797119134194620127198858789325097024742792579459533569168286751385287159644026443520681939566456206375892606881668650229659801062596848756219637700746399625811728984758572717192535826434791185237704571983357896353898253113000098411633164341894933270617448504466089522886526738488618248217667896675066405637774554822452861838011247388484250664050321165319766475151306411192989907252044700197025572998572566135169668291377360412135655042826065054880945785560948703054981468645750206714985984636719185966378469927412916950716467287556518532066194773821661934661465692652137274598116546106646966384777667481071177198970392156130562501274855949682952287260353301586349448524663389595774422522175442043180580213669066454128876600030839206425678862411329176298515217585345731063283389266438301209180806171451680392906397078924645544015666286696786308405719587694034966437768296677192861211006146120454956022113450876633025733765800147516644350911208137920264250953981712973276717503881263705144336764028706123159055972803472825542518665637048183367513915686864059002580869425372525342776438804728126276465265590310626452284360596644126757573727856868350242712484047019142593245544272806607569175974323678405158562456327115524590345766460582492256852055308726532064157824238957411526056433520561623137995062245319885477519218102417362360141642507458498647731761883173867825255451248668728069925413713654517231454385724575767957477341496650652281698210943616258711041158737410198869917453593046587335439145748336997866608657636212447497643806920572732220569976144986304114779641857182466776258876555528878182963138657447855216561925031482525904196284976450261061516248706357662364209911088582566075753526635974247595857958070217104246098284698619172816468748890929240914296602846649520339501671339801745974677256208189697819135934727138075875709168745068846569776287910484651887909353117983662438851466699309437669494842953734745737408442931679475387174192121426820983254747116566067389977086132886596684416224758561750786454244090441488829666685920071708559806745639611501878373869365869685449737958142276789371846789666213373516537502663318517227067434600264660685365171663847136215401730191088973368877613015647232517585537985019096061866399714299658605068151441928371946068268594222062819252679165903556845204042826666024761356470529383586207967458292990236429698738646963369959142873555082650900662641313970493740586699550170645765028621190940726679287290206495957459237601905638712234504881026163323003555221900910579807100520557224835616554304624124794964653290566498525892595994802064968404731958948550562827516573211614405007266226214681379256527482966796208872729709628067304998077127701006716690245768676769275749570153597188257961532311227001345464625885370860746991725572089250732458161366474686729770532461979287605170276190860513394946473038882681657658868831865016824177321579224482920767161216628023412112818064669876062627322181703176745455557936607281780970763546416343871528456526645280432747382497371081464682027273141679511049565513796457470410691197693174066086695346548039726514695507532131928270394982337147942614111125245282381459365250270446975569342652839558062838256121177417761618838106757017290891306838263727922283269213597615856700280648067053863961183526340708526702380514759475678847376523004678049626580006364560519767787140918676536189214714556171217344419886035359486653583896762980344027270425919636232989156675617905434321361109555348763618879736813137504649372589972903573317009971315700569452862450497186324417978733845070174183466307353226073717902681210425452725907901095698823317571943696635219966748706978356842628870067892193941862022309128391995818039780657380506203666669991419139691756454826393210657666065629873456503908788210663582153063791811693914224521957073019826816566438696317661370945719487778916419638207653896163717882192596654278608661915046259572193966274085224643337837250610935355955971866592325387764927230745099838986589180744564056651902095663464509643253558886374946913997869157018715566789907956159876795745964797370360423076278856198921734271721603863062644379476213826486652469185874565457276847303291126665185931540918640742611963141272552050936508639832112859876537896788307179687026917270867322721775807018592313207014101837941990005178736125109363741645936307263719724683257965730889406950075346139753583750843990677372515522550755490521331099787016397328743082209959370688687307047892622827273773566104286732736413700112540269518964426949603275637332018968836057755811992531586673549772201545125012995331636009314154692264847012760038717734044369510273185839370458668784906467682515785304654092663091323465142437487116322170729835671659662465226898374371718331933961446496866550981521643596271473290067116390335740690981764769510309645681056771638064218563289399226615002310672453778812276287827187112897587594817662179766625817926425134580669873795418631727158209721046860773165278007245246163530751113964340577935939888152633955708065982921375552853739645493761363136616736198341796632227129463132382481586642664595925685358141081805949743616506101183156228313546541407436511583376459405863155403861769588864429756187749316307070068205331931621252629321964025538597911677655417565605395722325166930712619489044906103221473631565648166706416197005265161589002661111468000376698896002658644961967469245687448754721605160638057342974026261667231687027781419068200717393944448738992435864868167666891804173719926784669685184447127039155636441224662242985346885455600724421642056422644145953639083544554435351320709736359400181105716650761802357611805200852526830899421190008546984997561644047670769132182096852962274589185514370071211075064318719591276100466694545026769707731631579600274627999716384749052660250806956752057006694328459516325518657574752556552630116638574337310348211815814354790207223347718646720595840379912633111899964997754801918527393652561099721090117326373007447516331354653363620205971013842638434077457099219355987452252635338888559531081536670187780171060093544180580762608438781960593536684816337160174632275189130295613950414068863808326998355959694971197066560069085810013630700652962470461712907187609139538885349607620015465068572255916074634637297031454462401735694050496537952228763984933667427522270147940736122144326268562933831429727045526967771268591335711463117089628805956654584946091707641693642761825773540189865958520564722310094966837595625434529674741306365053546312736559842776681273912869807877765524062062617463139867445120422132448504653045405959693485205504972477728070860197832740270214368955665911916583145561667539860277401908327669757398868169809647450193557725078365765428964945101606496717773134059452377171698647911967675648131159956056018790666113030013656592611657314736285631424841588673598164548353776507909454180712334174558527045680345123139080440273100104716013716641636557051664918650187108601455299428711580119512567472575225976615206564717499312126534415666678016277379789712938287763553548011840949132197833408099060789767220404587149295059539029690862469151267072223081537854681461510336426431727833687785247417969207077180615693581720398657943713496950202562734424658551436174736491528345630031464873530031796906972490745073810772490698714293198935405841766540115909648748428667368624786597564051712170105853190429455325510330698260190570758132756590033487700137566251172877946523246021540093028356157663781362321871567296005966430346275845530071674363456465498440641705090071686524636368677576656660775892619078254665685295916167802474691671023564840312291351615743726031910859492950476196772315729401795167718625067256596444113322012768028026276205144409577942007070651422485869293537631504259871516574256617464549667253426670090876526376386517535738386571602981957118511835663245260166908993335976852117740127673818230750755997876392741099570671993236156519551199729090930963505220511647246958515691883760111964126315142590896101265697577375158585493136683272700562240793773991440897001133543187550901158458597766874056543146260143857564079976092637306585032566564283360186696111693185833422769158435216527513614591832021450363375846427353591107383335062288330206708403244507044350883765595764528226086584251652611887801068377516565205132907712263856260236479906426705187708404703072944905226218175282672910625555804742427096648323672776650762398640706241401094845412897325866546531375129960133288527210668922580378609367815242542055464570686748499863971780746607770263636772602170766982601838738198633999458559225928565833640511704608088771943293646887513509701113290662381645177431416095645758767965621242381380450886577120573415195237247436450549687514548064817600227363960225586123691165798817586132257414594785366172942353496693941490665148721763300312585983264234754717305706354223462442278556969621066504421421114852442955270144827739268012367968934947153367406598214379560706923677094044846733576018860167045286290592647675960537564806778756854639819580545616465730750327490818031694087686972251028476786503501747589658060271859037421837691606564065558026781466725711250698721300667167797112665170856762636297677850809465295276706452099600633424879266095321095627028054328850127639048106662327331535561430771109065339074491631706276617146677625719114433005891745553530303416518653568492672353985267309821883652533665464292219436304163333748925847668163236587421588847573821979366155079467343235815710597545573457534346732285989611957051572351106756001137041584685811464552688522618366075691791089194469830697059196171917592736257284402597031215870774338886247007853137184108964465372967174830789649788640816377274426120404045615353264014338055047015789939735554078167440213007276808244462954704709147807770462556747195373714670598219367966816347426840439669316459172273449476940266297749060669899281042061725960796308306980723438156068792394627149478431646723385266444169816572872225543880054170000115906904963148150148073972945739867016277397597979391459260465496628921017617053870359920976386425904025614467999760320087887007253329533287110472748594897226498809176916725015912214845956862473749930844970548340576022763707839436981702566083170667731615916069150728959584367188057986473312925614833073521024389627267947953104298841873284152412014372946686898326614482970966914379225960402098729966660764750596377437155155656773264562037500416383229854639694667267910339748544695105685265157144719162658114039612694539216798006096708599624367803239717048520722707717002161862637467965536555016788383640649831420132811877327543793722662975170964380966051031571678560811361966017876343644491646155441916614028126518102146632225900370902247957341178702719697359969598567491783496522621390854766994626217289689086721127235772932763336881617115673980989861309318732096529587588971931353019219386656348864701756075647664643072166814260258046537163261004649511543464171338966978641831641773447766434454406553957129997471675120109046143556847663902161276838918611677055607470164543316233865065642447661357448398781369338406737471923458157636387354530756731972563471059981887090612599731177133772743994055313676924706698253368994290537022187433709260235470414418781946527727652411246452730303311996982417565440606765773164157008111084727703980752592182796716878283600381495416653491021652970426844835511720965685352541401656662645317729048597090978680871220999046795761545737773767462320034946519534182704732271074868868517218079863138748028967011969037629550386162805961768767851712404957574452667965570572419640133141774524343997004310173621435791063216138465841810775606584906517323042136307446816555091215968042036197423010695597881659265832062146181909964525292114972449788966929608629726257070060676769072089939080622129205671209768065561727797222118183630014827954708984044134421066330664971633279714761653535577394844093714945161064216212267174907990500719398171057260065274348748204324346770000639927144579040651273306251427456017226812252525066846819359040827093219349639948103172253339515427458529697305402573441695157372912909683791755160667312206915811669661146567362325559595795068546634651598861990871756698846517720362861865677715716677707673715025475812942847107421489004575495108673084774646653585527571372692264765622346472470830730478270140627011466094316615585635496685358844716351615505946849139736261267025526172373548680995330559391123091246649126142674551763816463070283692425158661110589461716775794690078822765641855016781245711650787766773493644037088721170669390509358267192676733548764650275359706360183061930339467264871811652902127655535261846568543154665775772862794087011527220594666689858473854438896238681391707065516356642906576732582660699128080873116769223115222196838871057634379338368180713496534224469199284195873321254095707864128655657981868534529871118551416580320644563914255969923902621235307984598291188667028771406862527857677820424969488273906460128754657621310274151700636229728044726664522363272081056461963754556369610270136399726517370952680665654359204881636307523772251357826781923312615635776371365071136043433230638080098272312736581145225156882194332668585355257354778736710338081635839600766276404706532687802550917605559083336306416748263551712027953697135706317879298705255748815007560915995153276696753345373349371496815843172587257651157775110415520794994148072404242094079917931790547343849844211749398864612308885818447060686933872370793335356741941364626459639167952188076207486177700906158157716572406271763249541616777265153671215704377956649802304264451366827222565220634184554172355253146896771955717687668473920476096227110488728056231774475983207226962189688120992821359302455265746111715290972365017342775706957549590845624151284034287417687132647993005467554644055272114927525745051161977282687073662874569253555069177610727294391405731540302956018151867330144464640935504921283228325968720100984284306362723398635096347967620604947313520616642757635873550647346772124271660065468960839367357446516863531530402710043445460844117976153702445731460975853836595656710911015741335884765264969435318898715428679653624130339374357623255760980490677950436967175999227063551942147041026271234294065773951735638603667866627521046618162116710597453963074023866051345878720403792369010569247464746291203241120584549193864300274715366677804707498659663903815915616971467699542905463323784496676973964727643262761226401656856161553681504226870707988425184066822639153419963538311096702681511645318993573608178927092251421699127015968300767147181827796640435558573327541646098079928726622638667320729446361830223678674906558554013402145799065749988804066953440755892196754546844012614767179366393465831206237798966058307877430505635732084879668071851137553018370888241381999260059714591757968696642611123656532722817496114563050087384108533566693942474994366186439995224567352649567299654637417881448712322918770691411857003721656609118402357791082747287968108712326979166449375716826436932615625786864214318796030871400670444424864707334647056477088655556623765984809137378467374553174634368133366327176782945687450482765008957585945202732636705930164292625365935944339501418600270798119956037351376662961326064668551417381571996932204848709885361065776625106877140808697098266772797188677199986547742442734311993178357309101351655392966612732847969944364927152651815571031462174701202197043242587610123829471600293575967194266134255186529248670731677819254452831377331937477722680820065768350176661856082713821762868325589337112049743196544166114933853629635983569111341886684161076635010504068369394271495374547548073644673041939006503095869712605809174326697511846316234730420700262505510373069223876784059479105110128170353601016378419391720772967614143033935820236517708151067913045281366090630226539781999166994837846469621303634655425859379192445823466696623451566573091723226308955497204998034059097894597423839620636557586762646448571243733779580688493955673715226195174550713687099653433388547493537288614795217260142911066334918515652612957461870882087472880403693801988374041388305141267065704542143766452491606342858535701901918968622263446619377701622912300664680697197323025305945095251731028887265624231876981966630554476344960969301447283713562638517974666678103106906786284513373601774620398916704563447528937326270064869397306683220679976964464675463017452868758173011373065136219397004854445178423301556415590266070077098581982795274853773807284300338614145381657664596146313866707266467237645603203511497553936568829423586334071072344161715724154124617989099367971901866717572243137432856066233399296561570612559587980366665912926252171438721988846616115795341986874784529932030559074225555829779899707760011071239121257407003767464882431670122158268344509056597130775706906065970963342786854396536675803428869703645306648050161678865814366603116126487502132669937107266627937456656352408693628479270119358936500512962718043954069291324016395089856717611344457949095266564499185687539701064198684886120497904707265695267947724216558535960648703275367248713876941061216643842329167607078277056168565697199191866650245656286907699707374701966235386116934774430679219352067830872407048454655575739622268908039486699594854699946040370416964536885856307675444816071208409476883966821651985862666575186326838369737655140474869824313917099862372698919287071279471326996230914705617942267573622686450154995698939875566207694467198795944677845246165618088467142317033610208629364952347736363101371611149992565556099047043682823665534241766118115667089343267705730189962478126166724760750739299389971863979455435718206584546543358952636925929335720667724740951721797541404778083715089729868213971136027861989717075383366141413385497159756708911132561911694583372325687312802144711311094374454813901502445049731994565256651410787168611786666686990653941111567411308990744626384753898448071372690942688138308266541021056228743024611161040774772881717478747753734448222667332908266906995377658783760665463589485485621792746122826171092658118593700846456115255705814189555830421916113700424581330985169902884541407785666663890349874148225491554045262614950737072198874197214980083714192301471135869152077758834709817045962147472946468835755601571903456313457316771541447670868276311920700406446746125211864655567364392757355327881706830651360220584427302220181682657583352826217126831470605729330722078028348558196618797402767861656439244472411476577270082615583152152371903111066546862381584547943418052917206524576529631926682058543499265425583640518404548116816656760055655206929499673221582818586387371471812298655826035106681748873670703404577499107046658478343862789508056874799846719783049873063311046514400619640785627421321882161701324571627580971969355631265303844761709377201466991534862923517897182326523709325647655721764275073525688602244413666865761196030227183611799570563562542956210840768699348105302293150579864020972299919926261980547695105038069507791187043073032547711564351237077964636635196692795715555504516672663998056706073534745147421370238369916444972758716783147956413719187112140644660042767473903927356911977256656072937687357700567650709096660674875529684772664693688651773467441691100704467729069796237570364692475979974671819381742442528554445739165071672706388655549648351684368164750377377825185675426374262652748816373414698555518214764716464572714447315493399883684213319495497388269161421216545328092673814621865540572827208209597665885676874521072436619888921716806371250098369785402538979704394372660145171365970640279701960280964110781676284717489692605982364306085047067727940545355769654525087276196776766557615662454006803757231475971706727883259438313245005273102686305145959325375325720341996849499599664782298860312474175972736139700395374968606655776711997935668743616914560543856308935343653141677764543004831932556632640011499066793344642094772829744063433474795115436751222229590824647320189011996022066388687344892051310521756230716194607134000951755596337115159222667488945854300363525978003866679159943272656556026506673200710847722870306574397421119985641444043861282781511940214369644003043265611934587193815183602610918866155729201895193544131560528570978617147485490290670577157373732403871898790094698989457662600974077396734523724597987573842736925812074828664968096774072175567266155276580025973869730627606825939440685156139666789811846717599128537714766363238824926885785499671175723669915656645502722346660041712568126477195326283357201941200372546425946742992516710928351059912404165923710948739411296256547783137320274404608116554072734576461946497356677978524967145182397352848355672803387065346753206710882372697673055425593334354530435226548430601139352464065100436896628094733205682331764735461916632354346749564506173570031646360488068623771287066999344236982274808688351863064232144381164540771730122995060240808256991377097659978680467656379626842604056706012730214569897872105939452701207253118189965336540166223665072216664004844803818728667492363705626429977571868004846777984204711650331960975344206082498472577003009474509263124802638366326037874673745964771184360996707419333532835147670643019746483123798748647169964844774186093577568578450744769535956826804983093590212186165604700197015159845589352923865000934426716248811743795461970337638796824508134651459330510230498775346284627684850117967410796015784950425645850509656689966556243427397646119630511032284566445838869642735681965600321216927179608692918580269924209287438643519726075206769440045256089756067716031909165895439356613744462654674239769758648656032480790132699206354640752207212319386746672286763208095295521221037619639780870696193111514638816599205667872807756237276970781674440833651390669915613612281704554154610214899563416636696436280236713263282063433137531012218497719825338455517576276337276926601875064467398974926609209231655788790165710250835196480626723027425165411177946644182298712262844667183423686822499788176864453172639526856737598976982854508629066727969236743357029377122683536607857761496466146921345103243318220084811865988465003671043062951280016911987372063721874731265112288116361935321741165559463682416187037956837672122275069522782127125982519647453879856116302805554577618581379673671708978087004797865902277066667889546565436066847243946963284310880713045510467472441205750392369740379130815755442556305035888639048064856654802656712387592699466643971494545975844252401676419113665152944347268153670712686847672488577546356739443685072665972710992857028428318716209317569172161417029152471787352256126567133221659216623757060361019595266568536128617804312866605712077230753320605256030352138216146721807446121224755056294579296787976880687825310274952913257311630182727150684212177595366471817345713457569569145554336171246848669846121561307497177111250751718083433856494051565997696604691371307370248806257251547887621515539263274602517133277908692008284469638742177347240957598440027374127899167465570866712809858574830929295797323159748638735771314844637053118025128071756370127766486376593696800310208685636750864609283917360076770139390153171055964896519435090702119458769152254217398713216685175225472258709695651620180550420186710239689447176219257687385909062797164771940100277420246503634168948657577678451748310405165045063774371444406481287250648533033315409366456960303881430196611122484117206435299731771170373870656196255098194717872170614590009246339806352570898256367500712176290122799673162764065687786596855758915741326269464182421267999617012127792853683071492063360553807201246925744113320473412645317272594622735948817121177959821642309517125507062258578848807133646928744353102762405797151900152728203079497158151461216699743073702573580763645442937081155811746648838072181500946362134611648527086015720190147460735843678712022061205000316472973207728350610373871259887499483730681557656683499003588383754769275744315473362980726813893566826194396558912755660966405071249416016411581421645176622571154145616170080260170198994674838480956763629589683616805561103681357043744665671314331371773209016926295117709624206170588051906853975698604481097971834485026046064696714368880465335204055842553471706266167565236064416706610245667327161070382360966480422287687354359174760202656151785584123150258173700658156473052542402027260654730283869035548476944186997719378692421467966486896977450530362078856956821436498091937708123111169268099917326851672614654273469629951506470229845131330578372723009057226646696690466622274718544306463954572604867815474153636315097893398688750500214288844456639502778744610384174441497627333044432705362925464107983965861546140642391295771464989376585293147118469730474299078061757575023696545962018249916047164543563669026364571011017456458442965729422846059894005065579783668746309454272470573996521951483181131659161924905664349474261635223086207032957744969952357731130746439329631609104743165175252461350850158690730062165052248547104831146691969639761512673207071244642685977472471362536847294005113738017506374068195701196549511702382755861535297285707157841711450771150331047487043932996667102778257915643866552168496155792966665844935170283933396625145541681447331166480744845615125930565808920284223368272572141927369138795554213816755278153235624550466746592053966787731806999392623516683027962552773985630308194568483873571930004775065210743632564746761612090437493315151683165144673579344527076455240622247319770466277247444599818693106952114879955107059784296608189989719978644387161969499675998969220958551636384607314715046218364790342727165525145683923049070770814666301167234670012927574041920225999722143666954534866607980965820036397644234828471900778426132246322671143777767223870966990536072861021123643732065569370586636957062009746478419967182572587182946220645890762156766063496792232267605121693555665923616016675264644481493063191055406821614534594292853054647738896960684446637691847568694964277031629748737077317176917899317383325397321632180675118516072059194005069941384671499005217999450037457835467100300950659953372237035769569687611542866469141871608725985581713861568008822826852137937619627800763632673567255664360694475055867995361396057492678115661983868306462436997666780737721082318234340367196453073728558880267372019296731097550655909443361625712817173748438710309117271812606746474901240102146794272049502233253900087163905811672331517663050757646627827279722436138566602467447489573966743698545874139612535192893635734189938660518900677354102277624160207870013415716762898796609866738773039721336862887266710494672473550326067288477024692719863452692231216771426475923999260703718021573035463426324277881635086841950255833017227940822688266285265367963771406582901704971371669040780067231027803555155084068549768857121138015572594541160710009975772590956477116473729158179674559253079620976574141983187287039578655218184419877444376585839066654054883651413762465793605971697139135560652725495046397418668207914971877443837462623890606746735063682458025964732012593041521469829503675808202864174016467156988019526815357661646161875619020009497102562005653885285172822537517277203935699002739074427446647391866893196518301772099870365954094095681180141967350024736804299246570374833157107670567397121503568600473366692584135952094498684910588667323164841976056455699746287555584063857033354335658460443474650919007348699448582524785951567090856325229457732615943770093203096474481874735663823070677577807333953789199284040812231709526660539228701902547474862942295768124947196294823863370283146662713520652152601267278950586522554154707453685053842396991402705037078801286628579162965434816382058816636624107416856405447262252098916214301251662622081568313324586306051657711975140766296238455836609643638418193565211796137496516501732164084667356361055313483936697077592265375662917103028126627513011520714190357727428775321990534672706562168477193666950677687743208000619864684717460123316621584963850642608746960755912710487762893549669164423437476963254136137099181915201437495715714139671148365072682755446414643478745568172957344359055921316012685293923766992918486846057600692851017769960261672928581831930265634743139755965164474855614894757616645656258942905065556734061694806377215200504395839967587728563747266850617887022713676603804847060483524566731105157622657542067558338845869305578536668002258463343475963015728688076821170114930857494730693805438807678958095067437222896750333410119983866170768476016680441881111159903736988442358270608717082638748628903625785480414074840344115415563752726746584863013384716931001463749888913073585058757422312113643426976368890786845175122364844184379610328180065606301156801082361749692258965481628675918885177710861772972576474226932155954613724585154659926327028444920560418605563466145567418983037619483000267346965631461397161621529501274531087697456084394644038187164397366876627940238693897030769868245126424475732745014950573123763745776548107648507994365885300156811969011594592188554279154486856454542705673688573621240127031363196667678873763741849807176572451603469887456102147085830333459747596825556048159656675875287657116655364798755816922295391850272799698255344773099976435002421212845858529139585292465463811346515779044688522833067944353755494701951747258014655338878695603715659691248522669654260766935641548628500934667903867067932683207110951180710278684665281163526813579077616159095667947154227305824165635099124271031859936559646153634535490359039018726936315736662099861563882930207035044882698831905673662936806534443474130751194273761084801249810850574358029063899446286523250573666719330067271033096594906108685224303070292714966038964274621844697820155337747193961347649216204769089872616767930451706422129961262354295991761949744880389967723994886414792599566543931058208003849641439867413350654671484664910343457446633037519566381502520316109255385778381742894852013698699896509566441579571282867492687906498223452716369980170002569007280681215674811713566494158526013217093700231014771034333946235288173623288761619706205205513745775541843912669128764846714163269742468332466565436806493999783147282686167756616376551536441599580716058856310351243818077074749538736769254530729169558472956875281257277500732090273375146746921374803541256369955545730247142109285676834809965871613638159356767342062468136132243971894398681188716947586955455071116191006626391213672727384737526029664800024996226623623739877818518671063517089101726745753645767686541896603796345694432454116826736876403628835731302813270995345677141838723656669431572759932175558163945706848544495399994672727186068486630501868655943735640367974707182496300897512630270075165396986365308437081187410563265324624047480289353638084761612584091776523167886664014594564673183426753187354541531525374489673738682566131690296221711814908116891573376840004684999567693283768287612352684652880158346698952476191218286561543640247346837716971822045307478092611816030469140143807022892896748201086667549414986398575330688443929865067848116891827359631500038173416912387341955688696214266054366803377304846693653816509870338466226928254992721762059464869709445405939597612750779863664580796221478428678982737664448928331181461852007034163692749126236076863069384306451001580570728528444066936823805591097927623739638873365356816644058182266715508643261981558533124786161221573659525753896459667759006186077209911467730984863573005264476000467086178348963467516906026109810034739893366266198145396918273182747270303341590529467677286387307759448194195969171962182725618019977664835155867991386855622515013709262298952591599401493486268706845007181512228155373537835278002177698167838616459326370691597137175089439737245686872159746106513505029709978902471934706846260240151743429658071034329717137700735625467748370364333566681675630599105326667749354686600613410600570460216038233286387521770667389482811370541341311979393298036511537038148710799078375890713472609209192171616169296131613010638053106750662601387437898274977669226429367536544166739664079864975581111747578263904750162072496411518665603536983653403278389290848079494152766132760955339233336776140323534132736072173644915684469459538073067466188401787491458726698095728670751239656270185118747625975073452542516835158395740221632765200300156846360143672224869911521677510894222427741705396552587737116405416873182851747062168153626300372174663691817121146939638180120655722952416023734876718161921373045697966210688522835846865621881773372305988906925878321675870200113293541926848651925107761601865696722547148639042621367688770767169847351352851640514536154857658047238333986562884554667801433881038449035708400031855861530607380855768728882723864323820859122273681120812852551950738067130360866828325252732665175157796032087010007810670356144171310465407241636620703617836871673618746283192640684713723567262283747096253584120547289667252240585050492860734398525174923359157013978595686119210068357492396825730232650601327474288511887168746555501544394372005939446325042069699951599771723456096218799168715484092072143096745304748627741571605464030113356863895512729722207020078839186680725636701944276064580567496906359247690280115566362183085739446199580513065859545555885200752672563757908171241728076859265892645665566870069661556866951339649532614870331351067363617124693290132073651492915482707833606442010671101610276188937110515135059470745175935847162603187625230667824509655782672186627577948053442839495324322631558283887572729642896425921708593715438068934845555971117640737384458165843919635621775752627637006607073711660968168535107162097728521541460068627896335072967615277768960807075756635416251706158556474603783587075877389681529820057242485056444086397739042770362282606556514323829601313632060888332942033511013162178009353763322667333685396631395035571700904057090499422721728043763265822525225171765748657342365819626517107793691676030776171816928381814489826631905552964903863876648061999647679865974235026406668260826511470945166558686375116022503722508586372250144391190693566557991000253507680877176913725645023047369823316802134729916712441023170966244076789040670611907132973787986757327721745719930516459168303195909610864666687587462304508867424998111603747737966859086627034407544915084277047667237596436631962589647536644788546505946246860269064751033864562199386184865112579096316353778507344149071611988937059403727609098322568906409197245710995678690334970699463826379293459177554198984797447721329047536774275773737169272873892478226837922684648764006452888110417331967876741690801813803122567277055111655109997871607913587338184092601860060170645641326152404188685310306373350238461493812494602178293372393428086493144450668698019063547481635599497903633888857958781681081784136338558692038764985510035573937867704012383464652143956026288229997930174709598472412842075367091341193206528142462555143231828840257676466118656504121175356985015145727907953959776115861063613195851962670674677675894535379577239471366121715595082916333592671432551841764897329485615696601576057828271176731870084660587125563732106197187708341590316295773305924346824188152734993041467421071736822994379552668808666932947806358960108227582548699968630671738837986455936013657228120474433589246388508162718017266236427669708872776262651015837201466828666159518963258452186710016761614942243774073534937335195960194395767163106260974238321397081689601646184657868626901356564496693637951738469723810796493111684722901454765970282657020641818674776455565136540307005034261574714992218683461236251332418133410229410530068676019078747305414920525961688255242709677153762274565281761074922008366605747195662631075951847261466391971126677666703655493783175913033205139673335161560382316240333898703310788468803164146252101783743379143464323630186927531562621944969574087577156199681497684392802955809129547284962180625143395471191675457497418053620044595768233949656697698346586781310763096214147178742353746957627273871901217231341029685246364166567524316939093007691775545352689579527095050009723087479567176084766606014126637230662922144421756266826127384880322719472868372240402236928338363179111137768218017975598074664523788417563577755807395627602619518158764118394516984833629550614093456492934005710119403102565675965444530397053526077680040736467673955876733965826666270246264200366715829353859738359813165340050496935483003678629054566971385956456389809683562532912626773421210128676319125645601353371956460682666981617656717027609673140770317453620795727175534266075169306826828421714583250574836816845068308186716554530767580832526517879847571969811371397403291336347576652287405610662057916956704388396601234615139113028026434413479101369952204437210531365616659384374051716647051007576703311758256703060256005101620719808194371881019306354514322677524373665449430336549260138567743331321324639267267498320707625434821074278456974009822559642083270029900696420361830736070123463795815587119690962212772321566160214926924862676525440646658961929946958449936511507128869346428136078447996593716456336081733863174405957479622331718203588674575824767430545465747630534712581379570514621077057527795648383699369652796576786840019621982663564313769896981710916731078523556838538655376578857716304279363218657677170675024657096850966256583197056874881655604832868783666523760544837423833521727242965266176924796935334105637251203473349086636714665294665416720673509944205559742288736790553453228199596650377397691139753472804256806945103726538960171218062840931860613947686664486555930454906116642057688238695864877692761323331515773878625699725437165088103117221383451707439958465475071241665343493202901685768499936986950580474741291362469587840996748732334663890625968764131886914784834713618823767971116587467889008698453311674092747785901112218564900012864846257957024942677714928341162241642042004519462610134985971410343315189531438719452598864464670357465049517134884915755674345891301125163653693528216581394945878595548725135848268171425106851193161637772558960404931116220085198626800746969721623953684094225228554884641460306611103806256243537529701785245572715297736454696982721749171566930012665355404021634787736187833809257815721807187112322904619487731568878919167878397462458174689923775059015938597069129869183047962371082335236990152187662885430273575058496657738955740939950165190602747262893781689708914864159393387099381617732942550971362418276212621998610397461770483193241157057400668640387072043220968523194186130239540732195437415557548791571383483718311658764288536006868763822705154820574556627611704580997728124044354291733351998778275728097232060974486156832658562113393543759350158586612581559135176642970865745357616504246668938375657689291868910435241388725966660890511571104805876964788063889139828200419174367609757446851704807560619958673498228026549554108746604763367894896186710914563634758319458331809887345829007687637891717428056691797276824622965498564659907176593804066710881308563444429717479468156707831903470238142486991085681514411899171689557825621129484665324180473403359601644661027344879053669424896973473603216763705414624755537869770940845902324110560388713969908099166990922597739308363367354328726412101076645530635250186470647179385970247357170187945236520323035765394766395616994084662614433037152368346642842332863361492015277350826117400221660351358885889801385739502965265031760776493977130684166058016524022825209748473734338209055461915997399938782637214252420583068416750189513710006636069443295216146829248677856210566890258907141764789639204928167134249357086297749709389215620533062686739571232735080727420315584464734230766454108680596062640472527264056967083690703274457871682792565850392058716410762472695914047141307705688260586266710173826000298398660896628374167621667431956743658467645870711969957385344327708349800274663237727423206809734807596652097677446146094998706366694560011873536165853134720589979861502037346618142061684609756166225778427071213916653905251664001544987142682635705378129558856800886267421456653396206965894457211027293936667241803649924833064688084916978657048611395367846464279762307110296757919701747153379965798902118640931966226949233247160020635876434366226824176304105068641623811765752834616957533253587512543467561882726492412781645788393618187622426911034339673037209765981484815592217411502496513271180089766776292177739923705768457832257445242145179759623768461037037370159404662488441169793281836631513108742236339114695134571790637758672307101069805772917373252836598357118868632325197441576364637147283264765248171098042320722120143959477411687377246085736727095470939886376764459107591864570762298341855587936653101902861070389357627200410967532576620168407912666934797920665984761665890632897464871386665937741272673045037476558577616186538762506420506238225068656246472663592105145029837077703741375059925874676687584274694567508469779056372177536837181709773749647847964079220237274854579644990227274990803576304560367677957952765188051575140723908675982630866069592415575318784148910599863170155795861695864728506081450828847306462482794655334336362467719906102291184591126121368784871385586414926978928156897493657707732748268600377526209325455547725158164322647531334904831684810712065896072152098582389638950507664648483087022239131708765674818317921957309707853701080128656252887696529182650648868050616956078786267322492716018456155353817587245672771728516260857561009796599750192714101899750626286325214379547600770910762149813807452809877654959853962775748157081361881720824609368717052856651120851645743228571439021459929987936990836896696575039371917545427334558365717964733536418436652634941056306416831221755572672786770563311549646371124856715070730566601176597234856222721857560662560774574283975917258988817743254211463195586356016743418738868291168339447437335689157683968226559115010247359831077679359658271589916897221855063652912611363973962855499282990749380486466026269161433387466057692631509347257272353916251375418087714616429671700316157353229987571192358064489964336956841902713234590858551953137049867459648004081171256199385598438065641513501863053086845932424668456490091749893221372296478317327232746733846218056111868057041867656746729693874671186496683558501687231015974167805936133728961733290782765282200807333813358708099954373013057977483244096643887387173057040946793030435640617453467728901557120709460636634759161250401966875274721165635112974558443836400803974636062754362404364632797111076832394568715267777863906035516856574633698429121871851966796999574584134870288172361190416057222097747201433357450862576448670153676714403773025963646461688322718780294163822402166951979230681208113765880270827137425297677004913066851745249975539276773311990717608366964168802207416711885748077561466963569666832084641724474503967858993896363760436633575139465365365296605827334640385800411971556457334583326660455243259152754865679027392635689373673245339887085850815703373363570844088706087132668679665540869313002917198521965642143332874553099387340766272568449767645391377260262221856982296517684284136269261768726081868438705260806265290612296644927744749006388673771024406595344684600173073270288984467183992157732889651064614884556311943066744762173773310900306308081837623404260470292723767420323088612709119366349823315707697113736837218760735100081873568792934526606382025738644010947431509880368065527756399945283667511564612614641196292462188721819347511310052446968132807824972694675257777566798141807271627479588921437071989336186353553940647550166774685987597441852145749946697765285936007263185960605567668772399658307028844272749253328070653322466581883570748475813115056964135692830253584134208573125089896623862336744307843459116357041398987536114504991570542773371789520366911363170692444735554782990187086319457686703695973697193061557543787397575941603750864253008736121002360616716305237659831579451868618577645464938567821827046157815174742069233660660838597027719222213015223574104716056245536364685760999966967434476661910294654125747361461793217134817929746752563179889582370861964916227322662700205767774560525287218528302706122434369658915976413119764656082545070927647846542167219742010842671200811631854102070611691816369107115937237208684576570535465518690017129429331632738968363244652697058952532736742443574604881846880397884157900460755986732896986906677600602000366045404137495541063742305012368300811187352925460142943700689210691553570528975582454154692170928560895309886403581984320436347747839953273397693012095346244207089115468846908805425326760704609805767438590815731622035658758267760125704716909008686140455517855671045666682269860150398386592790083865662922637093847931711142755271707539891830031465147418984272133426416832002707650369895865229624697299544779702834931921427244955457070223718253955169196733132097484747710978298364503352597224992066686621295071722233521451524496729759807733877724473919787717491878845728879018773875447677089355854732935362071933130707403087398597701550952054788586947167096736397059159739879653239251872954624286864780002653148377572694771848924798892055590259701361663064668612977491103842566084103256665864277230416449653952154365104732667213752913202407821463926100266644626808555125035067331267056680941429592225319163746772657345586458531433869372024303137014487052617627003570445414136083093644616426405059024726485848026143136550776568487251076308074822657665317028764498270914977567153015940674874892568198840397110233082612731922972679758417233919713709398284861289865446412234737574773133570318791627297285686711388357868313093667396182167641914571971352820297339331260572848101456833454706498780782187669379670476470246916455868723993421268838217427044389024736833066366500684646923540747727249372170758842106492175742745100584867369407097238748420680541268465495520957079550613688732529221223694177202214912659711517367820282197314503133744049704270172168935460147884631702355172793219177154369619730352313069007541886178806241553716932663330230201850712903659932854814589622666173564302728214749574384233406075007735137264181469578344045846642548670183199353254573447166689229690389697170601154487076900230695422941270716618875538666924703634289468337567747048587892719423804467702669696883075139671359376870313189996674999513717803301562890636206169668548690351674460509535027038137070735139336566766337487044383788698910220763545356786441021004691227272169912853636021549579704696179160298295116662458856597005938871275471667181278437693021486674951547056541738134735455455571518922616471326057606923033372058823386154212415562092449961828291056549716167654344513771216781856231736378712451633465049708277315030963660680730820852411745997007224698996594970097069206096106911646203584873690637217278365817610558670068403695105613931698666571725864598610771024858086205985996544607455057973368457086330049572172155865189040485929984848694380986570435608256415627230641108138921263385726704278893718962306564464813306280307973634709555472506808667053109032700457993170422812656677872839706289584073100440257052036924733359344352076092546778520060708941012068403938487265505732747424567368983998267234212197675080357451581433596662747898722952962368410843155408666860718191887924505178062173405261943768021633906186117520536456380883784100369615620400987541903569667572527785158358515777153601193105800455867566470872035893257250195125652382043373144825145889939022190008197701312380562725038496811945008620400769768251624256810696131708293977267856020936730594473710431747973420214136693856969748075716654773688307460308160254586654711316043366615145596641068057144856320269452426977567943336480850198587937589668122558377272889226740950462521372834741139658386726902814742076956165614481325868675560633950031366947930636846529894629616165271535789745963816274633622619558031680787153184583632533454068342551006887067862675045622567964582177070849733740288055864989864755539630504705639559512530969936735639977669473466867263633627497801702683230015773440607337338395589700732745463734154727158533850731361130267259028199518584256244595989634303873764230791497400506900740457999673670591141548321347675085031215547504762143547630741610910863790660577390791968582954167771607164435282637068670089873268963048016737706083157513861273374594237036747495120406847469535368255860451800623048569255118161587467693132697633136567332225726610296004611190983972336515921437892571631265963367996094566814058606119083643263620929235307946057689204866266023970276906346981651150509769786729015760243289694652277477711965314626081186706536449206687750761202349497387262154906471357632858200974630301657297987504721903026060910168467238616410509265957565946540726443921023957278790740239254322333660060461723546916613122185582347272803973385409079924645422584360217211726874545175216945945747468594461106076086596753118676585447462045782766404570841591113930765102370016901718019698445248967765585177107698682706413543967786464396936547070690004486368105131786499455237718976944168363269987043930783665896678869726672596481995468690185611068364058257008378209633440033869606035027179636103663471713753922065797019265182637801613970210463596506759822639554251667034380967196016625683875638969493936437073655820670326103567297698957059319447675800496368281724896750511048639797658768132013986715499135715807463366558186606472906294711602151968278958125961078487685501103666167092216535874219710624951270504966336831989465692232279569456160826660696095590424718367495193356809332341719280959369009869166992100715646389041569242157767173173718718681485870794186586730629594697656166057733401966458524376705948148565458804326351478123633306622163578998905832590539558195037814968877177236158515704400423863355989797085958687594091257972617218026827109364700764342473650252747228713926746541721369790806786195465687749812878169152461091266828747168502892634902452971361470696444374046590450176474248679286838998385721932595068348013826607442871655363301270537386136515993302694784611511213467756759292641654864299256758050985979712680676505569916982874860005522956441687389706822935689165012471669284866354251054700220032170951504456283282096664258842671164025336353634119169216368868568117175840974849509981539955572314296441722436188296714068667912776769725393731905083666766679736350448220581106627574234708566944249949723443876365001391895255947934577434294961863801109556895537498196587678390321790222651474088794907381521931723612425574668946796970650931597891438369785742497257008956648576887873093393126579322855720647664272152124926633906116595901837174944246206042353706204021068663098721536493104060748483513874497614847181546592583982932556922765626810261728637634425170597868136969437929735789321872586562037077749449718518205160986212325754014196637586777153661291675646284040668936064871206881396818557734532274842070826652357077830311584250105068137894436823389252612395633970863633725881260175535227276574198023397060003311657162327517451144116465238597669916780962804634727086666817724762358019251125287294629911616169297774725166595484553615613102126462590019861996804216399659851727858071574712843351649210597654243620863960311126193821759704610906370827646277237619594660364517768397384545082675334502510843653084581976720546943617966651574056852717431232249704637734471665667118937932555368182897685154580067303008157734012369520927876856229336555886363965681794747377501534683320852560186481427159627178641057108363751021515989043145712671266555663154357110617791679616550871159111637177769130742194373872475597957354560389691298871016897084547356383252746231845164794244615780782326587720419163663370187291234113661991401774341261791666655006702973884674298704855491957471134246699564928557787453568693683155969752457819326354527162746786253669844674767349287770206480926913621845854826495527167737895638260394466917596237057805385630760127850354786676523834606637482315069629934055868066150605485650865452968361781977336749711784430750662773100267176174698021618800195974662771636988828335748702606572380623456067677661739594212662239149635819549508669005667666385874226485384699749092088658525654276538077559704929937970918908506655155970592649071469917643616604400754591444603266082538096554867178665551809470683248715841792688628003087470175057916347418572680343438668770105076488143886120625310268918556241046672616085842686692513508069530217416994905255738368431560061496656827848569689126122470167256325454632157643948118658384604016689752900736420260160235827066497863564676377656365814408037081750100112728835462058391177224068294637596857464478394116608775531703253981019484525625962832176643869561161364682367089991172709257804967989323677102846250730981849574871726305161630558546670512733560767568149097737371266708712005642060640883056410527641589537529073209762907397786564576109246211333228416637803627203748057270076648111639684106711414857265219314805841226872192943758071659078236906757869548625168638385178873549880107078862424633916628411121776772635678647258658067324975531148745054070320971446784445686526342860633433287268173438107306106359693975446074407773661242934760574746534673383156057369226065568192884374058740526625252229566563076570150551506151484819591687698296349594609979083357315317322009302930164010559759185998436067980724626204236262606712911601447678524817989961584244216556190479710461255177203181919671442237299291294917769670196869009465360059566837391283609172716652375693516818066907656285274766333186856563620590657601476260719322537044843138798787051679398414173909305771623061904406569885546211981263068778127222379255728810424871029316606804948347530421503468633209076699627468733754305571673421025750163866638673519074693783666983431976552398737765993220508367821156689116293142882285774486836266561118332590302084582396449364730036817343434301110730796568842523173134738915962966948509994559573260728377316312613717904526361673198418101390846335389009188843795769729856146702612531724621763373751854855746690300731917227750245422957237479599162929690961600228005017711335663105384273784325047055614743509723230964285838697278637634684172621267255605127211710746717591422959783201051601162594186878422763501010696210802911514651944055733300405154505442691338324257131454386240531758645056161670985603436516762866580867831074813363415311467936637378655753407802295746894513707051000158957184266753227124601053241872396844816621251487712602580852600780327469567949707858873110027915917155586916433180083564965967165043967116787137495582933408274172945072740587355818095194742312084573647532537124994519690117398769706202706882321538108248283969717614656373116077677928093867135553919308082255654406756560672203711712977168462469911907326853586820295267536694317090009849687725251152147052936924361131119413427571146534753830919836891049418670419836764825929347462821637663023054270876318947328675576743159647867703497057321508073726245807272967845187075911051661036865864026337495281481981742027523967044873726307601600614221741473878895317439938794985649236732785916744909041264115426347377553778711419195463431824291937980307747783807671604427947415494309679140182683260257813405709376658168994667612250674932121721194531202729666663057849457276828813846591292059657201484356648107078613165204167917051477104172722659063027874390497526269383309612925810861009079006043930773624614267758048058795497503106610413503160588774856110894992604611122958845313005483461324655191463112066274165173308671856397263659168189473936292563776708986306316017648004937272731016546697999773533581036574020367617308293370188127438162241267536653236138620911262669187929306712898401416897586185358645374066943497304495626681574115570020495387478552185735837715460742407147429339328652865986661374859346874437404734399846572621331145843847947649766745572903161791546957766318943013142445092773372530035670829041694322430769130722887336589514726198665156548888656254668412638813330969249936346877613801590235144860706846387228421487693289241370780179456823068643730978002366352977047275068922678252744458219325036385055525108684522266777663386119138693668850488142015479267321620655977270215607549852273446797215824120625594523153510712592265381020351607634541657743486871432925367169667788737543203854536891246054098286670975171768397196397022805827654516971450290113552379443706395130565602562172859893276326694970915697198607170955252626056022065206279854471264466777414533788667593213569795552797247610004690853012772388696116548770508703921558063974378267071852241643623363471639714916418955191643227616170018388337071684600652867114271631128037032443166633460491873565869775080456379509644416706152226162868926437114843185685620619768416020456253066875711944543469267813276849702728719628744471126032886823730717699022337771464610806204037577104276578867145407667201490627658532343771285365839484637137080395791642478974170785965856602430759683991703064876511427002762505727908431371007226206897872917699909904969532209767051579760701915275870921355126314384077707178267368778902276813922034640178860960628938456895366723719288939968113489216563874687636748928073622055926717173392634337972365395222216591802432675148544770262297911835232882832888667749434166970005928627119106918688677214958251852836056104072671191748972577672126141572616559691788667448883715939969457567076758572236750525548473758646196461469370228305434573883622614005966543041823196469426752807921565129336669787858370310190692017666793591496992460157380997141246344603655761051615576167514348505514191204606833906972989119111966918193211023645666111718106738225804625227631868567373467428004489428487851713952861167893045867099224422720743812864434814237393602573571731582868681929967430516623963809985987122424731831255362468118681501561046701734764869877309986518282721688752002367909424456894256789548787418164073523437365991615428033604732387270217974779715973293279640334488774986478477200149157740488063265646098502042454457728725568287057209015072673626897093164587389034365706128636990641607680839441265993054416855193744621479778471421095906011454456558720679958972212956740103209701228505167843913967257939676725488276810101883466444753737631442205662296071256153456412624883724660674979146129549724623589278020799781706838326881648520580274648493105970203694739860572074136727415413335084653769427853308318771789843374720668350873197968067139241605601877154874561958706833258992734154589060991916346062340096620281859362008724517345264450699154693265557935116991364389597429910371066669615127007013682573984059904785306129818481603634540261421142675638909219601717482465825045127235446365528034663960037079156016489845611386311195547530861620046786719277393712470130419493644041869001155671400481766882705027323929878707374009768556864537349533134645560244561721575086017166974610767862760458523936044852759732690140567081061615605785705621481543573831526747470346284615214474871731043661575249346599114930968257952745650882210728215567158757528476657563852673138665457540441476211455093589775076269358026566278777350616861485661267858381957307820602665127312782405776619036610714371660870191662225216456313630115726516041329576289258870583629500765503343807099505882674665541361357185486144959360620058798060120643751479368242699787500416004019476394568334585450586665785707966928524846650624359814340304971478036823746604024569210525166145145981640730821658500593817174276011702352777171816996316270187107705013589852933136177464948094658056037670199077396635732420867408725724488787574281577841909418214193419675372314698487316296502738077185861713733726386732912748808917557922948995122127632588486690474141253065337873157714517706069193333853534163386101456030670821245473691462027396353408576345944569457856038830106116930397788675842148350633116936364648523520412123963954505886768209396623320697473665310827469349952513429267073317306227008084776567776493470978556156174855922695789956060044360215767548930478468326677254554458570877347032516849710165544967845026085442836911503442946574023018225957123738645996229169509272387436482643108198999671079216307040195846733039532471511301187486766807721232887364451493565970590447725729458662460323726570936481665175979573124476705547585798616517418767670923047051877130151836763712662630972588836255043182713195052703655167133556269486734704990091511429962727257241643664376279972575445331535255387489381092351155160667289782265997788776934889572742301974116599091722070156242741305689254511560985195088898677565793210528274506760975461674813124551605606866654130118694871359669123423746431680974710824767768417665166238798748716765447664238571526588495855732149034459359732016441041422541500904668461309845402133057630413807674926975066848818906647132787169018439447186653249674376650368176162157026281285654784061772969766977291031058743698919472972525063909396527013839898687567180267080727956654318122749446664571546869331682282855677045463659854139056376945264652524068173008912737436311635701735325957775061026585411907221145110622553527971373777935072045948710537307395247145168593122336900475319716214733470663342516479395952710562883360555483285158129322159531820763888662086991099430707118619462287792266764586005606490233956090897406377923052627742781268701094376435623555653658191772700957435547226930742230170755768157618166407315835527679666047460467388558116102779154684553759661320192622060453873676519238261702220546455376599723190963770193468975884275120700120946973224939676563193501637843404471636040707006067153719874241274124970087362321021742466938252078083637026483808106842586211651807482107046266132112121971859991695208241660674338830767706813276139676288747932656874744952376263080063700376704174025286346745997659520048559563580514186355956514522815204050721611877450086015742399736813806650359503531546891229878652842530570030784276882856414698252200869939496667023490794631900800970659723261705707097743217850174239768861308492002726105268366658100066951608905730979944664709035547001535862213084641058100554197378814442680393970952754861206952244211656988933273670345796811808367608392914163764814977233154550188145736963220168301857890821153905699116411542551915280386168121313723623085555774692946394576047560556752769153862201256376138663786254950367247736849659385640632142816327033217209646021723793830418953958067123662897670525541768554830906746505264716444152366997396301960173912200665954616449180121107370320569767406972733402045974625991723442341865934325917221253538528452109765005619556980726824748712243869616179386334904936632066721859984686537144491349653535212770634377215925395155653666888169342794037265300859729125089266593186137282879540692224279561565085813956669246571730309117426332612001152846478189038572310559060329547175959641098702491949866843162069308289777355901176170165313745448380252661633706985219750590914407966284314177352499208682405501774154844036934968257692620582669585609726942389287654938246064986096026243239994724614433671515343616926501003741752942162261484716760450110613689802173553546141158104923674715771371075043417442901668170993879059552921417267013077731328034411712481222059364476132525351749494394464149343497379668298652993290297924801558220993163086153956564520280595304800366917782117375168067738699344972595856035149046020670791208764353977202124511818675818793174905656106141706048502751371372333602327322502099727842894773166750531223348075998963090706027215462220305536498332551720243972571483475476172260401109514439851611753345974369490594523995068652781846867161976702906931966623368196303060979709609651162327201466351197215665917063035150576057798676746480480339689041991968687245345647524237708799311056510513855985498861647629844164826280816392576014692811884257333029581637088046676253598013326106755970541488144305347675960004318804157926992942190643185061766479064716583210292721911269760093368106581073292641828960665506303965978118938744312183417568119596950104890669578573015809841766227089335665202362950732546267269129108697802735271346520855969796804667632386017263501077276985692745524137471859437635405969770663056928074189416775253211840606004238386708294014042526597283993183635510285874923961336456504524616018284574375375331190174117741821304072616824467180907771606794878461034139697314087090681716290674373064016939473340731152313973216876837331749138642376742951547389057232788248683432711643274523860989118066919847957671963246573444475447160222771680584879120452342935691363453639019095412070011236705483323736164515789255937155334426376930381515698709980865786987301233058376722021746364089256315146789568596605406771291850247491253913728479837874694702166096588565120537418166149147474213680496068138040743906313267251521037055381337698731818372906570876848663696608801455560860326247199578551659171618715226308217341827650732067354855041701695240755283587047641262251069357461545527606481387164727408836749280230682817197455479292077099637594632297709471422840957229218570713287558611500283457374907659734842630668578551527201340145745338839772430105007244158135178061986863205307667193172407736142724668207403487082651462665888333366710069375506193483644618496865153301116805286640547670526770446327345996260271596628372856930273157064250835151309448724781702069401667767341511898816275658599632692531676896569244792527048413181177116669571581115332815125976832739962610159699152958749036788564757692884984562391072234953619407455660861643235326854889754965848768359651954027970324646116325104906816934439148444959271574241026672020440629181707212264539254581900195829607233981901815814231496557420989158302254606340276692742216076771831633226869499531191507829457043259056050942325870511122650671387170266392006549598350654435436963131725446703119819642714759270624815657244475972723647962328709968454772466976524162681643595499371540980616457645746717399391569840099717387050884596210423963471586061344288585684026744665763964066739981216569756415774606559526316156184740340407773042075686542312388689971223154196126806340803608709859330750527208125021595443723701921072286565577047022477661818894112923755695178300194603330848773358019105352046585644521894564516357526973965102201216226667376127161231992746444128027211265595119592943827158108888248973948586080503158314815357796019006612181504630069092673037553611946069818638736411866583940932111550386662869928974898336635800004996661447461953317156296503619878659271285918445782386869892411735487048073354313156641885311563786801754458644641708000552673183052670883092056800081009575236996657342404996829055102203238062461693837346320275696705852268072532167731707270373812509996998017677650133849553093265106138793104667815503274661186416579258349748409789350939799619951146436376616374734000444462323833405820802114690186174672795687396198437161592663882773562257167169082413688834797268898444775141956337659512664169296279136682083610686759967271869606087168233173173543370372469162551669916797548449709074337849211053240811650385239162810156677077497435727881110619114153506674253452699541706884051325474092533214463385525197224349650196099963976234526533791790173578749871232347226397379817687002366870392588736597513367625857166669229428147327125220599234464565202375026604949835639630161673378174326812720787640286210164837511945266912200633578326166446926706618248863677348163768958018627373403203748707400867346416065127290604639046944663129012177313316071689585886868637654832006611243702352578360620525687125770592563561121163540440977186599775644739722916731055956276925068563780645468442742386960937536655895932953694667012068907665725669295364940235985900904659743351687670950105236321572174659635749669019636126903359858670431947864732103471780123006331545242124443271220743517307313660094272827054584145016368767427096723583769625993838171655645137386016902717914968770645297696458540132606616708363795753309867602664582629621715497591668549146365666387606117977915711847732065268618426204856830525003860896326599571754514335638206293637965349463059759236679057363703850366769365880896293957178635303075974724909666435714532739365824374260066707315630549698931137974574861551703957848736590432146802986767074983432581313155710644335675949936166900838015074251314737446210162956352047095742969743470189720389789626813276206722808593967212053696356408537665243231774055888476369213068576592115872590928376677811031582522215065785568286722559183670036053473148910985994599243613462552672223564016009842522636853397363550097566582188633121469545762718557075950541103663042921364895031267310609010633906277758835915806851022576673873107263755267777091674278674662862459137293035040745596651504878759478535097294109039654497078970042608587265019545672199000968409336317442548949731753921164297918806048038752171905428560585251677445777077729529694374526119927409230689692256988369891504057219948050502102040568828805695944101298993379526741025143754912712966521236866715293985561264042906203538318721858950267468789586948955926667220418018186981477051107745686942243167601579747438247786730982140059757659916053768511938063214573156439372958471596845435203678463779752177456246813163305723857499574853987766723067178521074007873595182567139584841599276486663576496591212492031711724843510993282677499847809151206983859418188616941304929636556584272708609901514100277251961457654186589472099826126347767825626139366813026943537454687647711262485161393047946937966875725513790151486478185751607285666782122472757042436122293794713874418074738094767224295199612585906964947062306049987213641347503273468347486511366951729435031263787458977467471671808066182593584470160475045315993131476759183882749552155816376046435515189223734137142310080184446736803757559049479566532163946716411138742548707366136970651807844486667542256754390454226898622629697974726014331506667383114078716589518472668003106012977106956088019191692970262857094221118185465617262449763205484807108991785566122368852405606157075447760511722102867352115566458167609689906219263623000566471592909656150381471600898067133484475732522659166821642385273493001634805712271149780379141611401899397992651654633265417553406737349458731958570113907207096941154770634053180474271089555821472176598167081171747361917086489296675691902264279697541773985781548479101866832155036901547966647724228355356702927435799977642175181158172314722038947679141370660174037174626375601605656799346352540440156511797981591093511691636504556359481466505603363638277023673741625037076067108118947841761154323347360773714525248753467790321386436382179516264615873949668511321152427274857011671638511473483951807447934386655407988572464293757361272174636175174872774239895521051659516597451715145596766708531905878720782718800161066232464986616448323353673561583105604265269757506799895228590646026813326934987488547664717545498167962742716252203061621086334165467367587410723574048394127233260034638794754562375127516090984303691480223014548035726377626898733718525868378738359696786355300721766614196209212807620406983515776662582778174253987177322325685212595062170305666256314411764686662881059175992509377592341067599747711145223266924271271617757746560999714612417347215357721671743240729668387398116703286719715689730465978132026936176030710500456060361503797165919549122399688725677045665475002187121473026570829208769992150091806327218604448103572126664465783224436721403694750333833897282049541605514064553202658696999696645696877360966023799136873811619706426773168390147055974511850775945316645919908072385591317056712998730807792758874070016978295797620572179073649598215266786522137261090871710262867082787294666194104571436011756794944318714110598764127717696802980617725901859663943229301475983832625315432247669775864823745966785203138640757730768130726847377233795602776039171443611675377206125454015962545857687761236322872079193128693788187991547175159891596356057052193703382832874313254116477031518682108745572271618127301715357618646697268137735846756591957689600345374016291435324930508681301027965413360321223551131501655620763081305685800637924636815504570435156047009544640663134470271333520146282582114690223131365394200346774153080671927564764903751626150990591639487086265646818987214484631918255372639658402863293982167090276441693348181570006997577403785554732685736470629980076655484004610242851869091051347112295106629763210165032838486999817704366979670749078649071306464637195980569162995322354974070866326094009516622987552454464057326701131682645692819999006415518636818525390204162802911241119658115608720450956759633796376778546194882906555321575156552030323391032409634063063167126077137303666936167167073164150774027164205515708097882320711655907090264144607374114662366556446148005651654828644859042948226861022150646425306272810744170676209991996275228682462931864604079445178725007666214278172672129587316864756604367970864323301825775371736651374476368322261186547748880676259870962518279626504819237662924458012007905886855972183174128831361275956906930207795201104319373245950216641341635721671035611754577351929918622653296968556879891516025296529694129682867837443176710099295703993446654099090166363480957322959484626335573068360091296323692981728888274072938594517127882209600049436358378115806755758166571494151263868644445605419845590113724856115292345491658295653662983752260279625326797381700386358416358454406828544755698709584358056916747495162991962189298721329320559981977831691816235709330598571050804756611635799646993656572620777887171414221212613693758424352907345269710651368120868080412696031371500622633781421309112847295530658689549007560751546637108231563127553320971731748496634362789711503253775311735271836227006937547571526903326264594057566069129614734052105714515992787053995108738784231474337454816833027164554379096960038048956711145642717186573035373100969609852547311342433683369539010700183156560004603947025225722056615865872073786353345935706407700373006374487314650798639394861862546873706603353176986346116712331981274362116066443260427645026858970024167236882387524205311869574359132747064040070608512108653902331896848455202606640226167877783437235572735698296105420164564392070948361690428803419022813076401190736699578346671789128617050704050110037437203203699714000573896252204027711713805691161750056817351175972009899138140451463109160426045582182585235086262997248886004221698715366355758244923597448289652647562733873695923417437650803965972276957190838672323341520144893897311645608540616935517504277646407439395702684761370617937433611664148180226446409033872116248366361256328266976196543694103256174984864076236381574193102910564989389995953759485554401237157947392916291840120115026208015265366672756282216520906644588441841074014610815169639280700739199551402052809690982136743170430502200129267694687876267149747626914122958311272397062938514669039151071473485446369467462201968074172131909775556344591665493800863317386266863060653716511176071929498701793438826671130790569896921855953510143130181613398136709180180835067809038496107966881685213830310832734937391947268649807223269729066386569813307698570053065190051627127264404714457608666402404286774108851580833500262968427167101696401619385090968480780326759250110581128295357594559835786179320552067099020861295076884631726596849807970086446086435500821637735643619543509196167777815158043099673490699017285650216616692954063299808605430042964545666091770435013871655904501559109459437926301368989112936400500978629786422870718019816178236030705092295697486999069883950136031714323665898257674877826101425483699662853659373384825452023653745207925121252416053227017624600699031139061910827666166788598728232509863109261397088543611652237217319524116557422867210402518047686843860965233692966735632878154995981974149280907290191862621254261065555092597087458966205388662960580970536825866479504849238913819610468780572316420125784846207655633913489154278164157237697260654686396461088332155426551339171294099673867052086442747417644866880472196139943623189256810063256703836121363627970195234053440678782763767420557436631529248683359477370336496887230365050689731298374705073266738874462192287089361674182456118501878648766344172852092146778044446170482154368146990836811947042604393247769434491275434260265618200695664326877075914524797717236355269916465266274031570744289130356695601665899189048658334139163133872296849923050350089240737018015053133046791917924372687312437872312254026698254548670778031155833367881280304286954753196525687382464986189856069752255645425935359731558256808242248716588301216934242745735191677114232672205450582216958224365840551389538485565774951357236684492566738993663770380273376355913118537775485265434010061188737916730035632664839489268645390656291960190709738368468644472677233443306617625976463982234416594839294728020014655005859327476399018651542893173334689697477729733712482608869368620767194093897424512041528476526521098260226734808246531572616163397270786281288507581757944973759202641461671365663446795703224317670418259586734870589681525653273165889905549717776714879854861746064377140064245708692279573504906661842594500625216760471004512286697946829697231890273824681936092430648202096973820714380306301568038606094127971987742537356450492123326286670941165625627968093681688007964360970736090042034594801353752415593176144232599747174994772485347067012387724578289936567728068246699555929515395683067564392366585687102572357098368652969886566711198576015904855127740566201591427730907053962778605297362721433668653393556538958166764722378173337419466004476227432202290639305634210315658260368264281476239263662236721172690942637049673148731387695858448779307108744020187931465161736871775999468323657328025256310467676736043984637314945667983746465748731708748961587774931822806550011880529619746674760325017248464284585291742970319413025645552086111770035138409889165813132025454357564779548566949944442733732621270031782445959758683540897950664837056771777257600612866390292099740599212612617892698627195766804639477014273112637275661948274587163421166898961405905474552557351813169269923426083521120720631745479053779862372776667078069048124168640770401345427312313019107901489147684320271147154796169586042505001962118339753416329421852702026345160651274207251048058746192145274889310295708914109673480853664612542977026493386852818747679484440793547456671911655467293634507734137225862543780656864256153653428075862433353597455479170621274341075629374410240610673980938468586088445382741026663426010564786022246499832621205419343973413294026405749931698554204671382736226861410664195504353161739961466001917878712591307874783864586972602686642644215262781164891354290452637071995271887126276890669267198409422966691626885587528767720770543970911003666546979422651616696366679462745814844291610746377718593177055766971195618304809759088387047259951579705741526848395536454923517816027723235550632697971749104106904374438650045507217286284166305993223671435991566588434476347249290746783309567813058001711196450165281444817960258145636961910663352547734416158581393386257388618076957030159113754337568018924746927017842675428402960878128116114335209738054124061638261936853102654199047530168220365327082441956512682823573327339056857193702734225078071071479746960745348113967396413486250307444284214195875089253674222002268765762856307232344661418370516918281686546640377654870159367422200226065990309573603331116443582116972965812741919185664551728347153268886692836389565599224965936752902638055620119585216235883394165712773646373211809536852386890650792783074588320415478935075129622067364195139345295974237699548679963081149106833618077748675578673234834697278728370692797316110332917263927932446209318305599477743759604944827209599534544912903810581086363673244675220875430634976546603287515728118843910391701867657724576878742344745011590754570662866485097770706027168272909757786868585281736709685564796271336968746546700974517971827661806830333692521917150063067310366690949818109780101053071067176247494345703507049671181575416048916960707818543264129404246783518713717828537373496644866064495299214182423762459842846076585041636012839868827095426076012774737226892770593533416243637984739685874273545665916337879627669641133767784986405508829183729100187853787639056653277386669705146173307402425680783133602070864364064974226321162982580233136761264024056285259090700217141412606797036435421642743346584374835602364069810886339959286664282324872174185205266637453503066050467381614935664103645564260612173671415827183793858592014865472610986276747634465698973359459030858276841600650647383790877335183470717346981215441808747840499474401441787239989688616688705869168562087130774556628852756070963518216040726827672773224973142968775576546248591907640764789118975859432829631166516310794715727273309745156653149259010942365742946549698609412768842476875885059511674129100867493380487495345410690865268258094265197468717460584894104482071710662770334887107420332727344208664629132155693212634623578356363722624717115805776708029017060148777427271221649731640799952212615006008184436728985613189495570587967548023604943974512862457296893563677039534169667553487097159237400118307588891251120905921426524387857665837711264281079825925858231581416184272242718766119363462735668848668292466937075556616684591648762196460247114176905669032850416064355566578802556728083540450687414651077550943616291992873689321141948141912695565027571162548426857738786530998170871171316667166437329713362732069473280037022496660570216074166018051907028507763646576590568468995225090190725703346925367130266477419561462564754804264700207877443895800586814066418737653575770102749605820259869554901916810418777723594014967481286415809999063712658948766475608067399138295693999433171471071997455075507654517561318141971385950459354646860674368598603576813359534610020273060886191997375561709528026188972328143885884953740629407877867558308797360812509674952429674633700047059484599521190305871865729507322167112725076740163367055917382615601654643635671803899936662161894740685714064135616316954931183688290467269327038826039293919746920874734925493074627658586979149807611827091171804185997379896190746736666173976465977026993030141978343202142905574223532277445091484528111663210274376047443048548512160629856022707297151960467281634227694585069868968654727097336244710796623617774027457085319320504247337520242155567170301260562316770754180747391804903646649719955670727526165239128428718031873973462279657109979383689021062773206518794866016587182205708699706028372809375641725751319630212417969129109806498016294764550327686113468744576126869657943877146050298924801179738943693072855287775213607701132423236273541618736508460082676700155659095166307191740362996934774726146525751122215406627984037509251461135848903213430950206844003926639594804159589548476554936234728464472568249346286501397367722390308267825004177013703630712812548350541211806000205755515258201869526352786043388608670055915664734556415199095647676798227323464971451570031427232749490116243778874564400237313428207666675454173098349876576819208605640860217737454646766519980714907404572569131875962104136664923303565100184706433431955720215871374161508265535590229210014076918495708685939587948687725879974856219547136676142583234257911000595067453688768143064448753629517516257332747104059657669877028251357905975644115266162957280125772795161730513205960472556946856908833650857544173632980416300519704665089781571820137407043041971555294907967163398086183676291607221126268253576646827125180731769747866609468036052160411136521553871345999025991342940102207593709713769898141605756321666667154107796649113235771869818616220267252640174256564267604175843509590702896911771332968096041410562676863444162131584646580035517669801422771804661811456019715664610416568093377001497512429657772937326058407171844088047110154395703924472468668836006706436596600454287660320265996483409340617558389154588204747417995109630959041160269865046635790050652634170270419883856040072569638110553774181453826994260255654779584255171966786821553781204476777252481807487103522058181268417518156047887029221167500210208057391141687094089403749641096412899555809149550597156591639606473409869309642911834410987580044032166774658587490135859673899377867699135857105375260716850009070628678196735986919690223140952102175556327913779651449635470628651886031972086510224635866248461575899798001705307493414151645066423581957623029666571161342627226281142601713800560893494617126645321641266132173122735506444460976731004688156405216859860779487378532878550519166872951742076834099018676999211764297573101605602318737115194268159506165597574970517135619013864707276543520516607949546473268391736911070089732755138967990152046404556834643459722558966762861169340739599406231673803130717104352492548182214472224013037463764024647163470653356575847498512939624470112563682253447296093528571308145364691901817448949743696599538973425471956739469998655608890773957337396235056135122468848171016393027031307946622525817069988630705748836738673748686274759534716359536395642200025769284969136633548513597570876459799008456723700599625012839151644136863663001686359682753658067468515846804564924131417179348098766914298501683191120565962535931539977733063248261162382874341581846300815058606791081466416919267361760014636935616465175671006419174658675162056713632817256867794309742997798473557572555958014186557084984266858164106724231957722409128818066927966123207076996358584729142940316842340245868126062694399790455961325985266840843695269012362167321267262124542070808558608850868956540634356268521041674572629769950164516607286395725112424264412356467058112619710811436671750739751257419045901581956640038455366704170105338681488573931826865908279956012117801632846246271679466777209644759671239593261587235286490105931683404012255915689026302726370730287520672650112202108611226590877914264794002376175601593727088029519477495406241546769117463825773254145227465228717643382521664763131496492245983735575699264965200157187244182698564949969218162536647738955731088471851378875641025223717499276968728417917010363643077488992146653077601169844111426777851197091967926737828693863454717816924692230736394524468329269516444706295670227051262555982732140161206129999258266667980426847648435649092721210654337541874959988642816275773053973207406596036590130071470241117472438818476659221578616579636069372124867137161735594605970672419689756484080575674172131073881068046904382167167208375968469712447143101625701103626674378365226726467063655571347768325675097375592302686419067362341665755281924973203236621858773912576896796536746258354157723276196814461955688383448172589303126919102020136386197674942540860400885916928768343676762015319473215406979381966731770140461262861929165843367178922906264741623747534578969185646365881463942721847951373336207016637325638657897603258624683297331078250174261397566205536147340210912550773423365716660266377973243811170138743075212070844666741617488561846965786228273130746149914258012553406520137813632348458592695334266967562716341662860747720183218353293456961906838643432476678834025574977240957302932725644934405169650285856649680863652371880955906650236105310549743289677455353606596455714018726087100171162138256951376203662173352726011703465350371916931213425631661638569760491247428752856664423880085634688361615837536395462560602519739210836146197146707933594792157863094552617280594565612085104663564077976604356056699121374861114581951941680869728718885852672625777339693244642920926371699305217183364703628765202854272666405781540685728190053566617171075340698927429266577571525254017030446807023416338655481792264248085606013368682601977878813841223672155641176813450742630882174172086289636773835939692031329050803066526496092823736959268654874196645442848835705475826371593050516885570249696931472659587008537190101049686738125272282157116197857867339236732748014134174381592277353697682740696996370424254577303983588628624739163923679391424836309599499308164048967816599436497738033846991491878659261171971784452171589716583726429450466396870866460525099524645439071430098936387739862734409498962261439066446565443649209843171202787901275370846645749840464285553647182734994553663286672372729556056823853622334119573387827626484330246630503471759730021067246385157725598327674446185926884780188649968938770722450915946174725642070414153952803971733167554702348764470133631025192205046704408880473136944227046955374173424766766594752191064447015743095079570557212986149112026745158430860437922922060901817577226002714688220757306302717633855918652950360936452176794669822457974562818735842167210666019984973715330316430274412657915926261627890245356194900697954881950615821806649559926680729543766295991517316363639693854842666565833686235272208558863005051918985706732164125739054960871393587777250335331573080710770455905606294107523564238245674036091886511914513635396372070414920496944124194637926419970770963046246154814725593598374431220225620312831673963719464159017431330739592214179033071797711117126610420648055055169759544666479993004707797512620436791596784652461722825439659982567896519995266736124032783587942064398923455290297887544226503156775595395750215809137425238369889416845994806790154018541468450861186715326939576034838861118941096525923567672703822559773580436752675368690725297512522921256339027188715491794663679298725222899419725356188851145215996322714938604601644670396021136524588149647726472874663021705764393995557377829663637066627344318580642802241055430663505670778673991759267663429210773021953756679467184723912165064995615251837822997650705710612164998962088811578449330287037750326699881977668749945897196517394694126996773200943876958877956675937285355848882416397518698729090510067056828337138488718733213103172090288636415742470680009706560349776806632970545204753666065750485012546142206450229125615409027654656896695959373097705669062774001994877306779632741877517114268828317240135762190389588451573727766161516569810025756667827147604932357168402889366988804639581922810060205573591931421879709829794267645571202643729656798264937671412886366434314011707488465650295922672621918116679392413706306177173500834937326307361198210586067425374936334628204637135097468620280786737537284172878899565473804816453128671698608919414026451832079802156522684053972640771255076583756702514527973872235277089254599747884362985590680174573203296888313363700271925219277320587094063414136531721168516020487120700946703172408587573458671294036356956058913674017639958503751736531896976609289989764611591646903458696691837419774073167236749073456719616869654389061997455038941180361517558579382997382982427732471452852748337157470716655711198704971548919777027134976713205291968120129505594083024166949029373957619626725726859688813117855505795027135331273505206460865654553797399777796640647400367425907719958555947258198136539498265212496851472817395506778319459694454003263400481996620976897150155729369256439066505465265644487155174898791656791958045686162877566398472796549610292701447245059703172216348696816545865336964885213725721105908735356672563640131975965814698737144249462513829036346505266681156801068678395175778652392539496768558943127811827480177412326537655601910359549828767958037155316020175555020785372962915126832390766886571437068501342637648858873970599855325398757570014528367220129776503578781566067822568482246485514919743697853489865774986896603529156619995109562400100451211771922650642855066875889955800020383916857552660466910164134679786354058707640152626655068628666793466921730186632168688454116810667959636577840460188613756725438841204834405767085798407129646377926850537881839205127425101173695998436989123563725682650468834533096512439539124179367355248089991861908086698783360571503923326906350413690337256261520876406393066447523843249870951586526872107244184040490565502631356750784388726952928456911693797089254450688286328764802887546332081351692805982069493968496725764067650819512474883776477035274557186127098173979255336288861345217310113712864687067504258522093029550687977631162495421295601750312602459185057580282276829025205670636884152193044805272691095627410535950582687385592000145654056384312217396187088341478656289824367822383936280186384686959898571485510037250345862693552348074865434756180318054696526608071654209677134426161613376870862824078956630421099133463796941479524368977305307205574300639835781169232635896875524369732204773264252644207490382272650761753973617444425545267527597623582165843335661659064799681232361561938584147488355459689409516371306447036707767766746591418673016670296862839086642171599774601366626972181137645397422865161662767047368879738369971716436574246982494253698382611564020404215376840546616273877368952854907159979084644170148555407773386733472308747548938161196292297123246814639916487920774864456717018250198271020961316752166704675409675403777069932812216216231548738900341273765162916773279150660534956873388579966807026878141459167170889534546575437148733875093073242254367025319748696358130667645442256555006418708794967689124202674037840181513015280689189774473255445775891140550541680166464278273546876610867589609225770224065897359589689602184115869680414451065218196110129946712828716006779563990641291269070690290011625515522503119270127939403572492631955468072389522743496273330113906399785263724700315328988436854254020566766019793706313993364798624495711950844547418318271396816076533797847627547553252674355787234862569735480848072776477561389043332681716515670560281806352310127601969224367292670516752153665697387793754866589801751705175733062589474560269267309615913731987005170612035755409029272674313023662720959257286278539547666240370823016116333172011115235001367737202625585306674660025084371331361927413944307112402688469704254635031123053711034005470332942356713598259610788223767594523905971439324650239748771647802086136814796673874135472627504626707674640743760925063830783426903234514698210174773841274266393542137740588213771576043896401964905509566662765632952096374889430644237586316413116366311759278513617259173642988345486039381687375982971881367046304610261182046517117297792456303136148688619304357949573316272984575747082454870839010726088405505669889966567535330556068533201541118451572405316106049933849712642275767733648427468464158696461696761294577596699059873685653669471406639236323127753720035276168434430157234826887601759751473767512197033481731646809050870921040385787158173697612178060485029246975626740734466519157300340398987310866592676056248395472631479854459573638117039997187730914152110438509886383403292157703560270285889625995625072674693144471075934556265593390666928045261568977221841670070746992081866629085646221498987199896716358336625036741890273529581455370700276166620636414632757183867772819155762717157664879720772437334781571050674415821868713781304717548236365585080501731001706054366293746722775886142251413869090555516843924974693023099867147098126380597974669464762671406196902131979292704162315359037599765592341942683342972273567041117301979931618241676963184584386677711451556361249760989758374734041386589486358534933848155470020456751794620657271641666950766961419266329729693459066458165706657156701624810512654819835963907269266944826109167926206974631137467736222577169657530530015802714923855956654726696590166416570949016675962488502670026387160791578647126555673652460644862232598986805476753731465499611606024806925233516651435658859961453137433358984748572665659260367681718932718710503568874660731267007421773693008437462542688386548452372734876617164075943826950853703584645234770860093966399970173138759482913385168807189547821585497687867170991696498950392702934296317424176596876751852706048735462547318957170221201573189681274220995485297339470738513333168907582166905372673586259838863947369966156069055178042559568153914776204328058694570303964716123671998449981199464059671638834947205386069679555055073009676027390989305651083805212195091777400756230637745930716735645336361237515705307508471030787476852421089693280951566816290357033504972695807326366949060626313954039623339097970024262327058140965706982297070132818476872588874650287772452214710076545450727665442755966985673066781513088636417559069019656526698155841682551657870399886956973873443658083360770863471766525940971656149973768839050556422493982127219593069761589477023300392682150148366363830347041518801717737029771889114496943097137695654130566590422596448478226661702769361957906096881119333681155057864239624496994464193639182473665856213497065162627704824847260898350306715501761634899765065735698966950997600632419668464108532056002490783699635258265871023736638552384693773141763775842057014864703640962707870631083346769575118707084904569330771206771824571701087751368825447196830332794676737865968937673486856537575715436278668773224487121941250677024270371555088967028109644718244801767076208906986371435650375533368504574807145357951631656316064473833426422328605597666046463609591586847407234672439016765582129596733123789691088292668793585696857290914718164815469818264006809978432558640036271275616737106693534666609581661831870766731516228681251214867904232306944187723704875827169331267787094504582698409511865482431027132572660674077021671255244606593691117712631035770024950426081505289673835606666136499606964147031658562813668135750576815606650653301333565422613957040518179675776558870415049926481740110652406953168504817046358939551660441232469173375956404121859651384788369588286146703227639683131708668259592136851596341689085357566984771626768427726660715585559927283956756869244713113817167447627006624898651648563285570454673786497908461693007617665740287536854639635685236574869174001517034977061712449242769774155586557219475664202870670113522667132108637689325558168368710486445420082677907462268105026517069234548646406215964412867066883784547689115054864575130586644526419717450208767785792136765125863652365988969327662626377657879717925394568717063006731541534648517445967810496836268252969655502565667237284116337102487666604236569547099237096755621705418089369948495816566453221700734253364886757726933604152695469171068712651066717693342718226570269395479606420106595690112537466603502426511413504653741171267873428097124234858657292051863122167326287585686655277131467151841306821620957701842492869895156726188460220717861828467022087987072855939707494975569643272786635387774677114774170882994187082857197636607997714334248016865862343203782073745802980970160845077122616044675399245467099016397324161201613447286864063631131187844263163190780866935742407424583827182289733272986179587486250312608218177467090616306709432276741966344570852589156952968994674756598654768327946396323466596343756574339572746967585623119643206172386307896377408281731879195561104704456633982759566033484254390076371055389762745957042669614533636536793961643766760571567163166058283181581519042853294576647086067228721752477353246672757394898542743996520773311446186724068612723261770273690205485659347236639469599771494220636519748495703583197670841167992020012012646775376269962558816001913531736182096867307631641988973859132993800710161402658585851066351964105118188939723915088267017232861265558421718189809952920323036070920634168814779863296932136350062408594230444766069369836709973964633829832655823475157096248911700364622860953476866933801884583735436864855697271011722919552785188221358473285016846513745162772171306049585201396944746561954460910807572081213067012865285656075896599186712958926200771738703651130109811660838787505787797058675514787074436962685924985691124469388472135114896635825780863754017561336214758676598297204748065663255638961634422447360797223712111198220582366552076948563503364515853455856043975926217078509633673582193273575527651932088426304105490540678037755787632015259853953697917910361994199427377100187587025123263069356137203162279737417497374410253026456826074581204088572885617601703416902749942613563795454557158626751268361437661267222372881085797247715979655513781160000744927133702023725018319768764213386989953466571258002651941352307468462264554279382172870832756685923786564284298555193349296784197991142731438522393967371433108587396278344683377370351241112467225005967560686003855463712795856641211541884320972586618345787044383631680759471333186668321151805951331858739914032571079513168068030366771742902537198694031576647066561539846446401837599951576373145732896201134104643117428973573675597120707574718217551063316255476090851883649814946565653123587479577601669271388570515582677419935750383668607193455568669750417369234550197130275286199250747872861331146263621695249459148656942946365078215287266823186698329043174823571546185834331745250495370464324677266487585524541077511095119527253119229677143396174712482366004425674613061216454889316617285052981733397307813986191505248878305693811303954535578456900249234707358704561345883407174821236690540469272915366716880235263695507580564211434647110562556739148882355956044975806247514562623579061182978106416155001603127759968519989991912204856609730048744819562063398883416247220193748467874469251655287362785444657674544957264739857395090283134311322659992137755366569936776429655729193161770468720616489467261717939614363213048356938176700721976710967440280456973487231656625580266689915186989022168718808691110924180676838418460650800540218008882106913422238721623195773905315875157521316699809103366542509366948900162561497623871905274357145076880670636968772404075441569736436626170706574839588646383920709737494306059727504967387436084700132960964794534657474154520735225163772013451567420483427640818156266490273071018915639658742865357839877716549164496680683908272229826116496863826684164950765757672947169518791673448399678173319968868078615349772287699142769459983668026029444219188292751272157511605914210548705410642466066125725861201475675760251754845124958626753887279490791593188592861028821287260017951727200205067374164517384443285111400324505714890556937699266511010911528844463873618032117312906793646638137469104300017492294213604116719864509702857191771188642032981063037811967297600960557631910158662434526499398822615341703063081578447378312343142077840561195824291192455972503483643566238829746745489792503024711873021086886869847230699958429065359483627492653952135391929206043445961667290276736757478551673004373708030678080550555625855553603789783655887371675815800291719138468871633110086719298976171428122860481149426499745402210016434154186229897121824938720234091818692301466371300787585015375453599326877009073983734406326870078381387167639440574741792470548613596493993372663035220474995541766542904808537133268164124719681954946661745072930569050677087215309953676823473464730167017438455885719500013970864244106988617143732106210671843605016194463450516853571871805562757280514409714104325167682567637269439318705132822467370360826076724203600852748616339779675953684362645908355462111946436412362939536796943953563522886522125161724695727171657170606731570887736916043364393280398515244915607779693114580706573120780902036285091204683126966815079227494471302650199448265014853776962296609162347835957627530807410504826743784915671332600176865023604502662234254661090625460320834697556102852250337575768663355741784084969281793662080572917411004949595908637472747624446579511697744117736917200250047467117502692124837153725610437353733557144566538153127533776019465247682342932062763274317010698143740488343255234019677263600102743749448274073703281138285977261574069696535222373943462776952476015746399481563992519756111898670665452166861814475211994629126726264512468231309658963249866858224982723118285020508364816549642870500469040559999791175211414853679357928869276838256795660448681717500556923784387292165365526001925370536984151132822510634875711174509990066409261303518205591070769334897303527489702441056655002156876740014721691281883958662153721369550905668624303611508894627144409377511666981318221284066857228787742003422866190143776452499010607134872264077001233017352996016860199670145213466861382307222585555512586095964883137446442714370120820355919539102416852023217678252697965296817757375429727705305150514281298247317883798744814741573460484087428483210115798747274234157596990228385734275357263249591637090734968747836512567633188546690859761747065153615125594477451917433695376948765841738311811237077668835095467497908006100153568173118632562526964276496319021588461507470065677995814845659741009421020086448547237901982584888652873295073785025100704618340513515398765476938157551594206045668268427956441914577713851839171540064255338194269677103115470776513226775092638276181881722077686154681577906861922551694263135655368469927284752101190530558655469206335792588558678381407769155360615521548420636700872170738853296413868371114986926668186157627486021721583502247867873011766061199279651562710973820091085147049876574282544971749024977114848755610406118463256635917322772894706644345916317628806996454925558114279774354011841468217675586419847635262663270379018991214324429736429165165798729795521643896733688305860644823026617801881710195040895835652655891317371129287205725432318627470273666575767976543632435712089217610831341207455569268587094089767817864196867333066351438719743932567372437602856522560075623263454264554241416104019456194958733171113614931116370888500092655172059797737215625041724678745873114864056104352402637604445872645500335527532240512471459661239553705512585519503647441571934031125586467191719661765761122090437317009141207711638613868161321298601046187428928702632382371475041216499824018648451856971177969361739997254738882536151624359516772378186589610256366551309021164985793721800406992324946643306093164172612926510995199663208951967045918651528052416703622359169181473046970569359617287370164846586337482281863632107679564839548386924084534613762145662738257776620608083731971766068428741476345311298690929649971544944867372488719573457092050521250866563222139102344173466000149306123492968719922157071589915196306348379550071807965867700786255333252191490873961799027836267239558699584071268229225197084679482707916854566283174606869052189745753461165422299831762935716716960359366286616285792983870144745511218296103621939709681704354882673237707887311956023708465675411949906516555414419683132424358749211836202603818672924739565465253207344033202143365065661439434746520604681635869215373416166956571169321694534165658162926181313586790670605300870438778906996194448632758128758259149648387310151305365034742405833667336303397475222420199207466569395048096774270952641227152566878544236279864769509955839082336257965888272945791472536590990780159956290685578539230689701237460074334656750078946601529028562208571425399833785614125365955567364436002658547687974359450300766001750527219599200197158468598647199549032632807304473856040016628088964670263753663723592906589960139748202970571999592397326971460605210463367190895506621421709579350485369885343596544008614718692535758439792986832311320693615418617837945865342979755385183546613212006768812013337004159563715984465069054539997890890831498120910749590226567918689741997763088595023097469580525367324063264504087467572056757214363579907113595256709243694371424526876793069314690332785869563832986064723973555787753063279526206742206302720241335771160826936373264308189872768568015236007398261602648192811471076077016592417929614272897574712247616342154243657379122972500713417364194027743379863269705599771364115755208166763259837595611734859099692788833365172383801119401279136506065069721971575609599292699580945070608324137344715456745469418072305736645418519354606576894863382038735909126735725620787664268488026997915969206959380061271414517222539676727649528268327092876875207098683830838751173966916587289006571573294971728317686826525838198952309357593702557376361874643742811373408595766041248010717207876470404904146590534179175280998642646909265095186387265972759642617009363909087111239439877681787325965122608966058991487698069341566038755586959336586701940963059462834026620781174720060255756179999206067572475724512710674047939866181461705683444847752380910217462137054714213608971176920016468868041622964250821430436855588426502654595513965011894066121719822134485656417667277706879953099699610672070333259267393990948740544094660267818476052835970212418415368262161835407851470353160046790145252703483045570094064291652943077720558774219695806706853096477264413235665859029954756641596149331405705817539861522469326988695296626317238972977201616201614132695020117362309400565902048193661679612374823313785660640583705431419865628639806654703058692349879667422363006418565645654840294760920519391930780297714557626872460246981929465999127771791473181768277159264499112256690571976706676552395092658805805557554702025266129950645219778605962283321176637791923093020179006281465014111287222183521736451523374489246271862984043711817597217230053777129332221737965249656920331141980990258626777990063574938576713331263729060455073142891825964243338611046401652271183897494374074703918457756134440337014218602650622818660100965615837211424642141454165814746075891315104160881392872620783936452642488622315788673930142606497995314142464823650477676865083415446628708298772104992447128710634101021842360005698791269882904195175302165567091566211137031707611445167235071306606664540694387555363512185796938538257639198088774399832095898987198674405682270270948767483627777208466081746250895969615717956746967330702394626568471084147441692794723936841072385641211127883467728728353958280969287156916346600582113252477373187247884900658255165361400551816444306228649755204074901232317443866440707021506255986964046809902268642464744464243367621053611890618056086761767740796729521776530454566710030451671719639515944958524554986211971472918306446949652633490825262662055366697278383717371187573252807756689424871172224705660548113006924378799663521047065817581696536809618575860921172174906967309189010124091884564332457455982569779735603463360905581898793991767467446642730590058970096105776976618555715033480071320310135697139082589667475667113400826601151042610268390174535087171816199679692441179374971415327367576185645763269070464432376328586370708850801454498944557482323329158225472320996555223334376326803143470709863190659967236893507160361939810836117734177744101639052965571641761199762683160087471680281987276517555721236314420698779806675188096722919703171044635246216376675598628077565616826206986191716434312412684691287063468929526319833374640666199067298153496457515495732916296554931931696886092683672594071165562796477427728652678274103268920962585848740836214438325774448364387210610278704416328873614848545897292890722043303433653016761676450187138978762742189607763450779762052265621698230599974532555937281270883663399875468007572847301359306647425661270191675056894905057149884241720302758472594762596989693670639504922171637575787416488800684624956573680879679884859327380743142743356786666996152266129543347646708368073005899726894975541622607512768271639675741814753531425666273165431276830400363651970680468624322886745497042152046011656408295116469876844727931873961041931406830528071717999627854545003936710376389717787588661316136927477455815700887163457387734526920716634734224304590741934864750997332542093367413174641726643515874048783557029045236641677485174037619427220154230719218233361547751847264908958641026890754815395786481983142720437975861061888665872338031199661769265384040397165584675638990735119780191777346758680647366224170569475487488355428675752765730035370565013428601013934618670543971374121133847341566967707621096956240660835666773293583664003273795319326976695417624857284365462463075861055959675872960271665644764186357027150811234178320186519136117068805778595913734240190490894674495063226891442596650883948771794078467083754043745343513567511089716322975053175250028756963779877333345657202008328671389189786939940123700256685212490754626598567049647149095373813090186320909055695124145070553536436358253380633867207770446150576311053391614304801367133159666197475414525024399267607858766074418830586656935319071880227471044183569471690350240403546545232758673686593858990590027392013851680995593572980149432113962395609802133165981629865841420062694263871872452277287422073725636221738862722268177403987656662947784365744278395818337912698252018669455826646502321113726240082369033786497063565629709432917120154171407445763485681874912374928172686425953290722581914460393907977310768447615631322568227827965942039167490117031670480880974563188685376194658535505711612891875376704280946655781394666396596236943635308707011706872214796975527247126186921444669074157126067271725697653837670422007756247956825669111970623380613063645227707165122655743421559059579476196759810972690655321868213086076678356742662627025997643663694641947769929524636418954832513185356165794990476794093124710358302269840294425610537779727596057967814651556322819435705109152013980548506597832810671362029560940905676847722472714877582264877172016279560636747133587860504939066994956426633979251564610468315879670192643097338873062847116341043719691987587668922268006405629327742607528072730391027080834806649934053510259310366480152633734363413763518241117219431975673853234468809654376312065865593403638267254022886309001501729578512372300552021470456852667537916271318801346712184792682229518465493423727316230885719225391966570074987229504155575365573810798068925158443460561490200970056039015605618778565877815469710414331702636257188067496369088146356871247042616027289759834249556883551095527403797473041084767145939277960720471674064826057474917738541498365573060457423422651681940189510619333417329366119575742563369582282376400016146714010730763792735955970927870529620461072567441955365011099639968877767604664715976006419715537614963106860267447533896755795857687698573370416581556409704536698067862774723607884132482007059255604690176252865332577117059315495696390173416697351166519703876636010360564087531657124513941697791223263807766936350951725662379654564208786786841383238740333040568618218406456055992665606109864263094617473085241529853958669889565761274042223687480166573528311826963125405617565945968243594531905246847992403773686204354254414608759200050596749291111740951930165786307738850671607014123150710414587172744769152107152075921669027379956605587661115259804074026910084074740286054756795069533172986456754460976514956346761653287126256247778596898484498978861916238232628285004865964657552684206913361939138197348895649645943767373125534285551789032705016359117546177436703346766701588668170104316425227954563635749712316150440396148924807716312367469959072656849231594663789531664607872957263206850649523883558589811987297352187738890605172464419391606730518672661582413061689471986104508671693724770430069961369868538629551621767431150656088565771165719735936703260640686643163110365736491149666657904261866025373706492299422908119318553712317563438033447040088187562014399864719183181245512756730466049356687572756081546441735176728161877791406709332777626169592765332082027427224061603170520957092260539746824945553515873442560176622739889524513778974600900436365987331637993269616013072736222133688563379588574141177661443272673643501865268453156617135777955543257520864391245661002889958673555617367958046055887479490603385003374442068527382842218665109003460917953995692505714102809839063473369441874627543722305832761288766017049374195728785620460784310767347241123730194078067106330787463646504617593446265554876831125795627059491204659262089373694271216722892717661102819768179746907455560373673749825859662726927466908979682121644814778868997131803608703628249454483856666501352536700235450166061497036709207713740630633065081461336600609101662815462873312469917215467062726666503964789301377118675954631896000771617931267361560513658415786667428599835945767686728276884774130582231379877250176577601367697818177140989057659780270461874780437482787456620542719967509140576382498235706927848872392672637013776525672213634869191751801666106372687604017332618910269421055706035307634591990643868254504886666100491668546444069423128646971877514665313869361409747205888242319625191172769578834386820933275728997413068049576027056389071606435266987556916253221108091094035157347105510699370439369974840666535194161747151098474704415035905309937698881318374150348986285636289686131390862005110826774569757683233922971473824686710203825674897969063095890156187898086731361609658714064076878782038554154141860084051165120798336306537085733533659763848394956384266099517221425668250589896867115737722590653272889486246672168501639456181128721697459692501966883243348695494588457020783646106943559711563009273600616155849658344101674948555318462186774475037591474825564761490996793994099688533968773183139597063132837144108958862954160656160232982706044044068174975226793285849644705372459230143997334489785615528939815269367646683889965574591253263827535645973571018514437765971691765616284423715712510986742572771369400535506597276333584287681272879752376395318874570926945668905658169996225086242846115169347327814221264725773594830299878184513808931454484634456577583584657876671564959761681629604213600759982766347566466797649477659541752812883983361942221472582701391768026737986452558635586997665464548707481980050891539564153674585088817419795693668972656810103222395996535430211928093057913132351929542900716997751361068434356162797274560126159057018833595573665953583099182474407967166164971768676218281571999157666400592145648456290960449614547287697493731717024964340088265715896949590977983771347131597166734349123222746872616984417287033810701460986568867625087193661633171785724072843076496851768712693708200266272564126562231436672814313171293002286877398636730961608019773400175156068558621446922059903840767346487142506441392368303563701351789420520401668865931037306958292530705701387473764799015406732870654774291961030865286557764105563029681972880865285700621825704098975616077602420088113626459320002709328265760317209777340453928626102352065962833777326149592581547311657890801977402510868521595632311039622467074927601610723717674805782295677308038636677040166043482832076012409615182538863239966656634479853659024994552248343227023448136740932807767408116467233032264743390639719930934886836885141726635053073522258675658145111697471924469587812587217558633732476801463583277156011216825588539826072281183867007131803734913101968568476516203498435725192318366797874536333445229612773673767695247026767718823561258152615728362807310777583547666775367222961867104249132693979777569461630136830340073728745441874070017267125648254192357601458305098335822738782722730063719344087872038221372660512716866992588067111369321259301487202334252668003530157052901083719637511363072271156111154539526336700773806603047165149123703109005659266017736248175868639155979665830217605548702463697297307562244419661757090193663559745166684536866921801099501885667362520271826727877373723927214954769850446668999616623894645974693515905511514140571190825059720743145866515655627098525571575722697127958666553707075554296480569019631936357848908653776079417522989407257826503681359837861071515097399051955668954077653837111396656895918147362611566615765711812722815576853104363551595781209309076369046157597751403073540065376536451117709748297770849384115457957654706601201754763517116934607325710250247060181290897392501468811953655139481301272755208886133471910642471928556736790821869360112685995730669249079447211914420744458666091848118963022715687497632219660195604111885703656714950087414269024597167803070053533246313187060685292557566332474497307605227566267891364781167721967685629663419734214219715656473833073703903632164976780826025154852534619531064369907955997836965629770522873249249146294580664607076563112960125856694068524635061059273253301426354815778579626967765131383706177417792713267433072743030887060498258682108798318327747451627195637161174890267315466097014882187178637539671128278387286238219633696247052107788268717544022137239977510789713163931481315949345634693872520463845741536895311244632937053770655747917388247879604709871613043731651645284970969750546411287570748317245465288289451758123693164645632267241201057204311278722736593148568640072187659627121366719696263720465487590375714115895546375341363625287666171112199826177015357616815703761670065043623587122808826672029129615430373569894907536140651050522874773165768332546396866831747316223364659251126345181307748589253965579530936644549239634965764046662550070847055605520934987336067362582888311469431242406259315136532680148968547125701834551220669914162171286482765858200531572120390866643235787470798861622078592212245621045363952006654080954219966253925179481426645429565561938912136206377920591591183274803445805970050548648867497960025536357344551684505449278973868612256792269431656152983916788817247068746687732034547471711550505966857283610986685767780767471850505290664226816468403726626473727062655702751758941987057276969057720078018112281120306992654484699510729557740464795734796446618796309468830951375887225535205671572768951605896383949424527539414467011316757014018849614242215156805861356697099815636465322654637644154162548741913368950580467205717944839856769235156635306633765870034277444976644672314515366799172525644886853604673300172783209086743824598633959272466934190486717269977698171830370764425327215742585632268960944619592170430317157059666789659094493571438622756556139346982458303736879950174922619935575866459304312913650331035830614513260688764527360343129613365080069235368537221082673729707032870968990496404945751640404258269545559697461589566733356785266146430136464594398746392210853080970316231239723567993657872918743417194725379624646907966006852615274316771537905192770260349127187236691730887776867426134207489191045713369110263730555497091737615748110225672182861077381956083567436349974816422206452600125710708857155478440673408639163780767406829873423734866260273243205246421441599694471903366934905511372987821596445012969935054977044671419197059119968256492976053278014710501370167105282716408364709686429014060269245207101136769648065771159336323415087226623677647427755717023555906548072661523344771646325677106290965710348596170171017697105344253715217655371883522556529670093732024078569681043246981731686552322998871771131275791030243577767091332020630762920682626689100888603611664265942689246989788942715494465953064411317495323087606819730666355886696497496723505621668572871631997361295681599756397969508609906866856418747325416367286535215509966202221417947672995480657584043406711125105643124792772951056115156677327663853485871074287697409929813643754598768701543166609267136697485275371908128446812511042674952442374091898606238871174678437499457143617197195543761589186887973054333286815389311107553811373562155632128196997693688644166135795077254631539582599267964730181507428851279645397346774415036335020451604737608924373188978265998019012611060524373289118197419461397512491012272735772406388189124595340371172643418897251133713726175150371493971447067437593646279701272702060367008156625694147576572870059511662101778709579034962993401947499401400588341829268217733786617494212662817003364254604477320473288636159089272607298107226951034708584961714607582337252354679694432011271106501037471212875727655935358430690747490273973620631976656362673875499811906177489769862236860546901107075633189902874232892297126835091656827266461065307096689736104702259662463835557761758312040738580014059093287537265573463689180056970001141896162916140645681751162866600306206059088555184271318822274507045581142595798165774615686517126492758735908680657232104016068025933535729090506873368466252734177053935918565760174067803666027024289481118844255872456191616723672008678797703260155111126822405447596566977455794240675704042471693956568267301769605990562400793094629677039202271191278357264817905581535320058609283412093329272532745142653486752437467101504591739189664038827136537918326702523429560250114166856175207380853221643549271674348036206648598258686045028763819944017387988272646487199970302440016537651320632086138793852752019965797266101575556663814779462779902046734570639634565362862938011314998277870558149327329863563722067096070731071067370600870599416282971073863386489591820648898526663346897466829647410725269647959264289276423658905704642379352144162006564280891686712015869464888476030815917392373772745256383071896617719645129627372102662731138132161553569271981089237684770006866149098467384861673677529638366280904546507112895655980902767639610397274450403637648940860218592677146597748134079057119179814366200570796665452821711966929374828115356607788802727456863070260681291026807819723715752666772420535011866896585624415469630465767367058780702411150558865759116543570026669025474671080366326012239384648361633673192264556410275347614819474869689653976847396330212406262058660977077228830780634673332354832437336915962061637406140162601576855934019753594309459056208389787063600818706524169464268329315567567120213860487370538757112115218310737170889966230930606063743676511152938653549348357431876606167175754963662458556410065011695000794474878683385211069588676287427354600612686859854898655839382172625095766612363609600286386452558897796439833670189715710174150231906433845672598303868358412215245594919280649566079766817912846610446288630915806073963260227240190539624816931050328020137108311414663245924272882340967152932093723815555764432750156445294100166594497872765912386637957139705451379764372149326933444724557960261854521161316903846775633702143462650235965746355100630256139672696166186911425809646970245864076009546864998482694923449271856890286913243411130213404963561701901174704095195489729220283696148057491795386530202178622428858481778836682807725731590011173181272362064775595679294929119915753795790644884166515957765733023727207566519573023217273971364269514238245800505990726930139574675184621992588950632069107973726920426861114303722171339468640937877415894654723892038758700365157086652119659189693969624333488330846151234370172579797111271999513795927172918152447096169160055126014472106633521537603736539220171198787025604198561460254957042943337148226359613218323271491521086174985621636334933955208855656996043238582548668357546261231439621221745322924065351683586701757936315847560580393636765483867417079866135535805690951349259165040735659507491911662748627816146467621704998236073309696427397593862191167332373010306596675884455724576510469378185485975312077681147298067006365411158283160653187179159803228748642889915810978425557027127560084529056944152732657468972769726401477087503381708100675572376943587242471236665131647059474299146297215923572195751595084186368794309716688370467655186287866908982837113223306704576718410437969197097474169663224245874621482907058181919189466744459901202855051403247398775421620331369372575264076903751243665179095862282645995793473508718850271866570195405146447825633659551749774307472511455936611283149151533246267977183675940556454544910361259609468066946032544712976773474312857637372101529658804646129197049267833851355648810752692759025157957841905615280621723869006870022664875163101166711557917270279194036461138880687886405454671848436961819733663253955569599184115802014117652753585874164694285961363282730189431351570507546975499310665685609873066737447058904367643969073317120219866783098244170043869360935377527327710781210322407570889994475995923994712640380271986503416831586616720880173560278393806214654560740271733653837676576121466499677088502563938827307041456563560613057762818194556519114686450557884586461488473703298986564494646687972039815309040395566255095144713925069962472927084312402697454279166092591997046922859680198250773871673816323275404711089598856437848037352418189742113237670089275576402628142547499536631460248869018989686690007267597095279254385953275632101355637119472772537893536345427093206093682969652662787103629917735520911371325737946265552852527526734066334559186847205850553489184765407941061109530501678623767736157458863899870971947431992545614431829890934671095097809955464926525991254721391036861997184326673683005570259311163032653115984719120526443610471937131285773657737731832993374824106755641064617379076747882975288656782173450397508207112551255699788536564802347456753816729681767900719062697817269978847558450723067197921741360139453744664178130443579265500363076716786879707630974921092295116239874754622370375657727607346974654730673280082974613189226971245285682781973516461977806382503841627520574061539061671209394876438949336670760366054696094485089854243552886447053625328197281853083598188549366826019505971704901625770861774411811606700465290606295823072847119267094958431710353544173542918225312138332648747906460642953983775714160664878716695636238581538213369893369045824499075648570176974880351805850559862606925174370399324046388895898684463288255077460266087018875631421148068794275445741782653596361181862819735875078710024574171905859550950766345238967187440117360962466726558324188579682378670151387375147482868514820738770642248071118358747111524883639946267171488440537047215538604677772865398327366249184204621079341766793393426839489982191121486256824865251124391325706468536318308238626806782818660007408274016835505635966160599463579872584770177314631475198348102474326983056980470422631030632463860789301792323811583527954920708529387345519762686839773957332665135524498318685303578529142403957435274496201011400714453905072409116257200441136621082811968328647387433833064616245637273680259246413842754623787203374991591227415948523740870695074449988526523709775161022763668809607976826364804744058195064096897056755488900721743232715085774015682819227362312098553155342964936523877498559005689226774266369688127132846660721956849270295316945050532602194799877473338939547457749886682505019973609258616374064384733586501662001081416209843135212804162467006749275440312269730211069566629890726987489951641148234560948456566268746130547149644468734352407399920553738205915768499092329028937667476511057706268335968757064016833162918679240823112766912647317783639646820215555188785017489012929731476237767300118626368502042630896746053088155187032351985710264237073969496066309690350196576253564922997527310530507722557475271135494287431648276701382692452380032796520649219678284133056260731585575181878510536165468036012125407375841718827812366776157647273956612667784859472010982786992855630622345389166308916187375609762670733128661347224066444293956677777206563742593586485408396733299936763606099487076519014733564683671389102091254239596735851309762818349356049330798634991676969433432181112718867476631289541634464669404284137258150762724698520872560256376717821564103158148514349555215014482355725494007769161869613256911251748979798551410759719351771297267703702728161252354314440576881996205586293592767900809736225482306611776484351385214357207293326714049287674180532019653641211092247454743357890919283102915838306268619049191664095716416692563036134578852866966564004221986637322568920597424991555293360877362940447745859470074712044417066529625704970278851106366966831565590714330859220898689436745340176736488884564677655817416802323668151407461050405636993148699687541176960506700236512149063606821531915587997013377172715087890216673722255161672676276522970967567356308550463266429025438851700883084730751438172133278956194449564735818187085490209069412676687170264081630392302264565986515964838420683029548367115132335159614869707970974865514912756046626901744433111514577715496830070732132642697473171091586660281276619736824461986957137163637221600482318862308264997462123885666405344218061237946108022582745410516460582756286706300938612702194960189952307179260429534759134371436419467116659070701457590163863560261877148297614564723368849350356947504736708539804161096346327164619213171023187683306255951416222577347250322573018254820194333466509907233181987262567112693856956392985553374534865875343356654599081625047516714940891446802378361741991117815998412556016408727655185782516834558415722797900667629175961753025815433578329637590521569595810467078850336708872881973191665916689722602736495933367095708985817125848666850788764997147666258762453673629417520719972786537208694716240377865246503077005605207691425739769949377072504812945505882146566646887868120508476578039144733351337268675206106976075635735042951614552157236984038579602425720674727363565634673219436002181735010033460363566961771073195730446983660763064206927111777522525853161229653127347567154164202091963306996836779529586714596197514783446195786170998594876480866543953436411745445513930471679031664816289807669122683897084216698687567365061324528245874143049725860276868326557696683554411586147895964312310806651660949594644736550883834402475626007478071360705115229659903609446264160705730683586673341460676558843355720423164516786697466854639245649362107960371797746200562951718473492044311925067335347266463122883109063170169223761987285917124743448991357635008107129079127628869497371762617286674744197659247182452279295036323157137592308154570360561646832462714691655751470911198926839922485658280148574501128395914264268180371972455118562285579846917739787686973424754745768137908566200079274111938187057448977189364310566638579507323743754724177694663195490706227114014673010356765218547077213348654584531818566302572707237564344164965143266783344556937610604582897450067580901011015254635730155523010147452146416938011702322002774474572456845961975724621428674106599876502829123730754216974869107037337066660607464149472047448846681824593579817947461843429905807810309699140845274143987655097936564716011664167679910975831595570720619449654941037146730948606642801383560439429327420128185978327212130199860966875873746181368706672960786764562378931924446910655483222951130195857449125297716663774074475207296619083758748010403872871410451398863786626171121169593119426587924560677231707466967971537371338385674429234664402288306384670738658044105168939505817168130731590963125569943996836765239283688088324612861088759015829146220871697509677447562627838877079763088669062945769230207177110783797520750322716038815963112546747120702054699815066329322576865732696686565814008583569355464346825196858634821635591858354470262586540056879684188193359991091356426786094713528224070801213936883187121644958589565156596336893908466556235610618174731612134822505573207704366804550565874378145747732054318914276216754500281190071984458334119486906017569638141740566977436975138744768102096355562206779456799589162743164529119293493817056489188558725140769770368686579582107588813823067497485626574807185695699984863264958270521969256205198766654672187869009313085536144362670474968261635013801410579343686336735614134564205506112481728330100856375691576342074122748914367616321943497262519913108930877171836182425562366380744037061412853347146885863325634239575966018656965507461260703199709017541079952057647727747339060169121439467327377751573645743371949105066508827677592991366774992978916495800972718582197466502622696055687523597439687060510544476890822150676946220058328546227423282142701638369669892747275597081964252106272679380208674786391201789281492619818347071497297225974897583555441566369162555595091791784714478351873728279646933687711705375515620737139606126883891730042289869810833477032203452173448645667079274466581415218699825428669032728036930403520592670238767334101077048142780176848472273164807862037704318698561801265649250261087585993654374274073083257787397320417555699667372489156806261094972660683270174709665077105254501583168358065607232945834042884703567760760620144498790814127052556828947873215556556507649705199674613824295984606065638665977229523171671065781106827700336669119830766395537446483640764663679432354243481536764307663735678937295999904772964064866485282674637137157323055201772176778077213837666123469451658492835958559576067139787007635987059764049089956967651747660122379260477188927017168365697484380871874832127143293526732614112451115212967109026293690034855619425060556571587166668585071066751100311064878366734916537469631379241211683979741659942369106139057396631552735199877721593356964111200296472855063691524586669694925735808041779719569314373110510307266051023112172375170122024087144680076748473723651952658555914296136684295502671475464165212668647583788875570382294236152618926690219275854426576768116059165412793376701571093652024916417452717984718197968860374811557191808537631089720456213254266027625912678142897050058771637300321293703107252272333779416834398011725326189170911260395815838059584042170472911256356676000386745703063371520740047268712173716944289768356684147157105232663116829766020481007180140790697781746772000620937140017664605691623261763405316357677495571776452733315566212621431026266920960518119447072160596795942725001659051121014203920167187805078654572306859921266987309566146741680078171397449917454408496538082011964449311170426374456452464427630042381166307422907413451443696959702668547738597417517012738500427063381908975228004730649670469474513347507468269681559205836666461835860433399306201485017632271774166773364197209926250726913492869530951337157521411634660831370526258396830712369548778638668795161507494624760649681136463508593747414658760623342932573569292296110859420600871800170154343617131403049632665000612619887807269158498582889632861752103936784134485684608301071262260046558627204717395810274043766896056493742705550526360180614385836388217194807646512416324437215884265631994309213175872297430369124503587940361207786046239698901700480387869118256231964538419183544617470035146771479805374630617648770080731566028313673607929477466171542497309158696109707309764972720987437425892148885601664233926446867593631718332884069015535236993424245735283585560123963148706274836464494999735870738264695112246682508075729017027165642080386392438803738522264917073075991801372635737427074271535142846906644625691868669468124430156094410167749985228863721223797085510516693353245561551017637029686341736841320255760417541392424226693231017171403399156552580952708722581050305732177410426715505010412262227102075057263583667225101671024124665483568350622827368773395646526500817238679736843465034704737344132739695657210065546348697479862984504724927620395063861242130437306650655646571228171461955096494146426546993554259943085937081027406541500922570937842097429811428662044042174182521586674066742118732807535891762869831710546944967729164990442767322399397090613861690626421486140852567730097916246753301631986023570321499807470493375701438699757177148486898803684696016472371703604647481260230162745414166566433296263237137575570596367031338566327868250102772533172330058806935633040696884163770094403676986013587616290200765558006046575934562973871455716417367860621703865097582121720880952673277348246559237159633348994173573103757438002604563033695674734811386540154984626904153661670771396810774065701312673473065332867099633731730773243772088018217348570548687174042626899787067736398373187771307211148768584413316869479849705505480425724288443368173099766364330288682176361971547853226620191255637839007570866100557021895754586768479872592165467486966551655344899963132496559293271497422623277711505748272908895517349328220134338306964123239556907481765589355836665175495286362068684718473676511533651772918053536512845911704292207672133169595313022718642109150772419844607463559855712561437864103551177136600320653672920168703534312058565372610061107859837418486886840952622968883973587090101144057233682756527967591617416237890744546731772160980249771067571516745353775629291046466090176436942797428194203045968724020767248636198635476298955030846286273511928568944225872224279936700943920640648350569153800906456747971728108374753557577677452594583656052711663531058677107547324635627540869010029205473898158567384819770414989611452752664710169717374735831011506313799668822894674870038127429090698205765368867831594221590079554622634283411533905981565442564642065339742969078559832222216512160538525663715576328846665131106706079706753688436745561125038061472827578561403116969025319266581838052728528540461627030205796083732563434159361720828566207350383683424959467867147317085249154176537705353319959742635288267759836685332705871736558010565766865836883445457683302849572911868276668618606854211892557397865863885951267184368393600759242366768672687313390878714830243919276237497082430321584024114061657253317333715769610119367684483826663360167836440027998405563769650484976813927260101458771152535710999064534743806644085459734913319464870390487090697927588341266014970462813882988717018001254691161926264422829526890184734502309667320624438356730274279660302379271161734245060529156742675242770820012361574219236382309889644074453549785968574746900297119950654668807937213543952454617412073323174826700987301494972382642146613868138881057316516015561648974167232706167339588798672419721669685433065284378418672036186170578499265959337240556651906873566680871737144411144693932046945568719370603165751433726236529733553627447961628146006732364459625138120868120445545980841574684448278762518249425709099473538649759552852966696542592820708978710211393215591369744408725143839870969438957025570191130682677463611951116794964978643067336068196050881715933788738178456172350235637241287285602179801558805723627362378290511286105766717949211807159766543883258738604481751305213962400661236112091256671073911064340846756894849200730804779363047896836962628156712257034566541041767111695437701350385157447286606574068101672826269556805818427478644091744471053765880028601921294104741693865772011372685945532474746249523066598435666891643248653293289472350791467002132376679652099213576945991935708367609903055270504412697089616560632233939267953877827066390029747312781451347232206254758019720295505161926292524433621768691192827178594186608512524965454709626585829253725123423666328705725782423040677304343865854621646694972325161770612870352703718766053858867957716528621575651488958152099035745604929750652091850868612654637317753887694143952566294624216729511838212485309973782733016648725598195482324699159364071671236086335208555730817707955742407297431829027548965629268808830376823424179730178156559431960935409970515654787427272677652431817446167693669852258705502406368972758685279541251529294427091105148660249496161187679681092555636901630163510929265468461882716926253977605676936799531499252178915127441015792609603394656774740307467633306579595727463544019047432167528715741894854353633545302938751722205595267161879346955960560712479325963987189786765204601626988824370979876047272703658677513488961701927276758354569612775428662050526906657979853650046019974545801906704273494675042334972823398347490050571702955627664197286396674998506648788731772834267307131621397590332574666226342216536300477728581531014320111647890438064854014857359039855735128135229887019873722872116559926548588933499270700650086285622413713889120671315340345529943206698914197472639557975901614791654893305174260301587403904998640755921572869106106264211385733867042863688625096631178158637851820362878059236667806424115261228367160742761743971856634956015369553268287381502344692731488967143841676340185486715155104660384005021326885105685799595662106633087361846329684588750921248927472250770036391489656673269324760072803567330541364646848908758602813107256311374179527224072711714976775529819127019131662826485176218719509570083152069082039886447874940721768212980422041067545309307268245676636585610967586677556836563520734480425889014564390504346265381176395209839071577289486970681925875195621322643365054572363624198110607757360772645676645925358727533276977289483687344133460686790496690586360674912931172642545867478331382107749624362381542766719423301677565097864917274726084676302749227196772663180135816774517672240306659448004656815571642555192852214395033161230657091677693282756352597065141993337104923370743090376695435690069896704125954901422747053552471475891475822179511669200820960787215536918035685641836875973441562677267495329728202132864041037106546119678728838482173720779176448753709628091774158661857795553573895632403476474255253226935319923192431998751570037795948043225728237229555752928066225310023698157397772265087231743334979703687445066626585866876140917590252928317450241707035762704660992666072029115975844583716557188527265192526497470248965672755018467281136182108636950695641861771366649067413588189688529405459067189437172486540605910442861544237436938136542587875684367052518195210747850745386947368907179576506231149734032476963757390571560057658572847864361308708644298289026638236613687580705173605918546965110545676566608256303517656487708534719156038371538644501853089843147891673371885612387325942568749108017420208982936231348737712594644173174198636226977634578965479254400376301273858826724741401169975652107412919774709172332565563353446206105094723843887522113257362553912436750562762692591941272714318491444125496560450656594685319773699119681672027319186656351266136721136794588763743960692658811822827259757093747716289154858721560194439241534107948717668124455523251136906369701241820363571830734767197263296961089822650837108654972335671850790030251688235669848493623554745966865076006721977351723194919062523195226769131078731416019463485164696492050044520981314864471591411728930682739293008950636667676407064503831738913467578919720651661058104710886702706402662572642756331180115697209613635484428966433733666117317861748784974463280918526868668194176189635271684057326408398100724940306865464828927163887921165166932770168491457354271869745822132869943593455634233097736159801266743725135984885866692344050968869056915429262202719580244865690364376608276603651841220367735004057009300908694957212574625084997415784113585203702967457376847096082293608196110254418687036950696337739038632670580192326508597309711289776471303624246424791843657002318673839415497438842900642083393819193825664178808366217201177720743447674774862846664368913599386966769200015406923167245602637375499734949270419562635000235374720406263460702459386917656816607771568456134548576733818435693141935474654947016378617107640906121361965881266291380168583744049270994512716894019490711014725860029724527268922629697167841874206792231810952299693420162912227753665526723376697921452510202876019793688446618547181692660923373966775867109929756675129631673500930346738052364615698051663968337266985410639646228378863565357535786266656562942481165531271577218054175719758781151258075735390632701646863287013687503145552285792109259376465048186066310020965730318902564730781765117499773540462131566980236735840234755718366311254218192996827821278182673211273859592107453324881666352754774413108677424659253571094896860031553535111613768346701577272127845663276235269743607006617323288623325684464520638626861500618703469117467527216067374937067695393406417613397997198200856680241441665755069766549176184743425307067859082637180918145651259180758377552805587967344648405090264342348677238701388583849400174062814936860592819507991559874349546856798721967686320631058050716007322597294728239215072171794247253745655691769112518682157866994906737679822418767271221315860779478703346426566917681847281906153665353254171379844827373917479648512735664684135616199653187648073258871766080945763466771709200569161287540986734019529713688736572569081235236938814723111929374916952335610313316689250447197967161569183355255944769956523811412016487592536833328296602087035070158374417083206575665308435963562349067434322795537193677219755086641737367963690199270965623292382601058847322375396617693283474405770785870563115648913110572828473326339503838731980602565114881145218364235612967573867141566157257017857656012232264083967446403813624722908686073506911766535999314134550432582857568474715886476945716480721149517066610206986455929053701275199863516722786365067369173916084458198276907363602767657195331165333949967326456883692952739260020437937478415243697213035467881753186497643074675156565472211082496869614244659606177360901142111762442448623561477526496432163489527627494599289590306456560590727596615859476130247403764744106656699786176676031070668826341315642541954693466333761510666217040567708673854699171755649886684345783638835935474531268525882439229484350946711694563674935384406618411949690316157974167544486902625365183871420674754713227185627827657741972511114520274036929037412825350655437547065066051335668699482649269857961206338126739679768180239639557932756787282576550699926003459575676031449973327619651002470122658255449099808605977900562331592386715979729699720455814830251447022863744517549724054705802517060379325689141006068368369207294108794610604997620144970356314754352706589484453612587567140868225744600773858585867956229355541663737219660924338487240651467501881768566076641187323567404698856968770108872346945739626519112013762521135316548847160643055166867473040806117939989588024688350576925756902323965724595249570743568376795376004607838430763479078059721559416726448551725988125173927442016596551422681567622071450586676573337186599616729812481422696515433923625795072272516607567363607915549308261970956225787325162675733617358455971066436992041546166061903370936007327480018690714186183769931725187218390357652486848392165512871330915487304462277683945584862901261495369460592705951506867991844346666452165520056541023937197674278732746868380357196723115168004612954277184157212639398576261857463228612661488804066704678755714149351777241809094737856172413770567622112818864571743586073951011767195682570161957360067067848066336104908673560661666728392356378030081540948664963838601766968399641656739925478912238470233085565580836893567286591663584441456407611207607884349365989901756792016555172051420469326644385759541315584126561367918861721772400175709918426069106349637334421148688278078063259164246963680544641416876569701578316757216474140727545555991125064724428827460835865738006459469052520127193766298677711855371925924705360402921663137454968844217836839227309658591112171761698697123620846724830156656822786826662735265732651404971712576287475546324567186665772098196657082301307740179895666746167316588286060746003924154016947806597340928735957431267910944016394764605698262417662311433866633237713702431808368950231865174039855700214876867095786637067661698593910597963234375856801427789724002188270808807416632606390734933115068901845816377308439739550651116025671387465437691712400843974161503837358988736680309295662249917945833547536631349714456753856427309980538686140076971912121575973606501695839178263232540985238016824681391020221239671475178131309639679127263618932085382474062109134748767029656531758536629223263506149620481360995979105999506121549760462874624917766913793267713707593466970067466914584590748786875874107461365393537986710439047753272312932124288959643647828965846432817409437515633735137874916935137401054686671562709169880577566593906798733489890772678873435448470055566965406263966245246576412770649643373471242126121616471966545408580310294542957096709227542512338756499369816150332491740965885625471715172962043667194133651555338624658816054374967514495813098233699929919755265299907316663266709408738672521746696285628074691475179864211725427468894124646855988274037098266871317761521900945820489741126600826274675517744055264309037248915027748046469573819400355846933106727795626966240392726897291332728471170969771422326845890265617624812174915418477215022386591449024367987390931842444991198077526266304800987058277001675963083270189559547454464786667030604458039668915553286164653712619266682937477142113524646184685626865614457324008955934871051690500313967682890125585005969721028266166887027701198545992734641061563830680735276058258740738343258100230477460002166718092265758691459285956552236642844160161682391016186117536738510978368723993397390250366730886377072974374937072819982665844543472305827886622761743718435416167179385717331057988670880007013143306937279494252566643726269246755927160101132701469509970813037876674968917736459796972252556126870448067729182627764326405176574579568687602848114857493889487990245501280231573675213442479082050151435315573974699663385227898451688665512423465646932073729763966072009221977359629790735250874450555075717286376365704487411469227701626829088340712060022610741954269366852285929661693641800051868897412466871937072252435592726512232963409947168632403305238352433725878855171134496757157735582677929685965752279663274599917284687280659031017569155072966325328564602117777421303991847117684115701847462151266965996868555247669907178360680644285817272733716572226153856060846654578360116834636468578610486155066166688492300362624786672105505077639140899969554516925680240620654357593473269276636656035551721218399564731615566970432266714858451369747105579556628046945827573591699635168472951186653421256660353030371103092235970490632745438677872615123696927599739213869980739380558458481892716654429579639776795073524592816661507098694166726873244800286922096093724674130561123662966394607409685879566462110902687269148269700259725173410873846922956171671963224368507452136646263197596012317372859262406561127094596051341068330972156635678541736097700250045858574970118897315216205590286061074531814967446366239726351970974189724016347388551702395363535782957193648716770843227266211907737733983826153711043236746615191692423842964919553015269060874572813998462435744067109305845720704144857729918767107318958740519014473561234746901543366718715415669696908366104137539700567639569693405001997132878533260587573704967981787635860675056883368858249436950010204558556942857641069756915787525715400343973679049387109142769692158630173152903696455456732615676153663534275507188610159573706974572117557306979438147733208498372795076897279136559721111113763072559556661468815639372103967382205526657566474602544936467520752707201205486742055036573567905077223755635651534731768394596856407611413544053149172627312175904093637665276870466649748715652402345654499656172212284716796837898720238384566817132311818455798585977248866413663796395730153694564278064409638436055593664645557143817759775786026005846620448664169605065097306869225724082861116253062557294559537612661218165219566871350603458854459406746669159174901791006849705254728659561064682272857082577286688724220274643686186853538988651760818164955684405814885972690165019866213479851194763639746527632365991732776452156798670056439071455051316972115910625463892164034445997255989283523232648463794607051523322474672998668163044836957450355271718274950466670997549344627065973604636134148930534747025864850128887076606482748050390969046685406981435278721672591865578965947265276119661072478161137330506501664855732360909971141118567283691644720012868665556942561743412765707344022665176686945243090816969174391411809549628675769269966195616786380474666401914368302546716066725627745772314974416370306117473433669905887261738481867261412680728774963865479509256235844307629755250967197483847433931145681013259473720596885192355037690105373558470970826524156906743675672860691998647000032286188484526742403222970218173747173955026666010421569531621116990025419709457968671784840436774014372734734864867305554907305103662531912620011659119965713119006959728674689156641859222747625828950544699972109166828483356876511383724156448891515144066836200186891089960151492201671867699606986139646710328348568330982681368549378709919230363996650386425312538635007318258757526546452378125605101057974938029995873894113732556227267388044317087679057708349914768393414776737806678712454189655698513796865424103586365291466419915365707073322527305989971648485847104960070167953685270289491245605222971697807404169898845455087432656748062058173332301537233967457515987587513333132962947044536020477989707912728257311961897390977287710732064815713428156985976403175361670366377248717018306298735229055470051735496610863064954623482195124088674577738407408736825734611284561178886897405523568521789277646235575969328805625732221050745771028372827640866354072926745797519670680606522929478736265305240724974763967265999266669185088721787436956013495491682624432709621073143463242566007605308437381457162719235500358383064228358556980723930549517554970021176447391180010704299335469731139967127303703614814478864554951486054359850731606980871392081957333039202704031069353186301946244929886744191531863552178486825932327749891570370410192325793383926188061145568846018246758134201212024662662328812969813924066460953115184670505771409631746022622391684945713067353745036843516802506580806467256681986810239265612127807266124396777498788500729879311617747574811762991515709286715467599211987160518206612263635269520707826720539520689196224863397107226462000672636647706072162423086890518386712987624267984839856569143370746843265069946189867012657572638850516769117688437162604137697221201910797702791652161337704178134963018262517479093237710073009371337968805300686404612091993670354512156310903619568049291767251649046266841167638981853474198184526747849749558329338353162780596063962174699707249956281036277122889834582148465472436559922146544588673843443359748869297254306873725136200557910913436162802581713062621254413887477297052973614786913853747209966352088926632906742613652638036027072375183642646364407122965205187499719287493173833520206637954964704045109473263483807401734046667589807972727410816228991579655440791213046919555124074940518035079769147890711872770149549435508719724459251882408248703282385260147904066241518120666900462972911513987298262724747776113257241154376186985228726187191565903442335616448930730436684972313987966928964246710906438152589932227134790236632117531564561500071063876099740101131062618238027064066917711499317167731310036346298794598784249452237647557488368225730063664062634051056578295668619892634570017013706200896355641077444356254053976622608392654815148953382994746360318147203971403164877463437014292549676171557764797499646031068896673402565473216627327482351866615891091930788921174051304726694894993651703888661350754567113762504748901220757345333976406316669712187891870117661946691636650656295516765615981366625476827731297051969971338676064274417656746194051288390917225422161653527969369656759036121681514654449459962521942345545418042505789188353248016169758471425512302866438791855715693465066201226226624306258721355842372610385777164835700745784849273054000737235203660746154503518951342597300118341624281949563104613341005677608693066793267361795375700717368662696041669721749247127443781613789415365115918947029437675606077486759266324856764590974696571679020123533881842277547573059663315155475946926093774587382975416157470067086495369538078363574371843047345076478567072371867524816317064166496612977640274123556966459611070662463027370095332366684716710670143320069765245175564585286681460735866787975736827231991638677990024194116867539523226815826113745212073272121007466332540621133646512263512515677172498030639354689716902570576704704610632013394973064580995321581084670627439974958257356294600295721396843652820009456734747001600063840710300768911135490376734388483872407162566438949165690988567173907406026003600516743961416162440518367281053330668341629068902769181786976716638487694957018789667347186356728265721164179588486732147123709418364567795136555490692088713873464025210449669809007667205253094623516800973388093546983158652628776301714188358866199475314581787025271984254701844556739212244102069994210926706054782502550167070559814616239314863728122250465144443817020967223721842403118225197186953653951196985499272597088616544200005525961372352505567356471627311543834073070447345985549747810673746186652696356706320179938645158554719001982086933995255710727079974379622356005855559664596419066263857136857520186201501398859220863416889082467646598316064958594826748245022683930320071343364421751379989685573503771196273427430342276654185997774310819556954997371690904900658076394881747283316763607066739578917768604579631914351022690952557071060437266816904161620562871973207653355832437174678045500618260149577184822069535088037274067966426616159109746533536617358101616277036670521153081157879623237283830195526106956562933857427495488148561142238063282510696379738048715708417458085044796231183641672769197073373780656064552352166602859369371148825294567455737104479068589054911036557317324963327736266350158296096726959467901156646409960726474076598949476177644151521147996116992438725598213151458288299515202798394673191035971623664217396245534222514874211780622271481114272610118191303893344633099045364799214186162534334578713340666020739056120722799630587959157678225116125468632646688558374731409395720733412179654584267154959776819240581725633161872145794677242859642602715129268787787316314608590641720130168015698647375476384619088716868587393996884062490662662825661409882926935087078742155480271591349816357507441723098790870258097466064469813737320533359310913841805033900657517551174768322846476916767736934239367305223246386130326747941728671972681787316326698677040843863387936937491954532701573579769149193234996778906712188806656387074861592348036864885388721055396671719229565771315250675313933868120970016366362292669089686356018708686326127676550280474470437027547417247585722965770867333072486997880639725998700711762601237029966953657236639961573851616724173638653697918272617975947359838399725304059667214537256068881735676394755359826261976859701554191529262365000477607174088132688051824474139444477090333576553515322366538097906848020890955203970695078582364423138716359618756593659694965098381837003920083656770282874621920337442472604748913873671568259735176181077607982928863157911541625852235715874589465177237057461193076614653815571104466877475453162629594488073624144196760008187559707086958059825966427044466581747126472535882457169618499735714850666152016367392123440728841288362855813047286470554634300837470994456317439604126744206324271636026556772147627652698802918648680755885494895564841469672601642007419132996715401159656144045957251540760610835761157414583485973684163729657423620617965896432876620711079465064128163976109456754638718637267794125686497128959650707405517985500135722670198727767842852475257391379799935997189834711979938918949291357172119802734342530650887334515093031507167607284266378925126829788433501564146568302802586792137525614652146861632227836847988565724147002466670800426313750356743158964520895622956541124830746647155568032082306887451119713424855767386396946619635235674465786701612066665481693126721867360591408380360828595737252069676600175105310322075737163335002689765387144346188850610980046493384680719114180468135383771989371355681002845274121510841887567561580312392466922170917212729073680522549152638768675352152583740751544773736719757605693845480265730660814577857707937891642063983651973445464312647336160702074627240935460562863566762624934688823406736329883257601535996389685468732809022263614980406870246686742413257472795496441258258711711392965672690625826553763531735803013470992224187051244842114378488742161728660496694655872809322675151183373948213001392746995455273706716976560651794815536644207032658613898751564524306854288029620715189769730476785745349175730622348773310207357373268828527490907071178151657275945288651399038572433843346726609547563094164367630906595977547777746464913173909356166977974268500382904459927454561482531425155193874359163590176073808746544985877371357341056917671222680166910211764974737072723729597383881170990531616270880702737894305053967560306686776389681325631672653072297367790689193202660073093531305516918290573766260569352767846907473040614159324258481733326524264348741521823072371092345816332971631100937068890979095893186312510013878656497840767132177414551345325660182528646188746934569767597572893779187232895200608190560669577764136523078754696283755369278030387371717137172963554564200242027043081477712734990569196139496815135933743241620673680712915731042783584496922063984242896445286574678066227661293152236593229758734207129052079594216468705168701325564361054468166715772244628683302963924758431872970950639321610972032781755292495497171946455474306851595183152285705998856469190509107396012449740305229471392430036370011921744536510868560725707239104285742385855868901743987106746855596214148162250860646341389161702924894529977482662410154447193087845654228147968932696057241967288598522853367982772297330840389680864594662594275562039212490543269874263345308275600412957644891833865768603731097484756562664045721277336753407892466720259305633138418759989764266531363377674780579270199562986244932750660804639671728828137212165466674814185965614594726625293263695078292966124524917140506947647740375064820710836923586128521158512564446819307044287107653172610770563006016011856040743637362267401189706964824770640245250554817654985809661577744578403164478337487469252931673939965457608850847392363851689516285374016603465524499616727339651863565676996930182706701695562173512914127469909304718292986068917732511023386435748459491257937989357028705449210963820956807551446358508728747285536268988882245143865649684035663168268834335231549725183694646572392009677413772892631729172657367421787413315896642495421071609435436578426687740983483765459256366914271165579348674184879673676838341615987299197276094262542885744471155363181105813067347024928652776628169683473706566076112675542226269158955936827159422165002478372563491016891813686572681381560938226527239092138672151639774979842687344132650749837140261290036066553818807648097991569593926776941534375505395538465584419976138279589696452429870263098737069865678693077442569857221916465299591656245857865152353602102917892679764903664762913215643678157130537803272732733636514001491715172264663902538506087992412190024393263668486873214315359122482661121474810733516306070169452007496901008717878269770202469316143106195689075653053574480206716679480601945151557734805896971474541731684616280901374073520040870609645676956092570302104776716429146965541913674695420087184291070634969385467646129856988669728608337675069439197087282103569556670939973715993341658403339663115720869781789557197193727577382613865609693495386251357628532008966631659016269319944708502123854339369587367927586546501733574772803001777104970817251197596451528860818043107242544890726570079164313248386431894757728505349668593140465824387284672579135865398619746455488365738087412870777201127188657230539799019582175953461310072397450692991639710381863762596826447096705728915550412630879967191657738639784741471766716486611520141743589426969797199311396857875743679904672941013597464680438578291450066800211801098583694748848902969551165547289835996538404899269451217087154397121648241448967150297316565005029598276658872634865615905551095645798063657888748636510698082696664616757507403686703223278712276862813826597501507293447717670757749178934367403366691441342781195595310163414003536022278263650003795268525435926663259647710131797958242509027445897391679779894874002900936827457636645103832211518667677010737582574004071456028334596176227059639418249853826729115777872876669249752509623615065073277606351700571556266608549907408964350084567671116126043369878610376145670033075775993252642544149574211375920427223281409591977582273137249296130383546668573482161462467226617712966729442131669829448217074301585693792244572644585395376016007644469461864459154246526095521734663009461533585885735780634665132408655921883336640803618730709110074000258186109530014519914427274982304717112934704603484790957538972207046372370633729668953545603322166510077484350935605019276771157776287434972630140670637660231484717292456648661363711173172630907474452396775975551675403361469431813346293878563667824885067512879396338213896713508016269069974882970495287274986514749918879664913448717155336313535556088664168604326818808183720828922865391934987077077684731961714074251903626607432964656970712667665740725707306428726965139170356795945985168719623483838655764599046166359657721425528672914174637723112636960190352747705402571896429957043977263744388174462770992607150047380745016526350947227936449015994577222989751676585776610666710706269563570379306276165760428695749413173771233387309050358725444961861359546076416512544706679394372886556557130729543669834103069416941146063069276524473312768399004876572402948698496652374333500927171806807657120229573952410337164171892610825727571932811802642267006029499385727879810262754253536402018246641736485918390841286638366769650227589672449515057216563453727315636774003237051352286802692769977464264031565995858392718963704612405499631319967216625699797213392732347004947424636947534858116260126505300823632130624071243842736966842927601436899573679738786501593508741722434852214691496653032556640768293459395165436658809639737999777965995625756763157614727628807750770697271306670787241754321395107245734767723174007066356474025176966048116929224708607939358564338274327315916211630473794116882223676661488657605631759174962760736486967720748127254672641267152023329896664541877954219395307177059385749079669359413901877031968922100937205718938887310258051996711675933517882261658345241512038604056735504495462335406177126444351646294801279236459656961408850180899468998515987386306182121481601174042907170081149251151638155740353198415652205426873194302744667176965367023287019270979114575033575719590697174356472655128916923899076717462509373244553686881507632689227472066024241407272048279129046035957014675866019034847647263203762375650497057946874739055374265856620916289542549536879361762954389317016188954703034048361531144145889466839687665044955677450647356757063674396330966112549667282332795732196027212860323597370126971659337949172619299567175672276605223881271955638546421845351736264306259474551836505856491638084216372634447207422407788884662222635974690567223665336611320051670181573970004566597136465599720992790563930238357173239464688252261569306557427141139205645102669569295206137355613432747519842469718699927402622805595129623668914843956633302871585942410157784609676751896715706979647660173975755292738496625245035770190420526934566439703362494573122858006915099734676711263553986293565753771288739033588561970927897408074530620356078171582126697351996336748442695683192915465466668166815235888677822257463078731867069267732182368352665004847286205743438695557405166177829841548661022729231272365428789827380729857648622410774963177557071309436718253668373775516301641671892736161534816561575037342047453686812845172921912176686836254704858784466703853496556953701661913174560986315201536602028731160098869925513845716417846546472310764086125907020651902113266934972315606017389952471732667509861562638161715435539142052495170486411295214832130733874558767065853576562929664645901930873377923826766840492679670974461250061031335970397651589713772170328645833918618659678487870511285706873420024715264220667749149741075212308502347741867995313486026905017734782972370373288065969239427117195676564227816361286583451602224182113446244196625135704109307503194429427772816037137367159669558388060355360085936162885874667817317964787217655926096388546285387456404355356287274008620085329715553190641313923124672629552663212456946316897625347612505687657262072308613147416093881569502669960014742826248749807530058911167232188682520975197229834728724735563173717920896882564110665229175074624431886179988448469657426140137948746901554469817638616829704847618517990467902720966628492923566057257972544362287077185265658471966362340505936608830089684777676868816664376155440954532864631773461063395296394113153943118366355038495963252450635589372769823877677184197620942837309622649187773691814117411965305653174391265003099176017690028641072759559184116371969205810700251897960835830741841598219628540343069865052337429909564560964211313584991375682122917182889039274055831866905078812688343828564684020897412280824682082928169563024356499588725103767479316789767451888317121727272746764434117546455733907732347131867980227776602340672690073253850484336676895244583133515870271938014716544845833746325750158849716911413236614641011135561757299895787148609501249051759636542757239241529606289727263037177787266628872737530727332790666363794202685901131173322197915696409371968801153255342728997732284173465600705397189722576608899940273621325885268416819634906180859239332546075750652883561079111989597017593654337301337907643318314874518530997121830875740899938065166865406480990149506559986457126711187116180604711851896967399416470560083246683465101650432169861668351915756032240728008660674081264907202322021739132740760952262877250492577669295512754705509147024753874661394077550488640337204550394745769571760296346937081067009709148574721143190456871845269715252772921085377465440660773594314661254221685926123652090690291647364457305075855170871651063486573337637946079178041701950104561691087275463286934812278542192935977869836902036627523724582643616071726817686773392892699345506167819163026896957392517643906955378876487285566946644646397360644301267377492469656888377670709227307140279941735285901671782372754038577741604099108718688390114917375747376026641645442660814087622717236538939111574174195476058868857698866435533847686902209357360837856520084670133531154370365403076040191572109403400702448095672971330655779186439747628114762182788116767061097575542309571219849746652210927648558787518207616647248509428622032213072052745277194147353743194036674481966171462767903738155113363002335126115362636780801754709765186873918236565471729326672982056374272171576425129607640882250352099395847308140594703707813715944843462562743436272417287672930359171653064757370052561742233988459191967576966860204635035012159151050257483236803741732132272031538476365744485637447572164429626226256734902720071683460130043056676306994704183136971796394406046228262728119280118923621977058433308653661103567277041587223480347733141844869749688935645022351277061729636018524592487581971074929621426512952632776463268815725971852424350587197659368833829156222654369635034703176319989101517085267351742306437086579175295243612476339337216752512718033092651088099306778539091634089741672268247137405327364651300366163619177897353739399554455172563747421527393270449705126447213695253137283351307729402184167497060596847315564207646991570811037577444133242547903296258943531546330255582564746767566762311006552093100512368276271399504807368678367276226325696800743468999979397337723111730652902556861943505211707292692125792512011235556749462580585503381068639516897679032317031813887738472514065349128916319301670651397292058555099556489009634176072343270651036866595652728722911541863280711456460119015733037794473883156326760788406610872138468125684396855407004729161416819033580857364406497723803581760059949946690333917703555736974437028776222333329680054722066856736427364388453643742147973053204441814551286694378955168664824066126776772710391365272362623756158774360662874083060532152487378415783657064873674759602747489632389697409687065883801086484905357715527273131240844369571835347407352898744477763456514569205308226391749552374614200601497379243459207644429473317842439330988606220064833575886179062838388866092832853946972485870698662704994839167997222515838593027144389747666303313746588161434709238795759373324517436078370504590570167376386691311081696456232666720854581857352054741877724861613630808474882222225868928737011510655739107732872191147687341918840747098231574530910951004911463730771626967204546047376981626592779769571571918767352903066170285549176350391250492105666221778458691831589763963886046530210762587614500360737788546452525404116269853562597708877129264006720796074355554863016171975856642199555472108788925618167173659577839651793401997453404864742426995170902765356975290008636417623953913871171780466861732337888771359627096467118149638512874962476174375108346980661086143462584641411026628030563921405063161091766252267707563686751467804107847423817877745176905574955986726455139451182390078854961050497409212544749340984774407452815143028096734572150768886709407082701973701938122910389061166247506180726283514169210460977348200624697785849270171974727350681214678667444868737789957278002917695669787867530869975544567531698677956068843340235046251121696023792858938605446644352987651677232561249027687426116471404800846730120054665336949147238208616513596784267891060326655157399564626206720253045696786016356676965315274897939966636029914710451827467567068696346487456646680016851356950376180321379725892290570498087047282365799617735909070785071856542582407228155545507969932469045457835987609999705744342768137070217318539072153553643677697688370666584015959353279671407402363187519436668002436217532134743502250665786940445462351812636395876263160362197060709599673418667968133948021274759261743243402270205666716420045549703812845970519706696475158336640701982863675363785364748006568462106460199368116191434820583462072060494323255342522376646110339262298483826056398144593270771456736763555069591280626813628159751996706313461434522097168463456032706309446929655285780454373746446038116538645425294661948125385263645250547156270056029446395964800999619684869655737287215715961957608383049460597809155331448547576678268461080233166477233969209874914963243696507318598976658288500365747806405821052952633156893951897381846176174888502268154462742654005346357085616839608863378712402136818760562116955164651791896062587172516381398458218618356085382109636088787064595243085101688596527519346858627727615384482156631936035051151862196398412125626963544763984901215583930705620035179457638468405830085707632469829461042219295728309809536508051357116421856448803414126543223466709315876970297428723834069465990628195630061764619731697365562737596083211878593839979866490382836059676684510702713850873010366165020898638001706862357760336450423962521939542451014460626276598513637721032650850358566322815972632679370874977598617131100187650636667211724816255007506866658792575670146733175448796771642711915653427293315764189576566384099058682766406040251029575403149053452091525199359060618571772764517696406448260168639788483854524522935377387427509112059560471298286380047602617723034967268983975996954962506494640463564371745179058008517694161157915806165142119042636358284550980346945221213441539775261072040639736352538117590030258960328879066569988552748407175363017773006583023357629624214857129802055976569331589794118965243907185284619726573292207957531348776470490136647142202461777124595740797194636237623963359414227078210975601024656052768838665397699402524562957662237526556061305852614674544864488803405787588427649165048864582915716475219660616349162364523539166167690566539468117459151381606298916436732350026759170847006079949678579719083962667182726166949336615746047460101092826010772770513581887257572800845198546247592868854872602334776764774266658100086765022845816244171434552799889563452079555671408958527948772556310384856134393141578268874052648474786023870899618148331554772722356312121795652706792056920724025907497805570457966853468541995643877623602565105864754093866447792669519348172564358488525791861284617245520062086279826049235985531631911662040012605118860109634378224165990337885356026351635871484861744642176317434522536451969457974074746222113401564713797664498742926260645588645623021558313082346067934623639766228557818348586220299552612452152161264108405641642638650530034660474933897004336244653125187164300578127333479686674287676658859586886301117790566724900363164848166335039640663984158752750096846476274227563703997155789426166352661607609378526863274603565124998553633093127957695218186057388964653938507856523189116234121831728037736565454635665132578933735217000261812696636360261418647265682251783458336437077645644207940350700767156131430513607820834761182648086267914386600956522353134059516493744162606750587762050552546165623434519455097661020828216067735097599130631864598547286114828597602595158971396567105329347732529461654158439125665101243637599156048560357613105908741978612764481552984873245181782865621353987057173968215490111776560850406657256330675990275895578202021994768387952256238115253502699682982591353860366965044636827654493217150637832645631339380609586395252093318556015335857528849269251984050345652965846644782223764516122325792827448577733274854492806636476352151594311973657758001956106512348622047695351627916285141145579654790371553864337065713857370574064040654731949996929840196721493342670055058136715876061600083758966570829066363728350573129738958657288086420444915513471938650607160835887121075509812834763285653236352078320606324698150381923876140923502748272579074356205036881973991689881331858455683316518997853720636553369229412702266898327499677470743649503074545098716030176089565604222054194069586957937967